tnp-helpers 18.0.18 → 18.0.20

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 (174) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/README.md +24 -24
  3. package/browser/esm2022/lib/base/classes/base-cli-worker.mjs +57 -8
  4. package/browser/esm2022/lib/base/classes/base-git.mjs +16 -1
  5. package/browser/esm2022/lib/base/classes/base-library-build.mjs +31 -10
  6. package/browser/esm2022/lib/base/classes/base-npm-helpers.mjs +5 -6
  7. package/browser/esm2022/lib/base/classes/base-project.mjs +12 -31
  8. package/browser/esm2022/lib/base/classes/base-release-process.mjs +8 -43
  9. package/browser/esm2022/lib/base/classes/base-vscode.mjs +28 -1
  10. package/browser/esm2022/lib/base/commit-data.mjs +5 -6
  11. package/browser/esm2022/lib/base/core-project.mjs +1 -1
  12. package/browser/esm2022/lib/base/tcp-udp-ports/index.mjs +1 -2
  13. package/browser/esm2022/lib/base/tcp-udp-ports/ports.controller.mjs +169 -17
  14. package/browser/esm2022/lib/base/tcp-udp-ports/ports.entity.mjs +10 -3
  15. package/browser/esm2022/lib/base/tcp-udp-ports/tcp-udp-ports.context.mjs +2 -3
  16. package/browser/esm2022/lib/base/tcp-udp-ports/tcp-upd-ports.worker.mjs +187 -11
  17. package/browser/esm2022/lib/index.mjs +1 -4
  18. package/browser/esm2022/lib/models.mjs +1 -1
  19. package/browser/esm2022/migrations/1736199486472_addingNotAssignablePorts.mjs +16 -8
  20. package/browser/esm2022/migrations/1736454437350_addFreePorts.mjs +20 -7
  21. package/browser/fesm2022/tnp-helpers.mjs +544 -150
  22. package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
  23. package/browser/lib/base/classes/base-cli-worker.d.ts +28 -5
  24. package/browser/lib/base/classes/base-git.d.ts +8 -0
  25. package/browser/lib/base/classes/base-library-build.d.ts +3 -6
  26. package/browser/lib/base/classes/base-npm-helpers.d.ts +5 -1
  27. package/browser/lib/base/classes/base-project.d.ts +3 -2
  28. package/browser/lib/base/classes/base-release-process.d.ts +13 -10
  29. package/browser/lib/base/core-project.d.ts +1 -1
  30. package/browser/lib/base/tcp-udp-ports/index.d.ts +0 -1
  31. package/browser/lib/base/tcp-udp-ports/ports.controller.d.ts +15 -6
  32. package/browser/lib/base/tcp-udp-ports/ports.entity.d.ts +8 -4
  33. package/browser/lib/base/tcp-udp-ports/tcp-upd-ports.worker.d.ts +10 -8
  34. package/browser/lib/index.d.ts +1 -3
  35. package/browser/lib/models.d.ts +0 -6
  36. package/client/README.md +24 -24
  37. package/client/esm2022/lib/base/classes/base-cli-worker.mjs +57 -8
  38. package/client/esm2022/lib/base/classes/base-git.mjs +16 -1
  39. package/client/esm2022/lib/base/classes/base-library-build.mjs +31 -10
  40. package/client/esm2022/lib/base/classes/base-npm-helpers.mjs +5 -6
  41. package/client/esm2022/lib/base/classes/base-project.mjs +12 -31
  42. package/client/esm2022/lib/base/classes/base-release-process.mjs +8 -43
  43. package/client/esm2022/lib/base/classes/base-vscode.mjs +28 -1
  44. package/client/esm2022/lib/base/commit-data.mjs +5 -6
  45. package/client/esm2022/lib/base/core-project.mjs +1 -1
  46. package/client/esm2022/lib/base/tcp-udp-ports/index.mjs +1 -2
  47. package/client/esm2022/lib/base/tcp-udp-ports/ports.controller.mjs +169 -17
  48. package/client/esm2022/lib/base/tcp-udp-ports/ports.entity.mjs +10 -3
  49. package/client/esm2022/lib/base/tcp-udp-ports/tcp-udp-ports.context.mjs +2 -3
  50. package/client/esm2022/lib/base/tcp-udp-ports/tcp-upd-ports.worker.mjs +187 -11
  51. package/client/esm2022/lib/index.mjs +1 -4
  52. package/client/esm2022/lib/models.mjs +1 -1
  53. package/client/esm2022/migrations/1736199486472_addingNotAssignablePorts.mjs +16 -8
  54. package/client/esm2022/migrations/1736454437350_addFreePorts.mjs +20 -7
  55. package/client/fesm2022/tnp-helpers.mjs +544 -150
  56. package/client/fesm2022/tnp-helpers.mjs.map +1 -1
  57. package/client/lib/base/classes/base-cli-worker.d.ts +28 -5
  58. package/client/lib/base/classes/base-git.d.ts +8 -0
  59. package/client/lib/base/classes/base-library-build.d.ts +3 -6
  60. package/client/lib/base/classes/base-npm-helpers.d.ts +5 -1
  61. package/client/lib/base/classes/base-project.d.ts +3 -2
  62. package/client/lib/base/classes/base-release-process.d.ts +13 -10
  63. package/client/lib/base/core-project.d.ts +1 -1
  64. package/client/lib/base/tcp-udp-ports/index.d.ts +0 -1
  65. package/client/lib/base/tcp-udp-ports/ports.controller.d.ts +15 -6
  66. package/client/lib/base/tcp-udp-ports/ports.entity.d.ts +8 -4
  67. package/client/lib/base/tcp-udp-ports/tcp-upd-ports.worker.d.ts +10 -8
  68. package/client/lib/index.d.ts +1 -3
  69. package/client/lib/models.d.ts +0 -6
  70. package/lib/base/classes/base-cli-worker-controller.js +1 -1
  71. package/lib/base/classes/base-cli-worker-controller.js.map +1 -1
  72. package/lib/base/classes/base-cli-worker.d.ts +28 -5
  73. package/lib/base/classes/base-cli-worker.js +104 -34
  74. package/lib/base/classes/base-cli-worker.js.map +1 -1
  75. package/lib/base/classes/base-git.d.ts +8 -0
  76. package/lib/base/classes/base-git.js +32 -0
  77. package/lib/base/classes/base-git.js.map +1 -1
  78. package/lib/base/classes/base-global-command-line.backend.d.ts +4 -0
  79. package/lib/base/classes/base-global-command-line.backend.js +25 -0
  80. package/lib/base/classes/base-global-command-line.backend.js.map +1 -1
  81. package/lib/base/classes/base-library-build.d.ts +3 -6
  82. package/lib/base/classes/base-library-build.js +46 -29
  83. package/lib/base/classes/base-library-build.js.map +1 -1
  84. package/lib/base/classes/base-npm-helpers.d.ts +2 -0
  85. package/lib/base/classes/base-npm-helpers.js +11 -3
  86. package/lib/base/classes/base-npm-helpers.js.map +1 -1
  87. package/lib/base/classes/base-project.d.ts +3 -2
  88. package/lib/base/classes/base-project.js +18 -43
  89. package/lib/base/classes/base-project.js.map +1 -1
  90. package/lib/base/classes/base-release-process.d.ts +13 -10
  91. package/lib/base/classes/base-release-process.js +15 -88
  92. package/lib/base/classes/base-release-process.js.map +1 -1
  93. package/lib/base/classes/base-start-config.backend.js +1 -1
  94. package/lib/base/classes/base-start-config.backend.js.map +1 -1
  95. package/lib/base/classes/base-vscode.js +45 -25
  96. package/lib/base/classes/base-vscode.js.map +1 -1
  97. package/lib/base/commit-data.js +9 -10
  98. package/lib/base/commit-data.js.map +1 -1
  99. package/lib/base/core-project.d.ts +1 -1
  100. package/lib/base/tcp-udp-ports/index.d.ts +0 -1
  101. package/lib/base/tcp-udp-ports/index.js +0 -1
  102. package/lib/base/tcp-udp-ports/index.js.map +1 -1
  103. package/lib/base/tcp-udp-ports/not-assignable-port.entity.d.ts +0 -6
  104. package/lib/base/tcp-udp-ports/not-assignable-port.entity.js +2 -42
  105. package/lib/base/tcp-udp-ports/not-assignable-port.entity.js.map +1 -1
  106. package/lib/base/tcp-udp-ports/ports.controller.d.ts +14 -5
  107. package/lib/base/tcp-udp-ports/ports.controller.js +227 -19
  108. package/lib/base/tcp-udp-ports/ports.controller.js.map +1 -1
  109. package/lib/base/tcp-udp-ports/ports.entity.d.ts +8 -4
  110. package/lib/base/tcp-udp-ports/ports.entity.js +32 -2
  111. package/lib/base/tcp-udp-ports/ports.entity.js.map +1 -1
  112. package/lib/base/tcp-udp-ports/tcp-udp-ports.context.js +1 -2
  113. package/lib/base/tcp-udp-ports/tcp-udp-ports.context.js.map +1 -1
  114. package/lib/base/tcp-udp-ports/tcp-upd-ports.worker.d.ts +14 -8
  115. package/lib/base/tcp-udp-ports/tcp-upd-ports.worker.js +293 -30
  116. package/lib/base/tcp-udp-ports/tcp-upd-ports.worker.js.map +1 -1
  117. package/lib/helpers/for-backend/helpers-git.backend.d.ts +10 -0
  118. package/lib/helpers/for-backend/helpers-git.backend.js +59 -0
  119. package/lib/helpers/for-backend/helpers-git.backend.js.map +1 -1
  120. package/lib/helpers/for-browser/angular.helper.js +2 -2
  121. package/lib/index.d.ts +1 -3
  122. package/lib/index.js +0 -3
  123. package/lib/index.js.map +1 -1
  124. package/lib/models.d.ts +0 -6
  125. package/lib/old/base-component.js +2 -2
  126. package/lib/old/base-formly-component.js +2 -2
  127. package/lib/old/dual-component-ctrl.js +2 -2
  128. package/migrations/1736199486472_addingNotAssignablePorts.js +33 -10
  129. package/migrations/1736199486472_addingNotAssignablePorts.js.map +1 -1
  130. package/migrations/1736454437350_addFreePorts.js +42 -14
  131. package/migrations/1736454437350_addFreePorts.js.map +1 -1
  132. package/package.json +5 -5
  133. package/taon.jsonc +49 -49
  134. package/tmp-environment.json +29 -29
  135. package/websql/README.md +24 -24
  136. package/websql/esm2022/lib/base/classes/base-cli-worker.mjs +57 -8
  137. package/websql/esm2022/lib/base/classes/base-git.mjs +16 -1
  138. package/websql/esm2022/lib/base/classes/base-library-build.mjs +31 -10
  139. package/websql/esm2022/lib/base/classes/base-npm-helpers.mjs +5 -6
  140. package/websql/esm2022/lib/base/classes/base-project.mjs +12 -31
  141. package/websql/esm2022/lib/base/classes/base-release-process.mjs +8 -43
  142. package/websql/esm2022/lib/base/classes/base-vscode.mjs +28 -1
  143. package/websql/esm2022/lib/base/commit-data.mjs +5 -6
  144. package/websql/esm2022/lib/base/core-project.mjs +1 -1
  145. package/websql/esm2022/lib/base/tcp-udp-ports/index.mjs +1 -2
  146. package/websql/esm2022/lib/base/tcp-udp-ports/ports.controller.mjs +169 -17
  147. package/websql/esm2022/lib/base/tcp-udp-ports/ports.entity.mjs +25 -3
  148. package/websql/esm2022/lib/base/tcp-udp-ports/tcp-udp-ports.context.mjs +2 -3
  149. package/websql/esm2022/lib/base/tcp-udp-ports/tcp-upd-ports.worker.mjs +187 -11
  150. package/websql/esm2022/lib/index.mjs +1 -4
  151. package/websql/esm2022/lib/models.mjs +1 -1
  152. package/websql/esm2022/migrations/1736199486472_addingNotAssignablePorts.mjs +16 -8
  153. package/websql/esm2022/migrations/1736454437350_addFreePorts.mjs +20 -7
  154. package/websql/fesm2022/tnp-helpers.mjs +560 -166
  155. package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
  156. package/websql/lib/base/classes/base-cli-worker.d.ts +28 -5
  157. package/websql/lib/base/classes/base-git.d.ts +8 -0
  158. package/websql/lib/base/classes/base-library-build.d.ts +3 -6
  159. package/websql/lib/base/classes/base-npm-helpers.d.ts +2 -0
  160. package/websql/lib/base/classes/base-project.d.ts +3 -2
  161. package/websql/lib/base/classes/base-release-process.d.ts +13 -10
  162. package/websql/lib/base/core-project.d.ts +1 -1
  163. package/websql/lib/base/tcp-udp-ports/index.d.ts +0 -1
  164. package/websql/lib/base/tcp-udp-ports/ports.controller.d.ts +15 -6
  165. package/websql/lib/base/tcp-udp-ports/ports.entity.d.ts +8 -4
  166. package/websql/lib/base/tcp-udp-ports/tcp-upd-ports.worker.d.ts +10 -8
  167. package/websql/lib/index.d.ts +1 -3
  168. package/websql/lib/models.d.ts +0 -6
  169. package/browser/esm2022/lib/base/tcp-udp-ports/not-assignable-port.entity.mjs +0 -19
  170. package/browser/lib/base/tcp-udp-ports/not-assignable-port.entity.d.ts +0 -7
  171. package/client/esm2022/lib/base/tcp-udp-ports/not-assignable-port.entity.mjs +0 -19
  172. package/client/lib/base/tcp-udp-ports/not-assignable-port.entity.d.ts +0 -7
  173. package/websql/esm2022/lib/base/tcp-udp-ports/not-assignable-port.entity.mjs +0 -34
  174. package/websql/lib/base/tcp-udp-ports/not-assignable-port.entity.d.ts +0 -7
@@ -1,6 +1,7 @@
1
1
  import { BaseCliWorker } from '../classes/base-cli-worker';
2
2
  import { PortsController } from '../tcp-udp-ports/ports.controller';
3
3
  import { PortsContext } from '../tcp-udp-ports/tcp-udp-ports.context';
4
+ import { UtilsTerminal } from 'tnp-core/websql';
4
5
  export class PortsWorker extends BaseCliWorker {
5
6
  async getControllerForRemoteConnection() {
6
7
  if (this.portsController) {
@@ -40,9 +41,54 @@ export class PortsWorker extends BaseCliWorker {
40
41
  /* */
41
42
  /* */
42
43
  /* */
44
+ /* */
43
45
  return (void 0);
44
46
  }
45
47
  async displayItemsForPortsStatus(status) {
48
+ /* */
49
+ /* */
50
+ /* */
51
+ /* */
52
+ /* */
53
+ /* */
54
+ /* */
55
+ /* */
56
+ /* */
57
+ /* */
58
+ /* */
59
+ /* */
60
+ /* */
61
+ /* */
62
+ /* */
63
+ /* */
64
+ /* */
65
+ return (void 0);
66
+ }
67
+ getWorkerTerminalActions(options) {
68
+ /* */
69
+ /* */
70
+ /* */
71
+ /* */
72
+ /* */
73
+ /* */
74
+ /* */
75
+ /* */
76
+ /* */
77
+ /* */
78
+ /* */
79
+ /* */
80
+ /* */
81
+ /* */
82
+ /* */
83
+ /* */
84
+ /* */
85
+ /* */
86
+ /* */
87
+ /* */
88
+ /* */
89
+ /* */
90
+ /* */
91
+ /* */
46
92
  /* */
47
93
  /* */
48
94
  /* */
@@ -64,17 +110,47 @@ export class PortsWorker extends BaseCliWorker {
64
110
  /* */
65
111
  return (void 0);
66
112
  }
67
- get backAction() {
68
- return {
69
- back: {
70
- name: 'Back',
71
- action: async () => {
72
- return true;
73
- },
74
- },
75
- };
113
+ async getNewPortToAdd() {
114
+ /* */
115
+ /* */
116
+ /* */
117
+ /* */
118
+ /* */
119
+ /* */
120
+ /* */
121
+ /* */
122
+ /* */
123
+ /* */
124
+ /* */
125
+ /* */
126
+ /* */
127
+ /* */
128
+ /* */
129
+ /* */
130
+ /* */
131
+ /* */
132
+ /* */
133
+ /* */
134
+ /* */
135
+ /* */
136
+ /* */
137
+ /* */
138
+ /* */
139
+ /* */
140
+ /* */
141
+ /* */
142
+ /* */
143
+ /* */
144
+ /* */
145
+ /* */
146
+ /* */
147
+ /* */
148
+ /* */
149
+ return (void 0);
76
150
  }
77
- getWorkerTerminalActions() {
151
+ async addPortTerminalUiProcess() {
152
+ /* */
153
+ /* */
78
154
  /* */
79
155
  /* */
80
156
  /* */
@@ -98,6 +174,10 @@ export class PortsWorker extends BaseCliWorker {
98
174
  /* */
99
175
  /* */
100
176
  /* */
177
+ /* */
178
+ return (void 0);
179
+ }
180
+ async selectPortProcess(ports, title) {
101
181
  /* */
102
182
  /* */
103
183
  /* */
@@ -116,7 +196,103 @@ export class PortsWorker extends BaseCliWorker {
116
196
  /* */
117
197
  return (void 0);
118
198
  }
199
+ async deletePortTerminalUiProcess() {
200
+ /* */
201
+ /* */
202
+ /* */
203
+ /* */
204
+ /* */
205
+ /* */
206
+ /* */
207
+ /* */
208
+ /* */
209
+ /* */
210
+ /* */
211
+ /* */
212
+ /* */
213
+ /* */
214
+ /* */
215
+ /* */
216
+ /* */
217
+ /* */
218
+ /* */
219
+ /* */
220
+ /* */
221
+ /* */
222
+ /* */
223
+ /* */
224
+ /* */
225
+ return (void 0);
226
+ }
227
+ async editPortTerminalUiProcess() {
228
+ /* */
229
+ /* */
230
+ /* */
231
+ /* */
232
+ /* */
233
+ /* */
234
+ /* */
235
+ /* */
236
+ /* */
237
+ /* */
238
+ /* */
239
+ /* */
240
+ /* */
241
+ /* */
242
+ /* */
243
+ /* */
244
+ /* */
245
+ /* */
246
+ /* */
247
+ /* */
248
+ /* */
249
+ /* */
250
+ /* */
251
+ /* */
252
+ /* */
253
+ /* */
254
+ /* */
255
+ /* */
256
+ /* */
257
+ /* */
258
+ /* */
259
+ /* */
260
+ /* */
261
+ /* */
262
+ /* */
263
+ /* */
264
+ /* */
265
+ /* */
266
+ return (void 0);
267
+ }
268
+ async crudMenuForTakeByOsPorts() {
269
+ const { selected: actionChoice } = await UtilsTerminal.selectActionAndExecute({
270
+ back: {
271
+ name: ' - back - ',
272
+ },
273
+ editPort: {
274
+ name: 'Edit port',
275
+ },
276
+ addPort: {
277
+ name: 'Add port',
278
+ },
279
+ deletePort: {
280
+ name: 'Delete port (make it unassigned)',
281
+ },
282
+ });
283
+ switch (actionChoice) {
284
+ case 'editPort':
285
+ await this.editPortTerminalUiProcess();
286
+ break;
287
+ case 'addPort':
288
+ await this.addPortTerminalUiProcess();
289
+ break;
290
+ case 'deletePort':
291
+ await this.deletePortTerminalUiProcess();
292
+ break;
293
+ }
294
+ }
119
295
  }
120
296
  ;
121
297
  ({}); // @--end-of-file-for-module=tnp-helpers lib/base/tcp-udp-ports/tcp-upd-ports.worker.ts
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNwLXVwZC1wb3J0cy53b3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL3RjcC11ZHAtcG9ydHMvdGNwLXVwZC1wb3J0cy53b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLDRCQUE0QixDQUFDO0FBR3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFLdEUsTUFBTSxPQUFPLFdBQVksU0FBUSxhQUE4QjtJQUc3RCxLQUFLLENBQUMsZ0NBQWdDO1FBQ3BDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUM5QixDQUFDO1FBQ0QsTUFBTSxJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztRQUMzQyxNQUFNLFNBQVMsR0FBRyxNQUFNLFlBQVksQ0FBQyxVQUFVLENBQUM7WUFDOUMsa0JBQWtCLEVBQUUsb0JBQW9CLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUU7U0FDeEUsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBSVMsS0FBSyxDQUFDLFVBQVU7UUFDeEIsT0FBTyxrQkFBa0IsQ0FBQztJQUM1QixDQUFDO0lBSVMsZUFBZTtRQUN2QixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBSUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLDZCQUE2QjtRQUNyQyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlTLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxNQUFrQjtRQUMvRCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUdELElBQUksVUFBVTtRQUNaLE9BQU87WUFDTCxJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLE1BQU07Z0JBQ1osTUFBTSxFQUFFLEtBQUssSUFBSSxFQUFFO29CQUNqQixPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUdELHdCQUF3QjtRQUMxQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0NBRUY7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHVGQUF1RiIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbmltcG9ydCB7IEJhc2VDbGlXb3JrZXIsIENmb250U3R5bGUgfSBmcm9tICcuLi9jbGFzc2VzL2Jhc2UtY2xpLXdvcmtlcic7XG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IEhlbHBlcnMsIFBvcnRTdGF0dXMsIFBvcnRTdGF0dXNBcnIgfSBmcm9tICcuLi8uLi9pbmRleCc7XG5pbXBvcnQgeyBQb3J0c0NvbnRyb2xsZXIgfSBmcm9tICcuLi90Y3AtdWRwLXBvcnRzL3BvcnRzLmNvbnRyb2xsZXInO1xuaW1wb3J0IHsgUG9ydHNDb250ZXh0IH0gZnJvbSAnLi4vdGNwLXVkcC1wb3J0cy90Y3AtdWRwLXBvcnRzLmNvbnRleHQnO1xuaW1wb3J0IHsgVXRpbHNUZXJtaW5hbCB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBjaGFsayB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5cblxuZXhwb3J0IGNsYXNzIFBvcnRzV29ya2VyIGV4dGVuZHMgQmFzZUNsaVdvcmtlcjxQb3J0c0NvbnRyb2xsZXI+IHtcblxuICBwcml2YXRlIHBvcnRzQ29udHJvbGxlcjogUG9ydHNDb250cm9sbGVyIHwgdW5kZWZpbmVkO1xuICBhc3luYyBnZXRDb250cm9sbGVyRm9yUmVtb3RlQ29ubmVjdGlvbigpOiBQcm9taXNlPFBvcnRzQ29udHJvbGxlcj4ge1xuICAgIGlmICh0aGlzLnBvcnRzQ29udHJvbGxlcikge1xuICAgICAgcmV0dXJuIHRoaXMucG9ydHNDb250cm9sbGVyO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLndhaXRGb3JQcm9jZXNzUG9ydFNhdmVkVG9EaXNrKCk7XG4gICAgY29uc3QgcmVmUmVtb3RlID0gYXdhaXQgUG9ydHNDb250ZXh0LmluaXRpYWxpemUoe1xuICAgICAgb3ZlcnJpZGVSZW1vdGVIb3N0OiBgaHR0cDovL2xvY2FsaG9zdDoke3RoaXMucHJvY2Vzc0xvY2FsSW5mb09iai5wb3J0fWAsXG4gICAgfSk7XG4gICAgdGhpcy5wb3J0c0NvbnRyb2xsZXIgPSByZWZSZW1vdGUuZ2V0SW5zdGFuY2VCeShQb3J0c0NvbnRyb2xsZXIpO1xuICAgIHJldHVybiB0aGlzLnBvcnRzQ29udHJvbGxlcjtcbiAgfVxuXG5cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGVhZGVyVGV4dCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiAnVENQL1VEUHxQb3J0cyBEQic7XG4gIH1cblxuXG5cbiAgcHJvdGVjdGVkIHRleHRIZWFkZXJTdHlsZSgpOiBDZm9udFN0eWxlIHtcbiAgICByZXR1cm4gJ2Jsb2NrJztcbiAgfVxuXG5cblxuICAvKipcbiAgICogc3RhcnQgbm9ybWFsbHkgcHJvY2Vzc1xuICAgKiB0aGlzIHdpbGwgY3Jhc2ggaWYgcHJvY2VzcyBhbHJlYWR5IHN0YXJ0ZWRcbiAgICovXG4gIGFzeW5jIHN0YXJ0Tm9ybWFsbHlJbkN1cnJlbnRQcm9jZXNzKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcHJvdGVjdGVkIGFzeW5jIGRpc3BsYXlJdGVtc0ZvclBvcnRzU3RhdHVzKHN0YXR1czogUG9ydFN0YXR1cykge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG4gIGdldCBiYWNrQWN0aW9uKCkge1xuICAgIHJldHVybiB7XG4gICAgICBiYWNrOiB7XG4gICAgICAgIG5hbWU6ICdCYWNrJyxcbiAgICAgICAgYWN0aW9uOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuXG4gIGdldFdvcmtlclRlcm1pbmFsQWN0aW9ucygpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2Jhc2UvdGNwLXVkcC1wb3J0cy90Y3AtdXBkLXBvcnRzLndvcmtlci50cyJdfQ==
298
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNwLXVwZC1wb3J0cy53b3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL3RjcC11ZHAtcG9ydHMvdGNwLXVwZC1wb3J0cy53b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLDRCQUE0QixDQUFDO0FBR3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSWhELE1BQU0sT0FBTyxXQUFZLFNBQVEsYUFBOEI7SUFHN0QsS0FBSyxDQUFDLGdDQUFnQztRQUNwQyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDOUIsQ0FBQztRQUNELE1BQU0sSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7UUFDM0MsTUFBTSxTQUFTLEdBQUcsTUFBTSxZQUFZLENBQUMsVUFBVSxDQUFDO1lBQzlDLGtCQUFrQixFQUFFLG9CQUFvQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFO1NBQ3hFLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNoRSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUlTLEtBQUssQ0FBQyxVQUFVO1FBQ3hCLE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQztJQUlTLGVBQWU7UUFDdkIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUlEOzs7T0FHRztJQUNILEtBQUssQ0FBQyw2QkFBNkI7UUFDckMsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSVMsS0FBSyxDQUFDLDBCQUEwQixDQUFDLE1BQWtCO1FBQy9ELEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlELHdCQUF3QixDQUFDLE9BQXdDO1FBQ25FLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSVMsS0FBSyxDQUFDLGVBQWU7UUFDakMsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSVMsS0FBSyxDQUFDLHdCQUF3QjtRQUMxQyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJUyxLQUFLLENBQUMsaUJBQWlCLENBQy9CLEtBQWEsRUFDYixLQUFhO1FBRWpCLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSVMsS0FBSyxDQUFDLDJCQUEyQjtRQUM3QyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlTLEtBQUssQ0FBQyx5QkFBeUI7UUFDM0MsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSVMsS0FBSyxDQUFDLHdCQUF3QjtRQUN0QyxNQUFNLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxHQUM5QixNQUFNLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQztZQUN6QyxJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLFlBQVk7YUFDbkI7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLFdBQVc7YUFDbEI7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsSUFBSSxFQUFFLFVBQVU7YUFDakI7WUFDRCxVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLGtDQUFrQzthQUN6QztTQUNGLENBQUMsQ0FBQztRQUVMLFFBQVEsWUFBWSxFQUFFLENBQUM7WUFDckIsS0FBSyxVQUFVO2dCQUNiLE1BQU0sSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7Z0JBQ3ZDLE1BQU07WUFDUixLQUFLLFNBQVM7Z0JBQ1osTUFBTSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztnQkFDdEMsTUFBTTtZQUNSLEtBQUssWUFBWTtnQkFDZixNQUFNLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO2dCQUN6QyxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7Q0FFRjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsdUZBQXVGIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuaW1wb3J0IHsgQmFzZUNsaVdvcmtlciwgQ2ZvbnRTdHlsZSB9IGZyb20gJy4uL2NsYXNzZXMvYmFzZS1jbGktd29ya2VyJztcbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgSGVscGVycywgUG9ydCwgUG9ydFN0YXR1cywgUG9ydFN0YXR1c0FyciB9IGZyb20gJy4uLy4uL2luZGV4JztcbmltcG9ydCB7IFBvcnRzQ29udHJvbGxlciB9IGZyb20gJy4uL3RjcC11ZHAtcG9ydHMvcG9ydHMuY29udHJvbGxlcic7XG5pbXBvcnQgeyBQb3J0c0NvbnRleHQgfSBmcm9tICcuLi90Y3AtdWRwLXBvcnRzL3RjcC11ZHAtcG9ydHMuY29udGV4dCc7XG5pbXBvcnQgeyBVdGlsc1Rlcm1pbmFsIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IGNoYWxrIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcblxuXG5leHBvcnQgY2xhc3MgUG9ydHNXb3JrZXIgZXh0ZW5kcyBCYXNlQ2xpV29ya2VyPFBvcnRzQ29udHJvbGxlcj4ge1xuXG4gIHByaXZhdGUgcG9ydHNDb250cm9sbGVyOiBQb3J0c0NvbnRyb2xsZXIgfCB1bmRlZmluZWQ7XG4gIGFzeW5jIGdldENvbnRyb2xsZXJGb3JSZW1vdGVDb25uZWN0aW9uKCk6IFByb21pc2U8UG9ydHNDb250cm9sbGVyPiB7XG4gICAgaWYgKHRoaXMucG9ydHNDb250cm9sbGVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5wb3J0c0NvbnRyb2xsZXI7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMud2FpdEZvclByb2Nlc3NQb3J0U2F2ZWRUb0Rpc2soKTtcbiAgICBjb25zdCByZWZSZW1vdGUgPSBhd2FpdCBQb3J0c0NvbnRleHQuaW5pdGlhbGl6ZSh7XG4gICAgICBvdmVycmlkZVJlbW90ZUhvc3Q6IGBodHRwOi8vbG9jYWxob3N0OiR7dGhpcy5wcm9jZXNzTG9jYWxJbmZvT2JqLnBvcnR9YCxcbiAgICB9KTtcbiAgICB0aGlzLnBvcnRzQ29udHJvbGxlciA9IHJlZlJlbW90ZS5nZXRJbnN0YW5jZUJ5KFBvcnRzQ29udHJvbGxlcik7XG4gICAgcmV0dXJuIHRoaXMucG9ydHNDb250cm9sbGVyO1xuICB9XG5cblxuXG4gIHByb3RlY3RlZCBhc3luYyBoZWFkZXJUZXh0KCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuICdUQ1AvVURQfFBvcnRzIERCJztcbiAgfVxuXG5cblxuICBwcm90ZWN0ZWQgdGV4dEhlYWRlclN0eWxlKCk6IENmb250U3R5bGUge1xuICAgIHJldHVybiAnYmxvY2snO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBzdGFydCBub3JtYWxseSBwcm9jZXNzXG4gICAqIHRoaXMgd2lsbCBjcmFzaCBpZiBwcm9jZXNzIGFscmVhZHkgc3RhcnRlZFxuICAgKi9cbiAgYXN5bmMgc3RhcnROb3JtYWxseUluQ3VycmVudFByb2Nlc3MoKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcHJvdGVjdGVkIGFzeW5jIGRpc3BsYXlJdGVtc0ZvclBvcnRzU3RhdHVzKHN0YXR1czogUG9ydFN0YXR1cykge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGdldFdvcmtlclRlcm1pbmFsQWN0aW9ucyhvcHRpb25zPzogeyBleGl0SXNPbmx5UmV0dXJuPzogYm9vbGVhbiB9KSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwcm90ZWN0ZWQgYXN5bmMgZ2V0TmV3UG9ydFRvQWRkKCk6IFByb21pc2U8bnVtYmVyPiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcHJvdGVjdGVkIGFzeW5jIGFkZFBvcnRUZXJtaW5hbFVpUHJvY2VzcygpOiBQcm9taXNlPHZvaWQ+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwcm90ZWN0ZWQgYXN5bmMgc2VsZWN0UG9ydFByb2Nlc3MoXG4gICAgcG9ydHM6IFBvcnRbXSxcbiAgICB0aXRsZTogc3RyaW5nLFxuICApOiBQcm9taXNlPFBvcnQ+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHByb3RlY3RlZCBhc3luYyBkZWxldGVQb3J0VGVybWluYWxVaVByb2Nlc3MoKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwcm90ZWN0ZWQgYXN5bmMgZWRpdFBvcnRUZXJtaW5hbFVpUHJvY2VzcygpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwcm90ZWN0ZWQgYXN5bmMgY3J1ZE1lbnVGb3JUYWtlQnlPc1BvcnRzKCkge1xuICAgIGNvbnN0IHsgc2VsZWN0ZWQ6IGFjdGlvbkNob2ljZSB9ID1cbiAgICAgIGF3YWl0IFV0aWxzVGVybWluYWwuc2VsZWN0QWN0aW9uQW5kRXhlY3V0ZSh7XG4gICAgICAgIGJhY2s6IHtcbiAgICAgICAgICBuYW1lOiAnIC0gYmFjayAtICcsXG4gICAgICAgIH0sXG4gICAgICAgIGVkaXRQb3J0OiB7XG4gICAgICAgICAgbmFtZTogJ0VkaXQgcG9ydCcsXG4gICAgICAgIH0sXG4gICAgICAgIGFkZFBvcnQ6IHtcbiAgICAgICAgICBuYW1lOiAnQWRkIHBvcnQnLFxuICAgICAgICB9LFxuICAgICAgICBkZWxldGVQb3J0OiB7XG4gICAgICAgICAgbmFtZTogJ0RlbGV0ZSBwb3J0IChtYWtlIGl0IHVuYXNzaWduZWQpJyxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgc3dpdGNoIChhY3Rpb25DaG9pY2UpIHtcbiAgICAgIGNhc2UgJ2VkaXRQb3J0JzpcbiAgICAgICAgYXdhaXQgdGhpcy5lZGl0UG9ydFRlcm1pbmFsVWlQcm9jZXNzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYWRkUG9ydCc6XG4gICAgICAgIGF3YWl0IHRoaXMuYWRkUG9ydFRlcm1pbmFsVWlQcm9jZXNzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZGVsZXRlUG9ydCc6XG4gICAgICAgIGF3YWl0IHRoaXMuZGVsZXRlUG9ydFRlcm1pbmFsVWlQcm9jZXNzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvYmFzZS90Y3AtdWRwLXBvcnRzL3RjcC11cGQtcG9ydHMud29ya2VyLnRzIl19
@@ -2,9 +2,6 @@ export * from './validators/validators';
2
2
  export { HelpersAngular } from './helpers/for-browser/angular.helper';
3
3
  export * from './utils';
4
4
  import { HelpersTaon as Base } from './helpers/helpers';
5
- /**
6
- * Taon helpers
7
- */ // @ts-ignore
8
5
  export const Helpers = Base.Instance;
9
6
  export * from './base';
10
7
  export * from './models';
@@ -12,4 +9,4 @@ export * from './models';
12
9
  /* */
13
10
  ;
14
11
  ({}); // @--end-of-file-for-module=tnp-helpers lib/index.ts
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxjQUFjLHlCQUF5QixDQUFDO0FBRXhDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUd0RSxjQUFjLFNBQVMsQ0FBQztBQUN4QixPQUFPLEVBQUUsV0FBVyxJQUFJLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hEOztHQUVHLENBQUMsYUFBYTtBQUNqQixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQVMsSUFBSSxDQUFDLFFBQWdCLENBQUM7QUFDbkQsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxVQUFVLENBQUM7QUFDekIsS0FBSztBQUNMLEtBQUs7QUFHSixDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHFEQUFxRCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5leHBvcnQgKiBmcm9tICcuL3ZhbGlkYXRvcnMvdmFsaWRhdG9ycyc7XG5cbmV4cG9ydCB7IEhlbHBlcnNBbmd1bGFyIH0gZnJvbSAnLi9oZWxwZXJzL2Zvci1icm93c2VyL2FuZ3VsYXIuaGVscGVyJztcblxuXG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEhlbHBlcnNUYW9uIGFzIEJhc2UgfSBmcm9tICcuL2hlbHBlcnMvaGVscGVycyc7XG4vKipcbiAqIFRhb24gaGVscGVyc1xuICovIC8vIEB0cy1pZ25vcmVcbmV4cG9ydCBjb25zdCBIZWxwZXJzOiBCYXNlID0gQmFzZS5JbnN0YW5jZSBhcyBCYXNlO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzJztcbi8qICovXG4vKiAqL1xuICBcblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9pbmRleC50cyJdfQ==
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxjQUFjLHlCQUF5QixDQUFDO0FBRXhDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUd0RSxjQUFjLFNBQVMsQ0FBQztBQUN4QixPQUFPLEVBQUUsV0FBVyxJQUFJLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBUyxJQUFJLENBQUMsUUFBZ0IsQ0FBQztBQUNuRCxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFVBQVUsQ0FBQztBQUN6QixLQUFLO0FBQ0wsS0FBSztBQUdKLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMscURBQXFEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdG9ycy92YWxpZGF0b3JzJztcblxuZXhwb3J0IHsgSGVscGVyc0FuZ3VsYXIgfSBmcm9tICcuL2hlbHBlcnMvZm9yLWJyb3dzZXIvYW5ndWxhci5oZWxwZXInO1xuXG5cbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgSGVscGVyc1Rhb24gYXMgQmFzZSB9IGZyb20gJy4vaGVscGVycy9oZWxwZXJzJztcbmV4cG9ydCBjb25zdCBIZWxwZXJzOiBCYXNlID0gQmFzZS5JbnN0YW5jZSBhcyBCYXNlO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzJztcbi8qICovXG4vKiAqL1xuICBcblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9pbmRleC50cyJdfQ==
@@ -2,4 +2,4 @@ import * as core from 'tnp-core/websql';
2
2
  export const BaseProjectTypeArr = core.CoreModels.BaseProjectTypeArr;
3
3
  ;
4
4
  ({}); // @--end-of-file-for-module=tnp-helpers lib/models.ts
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxJQUFJLE1BQU0saUJBQWlCLENBQUM7QUFJeEMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQztBQXVGcEUsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxzREFBc0QiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0ICogYXMgY29yZSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHR5cGUgeyBCYXNlUHJvamVjdCwgVHlwZU9mQ29tbWl0IH0gZnJvbSAnLi9iYXNlJztcblxuZXhwb3J0IHR5cGUgQmFzZVByb2plY3RUeXBlID0gY29yZS5Db3JlTW9kZWxzLkJhc2VQcm9qZWN0VHlwZTtcbmV4cG9ydCBjb25zdCBCYXNlUHJvamVjdFR5cGVBcnIgPSBjb3JlLkNvcmVNb2RlbHMuQmFzZVByb2plY3RUeXBlQXJyO1xuXG4vKipcbiAqIEFuZ3VsYXIgcHJvamVjdCB0eXBlXG4gKi9cbmV4cG9ydCB0eXBlIE5nUHJvamVjdCA9IHtcbiAgcHJvamVjdFR5cGU6ICdsaWJyYXJ5JyB8ICdhcHBsaWNhdGlvbic7XG4gIC8qKlxuICAgKiB3aGVyZSBuZy1wYWNrYWdyLmpzb24gaXMgbG9jYXRlZCwgdHNjb25maWcgZXRjLlxuICAgKi9cbiAgcm9vdDogc3RyaW5nO1xuICAvKipcbiAgICogU291cmNlIGNvZGUgcHJvamVjdFxuICAgKi9cbiAgc291cmNlUm9vdDogc3RyaW5nO1xuICBwcmVmaXg6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIExpYnJhcnlCdWlsZENvbW1hbmRPcHRpb25zID0ge1xuICB3YXRjaD86IGJvb2xlYW47XG4gIGJ1aWxkVHlwZTogY29yZS5Db3JlTW9kZWxzLkxpYnJhcnlUeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgTGlicmFyaWVzQnVpbGRPcHRpb25zPFBST0pFQ1QgZXh0ZW5kcyBCYXNlUHJvamVjdCA9IEJhc2VQcm9qZWN0PiA9IHtcbiAgc3RyYXRlZ3k/OiAnbGluaycgfCAnY29weSc7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiB0aGlzIHdpbGwgYmUgZGV0ZWN0ZWQgaW4gZnV0dXJlXG4gICAqL1xuICBidWlsZFR5cGU6IGNvcmUuQ29yZU1vZGVscy5MaWJyYXJ5VHlwZTtcbiAgLyoqXG4gICAqIGJ5IGRlZmF1bHQgd2UgYXJlIGNvcHlpbmcgYWxsIGxpYnJhcmllcyB0byBub2RlX21vZHVsZXMgb2YgaXRzZWxmXG4gICAqL1xuICBjb3B5bGlua190b19ub2RlX21vZHVsZXM/OiBzdHJpbmdbXTtcbiAgcmVsZWFzZUJ1aWxkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIG92ZXJyaWRlIGJ1aWxkIG9wdGlvbnMgZm9yIHNwZWNpZmljIGxpYnJhcmllc1xuICAgKiBAdG9kb1xuICAgKi9cbiAgbGlicmFyaWVzPzogUFJPSkVDVFtdO1xuICBvdXRwdXRMaW5lUmVwbGFjZT86IChcbiAgICBsaWJGb3JPdXRwdXQ6IFBST0pFQ1QsXG4gICAgdXNlRXh0ZXJuYWxQcm92aWRlZExpYnM6IGJvb2xlYW4sXG4gICkgPT4gKGxpbmU6IHN0cmluZykgPT4gc3RyaW5nO1xuICB1c2VMYXN0VXNlckNvbmZpZ3VyYXRpb24/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgVGVzdEJ1aWxkT3B0aW9ucyA9IHtcbiAgb25seVNwZWN5ZmljRmlsZXM/OiBzdHJpbmdbXTtcbiAgdXBkYXRlU25hcHNob3Q/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2Vsb2dEYXRhIHtcbiAgY2hhbmdlczogc3RyaW5nW107XG4gIHZlcnNpb246IHN0cmluZztcbiAgZGF0ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1c2hQcm9jZXNzT3B0aW9ucyB7XG4gIGZvcmNlPzogYm9vbGVhbjtcbiAgdHlwZW9mQ29tbWl0PzogVHlwZU9mQ29tbWl0O1xuICBtZXJnZVVwZGF0ZUNvbW1pdHM/OiBib29sZWFuO1xuICBhc2tUb0NvbmZpcm1QdXNoPzogYm9vbGVhbjtcbiAgYXNrVG9Db25maXJtQ29tbWl0PzogYm9vbGVhbjtcbiAgc2tpcExpbnQ/OiBib29sZWFuO1xuICBhc2tUb0NvbmZpcm1CcmFuY2hDaGFuZ2U/OiBib29sZWFuO1xuICBvcmlnaW4/OiBzdHJpbmc7XG4gIGFyZ3M/OiBzdHJpbmdbXTtcbiAgc2V0T3JpZ2luPzogJ3NzaCcgfCAnaHR0cCc7XG4gIGV4aXRDYWxsQmFjaz86ICgpID0+IHZvaWQ7XG4gIGZvcmNlUHVzaE5vUXVlc3Rpb24/OiBib29sZWFuO1xuICBvdmVycmlkZUNvbW1pdE1lc3NhZ2U/OiBzdHJpbmc7XG4gIGNvbW1pdE1lc3NhZ2VSZXF1aXJlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBvbmx5IG5lZWRlZCB3aGVuIHB1c2ggZ2l0aHViXG4gICAqIGFuZCBJIGZvcmdvdCB0byBhZGQgbXkgdXNlcm5hbWUgYmVmb3JlIGlzc3VlXG4gICAqIHRhb24gcGZpeCBwcm9wZXIgaW5wdXQgbXktcmVwbyMzNDRcbiAgICogdGhhdCBzaG91bGQgYmVcbiAgICogdGFvbiBwZml4IHByb3BlciBpbnB1dCBteS11c2VybmFtZS9teS1yZXBvIzM0NFxuICAgKi9cbiAgY3VycmVudE9yaWdpbj86IHN0cmluZztcbiAgc2tpcENoaWxkcmVuPzogYm9vbGVhbjtcbiAgbm9FeGl0PzogYm9vbGVhbjtcbn1cblxuXG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvbW9kZWxzLnRzIl19
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxJQUFJLE1BQU0saUJBQWlCLENBQUM7QUFJeEMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQztBQStFcEUsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxzREFBc0QiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0ICogYXMgY29yZSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHR5cGUgeyBCYXNlUHJvamVjdCwgVHlwZU9mQ29tbWl0IH0gZnJvbSAnLi9iYXNlJztcblxuZXhwb3J0IHR5cGUgQmFzZVByb2plY3RUeXBlID0gY29yZS5Db3JlTW9kZWxzLkJhc2VQcm9qZWN0VHlwZTtcbmV4cG9ydCBjb25zdCBCYXNlUHJvamVjdFR5cGVBcnIgPSBjb3JlLkNvcmVNb2RlbHMuQmFzZVByb2plY3RUeXBlQXJyO1xuXG4vKipcbiAqIEFuZ3VsYXIgcHJvamVjdCB0eXBlXG4gKi9cbmV4cG9ydCB0eXBlIE5nUHJvamVjdCA9IHtcbiAgcHJvamVjdFR5cGU6ICdsaWJyYXJ5JyB8ICdhcHBsaWNhdGlvbic7XG4gIC8qKlxuICAgKiB3aGVyZSBuZy1wYWNrYWdyLmpzb24gaXMgbG9jYXRlZCwgdHNjb25maWcgZXRjLlxuICAgKi9cbiAgcm9vdDogc3RyaW5nO1xuICAvKipcbiAgICogU291cmNlIGNvZGUgcHJvamVjdFxuICAgKi9cbiAgc291cmNlUm9vdDogc3RyaW5nO1xuICBwcmVmaXg6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIExpYnJhcnlCdWlsZENvbW1hbmRPcHRpb25zID0ge1xuICB3YXRjaD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBMaWJyYXJpZXNCdWlsZE9wdGlvbnM8UFJPSkVDVCBleHRlbmRzIEJhc2VQcm9qZWN0ID0gQmFzZVByb2plY3Q+ID0ge1xuICBzdHJhdGVneT86ICdsaW5rJyB8ICdjb3B5JztcbiAgLyoqXG4gICAqIGJ5IGRlZmF1bHQgd2UgYXJlIGNvcHlpbmcgYWxsIGxpYnJhcmllcyB0byBub2RlX21vZHVsZXMgb2YgaXRzZWxmXG4gICAqL1xuICBjb3B5bGlua190b19ub2RlX21vZHVsZXM/OiBzdHJpbmdbXTtcbiAgcmVsZWFzZUJ1aWxkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIG92ZXJyaWRlIGJ1aWxkIG9wdGlvbnMgZm9yIHNwZWNpZmljIGxpYnJhcmllc1xuICAgKiBAdG9kb1xuICAgKi9cbiAgbGlicmFyaWVzPzogUFJPSkVDVFtdO1xuICBvdXRwdXRMaW5lUmVwbGFjZT86IChcbiAgICBsaWJGb3JPdXRwdXQ6IFBST0pFQ1QsXG4gICAgdXNlRXh0ZXJuYWxQcm92aWRlZExpYnM6IGJvb2xlYW4sXG4gICkgPT4gKGxpbmU6IHN0cmluZykgPT4gc3RyaW5nO1xuICB1c2VMYXN0VXNlckNvbmZpZ3VyYXRpb24/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgVGVzdEJ1aWxkT3B0aW9ucyA9IHtcbiAgb25seVNwZWN5ZmljRmlsZXM/OiBzdHJpbmdbXTtcbiAgdXBkYXRlU25hcHNob3Q/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2Vsb2dEYXRhIHtcbiAgY2hhbmdlczogc3RyaW5nW107XG4gIHZlcnNpb246IHN0cmluZztcbiAgZGF0ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1c2hQcm9jZXNzT3B0aW9ucyB7XG4gIGZvcmNlPzogYm9vbGVhbjtcbiAgdHlwZW9mQ29tbWl0PzogVHlwZU9mQ29tbWl0O1xuICBtZXJnZVVwZGF0ZUNvbW1pdHM/OiBib29sZWFuO1xuICBhc2tUb0NvbmZpcm1QdXNoPzogYm9vbGVhbjtcbiAgYXNrVG9Db25maXJtQ29tbWl0PzogYm9vbGVhbjtcbiAgc2tpcExpbnQ/OiBib29sZWFuO1xuICBhc2tUb0NvbmZpcm1CcmFuY2hDaGFuZ2U/OiBib29sZWFuO1xuICBvcmlnaW4/OiBzdHJpbmc7XG4gIGFyZ3M/OiBzdHJpbmdbXTtcbiAgc2V0T3JpZ2luPzogJ3NzaCcgfCAnaHR0cCc7XG4gIGV4aXRDYWxsQmFjaz86ICgpID0+IHZvaWQ7XG4gIGZvcmNlUHVzaE5vUXVlc3Rpb24/OiBib29sZWFuO1xuICBvdmVycmlkZUNvbW1pdE1lc3NhZ2U/OiBzdHJpbmc7XG4gIGNvbW1pdE1lc3NhZ2VSZXF1aXJlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBvbmx5IG5lZWRlZCB3aGVuIHB1c2ggZ2l0aHViXG4gICAqIGFuZCBJIGZvcmdvdCB0byBhZGQgbXkgdXNlcm5hbWUgYmVmb3JlIGlzc3VlXG4gICAqIHRhb24gcGZpeCBwcm9wZXIgaW5wdXQgbXktcmVwbyMzNDRcbiAgICogdGhhdCBzaG91bGQgYmVcbiAgICogdGFvbiBwZml4IHByb3BlciBpbnB1dCBteS11c2VybmFtZS9teS1yZXBvIzM0NFxuICAgKi9cbiAgY3VycmVudE9yaWdpbj86IHN0cmluZztcbiAgc2tpcENoaWxkcmVuPzogYm9vbGVhbjtcbiAgbm9FeGl0PzogYm9vbGVhbjtcbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9tb2RlbHMudHMiXX0=
@@ -1,6 +1,6 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { Taon } from 'taon/websql';
3
- import { NotAssignablePort, PortsController } from '../lib';
3
+ import { Port, PortsController } from '../lib';
4
4
  const portsWithDescription = {
5
5
  3000: 'Commonly used for development servers',
6
6
  3001: 'Alternate development server port',
@@ -28,20 +28,28 @@ let PortsContext_1736199486472_addingNotAssignablePorts = class PortsContext_173
28
28
  this.commonPortsFrom3000to6000 = Object.keys(portsWithDescription).map(Number);
29
29
  }
30
30
  async up(queryRunner) {
31
- const db = await queryRunner.manager.getRepository(NotAssignablePort);
32
- const allPorts = this.commonPortsFrom3000to6000.map(port => NotAssignablePort.from({
31
+ const db = await queryRunner.manager.getRepository(Port);
32
+ const allPorts = this.commonPortsFrom3000to6000.map(port => Port.from({
33
33
  port,
34
34
  serviceId: `not assignable (${portsWithDescription[port]})`,
35
+ status: 'assigned-taken-by-os',
35
36
  }));
36
37
  await db.save(allPorts);
37
38
  for (const commonPortObj of allPorts) {
38
- this.portsController.takenByOsPorts.set(commonPortObj.port, commonPortObj);
39
+ this.portsController.portsCache.set(commonPortObj.serviceId, commonPortObj);
39
40
  }
40
41
  }
41
42
  async down(queryRunner) {
42
- const db = await queryRunner.manager.getRepository(NotAssignablePort);
43
- db.clear();
44
- this.portsController.takenByOsPorts.clear();
43
+ const db = await queryRunner.manager.getRepository(Port);
44
+ await db.remove(await db.find({
45
+ where: {
46
+ status: 'assigned-taken-by-os',
47
+ },
48
+ }));
49
+ const allPorts = Array.from(this.portsController.portsCache.values()).filter(f => f.status === 'assigned-taken-by-os');
50
+ for (const port of allPorts) {
51
+ this.portsController.portsCache.delete(port.serviceId);
52
+ }
45
53
  }
46
54
  };
47
55
  PortsContext_1736199486472_addingNotAssignablePorts = __decorate([
@@ -52,4 +60,4 @@ PortsContext_1736199486472_addingNotAssignablePorts = __decorate([
52
60
  export { PortsContext_1736199486472_addingNotAssignablePorts };
53
61
  ;
54
62
  ({}); // @--end-of-file-for-module=tnp-helpers migrations/1736199486472_addingNotAssignablePorts.ts
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTczNjE5OTQ4NjQ3Ml9hZGRpbmdOb3RBc3NpZ25hYmxlUG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL21pZ3JhdGlvbnMvMTczNjE5OTQ4NjQ3Ml9hZGRpbmdOb3RBc3NpZ25hYmxlUG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHbkMsT0FBTyxFQUFFLGlCQUFpQixFQUFRLGVBQWUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVsRSxNQUFNLG9CQUFvQixHQUFHO0lBQzNCLElBQUksRUFBRSx1Q0FBdUM7SUFDN0MsSUFBSSxFQUFFLG1DQUFtQztJQUN6QyxJQUFJLEVBQUUsT0FBTztJQUNiLElBQUksRUFBRSwrQkFBK0I7SUFDckMsSUFBSSxFQUFFLDRDQUE0QztJQUNsRCxJQUFJLEVBQUUscUNBQXFDO0lBQzNDLElBQUksRUFBRSxnQ0FBZ0M7SUFDdEMsSUFBSSxFQUFFLHFCQUFxQjtJQUMzQixJQUFJLEVBQUUsc0JBQXNCO0lBQzVCLElBQUksRUFBRSxtREFBbUQ7SUFDekQsSUFBSSxFQUFFLFlBQVk7SUFDbEIsSUFBSSxFQUFFLGlDQUFpQztJQUN2QyxJQUFJLEVBQUUsVUFBVTtJQUNoQixJQUFJLEVBQUUsMkJBQTJCO0lBQ2pDLElBQUksRUFBRSxvQkFBb0I7SUFDMUIsSUFBSSxFQUFFLFNBQVM7SUFDZixJQUFJLEVBQUUsOEJBQThCO0NBQ3JDLENBQUM7QUFLSyxJQUFNLG1EQUFtRCxHQUF6RCxNQUFNLG1EQUFvRCxTQUFRLElBQUk7S0FDMUUsSUFBSSxDQUFDLFNBQVM7SUFEVjs7UUFFSyxvQkFBZSxHQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFeEIsOEJBQXlCLEdBQ3hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUF5QmxELENBQUM7SUF2QkMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxXQUF3QjtRQUMvQixNQUFNLEVBQUUsR0FBRyxNQUFNLFdBQVcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFdEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUN6RCxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7WUFDckIsSUFBSTtZQUNKLFNBQVMsRUFBRSxtQkFBbUIsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEdBQUc7U0FDNUQsQ0FBQyxDQUNILENBQUM7UUFDRixNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEIsS0FBSyxNQUFNLGFBQWEsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQ3JDLGFBQWEsQ0FBQyxJQUFJLEVBQ2xCLGFBQWEsQ0FDZCxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQXdCO1FBQ2pDLE1BQU0sRUFBRSxHQUFHLE1BQU0sV0FBVyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN0RSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0NBQ0YsQ0FBQTtBQS9CWSxtREFBbUQ7SUFIL0QsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNkLFNBQVMsRUFBRSxxREFBcUQ7S0FDakUsQ0FBQztHQUNXLG1EQUFtRCxDQStCL0Q7O0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyw2RkFBNkYiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgVGFvbiB9IGZyb20gJ3Rhb24vd2Vic3FsJztcbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgUXVlcnlSdW5uZXIgfSBmcm9tICd0YW9uLXR5cGVvcm0vd2Vic3FsJztcbmltcG9ydCB7IE5vdEFzc2lnbmFibGVQb3J0LCBQb3J0LCBQb3J0c0NvbnRyb2xsZXIgfSBmcm9tICcuLi9saWInO1xuXG5jb25zdCBwb3J0c1dpdGhEZXNjcmlwdGlvbiA9IHtcbiAgMzAwMDogJ0NvbW1vbmx5IHVzZWQgZm9yIGRldmVsb3BtZW50IHNlcnZlcnMnLFxuICAzMDAxOiAnQWx0ZXJuYXRlIGRldmVsb3BtZW50IHNlcnZlciBwb3J0JyxcbiAgMzMwNjogJ015U1FMJyxcbiAgMzM4OTogJ1JlbW90ZSBEZXNrdG9wIFByb3RvY29sIChSRFApJyxcbiAgMzQ3ODogJ1NUVU4gKFNlc3Npb24gVHJhdmVyc2FsIFV0aWxpdGllcyBmb3IgTkFUKScsXG4gIDQwMDA6ICdBbHRlcm5hdGl2ZSBkZXZlbG9wbWVudCBzZXJ2ZXIgcG9ydCcsXG4gIDQyMDA6ICdBbmd1bGFyIENMSSBEZXZlbG9wbWVudCBTZXJ2ZXInLFxuICA0NTAwOiAnSVBTZWMgTkFUIHRyYXZlcnNhbCcsXG4gIDQ1Njc6ICdTaW5hdHJhIERlZmF1bHQgUG9ydCcsXG4gIDUwMDA6ICdGbGFzaywgUHl0aG9uIGRldmVsb3BtZW50IHNlcnZlciwgb3IgTm9kZS5qcyBhcHBzJyxcbiAgNTQzMjogJ1Bvc3RncmVTUUwnLFxuICA1NTAwOiAnTGl2ZSBTZXJ2ZXIgKFZTIENvZGUgRXh0ZW5zaW9uKScsXG4gIDU2NzI6ICdSYWJiaXRNUScsXG4gIDU4MDA6ICdWTkMgUmVtb3RlIERlc2t0b3AgKEhUVFApJyxcbiAgNTkwMDogJ1ZOQyBSZW1vdGUgRGVza3RvcCcsXG4gIDU5ODQ6ICdDb3VjaERCJyxcbiAgNjAwMDogJ2luIHVzZSBieSBzb21ldGhpbmcgaW4gbWFjb3MnLFxufTtcblxuQFRhb24uTWlncmF0aW9uKHtcbiAgY2xhc3NOYW1lOiAnUG9ydHNDb250ZXh0XzE3MzYxOTk0ODY0NzJfYWRkaW5nTm90QXNzaWduYWJsZVBvcnRzJyxcbn0pXG5leHBvcnQgY2xhc3MgUG9ydHNDb250ZXh0XzE3MzYxOTk0ODY0NzJfYWRkaW5nTm90QXNzaWduYWJsZVBvcnRzIGV4dGVuZHMgVGFvblxuICAuQmFzZS5NaWdyYXRpb24ge1xuICBwcm90ZWN0ZWQgcG9ydHNDb250cm9sbGVyOiBQb3J0c0NvbnRyb2xsZXIgPVxuICAgIHRoaXMuaW5qZWN0Q29udHJvbGxlcihQb3J0c0NvbnRyb2xsZXIpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY29tbW9uUG9ydHNGcm9tMzAwMHRvNjAwMDogbnVtYmVyW10gPVxuICAgIE9iamVjdC5rZXlzKHBvcnRzV2l0aERlc2NyaXB0aW9uKS5tYXAoTnVtYmVyKTtcblxuICBhc3luYyB1cChxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IGRiID0gYXdhaXQgcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KE5vdEFzc2lnbmFibGVQb3J0KTtcblxuICAgIGNvbnN0IGFsbFBvcnRzID0gdGhpcy5jb21tb25Qb3J0c0Zyb20zMDAwdG82MDAwLm1hcChwb3J0ID0+XG4gICAgICBOb3RBc3NpZ25hYmxlUG9ydC5mcm9tKHtcbiAgICAgICAgcG9ydCxcbiAgICAgICAgc2VydmljZUlkOiBgbm90IGFzc2lnbmFibGUgKCR7cG9ydHNXaXRoRGVzY3JpcHRpb25bcG9ydF19KWAsXG4gICAgICB9KSxcbiAgICApO1xuICAgIGF3YWl0IGRiLnNhdmUoYWxsUG9ydHMpO1xuICAgIGZvciAoY29uc3QgY29tbW9uUG9ydE9iaiBvZiBhbGxQb3J0cykge1xuICAgICAgdGhpcy5wb3J0c0NvbnRyb2xsZXIudGFrZW5CeU9zUG9ydHMuc2V0KFxuICAgICAgICBjb21tb25Qb3J0T2JqLnBvcnQsXG4gICAgICAgIGNvbW1vblBvcnRPYmosXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRvd24ocXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBkYiA9IGF3YWl0IHF1ZXJ5UnVubmVyLm1hbmFnZXIuZ2V0UmVwb3NpdG9yeShOb3RBc3NpZ25hYmxlUG9ydCk7XG4gICAgZGIuY2xlYXIoKTtcbiAgICB0aGlzLnBvcnRzQ29udHJvbGxlci50YWtlbkJ5T3NQb3J0cy5jbGVhcigpO1xuICB9XG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBtaWdyYXRpb25zLzE3MzYxOTk0ODY0NzJfYWRkaW5nTm90QXNzaWduYWJsZVBvcnRzLnRzIl19
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTczNjE5OTQ4NjQ3Ml9hZGRpbmdOb3RBc3NpZ25hYmxlUG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL21pZ3JhdGlvbnMvMTczNjE5OTQ4NjQ3Ml9hZGRpbmdOb3RBc3NpZ25hYmxlUG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHbkMsT0FBTyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFL0MsTUFBTSxvQkFBb0IsR0FBRztJQUMzQixJQUFJLEVBQUUsdUNBQXVDO0lBQzdDLElBQUksRUFBRSxtQ0FBbUM7SUFDekMsSUFBSSxFQUFFLE9BQU87SUFDYixJQUFJLEVBQUUsK0JBQStCO0lBQ3JDLElBQUksRUFBRSw0Q0FBNEM7SUFDbEQsSUFBSSxFQUFFLHFDQUFxQztJQUMzQyxJQUFJLEVBQUUsZ0NBQWdDO0lBQ3RDLElBQUksRUFBRSxxQkFBcUI7SUFDM0IsSUFBSSxFQUFFLHNCQUFzQjtJQUM1QixJQUFJLEVBQUUsbURBQW1EO0lBQ3pELElBQUksRUFBRSxZQUFZO0lBQ2xCLElBQUksRUFBRSxpQ0FBaUM7SUFDdkMsSUFBSSxFQUFFLFVBQVU7SUFDaEIsSUFBSSxFQUFFLDJCQUEyQjtJQUNqQyxJQUFJLEVBQUUsb0JBQW9CO0lBQzFCLElBQUksRUFBRSxTQUFTO0lBQ2YsSUFBSSxFQUFFLDhCQUE4QjtDQUNyQyxDQUFDO0FBS0ssSUFBTSxtREFBbUQsR0FBekQsTUFBTSxtREFBb0QsU0FBUSxJQUFJO0tBQzFFLElBQUksQ0FBQyxTQUFTO0lBRFY7O1FBRUssb0JBQWUsR0FDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXhCLDhCQUF5QixHQUN4QyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBcUNsRCxDQUFDO0lBbkNDLEtBQUssQ0FBQyxFQUFFLENBQUMsV0FBd0I7UUFDL0IsTUFBTSxFQUFFLEdBQUcsTUFBTSxXQUFXLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV6RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ3pELElBQUksQ0FBQyxJQUFJLENBQUM7WUFDUixJQUFJO1lBQ0osU0FBUyxFQUFFLG1CQUFtQixvQkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRztZQUMzRCxNQUFNLEVBQUUsc0JBQXNCO1NBQy9CLENBQUMsQ0FDSCxDQUFDO1FBQ0YsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hCLEtBQUssTUFBTSxhQUFhLElBQUksUUFBUSxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUNqQyxhQUFhLENBQUMsU0FBUyxFQUN2QixhQUFhLENBQ2QsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUF3QjtRQUNqQyxNQUFNLEVBQUUsR0FBRyxNQUFNLFdBQVcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pELE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FDYixNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDWixLQUFLLEVBQUU7Z0JBQ0wsTUFBTSxFQUFFLHNCQUFzQjthQUMvQjtTQUNGLENBQUMsQ0FDSCxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQ3pDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ25ELEtBQUssTUFBTSxJQUFJLElBQUksUUFBUSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztDQUNGLENBQUE7QUEzQ1ksbURBQW1EO0lBSC9ELElBQUksQ0FBQyxTQUFTLENBQUM7UUFDZCxTQUFTLEVBQUUscURBQXFEO0tBQ2pFLENBQUM7R0FDVyxtREFBbUQsQ0EyQy9EOztBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsNkZBQTZGIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IFRhb24gfSBmcm9tICd0YW9uL3dlYnNxbCc7XG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IFF1ZXJ5UnVubmVyIH0gZnJvbSAndGFvbi10eXBlb3JtL3dlYnNxbCc7XG5pbXBvcnQgeyBQb3J0LCBQb3J0c0NvbnRyb2xsZXIgfSBmcm9tICcuLi9saWInO1xuXG5jb25zdCBwb3J0c1dpdGhEZXNjcmlwdGlvbiA9IHtcbiAgMzAwMDogJ0NvbW1vbmx5IHVzZWQgZm9yIGRldmVsb3BtZW50IHNlcnZlcnMnLFxuICAzMDAxOiAnQWx0ZXJuYXRlIGRldmVsb3BtZW50IHNlcnZlciBwb3J0JyxcbiAgMzMwNjogJ015U1FMJyxcbiAgMzM4OTogJ1JlbW90ZSBEZXNrdG9wIFByb3RvY29sIChSRFApJyxcbiAgMzQ3ODogJ1NUVU4gKFNlc3Npb24gVHJhdmVyc2FsIFV0aWxpdGllcyBmb3IgTkFUKScsXG4gIDQwMDA6ICdBbHRlcm5hdGl2ZSBkZXZlbG9wbWVudCBzZXJ2ZXIgcG9ydCcsXG4gIDQyMDA6ICdBbmd1bGFyIENMSSBEZXZlbG9wbWVudCBTZXJ2ZXInLFxuICA0NTAwOiAnSVBTZWMgTkFUIHRyYXZlcnNhbCcsXG4gIDQ1Njc6ICdTaW5hdHJhIERlZmF1bHQgUG9ydCcsXG4gIDUwMDA6ICdGbGFzaywgUHl0aG9uIGRldmVsb3BtZW50IHNlcnZlciwgb3IgTm9kZS5qcyBhcHBzJyxcbiAgNTQzMjogJ1Bvc3RncmVTUUwnLFxuICA1NTAwOiAnTGl2ZSBTZXJ2ZXIgKFZTIENvZGUgRXh0ZW5zaW9uKScsXG4gIDU2NzI6ICdSYWJiaXRNUScsXG4gIDU4MDA6ICdWTkMgUmVtb3RlIERlc2t0b3AgKEhUVFApJyxcbiAgNTkwMDogJ1ZOQyBSZW1vdGUgRGVza3RvcCcsXG4gIDU5ODQ6ICdDb3VjaERCJyxcbiAgNjAwMDogJ2luIHVzZSBieSBzb21ldGhpbmcgaW4gbWFjb3MnLFxufTtcblxuQFRhb24uTWlncmF0aW9uKHtcbiAgY2xhc3NOYW1lOiAnUG9ydHNDb250ZXh0XzE3MzYxOTk0ODY0NzJfYWRkaW5nTm90QXNzaWduYWJsZVBvcnRzJyxcbn0pXG5leHBvcnQgY2xhc3MgUG9ydHNDb250ZXh0XzE3MzYxOTk0ODY0NzJfYWRkaW5nTm90QXNzaWduYWJsZVBvcnRzIGV4dGVuZHMgVGFvblxuICAuQmFzZS5NaWdyYXRpb24ge1xuICBwcm90ZWN0ZWQgcG9ydHNDb250cm9sbGVyOiBQb3J0c0NvbnRyb2xsZXIgPVxuICAgIHRoaXMuaW5qZWN0Q29udHJvbGxlcihQb3J0c0NvbnRyb2xsZXIpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY29tbW9uUG9ydHNGcm9tMzAwMHRvNjAwMDogbnVtYmVyW10gPVxuICAgIE9iamVjdC5rZXlzKHBvcnRzV2l0aERlc2NyaXB0aW9uKS5tYXAoTnVtYmVyKTtcblxuICBhc3luYyB1cChxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IGRiID0gYXdhaXQgcXVlcnlSdW5uZXIubWFuYWdlci5nZXRSZXBvc2l0b3J5KFBvcnQpO1xuXG4gICAgY29uc3QgYWxsUG9ydHMgPSB0aGlzLmNvbW1vblBvcnRzRnJvbTMwMDB0bzYwMDAubWFwKHBvcnQgPT5cbiAgICAgIFBvcnQuZnJvbSh7XG4gICAgICAgIHBvcnQsXG4gICAgICAgIHNlcnZpY2VJZDogYG5vdCBhc3NpZ25hYmxlICgke3BvcnRzV2l0aERlc2NyaXB0aW9uW3BvcnRdfSlgLFxuICAgICAgICBzdGF0dXM6ICdhc3NpZ25lZC10YWtlbi1ieS1vcycsXG4gICAgICB9KSxcbiAgICApO1xuICAgIGF3YWl0IGRiLnNhdmUoYWxsUG9ydHMpO1xuICAgIGZvciAoY29uc3QgY29tbW9uUG9ydE9iaiBvZiBhbGxQb3J0cykge1xuICAgICAgdGhpcy5wb3J0c0NvbnRyb2xsZXIucG9ydHNDYWNoZS5zZXQoXG4gICAgICAgIGNvbW1vblBvcnRPYmouc2VydmljZUlkLFxuICAgICAgICBjb21tb25Qb3J0T2JqLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBkb3duKHF1ZXJ5UnVubmVyOiBRdWVyeVJ1bm5lcik6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgZGIgPSBhd2FpdCBxdWVyeVJ1bm5lci5tYW5hZ2VyLmdldFJlcG9zaXRvcnkoUG9ydCk7XG4gICAgYXdhaXQgZGIucmVtb3ZlKFxuICAgICAgYXdhaXQgZGIuZmluZCh7XG4gICAgICAgIHdoZXJlOiB7XG4gICAgICAgICAgc3RhdHVzOiAnYXNzaWduZWQtdGFrZW4tYnktb3MnLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgKTtcbiAgICBjb25zdCBhbGxQb3J0cyA9IEFycmF5LmZyb20oXG4gICAgICB0aGlzLnBvcnRzQ29udHJvbGxlci5wb3J0c0NhY2hlLnZhbHVlcygpLFxuICAgICkuZmlsdGVyKGYgPT4gZi5zdGF0dXMgPT09ICdhc3NpZ25lZC10YWtlbi1ieS1vcycpO1xuICAgIGZvciAoY29uc3QgcG9ydCBvZiBhbGxQb3J0cykge1xuICAgICAgdGhpcy5wb3J0c0NvbnRyb2xsZXIucG9ydHNDYWNoZS5kZWxldGUocG9ydC5zZXJ2aWNlSWQpO1xuICAgIH1cbiAgfVxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbWlncmF0aW9ucy8xNzM2MTk5NDg2NDcyX2FkZGluZ05vdEFzc2lnbmFibGVQb3J0cy50cyJdfQ==
@@ -11,19 +11,32 @@ let PortsContext_1736454437350_addFreePorts = class PortsContext_1736454437350_a
11
11
  async up(queryRunner) {
12
12
  const portsTableRepo = await queryRunner.manager.getRepository(Port);
13
13
  const addFreePortsInRange = _.range(this.portsController.START_PORT, this.portsController.END_PORT + 1);
14
+ const allTakeByOsPort = (await portsTableRepo.find({
15
+ where: {
16
+ status: 'assigned-taken-by-os',
17
+ },
18
+ })).map(f => f.port);
14
19
  const freePortsInRange = addFreePortsInRange.map(port => Port.from({
15
20
  port: port,
16
- serviceId: `free port ${port}`,
17
- }));
21
+ serviceId: Port.getTitleForFreePort(port),
22
+ status: 'unassigned',
23
+ })).filter(f => !allTakeByOsPort.includes(f.port));
18
24
  await portsTableRepo.save(freePortsInRange);
19
25
  for (const port of freePortsInRange) {
20
- this.portsController.assignedPorts.set(port.serviceId, port);
26
+ this.portsController.portsCache.set(port.serviceId, port);
21
27
  }
22
28
  }
23
29
  async down(queryRunner) {
24
- this.portsController.assignedPorts.clear();
25
- const portsTableRepo = await queryRunner.manager.getRepository(Port);
26
- portsTableRepo.clear();
30
+ const db = await queryRunner.manager.getRepository(Port);
31
+ await db.remove(await db.find({
32
+ where: {
33
+ status: 'unassigned',
34
+ },
35
+ }));
36
+ const allPorts = Array.from(this.portsController.portsCache.values()).filter(f => f.status === 'unassigned');
37
+ for (const port of allPorts) {
38
+ this.portsController.portsCache.delete(port.serviceId);
39
+ }
27
40
  }
28
41
  };
29
42
  PortsContext_1736454437350_addFreePorts = __decorate([
@@ -34,4 +47,4 @@ PortsContext_1736454437350_addFreePorts = __decorate([
34
47
  export { PortsContext_1736454437350_addFreePorts };
35
48
  ;
36
49
  ({}); // @--end-of-file-for-module=tnp-helpers migrations/1736454437350_addFreePorts.ts
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTczNjQ1NDQzNzM1MF9hZGRGcmVlUG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL21pZ3JhdGlvbnMvMTczNjQ1NDQzNzM1MF9hZGRGcmVlUG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbkMsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BDLE9BQU8sRUFBcUIsSUFBSSxFQUFFLGVBQWUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUszRCxJQUFNLHVDQUF1QyxHQUE3QyxNQUFNLHVDQUF3QyxTQUFRLElBQUksQ0FBQyxJQUFJO0tBQ25FLFNBQVM7SUFETDs7UUFFSyxvQkFBZSxHQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLENBQUM7SUE2QjNDLENBQUM7SUExQkMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxXQUF3QjtRQUMvQixNQUFNLGNBQWMsR0FBRyxNQUFNLFdBQVcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FDakMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQy9CLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FDbEMsQ0FBQztRQUNGLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ3RELElBQUksQ0FBQyxJQUFJLENBQUM7WUFDUixJQUFJLEVBQUUsSUFBSTtZQUNWLFNBQVMsRUFBRSxhQUFhLElBQUksRUFBRTtTQUMvQixDQUFDLENBQ0gsQ0FBQztRQUVGLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTVDLEtBQUssTUFBTSxJQUFJLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMvRCxDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBd0I7UUFFakMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0MsTUFBTSxjQUFjLEdBQUcsTUFBTSxXQUFXLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyRSxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztDQUNGLENBQUE7QUFoQ1ksdUNBQXVDO0lBSG5ELElBQUksQ0FBQyxTQUFTLENBQUM7UUFDZCxTQUFTLEVBQUUseUNBQXlDO0tBQ3JELENBQUM7R0FDVyx1Q0FBdUMsQ0FnQ25EOztBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUZBQWlGIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IFRhb24gfSBmcm9tICd0YW9uL3dlYnNxbCc7XG5pbXBvcnQgeyBRdWVyeVJ1bm5lciB9IGZyb20gJ3Rhb24tdHlwZW9ybS93ZWJzcWwnO1xuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBOb3RBc3NpZ25hYmxlUG9ydCwgUG9ydCwgUG9ydHNDb250cm9sbGVyIH0gZnJvbSAnLi4vbGliJztcblxuQFRhb24uTWlncmF0aW9uKHtcbiAgY2xhc3NOYW1lOiAnUG9ydHNDb250ZXh0XzE3MzY0NTQ0MzczNTBfYWRkRnJlZVBvcnRzJyxcbn0pXG5leHBvcnQgY2xhc3MgUG9ydHNDb250ZXh0XzE3MzY0NTQ0MzczNTBfYWRkRnJlZVBvcnRzIGV4dGVuZHMgVGFvbi5CYXNlXG4gIC5NaWdyYXRpb24ge1xuICBwcm90ZWN0ZWQgcG9ydHNDb250cm9sbGVyOiBQb3J0c0NvbnRyb2xsZXIgPVxuICAgIHRoaXMuaW5qZWN0Q29udHJvbGxlcihQb3J0c0NvbnRyb2xsZXIpO1xuXG5cbiAgYXN5bmMgdXAocXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBwb3J0c1RhYmxlUmVwbyA9IGF3YWl0IHF1ZXJ5UnVubmVyLm1hbmFnZXIuZ2V0UmVwb3NpdG9yeShQb3J0KTtcbiAgICBjb25zdCBhZGRGcmVlUG9ydHNJblJhbmdlID0gXy5yYW5nZShcbiAgICAgIHRoaXMucG9ydHNDb250cm9sbGVyLlNUQVJUX1BPUlQsXG4gICAgICB0aGlzLnBvcnRzQ29udHJvbGxlci5FTkRfUE9SVCArIDEsXG4gICAgKTtcbiAgICBjb25zdCBmcmVlUG9ydHNJblJhbmdlID0gYWRkRnJlZVBvcnRzSW5SYW5nZS5tYXAocG9ydCA9PlxuICAgICAgUG9ydC5mcm9tKHtcbiAgICAgICAgcG9ydDogcG9ydCxcbiAgICAgICAgc2VydmljZUlkOiBgZnJlZSBwb3J0ICR7cG9ydH1gLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIGF3YWl0IHBvcnRzVGFibGVSZXBvLnNhdmUoZnJlZVBvcnRzSW5SYW5nZSk7XG5cbiAgICBmb3IgKGNvbnN0IHBvcnQgb2YgZnJlZVBvcnRzSW5SYW5nZSkge1xuICAgICAgdGhpcy5wb3J0c0NvbnRyb2xsZXIuYXNzaWduZWRQb3J0cy5zZXQocG9ydC5zZXJ2aWNlSWQsIHBvcnQpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRvd24ocXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyKTogUHJvbWlzZTxhbnk+IHtcblxuICAgIHRoaXMucG9ydHNDb250cm9sbGVyLmFzc2lnbmVkUG9ydHMuY2xlYXIoKTtcbiAgICBjb25zdCBwb3J0c1RhYmxlUmVwbyA9IGF3YWl0IHF1ZXJ5UnVubmVyLm1hbmFnZXIuZ2V0UmVwb3NpdG9yeShQb3J0KTtcbiAgICBwb3J0c1RhYmxlUmVwby5jbGVhcigpO1xuICB9XG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBtaWdyYXRpb25zLzE3MzY0NTQ0MzczNTBfYWRkRnJlZVBvcnRzLnRzIl19
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTczNjQ1NDQzNzM1MF9hZGRGcmVlUG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL21pZ3JhdGlvbnMvMTczNjQ1NDQzNzM1MF9hZGRGcmVlUG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbkMsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBS3hDLElBQU0sdUNBQXVDLEdBQTdDLE1BQU0sdUNBQXdDLFNBQVEsSUFBSSxDQUFDLElBQUk7S0FDbkUsU0FBUztJQURMOztRQUVLLG9CQUFlLEdBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQWlEM0MsQ0FBQztJQS9DQyxLQUFLLENBQUMsRUFBRSxDQUFDLFdBQXdCO1FBQy9CLE1BQU0sY0FBYyxHQUFHLE1BQU0sV0FBVyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckUsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUNqQyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFDL0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUNsQyxDQUFDO1FBRUYsTUFBTSxlQUFlLEdBQUcsQ0FDdEIsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDO1lBQ3hCLEtBQUssRUFBRTtnQkFDTCxNQUFNLEVBQUUsc0JBQXNCO2FBQy9CO1NBQ0YsQ0FBQyxDQUNILENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5CLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ3RELElBQUksQ0FBQyxJQUFJLENBQUM7WUFDUixJQUFJLEVBQUUsSUFBSTtZQUNWLFNBQVMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDO1lBQ3pDLE1BQU0sRUFBRSxZQUFZO1NBQ3JCLENBQUMsQ0FDSCxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUVqRCxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUU1QyxLQUFLLE1BQU0sSUFBSSxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUQsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQXdCO1FBRWpDLE1BQU0sRUFBRSxHQUFHLE1BQU0sV0FBVyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekQsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUNiLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQztZQUNaLEtBQUssRUFBRTtnQkFDTCxNQUFNLEVBQUUsWUFBWTthQUNyQjtTQUNGLENBQUMsQ0FDSCxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQ3pDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxZQUFZLENBQUMsQ0FBQztRQUN6QyxLQUFLLE1BQU0sSUFBSSxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekQsQ0FBQztJQUNILENBQUM7Q0FDRixDQUFBO0FBcERZLHVDQUF1QztJQUhuRCxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2QsU0FBUyxFQUFFLHlDQUF5QztLQUNyRCxDQUFDO0dBQ1csdUNBQXVDLENBb0RuRDs7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGlGQUFpRiIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBUYW9uIH0gZnJvbSAndGFvbi93ZWJzcWwnO1xuaW1wb3J0IHsgUXVlcnlSdW5uZXIgfSBmcm9tICd0YW9uLXR5cGVvcm0vd2Vic3FsJztcbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgUG9ydCwgUG9ydHNDb250cm9sbGVyIH0gZnJvbSAnLi4vbGliJztcblxuQFRhb24uTWlncmF0aW9uKHtcbiAgY2xhc3NOYW1lOiAnUG9ydHNDb250ZXh0XzE3MzY0NTQ0MzczNTBfYWRkRnJlZVBvcnRzJyxcbn0pXG5leHBvcnQgY2xhc3MgUG9ydHNDb250ZXh0XzE3MzY0NTQ0MzczNTBfYWRkRnJlZVBvcnRzIGV4dGVuZHMgVGFvbi5CYXNlXG4gIC5NaWdyYXRpb24ge1xuICBwcm90ZWN0ZWQgcG9ydHNDb250cm9sbGVyOiBQb3J0c0NvbnRyb2xsZXIgPVxuICAgIHRoaXMuaW5qZWN0Q29udHJvbGxlcihQb3J0c0NvbnRyb2xsZXIpO1xuXG4gIGFzeW5jIHVwKHF1ZXJ5UnVubmVyOiBRdWVyeVJ1bm5lcik6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgcG9ydHNUYWJsZVJlcG8gPSBhd2FpdCBxdWVyeVJ1bm5lci5tYW5hZ2VyLmdldFJlcG9zaXRvcnkoUG9ydCk7XG4gICAgY29uc3QgYWRkRnJlZVBvcnRzSW5SYW5nZSA9IF8ucmFuZ2UoXG4gICAgICB0aGlzLnBvcnRzQ29udHJvbGxlci5TVEFSVF9QT1JULFxuICAgICAgdGhpcy5wb3J0c0NvbnRyb2xsZXIuRU5EX1BPUlQgKyAxLFxuICAgICk7XG5cbiAgICBjb25zdCBhbGxUYWtlQnlPc1BvcnQgPSAoXG4gICAgICBhd2FpdCBwb3J0c1RhYmxlUmVwby5maW5kKHtcbiAgICAgICAgd2hlcmU6IHtcbiAgICAgICAgICBzdGF0dXM6ICdhc3NpZ25lZC10YWtlbi1ieS1vcycsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICkubWFwKGYgPT4gZi5wb3J0KTtcblxuICAgIGNvbnN0IGZyZWVQb3J0c0luUmFuZ2UgPSBhZGRGcmVlUG9ydHNJblJhbmdlLm1hcChwb3J0ID0+XG4gICAgICBQb3J0LmZyb20oe1xuICAgICAgICBwb3J0OiBwb3J0LFxuICAgICAgICBzZXJ2aWNlSWQ6IFBvcnQuZ2V0VGl0bGVGb3JGcmVlUG9ydChwb3J0KSxcbiAgICAgICAgc3RhdHVzOiAndW5hc3NpZ25lZCcsXG4gICAgICB9KSxcbiAgICApLmZpbHRlcihmID0+ICFhbGxUYWtlQnlPc1BvcnQuaW5jbHVkZXMoZi5wb3J0KSk7XG5cbiAgICBhd2FpdCBwb3J0c1RhYmxlUmVwby5zYXZlKGZyZWVQb3J0c0luUmFuZ2UpO1xuXG4gICAgZm9yIChjb25zdCBwb3J0IG9mIGZyZWVQb3J0c0luUmFuZ2UpIHtcbiAgICAgIHRoaXMucG9ydHNDb250cm9sbGVyLnBvcnRzQ2FjaGUuc2V0KHBvcnQuc2VydmljZUlkLCBwb3J0KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBkb3duKHF1ZXJ5UnVubmVyOiBRdWVyeVJ1bm5lcik6IFByb21pc2U8YW55PiB7XG5cbiAgICBjb25zdCBkYiA9IGF3YWl0IHF1ZXJ5UnVubmVyLm1hbmFnZXIuZ2V0UmVwb3NpdG9yeShQb3J0KTtcbiAgICBhd2FpdCBkYi5yZW1vdmUoXG4gICAgICBhd2FpdCBkYi5maW5kKHtcbiAgICAgICAgd2hlcmU6IHtcbiAgICAgICAgICBzdGF0dXM6ICd1bmFzc2lnbmVkJyxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICk7XG4gICAgY29uc3QgYWxsUG9ydHMgPSBBcnJheS5mcm9tKFxuICAgICAgdGhpcy5wb3J0c0NvbnRyb2xsZXIucG9ydHNDYWNoZS52YWx1ZXMoKSxcbiAgICApLmZpbHRlcihmID0+IGYuc3RhdHVzID09PSAndW5hc3NpZ25lZCcpO1xuICAgIGZvciAoY29uc3QgcG9ydCBvZiBhbGxQb3J0cykge1xuICAgICAgdGhpcy5wb3J0c0NvbnRyb2xsZXIucG9ydHNDYWNoZS5kZWxldGUocG9ydC5zZXJ2aWNlSWQpO1xuICAgIH1cbiAgfVxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbWlncmF0aW9ucy8xNzM2NDU0NDM3MzUwX2FkZEZyZWVQb3J0cy50cyJdfQ==