@decaf-ts/core 0.9.0 → 0.9.1-9.tasks

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 (554) hide show
  1. package/README.md +1 -1
  2. package/dist/core.cjs +6705 -2
  3. package/dist/core.js +6932 -2
  4. package/lib/auth/constants.cjs +1 -1
  5. package/lib/auth/decorators.cjs +1 -1
  6. package/lib/auth/index.cjs +1 -1
  7. package/lib/esm/auth/constants.js +1 -1
  8. package/lib/esm/auth/decorators.js +1 -1
  9. package/lib/esm/auth/index.js +1 -1
  10. package/lib/esm/fs/FilesystemAdapter.d.ts +1 -0
  11. package/lib/esm/fs/FilesystemAdapter.js +3 -2
  12. package/lib/esm/fs/FsDispatch.js +1 -1
  13. package/lib/esm/fs/helpers.js +1 -1
  14. package/lib/esm/fs/index.js +1 -1
  15. package/lib/esm/fs/indexStore.js +1 -1
  16. package/lib/esm/fs/locks/FilesystemLock.js +1 -1
  17. package/lib/esm/fs/locks/FilesystemMultiLock.js +1 -1
  18. package/lib/esm/fs/types.d.ts +6 -0
  19. package/lib/esm/fs/types.js +1 -1
  20. package/lib/esm/identity/decorators.js +1 -1
  21. package/lib/esm/identity/index.js +1 -1
  22. package/lib/esm/index.d.ts +1 -1
  23. package/lib/esm/index.js +2 -2
  24. package/lib/esm/interfaces/ContextuallyLogged.js +1 -1
  25. package/lib/esm/interfaces/ErrorParser.js +1 -1
  26. package/lib/esm/interfaces/Executor.js +1 -1
  27. package/lib/esm/interfaces/Observable.js +1 -1
  28. package/lib/esm/interfaces/Observer.js +1 -1
  29. package/lib/esm/interfaces/Paginatable.js +1 -1
  30. package/lib/esm/interfaces/Queriable.js +1 -1
  31. package/lib/esm/interfaces/RawExecutor.js +1 -1
  32. package/lib/esm/interfaces/SequenceOptions.js +1 -1
  33. package/lib/esm/interfaces/index.js +1 -1
  34. package/lib/esm/migrations/Migration.js +1 -1
  35. package/lib/esm/migrations/MigrationService.js +1 -1
  36. package/lib/esm/migrations/MigrationTasks.js +1 -1
  37. package/lib/esm/migrations/constants.js +1 -1
  38. package/lib/esm/migrations/decorators.js +1 -1
  39. package/lib/esm/migrations/index.js +1 -1
  40. package/lib/esm/migrations/types.js +1 -1
  41. package/lib/esm/model/BaseModel.js +1 -1
  42. package/lib/esm/model/SequenceModel.js +1 -1
  43. package/lib/esm/model/construction.d.ts +1 -1
  44. package/lib/esm/model/construction.js +25 -3
  45. package/lib/esm/model/decorators.js +1 -1
  46. package/lib/esm/model/index.js +1 -1
  47. package/lib/esm/model/indexing.js +1 -1
  48. package/lib/esm/model/types.js +1 -1
  49. package/lib/esm/overrides/Metadata.js +1 -1
  50. package/lib/esm/overrides/Model.js +1 -1
  51. package/lib/esm/overrides/ModelBuilder.js +1 -1
  52. package/lib/esm/overrides/index.js +1 -1
  53. package/lib/esm/overrides/injectables.js +1 -1
  54. package/lib/esm/overrides/overrides.js +29 -1
  55. package/lib/esm/persistence/Adapter.js +14 -2
  56. package/lib/esm/persistence/Context.js +1 -1
  57. package/lib/esm/persistence/ContextLock.js +1 -1
  58. package/lib/esm/persistence/Dispatch.d.ts +7 -0
  59. package/lib/esm/persistence/Dispatch.js +20 -3
  60. package/lib/esm/persistence/ObserverHandler.js +1 -1
  61. package/lib/esm/persistence/Sequence.js +1 -1
  62. package/lib/esm/persistence/constants.js +2 -1
  63. package/lib/esm/persistence/decorators.js +1 -1
  64. package/lib/esm/persistence/errors.js +1 -1
  65. package/lib/esm/persistence/event-filters.js +1 -1
  66. package/lib/esm/persistence/generators.js +1 -1
  67. package/lib/esm/persistence/index.js +1 -1
  68. package/lib/esm/persistence/transactions.js +1 -1
  69. package/lib/esm/persistence/types.d.ts +1 -0
  70. package/lib/esm/persistence/types.js +1 -1
  71. package/lib/esm/query/Condition.js +1 -1
  72. package/lib/esm/query/MethodQueryBuilder.js +1 -1
  73. package/lib/esm/query/Paginator.js +1 -1
  74. package/lib/esm/query/Statement.js +1 -1
  75. package/lib/esm/query/constants.js +1 -1
  76. package/lib/esm/query/decorators.js +1 -1
  77. package/lib/esm/query/errors.js +1 -1
  78. package/lib/esm/query/index.js +1 -1
  79. package/lib/esm/query/options.js +1 -1
  80. package/lib/esm/query/selectors.js +1 -1
  81. package/lib/esm/query/types.js +1 -1
  82. package/lib/esm/query/utils.js +1 -1
  83. package/lib/esm/ram/RamAdapter.js +1 -1
  84. package/lib/esm/ram/RamPaginator.js +1 -1
  85. package/lib/esm/ram/RamStatement.js +1 -1
  86. package/lib/esm/ram/constants.js +1 -1
  87. package/lib/esm/ram/handlers.js +1 -1
  88. package/lib/esm/ram/index.js +1 -1
  89. package/lib/esm/ram/types.js +1 -1
  90. package/lib/esm/repository/Repository.d.ts +2 -2
  91. package/lib/esm/repository/Repository.js +19 -16
  92. package/lib/esm/repository/constants.js +1 -1
  93. package/lib/esm/repository/decorators.js +2 -2
  94. package/lib/esm/repository/errors.js +1 -1
  95. package/lib/esm/repository/index.js +1 -1
  96. package/lib/esm/repository/injectables.js +4 -2
  97. package/lib/esm/repository/types.js +1 -1
  98. package/lib/esm/repository/utils.js +1 -1
  99. package/lib/esm/services/ModelService.d.ts +4 -5
  100. package/lib/esm/services/ModelService.js +4 -2
  101. package/lib/esm/services/PersistenceService.js +1 -1
  102. package/lib/esm/services/index.js +1 -1
  103. package/lib/esm/services/services.js +1 -1
  104. package/lib/esm/tasks/CleanUpTask.js +1 -1
  105. package/lib/esm/tasks/TaskContext.d.ts +3 -1
  106. package/lib/esm/tasks/TaskContext.js +9 -2
  107. package/lib/esm/tasks/TaskEngine.d.ts +2 -0
  108. package/lib/esm/tasks/TaskEngine.js +84 -20
  109. package/lib/esm/tasks/TaskErrors.js +1 -1
  110. package/lib/esm/tasks/TaskEventBus.js +1 -1
  111. package/lib/esm/tasks/TaskEventService.d.ts +7 -0
  112. package/lib/esm/tasks/TaskEventService.js +16 -0
  113. package/lib/esm/tasks/TaskHandler.js +1 -1
  114. package/lib/esm/tasks/TaskHandlerRegistry.js +1 -1
  115. package/lib/esm/tasks/TaskService.d.ts +5 -1
  116. package/lib/esm/tasks/TaskService.js +11 -37
  117. package/lib/esm/tasks/TaskStateChangeError.js +1 -1
  118. package/lib/esm/tasks/TaskTracker.js +1 -1
  119. package/lib/esm/tasks/builder.js +1 -1
  120. package/lib/esm/tasks/constants.js +1 -1
  121. package/lib/esm/tasks/decorators.js +1 -1
  122. package/lib/esm/tasks/index.d.ts +1 -0
  123. package/lib/esm/tasks/index.js +2 -1
  124. package/lib/esm/tasks/logging.js +4 -7
  125. package/lib/esm/tasks/models/TaskBackoffModel.js +1 -1
  126. package/lib/esm/tasks/models/TaskErrorModel.js +1 -1
  127. package/lib/esm/tasks/models/TaskEventModel.js +1 -1
  128. package/lib/esm/tasks/models/TaskIOSerializer.js +1 -1
  129. package/lib/esm/tasks/models/TaskLogEntryModel.d.ts +1 -0
  130. package/lib/esm/tasks/models/TaskLogEntryModel.js +6 -2
  131. package/lib/esm/tasks/models/TaskModel.js +1 -1
  132. package/lib/esm/tasks/models/TaskStepResultModel.js +1 -1
  133. package/lib/esm/tasks/models/TaskStepSpecModel.d.ts +1 -0
  134. package/lib/esm/tasks/models/TaskStepSpecModel.js +7 -3
  135. package/lib/esm/tasks/models/index.js +1 -1
  136. package/lib/esm/tasks/types.d.ts +7 -3
  137. package/lib/esm/tasks/types.js +1 -1
  138. package/lib/esm/tasks/utils.js +1 -1
  139. package/lib/esm/utils/ContextualLoggedClass.js +1 -1
  140. package/lib/esm/utils/decorators.js +1 -1
  141. package/lib/esm/utils/errors.js +1 -1
  142. package/lib/esm/utils/index.js +1 -1
  143. package/lib/esm/utils/throttling.js +1 -1
  144. package/lib/esm/utils/types.js +1 -1
  145. package/lib/esm/utils/utils.d.ts +2 -1
  146. package/lib/esm/utils/utils.js +23 -6
  147. package/lib/esm/workers/TaskEngine.js +15 -4
  148. package/lib/esm/workers/WorkThreadEnvironment.js +1 -1
  149. package/lib/esm/workers/index.js +1 -1
  150. package/lib/esm/workers/messages.js +1 -1
  151. package/lib/esm/workers/types.js +1 -1
  152. package/lib/esm/workers/workerThread.js +36 -8
  153. package/lib/fs/FilesystemAdapter.cjs +3 -2
  154. package/lib/fs/FilesystemAdapter.d.ts +1 -0
  155. package/lib/fs/FsDispatch.cjs +1 -1
  156. package/lib/fs/helpers.cjs +1 -1
  157. package/lib/fs/index.cjs +1 -1
  158. package/lib/fs/indexStore.cjs +1 -1
  159. package/lib/fs/locks/FilesystemLock.cjs +1 -1
  160. package/lib/fs/locks/FilesystemMultiLock.cjs +1 -1
  161. package/lib/fs/types.cjs +1 -1
  162. package/lib/fs/types.d.ts +6 -0
  163. package/lib/identity/decorators.cjs +1 -1
  164. package/lib/identity/index.cjs +1 -1
  165. package/lib/index.cjs +2 -2
  166. package/lib/index.d.ts +1 -1
  167. package/lib/interfaces/ContextuallyLogged.cjs +1 -1
  168. package/lib/interfaces/ErrorParser.cjs +1 -1
  169. package/lib/interfaces/Executor.cjs +1 -1
  170. package/lib/interfaces/Observable.cjs +1 -1
  171. package/lib/interfaces/Observer.cjs +1 -1
  172. package/lib/interfaces/Paginatable.cjs +1 -1
  173. package/lib/interfaces/Queriable.cjs +1 -1
  174. package/lib/interfaces/RawExecutor.cjs +1 -1
  175. package/lib/interfaces/SequenceOptions.cjs +1 -1
  176. package/lib/interfaces/index.cjs +1 -1
  177. package/lib/migrations/Migration.cjs +1 -1
  178. package/lib/migrations/MigrationService.cjs +1 -1
  179. package/lib/migrations/MigrationTasks.cjs +1 -1
  180. package/lib/migrations/constants.cjs +1 -1
  181. package/lib/migrations/decorators.cjs +1 -1
  182. package/lib/migrations/index.cjs +1 -1
  183. package/lib/migrations/types.cjs +1 -1
  184. package/lib/model/BaseModel.cjs +1 -1
  185. package/lib/model/SequenceModel.cjs +1 -1
  186. package/lib/model/construction.cjs +25 -3
  187. package/lib/model/construction.d.ts +1 -1
  188. package/lib/model/decorators.cjs +1 -1
  189. package/lib/model/index.cjs +1 -1
  190. package/lib/model/indexing.cjs +1 -1
  191. package/lib/model/types.cjs +1 -1
  192. package/lib/overrides/Metadata.cjs +1 -1
  193. package/lib/overrides/Model.cjs +1 -1
  194. package/lib/overrides/ModelBuilder.cjs +1 -1
  195. package/lib/overrides/index.cjs +1 -1
  196. package/lib/overrides/injectables.cjs +1 -1
  197. package/lib/overrides/overrides.cjs +29 -1
  198. package/lib/persistence/Adapter.cjs +14 -2
  199. package/lib/persistence/Context.cjs +1 -1
  200. package/lib/persistence/ContextLock.cjs +1 -1
  201. package/lib/persistence/Dispatch.cjs +20 -3
  202. package/lib/persistence/Dispatch.d.ts +7 -0
  203. package/lib/persistence/ObserverHandler.cjs +1 -1
  204. package/lib/persistence/Sequence.cjs +1 -1
  205. package/lib/persistence/constants.cjs +2 -1
  206. package/lib/persistence/decorators.cjs +1 -1
  207. package/lib/persistence/errors.cjs +1 -1
  208. package/lib/persistence/event-filters.cjs +1 -1
  209. package/lib/persistence/generators.cjs +1 -1
  210. package/lib/persistence/index.cjs +1 -1
  211. package/lib/persistence/transactions.cjs +1 -1
  212. package/lib/persistence/types.cjs +1 -1
  213. package/lib/persistence/types.d.ts +1 -0
  214. package/lib/query/Condition.cjs +1 -1
  215. package/lib/query/MethodQueryBuilder.cjs +1 -1
  216. package/lib/query/Paginator.cjs +1 -1
  217. package/lib/query/Statement.cjs +1 -1
  218. package/lib/query/constants.cjs +1 -1
  219. package/lib/query/decorators.cjs +1 -1
  220. package/lib/query/errors.cjs +1 -1
  221. package/lib/query/index.cjs +1 -1
  222. package/lib/query/options.cjs +1 -1
  223. package/lib/query/selectors.cjs +1 -1
  224. package/lib/query/types.cjs +1 -1
  225. package/lib/query/utils.cjs +1 -1
  226. package/lib/ram/RamAdapter.cjs +1 -1
  227. package/lib/ram/RamPaginator.cjs +1 -1
  228. package/lib/ram/RamStatement.cjs +1 -1
  229. package/lib/ram/constants.cjs +1 -1
  230. package/lib/ram/handlers.cjs +1 -1
  231. package/lib/ram/index.cjs +1 -1
  232. package/lib/ram/types.cjs +1 -1
  233. package/lib/repository/Repository.cjs +19 -16
  234. package/lib/repository/Repository.d.ts +2 -2
  235. package/lib/repository/constants.cjs +1 -1
  236. package/lib/repository/decorators.cjs +2 -2
  237. package/lib/repository/errors.cjs +1 -1
  238. package/lib/repository/index.cjs +1 -1
  239. package/lib/repository/injectables.cjs +4 -2
  240. package/lib/repository/types.cjs +1 -1
  241. package/lib/repository/utils.cjs +1 -1
  242. package/lib/services/ModelService.cjs +4 -2
  243. package/lib/services/ModelService.d.ts +4 -5
  244. package/lib/services/PersistenceService.cjs +1 -1
  245. package/lib/services/index.cjs +1 -1
  246. package/lib/services/services.cjs +1 -1
  247. package/lib/tasks/CleanUpTask.cjs +1 -1
  248. package/lib/tasks/TaskContext.cjs +9 -2
  249. package/lib/tasks/TaskContext.d.ts +3 -1
  250. package/lib/tasks/TaskEngine.cjs +84 -20
  251. package/lib/tasks/TaskEngine.d.ts +2 -0
  252. package/lib/tasks/TaskErrors.cjs +1 -1
  253. package/lib/tasks/TaskEventBus.cjs +1 -1
  254. package/lib/tasks/TaskEventService.cjs +20 -0
  255. package/lib/tasks/TaskEventService.d.ts +7 -0
  256. package/lib/tasks/TaskHandler.cjs +1 -1
  257. package/lib/tasks/TaskHandlerRegistry.cjs +1 -1
  258. package/lib/tasks/TaskService.cjs +10 -36
  259. package/lib/tasks/TaskService.d.ts +5 -1
  260. package/lib/tasks/TaskStateChangeError.cjs +1 -1
  261. package/lib/tasks/TaskTracker.cjs +1 -1
  262. package/lib/tasks/builder.cjs +1 -1
  263. package/lib/tasks/constants.cjs +1 -1
  264. package/lib/tasks/decorators.cjs +1 -1
  265. package/lib/tasks/index.cjs +2 -1
  266. package/lib/tasks/index.d.ts +1 -0
  267. package/lib/tasks/logging.cjs +4 -7
  268. package/lib/tasks/models/TaskBackoffModel.cjs +1 -1
  269. package/lib/tasks/models/TaskErrorModel.cjs +1 -1
  270. package/lib/tasks/models/TaskEventModel.cjs +1 -1
  271. package/lib/tasks/models/TaskIOSerializer.cjs +1 -1
  272. package/lib/tasks/models/TaskLogEntryModel.cjs +5 -1
  273. package/lib/tasks/models/TaskLogEntryModel.d.ts +1 -0
  274. package/lib/tasks/models/TaskModel.cjs +1 -1
  275. package/lib/tasks/models/TaskStepResultModel.cjs +1 -1
  276. package/lib/tasks/models/TaskStepSpecModel.cjs +6 -2
  277. package/lib/tasks/models/TaskStepSpecModel.d.ts +1 -0
  278. package/lib/tasks/models/index.cjs +1 -1
  279. package/lib/tasks/types.cjs +1 -1
  280. package/lib/tasks/types.d.ts +7 -3
  281. package/lib/tasks/utils.cjs +1 -1
  282. package/lib/utils/ContextualLoggedClass.cjs +1 -1
  283. package/lib/utils/decorators.cjs +1 -1
  284. package/lib/utils/errors.cjs +1 -1
  285. package/lib/utils/index.cjs +1 -1
  286. package/lib/utils/throttling.cjs +1 -1
  287. package/lib/utils/types.cjs +1 -1
  288. package/lib/utils/utils.cjs +22 -5
  289. package/lib/utils/utils.d.ts +2 -1
  290. package/lib/workers/TaskEngine.cjs +15 -4
  291. package/lib/workers/WorkThreadEnvironment.cjs +1 -1
  292. package/lib/workers/index.cjs +1 -1
  293. package/lib/workers/messages.cjs +1 -1
  294. package/lib/workers/types.cjs +1 -1
  295. package/lib/workers/workerThread.cjs +35 -7
  296. package/package.json +1 -1
  297. package/dist/core.cjs.map +0 -1
  298. package/dist/core.js.map +0 -1
  299. package/lib/auth/constants.js.map +0 -1
  300. package/lib/auth/decorators.js.map +0 -1
  301. package/lib/auth/index.js.map +0 -1
  302. package/lib/esm/auth/constants.js.map +0 -1
  303. package/lib/esm/auth/decorators.js.map +0 -1
  304. package/lib/esm/auth/index.js.map +0 -1
  305. package/lib/esm/fs/FilesystemAdapter.js.map +0 -1
  306. package/lib/esm/fs/FsDispatch.js.map +0 -1
  307. package/lib/esm/fs/helpers.js.map +0 -1
  308. package/lib/esm/fs/index.js.map +0 -1
  309. package/lib/esm/fs/indexStore.js.map +0 -1
  310. package/lib/esm/fs/locks/FilesystemLock.js.map +0 -1
  311. package/lib/esm/fs/locks/FilesystemMultiLock.js.map +0 -1
  312. package/lib/esm/fs/types.js.map +0 -1
  313. package/lib/esm/identity/decorators.js.map +0 -1
  314. package/lib/esm/identity/index.js.map +0 -1
  315. package/lib/esm/index.js.map +0 -1
  316. package/lib/esm/interfaces/ContextuallyLogged.js.map +0 -1
  317. package/lib/esm/interfaces/ErrorParser.js.map +0 -1
  318. package/lib/esm/interfaces/Executor.js.map +0 -1
  319. package/lib/esm/interfaces/Observable.js.map +0 -1
  320. package/lib/esm/interfaces/Observer.js.map +0 -1
  321. package/lib/esm/interfaces/Paginatable.js.map +0 -1
  322. package/lib/esm/interfaces/Queriable.js.map +0 -1
  323. package/lib/esm/interfaces/RawExecutor.js.map +0 -1
  324. package/lib/esm/interfaces/SequenceOptions.js.map +0 -1
  325. package/lib/esm/interfaces/index.js.map +0 -1
  326. package/lib/esm/migrations/Migration.js.map +0 -1
  327. package/lib/esm/migrations/MigrationService.js.map +0 -1
  328. package/lib/esm/migrations/MigrationTasks.js.map +0 -1
  329. package/lib/esm/migrations/constants.js.map +0 -1
  330. package/lib/esm/migrations/decorators.js.map +0 -1
  331. package/lib/esm/migrations/index.js.map +0 -1
  332. package/lib/esm/migrations/types.js.map +0 -1
  333. package/lib/esm/model/BaseModel.js.map +0 -1
  334. package/lib/esm/model/SequenceModel.js.map +0 -1
  335. package/lib/esm/model/construction.js.map +0 -1
  336. package/lib/esm/model/decorators.js.map +0 -1
  337. package/lib/esm/model/index.js.map +0 -1
  338. package/lib/esm/model/indexing.js.map +0 -1
  339. package/lib/esm/model/types.js.map +0 -1
  340. package/lib/esm/overrides/Metadata.js.map +0 -1
  341. package/lib/esm/overrides/Model.js.map +0 -1
  342. package/lib/esm/overrides/ModelBuilder.js.map +0 -1
  343. package/lib/esm/overrides/index.js.map +0 -1
  344. package/lib/esm/overrides/injectables.js.map +0 -1
  345. package/lib/esm/overrides/overrides.js.map +0 -1
  346. package/lib/esm/persistence/Adapter.js.map +0 -1
  347. package/lib/esm/persistence/Context.js.map +0 -1
  348. package/lib/esm/persistence/ContextLock.js.map +0 -1
  349. package/lib/esm/persistence/Dispatch.js.map +0 -1
  350. package/lib/esm/persistence/ObserverHandler.js.map +0 -1
  351. package/lib/esm/persistence/Sequence.js.map +0 -1
  352. package/lib/esm/persistence/constants.js.map +0 -1
  353. package/lib/esm/persistence/decorators.js.map +0 -1
  354. package/lib/esm/persistence/errors.js.map +0 -1
  355. package/lib/esm/persistence/event-filters.js.map +0 -1
  356. package/lib/esm/persistence/generators.js.map +0 -1
  357. package/lib/esm/persistence/index.js.map +0 -1
  358. package/lib/esm/persistence/transactions.js.map +0 -1
  359. package/lib/esm/persistence/types.js.map +0 -1
  360. package/lib/esm/query/Condition.js.map +0 -1
  361. package/lib/esm/query/MethodQueryBuilder.js.map +0 -1
  362. package/lib/esm/query/Paginator.js.map +0 -1
  363. package/lib/esm/query/Statement.js.map +0 -1
  364. package/lib/esm/query/constants.js.map +0 -1
  365. package/lib/esm/query/decorators.js.map +0 -1
  366. package/lib/esm/query/errors.js.map +0 -1
  367. package/lib/esm/query/index.js.map +0 -1
  368. package/lib/esm/query/options.js.map +0 -1
  369. package/lib/esm/query/selectors.js.map +0 -1
  370. package/lib/esm/query/types.js.map +0 -1
  371. package/lib/esm/query/utils.js.map +0 -1
  372. package/lib/esm/ram/RamAdapter.js.map +0 -1
  373. package/lib/esm/ram/RamPaginator.js.map +0 -1
  374. package/lib/esm/ram/RamStatement.js.map +0 -1
  375. package/lib/esm/ram/constants.js.map +0 -1
  376. package/lib/esm/ram/handlers.js.map +0 -1
  377. package/lib/esm/ram/index.js.map +0 -1
  378. package/lib/esm/ram/types.js.map +0 -1
  379. package/lib/esm/repository/Repository.js.map +0 -1
  380. package/lib/esm/repository/constants.js.map +0 -1
  381. package/lib/esm/repository/decorators.js.map +0 -1
  382. package/lib/esm/repository/errors.js.map +0 -1
  383. package/lib/esm/repository/index.js.map +0 -1
  384. package/lib/esm/repository/injectables.js.map +0 -1
  385. package/lib/esm/repository/types.js.map +0 -1
  386. package/lib/esm/repository/utils.js.map +0 -1
  387. package/lib/esm/services/ModelService.js.map +0 -1
  388. package/lib/esm/services/PersistenceService.js.map +0 -1
  389. package/lib/esm/services/index.js.map +0 -1
  390. package/lib/esm/services/services.js.map +0 -1
  391. package/lib/esm/tasks/CleanUpTask.js.map +0 -1
  392. package/lib/esm/tasks/TaskContext.js.map +0 -1
  393. package/lib/esm/tasks/TaskEngine.js.map +0 -1
  394. package/lib/esm/tasks/TaskErrors.js.map +0 -1
  395. package/lib/esm/tasks/TaskEventBus.js.map +0 -1
  396. package/lib/esm/tasks/TaskHandler.js.map +0 -1
  397. package/lib/esm/tasks/TaskHandlerRegistry.js.map +0 -1
  398. package/lib/esm/tasks/TaskService.js.map +0 -1
  399. package/lib/esm/tasks/TaskStateChangeError.js.map +0 -1
  400. package/lib/esm/tasks/TaskTracker.js.map +0 -1
  401. package/lib/esm/tasks/builder.js.map +0 -1
  402. package/lib/esm/tasks/constants.js.map +0 -1
  403. package/lib/esm/tasks/decorators.js.map +0 -1
  404. package/lib/esm/tasks/index.js.map +0 -1
  405. package/lib/esm/tasks/logging.js.map +0 -1
  406. package/lib/esm/tasks/models/TaskBackoffModel.js.map +0 -1
  407. package/lib/esm/tasks/models/TaskErrorModel.js.map +0 -1
  408. package/lib/esm/tasks/models/TaskEventModel.js.map +0 -1
  409. package/lib/esm/tasks/models/TaskIOSerializer.js.map +0 -1
  410. package/lib/esm/tasks/models/TaskLogEntryModel.js.map +0 -1
  411. package/lib/esm/tasks/models/TaskModel.js.map +0 -1
  412. package/lib/esm/tasks/models/TaskStepResultModel.js.map +0 -1
  413. package/lib/esm/tasks/models/TaskStepSpecModel.js.map +0 -1
  414. package/lib/esm/tasks/models/index.js.map +0 -1
  415. package/lib/esm/tasks/types.js.map +0 -1
  416. package/lib/esm/tasks/utils.js.map +0 -1
  417. package/lib/esm/utils/ContextualLoggedClass.js.map +0 -1
  418. package/lib/esm/utils/decorators.js.map +0 -1
  419. package/lib/esm/utils/errors.js.map +0 -1
  420. package/lib/esm/utils/index.js.map +0 -1
  421. package/lib/esm/utils/throttling.js.map +0 -1
  422. package/lib/esm/utils/types.js.map +0 -1
  423. package/lib/esm/utils/utils.js.map +0 -1
  424. package/lib/esm/workers/TaskEngine.js.map +0 -1
  425. package/lib/esm/workers/WorkThreadEnvironment.js.map +0 -1
  426. package/lib/esm/workers/index.js.map +0 -1
  427. package/lib/esm/workers/messages.js.map +0 -1
  428. package/lib/esm/workers/types.js.map +0 -1
  429. package/lib/esm/workers/workerThread.js.map +0 -1
  430. package/lib/fs/FilesystemAdapter.js.map +0 -1
  431. package/lib/fs/FsDispatch.js.map +0 -1
  432. package/lib/fs/helpers.js.map +0 -1
  433. package/lib/fs/index.js.map +0 -1
  434. package/lib/fs/indexStore.js.map +0 -1
  435. package/lib/fs/locks/FilesystemLock.js.map +0 -1
  436. package/lib/fs/locks/FilesystemMultiLock.js.map +0 -1
  437. package/lib/fs/types.js.map +0 -1
  438. package/lib/identity/decorators.js.map +0 -1
  439. package/lib/identity/index.js.map +0 -1
  440. package/lib/index.js.map +0 -1
  441. package/lib/interfaces/ContextuallyLogged.js.map +0 -1
  442. package/lib/interfaces/ErrorParser.js.map +0 -1
  443. package/lib/interfaces/Executor.js.map +0 -1
  444. package/lib/interfaces/Observable.js.map +0 -1
  445. package/lib/interfaces/Observer.js.map +0 -1
  446. package/lib/interfaces/Paginatable.js.map +0 -1
  447. package/lib/interfaces/Queriable.js.map +0 -1
  448. package/lib/interfaces/RawExecutor.js.map +0 -1
  449. package/lib/interfaces/SequenceOptions.js.map +0 -1
  450. package/lib/interfaces/index.js.map +0 -1
  451. package/lib/migrations/Migration.js.map +0 -1
  452. package/lib/migrations/MigrationService.js.map +0 -1
  453. package/lib/migrations/MigrationTasks.js.map +0 -1
  454. package/lib/migrations/constants.js.map +0 -1
  455. package/lib/migrations/decorators.js.map +0 -1
  456. package/lib/migrations/index.js.map +0 -1
  457. package/lib/migrations/types.js.map +0 -1
  458. package/lib/model/BaseModel.js.map +0 -1
  459. package/lib/model/SequenceModel.js.map +0 -1
  460. package/lib/model/construction.js.map +0 -1
  461. package/lib/model/decorators.js.map +0 -1
  462. package/lib/model/index.js.map +0 -1
  463. package/lib/model/indexing.js.map +0 -1
  464. package/lib/model/types.js.map +0 -1
  465. package/lib/overrides/Metadata.js.map +0 -1
  466. package/lib/overrides/Model.js.map +0 -1
  467. package/lib/overrides/ModelBuilder.js.map +0 -1
  468. package/lib/overrides/index.js.map +0 -1
  469. package/lib/overrides/injectables.js.map +0 -1
  470. package/lib/overrides/overrides.js.map +0 -1
  471. package/lib/persistence/Adapter.js.map +0 -1
  472. package/lib/persistence/Context.js.map +0 -1
  473. package/lib/persistence/ContextLock.js.map +0 -1
  474. package/lib/persistence/Dispatch.js.map +0 -1
  475. package/lib/persistence/ObserverHandler.js.map +0 -1
  476. package/lib/persistence/Sequence.js.map +0 -1
  477. package/lib/persistence/constants.js.map +0 -1
  478. package/lib/persistence/decorators.js.map +0 -1
  479. package/lib/persistence/errors.js.map +0 -1
  480. package/lib/persistence/event-filters.js.map +0 -1
  481. package/lib/persistence/generators.js.map +0 -1
  482. package/lib/persistence/index.js.map +0 -1
  483. package/lib/persistence/transactions.js.map +0 -1
  484. package/lib/persistence/types.js.map +0 -1
  485. package/lib/query/Condition.js.map +0 -1
  486. package/lib/query/MethodQueryBuilder.js.map +0 -1
  487. package/lib/query/Paginator.js.map +0 -1
  488. package/lib/query/Statement.js.map +0 -1
  489. package/lib/query/constants.js.map +0 -1
  490. package/lib/query/decorators.js.map +0 -1
  491. package/lib/query/errors.js.map +0 -1
  492. package/lib/query/index.js.map +0 -1
  493. package/lib/query/options.js.map +0 -1
  494. package/lib/query/selectors.js.map +0 -1
  495. package/lib/query/types.js.map +0 -1
  496. package/lib/query/utils.js.map +0 -1
  497. package/lib/ram/RamAdapter.js.map +0 -1
  498. package/lib/ram/RamPaginator.js.map +0 -1
  499. package/lib/ram/RamStatement.js.map +0 -1
  500. package/lib/ram/constants.js.map +0 -1
  501. package/lib/ram/handlers.js.map +0 -1
  502. package/lib/ram/index.js.map +0 -1
  503. package/lib/ram/types.js.map +0 -1
  504. package/lib/repository/Repository.js.map +0 -1
  505. package/lib/repository/constants.js.map +0 -1
  506. package/lib/repository/decorators.js.map +0 -1
  507. package/lib/repository/errors.js.map +0 -1
  508. package/lib/repository/index.js.map +0 -1
  509. package/lib/repository/injectables.js.map +0 -1
  510. package/lib/repository/types.js.map +0 -1
  511. package/lib/repository/utils.js.map +0 -1
  512. package/lib/services/ModelService.js.map +0 -1
  513. package/lib/services/PersistenceService.js.map +0 -1
  514. package/lib/services/index.js.map +0 -1
  515. package/lib/services/services.js.map +0 -1
  516. package/lib/tasks/CleanUpTask.js.map +0 -1
  517. package/lib/tasks/TaskContext.js.map +0 -1
  518. package/lib/tasks/TaskEngine.js.map +0 -1
  519. package/lib/tasks/TaskErrors.js.map +0 -1
  520. package/lib/tasks/TaskEventBus.js.map +0 -1
  521. package/lib/tasks/TaskHandler.js.map +0 -1
  522. package/lib/tasks/TaskHandlerRegistry.js.map +0 -1
  523. package/lib/tasks/TaskService.js.map +0 -1
  524. package/lib/tasks/TaskStateChangeError.js.map +0 -1
  525. package/lib/tasks/TaskTracker.js.map +0 -1
  526. package/lib/tasks/builder.js.map +0 -1
  527. package/lib/tasks/constants.js.map +0 -1
  528. package/lib/tasks/decorators.js.map +0 -1
  529. package/lib/tasks/index.js.map +0 -1
  530. package/lib/tasks/logging.js.map +0 -1
  531. package/lib/tasks/models/TaskBackoffModel.js.map +0 -1
  532. package/lib/tasks/models/TaskErrorModel.js.map +0 -1
  533. package/lib/tasks/models/TaskEventModel.js.map +0 -1
  534. package/lib/tasks/models/TaskIOSerializer.js.map +0 -1
  535. package/lib/tasks/models/TaskLogEntryModel.js.map +0 -1
  536. package/lib/tasks/models/TaskModel.js.map +0 -1
  537. package/lib/tasks/models/TaskStepResultModel.js.map +0 -1
  538. package/lib/tasks/models/TaskStepSpecModel.js.map +0 -1
  539. package/lib/tasks/models/index.js.map +0 -1
  540. package/lib/tasks/types.js.map +0 -1
  541. package/lib/tasks/utils.js.map +0 -1
  542. package/lib/utils/ContextualLoggedClass.js.map +0 -1
  543. package/lib/utils/decorators.js.map +0 -1
  544. package/lib/utils/errors.js.map +0 -1
  545. package/lib/utils/index.js.map +0 -1
  546. package/lib/utils/throttling.js.map +0 -1
  547. package/lib/utils/types.js.map +0 -1
  548. package/lib/utils/utils.js.map +0 -1
  549. package/lib/workers/TaskEngine.js.map +0 -1
  550. package/lib/workers/WorkThreadEnvironment.js.map +0 -1
  551. package/lib/workers/index.js.map +0 -1
  552. package/lib/workers/messages.js.map +0 -1
  553. package/lib/workers/types.js.map +0 -1
  554. package/lib/workers/workerThread.js.map +0 -1
@@ -127,7 +127,9 @@ class InjectablesRegistry extends injectable_decorators_1.InjectableRegistryImp
127
127
  return undefined;
128
128
  // Resolve flavour from metadata if not provided
129
129
  const metaKey = constants_1.PersistenceKeys.ADAPTER;
130
- const resolvedFlavour = flavour || decoration_1.Metadata.get(modelCtor, metaKey);
130
+ const resolvedFlavour = flavour ||
131
+ decoration_1.Metadata.get(modelCtor, metaKey) ||
132
+ decoration_1.Metadata.flavourOf(modelCtor);
131
133
  try {
132
134
  // Determine an alias to use: prefer a directly registered adapter; otherwise, if the current adapter
133
135
  // has the same flavour, use its alias to satisfy Repository.forModel/Adapter.get lookups.
@@ -168,4 +170,4 @@ class InjectablesRegistry extends injectable_decorators_1.InjectableRegistryImp
168
170
  }
169
171
  }
170
172
  exports.InjectablesRegistry = InjectablesRegistry;
171
- //# sourceMappingURL=injectables.js.map
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0YWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVwb3NpdG9yeS9pbmplY3RhYmxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyRUFHeUM7QUFDekMsaURBQTBDO0FBQzFDLHlFQUF5RTtBQUN6RSx1Q0FBOEQ7QUFDOUQsOERBQTJEO0FBQzNELDBEQUFpRDtBQUNqRCwrQ0FBb0Q7QUFDcEQscURBQTZEO0FBRTdEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtERztBQUNILE1BQWEsbUJBQW9CLFNBQVEsNkNBQXFCO0lBRzVELElBQWMsR0FBRztRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsaUJBQU8sQ0FBQyxHQUFHLENBQUMsSUFBVyxDQUFDLENBQUM7UUFDekQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRDtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Ba0NHO0lBQ00sR0FBRyxDQUNWLElBQXNDLEVBQ3RDLE9BQWdCO1FBRWhCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyw0REFBNEQ7UUFDNUQsSUFBSSxVQUF5QixDQUFDO1FBQzlCLElBQUksQ0FBQztZQUNILFVBQVUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQVcsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxpQ0FBaUM7UUFDbkMsQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixJQUFJLFNBQXVDLENBQUM7WUFDNUMsSUFBSSxPQUFPLElBQUksS0FBSyxVQUFVO2dCQUM1QixTQUFTO29CQUNOLDRCQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQTJCO3dCQUM5QyxJQUF5QixDQUFDO2lCQUMxQixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDOUQsU0FBUyxHQUFHLDRCQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBMEIsQ0FBQztZQUNsRSxDQUFDO1lBRUQsSUFBSSxDQUFDLFNBQVM7Z0JBQUUsT0FBTyxTQUFTLENBQUM7WUFFakMsZ0RBQWdEO1lBQ2hELE1BQU0sT0FBTyxHQUFHLDJCQUFlLENBQUMsT0FBTyxDQUFDO1lBQ3hDLE1BQU0sZUFBZSxHQUNuQixPQUFPO2dCQUNOLHFCQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQXdCO2dCQUN4RCxxQkFBUSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUVoQyxJQUFJLENBQUM7Z0JBQ0gscUdBQXFHO2dCQUNyRywwRkFBMEY7Z0JBQzFGLElBQUksVUFBVSxHQUFHLGVBQWUsQ0FBQztnQkFDakMsSUFBSSxDQUFDO29CQUNILElBQUksZUFBZTt3QkFBRSxpQkFBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDcEQsQ0FBQztnQkFBQyxNQUFNLENBQUM7b0JBQ1AsTUFBTSxPQUFPLEdBQUcsaUJBQU8sQ0FBQyxPQUFjLENBQUM7b0JBQ3ZDLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssZUFBZTt3QkFDaEQsVUFBVSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQy9CLENBQUM7Z0JBRUQsVUFBVSxHQUFHLHVCQUFVLENBQUMsUUFBUSxDQUM5QixTQUE2QixFQUM3QixVQUFVLENBQ04sQ0FBQztnQkFDUCxJQUFJLFVBQVUsWUFBWSx1QkFBVTtvQkFBRSxPQUFPLFVBQWUsQ0FBQztnQkFFN0QsdUVBQXVFO2dCQUN2RSxNQUFNLENBQUMsR0FDTCxlQUFlO29CQUNkLHFCQUFRLENBQUMsR0FBRyxDQUFFLFVBQWtCLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FFeEM7b0JBQ2IscUJBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBd0IsQ0FBQztnQkFDM0QsbUNBQVcsQ0FBQyxRQUFRLENBQ2xCLFVBQVUsRUFDVixJQUFBLDJDQUFtQyxFQUNqQyxTQUFrQyxFQUNsQyxDQUFXLENBQ1osQ0FDRixDQUFDO1lBQ0osQ0FBQztZQUFDLE9BQU8sQ0FBVSxFQUFFLENBQUM7Z0JBQ3BCLEdBQUcsQ0FBQyxLQUFLLENBQ1Asc0ZBQXVGLENBQVcsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNuSSxDQUFDO2dCQUNGLE1BQU0sUUFBUSxHQUFJLHVCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQUMsQ0FBQztnQkFDeEUsSUFBSSxPQUFPLFFBQVEsS0FBSyxVQUFVLEVBQUUsQ0FBQztvQkFDbkMsTUFBTSxPQUFPLEdBQUcsZUFBZTt3QkFDN0IsQ0FBQyxDQUFFLGlCQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBUzt3QkFDdkMsQ0FBQyxDQUFFLGlCQUFPLENBQUMsT0FBZSxDQUFDO29CQUM3QixJQUFJLENBQUMsT0FBTzt3QkFBRSxPQUFPLFNBQVMsQ0FBQztvQkFDL0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO29CQUNsRCxPQUFPLFFBQWEsQ0FBQztnQkFDdkIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxVQUEyQixDQUFDO0lBQ3JDLENBQUM7Q0FDRjtBQWpJRCxrREFpSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3RhYmxlUmVnaXN0cnlJbXAsXG4gIEluamVjdGFibGVzLFxufSBmcm9tIFwiQGRlY2FmLXRzL2luamVjdGFibGUtZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgUmVwb3NpdG9yeSB9IGZyb20gXCIuL1JlcG9zaXRvcnlcIjtcbmltcG9ydCB7IE1vZGVsLCBNb2RlbENvbnN0cnVjdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVJbmplY3RhYmxlTmFtZUZvclJlcG9zaXRvcnkgfSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgUGVyc2lzdGVuY2VLZXlzIH0gZnJvbSBcIi4uL3BlcnNpc3RlbmNlL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgQWRhcHRlciB9IGZyb20gXCIuLi9wZXJzaXN0ZW5jZS9BZGFwdGVyXCI7XG5pbXBvcnQgeyBMb2dnZXIsIExvZ2dpbmcgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB7IE1ldGFkYXRhLCBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBSZWdpc3RyeSBmb3IgaW5qZWN0YWJsZSByZXBvc2l0b3JpZXMgd2l0aCBhdXRvLXJlc29sdXRpb24uXG4gKiBAc3VtbWFyeSBQcm92aWRlcyBhbiBJbmplY3RhYmxlUmVnaXN0cnkgaW1wbGVtZW50YXRpb24gdGhhdCByZXNvbHZlcyByZXBvc2l0b3JpZXMgYnkgbW9kZWwgbmFtZSBvciBjb25zdHJ1Y3Rvci4gSWYgYSByZXBvc2l0b3J5XG4gKiBpcyBub3QgZXhwbGljaXRseSByZWdpc3RlcmVkLCBpdCBhdHRlbXB0cyB0byBpbmZlciB0aGUgY29ycmVjdCByZXBvc2l0b3J5IHVzaW5nIG1vZGVsIG1ldGFkYXRhIGFuZCB0aGUgYWN0aXZlIG9yIHNwZWNpZmllZCBhZGFwdGVyIGZsYXZvdXIuXG4gKiBAcGFyYW0ge3ZvaWR9IFtjb25zdHJ1Y3Rvcl0gTm8gY29uc3RydWN0b3IgcGFyYW1ldGVycyByZXF1aXJlZDsgdGhlIHN1cGVyY2xhc3MgaGFuZGxlcyBpbnRlcm5hbCBzdGF0ZS5cbiAqIEBjbGFzcyBJbmplY3RhYmxlc1JlZ2lzdHJ5XG4gKiBAZXhhbXBsZVxuICogLy8gQmFzaWMgdXNhZ2U6IHJldHJpZXZlIGEgcmVwb3NpdG9yeSBieSBtb2RlbCBuYW1lXG4gKiBjb25zdCByZWdpc3RyeSA9IG5ldyBJbmplY3RhYmxlc1JlZ2lzdHJ5KCk7XG4gKiBjb25zdCB1c2VyUmVwbyA9IHJlZ2lzdHJ5LmdldDxVc2VyUmVwb3NpdG9yeT4oJ1VzZXInKTtcbiAqIC8vIElmIFVzZXJSZXBvc2l0b3J5IGlzIHJlZ2lzdGVyZWQsIGl0IHdpbGwgYmUgcmV0dXJuZWQuIE90aGVyd2lzZSwgYSByZXBvc2l0b3J5IHdpbGwgYmUgY3JlYXRlZCBpZiBhIFVzZXIgbW9kZWwgZXhpc3RzLlxuICpcbiAqIC8vIFJldHJpZXZlIGJ5IGNvbnN0cnVjdG9yIGFuZCBzcGVjaWZ5IGFkYXB0ZXIgZmxhdm91clxuICogY29uc3QgcmVwb0J5Q3RvciA9IHJlZ2lzdHJ5LmdldDxVc2VyUmVwb3NpdG9yeT4oVXNlck1vZGVsLCAncmFtJyk7XG4gKlxuICogLy8gUmV0cmlldmUgYnkgc3ltYm9sIChlLmcuLCBpbmplY3RhYmxlIHRva2VuKVxuICogY29uc3QgdG9rZW4gPSBTeW1ib2wuZm9yKCdVc2VyUmVwb3NpdG9yeScpO1xuICogY29uc3QgYnlUb2tlbiA9IHJlZ2lzdHJ5LmdldDxVc2VyUmVwb3NpdG9yeT4odG9rZW4pO1xuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDIGFzIENvbnN1bWVyXG4gKiAgIHBhcnRpY2lwYW50IFIgYXMgSW5qZWN0YWJsZXNSZWdpc3RyeVxuICogICBwYXJ0aWNpcGFudCBCIGFzIEJhc2VSZWdpc3RyeVxuICogICBwYXJ0aWNpcGFudCBNIGFzIE1vZGVsXG4gKiAgIHBhcnRpY2lwYW50IEEgYXMgQWRhcHRlclxuICogICBwYXJ0aWNpcGFudCBSUCBhcyBSZXBvc2l0b3J5XG4gKiAgIEMtPj5SOiBnZXQobmFtZSwgZmxhdm91cj8pXG4gKiAgIGFjdGl2YXRlIFJcbiAqICAgUi0+PkI6IHN1cGVyLmdldChuYW1lKVxuICogICBhbHQgRm91bmQgaW4gYmFzZSByZWdpc3RyeVxuICogICAgIEItLT4+UjogaW5qZWN0YWJsZVxuICogICAgIFItLT4+QzogaW5qZWN0YWJsZVxuICogICBlbHNlIE5vdCBmb3VuZFxuICogICAgIFItPj5NOiBNb2RlbC5nZXQobmFtZSlcbiAqICAgICBhbHQgTW9kZWwgZm91bmRcbiAqICAgICAgIFItPj5BOiByZXNvbHZlIGZsYXZvdXIgKGZyb20gYXJnL21ldGFkYXRhL2N1cnJlbnQpXG4gKiAgICAgICBSLT4+UlA6IFJlcG9zaXRvcnkuZm9yTW9kZWwobW9kZWxDdG9yLCBhbGlhcylcbiAqICAgICAgIGFsdCBSZXBvc2l0b3J5IGluc3RhbmNlXG4gKiAgICAgICAgIFJQLS0+PlI6IHJlcG9zaXRvcnkgaW5zdGFuY2VcbiAqICAgICAgICAgUi0tPj5DOiByZXBvc2l0b3J5IGluc3RhbmNlXG4gKiAgICAgICBlbHNlIFJlcG9zaXRvcnkgY3RvclxuICogICAgICAgICBSLT4+QTogQWRhcHRlci5nZXQocmVzb2x2ZWRGbGF2b3VyKSBvciBBZGFwdGVyLmN1cnJlbnRcbiAqICAgICAgICAgQS0tPj5SOiBhZGFwdGVyIGluc3RhbmNlXG4gKiAgICAgICAgIFItPj5SUDogbmV3IHJlcG9DdG9yKGFkYXB0ZXIsIG1vZGVsQ3RvcilcbiAqICAgICAgICAgUi0tPj5DOiByZXBvc2l0b3J5IGluc3RhbmNlXG4gKiAgICAgICBlbmRcbiAqICAgICBlbHNlIE1vZGVsIG5vdCBmb3VuZFxuICogICAgICAgUi0tPj5DOiB1bmRlZmluZWRcbiAqICAgICBlbmRcbiAqICAgZW5kXG4gKi9cbmV4cG9ydCBjbGFzcyBJbmplY3RhYmxlc1JlZ2lzdHJ5IGV4dGVuZHMgSW5qZWN0YWJsZVJlZ2lzdHJ5SW1wIHtcbiAgcHJpdmF0ZSBsb2dnZXI/OiBMb2dnZXI7XG5cbiAgcHJvdGVjdGVkIGdldCBsb2coKTogTG9nZ2VyIHtcbiAgICBpZiAoIXRoaXMubG9nZ2VyKSB0aGlzLmxvZ2dlciA9IExvZ2dpbmcuZm9yKHRoaXMgYXMgYW55KTtcbiAgICByZXR1cm4gdGhpcy5sb2dnZXI7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZXRyaWV2ZSBhbiBpbmplY3RhYmxlIHdpdGggcmVwb3NpdG9yeSBhdXRvLXJlc29sdXRpb24uXG4gICAqIEBzdW1tYXJ5IEF0dGVtcHRzIHRvIGdldCBhbiBpbmplY3RhYmxlIGZyb20gdGhlIGJhc2UgcmVnaXN0cnk7IGlmIG5vdCBmb3VuZCBhbmQgdGhlIG5hbWUgcmVmZXJzIHRvIGEga25vd24gbW9kZWwsIGl0XG4gICAqIHJlc29sdmVzIHRoZSBhcHByb3ByaWF0ZSByZXBvc2l0b3J5IHVzaW5nIHRoZSBzcGVjaWZpZWQgZmxhdm91ciBvciBtb2RlbCBtZXRhZGF0YSwgZmFsbGluZyBiYWNrIHRvIHRoZSBjdXJyZW50IGFkYXB0ZXIgd2hlbiBuZWVkZWQuXG4gICAqIEB0ZW1wbGF0ZSBUIFRoZSBpbmplY3RhYmxlIHR5cGUgdG8gYmUgcmV0dXJuZWQuXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgc3ltYm9sIHwgQ29uc3RydWN0b3I8VD59IG5hbWUgVG9rZW4sIG1vZGVsIG5hbWUsIG9yIGNvbnN0cnVjdG9yIGFzc29jaWF0ZWQgd2l0aCB0aGUgaW5qZWN0YWJsZSBvciBtb2RlbC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtmbGF2b3VyXSBPcHRpb25hbCBhZGFwdGVyIGZsYXZvdXIgKGUuZy4sIFwicmFtXCIpLiBJZiBvbWl0dGVkLCBkZXJpdmVzIGZyb20gbWV0YWRhdGEgb3IgY3VycmVudCBhZGFwdGVyLlxuICAgKiBAcmV0dXJuIHtUIHwgdW5kZWZpbmVkfSBUaGUgbG9jYXRlZCBvciBhdXRvLWNyZWF0ZWQgaW5qZWN0YWJsZSBpbnN0YW5jZTsgb3RoZXJ3aXNlIHVuZGVmaW5lZCBpZiBpdCBjYW5ub3QgYmUgcmVzb2x2ZWQuXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IEcgYXMgZ2V0KG5hbWUsIGZsYXZvdXI/KVxuICAgKiAgIHBhcnRpY2lwYW50IEJSIGFzIEJhc2VSZWdpc3RyeVxuICAgKiAgIHBhcnRpY2lwYW50IE0gYXMgTW9kZWxcbiAgICogICBwYXJ0aWNpcGFudCBBIGFzIEFkYXB0ZXJcbiAgICogICBwYXJ0aWNpcGFudCBSUCBhcyBSZXBvc2l0b3J5XG4gICAqICAgRy0+PkJSOiBzdXBlci5nZXQobmFtZSlcbiAgICogICBhbHQgRm91bmRcbiAgICogICAgIEJSLS0+Pkc6IGluamVjdGFibGVcbiAgICogICBlbHNlIE5vdCBmb3VuZFxuICAgKiAgICAgRy0+Pk06IGRlcml2ZSBtb2RlbEN0b3IgZnJvbSBuYW1lXG4gICAqICAgICBhbHQgbW9kZWxDdG9yIHJlc29sdmVkXG4gICAqICAgICAgIEctPj5BOiByZXNvbHZlIGZsYXZvdXIgKGFyZyB8IG1ldGFkYXRhIHwgY3VycmVudClcbiAgICogICAgICAgRy0+PlJQOiBSZXBvc2l0b3J5LmZvck1vZGVsKG1vZGVsQ3RvciwgYWxpYXMpXG4gICAqICAgICAgIGFsdCByZXR1cm5zIGluc3RhbmNlXG4gICAqICAgICAgICAgUlAtLT4+RzogUmVwb3NpdG9yeSBpbnN0YW5jZVxuICAgKiAgICAgICBlbHNlIHJldHVybnMgY3RvclxuICAgKiAgICAgICAgIEctPj5BOiBBZGFwdGVyLmdldChmbGF2b3VyKSB8IEFkYXB0ZXIuY3VycmVudFxuICAgKiAgICAgICAgIEEtLT4+RzogYWRhcHRlciBpbnN0YW5jZVxuICAgKiAgICAgICAgIEctPj5SUDogbmV3IHJlcG9DdG9yKGFkYXB0ZXIsIG1vZGVsQ3RvcilcbiAgICogICAgICAgZW5kXG4gICAqICAgICBlbHNlIG5vIG1vZGVsQ3RvclxuICAgKiAgICAgICBHLS0+Pkc6IHJldHVybiB1bmRlZmluZWRcbiAgICogICAgIGVuZFxuICAgKiAgIGVuZFxuICAgKi9cbiAgb3ZlcnJpZGUgZ2V0PFQ+KFxuICAgIG5hbWU6IHN5bWJvbCB8IENvbnN0cnVjdG9yPFQ+IHwgc3RyaW5nLFxuICAgIGZsYXZvdXI/OiBzdHJpbmdcbiAgKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgbG9nID0gdGhpcy5sb2cuZm9yKHRoaXMuZ2V0KTtcbiAgICAvLyBGaXJzdCwgdHJ5IGJhc2UgcmVnaXN0cnksIGJ1dCBndWFyZCBhZ2FpbnN0IHRocm93biBlcnJvcnNcbiAgICBsZXQgaW5qZWN0YWJsZTogVCB8IHVuZGVmaW5lZDtcbiAgICB0cnkge1xuICAgICAgaW5qZWN0YWJsZSA9IHN1cGVyLmdldChuYW1lIGFzIGFueSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBkbyBub3RoaW5nLiB3ZSBoYW5kbGUgaXQgbGF0ZXJcbiAgICB9XG5cbiAgICBpZiAoIWluamVjdGFibGUpIHtcbiAgICAgIGxldCBtb2RlbEN0b3I6IENvbnN0cnVjdG9yPGFueT4gfCB1bmRlZmluZWQ7XG4gICAgICBpZiAodHlwZW9mIG5hbWUgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgbW9kZWxDdG9yID1cbiAgICAgICAgICAoTW9kZWwuZ2V0KG5hbWUubmFtZSkgYXMgTW9kZWxDb25zdHJ1Y3Rvcjxhbnk+KSB8fFxuICAgICAgICAgIChuYW1lIGFzIENvbnN0cnVjdG9yPGFueT4pO1xuICAgICAgZWxzZSBpZiAodHlwZW9mIG5hbWUgPT09IFwic3ltYm9sXCIgfHwgdHlwZW9mIG5hbWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgbW9kZWxDdG9yID0gTW9kZWwuZ2V0KG5hbWUudG9TdHJpbmcoKSkgYXMgTW9kZWxDb25zdHJ1Y3Rvcjxhbnk+O1xuICAgICAgfVxuXG4gICAgICBpZiAoIW1vZGVsQ3RvcikgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgICAgLy8gUmVzb2x2ZSBmbGF2b3VyIGZyb20gbWV0YWRhdGEgaWYgbm90IHByb3ZpZGVkXG4gICAgICBjb25zdCBtZXRhS2V5ID0gUGVyc2lzdGVuY2VLZXlzLkFEQVBURVI7XG4gICAgICBjb25zdCByZXNvbHZlZEZsYXZvdXIgPVxuICAgICAgICBmbGF2b3VyIHx8XG4gICAgICAgIChNZXRhZGF0YS5nZXQobW9kZWxDdG9yLCBtZXRhS2V5KSBhcyBzdHJpbmcgfCB1bmRlZmluZWQpIHx8XG4gICAgICAgIE1ldGFkYXRhLmZsYXZvdXJPZihtb2RlbEN0b3IpO1xuXG4gICAgICB0cnkge1xuICAgICAgICAvLyBEZXRlcm1pbmUgYW4gYWxpYXMgdG8gdXNlOiBwcmVmZXIgYSBkaXJlY3RseSByZWdpc3RlcmVkIGFkYXB0ZXI7IG90aGVyd2lzZSwgaWYgdGhlIGN1cnJlbnQgYWRhcHRlclxuICAgICAgICAvLyBoYXMgdGhlIHNhbWUgZmxhdm91ciwgdXNlIGl0cyBhbGlhcyB0byBzYXRpc2Z5IFJlcG9zaXRvcnkuZm9yTW9kZWwvQWRhcHRlci5nZXQgbG9va3Vwcy5cbiAgICAgICAgbGV0IGFsaWFzVG9Vc2UgPSByZXNvbHZlZEZsYXZvdXI7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgaWYgKHJlc29sdmVkRmxhdm91cikgQWRhcHRlci5nZXQocmVzb2x2ZWRGbGF2b3VyKTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgY29uc3QgY3VycmVudCA9IEFkYXB0ZXIuY3VycmVudCBhcyBhbnk7XG4gICAgICAgICAgaWYgKGN1cnJlbnQgJiYgY3VycmVudC5mbGF2b3VyID09PSByZXNvbHZlZEZsYXZvdXIpXG4gICAgICAgICAgICBhbGlhc1RvVXNlID0gY3VycmVudC5hbGlhcztcbiAgICAgICAgfVxuXG4gICAgICAgIGluamVjdGFibGUgPSBSZXBvc2l0b3J5LmZvck1vZGVsKFxuICAgICAgICAgIG1vZGVsQ3RvciBhcyBDb25zdHJ1Y3Rvcjxhbnk+LFxuICAgICAgICAgIGFsaWFzVG9Vc2VcbiAgICAgICAgKSBhcyBUO1xuICAgICAgICBpZiAoaW5qZWN0YWJsZSBpbnN0YW5jZW9mIFJlcG9zaXRvcnkpIHJldHVybiBpbmplY3RhYmxlIGFzIFQ7XG5cbiAgICAgICAgLy8gT3RoZXJ3aXNlLCByZWdpc3RlciB0aGUgcmVzb2x2ZWQgaW5qZWN0YWJsZSBuYW1lIGZvciBsYXRlciByZXRyaWV2YWxcbiAgICAgICAgY29uc3QgZiA9XG4gICAgICAgICAgcmVzb2x2ZWRGbGF2b3VyIHx8XG4gICAgICAgICAgKE1ldGFkYXRhLmdldCgoaW5qZWN0YWJsZSBhcyBhbnkpLmNvbnN0cnVjdG9yLCBtZXRhS2V5KSBhc1xuICAgICAgICAgICAgfCBzdHJpbmdcbiAgICAgICAgICAgIHwgdW5kZWZpbmVkKSB8fFxuICAgICAgICAgIChNZXRhZGF0YS5nZXQobW9kZWxDdG9yLCBtZXRhS2V5KSBhcyBzdHJpbmcgfCB1bmRlZmluZWQpO1xuICAgICAgICBJbmplY3RhYmxlcy5yZWdpc3RlcihcbiAgICAgICAgICBpbmplY3RhYmxlLFxuICAgICAgICAgIGdlbmVyYXRlSW5qZWN0YWJsZU5hbWVGb3JSZXBvc2l0b3J5KFxuICAgICAgICAgICAgbW9kZWxDdG9yIGFzIE1vZGVsQ29uc3RydWN0b3I8YW55PixcbiAgICAgICAgICAgIGYgYXMgc3RyaW5nXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICBsb2cuZGVidWcoXG4gICAgICAgICAgYE5vIHJlZ2lzdGVyZWQgcmVwb3NpdG9yeSBvciBhZGFwdGVyIGZvdW5kLiBmYWxsaW5nIGJhY2sgdG8gZGVmYXVsdCBhZGFwdGVyLiBFcnJvcjogJHsoZSBhcyBFcnJvcik/Lm1lc3NhZ2UgfHwgSlNPTi5zdHJpbmdpZnkoZSl9YFxuICAgICAgICApO1xuICAgICAgICBjb25zdCByZXBvQ3RvciA9IChSZXBvc2l0b3J5IGFzIGFueSlbXCJnZXRcIl0obW9kZWxDdG9yLCByZXNvbHZlZEZsYXZvdXIpO1xuICAgICAgICBpZiAodHlwZW9mIHJlcG9DdG9yID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICBjb25zdCBhZGFwdGVyID0gcmVzb2x2ZWRGbGF2b3VyXG4gICAgICAgICAgICA/IChBZGFwdGVyLmdldChyZXNvbHZlZEZsYXZvdXIpIGFzIGFueSlcbiAgICAgICAgICAgIDogKEFkYXB0ZXIuY3VycmVudCBhcyBhbnkpO1xuICAgICAgICAgIGlmICghYWRhcHRlcikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyByZXBvQ3RvcihhZGFwdGVyLCBtb2RlbEN0b3IpO1xuICAgICAgICAgIHJldHVybiBpbnN0YW5jZSBhcyBUO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGluamVjdGFibGUgYXMgVCB8IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVwb3NpdG9yeS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2FzY2FkZSwgT3JkZXJEaXJlY3Rpb24gfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gTWV0YWRhdGEgZm9yIGNhc2NhZGUgb3BlcmF0aW9ucyBvbiByZWxhdGVkIGVudGl0aWVzLlxuICogQHN1bW1hcnkgRGVmaW5lcyBob3cgdXBkYXRlIGFuZCBkZWxldGUgb3BlcmF0aW9ucyBzaG91bGQgY2FzY2FkZSB0byByZWxhdGVkIGVudGl0aWVzLlxuICogQHR5cGVkZWYgQ2FzY2FkZU1ldGFkYXRhXG4gKiBAcHJvcGVydHkge0Nhc2NhZGV9IHVwZGF0ZSAtIERldGVybWluZXMgY2FzY2FkZSBiZWhhdmlvciBmb3IgdXBkYXRlIG9wZXJhdGlvbnMuXG4gKiBAcHJvcGVydHkge0Nhc2NhZGV9IGRlbGV0ZSAtIERldGVybWluZXMgY2FzY2FkZSBiZWhhdmlvciBmb3IgZGVsZXRlIG9wZXJhdGlvbnMuXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmNvcmVcbiAqL1xuZXhwb3J0IHR5cGUgQ2FzY2FkZU1ldGFkYXRhID0ge1xuICB1cGRhdGU6IENhc2NhZGU7XG4gIGRlbGV0ZTogQ2FzY2FkZTtcbn07XG5cbmV4cG9ydCB0eXBlIEluZGV4TWV0YWRhdGEgPSB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRpcmVjdGlvbnM/OiBPcmRlckRpcmVjdGlvblsyXTtcbiAgY29tcG9zaXRpb25zPzogc3RyaW5nW107XG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBNZXRhZGF0YSBmb3IgYSBuYW1lZCBpbmRleCB0aGF0IGV4dGVuZHMgSW5kZXhNZXRhZGF0YS5cbiAqIEBzdW1tYXJ5IEV4dGVuZHMgSW5kZXhNZXRhZGF0YSB3aXRoIGEgc3VmZml4IHRvIGlkZW50aWZ5IHRoZSBpbmRleC5cbiAqIEB0eXBlZGVmIE5hbWVkSW5kZXhNZXRhZGF0YVxuICogQHByb3BlcnR5IHtzdHJpbmd9IHN1ZmZpeCAtIFRoZSBzdWZmaXggdG8gYXBwZW5kIHRvIHRoZSBpbmRleCBuYW1lLlxuICogQG1lbWJlck9mIG1vZHVsZTpjb3JlXG4gKi9cbmV4cG9ydCB0eXBlIE5hbWVkSW5kZXhNZXRhZGF0YSA9IEluZGV4TWV0YWRhdGEgJiB7XG4gIHN1ZmZpeDogc3RyaW5nO1xufTtcbiJdfQ==
@@ -47,4 +47,4 @@ function generateInjectableNameForRepository(model, flavour) {
47
47
  }
48
48
  return (0, decorator_validation_1.sf)(constants_1.PersistenceKeys.INJECTABLE, flavour, decorator_validation_2.Model.tableName(model));
49
49
  }
50
- //# sourceMappingURL=utils.js.map
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVwb3NpdG9yeS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXVDQSxrRkFjQztBQXJERCwyREFBd0Q7QUFDeEQseUVBQW9EO0FBQ3BELDhEQUEyRDtBQUMzRCx5RUFBdUQ7QUFDdkQscURBQStFO0FBRS9FOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdDRztBQUNILFNBQWdCLG1DQUFtQyxDQUNqRCxLQUF5QixFQUN6QixPQUFnQjtJQUVoQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixPQUFPLEdBQUcsdUJBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUNyQyxLQUFLLFlBQVksNEJBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUUsS0FBYSxDQUM1RCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLEtBQUssMkJBQWM7WUFDeEMsTUFBTSxJQUFJLDZCQUFhLENBQ3JCLHlDQUF5QyxLQUFLLFlBQVksNEJBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FDeEcsQ0FBQztJQUNOLENBQUM7SUFDRCxPQUFPLElBQUEseUJBQUUsRUFBQywyQkFBZSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsNEJBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUN6RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgc2YgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBQZXJzaXN0ZW5jZUtleXMgfSBmcm9tIFwiLi4vcGVyc2lzdGVuY2UvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yLCBEZWZhdWx0Rmxhdm91ciwgRGVjb3JhdGlvbiB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBHZW5lcmF0ZXMgYSB1bmlxdWUgaW5qZWN0YWJsZSBuYW1lIGZvciBhIHJlcG9zaXRvcnkuXG4gKiBAc3VtbWFyeSBDcmVhdGVzIGEgc3RhbmRhcmRpemVkIGluamVjdGFibGUgdG9rZW4gZm9yIHJlcG9zaXRvcmllcyB1c2luZyB0aGUgYWRhcHRlciBmbGF2b3VyIGFuZCBtb2RlbCB0YWJsZSBuYW1lLlxuICogVGhpcyBoZWxwcyB0aGUgREkgc3lzdGVtIHJlZ2lzdGVyIGFuZCByZXNvbHZlIHJlcG9zaXRvcnkgaW5zdGFuY2VzIGNvbnNpc3RlbnRseSBhY3Jvc3MgYWRhcHRlcnMuXG4gKiBAdGVtcGxhdGUgVCBUaGUgbW9kZWwgdHlwZSB0aGF0IGV4dGVuZHMgTW9kZWwuXG4gKiBAcGFyYW0ge0NvbnN0cnVjdG9yPFQ+IHwgVH0gbW9kZWwgVGhlIG1vZGVsIGNvbnN0cnVjdG9yIG9yIGluc3RhbmNlIGZyb20gd2hpY2ggdG8gZGVyaXZlIHRoZSB0YWJsZSBuYW1lLlxuICogQHBhcmFtIHtzdHJpbmd9IFtmbGF2b3VyXSBPcHRpb25hbCBhZGFwdGVyIGZsYXZvdXIvYWxpYXMuIElmIG9taXR0ZWQsIGl0IGlzIHJlYWQgZnJvbSBtb2RlbCBtZXRhZGF0YS5cbiAqIEByZXR1cm4ge3N0cmluZ30gQSBuYW1lc3BhY2VkIGluamVjdGFibGUgdG9rZW4gZm9yIHRoZSByZXBvc2l0b3J5IChlLmcuLCBcImRiOnJlcG86cmFtOnVzZXJzXCIpLlxuICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gSWYgdGhlIGZsYXZvdXIgY2Fubm90IGJlIGRldGVybWluZWQgZnJvbSBhcmd1bWVudHMgb3IgbWV0YWRhdGEuXG4gKiBAZnVuY3Rpb24gZ2VuZXJhdGVJbmplY3RhYmxlTmFtZUZvclJlcG9zaXRvcnlcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQyBhcyBDYWxsZXJcbiAqICAgcGFydGljaXBhbnQgVSBhcyBnZW5lcmF0ZUluamVjdGFibGVOYW1lRm9yUmVwb3NpdG9yeVxuICogICBwYXJ0aWNpcGFudCBSIGFzIFJlZmxlY3QgTWV0YWRhdGFcbiAqICAgcGFydGljaXBhbnQgQSBhcyBBZGFwdGVyXG4gKiAgIHBhcnRpY2lwYW50IFMgYXMgU3RyaW5nIEZvcm1hdHRlclxuICogICBDLT4+VTogY2FsbChtb2RlbCwgZmxhdm91cj8pXG4gKiAgIGFsdCBmbGF2b3VyIHByb3ZpZGVkXG4gKiAgICAgVS0tPj5VOiB1c2UgcHJvdmlkZWQgZmxhdm91clxuICogICBlbHNlIGZsYXZvdXIgbm90IHByb3ZpZGVkXG4gKiAgICAgVS0+PkE6IEFEQVBURVJcbiAqICAgICBVLT4+UjogZ2V0TWV0YWRhdGEoa2V5LCBtb2RlbHxtb2RlbC5jdG9yKVxuICogICAgIGFsdCBtZXRhZGF0YSBwcmVzZW50XG4gKiAgICAgICBSLS0+PlU6IGZsYXZvdXJcbiAqICAgICBlbHNlIG1pc3NpbmdcbiAqICAgICAgIFUtLT4+QzogdGhyb3cgSW50ZXJuYWxFcnJvclxuICogICAgIGVuZFxuICogICBlbmRcbiAqICAgVS0+PlM6IHNmKElOSkVDVEFCTEUsIGZsYXZvdXIsIE1vZGVsLnRhYmxlTmFtZShtb2RlbCkpXG4gKiAgIFMtLT4+QzogdG9rZW4gc3RyaW5nXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmNvcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlSW5qZWN0YWJsZU5hbWVGb3JSZXBvc2l0b3J5PFQgZXh0ZW5kcyBNb2RlbD4oXG4gIG1vZGVsOiBDb25zdHJ1Y3RvcjxUPiB8IFQsXG4gIGZsYXZvdXI/OiBzdHJpbmdcbik6IHN0cmluZyB7XG4gIGlmICghZmxhdm91cikge1xuICAgIGZsYXZvdXIgPSBEZWNvcmF0aW9uW1wiZmxhdm91clJlc29sdmVyXCJdKFxuICAgICAgbW9kZWwgaW5zdGFuY2VvZiBNb2RlbCA/IG1vZGVsLmNvbnN0cnVjdG9yIDogKG1vZGVsIGFzIGFueSlcbiAgICApO1xuICAgIGlmICghZmxhdm91ciB8fCBmbGF2b3VyID09PSBEZWZhdWx0Rmxhdm91cilcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgQ291bGQgbm90IHJldHJpZXZlIGZsYXZvdXIgZnJvbSBtb2RlbCAke21vZGVsIGluc3RhbmNlb2YgTW9kZWwgPyBtb2RlbC5jb25zdHJ1Y3Rvci5uYW1lIDogbW9kZWwubmFtZX1gXG4gICAgICApO1xuICB9XG4gIHJldHVybiBzZihQZXJzaXN0ZW5jZUtleXMuSU5KRUNUQUJMRSwgZmxhdm91ciwgTW9kZWwudGFibGVOYW1lKG1vZGVsKSk7XG59XG4iXX0=
@@ -37,7 +37,6 @@ class ModelService extends services_1.Service {
37
37
  constructor(clazz, name) {
38
38
  super(name ?? `${clazz.name}Service`);
39
39
  this.clazz = clazz;
40
- this.select = this.repo.select;
41
40
  }
42
41
  static getService(name) {
43
42
  if (!name)
@@ -93,6 +92,9 @@ class ModelService extends services_1.Service {
93
92
  const { ctxArgs } = (await this.logCtx(args, db_decorators_1.BulkCrudOperationKeys.UPDATE_ALL, true)).for(this.updateAll);
94
93
  return this.repo.updateAll(models, ...ctxArgs);
95
94
  }
95
+ select(selector) {
96
+ return this.repo.select(selector);
97
+ }
96
98
  //
97
99
  // async query(
98
100
  // condition: Condition<M>,
@@ -227,4 +229,4 @@ __decorate([
227
229
  __metadata("design:paramtypes", [Array, Object]),
228
230
  __metadata("design:returntype", Promise)
229
231
  ], ModelService.prototype, "updateAll", null);
230
- //# sourceMappingURL=ModelService.js.map
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL01vZGVsU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFFQSwrREFBaUU7QUFDakUsNkNBQXFDO0FBU3JDLDJEQU1pQztBQU9qQywwREFBeUU7QUFJekUsOERBQTJEO0FBQzNELHdEQUEyRDtBQUszRCxNQUFNLFlBQVksR0FBRyxDQUNuQixLQUFnRCxFQUN4QyxFQUFFO0lBQ1YsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO1FBQzNCLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssU0FBUyxDQUFDO0lBQy9ELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtRQUFFLE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3ZELE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxTQUFTLENBQUM7QUFDaEMsQ0FBQyxDQUFDO0FBRUYsTUFBYSxZQUNYLFNBQVEsa0JBQU87SUFRZixJQUFJLEtBQUs7UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFBRSxNQUFNLElBQUksNkJBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ2xFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXO1lBQUUsSUFBSSxDQUFDLFdBQVcsR0FBRyx1QkFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUUsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxZQUNtQixLQUFxQixFQUN0QyxJQUFhO1FBRWIsS0FBSyxDQUFDLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLFNBQVMs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RUQsSUFBSSxDQUFDLENBQUMsR0FBRyxZQUFZLE9BQU8sQ0FBQztZQUFFLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM5QixDQUFDO0NBQ0Y7QUF4VkQsb0NBd1ZDO0FBNVNPO0lBREwsSUFBQSxtQkFBTSxHQUFFOzs7OzBDQVNSO0FBR0s7SUFETCxJQUFBLG1CQUFNLEdBQUU7Ozs7NkNBU1I7QUFHSztJQURMLElBQUEsZ0JBQUcsR0FBRTs7OzswQ0FTTDtBQUdLO0lBREwsSUFBQSxnQkFBRyxHQUFFOzs7OzZDQVNMO0FBR0s7SUFETCxJQUFBLGlCQUFJLEdBQUU7Ozs7d0NBU047QUFHSztJQURMLElBQUEsaUJBQUksR0FBRTs7OzsyQ0FTTjtBQUdLO0lBREwsSUFBQSxpQkFBSSxHQUFFOzs7O3lDQWFOO0FBR0s7SUFETCxJQUFBLG1CQUFNLEdBQUU7Ozs7MENBU1I7QUFHSztJQURMLElBQUEsbUJBQU0sR0FBRTs7Ozs2Q0FNUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IE1vZGVsLCB0eXBlIE1vZGVsQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyB0eXBlIFJlcG8sIFJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vcmVwb3NpdG9yeS9SZXBvc2l0b3J5XCI7XG5pbXBvcnQgeyBTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZXNcIjtcbmltcG9ydCB0eXBlIHtcbiAgQWxsT3BlcmF0aW9uS2V5cyxcbiAgQ29udGV4dE9mLFxuICBFdmVudElkcyxcbiAgT2JzZXJ2ZXJGaWx0ZXIsXG4gIFBlcnNpc3RlbmNlT2JzZXJ2YWJsZSxcbiAgUGVyc2lzdGVuY2VPYnNlcnZlcixcbn0gZnJvbSBcIi4uL3BlcnNpc3RlbmNlL3R5cGVzXCI7XG5pbXBvcnQge1xuICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMsXG4gIEludGVybmFsRXJyb3IsXG4gIHR5cGUgSVJlcG9zaXRvcnksXG4gIE9wZXJhdGlvbktleXMsXG4gIHR5cGUgUHJpbWFyeUtleVR5cGUsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHR5cGUge1xuICBDb250ZXh0dWFsQXJncyxcbiAgQ29udGV4dHVhbGl6ZWRBcmdzLFxuICBNYXliZUNvbnRleHR1YWxBcmcsXG4gIE1ldGhvZE9yT3BlcmF0aW9uLFxufSBmcm9tIFwiLi4vdXRpbHMvQ29udGV4dHVhbExvZ2dlZENsYXNzXCI7XG5pbXBvcnQgeyBjcmVhdGUsIGRlbCwgcmVhZCwgc2VydmljZSwgdXBkYXRlIH0gZnJvbSBcIi4uL3V0aWxzL2RlY29yYXRvcnNcIjtcbmltcG9ydCB7IE9yZGVyRGlyZWN0aW9uIH0gZnJvbSBcIi4uL3JlcG9zaXRvcnkvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyB0eXBlIERpcmVjdGlvbkxpbWl0T2Zmc2V0IH0gZnJvbSBcIi4uL3F1ZXJ5L3R5cGVzXCI7XG5pbXBvcnQgeyB0eXBlIE9ic2VydmVyIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcbmltcG9ydCB7IFBlcnNpc3RlbmNlS2V5cyB9IGZyb20gXCIuLi9wZXJzaXN0ZW5jZS9jb25zdGFudHNcIjtcbmltcG9ydCB7IFByZXBhcmVkU3RhdGVtZW50S2V5cyB9IGZyb20gXCIuLi9xdWVyeS9jb25zdGFudHNcIjtcbmltcG9ydCB7IFNlbGVjdFNlbGVjdG9yLCBXaGVyZU9wdGlvbiB9IGZyb20gXCIuLi9xdWVyeS9pbmRleFwiO1xuXG5leHBvcnQgdHlwZSBBcnJheU1vZGUgPSBcIm9uZVwiIHwgXCJtYW55XCI7XG5cbmNvbnN0IHJlc29sdmVBbGlhcyA9IChcbiAgYWxpYXM6IHN0cmluZyB8IHN5bWJvbCB8IENvbnN0cnVjdG9yPE1vZGVsPGFueT4+XG4pOiBzdHJpbmcgPT4ge1xuICBpZiAodHlwZW9mIGFsaWFzID09PSBcInN0cmluZ1wiKVxuICAgIHJldHVybiBhbGlhcy5lbmRzV2l0aChcIlNlcnZpY2VcIikgPyBhbGlhcyA6IGAke2FsaWFzfVNlcnZpY2VgO1xuICBpZiAodHlwZW9mIGFsaWFzID09PSBcInN5bWJvbFwiKSByZXR1cm4gYWxpYXMudG9TdHJpbmcoKTtcbiAgcmV0dXJuIGAke2FsaWFzLm5hbWV9U2VydmljZWA7XG59O1xuXG5leHBvcnQgY2xhc3MgTW9kZWxTZXJ2aWNlPE0gZXh0ZW5kcyBNb2RlbDxib29sZWFuPiwgUiBleHRlbmRzIFJlcG88TT4gPSBSZXBvPE0+PlxuICBleHRlbmRzIFNlcnZpY2VcbiAgaW1wbGVtZW50c1xuICAgIElSZXBvc2l0b3J5PE0sIENvbnRleHRPZjxSPj4sXG4gICAgUGVyc2lzdGVuY2VPYnNlcnZhYmxlPENvbnRleHRPZjxSPj4sXG4gICAgUGVyc2lzdGVuY2VPYnNlcnZlcjxDb250ZXh0T2Y8Uj4+XG57XG4gIHByb3RlY3RlZCBfcmVwb3NpdG9yeSE6IFI7XG5cbiAgZ2V0IGNsYXNzKCkge1xuICAgIGlmICghdGhpcy5jbGF6eikgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYENsYXNzIG5vdCBpbml0aWFsaXplZGApO1xuICAgIHJldHVybiB0aGlzLmNsYXp6O1xuICB9XG5cbiAgZ2V0IHJlcG8oKSB7XG4gICAgaWYgKCF0aGlzLl9yZXBvc2l0b3J5KSB0aGlzLl9yZXBvc2l0b3J5ID0gUmVwb3NpdG9yeS5mb3JNb2RlbCh0aGlzLmNsYXp6KTtcbiAgICByZXR1cm4gdGhpcy5fcmVwb3NpdG9yeTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIG5hbWU/OiBzdHJpbmdcbiAgKSB7XG4gICAgc3VwZXIobmFtZSA/PyBgJHtjbGF6ei5uYW1lfVNlcnZpY2VgKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRTZXJ2aWNlPE0gZXh0ZW5kcyBNb2RlbDxib29sZWFuPiwgUyBleHRlbmRzIE1vZGVsU2VydmljZTxNPj4oXG4gICAgbmFtZTogc3RyaW5nIHwgc3ltYm9sIHwgQ29uc3RydWN0b3I8TT5cbiAgKTogUyB7XG4gICAgaWYgKCFuYW1lKSB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTm8gbmFtZSBwcm92aWRlZGApO1xuXG4gICAgY29uc3QgYWxpYXMgPSByZXNvbHZlQWxpYXMobmFtZSk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGluamVjdGFibGUgPSBTZXJ2aWNlLmdldChhbGlhcyk7XG4gICAgICBpZiAoaW5qZWN0YWJsZSkgcmV0dXJuIGluamVjdGFibGUgYXMgUztcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAvLyBpZ25vcmVcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTm8gTW9kZWxTZXJ2aWNlIGZvdW5kIGZvciBhbGlhcyAke2FsaWFzfWApO1xuICB9XG5cbiAgQGNyZWF0ZSgpXG4gIGFzeW5jIGNyZWF0ZShcbiAgICBtb2RlbDogTSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPFI+PlxuICApOiBQcm9taXNlPE0+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIE9wZXJhdGlvbktleXMuQ1JFQVRFLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuY3JlYXRlKTtcbiAgICByZXR1cm4gdGhpcy5yZXBvLmNyZWF0ZShtb2RlbCwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBAY3JlYXRlKClcbiAgYXN5bmMgY3JlYXRlQWxsKFxuICAgIG1vZGVsczogTVtdLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8Uj4+XG4gICk6IFByb21pc2U8TVtdPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuQ1JFQVRFX0FMTCwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmNyZWF0ZUFsbCk7XG4gICAgcmV0dXJuIHRoaXMucmVwby5jcmVhdGVBbGwobW9kZWxzLCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIEBkZWwoKVxuICBhc3luYyBkZWxldGUoXG4gICAga2V5OiBQcmltYXJ5S2V5VHlwZSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPFI+PlxuICApOiBQcm9taXNlPE0+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIE9wZXJhdGlvbktleXMuREVMRVRFLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZGVsZXRlKTtcbiAgICByZXR1cm4gdGhpcy5yZXBvLmRlbGV0ZShrZXksIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgQGRlbCgpXG4gIGFzeW5jIGRlbGV0ZUFsbChcbiAgICBrZXlzOiBQcmltYXJ5S2V5VHlwZVtdLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8Uj4+XG4gICk6IFByb21pc2U8TVtdPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuREVMRVRFX0FMTCwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmRlbGV0ZUFsbCk7XG4gICAgcmV0dXJuIHRoaXMucmVwby5kZWxldGVBbGwoa2V5cywgLi4uY3R4QXJncyk7XG4gIH1cblxuICBAcmVhZCgpXG4gIGFzeW5jIHJlYWQoXG4gICAga2V5OiBQcmltYXJ5S2V5VHlwZSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPFI+PlxuICApOiBQcm9taXNlPE0+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBPcGVyYXRpb25LZXlzLlJFQUQsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLnJlYWRcbiAgICApO1xuICAgIHJldHVybiB0aGlzLnJlcG8ucmVhZChrZXksIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgQHJlYWQoKVxuICBhc3luYyByZWFkQWxsKFxuICAgIGtleXM6IFByaW1hcnlLZXlUeXBlW10sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxSPj5cbiAgKTogUHJvbWlzZTxNW10+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5SRUFEX0FMTCwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnJlYWRBbGwpO1xuICAgIHJldHVybiB0aGlzLnJlcG8ucmVhZEFsbChrZXlzLCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIEByZWFkKClcbiAgYXN5bmMgcXVlcnk8TSwgUiBleHRlbmRzIEFycmF5TW9kZSA9IFwib25lXCI+KFxuICAgIG1ldGhvZE5hbWU6IHN0cmluZyxcbiAgICAuLi5hcmdzOiB1bmtub3duW11cbiAgKTogUHJvbWlzZTxSIGV4dGVuZHMgXCJvbmVcIiA/IE0gOiBNW10+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFBlcnNpc3RlbmNlS2V5cy5RVUVSWSwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnF1ZXJ5KTtcbiAgICBjb25zdCBtZXRob2QgPSAodGhpcy5yZXBvIGFzIGFueSk/LlttZXRob2ROYW1lXTtcbiAgICBpZiAodHlwZW9mIG1ldGhvZCAhPT0gXCJmdW5jdGlvblwiKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYE1ldGhvZCBcIiR7bWV0aG9kTmFtZX1cIiBpcyBub3QgaW1wbGVtZW50ZWRgKTtcblxuICAgIHJldHVybiBtZXRob2QuYXBwbHkodGhpcy5yZXBvLCBjdHhBcmdzKTtcbiAgfVxuXG4gIEB1cGRhdGUoKVxuICBhc3luYyB1cGRhdGUoXG4gICAgbW9kZWw6IE0sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxSPj5cbiAgKTogUHJvbWlzZTxNPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBPcGVyYXRpb25LZXlzLlVQREFURSwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnVwZGF0ZSk7XG4gICAgcmV0dXJuIHRoaXMucmVwby51cGRhdGUobW9kZWwsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgQHVwZGF0ZSgpXG4gIGFzeW5jIHVwZGF0ZUFsbChtb2RlbHM6IE1bXSwgLi4uYXJnczogYW55W10pOiBQcm9taXNlPE1bXT4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgQnVsa0NydWRPcGVyYXRpb25LZXlzLlVQREFURV9BTEwsIHRydWUpXG4gICAgKS5mb3IodGhpcy51cGRhdGVBbGwpO1xuICAgIHJldHVybiB0aGlzLnJlcG8udXBkYXRlQWxsKG1vZGVscywgLi4uY3R4QXJncyk7XG4gIH1cblxuICBzZWxlY3Q8XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIFMgZXh0ZW5kcyByZWFkb25seSBTZWxlY3RTZWxlY3RvcjxNPltdLFxuICA+KCk6IFdoZXJlT3B0aW9uPE0sIE1bXT47XG4gIHNlbGVjdDxTIGV4dGVuZHMgcmVhZG9ubHkgU2VsZWN0U2VsZWN0b3I8TT5bXT4oXG4gICAgc2VsZWN0b3I6IHJlYWRvbmx5IFsuLi5TXVxuICApOiBXaGVyZU9wdGlvbjxNLCBQaWNrPE0sIFNbbnVtYmVyXT5bXT47XG4gIHNlbGVjdDxTIGV4dGVuZHMgcmVhZG9ubHkgU2VsZWN0U2VsZWN0b3I8TT5bXT4oXG4gICAgc2VsZWN0b3I/OiByZWFkb25seSBbLi4uU11cbiAgKTogV2hlcmVPcHRpb248TSwgTVtdPiB8IFdoZXJlT3B0aW9uPE0sIFBpY2s8TSwgU1tudW1iZXJdPltdPiB7XG4gICAgcmV0dXJuIHRoaXMucmVwby5zZWxlY3Qoc2VsZWN0b3IgYXMgcmVhZG9ubHkgWy4uLlNdKTtcbiAgfVxuXG4gIC8vXG4gIC8vIGFzeW5jIHF1ZXJ5KFxuICAvLyAgIGNvbmRpdGlvbjogQ29uZGl0aW9uPE0+LFxuICAvLyAgIG9yZGVyQnk6IGtleW9mIE0sXG4gIC8vICAgb3JkZXI6IE9yZGVyRGlyZWN0aW9uID0gT3JkZXJEaXJlY3Rpb24uQVNDLFxuICAvLyAgIGxpbWl0PzogbnVtYmVyLFxuICAvLyAgIHNraXA/OiBudW1iZXIsXG4gIC8vICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxSPj5cbiAgLy8gKTogUHJvbWlzZTxNW10+IHtcbiAgLy8gICBjb25zdCB7IGN0eEFyZ3MgfSA9IGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucXVlcnksIHRydWUpO1xuICAvLyAgIHJldHVybiB0aGlzLnJlcG8ucXVlcnkoY29uZGl0aW9uLCBvcmRlckJ5LCBvcmRlciwgbGltaXQsIHNraXAsIC4uLmN0eEFyZ3MpO1xuICAvLyB9XG5cbiAgYXN5bmMgbGlzdEJ5KFxuICAgIGtleToga2V5b2YgTSxcbiAgICBvcmRlcjogT3JkZXJEaXJlY3Rpb24sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxSPj5cbiAgKSB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuTElTVF9CWSwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmxpc3RCeSk7XG4gICAgcmV0dXJuIHRoaXMucmVwby5saXN0Qnkoa2V5LCBvcmRlciwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBhc3luYyBwYWdpbmF0ZUJ5KFxuICAgIGtleToga2V5b2YgTSxcbiAgICBvcmRlcjogT3JkZXJEaXJlY3Rpb24sXG4gICAgcmVmOiBPbWl0PERpcmVjdGlvbkxpbWl0T2Zmc2V0LCBcImRpcmVjdGlvblwiPixcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPFI+PlxuICApIHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5QQUdFX0JZLCB0cnVlKVxuICAgICkuZm9yKHRoaXMucGFnaW5hdGVCeSk7XG4gICAgcmV0dXJuIHRoaXMucmVwby5wYWdpbmF0ZUJ5KGtleSwgb3JkZXIsIHJlZiwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBhc3luYyBmaW5kT25lQnkoXG4gICAga2V5OiBrZXlvZiBNLFxuICAgIHZhbHVlOiBhbnksXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxSPj5cbiAgKSB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuRklORF9PTkVfQlksIHRydWUpXG4gICAgKS5mb3IodGhpcy5maW5kT25lQnkpO1xuICAgIHJldHVybiB0aGlzLnJlcG8uZmluZE9uZUJ5KGtleSwgdmFsdWUsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgZmluZEJ5KFxuICAgIGtleToga2V5b2YgTSxcbiAgICB2YWx1ZTogYW55LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8Uj4+XG4gICkge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkZJTkRfQlksIHRydWUpXG4gICAgKS5mb3IodGhpcy5maW5kQnkpO1xuICAgIHJldHVybiB0aGlzLnJlcG8uZmluZEJ5KGtleSwgdmFsdWUsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgc3RhdGVtZW50KG5hbWU6IHN0cmluZywgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxSPj4pIHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFBlcnNpc3RlbmNlS2V5cy5TVEFURU1FTlQsIHRydWUpXG4gICAgKS5mb3IodGhpcy5zdGF0ZW1lbnQpO1xuICAgIHJldHVybiB0aGlzLnJlcG8uc3RhdGVtZW50KG5hbWUsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgc3RhdGljIGZvck1vZGVsPE0gZXh0ZW5kcyBNb2RlbDxib29sZWFuPiwgUyBleHRlbmRzIE1vZGVsU2VydmljZTxNPj4oXG4gICAgdGhpczogbmV3IChtb2RlbDogTW9kZWxDb25zdHJ1Y3RvcjxNPikgPT4gUyxcbiAgICBtb2RlbDogTW9kZWxDb25zdHJ1Y3RvcjxNPixcbiAgICBhbGlhcz86IHN0cmluZyB8IHN5bWJvbFxuICApOiBTIHtcbiAgICBsZXQgaW5zdGFuY2U6IFMgfCB1bmRlZmluZWQ7XG4gICAgYWxpYXMgPSByZXNvbHZlQWxpYXMoYWxpYXMgfHwgbW9kZWwpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGluc3RhbmNlID0gTW9kZWxTZXJ2aWNlLmdldChhbGlhcykgYXMgUztcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGluc3RhbmNlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmIChpbnN0YW5jZSBpbnN0YW5jZW9mIE1vZGVsU2VydmljZSkgcmV0dXJuIGluc3RhbmNlIGFzIFM7XG5cbiAgICBjb25zdCBCYXNlID0gdGhpcyBhcyBDb25zdHJ1Y3RvcjtcbiAgICBAc2VydmljZShhbGlhcylcbiAgICBjbGFzcyBEZWNvcmF0ZWRTZXJ2aWNlIGV4dGVuZHMgQmFzZSB7XG4gICAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIobW9kZWwpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IERlY29yYXRlZFNlcnZpY2UoKSBhcyBTO1xuICB9XG5cbiAgb3ZlcnJpZGUgcmVmcmVzaChcbiAgICB0YWJsZTogQ29uc3RydWN0b3I8TT4sXG4gICAgZXZlbnQ6IEFsbE9wZXJhdGlvbktleXMsXG4gICAgaWQ6IEV2ZW50SWRzLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPENvbnRleHRPZjxSPj5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMucmVwby5yZWZyZXNoKHRhYmxlLCBldmVudCwgaWQsIC4uLmFyZ3MpO1xuICB9XG4gIG92ZXJyaWRlIG9ic2VydmUob2JzZXJ2ZXI6IE9ic2VydmVyLCBmaWx0ZXI/OiBPYnNlcnZlckZpbHRlcik6ICgpID0+IHZvaWQge1xuICAgIHJldHVybiB0aGlzLnJlcG8ub2JzZXJ2ZShvYnNlcnZlciwgZmlsdGVyKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHVuT2JzZXJ2ZShvYnNlcnZlcjogT2JzZXJ2ZXIpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5yZXBvLnVuT2JzZXJ2ZShvYnNlcnZlcik7XG4gIH1cblxuICBvdmVycmlkZSB1cGRhdGVPYnNlcnZlcnMoXG4gICAgbW9kZWw6IENvbnN0cnVjdG9yLFxuICAgIG9wZXJhdGlvbjogQWxsT3BlcmF0aW9uS2V5cyxcbiAgICBpZHM6IEV2ZW50SWRzLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPENvbnRleHRPZjxSPj5cbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMucmVwby51cGRhdGVPYnNlcnZlcnMobW9kZWwsIG9wZXJhdGlvbiwgaWRzLCAuLi5hcmdzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBsb2dDdHg8XG4gICAgQVJHUyBleHRlbmRzIGFueVtdID0gYW55W10sXG4gICAgTUVUSE9EIGV4dGVuZHMgTWV0aG9kT3JPcGVyYXRpb24gPSBNZXRob2RPck9wZXJhdGlvbixcbiAgPihcbiAgICBhcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPHRoaXNbXCJyZXBvXCJdPiwgQVJHUz4sXG4gICAgb3BlcmF0aW9uOiBNRVRIT0RcbiAgKTogQ29udGV4dHVhbGl6ZWRBcmdzPFxuICAgIENvbnRleHRPZjx0aGlzW1wicmVwb1wiXT4sXG4gICAgQVJHUyxcbiAgICBNRVRIT0QgZXh0ZW5kcyBzdHJpbmcgPyB0cnVlIDogZmFsc2VcbiAgPjtcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGxvZ0N0eDxcbiAgICBBUkdTIGV4dGVuZHMgYW55W10gPSBhbnlbXSxcbiAgICBNRVRIT0QgZXh0ZW5kcyBNZXRob2RPck9wZXJhdGlvbiA9IE1ldGhvZE9yT3BlcmF0aW9uLFxuICA+KFxuICAgIGFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8dGhpc1tcInJlcG9cIl0+LCBBUkdTPixcbiAgICBvcGVyYXRpb246IE1FVEhPRCxcbiAgICBhbGxvd0NyZWF0ZTogZmFsc2VcbiAgKTogQ29udGV4dHVhbGl6ZWRBcmdzPFxuICAgIENvbnRleHRPZjx0aGlzW1wicmVwb1wiXT4sXG4gICAgQVJHUyxcbiAgICBNRVRIT0QgZXh0ZW5kcyBzdHJpbmcgPyB0cnVlIDogZmFsc2VcbiAgPjtcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGxvZ0N0eDxcbiAgICBBUkdTIGV4dGVuZHMgYW55W10gPSBhbnlbXSxcbiAgICBNRVRIT0QgZXh0ZW5kcyBNZXRob2RPck9wZXJhdGlvbiA9IE1ldGhvZE9yT3BlcmF0aW9uLFxuICA+KFxuICAgIGFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8dGhpc1tcInJlcG9cIl0+LCBBUkdTPixcbiAgICBvcGVyYXRpb246IE1FVEhPRCxcbiAgICBhbGxvd0NyZWF0ZTogdHJ1ZVxuICApOiBQcm9taXNlPFxuICAgIENvbnRleHR1YWxpemVkQXJnczxcbiAgICAgIENvbnRleHRPZjx0aGlzW1wicmVwb1wiXT4sXG4gICAgICBBUkdTLFxuICAgICAgTUVUSE9EIGV4dGVuZHMgc3RyaW5nID8gdHJ1ZSA6IGZhbHNlXG4gICAgPlxuICA+O1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgbG9nQ3R4PFxuICAgIEFSR1MgZXh0ZW5kcyBhbnlbXSA9IGFueVtdLFxuICAgIE1FVEhPRCBleHRlbmRzIE1ldGhvZE9yT3BlcmF0aW9uID0gTWV0aG9kT3JPcGVyYXRpb24sXG4gID4oXG4gICAgYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjx0aGlzW1wicmVwb1wiXT4sIEFSR1M+LFxuICAgIG9wZXJhdGlvbjogTUVUSE9ELFxuICAgIGFsbG93Q3JlYXRlOiBib29sZWFuID0gZmFsc2VcbiAgKTpcbiAgICB8IFByb21pc2U8XG4gICAgICAgIENvbnRleHR1YWxpemVkQXJnczxcbiAgICAgICAgICBDb250ZXh0T2Y8dGhpc1tcInJlcG9cIl0+LFxuICAgICAgICAgIEFSR1MsXG4gICAgICAgICAgTUVUSE9EIGV4dGVuZHMgc3RyaW5nID8gdHJ1ZSA6IGZhbHNlXG4gICAgICAgID5cbiAgICAgID5cbiAgICB8IENvbnRleHR1YWxpemVkQXJnczxcbiAgICAgICAgQ29udGV4dE9mPHRoaXNbXCJyZXBvXCJdPixcbiAgICAgICAgQVJHUyxcbiAgICAgICAgTUVUSE9EIGV4dGVuZHMgc3RyaW5nID8gdHJ1ZSA6IGZhbHNlXG4gICAgICA+IHtcbiAgICBjb25zdCBjdHggPSB0aGlzLnJlcG9bXCJfYWRhcHRlclwiXVtcImxvZ0N0eFwiXShcbiAgICAgIFt0aGlzLnJlcG8uY2xhc3MgYXMgYW55LCAuLi5hcmdzXSBhcyBhbnksXG4gICAgICBvcGVyYXRpb24sXG4gICAgICBhbGxvd0NyZWF0ZSBhcyBhbnksXG4gICAgICB0aGlzLnJlcG9bXCJfb3ZlcnJpZGVzXCJdIHx8IHt9XG4gICAgKTtcbiAgICBmdW5jdGlvbiBzcXVhc2hBcmdzKGN0eDogQ29udGV4dHVhbGl6ZWRBcmdzPENvbnRleHRPZjxhbnk+Pikge1xuICAgICAgY3R4LmN0eEFyZ3Muc2hpZnQoKTsgLy8gcmVtb3ZlcyBhZGRlZCBtb2RlbCB0byBhcmdzXG4gICAgICByZXR1cm4gY3R4IGFzIGFueTtcbiAgICB9XG5cbiAgICBpZiAoIShjdHggaW5zdGFuY2VvZiBQcm9taXNlKSkgcmV0dXJuIHNxdWFzaEFyZ3MoY3R4KTtcbiAgICByZXR1cm4gY3R4LnRoZW4oc3F1YXNoQXJncyk7XG4gIH1cbn1cbiJdfQ==
@@ -8,6 +8,7 @@ import type { ContextualArgs, ContextualizedArgs, MaybeContextualArg, MethodOrOp
8
8
  import { OrderDirection } from "../repository/constants";
9
9
  import { type DirectionLimitOffset } from "../query/types";
10
10
  import { type Observer } from "../interfaces";
11
+ import { SelectSelector, WhereOption } from "../query/index";
11
12
  export type ArrayMode = "one" | "many";
12
13
  export declare class ModelService<M extends Model<boolean>, R extends Repo<M> = Repo<M>> extends Service implements IRepository<M, ContextOf<R>>, PersistenceObservable<ContextOf<R>>, PersistenceObserver<ContextOf<R>> {
13
14
  private readonly clazz;
@@ -25,12 +26,10 @@ export declare class ModelService<M extends Model<boolean>, R extends Repo<M> =
25
26
  query<M, R extends ArrayMode = "one">(methodName: string, ...args: unknown[]): Promise<R extends "one" ? M : M[]>;
26
27
  update(model: M, ...args: MaybeContextualArg<ContextOf<R>>): Promise<M>;
27
28
  updateAll(models: M[], ...args: any[]): Promise<M[]>;
28
- select: {
29
- <S extends readonly (keyof M)[]>(): import("..").WhereOption<M, M[]>;
30
- <S extends readonly (keyof M)[]>(selector: readonly [...S]): import("..").WhereOption<M, Pick<M, S[number]>[]>;
31
- };
29
+ select<S extends readonly SelectSelector<M>[]>(): WhereOption<M, M[]>;
30
+ select<S extends readonly SelectSelector<M>[]>(selector: readonly [...S]): WhereOption<M, Pick<M, S[number]>[]>;
32
31
  listBy(key: keyof M, order: OrderDirection, ...args: MaybeContextualArg<ContextOf<R>>): Promise<M[]>;
33
- paginateBy(key: keyof M, order: OrderDirection, ref: Omit<DirectionLimitOffset, "direction">, ...args: MaybeContextualArg<ContextOf<R>>): Promise<import("..").SerializedPage<M>>;
32
+ paginateBy(key: keyof M, order: OrderDirection, ref: Omit<DirectionLimitOffset, "direction">, ...args: MaybeContextualArg<ContextOf<R>>): Promise<import("../query/Paginator").SerializedPage<M>>;
34
33
  findOneBy(key: keyof M, value: any, ...args: MaybeContextualArg<ContextOf<R>>): Promise<M>;
35
34
  findBy(key: keyof M, value: any, ...args: MaybeContextualArg<ContextOf<R>>): Promise<M[]>;
36
35
  statement(name: string, ...args: MaybeContextualArg<ContextOf<R>>): Promise<any>;
@@ -48,4 +48,4 @@ class PersistenceService extends services_1.ClientBasedService {
48
48
  }
49
49
  }
50
50
  exports.PersistenceService = PersistenceService;
51
- //# sourceMappingURL=PersistenceService.js.map
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGVyc2lzdGVuY2VTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL1BlcnNpc3RlbmNlU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBZ0Q7QUFJaEQsMERBQWlEO0FBQ2pELDJEQUF3RDtBQUV4RCw4REFBMkQ7QUFDM0Qsc0RBQXdEO0FBRXhELE1BQWEsa0JBRVgsU0FBUSw2QkFJVDtJQUNDO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRUQsNkRBQTZEO0lBQ3BELEdBQUcsQ0FBQyxJQUFTLEVBQUUsR0FBRyxJQUFXO1FBQ3BDLE1BQU0sSUFBSSx3QkFBZ0IsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFUSxLQUFLLENBQUMsVUFBVSxDQUN2QixHQUFHLElBQXNDO1FBS3pDLE1BQU0sSUFBSSxHQUFvRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0UsSUFDRSxDQUFDLElBQUk7WUFDTCxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ3BCLElBQUksWUFBWSxpQkFBTztZQUN2QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFcEMsTUFBTSxJQUFJLDZCQUFhLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUMzRCxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQ3ZCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsMkJBQWUsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQzlELENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2QixNQUFNLE9BQU8sR0FBUSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUN2RCxJQUFJLENBQUM7Z0JBQ0gsR0FBRyxDQUFDLEtBQUssQ0FDUCxnQkFBZ0IsTUFBTSxDQUFDLElBQUksaUJBQWlCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FDbEUsQ0FBQztnQkFDRixNQUFNLE9BQU8sR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQU0sQ0FBQztnQkFDOUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxlQUFlLE9BQU8sQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ2xELE9BQU8sT0FBTyxDQUFDO1lBQ2pCLENBQUM7WUFBQyxPQUFPLENBQVUsRUFBRSxDQUFDO2dCQUNwQixNQUFNLElBQUksNkJBQWEsQ0FBQyx3QkFBd0IsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILEtBQUssTUFBTSxDQUFDLElBQUksT0FBTyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDO2dCQUNILE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1lBQ2pDLENBQUM7WUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO2dCQUNoQixNQUFNLElBQUksNkJBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEUsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPO1lBQ0wsTUFBTSxFQUFFLE9BQU87WUFDZixNQUFNLEVBQUUsSUFBSTtTQUNiLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUEzREQsZ0RBMkRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xpZW50QmFzZWRTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZXNcIjtcbmltcG9ydCB7IEFkYXB0ZXIgfSBmcm9tIFwiLi4vcGVyc2lzdGVuY2UvQWRhcHRlclwiO1xuaW1wb3J0IHsgQ29uZmlnT2YsIENvbnRleHRPZiB9IGZyb20gXCIuLi9wZXJzaXN0ZW5jZS90eXBlc1wiO1xuaW1wb3J0IHsgTWF5YmVDb250ZXh0dWFsQXJnIH0gZnJvbSBcIi4uL3V0aWxzL0NvbnRleHR1YWxMb2dnZWRDbGFzc1wiO1xuaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gXCIuLi9wZXJzaXN0ZW5jZS9Db250ZXh0XCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgUGVyc2lzdGVuY2VLZXlzIH0gZnJvbSBcIi4uL3BlcnNpc3RlbmNlL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgVW5zdXBwb3J0ZWRFcnJvciB9IGZyb20gXCIuLi9wZXJzaXN0ZW5jZS9pbmRleFwiO1xuXG5leHBvcnQgY2xhc3MgUGVyc2lzdGVuY2VTZXJ2aWNlPFxuICBBIGV4dGVuZHMgQWRhcHRlcjxhbnksIGFueSwgYW55LCBhbnk+LFxuPiBleHRlbmRzIENsaWVudEJhc2VkU2VydmljZTxcbiAgQVtdLFxuICBbQ29uc3RydWN0b3I8QT4sIENvbmZpZ09mPEE+LCAuLi5hcmdzOiBhbnlbXV1bXSxcbiAgQ29udGV4dE9mPEE+XG4+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgb3ZlcnJpZGUgZm9yKGNvbmY6IGFueSwgLi4uYXJnczogYW55W10pOiB0aGlzIHtcbiAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihcIlBlcnNpc3RlbmNlIHNlcnZpY2UgY2Fubm90IGJlIG92ZXJyaWRkZW5cIik7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBpbml0aWFsaXplKFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8e1xuICAgIGNvbmZpZzogW0NvbnN0cnVjdG9yPEE+LCBDb25maWdPZjxBPiwgLi4uYXJnczogYW55W11dW107XG4gICAgY2xpZW50OiBBW107XG4gIH0+IHtcbiAgICBjb25zdCBjZmdzOiBbQ29uc3RydWN0b3I8QT4sIENvbmZpZ09mPEE+LCAuLi5hcmdzOiBhbnlbXV1bXSA9IGFyZ3Muc2hpZnQoKTtcbiAgICBpZiAoXG4gICAgICAhY2ZncyB8fFxuICAgICAgIUFycmF5LmlzQXJyYXkoY2ZncykgfHxcbiAgICAgIGNmZ3MgaW5zdGFuY2VvZiBDb250ZXh0IHx8XG4gICAgICAhY2Zncy5ldmVyeSgoYykgPT4gQXJyYXkuaXNBcnJheShjKSlcbiAgICApXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTWlzc2luZy9pbnZhbGlkIGNvbmZpZ3VyYXRpb25gKTtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUGVyc2lzdGVuY2VLZXlzLklOSVRJQUxJWkFUSU9OLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuaW5pdGlhbGl6ZSk7XG4gICAgY29uc3QgY2xpZW50czogQVtdID0gY2Zncy5tYXAoKFtjb25zdHIsIGNmZywgLi4uYXJnc10pID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGxvZy5zaWxseShcbiAgICAgICAgICBgSW5pdGlhbGl6aW5nICR7Y29uc3RyLm5hbWV9IHdpdGggY29uZmlnOiAke0pTT04uc3RyaW5naWZ5KGNmZyl9YFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBhZGFwdGVyID0gbmV3IGNvbnN0cihjZmcsIC4uLmFyZ3MpIGFzIEE7XG4gICAgICAgIGxvZy5kZWJ1ZyhgSW5pdGlhbGl6ZWQgJHthZGFwdGVyLnRvU3RyaW5nKCl9Li4uYCk7XG4gICAgICAgIHJldHVybiBhZGFwdGVyO1xuICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgRmFpbGVkIHRvIGluaXRpYWxpemUgJHtjb25zdHIubmFtZX06ICR7ZX1gKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGZvciAoY29uc3QgYyBvZiBjbGllbnRzKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBjLmluaXRpYWxpemUoLi4uY3R4QXJncyk7XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEZhaWxlZCB0byBpbml0aWFsaXplICR7Yy50b1N0cmluZygpfTogJHtlfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBjbGllbnQ6IGNsaWVudHMsXG4gICAgICBjb25maWc6IGNmZ3MsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -22,4 +22,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
22
22
  __exportStar(require("./ModelService.cjs"), exports);
23
23
  __exportStar(require("./PersistenceService.cjs"), exports);
24
24
  __exportStar(require("./services.cjs"), exports);
25
- //# sourceMappingURL=index.js.map
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7O0dBSUc7QUFDSCxxREFBK0I7QUFDL0IsMkRBQXFDO0FBQ3JDLGlEQUEyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlc2NyaXB0aW9uIEV4cG9ydHMgZm9yIHRoZSBzZXJ2aWNlcyBtb2R1bGUuXG4gKiBAc3VtbWFyeSBUaGlzIGZpbGUgZXhwb3J0cyBhbGwgdGhlIG5lY2Vzc2FyeSBjb21wb25lbnRzIGZvciB0aGUgc2VydmljZXMgZnVuY3Rpb25hbGl0eSwgaW5jbHVkaW5nIE1vZGVsU2VydmljZSwgUGVyc2lzdGVuY2VTZXJ2aWNlLCBhbmQgc2VydmljZXMuXG4gKiBAbW9kdWxlIGNvcmUvc2VydmljZXNcbiAqL1xuZXhwb3J0ICogZnJvbSBcIi4vTW9kZWxTZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9QZXJzaXN0ZW5jZVNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NlcnZpY2VzXCI7XG4iXX0=
@@ -327,4 +327,4 @@ __decorate([
327
327
  __metadata("design:type", Object),
328
328
  __metadata("design:paramtypes", [])
329
329
  ], ClientBasedService.prototype, "client", null);
330
- //# sourceMappingURL=services.js.map
330
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvc2VydmljZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBU0EsMERBQWlEO0FBQ2pELCtDQUFnRTtBQUNoRSxnRkFNd0M7QUFDeEMsMkRBQXdEO0FBRXhELDhEQUFnRjtBQUNoRixnREFBc0Q7QUFDdEQsMkVBQThEO0FBQzlELGdFQUFpRDtBQUVqRCwwRUFBaUU7QUFDakUscURBQWlEO0FBRWpELE1BQXNCLE9BR3BCLFNBQVEsNkNBQXdCO0lBT2hDLFlBQStCLElBQWE7UUFDMUMsS0FBSyxFQUFFLENBQUM7UUFEcUIsU0FBSSxHQUFKLElBQUksQ0FBUztRQUpsQyxjQUFTLEdBQWUsRUFBRSxDQUFDO1FBMElyQzs7O1dBR0c7UUFDZ0IsWUFBTyxHQUFtQixDQUFBLGlCQUVmLENBQUEsQ0FBQztJQTFJL0IsQ0FBQztJQUVELEdBQUcsQ0FBQyxJQUFTLEVBQUUsR0FBRyxJQUFXO1FBQzNCLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFO1lBQ3JCLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVE7Z0JBQzFCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDbkQsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRO29CQUFFLE9BQU8sSUFBSSxDQUFDO2dCQUMxQyxJQUFJLElBQUksWUFBWSxPQUFPO29CQUFFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztnQkFDNUQsSUFBSSxJQUFJLFlBQVksa0JBQVU7b0JBQUUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMzRCxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxD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QztJQUVELElBQ0ksTUFBTTtRQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE1BQU0sSUFBSSw2QkFBYSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDckUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBMkI7UUFDM0MsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3RCxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDL0IsQ0FBQztDQUNGO0FBL0NELGdEQStDQztBQWpDTztJQURMLElBQUEsZUFBSyxHQUFFOzs7OzhDQVdQO0FBT0Q7SUFBQyxJQUFBLGVBQUssR0FBRTs7O2dEQUlQO0FBRUQ7SUFBQyxJQUFBLGVBQUssR0FBRTs7O2dEQUlQIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBBbGxPcGVyYXRpb25LZXlzLFxuICBDb250ZXh0RmxhZ3MsXG4gIEV2ZW50SWRzLFxuICBGbGFnc09mLFxuICBPYnNlcnZlckZpbHRlcixcbiAgUGVyc2lzdGVuY2VPYnNlcnZhYmxlLFxuICBQZXJzaXN0ZW5jZU9ic2VydmVyLFxufSBmcm9tIFwiLi4vcGVyc2lzdGVuY2UvdHlwZXNcIjtcbmltcG9ydCB7IENvbnRleHQgfSBmcm9tIFwiLi4vcGVyc2lzdGVuY2UvQ29udGV4dFwiO1xuaW1wb3J0IHsgZmluYWwsIHR5cGUgTG9nZ2VyLCBMb2dnaW5nIH0gZnJvbSBcIkBkZWNhZi10cy9sb2dnaW5nXCI7XG5pbXBvcnQge1xuICBDb250ZXh0dWFsQXJncyxcbiAgQ29udGV4dHVhbGl6ZWRBcmdzLFxuICBDb250ZXh0dWFsTG9nZ2VkQ2xhc3MsXG4gIE1heWJlQ29udGV4dHVhbEFyZyxcbiAgTWV0aG9kT3JPcGVyYXRpb24sXG59IGZyb20gXCIuLi91dGlscy9Db250ZXh0dWFsTG9nZ2VkQ2xhc3NcIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyBEZWZhdWx0Q29udGV4dEZsYWdzLCBQZXJzaXN0ZW5jZUtleXMgfSBmcm9tIFwiLi4vcGVyc2lzdGVuY2UvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBpbmplY3RhYmxlU2VydmljZUtleSB9IGZyb20gXCIuLi91dGlscy91dGlsc1wiO1xuaW1wb3J0IHsgSW5qZWN0YWJsZXMgfSBmcm9tIFwiQGRlY2FmLXRzL2luamVjdGFibGUtZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgVVVJRCB9IGZyb20gXCIuLi9wZXJzaXN0ZW5jZS9nZW5lcmF0b3JzXCI7XG5pbXBvcnQgdHlwZSB7IE9ic2VydmVyIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvT2JzZXJ2ZXJcIjtcbmltcG9ydCB7IE9ic2VydmVySGFuZGxlciB9IGZyb20gXCIuLi9wZXJzaXN0ZW5jZS9PYnNlcnZlckhhbmRsZXJcIjtcbmltcG9ydCB7IFJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vcmVwb3NpdG9yeS9pbmRleFwiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2VydmljZTxcbiAgICBDIGV4dGVuZHMgQ29udGV4dDxDb250ZXh0RmxhZ3M8YW55Pj4gPSBDb250ZXh0PENvbnRleHRGbGFnczxhbnk+PixcbiAgPlxuICBleHRlbmRzIENvbnRleHR1YWxMb2dnZWRDbGFzczxDPlxuICBpbXBsZW1lbnRzIFBlcnNpc3RlbmNlT2JzZXJ2YWJsZTxDPiwgUGVyc2lzdGVuY2VPYnNlcnZlcjxDPlxue1xuICBwcm90ZWN0ZWQgb2JzZXJ2ZXJzOiBPYnNlcnZlcltdID0gW107XG5cbiAgcHJvdGVjdGVkIG9ic2VydmVySGFuZGxlcj86IE9ic2VydmVySGFuZGxlcjtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocmVhZG9ubHkgbmFtZT86IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBmb3IoY29uZjogYW55LCAuLi5hcmdzOiBhbnlbXSk6IHRoaXMge1xuICAgIHJldHVybiBuZXcgUHJveHkodGhpcywge1xuICAgICAgZ2V0KG9yaWdpbmFsLCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICBjb25zdCBvcmlnID0gUmVmbGVjdC5nZXQob3JpZ2luYWwsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgaWYgKHR5cGVvZiBvcmlnICE9PSBcIm9iamVjdFwiKSByZXR1cm4gb3JpZztcbiAgICAgICAgaWYgKG9yaWcgaW5zdGFuY2VvZiBTZXJ2aWNlKSByZXR1cm4gb3JpZy5mb3IoY29uZiwgLi4uYXJncyk7XG4gICAgICAgIGlmIChvcmlnIGluc3RhbmNlb2YgUmVwb3NpdG9yeSkgcmV0dXJuIG9yaWcub3ZlcnJpZGUoY29uZik7XG4gICAgICAgIHJldHVybiBvcmlnO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmVnaXN0ZXJzIGFuIG9ic2VydmVyIGZvciB0aGlzIHJlcG9zaXRvcnkuXG4gICAqIEBzdW1tYXJ5IEFkZHMgYW4gb2JzZXJ2ZXIgdGhhdCB3aWxsIGJlIG5vdGlmaWVkIG9mIGNoYW5nZXMgdG8gbW9kZWxzIGluIHRoaXMgcmVwb3NpdG9yeS5cbiAgICogQHBhcmFtIHtPYnNlcnZlcn0gb2JzZXJ2ZXIgLSBUaGUgb2JzZXJ2ZXIgdG8gcmVnaXN0ZXIuXG4gICAqIEBwYXJhbSB7T2JzZXJ2ZXJGaWx0ZXJ9IFtmaWx0ZXJdIC0gT3B0aW9uYWwgZmlsdGVyIHRvIGxpbWl0IHdoaWNoIGV2ZW50cyB0aGUgb2JzZXJ2ZXIgcmVjZWl2ZXMuXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqIEBzZWUge09ic2VydmFibGUjb2JzZXJ2ZX1cbiAgICovXG4gIEBmaW5hbCgpXG4gIG9ic2VydmUob2JzZXJ2ZXI6IE9ic2VydmVyLCBmaWx0ZXI/OiBPYnNlcnZlckZpbHRlcik6ICgpID0+IHZvaWQge1xuICAgIGlmICghdGhpcy5vYnNlcnZlckhhbmRsZXIpXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgXCJvYnNlcnZlckhhbmRsZXJcIiwge1xuICAgICAgICB2YWx1ZTogbmV3IE9ic2VydmVySGFuZGxlcigpLFxuICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICB9KTtcbiAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5vYnNlcnZlKTtcbiAgICB0aGlzLm9ic2VydmVySGFuZGxlciEub2JzZXJ2ZShvYnNlcnZlciwgZmlsdGVyKTtcbiAgICBsb2cudmVyYm9zZShcbiAgICAgIGBSZWdpc3RlcmVkIG5ldyBvYnNlcnZlciAke29ic2VydmVyLmNvbnN0cnVjdG9yLm5hbWUgfHwgb2JzZXJ2ZXIudG9TdHJpbmcoKX1gXG4gICAgKTtcbiAgICByZXR1cm4gKCkgPT4gdGhpcy51bk9ic2VydmUob2JzZXJ2ZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBVbnJlZ2lzdGVycyBhbiBvYnNlcnZlciBmcm9tIHRoaXMgcmVwb3NpdG9yeS5cbiAgICogQHN1bW1hcnkgUmVtb3ZlcyBhbiBvYnNlcnZlciBzbyBpdCB3aWxsIG5vIGxvbmdlciByZWNlaXZlIG5vdGlmaWNhdGlvbnMgb2YgY2hhbmdlcy5cbiAgICogQHBhcmFtIHtPYnNlcnZlcn0gb2JzZXJ2ZXIgLSBUaGUgb2JzZXJ2ZXIgdG8gdW5yZWdpc3Rlci5cbiAgICogQHJldHVybiB7dm9pZH1cbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gSWYgdGhlIG9ic2VydmVyIGhhbmRsZXIgaXMgbm90IGluaXRpYWxpemVkLlxuICAgKiBAc2VlIHtPYnNlcnZhYmxlI3VuT2JzZXJ2ZX1cbiAgICovXG4gIEBmaW5hbCgpXG4gIHVuT2JzZXJ2ZShvYnNlcnZlcjogT2JzZXJ2ZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub2JzZXJ2ZXJIYW5kbGVyKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIFwiT2JzZXJ2ZXJIYW5kbGVyIG5vdCBpbml0aWFsaXplZC4gRGlkIHlvdSByZWdpc3RlciBhbnkgb2JzZXJ2YWJsZXM/IG9yIGFyZSB5b3UgdW5yZWdpc3RlcmluZyB3aGUgeW91IHNob3VsZG4ndFwiXG4gICAgICApO1xuICAgIHRoaXMub2JzZXJ2ZXJIYW5kbGVyLnVuT2JzZXJ2ZShvYnNlcnZlcik7XG4gICAgY29uc3QgbG9nID0gdGhpcy5sb2cuZm9yKHRoaXMudW5PYnNlcnZlKTtcbiAgICBsb2cudmVyYm9zZShgT2JzZXJ2ZXIgJHtvYnNlcnZlci50b1N0cmluZygpfSByZW1vdmVkYCk7XG4gICAgaWYgKCF0aGlzLm9ic2VydmVySGFuZGxlci5jb3VudCgpKSB7XG4gICAgICBkZWxldGUgdGhpcy5vYnNlcnZlckhhbmRsZXI7XG4gICAgICBsb2cudmVyYm9zZShgTm8gbG9uZ2VyIGJlaW5nIG9ic2VydmVkYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBOb3RpZmllcyBhbGwgb2JzZXJ2ZXJzIG9mIGFuIGV2ZW50LlxuICAgKiBAc3VtbWFyeSBVcGRhdGVzIGFsbCByZWdpc3RlcmVkIG9ic2VydmVycyB3aXRoIGluZm9ybWF0aW9uIGFib3V0IGEgZGF0YWJhc2UgZXZlbnQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZSAtIFRoZSB0YWJsZSBuYW1lIHdoZXJlIHRoZSBldmVudCBvY2N1cnJlZC5cbiAgICogQHBhcmFtIHtPcGVyYXRpb25LZXlzfEJ1bGtDcnVkT3BlcmF0aW9uS2V5c3xzdHJpbmd9IGV2ZW50IC0gVGhlIHR5cGUgb2YgZXZlbnQgdGhhdCBvY2N1cnJlZC5cbiAgICogQHBhcmFtIHtFdmVudElkc30gaWQgLSBUaGUgSUQgb3IgSURzIG9mIHRoZSBhZmZlY3RlZCByZWNvcmRzLlxuICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHMuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gYWxsIG9ic2VydmVycyBoYXZlIGJlZW4gbm90aWZpZWQuXG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IElmIHRoZSBvYnNlcnZlciBoYW5kbGVyIGlzIG5vdCBpbml0aWFsaXplZC5cbiAgICovXG4gIGFzeW5jIHVwZGF0ZU9ic2VydmVycyhcbiAgICB0YWJsZTogQ29uc3RydWN0b3I8YW55PiB8IHN0cmluZyxcbiAgICBldmVudDogQWxsT3BlcmF0aW9uS2V5cyxcbiAgICBpZDogRXZlbnRJZHMsXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8Qz5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLm9ic2VydmVySGFuZGxlcilcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBcIk9ic2VydmVySGFuZGxlciBub3QgaW5pdGlhbGl6ZWQuIERpZCB5b3UgcmVnaXN0ZXIgYW55IG9ic2VydmFibGVzP1wiXG4gICAgICApO1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnVwZGF0ZU9ic2VydmVycyk7XG4gICAgbG9nLnZlcmJvc2UoXG4gICAgICBgVXBkYXRpbmcgJHt0aGlzLm9ic2VydmVySGFuZGxlci5jb3VudCgpfSBvYnNlcnZlcnMgZm9yICR7dGhpc31gXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLm9ic2VydmVySGFuZGxlci51cGRhdGVPYnNlcnZlcnModGFibGUsIGV2ZW50LCBpZCwgLi4uY3R4QXJncyk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgcmVwb3NpdG9yeSBmbGFncyBmb3IgYW4gb3BlcmF0aW9uXG4gICAqIEBzdW1tYXJ5IEdlbmVyYXRlcyBhIHNldCBvZiBmbGFncyB0aGF0IGRlc2NyaWJlIGEgZGF0YWJhc2Ugb3BlcmF0aW9uLCBjb21iaW5pbmcgZGVmYXVsdCBmbGFncyB3aXRoIG92ZXJyaWRlc1xuICAgKiBAdGVtcGxhdGUgRiAtIFRoZSBSZXBvc2l0b3J5IEZsYWdzIHR5cGVcbiAgICogQHRlbXBsYXRlIE0gLSBUaGUgbW9kZWwgdHlwZVxuICAgKiBAcGFyYW0ge09wZXJhdGlvbktleXN9IG9wZXJhdGlvbiAtIFRoZSB0eXBlIG9mIG9wZXJhdGlvbiBiZWluZyBwZXJmb3JtZWRcbiAgICogQHBhcmFtIHtQYXJ0aWFsPEY+fSBmbGFncyAtIEN1c3RvbSBmbGFnIG92ZXJyaWRlc1xuICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHNcbiAgICogQHJldHVybiB7UHJvbWlzZTxGPn0gVGhlIGNvbXBsZXRlIHNldCBvZiBmbGFnc1xuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGZsYWdzKFxuICAgIG9wZXJhdGlvbjogc3RyaW5nLFxuICAgIGZsYWdzOiBQYXJ0aWFsPEZsYWdzT2Y8Qz4+LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8RmxhZ3NPZjxDPj4ge1xuICAgIGZsYWdzLmNvcnJlbGF0aW9uSWQgPVxuICAgICAgZmxhZ3MuY29ycmVsYXRpb25JZCB8fCBgJHtvcGVyYXRpb259LSR7VVVJRC5pbnN0YW5jZS5nZW5lcmF0ZSgpfWA7XG4gICAgY29uc3QgbG9nID0gKGZsYWdzLmxvZ2dlciB8fCBMb2dnaW5nLmZvcih0aGlzIGFzIGFueSkpIGFzIExvZ2dlcjtcbiAgICBsb2cuc2V0Q29uZmlnKHsgY29ycmVsYXRpb25JZDogZmxhZ3MuY29ycmVsYXRpb25JZCB9KTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgRGVmYXVsdENvbnRleHRGbGFncywgZmxhZ3MsIHtcbiAgICAgIGFyZ3M6IGFyZ3MsXG4gICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCksXG4gICAgICBvcGVyYXRpb246IG9wZXJhdGlvbixcbiAgICAgIGxvZ2dlcjogbG9nLFxuICAgIH0pIGFzIHVua25vd24gYXMgRmxhZ3NPZjxDPjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQWxpYXMgZm9yIHVwZGF0ZU9ic2VydmVycy5cbiAgICogQHN1bW1hcnkgTm90aWZpZXMgYWxsIG9ic2VydmVycyBvZiBhbiBldmVudCAoYWxpYXMgZm9yIHVwZGF0ZU9ic2VydmVycykuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZSAtIFRoZSB0YWJsZSBuYW1lIHdoZXJlIHRoZSBldmVudCBvY2N1cnJlZC5cbiAgICogQHBhcmFtIHtPcGVyYXRpb25LZXlzfEJ1bGtDcnVkT3BlcmF0aW9uS2V5c3xzdHJpbmd9IGV2ZW50IC0gVGhlIHR5cGUgb2YgZXZlbnQgdGhhdCBvY2N1cnJlZC5cbiAgICogQHBhcmFtIHtFdmVudElkc30gaWQgLSBUaGUgSUQgb3IgSURzIG9mIHRoZSBhZmZlY3RlZCByZWNvcmRzLlxuICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHMuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gYWxsIG9ic2VydmVycyBoYXZlIGJlZW4gbm90aWZpZWQuXG4gICAqL1xuICBhc3luYyByZWZyZXNoKFxuICAgIHRhYmxlOiBDb25zdHJ1Y3Rvcjxhbnk+IHwgc3RyaW5nLFxuICAgIGV2ZW50OiBBbGxPcGVyYXRpb25LZXlzLFxuICAgIGlkOiBFdmVudElkcyxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxDPlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVPYnNlcnZlcnModGFibGUsIGV2ZW50LCBpZCwgLi4uYXJncyk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBjb250ZXh0IGNvbnN0cnVjdG9yIGZvciB0aGlzIGFkYXB0ZXJcbiAgICogQHN1bW1hcnkgUmVmZXJlbmNlIHRvIHRoZSBjb250ZXh0IGNsYXNzIGNvbnN0cnVjdG9yIHVzZWQgYnkgdGhpcyBhZGFwdGVyXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgQ29udGV4dDogQ29uc3RydWN0b3I8Qz4gPSBDb250ZXh0PFxuICAgIEZsYWdzT2Y8Qz5cbiAgPiBhcyB1bmtub3duIGFzIENvbnN0cnVjdG9yPEM+O1xuXG4gIGFzeW5jIGNvbnRleHQoXG4gICAgb3BlcmF0aW9uOiAoKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnkpIHwgc3RyaW5nLFxuICAgIG92ZXJyaWRlczogUGFydGlhbDxGbGFnc09mPEM+PixcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dDxhbnk+PlxuICApOiBQcm9taXNlPEM+IHtcbiAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5jb250ZXh0KTtcbiAgICBsb2cuc2lsbHkoXG4gICAgICBgY3JlYXRpbmcgbmV3IGNvbnRleHQgZm9yICR7b3BlcmF0aW9ufSBvcGVyYXRpb24gd2l0aCBmbGFnIG92ZXJyaWRlczogJHtKU09OLnN0cmluZ2lmeShvdmVycmlkZXMpfWBcbiAgICApO1xuICAgIGxldCBjdHggPSBhcmdzLnBvcCgpO1xuICAgIGlmICh0eXBlb2YgY3R4ICE9PSBcInVuZGVmaW5lZFwiICYmICEoY3R4IGluc3RhbmNlb2YgQ29udGV4dCkpIHtcbiAgICAgIGFyZ3MucHVzaChjdHgpO1xuICAgICAgY3R4ID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBvdmVycmlkZXMgPSBjdHhcbiAgICAgID8gT2JqZWN0LmFzc2lnbih7fSwgY3R4LnRvT3ZlcnJpZGVzKCksIG92ZXJyaWRlcylcbiAgICAgIDogb3ZlcnJpZGVzO1xuICAgIGNvbnN0IGZsYWdzID0gYXdhaXQgdGhpcy5mbGFncyhcbiAgICAgIHR5cGVvZiBvcGVyYXRpb24gPT09IFwic3RyaW5nXCIgPyBvcGVyYXRpb24gOiBvcGVyYXRpb24ubmFtZSxcbiAgICAgIG92ZXJyaWRlcyBhcyBQYXJ0aWFsPEZsYWdzT2Y8Qz4+LFxuICAgICAgLi4uWy4uLmFyZ3MsIGN0eF0uZmlsdGVyKEJvb2xlYW4pXG4gICAgKTtcbiAgICBpZiAoY3R4KSB7XG4gICAgICBpZiAoIShjdHggaW5zdGFuY2VvZiB0aGlzLkNvbnRleHQpKSB7XG4gICAgICAgIGNvbnN0IG5ld0N0eCA9IG5ldyB0aGlzLkNvbnRleHQoKS5hY2N1bXVsYXRlKHtcbiAgICAgICAgICAuLi5jdHhbXCJjYWNoZVwiXSxcbiAgICAgICAgICAuLi5mbGFncyxcbiAgICAgICAgICBwYXJlbnRDb250ZXh0OiBjdHgsXG4gICAgICAgIH0pIGFzIGFueTtcbiAgICAgICAgY3R4LmFjY3VtdWxhdGUoe1xuICAgICAgICAgIGNoaWxkQ29udGV4dHM6IFtcbiAgICAgICAgICAgIC4uLihjdHguZ2V0T3JVbmRlZmluZWQoXCJjaGlsZENvbnRleHRzXCIpIHx8IFtdKSxcbiAgICAgICAgICAgIG5ld0N0eCxcbiAgICAgICAgICBdLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG5ld0N0eDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGN1cnJlbnRPcCA9IGN0eC5nZXQoXCJvcGVyYXRpb25cIik7XG4gICAgICBpZiAoY3VycmVudE9wICE9PSBvcGVyYXRpb24pIHtcbiAgICAgICAgY29uc3QgbmV3Q3R4ID0gbmV3IHRoaXMuQ29udGV4dCgpLmFjY3VtdWxhdGUoe1xuICAgICAgICAgIC4uLmN0eFtcImNhY2hlXCJdLFxuICAgICAgICAgIC4uLmZsYWdzLFxuICAgICAgICAgIHBhcmVudENvbnRleHQ6IGN0eCxcbiAgICAgICAgfSkgYXMgYW55O1xuXG4gICAgICAgIGN0eC5hY2N1bXVsYXRlKHtcbiAgICAgICAgICBjaGlsZENvbnRleHRzOiBbXG4gICAgICAgICAgICAuLi4oY3R4LmdldE9yVW5kZWZpbmVkKFwiY2hpbGRDb250ZXh0c1wiKSB8fCBbXSksXG4gICAgICAgICAgICBuZXdDdHgsXG4gICAgICAgICAgXSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXdDdHg7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3R4LmFjY3VtdWxhdGUoZmxhZ3MpIGFzIGFueTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IHRoaXMuQ29udGV4dCgpLmFjY3VtdWxhdGUoe1xuICAgICAgLi4uZmxhZ3MsXG4gICAgfSkgYXMgYW55O1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGxvZ0N0eDxcbiAgICBDT05URVhUIGV4dGVuZHMgQ29udGV4dDxhbnk+ID0gQyxcbiAgICBBUkdTIGV4dGVuZHMgYW55W10gPSBhbnlbXSxcbiAgICBNRVRIT0QgZXh0ZW5kcyBNZXRob2RPck9wZXJhdGlvbiA9IE1ldGhvZE9yT3BlcmF0aW9uLFxuICA+KFxuICAgIGFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDT05URVhULCBBUkdTPixcbiAgICBvcGVyYXRpb246IE1FVEhPRFxuICApOiBDb250ZXh0dWFsaXplZEFyZ3M8Q09OVEVYVCwgQVJHUywgTUVUSE9EIGV4dGVuZHMgc3RyaW5nID8gdHJ1ZSA6IGZhbHNlPjtcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGxvZ0N0eDxcbiAgICBDT05URVhUIGV4dGVuZHMgQ29udGV4dDxhbnk+ID0gQyxcbiAgICBBUkdTIGV4dGVuZHMgYW55W10gPSBhbnlbXSxcbiAgICBNRVRIT0QgZXh0ZW5kcyBNZXRob2RPck9wZXJhdGlvbiA9IE1ldGhvZE9yT3BlcmF0aW9uLFxuICA+KFxuICAgIGFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDT05URVhULCBBUkdTPixcbiAgICBvcGVyYXRpb246IE1FVEhPRCxcbiAgICBhbGxvd0NyZWF0ZTogZmFsc2UsXG4gICAgb3ZlcnJpZGVzPzogUGFydGlhbDxGbGFnc09mPENPTlRFWFQ+PlxuICApOiBDb250ZXh0dWFsaXplZEFyZ3M8Q09OVEVYVCwgQVJHUywgTUVUSE9EIGV4dGVuZHMgc3RyaW5nID8gdHJ1ZSA6IGZhbHNlPjtcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGxvZ0N0eDxcbiAgICBDT05URVhUIGV4dGVuZHMgQ29udGV4dDxhbnk+ID0gQyxcbiAgICBBUkdTIGV4dGVuZHMgYW55W10gPSBhbnlbXSxcbiAgICBNRVRIT0QgZXh0ZW5kcyBNZXRob2RPck9wZXJhdGlvbiA9IE1ldGhvZE9yT3BlcmF0aW9uLFxuICA+KFxuICAgIGFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDT05URVhULCBBUkdTPixcbiAgICBvcGVyYXRpb246IE1FVEhPRCxcbiAgICBhbGxvd0NyZWF0ZTogdHJ1ZSxcbiAgICBvdmVycmlkZXM/OiBQYXJ0aWFsPEZsYWdzT2Y8Q09OVEVYVD4+XG4gICk6IFByb21pc2U8XG4gICAgQ29udGV4dHVhbGl6ZWRBcmdzPENPTlRFWFQsIEFSR1MsIE1FVEhPRCBleHRlbmRzIHN0cmluZyA/IHRydWUgOiBmYWxzZT5cbiAgPjtcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGxvZ0N0eDxcbiAgICBDT05URVhUIGV4dGVuZHMgQ29udGV4dDxhbnk+ID0gQyxcbiAgICBDUkVBVEUgZXh0ZW5kcyBib29sZWFuID0gZmFsc2UsXG4gICAgQVJHUyBleHRlbmRzIGFueVtdID0gYW55W10sXG4gICAgTUVUSE9EIGV4dGVuZHMgTWV0aG9kT3JPcGVyYXRpb24gPSBNZXRob2RPck9wZXJhdGlvbixcbiAgPihcbiAgICBhcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q09OVEVYVCwgQVJHUz4sXG4gICAgb3BlcmF0aW9uOiBNRVRIT0QsXG4gICAgYWxsb3dDcmVhdGU6IENSRUFURSA9IGZhbHNlIGFzIENSRUFURSxcbiAgICBvdmVycmlkZXM/OiBQYXJ0aWFsPEZsYWdzT2Y8Q09OVEVYVD4+XG4gICk6XG4gICAgfCBQcm9taXNlPFxuICAgICAgICBDb250ZXh0dWFsaXplZEFyZ3M8Q09OVEVYVCwgQVJHUywgTUVUSE9EIGV4dGVuZHMgc3RyaW5nID8gdHJ1ZSA6IGZhbHNlPlxuICAgICAgPlxuICAgIHwgQ29udGV4dHVhbGl6ZWRBcmdzPENPTlRFWFQsIEFSR1MsIE1FVEhPRCBleHRlbmRzIHN0cmluZyA/IHRydWUgOiBmYWxzZT4ge1xuICAgIHJldHVybiBDb250ZXh0dWFsTG9nZ2VkQ2xhc3MubG9nQ3R4LmNhbGwoXG4gICAgICB0aGlzLFxuICAgICAgb3BlcmF0aW9uLFxuICAgICAgb3ZlcnJpZGVzIHx8IHt9LFxuICAgICAgYWxsb3dDcmVhdGUsXG4gICAgICAuLi5hcmdzLmZpbHRlcigoZSkgPT4gdHlwZW9mIGUgIT09IFwidW5kZWZpbmVkXCIpXG4gICAgKSBhc1xuICAgICAgfCBQcm9taXNlPFxuICAgICAgICAgIENvbnRleHR1YWxpemVkQXJnczxcbiAgICAgICAgICAgIENPTlRFWFQsXG4gICAgICAgICAgICBBUkdTLFxuICAgICAgICAgICAgTUVUSE9EIGV4dGVuZHMgc3RyaW5nID8gdHJ1ZSA6IGZhbHNlXG4gICAgICAgICAgPlxuICAgICAgICA+XG4gICAgICB8IENvbnRleHR1YWxpemVkQXJnczxDT05URVhULCBBUkdTLCBNRVRIT0QgZXh0ZW5kcyBzdHJpbmcgPyB0cnVlIDogZmFsc2U+O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZXRyaWV2ZXMgYSBTZXJ2aWNlIGluc3RhbmNlIGJ5IG5hbWUvY2xhc3NcbiAgICogQHN1bW1hcnkgTG9va3MgdXAgYW5kIHJldHVybnMgYSBjYWNoZWQgQVBJIGluc3RhbmNlIGJ5IGl0cyBuYW1lIG9yIGNvbnN0cnVjdG9yXG4gICAqIEB0ZW1wbGF0ZSBBIFR5cGUgZXh0ZW5kaW5nIEFwaVxuICAgKiBAcGFyYW0ge3N0cmluZyB8IENvbnN0cnVjdG9yPEE+fSBuYW1lIC0gTmFtZSBvZiB0aGUgQVBJIG9yIGl0cyBjb25zdHJ1Y3RvclxuICAgKiBAcmV0dXJuIHtBfSBUaGUgcmVxdWVzdGVkIEFQSSBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIGdldDxBIGV4dGVuZHMgU2VydmljZT4obmFtZTogc3RyaW5nIHwgc3ltYm9sIHwgQ29uc3RydWN0b3I8QT4pOiBBIHtcbiAgICBpZiAoIW5hbWUpIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBObyBuYW1lIHByb3ZpZGVkYCk7XG4gICAgY29uc3Qga2V5ID0gaW5qZWN0YWJsZVNlcnZpY2VLZXkobmFtZSk7XG4gICAgY29uc3QgaW5qZWN0YWJsZSA9IEluamVjdGFibGVzLmdldChrZXkpO1xuICAgIGlmIChpbmplY3RhYmxlKSByZXR1cm4gaW5qZWN0YWJsZSBhcyBBO1xuXG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICBgTm8gU2VydmljZSBmb3VuZCBmb3IgJHt0eXBlb2YgbmFtZSA9PT0gXCJzdHJpbmdcIiA/IG5hbWUgOiB0eXBlb2YgbmFtZSA9PT0gXCJzeW1ib2xcIiA/IG5hbWUudG9TdHJpbmcoKSA6IG5hbWUubmFtZX1gXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBib290PEMgZXh0ZW5kcyBDb250ZXh0PGFueT4gPSBhbnk+KFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDPlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBsZXQgY3R4ID0gYXJncy5wb3AoKTtcbiAgICBpZiAodHlwZW9mIGN0eCAhPT0gXCJ1bmRlZmluZWRcIiAmJiAhKGN0eCBpbnN0YW5jZW9mIENvbnRleHQpKSB7XG4gICAgICBhcmdzLnB1c2goY3R4KTtcbiAgICAgIGN0eCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBmbGFncyA9IGF3YWl0IFNlcnZpY2UucHJvdG90eXBlLmZsYWdzKFxuICAgICAgUGVyc2lzdGVuY2VLZXlzLklOSVRJQUxJWkFUSU9OLFxuICAgICAge30sXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICBjdHggPSBjdHhcbiAgICAgID8gKG5ldyBDb250ZXh0KGN0eCkuYWNjdW11bGF0ZSh7XG4gICAgICAgICAgLi4uZmxhZ3MsXG4gICAgICAgICAgcGFyZW50Q29udGV4dDogY3R4LFxuICAgICAgICB9KSBhcyBhbnkpXG4gICAgICA6IChuZXcgQ29udGV4dCgpLmFjY3VtdWxhdGUoZmxhZ3MpIGFzIGFueSk7XG5cbiAgICBhcmdzID0gWy4uLmFyZ3MsIGN0eF07XG5cbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gU2VydmljZS5wcm90b3R5cGUubG9nQ3R4KGFyZ3MsIHRoaXMuYm9vdCk7XG4gICAgY29uc3Qgc2VydmljZXMgPSBJbmplY3RhYmxlcy5zZXJ2aWNlcygpO1xuICAgIGZvciAoY29uc3QgW2tleSwgc2VydmljZV0gb2YgT2JqZWN0LmVudHJpZXMoc2VydmljZXMpKSB7XG4gICAgICB0cnkge1xuICAgICAgICBsb2cudmVyYm9zZShgQm9vdGluZyAke3NlcnZpY2UubmFtZX0gc2VydmljZS4uLmApO1xuICAgICAgICBjb25zdCBzID0gSW5qZWN0YWJsZXMuZ2V0PFNlcnZpY2U+KHNlcnZpY2UgYXMgQ29uc3RydWN0b3I8U2VydmljZT4pO1xuICAgICAgICBpZiAoIXMpXG4gICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEZhaWxlZCB0byByZXNvbHZlIGluamVjdGFibGUgZm9yICR7a2V5fWApO1xuICAgICAgICBpZiAocyBpbnN0YW5jZW9mIENsaWVudEJhc2VkU2VydmljZSkge1xuICAgICAgICAgIGxvZy52ZXJib3NlKGBJbml0aWFsaXppbmcgJHtzZXJ2aWNlLm5hbWV9IHNlcnZpY2UuLi5gKTtcbiAgICAgICAgICBhd2FpdCBzLmJvb3QoLi4uY3R4QXJncyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEZhaWxlZCB0byBib290ICR7c2VydmljZS5uYW1lfSBzZXJ2aWNlOiR7ZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgc2h1dGRvd248QyBleHRlbmRzIENvbnRleHQ8YW55PiA9IGFueT4oXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPEM+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGxldCBjdHggPSBhcmdzLnBvcCgpO1xuICAgIGlmICh0eXBlb2YgY3R4ICE9PSBcInVuZGVmaW5lZFwiICYmICEoY3R4IGluc3RhbmNlb2YgQ29udGV4dCkpIHtcbiAgICAgIGFyZ3MucHVzaChjdHgpO1xuICAgICAgY3R4ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IGZsYWdzID0gYXdhaXQgU2VydmljZS5wcm90b3R5cGUuZmxhZ3MoXG4gICAgICBQZXJzaXN0ZW5jZUtleXMuU0hVVERPV04sXG4gICAgICB7fSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIGN0eCA9IGN0eFxuICAgICAgPyAobmV3IENvbnRleHQoY3R4KS5hY2N1bXVsYXRlKHtcbiAgICAgICAgICAuLi5mbGFncyxcbiAgICAgICAgICBwYXJlbnRDb250ZXh0OiBjdHgsXG4gICAgICAgIH0pIGFzIGFueSlcbiAgICAgIDogKG5ldyBDb250ZXh0KCkuYWNjdW11bGF0ZShmbGFncykgYXMgYW55KTtcblxuICAgIGFyZ3MgPSBbLi4uYXJncywgY3R4XTtcblxuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSBTZXJ2aWNlLnByb3RvdHlwZS5sb2dDdHgoYXJncywgdGhpcy5zaHV0ZG93bik7XG4gICAgY29uc3Qgc2VydmljZXMgPSBJbmplY3RhYmxlcy5zZXJ2aWNlcygpO1xuICAgIGZvciAoY29uc3QgW2tleSwgc2VydmljZV0gb2YgT2JqZWN0LmVudHJpZXMoc2VydmljZXMpLnJldmVyc2UoKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgbG9nLnZlcmJvc2UoYFNodXR0aW5nIGRvd24gJHtzZXJ2aWNlLm5hbWV9IHNlcnZpY2UuLi5gKTtcbiAgICAgICAgY29uc3QgcyA9IEluamVjdGFibGVzLmdldDxTZXJ2aWNlPihzZXJ2aWNlIGFzIENvbnN0cnVjdG9yPFNlcnZpY2U+KTtcbiAgICAgICAgaWYgKCFzKVxuICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBGYWlsZWQgdG8gcmVzb2x2ZSBpbmplY3RhYmxlIGZvciAke2tleX1gKTtcbiAgICAgICAgaWYgKHMgaW5zdGFuY2VvZiBDbGllbnRCYXNlZFNlcnZpY2UpIHtcbiAgICAgICAgICBsb2cudmVyYm9zZShgR3JhY2VmdWxseSBzaHV0dGluZyBkb3duICR7c2VydmljZS5uYW1lfSBzZXJ2aWNlLi4uYCk7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHMuc2h1dGRvd24oLi4uY3R4QXJncyk7XG4gICAgICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICAgICAgbG9nLmVycm9yKFxuICAgICAgICAgICAgICBgRmFpbGVkIHRvIGdyYWNlZnVsbHkgc2h1dGRvd24gJHtzZXJ2aWNlLm5hbWV9IHNlcnZpY2VgLFxuICAgICAgICAgICAgICBlIGFzIEVycm9yXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgRmFpbGVkIHRvIFNodXRkb3duIHNlcnZpY2VzICR7a2V5fTogJHtlfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2xpZW50QmFzZWRTZXJ2aWNlPFxuICBDTElFTlQsXG4gIENPTkYsXG4gIEMgZXh0ZW5kcyBDb250ZXh0PGFueT4gPSBhbnksXG4+IGV4dGVuZHMgU2VydmljZSB7XG4gIHByb3RlY3RlZCBfY2xpZW50PzogQ0xJRU5UO1xuXG4gIHByb3RlY3RlZCBfY29uZmlnPzogQ09ORjtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIEBmaW5hbCgpXG4gIGFzeW5jIGJvb3QoLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPEM+KSB7XG4gICAgY29uc3QgeyBjb25maWcsIGNsaWVudCB9ID0gYXdhaXQgdGhpcy5pbml0aWFsaXplKFxuICAgICAgLi4uKGFyZ3MgYXMgWy4uLmFueVtdLCBDXSlcbiAgICApO1xuICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcbiAgICB0aGlzLl9jbGllbnQgPSBjbGllbnQ7XG4gICAgY29uc3QgeyBsb2cgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFBlcnNpc3RlbmNlS2V5cy5JTklUSUFMSVpBVElPTiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmJvb3QpO1xuICAgIGxvZy52ZXJib3NlKGAke3RoaXMudG9TdHJpbmcoKX0gaW5pdGlhbGl6ZWQuLi5gKTtcbiAgfVxuXG4gIGFic3RyYWN0IGluaXRpYWxpemUoLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8Qz4pOiBQcm9taXNlPHtcbiAgICBjb25maWc6IENPTkY7XG4gICAgY2xpZW50OiBDTElFTlQ7XG4gIH0+O1xuXG4gIEBmaW5hbCgpXG4gIHByb3RlY3RlZCBnZXQgY29uZmlnKCk6IENPTkYge1xuICAgIGlmICghdGhpcy5fY29uZmlnKSB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgQ29uZmlnIG5vdCBpbml0aWFsaXplZGApO1xuICAgIHJldHVybiB0aGlzLl9jb25maWc7XG4gIH1cblxuICBAZmluYWwoKVxuICBnZXQgY2xpZW50KCk6IENMSUVOVCB7XG4gICAgaWYgKCF0aGlzLl9jbGllbnQpIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBDbGllbnQgbm90IGluaXRpYWxpemVkYCk7XG4gICAgcmV0dXJuIHRoaXMuX2NsaWVudDtcbiAgfVxuXG4gIGFzeW5jIHNodXRkb3duKC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDPik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnNodXRkb3duLCB0cnVlKTtcbiAgICBsb2cuaW5mbyhgU2h1dHRpbmcgZG93bi4uLmApO1xuICB9XG59XG4iXX0=
@@ -71,4 +71,4 @@ exports.CleanUpTask = CleanUpTask = __decorate([
71
71
  (0, decorators_2.task)("cleanup-task"),
72
72
  __metadata("design:paramtypes", [])
73
73
  ], CleanUpTask);
74
- //# sourceMappingURL=CleanUpTask.js.map
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xlYW5VcFRhc2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGFza3MvQ2xlYW5VcFRhc2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsbURBQTRDO0FBRzVDLCtEQUFzRDtBQUN0RCxzREFBK0M7QUFDL0MsaURBQW9DO0FBQ3BDLHdEQUErQztBQUMvQywrQ0FBeUM7QUFXbEMsSUFBTSxXQUFXLEdBQWpCLE1BQU0sV0FBWSxTQUFRLHlCQUEwQztJQUl6RTtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBdUIsRUFBRSxHQUFnQjtRQUNqRCxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBRXZCLElBQUksQ0FBQztZQUNILElBQUksU0FBK0IsQ0FBQztZQUVwQyxJQUFJLEtBQUssWUFBWSxxQkFBUyxFQUFFLENBQUM7Z0JBQy9CLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ2xCLEdBQUcsQ0FBQyxJQUFJLENBQUMsNkNBQTZDLENBQUMsQ0FBQztZQUMxRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sR0FBRyxDQUFDLElBQUksQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO2dCQUVwRCxNQUFNLGdCQUFnQixHQUFHLHFCQUFTLENBQUMsSUFBSSxDQUFZLFFBQVEsQ0FBQztxQkFDekQsRUFBRSxDQUFDLHNCQUFVLENBQUMsU0FBUyxDQUFDO3FCQUN4QixHQUFHLENBQ0YscUJBQVMsQ0FBQyxJQUFJLENBQVksV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUNuRSxDQUFDO2dCQUVKLE1BQU0sZUFBZSxHQUFHLHFCQUFTLENBQUMsSUFBSSxDQUFZLFFBQVEsQ0FBQztxQkFDeEQsRUFBRSxDQUFDLHNCQUFVLENBQUMsTUFBTSxDQUFDO3FCQUNyQixHQUFHLENBQUMscUJBQVMsQ0FBQyxJQUFJLENBQVksV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO2dCQUV2RSxNQUFNLGtCQUFrQixHQUFHLHFCQUFTLENBQUMsSUFBSSxDQUFZLFFBQVEsQ0FBQztxQkFDM0QsRUFBRSxDQUFDLHNCQUFVLENBQUMsUUFBUSxDQUFDO3FCQUN2QixHQUFHLENBQ0YscUJBQVMsQ0FBQyxJQUFJLENBQVksV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FDbEUsQ0FBQztnQkFFSixTQUFTLEdBQUcsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQzFFLENBQUM7WUFFRCxHQUFHLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLENBQUM7WUFDdkMsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSztpQkFDbkMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ2QsS0FBSyxDQUFDLFNBQVMsQ0FBQztpQkFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRWhCLElBQUksYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsR0FBRyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO2dCQUN2QyxPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7WUFFRCxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsYUFBYSxDQUFDLE1BQU0sa0JBQWtCLENBQUMsQ0FBQztZQUUxRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUN4QyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQzlCLEdBQUcsQ0FDSixDQUFDO1lBRUYsR0FBRyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDLENBQUM7WUFDekQsR0FBRyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxPQUFjLENBQUMsQ0FBQztZQUM1QyxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBQUMsT0FBTyxDQUFVLEVBQUUsQ0FBQztZQUNwQixHQUFHLENBQUMsS0FBSyxDQUFDLDJCQUEyQixFQUFFLENBQVUsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztJQUNILENBQUM7Q0FDRixDQUFBO0FBakVZLGtDQUFXO0FBRVo7SUFEVCxJQUFBLHVCQUFVLEVBQUMscUJBQVMsQ0FBQzs7MENBQ1k7c0JBRnZCLFdBQVc7SUFEdkIsSUFBQSxpQkFBSSxFQUFDLGNBQWMsQ0FBQzs7R0FDUixXQUFXLENBaUV2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhc2tIYW5kbGVyIH0gZnJvbSBcIi4vVGFza0hhbmRsZXJcIjtcbmltcG9ydCB7IFRhc2tDb250ZXh0IH0gZnJvbSBcIi4vVGFza0NvbnRleHRcIjtcbmltcG9ydCB7IHR5cGUgUmVwbyB9IGZyb20gXCIuLi9yZXBvc2l0b3J5L1JlcG9zaXRvcnlcIjtcbmltcG9ydCB7IHJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vcmVwb3NpdG9yeS9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBUYXNrTW9kZWwgfSBmcm9tIFwiLi9tb2RlbHMvVGFza01vZGVsXCI7XG5pbXBvcnQgeyB0YXNrIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQ29uZGl0aW9uIH0gZnJvbSBcIi4uL3F1ZXJ5L0NvbmRpdGlvblwiO1xuaW1wb3J0IHsgVGFza1N0YXR1cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG5leHBvcnQgdHlwZSBDbGVhblVwVGFza0lucHV0ID1cbiAgfCB7XG4gICAgICBzdWNjZXNzZnVsRXhwaXJ5OiBEYXRlO1xuICAgICAgZmFpbGVkRXhwaXJ5OiBEYXRlO1xuICAgICAgY2FuY2VsbGVkRXhwaXJ5OiBEYXRlO1xuICAgIH1cbiAgfCBDb25kaXRpb248VGFza01vZGVsPjtcblxuQHRhc2soXCJjbGVhbnVwLXRhc2tcIilcbmV4cG9ydCBjbGFzcyBDbGVhblVwVGFzayBleHRlbmRzIFRhc2tIYW5kbGVyPENsZWFuVXBUYXNrSW5wdXQsIFRhc2tNb2RlbFtdPiB7XG4gIEByZXBvc2l0b3J5KFRhc2tNb2RlbClcbiAgcHJvdGVjdGVkIHRhc2tzITogUmVwbzxUYXNrTW9kZWw+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBhc3luYyBydW4oaW5wdXQ6IENsZWFuVXBUYXNrSW5wdXQsIGN0eDogVGFza0NvbnRleHQpOiBQcm9taXNlPFRhc2tNb2RlbFtdPiB7XG4gICAgY29uc3QgbG9nID0gY3R4LmxvZ2dlcjtcblxuICAgIHRyeSB7XG4gICAgICBsZXQgY29uZGl0aW9uOiBDb25kaXRpb248VGFza01vZGVsPjtcblxuICAgICAgaWYgKGlucHV0IGluc3RhbmNlb2YgQ29uZGl0aW9uKSB7XG4gICAgICAgIGNvbmRpdGlvbiA9IGlucHV0O1xuICAgICAgICBsb2cuaW5mbyhgU3RhcnRpbmcgdGFzayBjbGVhbnVwIHdpdGggY3VzdG9tIGNvbmRpdGlvbmApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nLmluZm8oYFN0YXJ0aW5nIHRhc2sgY2xlYW51cCB3aXRoIGV4cGlyeSBkYXRlc2ApO1xuXG4gICAgICAgIGNvbnN0IHN1Y2Nlc3NDb25kaXRpb24gPSBDb25kaXRpb24uYXR0cjxUYXNrTW9kZWw+KFwic3RhdHVzXCIpXG4gICAgICAgICAgLmVxKFRhc2tTdGF0dXMuU1VDQ0VFREVEKVxuICAgICAgICAgIC5hbmQoXG4gICAgICAgICAgICBDb25kaXRpb24uYXR0cjxUYXNrTW9kZWw+KFwidXBkYXRlZEF0XCIpLmx0ZShpbnB1dC5zdWNjZXNzZnVsRXhwaXJ5KVxuICAgICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgZmFpbGVkQ29uZGl0aW9uID0gQ29uZGl0aW9uLmF0dHI8VGFza01vZGVsPihcInN0YXR1c1wiKVxuICAgICAgICAgIC5lcShUYXNrU3RhdHVzLkZBSUxFRClcbiAgICAgICAgICAuYW5kKENvbmRpdGlvbi5hdHRyPFRhc2tNb2RlbD4oXCJ1cGRhdGVkQXRcIikubHRlKGlucHV0LmZhaWxlZEV4cGlyeSkpO1xuXG4gICAgICAgIGNvbnN0IGNhbmNlbGxlZENvbmRpdGlvbiA9IENvbmRpdGlvbi5hdHRyPFRhc2tNb2RlbD4oXCJzdGF0dXNcIilcbiAgICAgICAgICAuZXEoVGFza1N0YXR1cy5DQU5DRUxFRClcbiAgICAgICAgICAuYW5kKFxuICAgICAgICAgICAgQ29uZGl0aW9uLmF0dHI8VGFza01vZGVsPihcInVwZGF0ZWRBdFwiKS5sdGUoaW5wdXQuY2FuY2VsbGVkRXhwaXJ5KVxuICAgICAgICAgICk7XG5cbiAgICAgICAgY29uZGl0aW9uID0gc3VjY2Vzc0NvbmRpdGlvbi5vcihmYWlsZWRDb25kaXRpb24pLm9yKGNhbmNlbGxlZENvbmRpdGlvbik7XG4gICAgICB9XG5cbiAgICAgIGxvZy5pbmZvKGBRdWVyeWluZyB0YXNrcyBmb3IgY2xlYW51cGApO1xuICAgICAgY29uc3QgdGFza3NUb0RlbGV0ZSA9IGF3YWl0IHRoaXMudGFza3NcbiAgICAgICAgLnNlbGVjdChbXCJpZFwiXSlcbiAgICAgICAgLndoZXJlKGNvbmRpdGlvbilcbiAgICAgICAgLmV4ZWN1dGUoY3R4KTtcblxuICAgICAgaWYgKHRhc2tzVG9EZWxldGUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGxvZy5pbmZvKGBObyB0YXNrcyBmb3VuZCBmb3IgY2xlYW51cGApO1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG5cbiAgICAgIGxvZy5pbmZvKGBGb3VuZCAke3Rhc2tzVG9EZWxldGUubGVuZ3RofSB0YXNrcyB0byBkZWxldGVgKTtcblxuICAgICAgY29uc3QgZGVsZXRlZCA9IGF3YWl0IHRoaXMudGFza3MuZGVsZXRlQWxsKFxuICAgICAgICB0YXNrc1RvRGVsZXRlLm1hcCgodCkgPT4gdC5pZCksXG4gICAgICAgIGN0eFxuICAgICAgKTtcblxuICAgICAgbG9nLmluZm8oYFN1Y2Nlc3NmdWxseSBkZWxldGVkICR7ZGVsZXRlZC5sZW5ndGh9IHRhc2tzYCk7XG4gICAgICBsb2cuZGVidWcoYGRlbGV0ZWQgdGFza3M6YCwgZGVsZXRlZCBhcyBhbnkpO1xuICAgICAgcmV0dXJuIGRlbGV0ZWQ7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgbG9nLmVycm9yKGBFcnJvciBkdXJpbmcgdGFzayBjbGVhbnVwYCwgZSBhcyBFcnJvcik7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -13,8 +13,15 @@ class TaskContext extends Context_1.Context {
13
13
  get logger() {
14
14
  return super.logger;
15
15
  }
16
+ get step() {
17
+ return this.getOrUndefined("step");
18
+ }
19
+ setStep(step) {
20
+ this.cache.put("step", step);
21
+ }
16
22
  get pipe() {
17
- return this.get("pipe");
23
+ const fn = this.get("pipe");
24
+ return fn.bind(this);
18
25
  }
19
26
  flush() {
20
27
  return this.get("flush")();
@@ -77,4 +84,4 @@ class TaskContext extends Context_1.Context {
77
84
  }
78
85
  }
79
86
  exports.TaskContext = TaskContext;
80
- //# sourceMappingURL=TaskContext.js.map
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFza0NvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGFza3MvVGFza0NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMERBQWlEO0FBSWpELGdFQUF5RDtBQUN6RCwrQ0FBeUM7QUFDekMsdUNBQXlDO0FBQ3pDLHFFQUFzRjtBQUV0RixNQUFhLFdBQVksU0FBUSxpQkFBa0I7SUFDakQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFhLE1BQU07UUFDakIsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBYSxDQUFRLENBQUM7SUFDbkQsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFhO1FBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQWEsRUFBRSxJQUFXLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQVEsQ0FBQztRQUNuQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWMsRUFBRSxPQUFZO1FBQ3RDLE1BQU0sS0FBSyxHQUNULENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDL0QsRUFBMEIsQ0FBQztRQUM5QixLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRVMsV0FBVyxDQUFDLE1BQWtCLEVBQUUsT0FBeUM7UUFDakYsTUFBTSxJQUFJLDJDQUFvQixDQUFDO1lBQzdCLE1BQU07WUFDTixHQUFHLE9BQU87U0FDWCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUNKLE1BQXdDLEVBQ3hDLE9BQWE7UUFFYixJQUFJLENBQUMsV0FBVyxDQUFDLHNCQUFVLENBQUMsUUFBUSxFQUFFO1lBQ3BDLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUM7U0FDekMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUF3QztRQUM1QyxJQUFJLENBQUMsV0FBVyxDQUFDLHNCQUFVLENBQUMsYUFBYSxFQUFFO1lBQ3pDLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztTQUNoQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUNSLElBQWdCLEVBQ2hCLE1BQXdDO1FBRXhDLE1BQU0sV0FBVyxHQUFTLElBQUksWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JFLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQVUsQ0FBQyxTQUFTLEVBQUU7WUFDckMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO1lBQy9CLFdBQVc7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sV0FBVyxDQUNqQixLQUF1QyxFQUN2QyxPQUFhO1FBRWIsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUN6QyxJQUFJLEtBQUssWUFBWSwrQkFBYztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2xELElBQUksS0FBSyxZQUFZLEtBQUs7WUFBRSxPQUFPLElBQUEsc0JBQWMsRUFBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxPQUFPLElBQUksK0JBQWMsQ0FBQztZQUN4QixPQUFPLEVBQUUsTUFBTSxDQUFDLEtBQUssSUFBSSw2QkFBNkIsQ0FBQztZQUN2RCxPQUFPO1NBQ1IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsWUFBWSxHQUFrQjtRQUM1QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDYixDQUFDO0NBQ0Y7QUFsR0Qsa0NBa0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gXCIuLi9wZXJzaXN0ZW5jZS9Db250ZXh0XCI7XG5pbXBvcnQgeyBUYXNrRmxhZ3MgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgVGFza0xvZ2dlciB9IGZyb20gXCIuL2xvZ2dpbmdcIjtcbmltcG9ydCB7IERhdGVUYXJnZXQgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBUYXNrRXJyb3JNb2RlbCB9IGZyb20gXCIuL21vZGVscy9UYXNrRXJyb3JNb2RlbFwiO1xuaW1wb3J0IHsgVGFza1N0YXR1cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgc2VyaWFsaXplRXJyb3IgfSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgVGFza1N0YXRlQ2hhbmdlRXJyb3IsIFRhc2tTdGF0ZUNoYW5nZVJlcXVlc3QgfSBmcm9tIFwiLi9UYXNrU3RhdGVDaGFuZ2VFcnJvclwiO1xuXG5leHBvcnQgY2xhc3MgVGFza0NvbnRleHQgZXh0ZW5kcyBDb250ZXh0PFRhc2tGbGFncz4ge1xuICBnZXQgdGFza0lkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KFwidGFza0lkXCIpO1xuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0IGxvZ2dlcigpOiBUYXNrTG9nZ2VyPGFueT4ge1xuICAgIHJldHVybiBzdXBlci5sb2dnZXI7XG4gIH1cblxuICBnZXQgc3RlcCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmdldE9yVW5kZWZpbmVkKFwic3RlcFwiIGFzIGFueSkgYXMgYW55O1xuICB9XG5cbiAgc2V0U3RlcChzdGVwPzogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jYWNoZS5wdXQoXCJzdGVwXCIgYXMgYW55LCBzdGVwIGFzIGFueSk7XG4gIH1cblxuICBnZXQgcGlwZSgpOiBUYXNrRmxhZ3NbXCJwaXBlXCJdIHtcbiAgICBjb25zdCBmbiA9IHRoaXMuZ2V0KFwicGlwZVwiKSBhcyBhbnk7XG4gICAgcmV0dXJuIGZuLmJpbmQodGhpcyk7XG4gIH1cblxuICBmbHVzaCgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXQoXCJmbHVzaFwiKSgpO1xuICB9XG5cbiAgZ2V0IGF0dGVtcHQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXQoXCJhdHRlbXB0XCIpO1xuICB9XG4gIGdldCBwcm9ncmVzcygpOiAoZGF0YTogYW55KSA9PiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoXCJwcm9ncmVzc1wiKTtcbiAgfVxuXG4gIGdldCBoZWFydGJlYXQoKTogKCkgPT4gUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KFwiaGVhcnRiZWF0XCIpO1xuICB9XG5cbiAgY2FjaGVSZXN1bHQodGFza0lkOiBzdHJpbmcsIHBheWxvYWQ6IGFueSkge1xuICAgIGNvbnN0IGNhY2hlID1cbiAgICAgICh0aGlzLmNhY2hlLmhhcyhcInJlc3VsdENhY2hlXCIpICYmIHRoaXMuY2FjaGUuZ2V0KFwicmVzdWx0Q2FjaGVcIikpIHx8XG4gICAgICAoe30gYXMgUmVjb3JkPHN0cmluZywgYW55Pik7XG4gICAgY2FjaGVbdGFza0lkXSA9IHBheWxvYWQ7XG4gICAgdGhpcy5jYWNoZS5wdXQoXCJyZXN1bHRDYWNoZVwiLCBjYWNoZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hhbmdlU3RhdGUoc3RhdHVzOiBUYXNrU3RhdHVzLCBwYXlsb2FkPzogUGFydGlhbDxUYXNrU3RhdGVDaGFuZ2VSZXF1ZXN0Pik6IG5ldmVyIHtcbiAgICB0aHJvdyBuZXcgVGFza1N0YXRlQ2hhbmdlRXJyb3Ioe1xuICAgICAgc3RhdHVzLFxuICAgICAgLi4ucGF5bG9hZCxcbiAgICB9KTtcbiAgfVxuXG4gIGNhbmNlbChcbiAgICByZWFzb24/OiBzdHJpbmcgfCBFcnJvciB8IFRhc2tFcnJvck1vZGVsLFxuICAgIGRldGFpbHM/OiBhbnlcbiAgKTogbmV2ZXIge1xuICAgIHRoaXMuY2hhbmdlU3RhdGUoVGFza1N0YXR1cy5DQU5DRUxFRCwge1xuICAgICAgZXJyb3I6IHRoaXMudG9UYXNrRXJyb3IocmVhc29uLCBkZXRhaWxzKSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHJ5KHJlYXNvbj86IHN0cmluZyB8IEVycm9yIHwgVGFza0Vycm9yTW9kZWwpOiBuZXZlciB7XG4gICAgdGhpcy5jaGFuZ2VTdGF0ZShUYXNrU3RhdHVzLldBSVRJTkdfUkVUUlksIHtcbiAgICAgIGVycm9yOiB0aGlzLnRvVGFza0Vycm9yKHJlYXNvbiksXG4gICAgfSk7XG4gIH1cblxuICByZXNjaGVkdWxlKFxuICAgIHdoZW46IERhdGVUYXJnZXQsXG4gICAgcmVhc29uPzogc3RyaW5nIHwgRXJyb3IgfCBUYXNrRXJyb3JNb2RlbFxuICApOiBuZXZlciB7XG4gICAgY29uc3Qgc2NoZWR1bGVkVG86IERhdGUgPSB3aGVuIGluc3RhbmNlb2YgRGF0ZSA/IHdoZW4gOiB3aGVuLmJ1aWxkKCk7XG4gICAgdGhpcy5jaGFuZ2VTdGF0ZShUYXNrU3RhdHVzLlNDSEVEVUxFRCwge1xuICAgICAgZXJyb3I6IHRoaXMudG9UYXNrRXJyb3IocmVhc29uKSxcbiAgICAgIHNjaGVkdWxlZFRvLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB0b1Rhc2tFcnJvcihcbiAgICB2YWx1ZT86IHN0cmluZyB8IEVycm9yIHwgVGFza0Vycm9yTW9kZWwsXG4gICAgZGV0YWlscz86IGFueVxuICApOiBUYXNrRXJyb3JNb2RlbCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF2YWx1ZSAmJiAhZGV0YWlscykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBUYXNrRXJyb3JNb2RlbCkgcmV0dXJuIHZhbHVlO1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEVycm9yKSByZXR1cm4gc2VyaWFsaXplRXJyb3IodmFsdWUpO1xuICAgIHJldHVybiBuZXcgVGFza0Vycm9yTW9kZWwoe1xuICAgICAgbWVzc2FnZTogU3RyaW5nKHZhbHVlID8/IFwiVGFzayByZXF1ZXN0ZWQgc3RhdGUgY2hhbmdlXCIpLFxuICAgICAgZGV0YWlscyxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCByZXN1bHRDYWNoZSgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXQoXCJyZXN1bHRDYWNoZVwiKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGN0eD86IENvbnRleHQ8YW55Pikge1xuICAgIHN1cGVyKGN0eCk7XG4gIH1cbn1cbiJdfQ==
@@ -8,7 +8,9 @@ import { TaskStateChangeRequest } from "./TaskStateChangeError";
8
8
  export declare class TaskContext extends Context<TaskFlags> {
9
9
  get taskId(): string;
10
10
  get logger(): TaskLogger<any>;
11
- get pipe(): any;
11
+ get step(): number | undefined;
12
+ setStep(step?: number): void;
13
+ get pipe(): TaskFlags["pipe"];
12
14
  flush(): Promise<void>;
13
15
  get attempt(): number;
14
16
  get progress(): (data: any) => Promise<void>;