@aerokit/sdk 12.44.0

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 (399) hide show
  1. package/LICENSE +277 -0
  2. package/README.md +170 -0
  3. package/dist/cjs/bpm/deployer.js +57 -0
  4. package/dist/cjs/bpm/index.js +35 -0
  5. package/dist/cjs/bpm/process.js +636 -0
  6. package/dist/cjs/bpm/tasks.js +973 -0
  7. package/dist/cjs/bpm/values.js +82 -0
  8. package/dist/cjs/cache/cache.js +64 -0
  9. package/dist/cjs/cache/index.js +26 -0
  10. package/dist/cjs/cms/cmis.js +689 -0
  11. package/dist/cjs/cms/index.js +26 -0
  12. package/dist/cjs/component/decorators.js +126 -0
  13. package/dist/cjs/component/index.js +36 -0
  14. package/dist/cjs/core/configurations.js +110 -0
  15. package/dist/cjs/core/context.js +47 -0
  16. package/dist/cjs/core/env.js +45 -0
  17. package/dist/cjs/core/globals.js +54 -0
  18. package/dist/cjs/core/index.js +35 -0
  19. package/dist/cjs/db/dao.js +795 -0
  20. package/dist/cjs/db/database.js +904 -0
  21. package/dist/cjs/db/decorators.js +167 -0
  22. package/dist/cjs/db/index.js +72 -0
  23. package/dist/cjs/db/insert.js +51 -0
  24. package/dist/cjs/db/orm.js +245 -0
  25. package/dist/cjs/db/ormstatements.js +243 -0
  26. package/dist/cjs/db/procedure.js +112 -0
  27. package/dist/cjs/db/query.js +57 -0
  28. package/dist/cjs/db/repository.js +148 -0
  29. package/dist/cjs/db/sequence.js +59 -0
  30. package/dist/cjs/db/sql.js +516 -0
  31. package/dist/cjs/db/store.js +172 -0
  32. package/dist/cjs/db/translator.js +100 -0
  33. package/dist/cjs/db/update.js +43 -0
  34. package/dist/cjs/etcd/client.js +174 -0
  35. package/dist/cjs/etcd/index.js +26 -0
  36. package/dist/cjs/extensions/decorators.js +40 -0
  37. package/dist/cjs/extensions/extensions.js +108 -0
  38. package/dist/cjs/extensions/index.js +39 -0
  39. package/dist/cjs/git/client.js +277 -0
  40. package/dist/cjs/git/index.js +26 -0
  41. package/dist/cjs/http/client-async.js +224 -0
  42. package/dist/cjs/http/client.js +145 -0
  43. package/dist/cjs/http/decorators.js +76 -0
  44. package/dist/cjs/http/errors/ForbiddenError.js +41 -0
  45. package/dist/cjs/http/errors/ValidationError.js +41 -0
  46. package/dist/cjs/http/errors.js +26 -0
  47. package/dist/cjs/http/index.js +59 -0
  48. package/dist/cjs/http/request.js +281 -0
  49. package/dist/cjs/http/response.js +452 -0
  50. package/dist/cjs/http/rs/resource-common.js +32 -0
  51. package/dist/cjs/http/rs/resource-http-controller.js +306 -0
  52. package/dist/cjs/http/rs/resource-mappings.js +130 -0
  53. package/dist/cjs/http/rs/resource-method.js +218 -0
  54. package/dist/cjs/http/rs/resource.js +232 -0
  55. package/dist/cjs/http/rs.js +31 -0
  56. package/dist/cjs/http/session.js +124 -0
  57. package/dist/cjs/http/upload.js +144 -0
  58. package/dist/cjs/http/utils.js +106 -0
  59. package/dist/cjs/index.js +1 -0
  60. package/dist/cjs/indexing/index.js +29 -0
  61. package/dist/cjs/indexing/searcher.js +70 -0
  62. package/dist/cjs/indexing/writer.js +45 -0
  63. package/dist/cjs/integrations/index.js +26 -0
  64. package/dist/cjs/integrations/integrations.js +55 -0
  65. package/dist/cjs/io/bytes.js +101 -0
  66. package/dist/cjs/io/files.js +344 -0
  67. package/dist/cjs/io/image.js +43 -0
  68. package/dist/cjs/io/index.js +38 -0
  69. package/dist/cjs/io/streams.js +243 -0
  70. package/dist/cjs/io/zip.js +251 -0
  71. package/dist/cjs/job/decorators.js +40 -0
  72. package/dist/cjs/job/index.js +39 -0
  73. package/dist/cjs/job/scheduler.js +347 -0
  74. package/dist/cjs/junit/index.js +18 -0
  75. package/dist/cjs/junit/junit.js +67 -0
  76. package/dist/cjs/kafka/consumer.js +70 -0
  77. package/dist/cjs/kafka/index.js +29 -0
  78. package/dist/cjs/kafka/producer.js +70 -0
  79. package/dist/cjs/log/index.js +26 -0
  80. package/dist/cjs/log/logging.js +174 -0
  81. package/dist/cjs/mail/client.js +153 -0
  82. package/dist/cjs/mail/index.js +26 -0
  83. package/dist/cjs/messaging/consumer.js +83 -0
  84. package/dist/cjs/messaging/decorators.js +40 -0
  85. package/dist/cjs/messaging/index.js +42 -0
  86. package/dist/cjs/messaging/producer.js +81 -0
  87. package/dist/cjs/mongodb/client.js +627 -0
  88. package/dist/cjs/mongodb/dao.js +390 -0
  89. package/dist/cjs/mongodb/index.js +36 -0
  90. package/dist/cjs/net/decorators.js +40 -0
  91. package/dist/cjs/net/index.js +42 -0
  92. package/dist/cjs/net/soap.js +228 -0
  93. package/dist/cjs/net/websockets.js +151 -0
  94. package/dist/cjs/net/wrappers/onClose.js +2 -0
  95. package/dist/cjs/net/wrappers/onError.js +2 -0
  96. package/dist/cjs/net/wrappers/onMessage.js +2 -0
  97. package/dist/cjs/net/wrappers/onOpen.js +2 -0
  98. package/dist/cjs/pdf/index.js +26 -0
  99. package/dist/cjs/pdf/pdf.js +160 -0
  100. package/dist/cjs/platform/command.js +47 -0
  101. package/dist/cjs/platform/engines.js +70 -0
  102. package/dist/cjs/platform/index.js +47 -0
  103. package/dist/cjs/platform/lifecycle.js +49 -0
  104. package/dist/cjs/platform/os.js +51 -0
  105. package/dist/cjs/platform/problems.js +127 -0
  106. package/dist/cjs/platform/registry.js +319 -0
  107. package/dist/cjs/platform/repository.js +498 -0
  108. package/dist/cjs/platform/workspace.js +574 -0
  109. package/dist/cjs/qldb/index.js +26 -0
  110. package/dist/cjs/qldb/qldb.js +24 -0
  111. package/dist/cjs/rabbitmq/consumer.js +50 -0
  112. package/dist/cjs/rabbitmq/index.js +29 -0
  113. package/dist/cjs/rabbitmq/producer.js +38 -0
  114. package/dist/cjs/redis/client.js +190 -0
  115. package/dist/cjs/redis/index.js +26 -0
  116. package/dist/cjs/security/decorators.js +48 -0
  117. package/dist/cjs/security/index.js +40 -0
  118. package/dist/cjs/security/oauth.js +75 -0
  119. package/dist/cjs/security/user.js +88 -0
  120. package/dist/cjs/template/engines.js +139 -0
  121. package/dist/cjs/template/index.js +26 -0
  122. package/dist/cjs/utils/alphanumeric.js +107 -0
  123. package/dist/cjs/utils/base64.js +104 -0
  124. package/dist/cjs/utils/converter.js +78 -0
  125. package/dist/cjs/utils/digest.js +167 -0
  126. package/dist/cjs/utils/escape.js +160 -0
  127. package/dist/cjs/utils/hex.js +104 -0
  128. package/dist/cjs/utils/index.js +68 -0
  129. package/dist/cjs/utils/jsonpath.js +489 -0
  130. package/dist/cjs/utils/qrcode.js +41 -0
  131. package/dist/cjs/utils/url.js +82 -0
  132. package/dist/cjs/utils/utf8.js +61 -0
  133. package/dist/cjs/utils/uuid.js +48 -0
  134. package/dist/cjs/utils/xml.js +57 -0
  135. package/dist/dts/bpm/deployer.d.ts +29 -0
  136. package/dist/dts/bpm/index.d.ts +8 -0
  137. package/dist/dts/bpm/process.d.ts +433 -0
  138. package/dist/dts/bpm/tasks.d.ts +2022 -0
  139. package/dist/dts/bpm/values.d.ts +38 -0
  140. package/dist/dts/cache/cache.d.ts +30 -0
  141. package/dist/dts/cache/index.d.ts +2 -0
  142. package/dist/dts/cms/cmis.d.ts +413 -0
  143. package/dist/dts/cms/index.d.ts +2 -0
  144. package/dist/dts/component/decorators.d.ts +52 -0
  145. package/dist/dts/component/index.d.ts +2 -0
  146. package/dist/dts/core/configurations.d.ts +65 -0
  147. package/dist/dts/core/context.d.ts +19 -0
  148. package/dist/dts/core/env.d.ts +23 -0
  149. package/dist/dts/core/globals.d.ts +30 -0
  150. package/dist/dts/core/index.d.ts +8 -0
  151. package/dist/dts/db/dao.d.ts +8 -0
  152. package/dist/dts/db/database.d.ts +507 -0
  153. package/dist/dts/db/decorators.d.ts +89 -0
  154. package/dist/dts/db/index.d.ts +25 -0
  155. package/dist/dts/db/insert.d.ts +32 -0
  156. package/dist/dts/db/orm.d.ts +44 -0
  157. package/dist/dts/db/ormstatements.d.ts +4 -0
  158. package/dist/dts/db/procedure.d.ts +25 -0
  159. package/dist/dts/db/query.d.ts +48 -0
  160. package/dist/dts/db/repository.d.ts +64 -0
  161. package/dist/dts/db/sequence.d.ts +34 -0
  162. package/dist/dts/db/sql.d.ts +267 -0
  163. package/dist/dts/db/store.d.ts +138 -0
  164. package/dist/dts/db/translator.d.ts +26 -0
  165. package/dist/dts/db/update.d.ts +21 -0
  166. package/dist/dts/etcd/client.d.ts +92 -0
  167. package/dist/dts/etcd/index.d.ts +2 -0
  168. package/dist/dts/extensions/decorators.d.ts +11 -0
  169. package/dist/dts/extensions/extensions.d.ts +41 -0
  170. package/dist/dts/extensions/index.d.ts +4 -0
  171. package/dist/dts/git/client.d.ts +478 -0
  172. package/dist/dts/git/index.d.ts +2 -0
  173. package/dist/dts/http/client-async.d.ts +158 -0
  174. package/dist/dts/http/client.d.ts +180 -0
  175. package/dist/dts/http/decorators.d.ts +11 -0
  176. package/dist/dts/http/errors/ForbiddenError.d.ts +20 -0
  177. package/dist/dts/http/errors/ValidationError.d.ts +20 -0
  178. package/dist/dts/http/errors.d.ts +2 -0
  179. package/dist/dts/http/index.d.ts +16 -0
  180. package/dist/dts/http/request.d.ts +158 -0
  181. package/dist/dts/http/response.d.ts +281 -0
  182. package/dist/dts/http/rs/resource-common.d.ts +11 -0
  183. package/dist/dts/http/rs/resource-http-controller.d.ts +43 -0
  184. package/dist/dts/http/rs/resource-mappings.d.ts +70 -0
  185. package/dist/dts/http/rs/resource-method.d.ts +206 -0
  186. package/dist/dts/http/rs/resource.d.ts +126 -0
  187. package/dist/dts/http/rs.d.ts +4 -0
  188. package/dist/dts/http/session.d.ts +81 -0
  189. package/dist/dts/http/upload.d.ts +100 -0
  190. package/dist/dts/http/utils.d.ts +54 -0
  191. package/dist/dts/index.d.ts +0 -0
  192. package/dist/dts/indexing/index.d.ts +4 -0
  193. package/dist/dts/indexing/searcher.d.ts +47 -0
  194. package/dist/dts/indexing/writer.d.ts +22 -0
  195. package/dist/dts/integrations/index.d.ts +2 -0
  196. package/dist/dts/integrations/integrations.d.ts +118 -0
  197. package/dist/dts/io/bytes.d.ts +56 -0
  198. package/dist/dts/io/files.d.ts +261 -0
  199. package/dist/dts/io/image.d.ts +22 -0
  200. package/dist/dts/io/index.d.ts +10 -0
  201. package/dist/dts/io/streams.d.ts +172 -0
  202. package/dist/dts/io/zip.d.ts +178 -0
  203. package/dist/dts/job/decorators.d.ts +11 -0
  204. package/dist/dts/job/index.d.ts +4 -0
  205. package/dist/dts/job/scheduler.d.ts +250 -0
  206. package/dist/dts/junit/index.d.ts +1 -0
  207. package/dist/dts/junit/junit.d.ts +50 -0
  208. package/dist/dts/kafka/consumer.d.ts +48 -0
  209. package/dist/dts/kafka/index.d.ts +4 -0
  210. package/dist/dts/kafka/producer.d.ts +50 -0
  211. package/dist/dts/log/index.d.ts +2 -0
  212. package/dist/dts/log/logging.d.ts +102 -0
  213. package/dist/dts/mail/client.d.ts +90 -0
  214. package/dist/dts/mail/index.d.ts +2 -0
  215. package/dist/dts/messaging/consumer.d.ts +61 -0
  216. package/dist/dts/messaging/decorators.d.ts +11 -0
  217. package/dist/dts/messaging/index.d.ts +6 -0
  218. package/dist/dts/messaging/producer.d.ts +59 -0
  219. package/dist/dts/mongodb/client.d.ts +367 -0
  220. package/dist/dts/mongodb/dao.d.ts +24 -0
  221. package/dist/dts/mongodb/index.d.ts +2 -0
  222. package/dist/dts/net/decorators.d.ts +11 -0
  223. package/dist/dts/net/index.d.ts +6 -0
  224. package/dist/dts/net/soap.d.ts +115 -0
  225. package/dist/dts/net/websockets.d.ts +100 -0
  226. package/dist/dts/net/wrappers/onClose.d.ts +0 -0
  227. package/dist/dts/net/wrappers/onError.d.ts +0 -0
  228. package/dist/dts/net/wrappers/onMessage.d.ts +0 -0
  229. package/dist/dts/net/wrappers/onOpen.d.ts +0 -0
  230. package/dist/dts/pdf/index.d.ts +2 -0
  231. package/dist/dts/pdf/pdf.d.ts +72 -0
  232. package/dist/dts/platform/command.d.ts +41 -0
  233. package/dist/dts/platform/engines.d.ts +35 -0
  234. package/dist/dts/platform/index.d.ts +16 -0
  235. package/dist/dts/platform/lifecycle.d.ts +22 -0
  236. package/dist/dts/platform/os.d.ts +23 -0
  237. package/dist/dts/platform/problems.d.ts +114 -0
  238. package/dist/dts/platform/registry.d.ts +227 -0
  239. package/dist/dts/platform/repository.d.ts +354 -0
  240. package/dist/dts/platform/workspace.d.ts +421 -0
  241. package/dist/dts/qldb/index.d.ts +2 -0
  242. package/dist/dts/qldb/qldb.d.ts +1 -0
  243. package/dist/dts/rabbitmq/consumer.d.ts +25 -0
  244. package/dist/dts/rabbitmq/index.d.ts +4 -0
  245. package/dist/dts/rabbitmq/producer.d.ts +15 -0
  246. package/dist/dts/redis/client.d.ts +134 -0
  247. package/dist/dts/redis/index.d.ts +2 -0
  248. package/dist/dts/security/decorators.d.ts +4 -0
  249. package/dist/dts/security/index.d.ts +5 -0
  250. package/dist/dts/security/oauth.d.ts +39 -0
  251. package/dist/dts/security/user.d.ts +51 -0
  252. package/dist/dts/template/engines.d.ts +98 -0
  253. package/dist/dts/template/index.d.ts +2 -0
  254. package/dist/dts/utils/alphanumeric.d.ts +39 -0
  255. package/dist/dts/utils/base64.d.ts +48 -0
  256. package/dist/dts/utils/converter.d.ts +44 -0
  257. package/dist/dts/utils/digest.d.ts +50 -0
  258. package/dist/dts/utils/escape.d.ts +110 -0
  259. package/dist/dts/utils/hex.d.ts +48 -0
  260. package/dist/dts/utils/index.d.ts +23 -0
  261. package/dist/dts/utils/jsonpath.d.ts +22 -0
  262. package/dist/dts/utils/qrcode.d.ts +16 -0
  263. package/dist/dts/utils/url.d.ts +50 -0
  264. package/dist/dts/utils/utf8.d.ts +33 -0
  265. package/dist/dts/utils/uuid.d.ts +21 -0
  266. package/dist/dts/utils/xml.d.ts +22 -0
  267. package/dist/esm/bpm/deployer.mjs +38 -0
  268. package/dist/esm/bpm/index.mjs +15 -0
  269. package/dist/esm/bpm/process.mjs +617 -0
  270. package/dist/esm/bpm/tasks.mjs +954 -0
  271. package/dist/esm/bpm/values.mjs +63 -0
  272. package/dist/esm/cache/cache.mjs +45 -0
  273. package/dist/esm/cache/index.mjs +6 -0
  274. package/dist/esm/cms/cmis.mjs +660 -0
  275. package/dist/esm/cms/index.mjs +6 -0
  276. package/dist/esm/component/decorators.mjs +107 -0
  277. package/dist/esm/component/index.mjs +6 -0
  278. package/dist/esm/core/configurations.mjs +91 -0
  279. package/dist/esm/core/context.mjs +28 -0
  280. package/dist/esm/core/env.mjs +26 -0
  281. package/dist/esm/core/globals.mjs +35 -0
  282. package/dist/esm/core/index.mjs +15 -0
  283. package/dist/esm/db/dao.mjs +775 -0
  284. package/dist/esm/db/database.mjs +885 -0
  285. package/dist/esm/db/decorators.mjs +148 -0
  286. package/dist/esm/db/index.mjs +42 -0
  287. package/dist/esm/db/insert.mjs +32 -0
  288. package/dist/esm/db/orm.mjs +225 -0
  289. package/dist/esm/db/ormstatements.mjs +223 -0
  290. package/dist/esm/db/procedure.mjs +93 -0
  291. package/dist/esm/db/query.mjs +38 -0
  292. package/dist/esm/db/repository.mjs +129 -0
  293. package/dist/esm/db/sequence.mjs +40 -0
  294. package/dist/esm/db/sql.mjs +497 -0
  295. package/dist/esm/db/store.mjs +153 -0
  296. package/dist/esm/db/translator.mjs +81 -0
  297. package/dist/esm/db/update.mjs +24 -0
  298. package/dist/esm/etcd/client.mjs +155 -0
  299. package/dist/esm/etcd/index.mjs +6 -0
  300. package/dist/esm/extensions/decorators.mjs +21 -0
  301. package/dist/esm/extensions/extensions.mjs +89 -0
  302. package/dist/esm/extensions/index.mjs +9 -0
  303. package/dist/esm/git/client.mjs +258 -0
  304. package/dist/esm/git/index.mjs +6 -0
  305. package/dist/esm/http/client-async.mjs +205 -0
  306. package/dist/esm/http/client.mjs +126 -0
  307. package/dist/esm/http/decorators.mjs +47 -0
  308. package/dist/esm/http/errors/ForbiddenError.mjs +22 -0
  309. package/dist/esm/http/errors/ValidationError.mjs +22 -0
  310. package/dist/esm/http/errors.mjs +7 -0
  311. package/dist/esm/http/index.mjs +29 -0
  312. package/dist/esm/http/request.mjs +262 -0
  313. package/dist/esm/http/response.mjs +433 -0
  314. package/dist/esm/http/rs/resource-common.mjs +13 -0
  315. package/dist/esm/http/rs/resource-http-controller.mjs +287 -0
  316. package/dist/esm/http/rs/resource-mappings.mjs +111 -0
  317. package/dist/esm/http/rs/resource-method.mjs +199 -0
  318. package/dist/esm/http/rs/resource.mjs +213 -0
  319. package/dist/esm/http/rs.mjs +12 -0
  320. package/dist/esm/http/session.mjs +105 -0
  321. package/dist/esm/http/upload.mjs +125 -0
  322. package/dist/esm/http/utils.mjs +87 -0
  323. package/dist/esm/index.mjs +1 -0
  324. package/dist/esm/indexing/index.mjs +9 -0
  325. package/dist/esm/indexing/searcher.mjs +51 -0
  326. package/dist/esm/indexing/writer.mjs +26 -0
  327. package/dist/esm/integrations/index.mjs +6 -0
  328. package/dist/esm/integrations/integrations.mjs +36 -0
  329. package/dist/esm/io/bytes.mjs +82 -0
  330. package/dist/esm/io/files.mjs +325 -0
  331. package/dist/esm/io/image.mjs +24 -0
  332. package/dist/esm/io/index.mjs +18 -0
  333. package/dist/esm/io/streams.mjs +224 -0
  334. package/dist/esm/io/zip.mjs +232 -0
  335. package/dist/esm/job/decorators.mjs +21 -0
  336. package/dist/esm/job/index.mjs +9 -0
  337. package/dist/esm/job/scheduler.mjs +328 -0
  338. package/dist/esm/junit/index.mjs +2 -0
  339. package/dist/esm/junit/junit.mjs +48 -0
  340. package/dist/esm/kafka/consumer.mjs +51 -0
  341. package/dist/esm/kafka/index.mjs +9 -0
  342. package/dist/esm/kafka/producer.mjs +51 -0
  343. package/dist/esm/log/index.mjs +6 -0
  344. package/dist/esm/log/logging.mjs +155 -0
  345. package/dist/esm/mail/client.mjs +134 -0
  346. package/dist/esm/mail/index.mjs +6 -0
  347. package/dist/esm/messaging/consumer.mjs +64 -0
  348. package/dist/esm/messaging/decorators.mjs +21 -0
  349. package/dist/esm/messaging/index.mjs +12 -0
  350. package/dist/esm/messaging/producer.mjs +62 -0
  351. package/dist/esm/mongodb/client.mjs +608 -0
  352. package/dist/esm/mongodb/dao.mjs +360 -0
  353. package/dist/esm/mongodb/index.mjs +7 -0
  354. package/dist/esm/net/decorators.mjs +21 -0
  355. package/dist/esm/net/index.mjs +12 -0
  356. package/dist/esm/net/soap.mjs +209 -0
  357. package/dist/esm/net/websockets.mjs +132 -0
  358. package/dist/esm/net/wrappers/onClose.mjs +2 -0
  359. package/dist/esm/net/wrappers/onError.mjs +2 -0
  360. package/dist/esm/net/wrappers/onMessage.mjs +2 -0
  361. package/dist/esm/net/wrappers/onOpen.mjs +2 -0
  362. package/dist/esm/pdf/index.mjs +6 -0
  363. package/dist/esm/pdf/pdf.mjs +141 -0
  364. package/dist/esm/platform/command.mjs +28 -0
  365. package/dist/esm/platform/engines.mjs +51 -0
  366. package/dist/esm/platform/index.mjs +27 -0
  367. package/dist/esm/platform/lifecycle.mjs +30 -0
  368. package/dist/esm/platform/os.mjs +32 -0
  369. package/dist/esm/platform/problems.mjs +108 -0
  370. package/dist/esm/platform/registry.mjs +300 -0
  371. package/dist/esm/platform/repository.mjs +479 -0
  372. package/dist/esm/platform/workspace.mjs +555 -0
  373. package/dist/esm/qldb/index.mjs +6 -0
  374. package/dist/esm/qldb/qldb.mjs +5 -0
  375. package/dist/esm/rabbitmq/consumer.mjs +31 -0
  376. package/dist/esm/rabbitmq/index.mjs +9 -0
  377. package/dist/esm/rabbitmq/producer.mjs +19 -0
  378. package/dist/esm/redis/client.mjs +171 -0
  379. package/dist/esm/redis/index.mjs +6 -0
  380. package/dist/esm/security/decorators.mjs +29 -0
  381. package/dist/esm/security/index.mjs +10 -0
  382. package/dist/esm/security/oauth.mjs +56 -0
  383. package/dist/esm/security/user.mjs +69 -0
  384. package/dist/esm/template/engines.mjs +120 -0
  385. package/dist/esm/template/index.mjs +6 -0
  386. package/dist/esm/utils/alphanumeric.mjs +88 -0
  387. package/dist/esm/utils/base64.mjs +85 -0
  388. package/dist/esm/utils/converter.mjs +59 -0
  389. package/dist/esm/utils/digest.mjs +148 -0
  390. package/dist/esm/utils/escape.mjs +141 -0
  391. package/dist/esm/utils/hex.mjs +85 -0
  392. package/dist/esm/utils/index.mjs +38 -0
  393. package/dist/esm/utils/jsonpath.mjs +470 -0
  394. package/dist/esm/utils/qrcode.mjs +22 -0
  395. package/dist/esm/utils/url.mjs +63 -0
  396. package/dist/esm/utils/utf8.mjs +42 -0
  397. package/dist/esm/utils/uuid.mjs +29 -0
  398. package/dist/esm/utils/xml.mjs +38 -0
  399. package/package.json +58 -0
@@ -0,0 +1,148 @@
1
+ const globalCache = globalThis.__decorator_metadata_cache__ || (globalThis.__decorator_metadata_cache__ = /* @__PURE__ */ new WeakMap());
2
+ function getMetadataArray(constructor) {
3
+ if (!globalCache.has(constructor)) {
4
+ globalCache.set(constructor, []);
5
+ }
6
+ return globalCache.get(constructor);
7
+ }
8
+ function defer(fn) {
9
+ Promise.resolve().then(fn);
10
+ }
11
+ function createPropertyDecorator(kind, options) {
12
+ return function(_, context) {
13
+ if (context.kind !== "field") {
14
+ throw new Error(`@${kind} must apply to fields`);
15
+ }
16
+ context.addInitializer(function() {
17
+ const ctor = this.constructor;
18
+ const propertyName = context.name.toString();
19
+ const metadataArray = getMetadataArray(ctor);
20
+ let metadata = metadataArray.find(
21
+ (m) => m.propertyName === propertyName
22
+ );
23
+ if (!metadata) {
24
+ metadata = {
25
+ propertyName,
26
+ isId: false,
27
+ isGenerated: false
28
+ };
29
+ metadataArray.push(metadata);
30
+ }
31
+ if (kind === "id") metadata.isId = true;
32
+ if (kind === "generated") metadata.isGenerated = true;
33
+ if (kind === "column") metadata.columnOptions = options;
34
+ });
35
+ };
36
+ }
37
+ function Documentation(description) {
38
+ return function(value, context) {
39
+ if (context.kind === "class") {
40
+ context.addInitializer(function() {
41
+ value.$documentation = description;
42
+ });
43
+ return value;
44
+ } else if (context.kind === "field") {
45
+ context.addInitializer(function() {
46
+ const ctor = this.constructor;
47
+ const propertyName = context.name.toString();
48
+ const metadataArray = getMetadataArray(ctor);
49
+ let metadata = metadataArray.find(
50
+ (m) => m.propertyName === propertyName
51
+ );
52
+ if (!metadata) {
53
+ metadata = {
54
+ propertyName,
55
+ isId: false,
56
+ isGenerated: false
57
+ };
58
+ metadataArray.push(metadata);
59
+ }
60
+ metadata.documentation = description;
61
+ });
62
+ }
63
+ };
64
+ }
65
+ function Entity(entityName) {
66
+ return function(value, context) {
67
+ context.addInitializer(function() {
68
+ defer(() => {
69
+ const ctor = value;
70
+ if (ctor.$initialized) return;
71
+ ctor.$initialized = true;
72
+ ctor.$entity_name = entityName || ctor.name;
73
+ const metadataArray = getMetadataArray(ctor);
74
+ const idMetadata = metadataArray.find((m) => m.isId);
75
+ if (idMetadata) {
76
+ ctor.$id_name = idMetadata.propertyName;
77
+ ctor.$id_column = idMetadata.columnOptions?.name || idMetadata.propertyName.toUpperCase();
78
+ }
79
+ });
80
+ });
81
+ };
82
+ }
83
+ function Table(tableName) {
84
+ return function(value, context) {
85
+ context.addInitializer(function() {
86
+ value.$table_name = tableName || (context.name?.toString() ?? value.name.toUpperCase());
87
+ });
88
+ return value;
89
+ };
90
+ }
91
+ const Column = (options) => createPropertyDecorator("column", options);
92
+ const Id = () => createPropertyDecorator("id");
93
+ const Generated = (strategy) => createPropertyDecorator("generated");
94
+ function OneToMany(typeFunction, options) {
95
+ return function(_, context) {
96
+ if (context.kind !== "field") return;
97
+ context.addInitializer(function() {
98
+ const ctor = this.constructor;
99
+ const propertyName = context.name.toString();
100
+ const metadataArray = getMetadataArray(ctor);
101
+ let metadata = metadataArray.find(
102
+ (m) => m.propertyName === propertyName
103
+ );
104
+ if (!metadata) {
105
+ metadata = {
106
+ propertyName,
107
+ isId: false,
108
+ isGenerated: false
109
+ };
110
+ metadataArray.push(metadata);
111
+ }
112
+ metadata.oneToManyOptions = { type: typeFunction(), options };
113
+ });
114
+ };
115
+ }
116
+ function ManyToOne(typeFunction, options = {}) {
117
+ return function(_, context) {
118
+ if (context.kind !== "field") return;
119
+ context.addInitializer(function() {
120
+ const ctor = this.constructor;
121
+ const propertyName = context.name.toString();
122
+ const metadataArray = getMetadataArray(ctor);
123
+ let metadata = metadataArray.find(
124
+ (m) => m.propertyName === propertyName
125
+ );
126
+ if (!metadata) {
127
+ metadata = {
128
+ propertyName,
129
+ isId: false,
130
+ isGenerated: false
131
+ };
132
+ metadataArray.push(metadata);
133
+ }
134
+ metadata.manyToOneOptions = { type: typeFunction(), options };
135
+ });
136
+ };
137
+ }
138
+ export {
139
+ Column,
140
+ Documentation,
141
+ Entity,
142
+ Generated,
143
+ Id,
144
+ ManyToOne,
145
+ OneToMany,
146
+ Table
147
+ };
148
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RiL2RlY29yYXRvcnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogKiBFQ01BU2NyaXB0IDIwMjUtY29tcGxpYW50IE9STSBkZWNvcmF0b3IgaW1wbGVtZW50YXRpb25cbiAqIENvbXBhdGlibGUgd2l0aCBHcmFhbEpTIHJ1bnRpbWUuXG4gKiAqIEZlYXR1cmVzOlxuICogLSBVc2VzIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIgZm9yIHN0YWJsZSBkZWNvcmF0b3IgdGltaW5nXG4gKiAtIFN0b3JlcyBtZXRhZGF0YSBpbiBhIGdsb2JhbCBXZWFrTWFwIGNhY2hlXG4gKiAtIEZpbmFsaXplcyBlbnRpdHkgbWV0YWRhdGEgb25jZSBwZXIgY2xhc3NcbiAqIC0gRGVmZXJzIGZpbmFsaXphdGlvbiB2aWEgbWljcm90YXNrIChQcm9taXNlLnJlc29sdmUoKS50aGVuKVxuICovXG5cbi8vIC0tLSBEZWNvcmF0b3IgQ29udGV4dCBUeXBlcyAoYmFzZWQgb24gRUNNQVNjcmlwdCBEZWNvcmF0b3JzIHByb3Bvc2FsKSAtLS1cbnR5cGUgQ2xhc3NGaWVsZERlY29yYXRvckNvbnRleHQgPSB7XG4gIGtpbmQ6IFwiZmllbGRcIjtcbiAgbmFtZTogc3RyaW5nIHwgc3ltYm9sO1xuICBzdGF0aWM6IGJvb2xlYW47XG4gIHByaXZhdGU6IGJvb2xlYW47XG4gIGFkZEluaXRpYWxpemVyKGZuOiAoKSA9PiB2b2lkKTogdm9pZDtcbn07XG5cbnR5cGUgQ2xhc3NEZWNvcmF0b3JDb250ZXh0ID0ge1xuICBraW5kOiBcImNsYXNzXCI7XG4gIG5hbWU/OiBzdHJpbmcgfCBzeW1ib2w7XG4gIGFkZEluaXRpYWxpemVyKGZuOiAoKSA9PiB2b2lkKTogdm9pZDtcbn07XG5cbi8vIC0tLSBNZXRhZGF0YSBNb2RlbHMgLS0tXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbk9wdGlvbnMge1xuICBuYW1lPzogc3RyaW5nO1xuICB0eXBlPzogc3RyaW5nO1xuICBsZW5ndGg/OiBudW1iZXI7XG4gIG51bGxhYmxlPzogYm9vbGVhbjtcbiAgZGVmYXVsdFZhbHVlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uZVRvTWFueU9wdGlvbnMge1xuICB0YWJsZT86IHN0cmluZztcbiAgam9pbkNvbHVtbjogc3RyaW5nO1xuICBjYXNjYWRlPzogXCJhbGxcIiB8IFwibm9uZVwiIHwgXCJwZXJzaXN0XCIgfCBcIm1lcmdlXCIgfCBcInJlbW92ZVwiO1xuICBpbnZlcnNlPzogYm9vbGVhbjtcbiAgbGF6eT86IGJvb2xlYW47XG4gIGZldGNoPzogXCJzZWxlY3RcIiB8IFwiam9pblwiO1xuICBqb2luQ29sdW1uTm90TnVsbD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFueVRvT25lT3B0aW9ucyB7XG4gIGpvaW5Db2x1bW4/OiBzdHJpbmc7XG4gIGNhc2NhZGU/OiBcImFsbFwiIHwgXCJub25lXCIgfCBcInBlcnNpc3RcIiB8IFwibWVyZ2VcIiB8IFwicmVtb3ZlXCI7XG4gIG51bGxhYmxlPzogYm9vbGVhbjtcbiAgbGF6eT86IGJvb2xlYW47XG4gIGZldGNoPzogXCJzZWxlY3RcIiB8IFwiam9pblwiO1xufVxuXG5pbnRlcmZhY2UgUHJvcGVydHlNZXRhZGF0YSB7XG4gIHByb3BlcnR5TmFtZTogc3RyaW5nO1xuICBpc0lkOiBib29sZWFuO1xuICBpc0dlbmVyYXRlZDogYm9vbGVhbjtcbiAgZG9jdW1lbnRhdGlvbj86IHN0cmluZztcbiAgY29sdW1uT3B0aW9ucz86IENvbHVtbk9wdGlvbnM7XG4gIG9uZVRvTWFueU9wdGlvbnM/OiB7IHR5cGU6IEZ1bmN0aW9uOyBvcHRpb25zOiBPbmVUb01hbnlPcHRpb25zIH07XG4gIG1hbnlUb09uZU9wdGlvbnM/OiB7IHR5cGU6IEZ1bmN0aW9uOyBvcHRpb25zOiBNYW55VG9PbmVPcHRpb25zIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5Q29uc3RydWN0b3IgZXh0ZW5kcyBGdW5jdGlvbiB7XG4gIG5ldyAoLi4uYXJnczogYW55W10pOiBhbnk7XG4gICRlbnRpdHlfbmFtZTogc3RyaW5nO1xuICAkdGFibGVfbmFtZTogc3RyaW5nO1xuICAkaWRfbmFtZTogc3RyaW5nO1xuICAkaWRfY29sdW1uOiBzdHJpbmc7XG4gICRpbml0aWFsaXplZD86IGJvb2xlYW47XG4gICRkb2N1bWVudGF0aW9uPzogc3RyaW5nO1xufVxuXG4vLyAtLS0gR2xvYmFsIE1ldGFkYXRhIENhY2hlIC0tLVxuY29uc3QgZ2xvYmFsQ2FjaGU6IFdlYWtNYXA8RnVuY3Rpb24sIFByb3BlcnR5TWV0YWRhdGFbXT4gPVxuICAoZ2xvYmFsVGhpcyBhcyBhbnkpLl9fZGVjb3JhdG9yX21ldGFkYXRhX2NhY2hlX18gfHxcbiAgKChnbG9iYWxUaGlzIGFzIGFueSkuX19kZWNvcmF0b3JfbWV0YWRhdGFfY2FjaGVfXyA9IG5ldyBXZWFrTWFwKCkpO1xuXG5mdW5jdGlvbiBnZXRNZXRhZGF0YUFycmF5KGNvbnN0cnVjdG9yOiBGdW5jdGlvbik6IFByb3BlcnR5TWV0YWRhdGFbXSB7XG4gIGlmICghZ2xvYmFsQ2FjaGUuaGFzKGNvbnN0cnVjdG9yKSkge1xuICAgIGdsb2JhbENhY2hlLnNldChjb25zdHJ1Y3RvciwgW10pO1xuICB9XG4gIHJldHVybiBnbG9iYWxDYWNoZS5nZXQoY29uc3RydWN0b3IpITtcbn1cblxuLy8gLS0tIERlZmVyIEhlbHBlciAoR3JhYWxKUy1zYWZlIG1pY3JvdGFzaykgLS0tXG5mdW5jdGlvbiBkZWZlcihmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAvLyBVc2VzIFByb21pc2UgbWljcm90YXNrIHF1ZXVlIGZvciBkZWZlcnJlZCBleGVjdXRpb25cbiAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmbik7XG59XG5cbi8vIC0tLSBDb3JlIFByb3BlcnR5IERlY29yYXRvciBGYWN0b3J5IC0tLVxuZnVuY3Rpb24gY3JlYXRlUHJvcGVydHlEZWNvcmF0b3IoXG4gIGtpbmQ6IFwiY29sdW1uXCIgfCBcImlkXCIgfCBcImdlbmVyYXRlZFwiLFxuICBvcHRpb25zPzogQ29sdW1uT3B0aW9uc1xuKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoXzogYW55LCBjb250ZXh0OiBDbGFzc0ZpZWxkRGVjb3JhdG9yQ29udGV4dCkge1xuICAgIGlmIChjb250ZXh0LmtpbmQgIT09IFwiZmllbGRcIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBAJHtraW5kfSBtdXN0IGFwcGx5IHRvIGZpZWxkc2ApO1xuICAgIH1cblxuICAgIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgY3RvciA9ICh0aGlzIGFzIGFueSkuY29uc3RydWN0b3IgYXMgRW50aXR5Q29uc3RydWN0b3I7XG4gICAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSBjb250ZXh0Lm5hbWUudG9TdHJpbmcoKTtcbiAgICAgIGNvbnN0IG1ldGFkYXRhQXJyYXkgPSBnZXRNZXRhZGF0YUFycmF5KGN0b3IpO1xuXG4gICAgICBsZXQgbWV0YWRhdGEgPSBtZXRhZGF0YUFycmF5LmZpbmQoXG4gICAgICAgIChtKSA9PiBtLnByb3BlcnR5TmFtZSA9PT0gcHJvcGVydHlOYW1lXG4gICAgICApO1xuXG4gICAgICBpZiAoIW1ldGFkYXRhKSB7XG4gICAgICAgIG1ldGFkYXRhID0ge1xuICAgICAgICAgIHByb3BlcnR5TmFtZTogcHJvcGVydHlOYW1lLFxuICAgICAgICAgIGlzSWQ6IGZhbHNlLFxuICAgICAgICAgIGlzR2VuZXJhdGVkOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgbWV0YWRhdGFBcnJheS5wdXNoKG1ldGFkYXRhKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGtpbmQgPT09IFwiaWRcIikgbWV0YWRhdGEuaXNJZCA9IHRydWU7XG4gICAgICBpZiAoa2luZCA9PT0gXCJnZW5lcmF0ZWRcIikgbWV0YWRhdGEuaXNHZW5lcmF0ZWQgPSB0cnVlO1xuICAgICAgaWYgKGtpbmQgPT09IFwiY29sdW1uXCIpIG1ldGFkYXRhLmNvbHVtbk9wdGlvbnMgPSBvcHRpb25zO1xuICAgIH0pO1xuICB9O1xufVxuXG4vLyAtLS0gQERvY3VtZW50YXRpb24gRGVjb3JhdG9yIChEdWFsLVB1cnBvc2UpIC0tLVxuLyoqXG4gKiBBZGRzIGRvY3VtZW50YXRpb24gbWV0YWRhdGEgdG8gYSBjbGFzcyBvciBhIGZpZWxkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gRG9jdW1lbnRhdGlvbihkZXNjcmlwdGlvbjogc3RyaW5nKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoXG4gICAgdmFsdWU6IEZ1bmN0aW9uIHwgYW55LFxuICAgIGNvbnRleHQ6IENsYXNzRGVjb3JhdG9yQ29udGV4dCB8IENsYXNzRmllbGREZWNvcmF0b3JDb250ZXh0XG4gICkge1xuICAgIGlmIChjb250ZXh0LmtpbmQgPT09IFwiY2xhc3NcIikge1xuICAgICAgY29udGV4dC5hZGRJbml0aWFsaXplcihmdW5jdGlvbiAoKSB7XG4gICAgICAgICh2YWx1ZSBhcyBFbnRpdHlDb25zdHJ1Y3RvcikuJGRvY3VtZW50YXRpb24gPSBkZXNjcmlwdGlvbjtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0gZWxzZSBpZiAoY29udGV4dC5raW5kID09PSBcImZpZWxkXCIpIHtcbiAgICAgIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zdCBjdG9yID0gKHRoaXMgYXMgYW55KS5jb25zdHJ1Y3RvciBhcyBFbnRpdHlDb25zdHJ1Y3RvcjtcbiAgICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gY29udGV4dC5uYW1lLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IG1ldGFkYXRhQXJyYXkgPSBnZXRNZXRhZGF0YUFycmF5KGN0b3IpO1xuXG4gICAgICAgIGxldCBtZXRhZGF0YSA9IG1ldGFkYXRhQXJyYXkuZmluZChcbiAgICAgICAgICAobSkgPT4gbS5wcm9wZXJ0eU5hbWUgPT09IHByb3BlcnR5TmFtZVxuICAgICAgICApO1xuXG4gICAgICAgIGlmICghbWV0YWRhdGEpIHtcbiAgICAgICAgICBtZXRhZGF0YSA9IHtcbiAgICAgICAgICAgIHByb3BlcnR5TmFtZTogcHJvcGVydHlOYW1lLFxuICAgICAgICAgICAgaXNJZDogZmFsc2UsXG4gICAgICAgICAgICBpc0dlbmVyYXRlZDogZmFsc2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBtZXRhZGF0YUFycmF5LnB1c2gobWV0YWRhdGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgbWV0YWRhdGEuZG9jdW1lbnRhdGlvbiA9IGRlc2NyaXB0aW9uO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuXG5cbi8vIC0tLSBARW50aXR5IERlY29yYXRvciAtLS1cbi8qKlxuICogTWFya3MgYSBjbGFzcyBhcyBhbiBlbnRpdHkgYW5kIGluaXRpYXRlcyBtZXRhZGF0YSBmaW5hbGl6YXRpb24uXG4gKiBAcGFyYW0gZW50aXR5TmFtZSBUaGUgbmFtZSBvZiB0aGUgZW50aXR5IChkZWZhdWx0cyB0byBjbGFzcyBuYW1lKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEVudGl0eShlbnRpdHlOYW1lPzogc3RyaW5nKSB7XG4gIHJldHVybiBmdW5jdGlvbiAodmFsdWU6IEZ1bmN0aW9uLCBjb250ZXh0OiBDbGFzc0RlY29yYXRvckNvbnRleHQpIHtcbiAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIERlZmVyIGV4ZWN1dGlvbiB0byBlbnN1cmUgYWxsIGZpZWxkIGRlY29yYXRvcnMgaGF2ZSBydW5cbiAgICAgIGRlZmVyKCgpID0+IHtcbiAgICAgICAgY29uc3QgY3RvciA9IHZhbHVlIGFzIEVudGl0eUNvbnN0cnVjdG9yO1xuXG4gICAgICAgIC8vIFByZXZlbnQgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbiAoaWRlbXBvdGVuY3kpXG4gICAgICAgIGlmIChjdG9yLiRpbml0aWFsaXplZCkgcmV0dXJuO1xuICAgICAgICBjdG9yLiRpbml0aWFsaXplZCA9IHRydWU7XG5cbiAgICAgICAgY3Rvci4kZW50aXR5X25hbWUgPSBlbnRpdHlOYW1lIHx8IGN0b3IubmFtZTtcblxuICAgICAgICBjb25zdCBtZXRhZGF0YUFycmF5ID0gZ2V0TWV0YWRhdGFBcnJheShjdG9yKTtcbiAgICAgICAgY29uc3QgaWRNZXRhZGF0YSA9IG1ldGFkYXRhQXJyYXkuZmluZCgobSkgPT4gbS5pc0lkKTtcblxuICAgICAgICBpZiAoaWRNZXRhZGF0YSkge1xuICAgICAgICAgIGN0b3IuJGlkX25hbWUgPSBpZE1ldGFkYXRhLnByb3BlcnR5TmFtZTtcbiAgICAgICAgICAvLyBEZXRlcm1pbmUgSUQgY29sdW1uIG5hbWU6IHVzZSBleHBsaWNpdCBuYW1lIG9yIGNvbnZlcnQgcHJvcGVydHkgbmFtZSB0byB1cHBlciBjYXNlXG4gICAgICAgICAgY3Rvci4kaWRfY29sdW1uID1cbiAgICAgICAgICAgIGlkTWV0YWRhdGEuY29sdW1uT3B0aW9ucz8ubmFtZSB8fFxuICAgICAgICAgICAgaWRNZXRhZGF0YS5wcm9wZXJ0eU5hbWUudG9VcHBlckNhc2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZ1dHVyZTogTG9naWMgdG8gbWFwIGFsbCBwcm9wZXJ0aWVzIHRvIGNvbHVtbnMvcmVsYXRpb25zIGdvZXMgaGVyZVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG59XG5cbi8vIC0tLSBAVGFibGUgRGVjb3JhdG9yIC0tLVxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGRhdGFiYXNlIHRhYmxlIG5hbWUgZm9yIHRoZSBlbnRpdHkuXG4gKiBAcGFyYW0gdGFibGVOYW1lIFRoZSB0YWJsZSBuYW1lIChkZWZhdWx0cyB0byB1cHBlcmNhc2UgY2xhc3MgbmFtZSkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBUYWJsZSh0YWJsZU5hbWU/OiBzdHJpbmcpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUIGV4dGVuZHMgRW50aXR5Q29uc3RydWN0b3I+KFxuICAgIHZhbHVlOiBULFxuICAgIGNvbnRleHQ6IENsYXNzRGVjb3JhdG9yQ29udGV4dFxuICApIHtcbiAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgICh2YWx1ZSBhcyBFbnRpdHlDb25zdHJ1Y3RvcikuJHRhYmxlX25hbWUgPVxuICAgICAgICB0YWJsZU5hbWUgfHwgKGNvbnRleHQubmFtZT8udG9TdHJpbmcoKSA/PyB2YWx1ZS5uYW1lLnRvVXBwZXJDYXNlKCkpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9O1xufVxuXG4vLyAtLS0gRXhwb3J0ZWQgUHJvcGVydHkgRGVjb3JhdG9ycyAtLS1cbi8qKlxuICogTWFya3MgYSBwcm9wZXJ0eSBhcyBhIHN0YW5kYXJkIGRhdGFiYXNlIGNvbHVtbi5cbiAqL1xuZXhwb3J0IGNvbnN0IENvbHVtbiA9IChvcHRpb25zPzogQ29sdW1uT3B0aW9ucykgPT5cbiAgY3JlYXRlUHJvcGVydHlEZWNvcmF0b3IoXCJjb2x1bW5cIiwgb3B0aW9ucyk7XG5cbi8qKlxuICogTWFya3MgYSBwcm9wZXJ0eSBhcyB0aGUgZW50aXR5J3MgcHJpbWFyeSBrZXkuXG4gKi9cbmV4cG9ydCBjb25zdCBJZCA9ICgpID0+IGNyZWF0ZVByb3BlcnR5RGVjb3JhdG9yKFwiaWRcIik7XG5cbi8qKlxuICogTWFya3MgYSBwcm9wZXJ0eSBhcyBhIGdlbmVyYXRlZCB2YWx1ZSAoZS5nLiwgYXV0by1pbmNyZW1lbnQpLlxuICogQHBhcmFtIHN0cmF0ZWd5IFRoZSBnZW5lcmF0aW9uIHN0cmF0ZWd5IChlLmcuLCBcIklERU5USVRZXCIpLiBQYXJhbWV0ZXIgaXMgY3VycmVudGx5IHVudXNlZCBpbiBsb2dpYy5cbiAqL1xuZXhwb3J0IGNvbnN0IEdlbmVyYXRlZCA9IChzdHJhdGVneTogc3RyaW5nKSA9PlxuICBjcmVhdGVQcm9wZXJ0eURlY29yYXRvcihcImdlbmVyYXRlZFwiKTtcblxuLyoqXG4gKiBEZWZpbmVzIGEgb25lLXRvLW1hbnkgcmVsYXRpb25zaGlwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gT25lVG9NYW55KFxuICB0eXBlRnVuY3Rpb246ICgpID0+IEZ1bmN0aW9uLFxuICBvcHRpb25zOiBPbmVUb01hbnlPcHRpb25zXG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChfOiBhbnksIGNvbnRleHQ6IENsYXNzRmllbGREZWNvcmF0b3JDb250ZXh0KSB7XG4gICAgaWYgKGNvbnRleHQua2luZCAhPT0gXCJmaWVsZFwiKSByZXR1cm47XG5cbiAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGN0b3IgPSAodGhpcyBhcyBhbnkpLmNvbnN0cnVjdG9yIGFzIEVudGl0eUNvbnN0cnVjdG9yO1xuICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gY29udGV4dC5uYW1lLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBtZXRhZGF0YUFycmF5ID0gZ2V0TWV0YWRhdGFBcnJheShjdG9yKTtcblxuICAgICAgbGV0IG1ldGFkYXRhID0gbWV0YWRhdGFBcnJheS5maW5kKFxuICAgICAgICAobSkgPT4gbS5wcm9wZXJ0eU5hbWUgPT09IHByb3BlcnR5TmFtZVxuICAgICAgKTtcblxuICAgICAgaWYgKCFtZXRhZGF0YSkge1xuICAgICAgICBtZXRhZGF0YSA9IHtcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5TmFtZSxcbiAgICAgICAgICBpc0lkOiBmYWxzZSxcbiAgICAgICAgICBpc0dlbmVyYXRlZDogZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIG1ldGFkYXRhQXJyYXkucHVzaChtZXRhZGF0YSk7XG4gICAgICB9XG5cbiAgICAgIG1ldGFkYXRhLm9uZVRvTWFueU9wdGlvbnMgPSB7IHR5cGU6IHR5cGVGdW5jdGlvbigpLCBvcHRpb25zIH07XG4gICAgfSk7XG4gIH07XG59XG5cbi8qKlxuICogRGVmaW5lcyBhIG1hbnktdG8tb25lIHJlbGF0aW9uc2hpcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIE1hbnlUb09uZShcbiAgdHlwZUZ1bmN0aW9uOiAoKSA9PiBGdW5jdGlvbixcbiAgb3B0aW9uczogTWFueVRvT25lT3B0aW9ucyA9IHt9XG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChfOiBhbnksIGNvbnRleHQ6IENsYXNzRmllbGREZWNvcmF0b3JDb250ZXh0KSB7XG4gICAgaWYgKGNvbnRleHQua2luZCAhPT0gXCJmaWVsZFwiKSByZXR1cm47XG5cbiAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGN0b3IgPSAodGhpcyBhcyBhbnkpLmNvbnN0cnVjdG9yIGFzIEVudGl0eUNvbnN0cnVjdG9yO1xuICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gY29udGV4dC5uYW1lLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBtZXRhZGF0YUFycmF5ID0gZ2V0TWV0YWRhdGFBcnJheShjdG9yKTtcblxuICAgICAgbGV0IG1ldGFkYXRhID0gbWV0YWRhdGFBcnJheS5maW5kKFxuICAgICAgICAobSkgPT4gbS5wcm9wZXJ0eU5hbWUgPT09IHByb3BlcnR5TmFtZVxuICAgICAgKTtcblxuICAgICAgaWYgKCFtZXRhZGF0YSkge1xuICAgICAgICBtZXRhZGF0YSA9IHtcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5TmFtZSxcbiAgICAgICAgICBpc0lkOiBmYWxzZSxcbiAgICAgICAgICBpc0dlbmVyYXRlZDogZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIG1ldGFkYXRhQXJyYXkucHVzaChtZXRhZGF0YSk7XG4gICAgICB9XG5cbiAgICAgIG1ldGFkYXRhLm1hbnlUb09uZU9wdGlvbnMgPSB7IHR5cGU6IHR5cGVGdW5jdGlvbigpLCBvcHRpb25zIH07XG4gICAgfSk7XG4gIH07XG59Il0sCiAgIm1hcHBpbmdzIjogIkFBeUVBLE1BQU0sY0FDSCxXQUFtQixpQ0FDbEIsV0FBbUIsK0JBQStCLG9CQUFJLFFBQVE7QUFFbEUsU0FBUyxpQkFBaUIsYUFBMkM7QUFDbkUsTUFBSSxDQUFDLFlBQVksSUFBSSxXQUFXLEdBQUc7QUFDakMsZ0JBQVksSUFBSSxhQUFhLENBQUMsQ0FBQztBQUFBLEVBQ2pDO0FBQ0EsU0FBTyxZQUFZLElBQUksV0FBVztBQUNwQztBQUdBLFNBQVMsTUFBTSxJQUFzQjtBQUVuQyxVQUFRLFFBQVEsRUFBRSxLQUFLLEVBQUU7QUFDM0I7QUFHQSxTQUFTLHdCQUNQLE1BQ0EsU0FDQTtBQUNBLFNBQU8sU0FBVSxHQUFRLFNBQXFDO0FBQzVELFFBQUksUUFBUSxTQUFTLFNBQVM7QUFDNUIsWUFBTSxJQUFJLE1BQU0sSUFBSSxJQUFJLHVCQUF1QjtBQUFBLElBQ2pEO0FBRUEsWUFBUSxlQUFlLFdBQVk7QUFDakMsWUFBTSxPQUFRLEtBQWE7QUFDM0IsWUFBTSxlQUFlLFFBQVEsS0FBSyxTQUFTO0FBQzNDLFlBQU0sZ0JBQWdCLGlCQUFpQixJQUFJO0FBRTNDLFVBQUksV0FBVyxjQUFjO0FBQUEsUUFDM0IsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCO0FBQUEsTUFDNUI7QUFFQSxVQUFJLENBQUMsVUFBVTtBQUNiLG1CQUFXO0FBQUEsVUFDVDtBQUFBLFVBQ0EsTUFBTTtBQUFBLFVBQ04sYUFBYTtBQUFBLFFBQ2Y7QUFDQSxzQkFBYyxLQUFLLFFBQVE7QUFBQSxNQUM3QjtBQUVBLFVBQUksU0FBUyxLQUFNLFVBQVMsT0FBTztBQUNuQyxVQUFJLFNBQVMsWUFBYSxVQUFTLGNBQWM7QUFDakQsVUFBSSxTQUFTLFNBQVUsVUFBUyxnQkFBZ0I7QUFBQSxJQUNsRCxDQUFDO0FBQUEsRUFDSDtBQUNGO0FBTU8sU0FBUyxjQUFjLGFBQXFCO0FBQ2pELFNBQU8sU0FDTCxPQUNBLFNBQ0E7QUFDQSxRQUFJLFFBQVEsU0FBUyxTQUFTO0FBQzVCLGNBQVEsZUFBZSxXQUFZO0FBQ2pDLFFBQUMsTUFBNEIsaUJBQWlCO0FBQUEsTUFDaEQsQ0FBQztBQUNELGFBQU87QUFBQSxJQUNULFdBQVcsUUFBUSxTQUFTLFNBQVM7QUFDbkMsY0FBUSxlQUFlLFdBQVk7QUFDakMsY0FBTSxPQUFRLEtBQWE7QUFDM0IsY0FBTSxlQUFlLFFBQVEsS0FBSyxTQUFTO0FBQzNDLGNBQU0sZ0JBQWdCLGlCQUFpQixJQUFJO0FBRTNDLFlBQUksV0FBVyxjQUFjO0FBQUEsVUFDM0IsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCO0FBQUEsUUFDNUI7QUFFQSxZQUFJLENBQUMsVUFBVTtBQUNiLHFCQUFXO0FBQUEsWUFDVDtBQUFBLFlBQ0EsTUFBTTtBQUFBLFlBQ04sYUFBYTtBQUFBLFVBQ2Y7QUFDQSx3QkFBYyxLQUFLLFFBQVE7QUFBQSxRQUM3QjtBQUVBLGlCQUFTLGdCQUFnQjtBQUFBLE1BQzNCLENBQUM7QUFBQSxJQUNIO0FBQUEsRUFDRjtBQUNGO0FBUU8sU0FBUyxPQUFPLFlBQXFCO0FBQzFDLFNBQU8sU0FBVSxPQUFpQixTQUFnQztBQUNoRSxZQUFRLGVBQWUsV0FBWTtBQUVqQyxZQUFNLE1BQU07QUFDVixjQUFNLE9BQU87QUFHYixZQUFJLEtBQUssYUFBYztBQUN2QixhQUFLLGVBQWU7QUFFcEIsYUFBSyxlQUFlLGNBQWMsS0FBSztBQUV2QyxjQUFNLGdCQUFnQixpQkFBaUIsSUFBSTtBQUMzQyxjQUFNLGFBQWEsY0FBYyxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUk7QUFFbkQsWUFBSSxZQUFZO0FBQ2QsZUFBSyxXQUFXLFdBQVc7QUFFM0IsZUFBSyxhQUNILFdBQVcsZUFBZSxRQUMxQixXQUFXLGFBQWEsWUFBWTtBQUFBLFFBQ3hDO0FBQUEsTUFHRixDQUFDO0FBQUEsSUFDSCxDQUFDO0FBQUEsRUFDSDtBQUNGO0FBT08sU0FBUyxNQUFNLFdBQW9CO0FBQ3hDLFNBQU8sU0FDTCxPQUNBLFNBQ0E7QUFDQSxZQUFRLGVBQWUsV0FBWTtBQUNqQyxNQUFDLE1BQTRCLGNBQzNCLGNBQWMsUUFBUSxNQUFNLFNBQVMsS0FBSyxNQUFNLEtBQUssWUFBWTtBQUFBLElBQ3JFLENBQUM7QUFFRCxXQUFPO0FBQUEsRUFDVDtBQUNGO0FBTU8sTUFBTSxTQUFTLENBQUMsWUFDckIsd0JBQXdCLFVBQVUsT0FBTztBQUtwQyxNQUFNLEtBQUssTUFBTSx3QkFBd0IsSUFBSTtBQU03QyxNQUFNLFlBQVksQ0FBQyxhQUN4Qix3QkFBd0IsV0FBVztBQUs5QixTQUFTLFVBQ2QsY0FDQSxTQUNBO0FBQ0EsU0FBTyxTQUFVLEdBQVEsU0FBcUM7QUFDNUQsUUFBSSxRQUFRLFNBQVMsUUFBUztBQUU5QixZQUFRLGVBQWUsV0FBWTtBQUNqQyxZQUFNLE9BQVEsS0FBYTtBQUMzQixZQUFNLGVBQWUsUUFBUSxLQUFLLFNBQVM7QUFDM0MsWUFBTSxnQkFBZ0IsaUJBQWlCLElBQUk7QUFFM0MsVUFBSSxXQUFXLGNBQWM7QUFBQSxRQUMzQixDQUFDLE1BQU0sRUFBRSxpQkFBaUI7QUFBQSxNQUM1QjtBQUVBLFVBQUksQ0FBQyxVQUFVO0FBQ2IsbUJBQVc7QUFBQSxVQUNUO0FBQUEsVUFDQSxNQUFNO0FBQUEsVUFDTixhQUFhO0FBQUEsUUFDZjtBQUNBLHNCQUFjLEtBQUssUUFBUTtBQUFBLE1BQzdCO0FBRUEsZUFBUyxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsR0FBRyxRQUFRO0FBQUEsSUFDOUQsQ0FBQztBQUFBLEVBQ0g7QUFDRjtBQUtPLFNBQVMsVUFDZCxjQUNBLFVBQTRCLENBQUMsR0FDN0I7QUFDQSxTQUFPLFNBQVUsR0FBUSxTQUFxQztBQUM1RCxRQUFJLFFBQVEsU0FBUyxRQUFTO0FBRTlCLFlBQVEsZUFBZSxXQUFZO0FBQ2pDLFlBQU0sT0FBUSxLQUFhO0FBQzNCLFlBQU0sZUFBZSxRQUFRLEtBQUssU0FBUztBQUMzQyxZQUFNLGdCQUFnQixpQkFBaUIsSUFBSTtBQUUzQyxVQUFJLFdBQVcsY0FBYztBQUFBLFFBQzNCLENBQUMsTUFBTSxFQUFFLGlCQUFpQjtBQUFBLE1BQzVCO0FBRUEsVUFBSSxDQUFDLFVBQVU7QUFDYixtQkFBVztBQUFBLFVBQ1Q7QUFBQSxVQUNBLE1BQU07QUFBQSxVQUNOLGFBQWE7QUFBQSxRQUNmO0FBQ0Esc0JBQWMsS0FBSyxRQUFRO0FBQUEsTUFDN0I7QUFFQSxlQUFTLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxHQUFHLFFBQVE7QUFBQSxJQUM5RCxDQUFDO0FBQUEsRUFDSDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,42 @@
1
+ import * as dao from "./dao";
2
+ export * from "./database";
3
+ import { Database } from "./database";
4
+ import * as orm from "./orm";
5
+ import * as ormstatements from "./ormstatements";
6
+ export * from "./sql";
7
+ import { SQLBuilder } from "./sql";
8
+ export * from "./procedure";
9
+ import { Procedure } from "./procedure";
10
+ export * from "./sequence";
11
+ import { Sequence } from "./sequence";
12
+ export * from "./query";
13
+ import { Query } from "./query";
14
+ export * from "./update";
15
+ import { Update } from "./update";
16
+ export * from "./insert";
17
+ import { Insert } from "./insert";
18
+ export * from "./store";
19
+ import { Store } from "./store";
20
+ export * from "./repository";
21
+ import { Repository } from "./repository";
22
+ export * from "./decorators";
23
+ import * as decorators from "./decorators";
24
+ export * from "./translator";
25
+ import { Translator } from "./translator";
26
+ export {
27
+ dao,
28
+ Database as database,
29
+ decorators,
30
+ Insert as insert,
31
+ orm,
32
+ ormstatements,
33
+ Procedure as procedure,
34
+ Query as query,
35
+ Repository as repository,
36
+ Sequence as sequence,
37
+ SQLBuilder as sql,
38
+ Store as store,
39
+ Translator as translator,
40
+ Update as update
41
+ };
42
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RiL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJleHBvcnQgKiBhcyBkYW8gZnJvbSBcIi4vZGFvXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kYXRhYmFzZVwiO1xuZXhwb3J0IHsgRGF0YWJhc2UgYXMgZGF0YWJhc2UgfSBmcm9tIFwiLi9kYXRhYmFzZVwiO1xuZXhwb3J0ICogYXMgb3JtIGZyb20gXCIuL29ybVwiO1xuZXhwb3J0ICogYXMgb3Jtc3RhdGVtZW50cyBmcm9tIFwiLi9vcm1zdGF0ZW1lbnRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcWxcIjtcbmV4cG9ydCB7IFNRTEJ1aWxkZXIgYXMgc3FsIH0gZnJvbSBcIi4vc3FsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wcm9jZWR1cmVcIjtcbmV4cG9ydCB7IFByb2NlZHVyZSBhcyBwcm9jZWR1cmUgfSBmcm9tIFwiLi9wcm9jZWR1cmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NlcXVlbmNlXCI7XG5leHBvcnQgeyBTZXF1ZW5jZSBhcyBzZXF1ZW5jZSB9IGZyb20gXCIuL3NlcXVlbmNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9xdWVyeVwiO1xuZXhwb3J0IHsgUXVlcnkgYXMgcXVlcnkgfSBmcm9tIFwiLi9xdWVyeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXBkYXRlXCI7XG5leHBvcnQgeyBVcGRhdGUgYXMgdXBkYXRlIH0gZnJvbSBcIi4vdXBkYXRlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pbnNlcnRcIjtcbmV4cG9ydCB7IEluc2VydCBhcyBpbnNlcnQgfSBmcm9tIFwiLi9pbnNlcnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0b3JlXCI7XG5leHBvcnQgeyBTdG9yZSBhcyBzdG9yZSB9IGZyb20gXCIuL3N0b3JlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZXBvc2l0b3J5XCI7XG5leHBvcnQgeyBSZXBvc2l0b3J5IGFzIHJlcG9zaXRvcnkgfSBmcm9tIFwiLi9yZXBvc2l0b3J5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5leHBvcnQgKiBhcyBkZWNvcmF0b3JzIGZyb20gXCIuL2RlY29yYXRvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RyYW5zbGF0b3JcIjtcbmV4cG9ydCB7IFRyYW5zbGF0b3IgYXMgdHJhbnNsYXRvciB9IGZyb20gXCIuL3RyYW5zbGF0b3JcIjsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxZQUFZLFNBQVM7QUFDckIsY0FBYztBQUNkLFNBQXFCLGdCQUFnQjtBQUNyQyxZQUFZLFNBQVM7QUFDckIsWUFBWSxtQkFBbUI7QUFDL0IsY0FBYztBQUNkLFNBQXVCLGtCQUFXO0FBQ2xDLGNBQWM7QUFDZCxTQUFzQixpQkFBaUI7QUFDdkMsY0FBYztBQUNkLFNBQXFCLGdCQUFnQjtBQUNyQyxjQUFjO0FBQ2QsU0FBa0IsYUFBYTtBQUMvQixjQUFjO0FBQ2QsU0FBbUIsY0FBYztBQUNqQyxjQUFjO0FBQ2QsU0FBbUIsY0FBYztBQUNqQyxjQUFjO0FBQ2QsU0FBa0IsYUFBYTtBQUMvQixjQUFjO0FBQ2QsU0FBdUIsa0JBQWtCO0FBQ3pDLGNBQWM7QUFDZCxZQUFZLGdCQUFnQjtBQUM1QixjQUFjO0FBQ2QsU0FBdUIsa0JBQWtCOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,32 @@
1
+ const DatabaseFacade = Java.type("org.eclipse.dirigible.components.api.db.DatabaseFacade");
2
+ class Insert {
3
+ /**
4
+ * Executes a single parameterized INSERT statement.
5
+ * * @param sql The SQL query to execute, with '?' placeholders for parameters.
6
+ * @param parameters An optional array of values to replace the '?' placeholders.
7
+ * @param datasourceName The name of the database connection to use (optional).
8
+ * @returns An array of records representing the result of the insertion (e.g., generated keys).
9
+ */
10
+ static execute(sql, parameters, datasourceName) {
11
+ const params = parameters ? JSON.stringify(parameters) : void 0;
12
+ return DatabaseFacade.insert(sql, params, datasourceName);
13
+ }
14
+ /**
15
+ * Executes multiple parameterized INSERT statements as a batch operation.
16
+ * * @param sql The SQL query to execute, with '?' placeholders for parameters.
17
+ * @param parameters An optional array of parameter arrays, where each inner array corresponds to one execution of the SQL statement.
18
+ * @param datasourceName The name of the database connection to use (optional).
19
+ * @returns An array of records representing the results of the batched insertions.
20
+ */
21
+ static executeMany(sql, parameters, datasourceName) {
22
+ const params = parameters ? JSON.stringify(parameters) : void 0;
23
+ return DatabaseFacade.insertMany(sql, params, datasourceName);
24
+ }
25
+ }
26
+ if (typeof module !== "undefined") {
27
+ module.exports = Insert;
28
+ }
29
+ export {
30
+ Insert
31
+ };
32
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RiL2luc2VydC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiY29uc3QgRGF0YWJhc2VGYWNhZGUgPSBKYXZhLnR5cGUoXCJvcmcuZWNsaXBzZS5kaXJpZ2libGUuY29tcG9uZW50cy5hcGkuZGIuRGF0YWJhc2VGYWNhZGVcIik7XG5cbi8qKlxuICogSW50ZXJmYWNlIHVzZWQgdG8gd3JhcCBjb21wbGV4IG9yIG90aGVyIHNwZWNpZmljIHZhbHVlcyBmb3IgZGF0YWJhc2UgaW5zZXJ0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc2VydFBhcmFtZXRlciB7XG5cdHJlYWRvbmx5IHZhbHVlOiBhbnk7XG59XG5cbi8qKlxuICogVHlwZSBhbGlhcyBmb3IgYSBzaW5nbGUgYWxsb3dlZCBwYXJhbWV0ZXIgdmFsdWUgaW4gYW4gSU5TRVJUIHN0YXRlbWVudC5cbiAqL1xudHlwZSBQYXJhbWV0ZXJWYWx1ZSA9IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBEYXRlIHwgSW5zZXJ0UGFyYW1ldGVyO1xuXG4vKipcbiAqIFByb3ZpZGVzIHN0YXRpYyBtZXRob2RzIGZvciBleGVjdXRpbmcgSU5TRVJUIFNRTCBzdGF0ZW1lbnRzLlxuICovXG5leHBvcnQgY2xhc3MgSW5zZXJ0IHtcblxuXHQvKipcblx0ICogRXhlY3V0ZXMgYSBzaW5nbGUgcGFyYW1ldGVyaXplZCBJTlNFUlQgc3RhdGVtZW50LlxuXHQgKiAqIEBwYXJhbSBzcWwgVGhlIFNRTCBxdWVyeSB0byBleGVjdXRlLCB3aXRoICc/JyBwbGFjZWhvbGRlcnMgZm9yIHBhcmFtZXRlcnMuXG5cdCAqIEBwYXJhbSBwYXJhbWV0ZXJzIEFuIG9wdGlvbmFsIGFycmF5IG9mIHZhbHVlcyB0byByZXBsYWNlIHRoZSAnPycgcGxhY2Vob2xkZXJzLlxuXHQgKiBAcGFyYW0gZGF0YXNvdXJjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIGRhdGFiYXNlIGNvbm5lY3Rpb24gdG8gdXNlIChvcHRpb25hbCkuXG5cdCAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHJlY29yZHMgcmVwcmVzZW50aW5nIHRoZSByZXN1bHQgb2YgdGhlIGluc2VydGlvbiAoZS5nLiwgZ2VuZXJhdGVkIGtleXMpLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBleGVjdXRlKHNxbDogc3RyaW5nLCBwYXJhbWV0ZXJzPzogUGFyYW1ldGVyVmFsdWVbXSwgZGF0YXNvdXJjZU5hbWU/OiBzdHJpbmcpOiBBcnJheTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHBhcmFtZXRlcnMgPyBKU09OLnN0cmluZ2lmeShwYXJhbWV0ZXJzKSA6IHVuZGVmaW5lZDtcblx0XHRyZXR1cm4gRGF0YWJhc2VGYWNhZGUuaW5zZXJ0KHNxbCwgcGFyYW1zLCBkYXRhc291cmNlTmFtZSk7XG5cdH1cblxuXHQvKipcblx0ICogRXhlY3V0ZXMgbXVsdGlwbGUgcGFyYW1ldGVyaXplZCBJTlNFUlQgc3RhdGVtZW50cyBhcyBhIGJhdGNoIG9wZXJhdGlvbi5cblx0ICogKiBAcGFyYW0gc3FsIFRoZSBTUUwgcXVlcnkgdG8gZXhlY3V0ZSwgd2l0aCAnPycgcGxhY2Vob2xkZXJzIGZvciBwYXJhbWV0ZXJzLlxuXHQgKiBAcGFyYW0gcGFyYW1ldGVycyBBbiBvcHRpb25hbCBhcnJheSBvZiBwYXJhbWV0ZXIgYXJyYXlzLCB3aGVyZSBlYWNoIGlubmVyIGFycmF5IGNvcnJlc3BvbmRzIHRvIG9uZSBleGVjdXRpb24gb2YgdGhlIFNRTCBzdGF0ZW1lbnQuXG5cdCAqIEBwYXJhbSBkYXRhc291cmNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgZGF0YWJhc2UgY29ubmVjdGlvbiB0byB1c2UgKG9wdGlvbmFsKS5cblx0ICogQHJldHVybnMgQW4gYXJyYXkgb2YgcmVjb3JkcyByZXByZXNlbnRpbmcgdGhlIHJlc3VsdHMgb2YgdGhlIGJhdGNoZWQgaW5zZXJ0aW9ucy5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgZXhlY3V0ZU1hbnkoc3FsOiBzdHJpbmcsIHBhcmFtZXRlcnM/OiBQYXJhbWV0ZXJWYWx1ZVtdW10sIGRhdGFzb3VyY2VOYW1lPzogc3RyaW5nKTogQXJyYXk8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuXHRcdGNvbnN0IHBhcmFtcyA9IHBhcmFtZXRlcnMgPyBKU09OLnN0cmluZ2lmeShwYXJhbWV0ZXJzKSA6IHVuZGVmaW5lZDtcblx0XHRyZXR1cm4gRGF0YWJhc2VGYWNhZGUuaW5zZXJ0TWFueShzcWwsIHBhcmFtcywgZGF0YXNvdXJjZU5hbWUpO1xuXHR9XG59XG5cbi8vIEB0cy1pZ25vcmVcbmlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJykge1xuXHQvLyBAdHMtaWdub3JlXG5cdG1vZHVsZS5leHBvcnRzID0gSW5zZXJ0O1xufSJdLAogICJtYXBwaW5ncyI6ICJBQUFBLE1BQU0saUJBQWlCLEtBQUssS0FBSyx3REFBd0Q7QUFpQmxGLE1BQU0sT0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTbkIsT0FBYyxRQUFRLEtBQWEsWUFBK0IsZ0JBQXFEO0FBQ2hILFVBQU0sU0FBUyxhQUFhLEtBQUssVUFBVSxVQUFVLElBQUk7QUFDL0QsV0FBTyxlQUFlLE9BQU8sS0FBSyxRQUFRLGNBQWM7QUFBQSxFQUN6RDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTQSxPQUFjLFlBQVksS0FBYSxZQUFpQyxnQkFBcUQ7QUFDNUgsVUFBTSxTQUFTLGFBQWEsS0FBSyxVQUFVLFVBQVUsSUFBSTtBQUN6RCxXQUFPLGVBQWUsV0FBVyxLQUFLLFFBQVEsY0FBYztBQUFBLEVBQzdEO0FBQ0Q7QUFHQSxJQUFJLE9BQU8sV0FBVyxhQUFhO0FBRWxDLFNBQU8sVUFBVTtBQUNsQjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,225 @@
1
+ function ORM(orm) {
2
+ this.orm = orm;
3
+ for (var i in orm) {
4
+ this[i] = orm[i];
5
+ }
6
+ }
7
+ ;
8
+ ORM.prototype.ASSOCIATION_TYPES = Object.freeze({
9
+ "ONE-TO-ONE": "one-to-one",
10
+ "ONE-TO-MANY": "one-to-many",
11
+ "MANY-TO-MANY": "many-to-many",
12
+ "MANY-TO-ONE": "many-to-one"
13
+ });
14
+ ORM.prototype.ASSOCIATION_TYPES_VALUES = Object.keys(ORM.prototype.ASSOCIATION_TYPES).map(function(key) {
15
+ return ORM.prototype.ASSOCIATION_TYPES[key];
16
+ });
17
+ ORM.prototype.getPrimaryKey = function() {
18
+ if (!this.idProperty) {
19
+ if (!this.properties || !this.properties.length)
20
+ throw new Error("Invalid orm configuration - no properties are defined");
21
+ const id = this.properties.filter(function(property) {
22
+ return property.id;
23
+ });
24
+ if (!id.length)
25
+ throw new Error("Invalid orm configuration - no id property is defined");
26
+ this.idProperty = id[0];
27
+ }
28
+ return this.idProperty;
29
+ };
30
+ ORM.prototype.isAutoIncrementPrimaryKey = function() {
31
+ if (!this.autoIncrementPrimaryKeyProperty) {
32
+ if (!this.properties || !this.properties.length)
33
+ throw new Error("Invalid orm configuration - no properties are defined");
34
+ let isAutoIncrementOldVersion = false;
35
+ const autoIncrementPrimaryKeyProperty = this.properties.filter(function(property) {
36
+ if (property.id && (property.autoIncrement === void 0 || property.autoIncrement === null)) {
37
+ isAutoIncrementOldVersion = true;
38
+ }
39
+ return property.id && (property.autoIncrement || isAutoIncrementOldVersion);
40
+ });
41
+ this.autoIncrementPrimaryKeyProperty = autoIncrementPrimaryKeyProperty.length > 0;
42
+ }
43
+ return this.autoIncrementPrimaryKeyProperty;
44
+ };
45
+ ORM.prototype.getProperty = function(name) {
46
+ if (name === void 0)
47
+ throw new Error("Illegal argument: name[" + name + "]");
48
+ if (!this.properties || !this.properties.length)
49
+ throw new Error("Invalid orm configuration - no properties are defined");
50
+ const property = this.properties.filter(function(property2) {
51
+ return property2.name === name;
52
+ });
53
+ return property.length > 0 ? property[0] : void 0;
54
+ };
55
+ ORM.prototype.getMandatoryProperties = function() {
56
+ if (!this.mandatoryProperties) {
57
+ if (!this.properties || !this.properties.length)
58
+ throw new Error("Invalid orm configuration - no properties are defined");
59
+ const mandatories = this.properties.filter(function(property) {
60
+ return property.required;
61
+ });
62
+ this.mandatoryProperties = mandatories;
63
+ }
64
+ return this.mandatoryProperties;
65
+ };
66
+ ORM.prototype.getOptionalProperties = function() {
67
+ if (!this.optionalProperties) {
68
+ if (!this.properties || !this.properties.length)
69
+ throw new Error("Invalid orm configuration - no properties are defined");
70
+ const mandatories = this.properties.filter(function(property) {
71
+ return !property.required;
72
+ });
73
+ this.optionalProperties = mandatories;
74
+ }
75
+ return this.optionalProperties;
76
+ };
77
+ ORM.prototype.getUniqueProperties = function() {
78
+ if (!this.uniqueProperties) {
79
+ if (!this.properties || !this.properties.length)
80
+ throw new Error("Invalid orm configuration - no properties are defined");
81
+ const uniques = this.properties.filter(function(property) {
82
+ return property.unique;
83
+ });
84
+ this.uniqueProperties = uniques;
85
+ }
86
+ return this.uniqueProperties;
87
+ };
88
+ ORM.prototype.associationKeys = function() {
89
+ let keys = [];
90
+ if (this.associations) {
91
+ keys = this.associations.map(function(assoc) {
92
+ return assoc.joinKey;
93
+ });
94
+ }
95
+ return keys;
96
+ };
97
+ ORM.prototype.getAssociationNames = function() {
98
+ let names = [];
99
+ if (this.associations) {
100
+ names = this.associations.map(function(assoc) {
101
+ return assoc.name;
102
+ });
103
+ }
104
+ return names;
105
+ };
106
+ ORM.prototype.getAssociation = function(associationName) {
107
+ if (this.associations) {
108
+ return this.associations.filter(function(assoc) {
109
+ return assoc.name === associationName;
110
+ })[0];
111
+ }
112
+ return;
113
+ };
114
+ ORM.prototype.validate = function() {
115
+ let i;
116
+ if (!this.table)
117
+ throw new Error("Illegal configuration: invalid property table[" + this.table + "]");
118
+ if (!this.properties)
119
+ throw new Error("Illegal configuration: invalid property properties[" + this.properties + "]");
120
+ if (this.properties.constructor !== Array)
121
+ throw new Error("Illegal configuration: property 'properties' type is expected ot be Array. Instead, it was " + typeof this.properties);
122
+ if (!this.getPrimaryKey())
123
+ throw new Error("Illegal configuration: No primary key specifed");
124
+ for (i = 0; i < this.properties.length; i++) {
125
+ const property = this.properties[i];
126
+ if (!property.name)
127
+ throw new Error("Illegal configuration: invalid property name[" + property.name + "]");
128
+ if (!property.type)
129
+ throw new Error("Illegal configuration: invalid property type[" + property.type + "]");
130
+ if (!property.column)
131
+ throw new Error("Illegal configuration: invalid property column[" + property.column + "]");
132
+ if (property.allowedOps) {
133
+ if (property.allowedOps.constructor !== Array)
134
+ throw new Error("Illegal configuration: property[" + property.name + "] allowedOps is expected ot be Array. Instead, it was " + typeof property.allowedOps);
135
+ for (let j = 0; j < property.allowedOps.length; j++) {
136
+ if (["insert", "update"].indexOf(property.allowedOps[j]) < 0)
137
+ throw new Error("Illegal configuration: property[" + property.name + "] allowedOps[" + property.allowedOps + "] must be an array containing some or all of the following values: ['insert','update']");
138
+ }
139
+ }
140
+ }
141
+ if (this.associations) {
142
+ if (this.associations.constructor !== Array)
143
+ throw new Error("Illegal configuration: property 'associations' type is expected ot be Array. Instead, it was " + typeof this.associations);
144
+ for (i = 0; i < this.associations.length; i++) {
145
+ const association = this.associations[i];
146
+ if (!association.name)
147
+ throw new Error("Illegal configuration: Association property name[" + association.name + "]");
148
+ if (ORM.prototype.ASSOCIATION_TYPES_VALUES.indexOf(association.type) < 0)
149
+ throw new Error("Illegal configuration: Association " + association.name + " property type[" + association.type + "] must be one of " + ORM.prototype.ASSOCIATION_TYPES_VALUES);
150
+ if (!association.joinKey && "many-to-one" !== association.type)
151
+ throw new Error("Illegal configuration: invalid association joinKey[" + association.joinKey + "]");
152
+ if (association.targetDao && association.targetDao.constructor !== Function)
153
+ throw new Error("Invalid configuration: Association " + association.name + " targetDao property is expected to be function. Instead, it is: " + typeof association.targetDao);
154
+ if (association.type === ORM.prototype.ASSOCIATION_TYPES["MANY-TO-MANY"]) {
155
+ if (!association.joinDao)
156
+ throw new Error("Illegal configuration: Association " + association.name + " joinDao[" + association.joinDao + "] value");
157
+ if (association.joinDao && association.joinDao.constructor !== Function)
158
+ throw new Error("Invalid configuration: Association " + association.name + " joinDao property is expected to be function. Instead, it is: " + typeof association.joinDao);
159
+ }
160
+ }
161
+ }
162
+ };
163
+ ORM.prototype.toColumn = function(ormProperty) {
164
+ let column;
165
+ if (ormProperty) {
166
+ column = {
167
+ name: '"' + ormProperty.column + '"',
168
+ type: ormProperty.type,
169
+ length: String(ormProperty.length),
170
+ primaryKey: String(ormProperty.id === void 0 ? false : ormProperty.id),
171
+ nullable: String(!ormProperty.required),
172
+ defaultValue: ormProperty.defaultValue
173
+ };
174
+ }
175
+ return column;
176
+ };
177
+ ORM.prototype.toTable = function() {
178
+ let table = {
179
+ name: this.table,
180
+ type: "TABLE",
181
+ columns: null,
182
+ constraints: null
183
+ };
184
+ const uniqueIndices = [];
185
+ const primaryKeys = [];
186
+ if (this.properties) {
187
+ table.columns = [];
188
+ this.properties.forEach(function(property) {
189
+ var column = this.toColumn(property);
190
+ if (property.unique)
191
+ uniqueIndices.push({
192
+ "columns": column.name
193
+ });
194
+ if (property.id)
195
+ primaryKeys.push({
196
+ "columns": column.name
197
+ });
198
+ table.columns.push(column);
199
+ });
200
+ }
201
+ if (primaryKeys.length > 1 || uniqueIndices.length > 0) {
202
+ table["constraints"] = {};
203
+ }
204
+ if (primaryKeys.length > 1) {
205
+ table.columns = table.columns.map(function(column) {
206
+ column.primaryKey = "false";
207
+ return column;
208
+ });
209
+ table.constraints["primarKeys"] = primaryKeys;
210
+ }
211
+ if (uniqueIndices.length > 0)
212
+ table.constraints["uniqueIndices"] = uniqueIndices;
213
+ return table;
214
+ };
215
+ function get(orm) {
216
+ const _orm = new ORM(orm);
217
+ _orm.validate();
218
+ return _orm;
219
+ }
220
+ ;
221
+ export {
222
+ ORM,
223
+ get
224
+ };
225
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RiL29ybS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qKlxuICogU3VwcG9ydGVkIE9STSBzY2hlbWE6XG4gKiBgYGBcbiAqIHtcbiAqXHQgbmFtZTogPHN0cmluZz4sXG4gKiAgIHRhYmxlOiA8c3RyaW5nPixcbiAqICAgcHJvcGVydGllczogW3tcbiAqXHQgICBuYW1lOiA8c3RyaW5nPixcbiAqXHQgICBjb2x1bW46IDxzdHJpbmc+LFxuICpcdCAgIGlkOiA8Ym9vbGVhbj4sXG4gKlx0ICAgcmVxdWlyZWQ6IDxib29sZWFuPixcbiAqXHQgICB1bmlxdWU6IDxib29sZWFuPixcbiAqXHQgICBkYlZhbHVlOiA8ZnVuY3Rpb24+LFxuICpcdCAgIHZhbHVlOiA8ZnVuY3Rpb24+LFxuICpcdCAgIGFsbG93ZWRPcHM6IDxBcnJheVsnaW5zZXJ0JywndXBkYXRlJ10+XG4gKiAgIH1dLFxuICogXHQgYXNzb2NpYXRpb25zOiBbe1xuICpcdCAgIG5hbWU6IDxzdHJpbmc+LFxuICogICAgIGpvaW5LZXk6IDxzdHJpbmc+LFxuICogICAgIGtleTogPHN0cmluZz4sXG4gKiAgICAgdHlwZTogPE9STS5BU1NPQ0lBVElPTl9UWVBFUz4sXG4gKiAgICAgdGFyZ2V0RGFvOiA8ZnVuY3Rpb258REFPPixcbiAqICAgICBqb2luRGFvOiA8ZnVuY3Rpb258REFPPixcbiAqICAgICBkZWZhdWx0czogPE9iamVjdD4sXG4gKiAgIH1dXG4gKiB9XG4gKiBgYGBcbiAqXG4gKi9cblxuZXhwb3J0IGludGVyZmFjZSBPUk1EZWZpbml0aW9uIHtcbiAgICB0YWJsZTogc3RyaW5nLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICBjb2x1bW46IHN0cmluZyxcbiAgICAgICAgdHlwZTogc3RyaW5nLFxuICAgICAgICBpZD86IGJvb2xlYW4sXG4gICAgICAgIHJlcXVpcmVkPzogYm9vbGVhbixcbiAgICAgICAgdW5pcXVlPzogYm9vbGVhbixcbiAgICAgICAgYXV0b0luY3JlbWVudD86IGJvb2xlYW4sXG4gICAgICAgIGFsbG93ZWRPcHM/OiAoJ2luc2VydCcgfCAndXBkYXRlJylbXVxuICAgIH1bXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gT1JNKG9ybTogT1JNRGVmaW5pdGlvbikge1xuXHR0aGlzLm9ybSA9IG9ybTtcblx0Zm9yICh2YXIgaSBpbiBvcm0pIHtcblx0XHR0aGlzW2ldID0gb3JtW2ldO1xuXHR9XG59O1xuXG5PUk0ucHJvdG90eXBlLkFTU09DSUFUSU9OX1RZUEVTID0gT2JqZWN0LmZyZWV6ZSh7XG5cdFwiT05FLVRPLU9ORVwiOiBcIm9uZS10by1vbmVcIixcblx0XCJPTkUtVE8tTUFOWVwiOiBcIm9uZS10by1tYW55XCIsXG5cdFwiTUFOWS1UTy1NQU5ZXCI6IFwibWFueS10by1tYW55XCIsXG5cdFwiTUFOWS1UTy1PTkVcIjogXCJtYW55LXRvLW9uZVwiXG59KTtcbk9STS5wcm90b3R5cGUuQVNTT0NJQVRJT05fVFlQRVNfVkFMVUVTID0gT2JqZWN0LmtleXMoT1JNLnByb3RvdHlwZS5BU1NPQ0lBVElPTl9UWVBFUylcblx0Lm1hcChmdW5jdGlvbiAoa2V5KSB7XG5cdFx0cmV0dXJuIE9STS5wcm90b3R5cGUuQVNTT0NJQVRJT05fVFlQRVNba2V5XTtcblx0fSk7XG5cbk9STS5wcm90b3R5cGUuZ2V0UHJpbWFyeUtleSA9IGZ1bmN0aW9uICgpIHtcblx0aWYgKCF0aGlzLmlkUHJvcGVydHkpIHtcblx0XHRpZiAoIXRoaXMucHJvcGVydGllcyB8fCAhdGhpcy5wcm9wZXJ0aWVzLmxlbmd0aClcblx0XHRcdHRocm93IG5ldyBFcnJvcignSW52YWxpZCBvcm0gY29uZmlndXJhdGlvbiAtIG5vIHByb3BlcnRpZXMgYXJlIGRlZmluZWQnKTtcblx0XHRjb25zdCBpZCA9IHRoaXMucHJvcGVydGllcy5maWx0ZXIoZnVuY3Rpb24gKHByb3BlcnR5KSB7XG5cdFx0XHRyZXR1cm4gcHJvcGVydHkuaWQ7XG5cdFx0fSk7XG5cdFx0aWYgKCFpZC5sZW5ndGgpXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgb3JtIGNvbmZpZ3VyYXRpb24gLSBubyBpZCBwcm9wZXJ0eSBpcyBkZWZpbmVkJyk7XG5cdFx0dGhpcy5pZFByb3BlcnR5ID0gaWRbMF07XG5cdH1cblx0cmV0dXJuIHRoaXMuaWRQcm9wZXJ0eTtcbn07XG5cbk9STS5wcm90b3R5cGUuaXNBdXRvSW5jcmVtZW50UHJpbWFyeUtleSA9IGZ1bmN0aW9uICgpIHtcblx0aWYgKCF0aGlzLmF1dG9JbmNyZW1lbnRQcmltYXJ5S2V5UHJvcGVydHkpIHtcblx0XHRpZiAoIXRoaXMucHJvcGVydGllcyB8fCAhdGhpcy5wcm9wZXJ0aWVzLmxlbmd0aClcblx0XHRcdHRocm93IG5ldyBFcnJvcignSW52YWxpZCBvcm0gY29uZmlndXJhdGlvbiAtIG5vIHByb3BlcnRpZXMgYXJlIGRlZmluZWQnKTtcblx0XHRsZXQgaXNBdXRvSW5jcmVtZW50T2xkVmVyc2lvbiA9IGZhbHNlO1xuXHRcdGNvbnN0IGF1dG9JbmNyZW1lbnRQcmltYXJ5S2V5UHJvcGVydHkgPSB0aGlzLnByb3BlcnRpZXMuZmlsdGVyKGZ1bmN0aW9uIChwcm9wZXJ0eSkge1xuXHRcdFx0aWYgKHByb3BlcnR5LmlkICYmIChwcm9wZXJ0eS5hdXRvSW5jcmVtZW50ID09PSB1bmRlZmluZWQgfHwgcHJvcGVydHkuYXV0b0luY3JlbWVudCA9PT0gbnVsbCkpIHtcblx0XHRcdFx0aXNBdXRvSW5jcmVtZW50T2xkVmVyc2lvbiA9IHRydWU7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcHJvcGVydHkuaWQgJiYgKHByb3BlcnR5LmF1dG9JbmNyZW1lbnQgfHwgaXNBdXRvSW5jcmVtZW50T2xkVmVyc2lvbik7XG5cdFx0fSk7XG5cdFx0dGhpcy5hdXRvSW5jcmVtZW50UHJpbWFyeUtleVByb3BlcnR5ID0gYXV0b0luY3JlbWVudFByaW1hcnlLZXlQcm9wZXJ0eS5sZW5ndGggPiAwO1xuXHR9XG5cdHJldHVybiB0aGlzLmF1dG9JbmNyZW1lbnRQcmltYXJ5S2V5UHJvcGVydHk7XG59O1xuXG5PUk0ucHJvdG90eXBlLmdldFByb3BlcnR5ID0gZnVuY3Rpb24gKG5hbWUpIHtcblx0aWYgKG5hbWUgPT09IHVuZGVmaW5lZClcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ0lsbGVnYWwgYXJndW1lbnQ6IG5hbWVbJyArIG5hbWUgKyAnXScpO1xuXHRpZiAoIXRoaXMucHJvcGVydGllcyB8fCAhdGhpcy5wcm9wZXJ0aWVzLmxlbmd0aClcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgb3JtIGNvbmZpZ3VyYXRpb24gLSBubyBwcm9wZXJ0aWVzIGFyZSBkZWZpbmVkJyk7XG5cdGNvbnN0IHByb3BlcnR5ID0gdGhpcy5wcm9wZXJ0aWVzLmZpbHRlcihmdW5jdGlvbiAocHJvcGVydHkpIHtcblx0XHRyZXR1cm4gcHJvcGVydHkubmFtZSA9PT0gbmFtZTtcblx0fSk7XG5cdHJldHVybiBwcm9wZXJ0eS5sZW5ndGggPiAwID8gcHJvcGVydHlbMF0gOiB1bmRlZmluZWQ7XG59O1xuXG5PUk0ucHJvdG90eXBlLmdldE1hbmRhdG9yeVByb3BlcnRpZXMgPSBmdW5jdGlvbiAoKSB7XG5cdGlmICghdGhpcy5tYW5kYXRvcnlQcm9wZXJ0aWVzKSB7XG5cdFx0aWYgKCF0aGlzLnByb3BlcnRpZXMgfHwgIXRoaXMucHJvcGVydGllcy5sZW5ndGgpXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgb3JtIGNvbmZpZ3VyYXRpb24gLSBubyBwcm9wZXJ0aWVzIGFyZSBkZWZpbmVkJyk7XG5cdFx0Y29uc3QgbWFuZGF0b3JpZXMgPSB0aGlzLnByb3BlcnRpZXMuZmlsdGVyKGZ1bmN0aW9uIChwcm9wZXJ0eSkge1xuXHRcdFx0cmV0dXJuIHByb3BlcnR5LnJlcXVpcmVkO1xuXHRcdH0pO1xuXHRcdHRoaXMubWFuZGF0b3J5UHJvcGVydGllcyA9IG1hbmRhdG9yaWVzO1xuXHR9XG5cdHJldHVybiB0aGlzLm1hbmRhdG9yeVByb3BlcnRpZXM7XG59O1xuXG5PUk0ucHJvdG90eXBlLmdldE9wdGlvbmFsUHJvcGVydGllcyA9IGZ1bmN0aW9uICgpIHtcblx0aWYgKCF0aGlzLm9wdGlvbmFsUHJvcGVydGllcykge1xuXHRcdGlmICghdGhpcy5wcm9wZXJ0aWVzIHx8ICF0aGlzLnByb3BlcnRpZXMubGVuZ3RoKVxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG9ybSBjb25maWd1cmF0aW9uIC0gbm8gcHJvcGVydGllcyBhcmUgZGVmaW5lZCcpO1xuXHRcdGNvbnN0IG1hbmRhdG9yaWVzID0gdGhpcy5wcm9wZXJ0aWVzLmZpbHRlcihmdW5jdGlvbiAocHJvcGVydHkpIHtcblx0XHRcdHJldHVybiAhcHJvcGVydHkucmVxdWlyZWQ7XG5cdFx0fSk7XG5cdFx0dGhpcy5vcHRpb25hbFByb3BlcnRpZXMgPSBtYW5kYXRvcmllcztcblx0fVxuXHRyZXR1cm4gdGhpcy5vcHRpb25hbFByb3BlcnRpZXM7XG59O1xuXG5PUk0ucHJvdG90eXBlLmdldFVuaXF1ZVByb3BlcnRpZXMgPSBmdW5jdGlvbiAoKSB7XG5cdGlmICghdGhpcy51bmlxdWVQcm9wZXJ0aWVzKSB7XG5cdFx0aWYgKCF0aGlzLnByb3BlcnRpZXMgfHwgIXRoaXMucHJvcGVydGllcy5sZW5ndGgpXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgb3JtIGNvbmZpZ3VyYXRpb24gLSBubyBwcm9wZXJ0aWVzIGFyZSBkZWZpbmVkJyk7XG5cdFx0Y29uc3QgdW5pcXVlcyA9IHRoaXMucHJvcGVydGllcy5maWx0ZXIoZnVuY3Rpb24gKHByb3BlcnR5KSB7XG5cdFx0XHRyZXR1cm4gcHJvcGVydHkudW5pcXVlO1xuXHRcdH0pO1xuXHRcdHRoaXMudW5pcXVlUHJvcGVydGllcyA9IHVuaXF1ZXM7XG5cdH1cblx0cmV0dXJuIHRoaXMudW5pcXVlUHJvcGVydGllcztcbn07XG5cbi8vVE9ETzogcmVtb3ZlIHRoaXMgb3IgaW1wcm92ZSBieSBrZXkgdHlwZS5cbk9STS5wcm90b3R5cGUuYXNzb2NpYXRpb25LZXlzID0gZnVuY3Rpb24gKCkge1xuXHRsZXQga2V5cyA9IFtdO1xuXHRpZiAodGhpcy5hc3NvY2lhdGlvbnMpIHtcblx0XHRrZXlzID0gdGhpcy5hc3NvY2lhdGlvbnMubWFwKGZ1bmN0aW9uIChhc3NvYykge1xuXHRcdFx0cmV0dXJuIGFzc29jLmpvaW5LZXk7XG5cdFx0fSk7XG5cdH1cblx0cmV0dXJuIGtleXM7XG59O1xuXG5PUk0ucHJvdG90eXBlLmdldEFzc29jaWF0aW9uTmFtZXMgPSBmdW5jdGlvbiAoKSB7XG5cdGxldCBuYW1lcyA9IFtdO1xuXHRpZiAodGhpcy5hc3NvY2lhdGlvbnMpIHtcblx0XHRuYW1lcyA9IHRoaXMuYXNzb2NpYXRpb25zLm1hcChmdW5jdGlvbiAoYXNzb2MpIHtcblx0XHRcdHJldHVybiBhc3NvYy5uYW1lO1xuXHRcdH0pO1xuXHR9XG5cdHJldHVybiBuYW1lcztcbn07XG5cbk9STS5wcm90b3R5cGUuZ2V0QXNzb2NpYXRpb24gPSBmdW5jdGlvbiAoYXNzb2NpYXRpb25OYW1lKSB7XG5cdGlmICh0aGlzLmFzc29jaWF0aW9ucykge1xuXHRcdHJldHVybiB0aGlzLmFzc29jaWF0aW9uc1xuXHRcdFx0LmZpbHRlcihmdW5jdGlvbiAoYXNzb2MpIHtcblx0XHRcdFx0cmV0dXJuIGFzc29jLm5hbWUgPT09IGFzc29jaWF0aW9uTmFtZTtcblx0XHRcdH0pWzBdO1xuXHR9XG5cdHJldHVybjtcbn07XG5cbk9STS5wcm90b3R5cGUudmFsaWRhdGUgPSBmdW5jdGlvbiAoKSB7XG5cdGxldCBpO1xuXHRpZiAoIXRoaXMudGFibGUpXG5cdFx0dGhyb3cgbmV3IEVycm9yKCdJbGxlZ2FsIGNvbmZpZ3VyYXRpb246IGludmFsaWQgcHJvcGVydHkgdGFibGVbJyArIHRoaXMudGFibGUgKyAnXScpO1xuXHRpZiAoIXRoaXMucHJvcGVydGllcylcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ0lsbGVnYWwgY29uZmlndXJhdGlvbjogaW52YWxpZCBwcm9wZXJ0eSBwcm9wZXJ0aWVzWycgKyB0aGlzLnByb3BlcnRpZXMgKyAnXScpO1xuXHRpZiAodGhpcy5wcm9wZXJ0aWVzLmNvbnN0cnVjdG9yICE9PSBBcnJheSlcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJJbGxlZ2FsIGNvbmZpZ3VyYXRpb246IHByb3BlcnR5ICdwcm9wZXJ0aWVzJyB0eXBlIGlzIGV4cGVjdGVkIG90IGJlIEFycmF5LiBJbnN0ZWFkLCBpdCB3YXMgXCIgKyAodHlwZW9mIHRoaXMucHJvcGVydGllcykpO1xuXHRpZiAoIXRoaXMuZ2V0UHJpbWFyeUtleSgpKVxuXHRcdHRocm93IG5ldyBFcnJvcignSWxsZWdhbCBjb25maWd1cmF0aW9uOiBObyBwcmltYXJ5IGtleSBzcGVjaWZlZCcpO1xuXHRmb3IgKGkgPSAwOyBpIDwgdGhpcy5wcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0Y29uc3QgcHJvcGVydHkgPSB0aGlzLnByb3BlcnRpZXNbaV07XG5cdFx0aWYgKCFwcm9wZXJ0eS5uYW1lKVxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdJbGxlZ2FsIGNvbmZpZ3VyYXRpb246IGludmFsaWQgcHJvcGVydHkgbmFtZVsnICsgcHJvcGVydHkubmFtZSArICddJyk7XG5cdFx0aWYgKCFwcm9wZXJ0eS50eXBlKVxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdJbGxlZ2FsIGNvbmZpZ3VyYXRpb246IGludmFsaWQgcHJvcGVydHkgdHlwZVsnICsgcHJvcGVydHkudHlwZSArICddJyk7XG5cdFx0aWYgKCFwcm9wZXJ0eS5jb2x1bW4pXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0lsbGVnYWwgY29uZmlndXJhdGlvbjogaW52YWxpZCBwcm9wZXJ0eSBjb2x1bW5bJyArIHByb3BlcnR5LmNvbHVtbiArICddJyk7XG5cdFx0aWYgKHByb3BlcnR5LmFsbG93ZWRPcHMpIHtcblx0XHRcdGlmIChwcm9wZXJ0eS5hbGxvd2VkT3BzLmNvbnN0cnVjdG9yICE9PSBBcnJheSlcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiSWxsZWdhbCBjb25maWd1cmF0aW9uOiBwcm9wZXJ0eVtcIiArIHByb3BlcnR5Lm5hbWUgKyBcIl0gIGFsbG93ZWRPcHMgaXMgZXhwZWN0ZWQgb3QgYmUgQXJyYXkuIEluc3RlYWQsIGl0IHdhcyBcIiArICh0eXBlb2YgcHJvcGVydHkuYWxsb3dlZE9wcykpO1xuXHRcdFx0Zm9yIChsZXQgaiA9IDA7IGogPCBwcm9wZXJ0eS5hbGxvd2VkT3BzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdGlmIChbJ2luc2VydCcsICd1cGRhdGUnXS5pbmRleE9mKHByb3BlcnR5LmFsbG93ZWRPcHNbal0pIDwgMClcblx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJJbGxlZ2FsIGNvbmZpZ3VyYXRpb246IHByb3BlcnR5W1wiICsgcHJvcGVydHkubmFtZSArIFwiXSBhbGxvd2VkT3BzW1wiICsgcHJvcGVydHkuYWxsb3dlZE9wcyArIFwiXSBtdXN0IGJlIGFuIGFycmF5IGNvbnRhaW5pbmcgc29tZSBvciBhbGwgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXM6IFsnaW5zZXJ0JywndXBkYXRlJ11cIik7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdGlmICh0aGlzLmFzc29jaWF0aW9ucykge1xuXHRcdGlmICh0aGlzLmFzc29jaWF0aW9ucy5jb25zdHJ1Y3RvciAhPT0gQXJyYXkpXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJJbGxlZ2FsIGNvbmZpZ3VyYXRpb246IHByb3BlcnR5ICdhc3NvY2lhdGlvbnMnIHR5cGUgaXMgZXhwZWN0ZWQgb3QgYmUgQXJyYXkuIEluc3RlYWQsIGl0IHdhcyBcIiArICh0eXBlb2YgdGhpcy5hc3NvY2lhdGlvbnMpKTtcblx0XHRmb3IgKGkgPSAwOyBpIDwgdGhpcy5hc3NvY2lhdGlvbnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGNvbnN0IGFzc29jaWF0aW9uID0gdGhpcy5hc3NvY2lhdGlvbnNbaV07XG5cdFx0XHRpZiAoIWFzc29jaWF0aW9uLm5hbWUpXG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcihcIklsbGVnYWwgY29uZmlndXJhdGlvbjogQXNzb2NpYXRpb24gcHJvcGVydHkgbmFtZVtcIiArIGFzc29jaWF0aW9uLm5hbWUgKyBcIl1cIik7XG5cdFx0XHRpZiAoT1JNLnByb3RvdHlwZS5BU1NPQ0lBVElPTl9UWVBFU19WQUxVRVMuaW5kZXhPZihhc3NvY2lhdGlvbi50eXBlKSA8IDApXG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcihcIklsbGVnYWwgY29uZmlndXJhdGlvbjogQXNzb2NpYXRpb24gXCIgKyBhc3NvY2lhdGlvbi5uYW1lICsgXCIgcHJvcGVydHkgdHlwZVtcIiArIGFzc29jaWF0aW9uLnR5cGUgKyBcIl0gbXVzdCBiZSBvbmUgb2YgXCIgKyBPUk0ucHJvdG90eXBlLkFTU09DSUFUSU9OX1RZUEVTX1ZBTFVFUyk7XG5cdFx0XHRpZiAoIWFzc29jaWF0aW9uLmpvaW5LZXkgJiYgJ21hbnktdG8tb25lJyAhPT0gYXNzb2NpYXRpb24udHlwZSlcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCdJbGxlZ2FsIGNvbmZpZ3VyYXRpb246IGludmFsaWQgYXNzb2NpYXRpb24gam9pbktleVsnICsgYXNzb2NpYXRpb24uam9pbktleSArICddJyk7XG5cdFx0XHRpZiAoYXNzb2NpYXRpb24udGFyZ2V0RGFvICYmIGFzc29jaWF0aW9uLnRhcmdldERhby5jb25zdHJ1Y3RvciAhPT0gRnVuY3Rpb24pXG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjb25maWd1cmF0aW9uOiBBc3NvY2lhdGlvbiAnICsgYXNzb2NpYXRpb24ubmFtZSArICcgdGFyZ2V0RGFvIHByb3BlcnR5IGlzIGV4cGVjdGVkIHRvIGJlIGZ1bmN0aW9uLiBJbnN0ZWFkLCBpdCBpczogJyArICh0eXBlb2YgYXNzb2NpYXRpb24udGFyZ2V0RGFvKSk7XG5cdFx0XHRpZiAoYXNzb2NpYXRpb24udHlwZSA9PT0gT1JNLnByb3RvdHlwZS5BU1NPQ0lBVElPTl9UWVBFU1snTUFOWS1UTy1NQU5ZJ10pIHtcblx0XHRcdFx0aWYgKCFhc3NvY2lhdGlvbi5qb2luRGFvKVxuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcignSWxsZWdhbCBjb25maWd1cmF0aW9uOiBBc3NvY2lhdGlvbiAnICsgYXNzb2NpYXRpb24ubmFtZSArICcgam9pbkRhb1snICsgYXNzb2NpYXRpb24uam9pbkRhbyArICddIHZhbHVlJyk7XG5cdFx0XHRcdGlmIChhc3NvY2lhdGlvbi5qb2luRGFvICYmIGFzc29jaWF0aW9uLmpvaW5EYW8uY29uc3RydWN0b3IgIT09IEZ1bmN0aW9uKVxuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjb25maWd1cmF0aW9uOiBBc3NvY2lhdGlvbiAnICsgYXNzb2NpYXRpb24ubmFtZSArICcgam9pbkRhbyBwcm9wZXJ0eSBpcyBleHBlY3RlZCB0byBiZSBmdW5jdGlvbi4gSW5zdGVhZCwgaXQgaXM6ICcgKyAodHlwZW9mIGFzc29jaWF0aW9uLmpvaW5EYW8pKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn07XG5cbk9STS5wcm90b3R5cGUudG9Db2x1bW4gPSBmdW5jdGlvbiAob3JtUHJvcGVydHkpIHtcblx0bGV0IGNvbHVtbjtcblx0aWYgKG9ybVByb3BlcnR5KSB7XG5cdFx0Y29sdW1uID0ge1xuXHRcdFx0bmFtZTogXCJcXFwiXCIgKyBvcm1Qcm9wZXJ0eS5jb2x1bW4gKyBcIlxcXCJcIixcblx0XHRcdHR5cGU6IG9ybVByb3BlcnR5LnR5cGUsXG5cdFx0XHRsZW5ndGg6IFN0cmluZyhvcm1Qcm9wZXJ0eS5sZW5ndGgpLFxuXHRcdFx0cHJpbWFyeUtleTogU3RyaW5nKG9ybVByb3BlcnR5LmlkID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IG9ybVByb3BlcnR5LmlkKSxcblx0XHRcdG51bGxhYmxlOiBTdHJpbmcoIW9ybVByb3BlcnR5LnJlcXVpcmVkKSxcblx0XHRcdGRlZmF1bHRWYWx1ZTogb3JtUHJvcGVydHkuZGVmYXVsdFZhbHVlXG5cdFx0fTtcblx0fVxuXHRyZXR1cm4gY29sdW1uO1xufTtcblxuT1JNLnByb3RvdHlwZS50b1RhYmxlID0gZnVuY3Rpb24gKCkge1xuXHRsZXQgdGFibGUgPSB7XG5cdFx0bmFtZTogdGhpcy50YWJsZSxcblx0XHR0eXBlOiBcIlRBQkxFXCIsXG5cdFx0Y29sdW1uczogbnVsbCxcblx0XHRjb25zdHJhaW50czogbnVsbCxcblx0fTtcblxuXHRjb25zdCB1bmlxdWVJbmRpY2VzID0gW107XG5cdGNvbnN0IHByaW1hcnlLZXlzID0gW107XG5cdGlmICh0aGlzLnByb3BlcnRpZXMpIHtcblx0XHR0YWJsZS5jb2x1bW5zID0gW107XG5cdFx0dGhpcy5wcm9wZXJ0aWVzLmZvckVhY2goZnVuY3Rpb24gKHByb3BlcnR5KSB7XG5cdFx0XHR2YXIgY29sdW1uID0gdGhpcy50b0NvbHVtbihwcm9wZXJ0eSk7XG5cdFx0XHRpZiAocHJvcGVydHkudW5pcXVlKVxuXHRcdFx0XHR1bmlxdWVJbmRpY2VzLnB1c2goe1xuXHRcdFx0XHRcdFwiY29sdW1uc1wiOiBjb2x1bW4ubmFtZVxuXHRcdFx0XHR9KTtcblx0XHRcdGlmIChwcm9wZXJ0eS5pZClcblx0XHRcdFx0cHJpbWFyeUtleXMucHVzaCh7XG5cdFx0XHRcdFx0XCJjb2x1bW5zXCI6IGNvbHVtbi5uYW1lXG5cdFx0XHRcdH0pO1xuXHRcdFx0Ly9UT0RPIDogYW5hbHl6ZSBhc3NvY2lhdGlvbnMgdG8gYWRkIEZLcyBpZiBwb3NzaWJsZVxuXHRcdFx0dGFibGUuY29sdW1ucy5wdXNoKGNvbHVtbik7XG5cdFx0fSk7XG5cdH1cblxuXHRpZiAocHJpbWFyeUtleXMubGVuZ3RoID4gMSB8fCB1bmlxdWVJbmRpY2VzLmxlbmd0aCA+IDApIHtcblx0XHR0YWJsZVtcImNvbnN0cmFpbnRzXCJdID0ge307XG5cdH1cblxuXHRpZiAocHJpbWFyeUtleXMubGVuZ3RoID4gMSkge1xuXHRcdHRhYmxlLmNvbHVtbnMgPSB0YWJsZS5jb2x1bW5zLm1hcChmdW5jdGlvbiAoY29sdW1uKSB7XG5cdFx0XHRjb2x1bW4ucHJpbWFyeUtleSA9IFwiZmFsc2VcIjtcblx0XHRcdHJldHVybiBjb2x1bW47XG5cdFx0fSk7XG5cdFx0dGFibGUuY29uc3RyYWludHNbXCJwcmltYXJLZXlzXCJdID0gcHJpbWFyeUtleXM7XG5cdH1cblx0aWYgKHVuaXF1ZUluZGljZXMubGVuZ3RoID4gMClcblx0XHR0YWJsZS5jb25zdHJhaW50c1tcInVuaXF1ZUluZGljZXNcIl0gPSB1bmlxdWVJbmRpY2VzO1xuXG5cdHJldHVybiB0YWJsZTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXQob3JtOiBPUk1EZWZpbml0aW9uKSB7XG5cdGNvbnN0IF9vcm0gPSBuZXcgT1JNKG9ybSk7XG5cdF9vcm0udmFsaWRhdGUoKTtcblx0cmV0dXJuIF9vcm07XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBOENPLFNBQVMsSUFBSSxLQUFvQjtBQUN2QyxPQUFLLE1BQU07QUFDWCxXQUFTLEtBQUssS0FBSztBQUNsQixTQUFLLENBQUMsSUFBSSxJQUFJLENBQUM7QUFBQSxFQUNoQjtBQUNEO0FBQUM7QUFFRCxJQUFJLFVBQVUsb0JBQW9CLE9BQU8sT0FBTztBQUFBLEVBQy9DLGNBQWM7QUFBQSxFQUNkLGVBQWU7QUFBQSxFQUNmLGdCQUFnQjtBQUFBLEVBQ2hCLGVBQWU7QUFDaEIsQ0FBQztBQUNELElBQUksVUFBVSwyQkFBMkIsT0FBTyxLQUFLLElBQUksVUFBVSxpQkFBaUIsRUFDbEYsSUFBSSxTQUFVLEtBQUs7QUFDbkIsU0FBTyxJQUFJLFVBQVUsa0JBQWtCLEdBQUc7QUFDM0MsQ0FBQztBQUVGLElBQUksVUFBVSxnQkFBZ0IsV0FBWTtBQUN6QyxNQUFJLENBQUMsS0FBSyxZQUFZO0FBQ3JCLFFBQUksQ0FBQyxLQUFLLGNBQWMsQ0FBQyxLQUFLLFdBQVc7QUFDeEMsWUFBTSxJQUFJLE1BQU0sdURBQXVEO0FBQ3hFLFVBQU0sS0FBSyxLQUFLLFdBQVcsT0FBTyxTQUFVLFVBQVU7QUFDckQsYUFBTyxTQUFTO0FBQUEsSUFD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WSxPQUFRO0FBQUEsTUFDNUs7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUNEO0FBRUEsSUFBSSxVQUFVLFdBQVcsU0FBVSxhQUFhO0FBQy9DLE1BQUk7QUFDSixNQUFJLGFBQWE7QUFDaEIsYUFBUztBQUFBLE1BQ1IsTUFBTSxNQUFPLFlBQVksU0FBUztBQUFBLE1BQ2xDLE1BQU0sWUFBWTtBQUFBLE1BQ2xCLFFBQVEsT0FBTyxZQUFZLE1BQU07QUFBQSxNQUNqQyxZQUFZLE9BQU8sWUFBWSxPQUFPLFNBQVksUUFBUSxZQUFZLEVBQUU7QUFBQSxNQUN4RSxVQUFVLE9BQU8sQ0FBQyxZQUFZLFFBQVE7QUFBQSxNQUN0QyxjQUFjLFlBQVk7QUFBQSxJQUMzQjtBQUFBLEVBQ0Q7QUFDQSxTQUFPO0FBQ1I7QUFFQSxJQUFJLFVBQVUsVUFBVSxXQUFZO0FBQ25DLE1BQUksUUFBUTtBQUFBLElBQ1gsTUFBTSxLQUFLO0FBQUEsSUFDWCxNQUFNO0FBQUEsSUFDTixTQUFTO0FBQUEsSUFDVCxhQUFhO0FBQUEsRUFDZDtBQUVBLFFBQU0sZ0JBQWdCLENBQUM7QUFDdkIsUUFBTSxjQUFjLENBQUM7QUFDckIsTUFBSSxLQUFLLFlBQVk7QUFDcEIsVUFBTSxVQUFVLENBQUM7QUFDakIsU0FBSyxXQUFXLFFBQVEsU0FBVSxVQUFVO0FBQzNDLFVBQUksU0FBUyxLQUFLLFNBQVMsUUFBUTtBQUNuQyxVQUFJLFNBQVM7QUFDWixzQkFBYyxLQUFLO0FBQUEsVUFDbEIsV0FBVyxPQUFPO0FBQUEsUUFDbkIsQ0FBQztBQUNGLFVBQUksU0FBUztBQUNaLG9CQUFZLEtBQUs7QUFBQSxVQUNoQixXQUFXLE9BQU87QUFBQSxRQUNuQixDQUFDO0FBRUYsWUFBTSxRQUFRLEtBQUssTUFBTTtBQUFBLElBQzFCLENBQUM7QUFBQSxFQUNGO0FBRUEsTUFBSSxZQUFZLFNBQVMsS0FBSyxjQUFjLFNBQVMsR0FBRztBQUN2RCxVQUFNLGFBQWEsSUFBSSxDQUFDO0FBQUEsRUFDekI7QUFFQSxNQUFJLFlBQVksU0FBUyxHQUFHO0FBQzNCLFVBQU0sVUFBVSxNQUFNLFFBQVEsSUFBSSxTQUFVLFFBQVE7QUFDbkQsYUFBTyxhQUFhO0FBQ3BCLGFBQU87QUFBQSxJQUNSLENBQUM7QUFDRCxVQUFNLFlBQVksWUFBWSxJQUFJO0FBQUEsRUFDbkM7QUFDQSxNQUFJLGNBQWMsU0FBUztBQUMxQixVQUFNLFlBQVksZUFBZSxJQUFJO0FBRXRDLFNBQU87QUFDUjtBQUVPLFNBQVMsSUFBSSxLQUFvQjtBQUN2QyxRQUFNLE9BQU8sSUFBSSxJQUFJLEdBQUc7QUFDeEIsT0FBSyxTQUFTO0FBQ2QsU0FBTztBQUNSO0FBQUM7IiwKICAibmFtZXMiOiBbInByb3BlcnR5Il0KfQo=