@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,433 @@
1
+ import { OutputStream } from "@aerokit/sdk/io/streams";
2
+ const HttpResponseFacade = Java.type("org.eclipse.dirigible.components.api.http.HttpResponseFacade");
3
+ const OutputStreamWriter = Java.type("java.io.OutputStreamWriter");
4
+ const StandardCharsets = Java.type("java.nio.charset.StandardCharsets");
5
+ class Response {
6
+ static {
7
+ // --- Standard HTTP Status Code Constants (Informational, Success, Redirection, Client Error, Server Error) ---
8
+ this.ACCEPTED = 202;
9
+ }
10
+ static {
11
+ this.BAD_GATEWAY = 502;
12
+ }
13
+ static {
14
+ this.BAD_REQUEST = 400;
15
+ }
16
+ static {
17
+ this.CONFLICT = 409;
18
+ }
19
+ static {
20
+ this.CONTINUE = 100;
21
+ }
22
+ static {
23
+ this.CREATED = 201;
24
+ }
25
+ static {
26
+ this.EXPECTATION_FAILED = 417;
27
+ }
28
+ static {
29
+ this.FORBIDDEN = 403;
30
+ }
31
+ static {
32
+ this.FOUND = 302;
33
+ }
34
+ static {
35
+ this.GATEWAY_TIMEOUT = 504;
36
+ }
37
+ static {
38
+ this.GONE = 410;
39
+ }
40
+ static {
41
+ this.HTTP_VERSION_NOT_SUPPORTED = 505;
42
+ }
43
+ static {
44
+ this.INTERNAL_SERVER_ERROR = 500;
45
+ }
46
+ static {
47
+ this.LENGTH_REQUIRED = 411;
48
+ }
49
+ static {
50
+ this.METHOD_NOT_ALLOWED = 405;
51
+ }
52
+ static {
53
+ this.MOVED_PERMANENTLY = 301;
54
+ }
55
+ static {
56
+ this.MOVED_TEMPORARILY = 302;
57
+ }
58
+ static {
59
+ this.MULTIPLE_CHOICES = 300;
60
+ }
61
+ static {
62
+ this.NO_CONTENT = 204;
63
+ }
64
+ static {
65
+ this.NON_AUTHORITATIVE_INFORMATION = 203;
66
+ }
67
+ static {
68
+ this.NOT_ACCEPTABLE = 406;
69
+ }
70
+ static {
71
+ this.NOT_FOUND = 404;
72
+ }
73
+ static {
74
+ this.NOT_IMPLEMENTED = 501;
75
+ }
76
+ static {
77
+ this.NOT_MODIFIED = 304;
78
+ }
79
+ static {
80
+ this.OK = 200;
81
+ }
82
+ static {
83
+ this.PARTIAL_CONTENT = 206;
84
+ }
85
+ static {
86
+ this.PAYMENT_REQUIRED = 402;
87
+ }
88
+ static {
89
+ this.PRECONDITION_FAILED = 412;
90
+ }
91
+ static {
92
+ this.PROXY_AUTHENTICATION_REQUIRED = 407;
93
+ }
94
+ static {
95
+ this.REQUEST_ENTITY_TOO_LARGE = 413;
96
+ }
97
+ static {
98
+ this.REQUEST_TIMEOUT = 408;
99
+ }
100
+ static {
101
+ this.REQUEST_URI_TOO_LONG = 414;
102
+ }
103
+ static {
104
+ this.REQUESTED_RANGE_NOT_SATISFIABLE = 416;
105
+ }
106
+ static {
107
+ this.RESET_CONTENT = 205;
108
+ }
109
+ static {
110
+ this.SEE_OTHER = 303;
111
+ }
112
+ static {
113
+ this.SERVICE_UNAVAILABLE = 503;
114
+ }
115
+ static {
116
+ this.SWITCHING_PROTOCOLS = 101;
117
+ }
118
+ static {
119
+ this.TEMPORARY_REDIRECT = 307;
120
+ }
121
+ static {
122
+ this.UNAUTHORIZED = 401;
123
+ }
124
+ static {
125
+ this.UNSUPPORTED_MEDIA_TYPE = 415;
126
+ }
127
+ static {
128
+ this.USE_PROXY = 305;
129
+ }
130
+ static {
131
+ this.UNPROCESSABLE_CONTENT = 422;
132
+ }
133
+ static {
134
+ /**
135
+ * Mapping between HTTP response codes (string) and their corresponding reason-phrases
136
+ * as defined in RFC 7231, section 6.1.
137
+ */
138
+ this.HttpCodesReasons = {
139
+ "100": "Continue",
140
+ "101": "Switching Protocols",
141
+ "200": "OK",
142
+ "201": "Created",
143
+ "202": "Accepted",
144
+ "203": "Non-Authoritative Information",
145
+ "204": "No Content",
146
+ "205": "Reset Content",
147
+ "206": "Partial Content",
148
+ "300": "Multiple Choices",
149
+ "301": "Moved Permanently",
150
+ "302": "Found",
151
+ "303": "See Other",
152
+ "304": "Not Modified",
153
+ "305": "Use Proxy",
154
+ "307": "Temporary Redirect",
155
+ "400": "Bad Request",
156
+ "401": "Unauthorized",
157
+ "402": "Payment Required",
158
+ "403": "Forbidden",
159
+ "404": "Not Found",
160
+ "405": "Method Not Allowed",
161
+ "406": "Not Acceptable",
162
+ "407": "Proxy Authentication Required",
163
+ "408": "Request Timeout",
164
+ "409": "Conflict",
165
+ "410": "Gone",
166
+ "411": "Length Required",
167
+ "412": "Precondition Failed",
168
+ "413": "Payload Too Large",
169
+ "414": "URI Too Large",
170
+ "415": "Unsupported Media Type",
171
+ "416": "Range Not Satisfiable",
172
+ "417": "Expectation Failed",
173
+ "422": "Unprocessable Content",
174
+ "426": "Upgrade Required",
175
+ "500": "Internal Server Error",
176
+ "501": "Not Implemented",
177
+ "502": "Bad Gateway",
178
+ "503": "Service Unavailable",
179
+ "504": "Gateway Timmeout",
180
+ "505": "HTTP Version Not Supported",
181
+ /**
182
+ * Utility method that accepts an HTTP code and returns its corresponding reason-phrase.
183
+ * @param code The HTTP status code (number).
184
+ * @returns The reason phrase string.
185
+ * @throws Error if the code is not a valid integer in the range [100-505].
186
+ */
187
+ getReason: (code) => {
188
+ if (isNaN(code) || code < 100 || code > 505) {
189
+ throw Error("Illegal argument for code[" + code + "]. Valid HTTP codes are integer numbers in the range [100-505].");
190
+ }
191
+ return Response.HttpCodesReasons[String(code)];
192
+ }
193
+ };
194
+ }
195
+ /**
196
+ * Checks if the response façade is currently valid or connected to an active request context.
197
+ * @returns True if valid, false otherwise.
198
+ */
199
+ static isValid() {
200
+ return HttpResponseFacade.isValid();
201
+ }
202
+ /**
203
+ * Serializes a JavaScript object to JSON, sets the `Content-Type: application/json` header,
204
+ * and writes the JSON string to the response output stream.
205
+ * @param obj The JavaScript object to be serialized and sent.
206
+ */
207
+ static json(obj) {
208
+ Response.addHeader("Content-Type", "application/json");
209
+ const objJson = JSON.stringify(obj);
210
+ Response.print(objJson);
211
+ }
212
+ /**
213
+ * Writes a string of text to the response body using **UTF-8** encoding.
214
+ * Note: This method automatically handles flushing the output stream.
215
+ * @param text The string content to write.
216
+ */
217
+ static print(text) {
218
+ text = text && text.toString() || "";
219
+ const out = Response.getOutputStream().native;
220
+ const writer = new OutputStreamWriter(out, StandardCharsets.UTF_8);
221
+ writer.write(text);
222
+ writer.flush();
223
+ }
224
+ /**
225
+ * Writes a string of text followed by a newline character (`\n`) to the response body
226
+ * using **UTF-8** encoding.
227
+ * @param text The string content to write.
228
+ */
229
+ static println(text) {
230
+ text = text && text.toString() || "";
231
+ const out = Response.getOutputStream().native;
232
+ const writer = new OutputStreamWriter(out, StandardCharsets.UTF_8);
233
+ writer.write(text);
234
+ writer.write("\n");
235
+ writer.flush();
236
+ }
237
+ /**
238
+ * Writes an array of bytes directly to the response output stream, typically used for binary data.
239
+ * @param bytes The array of bytes to write.
240
+ */
241
+ static write(bytes) {
242
+ if (!bytes) {
243
+ bytes = [];
244
+ }
245
+ HttpResponseFacade.write(bytes);
246
+ }
247
+ /**
248
+ * Checks if the response headers and status have already been sent to the client.
249
+ * @returns True if the response is committed, false otherwise.
250
+ */
251
+ static isCommitted() {
252
+ return HttpResponseFacade.isCommitted();
253
+ }
254
+ /**
255
+ * Sets the value of the `Content-Type` header.
256
+ * @param contentType The MIME type string (e.g., 'text/html', 'application/pdf').
257
+ */
258
+ static setContentType(contentType) {
259
+ HttpResponseFacade.setContentType(contentType);
260
+ }
261
+ /**
262
+ * Forces any buffered output to be written to the client.
263
+ */
264
+ static flush() {
265
+ HttpResponseFacade.flush();
266
+ }
267
+ /**
268
+ * Closes the response output stream.
269
+ */
270
+ static close() {
271
+ HttpResponseFacade.close();
272
+ }
273
+ /**
274
+ * Adds a cookie to the response. The cookie object is serialized to JSON before being passed
275
+ * to the underlying Java facade.
276
+ * @param cookie The cookie definition object.
277
+ */
278
+ static addCookie(cookie) {
279
+ HttpResponseFacade.addCookie(JSON.stringify(cookie));
280
+ }
281
+ /**
282
+ * Checks if a response header with the specified name has already been set.
283
+ * @param name The name of the header.
284
+ * @returns True if the header exists, false otherwise.
285
+ */
286
+ static containsHeader(name) {
287
+ return HttpResponseFacade.containsHeader(name);
288
+ }
289
+ /**
290
+ * Encodes a URL for use in redirects or forms, including session information if necessary.
291
+ * @param url The URL to encode.
292
+ * @returns The encoded URL string.
293
+ */
294
+ static encodeURL(url) {
295
+ return HttpResponseFacade.encodeURL(url);
296
+ }
297
+ /**
298
+ * Gets the character encoding used for the response body.
299
+ * @returns The character encoding string.
300
+ */
301
+ static getCharacterEncoding() {
302
+ return HttpResponseFacade.getCharacterEncoding();
303
+ }
304
+ /**
305
+ * Encodes a URL for use in the `Location` header of a redirect response.
306
+ * @param url The redirect URL to encode.
307
+ * @returns The encoded redirect URL string.
308
+ */
309
+ static encodeRedirectURL(url) {
310
+ return HttpResponseFacade.encodeRedirectURL(url);
311
+ }
312
+ /**
313
+ * Gets the current `Content-Type` header value.
314
+ * @returns The content type string.
315
+ */
316
+ static getContentType() {
317
+ return HttpResponseFacade.getContentType();
318
+ }
319
+ /**
320
+ * Sends an HTTP error response to the client with the specified status code and optional message.
321
+ * This bypasses the normal response body writing process.
322
+ * @param status The HTTP status code (e.g., 404, 500).
323
+ * @param message An optional message to include in the error response.
324
+ */
325
+ static sendError(status, message) {
326
+ HttpResponseFacade.sendError(status, message);
327
+ }
328
+ /**
329
+ * Sets the character encoding to be used for the response body (e.g., 'UTF-8').
330
+ * @param charset The character set string.
331
+ */
332
+ static setCharacterEncoding(charset) {
333
+ HttpResponseFacade.setCharacterEncoding(charset);
334
+ }
335
+ /**
336
+ * Sends a redirect response (status code 302 by default) to the client.
337
+ * @param location The new URL to redirect the client to.
338
+ */
339
+ static sendRedirect(location) {
340
+ HttpResponseFacade.sendRedirect(location);
341
+ }
342
+ /**
343
+ * Sets the `Content-Length` header for the response.
344
+ * @param length The size of the response body in bytes.
345
+ */
346
+ static setContentLength(length) {
347
+ HttpResponseFacade.setContentLength(length);
348
+ }
349
+ /**
350
+ * Sets a response header with the given name and value. If the header already exists, its value is overwritten.
351
+ * @param name The name of the header.
352
+ * @param value The value of the header.
353
+ */
354
+ static setHeader(name, value) {
355
+ HttpResponseFacade.setHeader(name, value);
356
+ }
357
+ /**
358
+ * Adds a response header with the given name and value. If the header already exists, a second header with the same name is added.
359
+ * @param name The name of the header.
360
+ * @param value The value of the header.
361
+ */
362
+ static addHeader(name, value) {
363
+ HttpResponseFacade.addHeader(name, value);
364
+ }
365
+ /**
366
+ * Sets the HTTP status code for the response.
367
+ * @param status The integer status code (e.g., 200, 404).
368
+ */
369
+ static setStatus(status) {
370
+ HttpResponseFacade.setStatus(status);
371
+ }
372
+ /**
373
+ * Clears all buffers, status code, and headers from the response, allowing a new response to be generated.
374
+ * This is only possible if the response has not yet been committed.
375
+ */
376
+ static reset() {
377
+ HttpResponseFacade.reset();
378
+ }
379
+ /**
380
+ * Gets the value of a specific header. If multiple headers with the same name exist, it returns the first one.
381
+ * @param name The name of the header.
382
+ * @returns The header value string.
383
+ */
384
+ static getHeader(name) {
385
+ return HttpResponseFacade.getHeader(name);
386
+ }
387
+ /**
388
+ * Sets the locale for the response, which may affect language and date/time formatting.
389
+ * @param language The language code (e.g., 'en', 'fr').
390
+ * @param country The optional country code (e.g., 'US', 'GB').
391
+ * @param variant The optional variant code.
392
+ */
393
+ static setLocale(language, country, variant) {
394
+ return HttpResponseFacade.setLocale(language, country, variant);
395
+ }
396
+ /**
397
+ * Gets all header values for a specific header name as an array of strings.
398
+ * @param name The name of the header.
399
+ * @returns An array of header values.
400
+ */
401
+ static getHeaders(name) {
402
+ return JSON.parse(HttpResponseFacade.getHeaders(name));
403
+ }
404
+ /**
405
+ * Gets the names of all headers that have been set on the response.
406
+ * @returns An array of header names.
407
+ */
408
+ static getHeaderNames() {
409
+ return JSON.parse(HttpResponseFacade.getHeaderNames());
410
+ }
411
+ /**
412
+ * Gets the currently set locale string for the response.
413
+ * @returns The locale string.
414
+ */
415
+ static getLocale() {
416
+ return HttpResponseFacade.getLocale();
417
+ }
418
+ /**
419
+ * Gets the underlying output stream object, wrapped in the SDK's `OutputStream` class.
420
+ * This is useful for writing raw or large amounts of data.
421
+ * @returns The output stream object.
422
+ */
423
+ static getOutputStream() {
424
+ return new OutputStream(HttpResponseFacade.getOutputStream());
425
+ }
426
+ }
427
+ if (typeof module !== "undefined") {
428
+ module.exports = Response;
429
+ }
430
+ export {
431
+ Response
432
+ };
433
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2h0dHAvcmVzcG9uc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogUHJvdmlkZXMgYSBzdGF0aWMgZmFcdTAwRTdhZGUgKGBSZXNwb25zZWAgY2xhc3MpIGZvciBtYW5hZ2luZyB0aGUgSFRUUCByZXNwb25zZS5cbiAqIFRoaXMgY2xhc3Mgd3JhcHMgYSBuYXRpdmUgSmF2YSBIVFRQIHJlc3BvbnNlIG9iamVjdCwgb2ZmZXJpbmcgbWV0aG9kcyBmb3Igc2V0dGluZ1xuICogc3RhdHVzIGNvZGVzLCBoZWFkZXJzLCBjb29raWVzLCBhbmQgd3JpdGluZyBjb250ZW50ICh0ZXh0LCBKU09OLCBvciBiaW5hcnkpLlxuICovXG5cbmltcG9ydCB7IE91dHB1dFN0cmVhbSB9IGZyb20gXCJAYWVyb2tpdC9zZGsvaW8vc3RyZWFtc1wiXG5cbmNvbnN0IEh0dHBSZXNwb25zZUZhY2FkZSA9IEphdmEudHlwZShcIm9yZy5lY2xpcHNlLmRpcmlnaWJsZS5jb21wb25lbnRzLmFwaS5odHRwLkh0dHBSZXNwb25zZUZhY2FkZVwiKTtcbmNvbnN0IE91dHB1dFN0cmVhbVdyaXRlciA9IEphdmEudHlwZShcImphdmEuaW8uT3V0cHV0U3RyZWFtV3JpdGVyXCIpO1xuY29uc3QgU3RhbmRhcmRDaGFyc2V0cyA9IEphdmEudHlwZShcImphdmEubmlvLmNoYXJzZXQuU3RhbmRhcmRDaGFyc2V0c1wiKTtcblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBzdHJ1Y3R1cmUgZm9yIGFuIEhUVFAgY29va2llLCBpbmNsdWRpbmcgaXRzIG5hbWUsIHZhbHVlLCBhbmQgb3B0aW9uYWwgYXR0cmlidXRlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb29raWUge1xuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGUgY29va2llLiAqL1xuICAgIG5hbWU6IHN0cmluZztcbiAgICAvKiogVGhlIHZhbHVlIG9mIHRoZSBjb29raWUuICovXG4gICAgdmFsdWU6IHN0cmluZztcbiAgICAvKiogS2V5LXZhbHVlIG1hcCBvZiBjb29raWUgYXR0cmlidXRlcyAoZS5nLiwgJ21heEFnZScsICdwYXRoJywgJ2RvbWFpbicsICdzZWN1cmUnLCAnaHR0cE9ubHknKS4gKi9cbiAgICBhdHRyaWJ1dGVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuIH1cblxuLyoqXG4gKiBUaGUgc3RhdGljIFJlc3BvbnNlIGNsYXNzIHByb3ZpZGluZyBzdGFuZGFyZGl6ZWQgSFRUUCBzdGF0dXMgY29kZXMgYW5kIG1ldGhvZHNcbiAqIGZvciBjb25zdHJ1Y3RpbmcgdGhlIHNlcnZlcidzIHJlc3BvbnNlLlxuICovXG5leHBvcnQgY2xhc3MgUmVzcG9uc2Uge1xuXG4gICAgLy8gLS0tIFN0YW5kYXJkIEhUVFAgU3RhdHVzIENvZGUgQ29uc3RhbnRzIChJbmZvcm1hdGlvbmFsLCBTdWNjZXNzLCBSZWRpcmVjdGlvbiwgQ2xpZW50IEVycm9yLCBTZXJ2ZXIgRXJyb3IpIC0tLVxuXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBBQ0NFUFRFRCA9IDIwMjtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEJBRF9HQVRFV0FZID0gNTAyO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQkFEX1JFUVVFU1QgPSA0MDA7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBDT05GTElDVCA9IDQwOTtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENPTlRJTlVFID0gMTAwO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ1JFQVRFRCA9IDIwMTtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVYUEVDVEFUSU9OX0ZBSUxFRCA9IDQxNztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEZPUkJJRERFTiA9IDQwMztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEZPVU5EID0gMzAyO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgR0FURVdBWV9USU1FT1VUID0gNTA0O1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgR09ORSA9IDQxMDtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEID0gNTA1O1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSU5URVJOQUxfU0VSVkVSX0VSUk9SID0gNTAwO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTEVOR1RIX1JFUVVJUkVEID0gNDExO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTUVUSE9EX05PVF9BTExPV0VEID0gNDA1O1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTU9WRURfUEVSTUFORU5UTFkgPSAzMDE7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBNT1ZFRF9URU1QT1JBUklMWSA9IDMwMjtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE1VTFRJUExFX0NIT0lDRVMgPSAzMDA7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBOT19DT05URU5UID0gMjA0O1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04gPSAyMDM7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBOT1RfQUNDRVBUQUJMRSA9IDQwNjtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE5PVF9GT1VORCA9IDQwNDtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE5PVF9JTVBMRU1FTlRFRCA9IDUwMTtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE5PVF9NT0RJRklFRCA9IDMwNDtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE9LID0gMjAwO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEFSVElBTF9DT05URU5UID0gMjA2O1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEFZTUVOVF9SRVFVSVJFRCA9IDQwMjtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBSRUNPTkRJVElPTl9GQUlMRUQgPSA0MTI7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRCA9IDQwNztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFJFUVVFU1RfRU5USVRZX1RPT19MQVJHRSA9IDQxMztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFJFUVVFU1RfVElNRU9VVCA9IDQwODtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFJFUVVFU1RfVVJJX1RPT19MT05HID0gNDE0O1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUkVRVUVTVEVEX1JBTkdFX05PVF9TQVRJU0ZJQUJMRSA9IDQxNjtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFJFU0VUX0NPTlRFTlQgPSAyMDU7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBTRUVfT1RIRVIgPSAzMDM7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBTRVJWSUNFX1VOQVZBSUxBQkxFID0gNTAzO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU1dJVENISU5HX1BST1RPQ09MUyA9IDEwMTtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRFTVBPUkFSWV9SRURJUkVDVCA9IDMwNztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFVOQVVUSE9SSVpFRCA9IDQwMTtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFVOU1VQUE9SVEVEX01FRElBX1RZUEUgPSA0MTU7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBVU0VfUFJPWFkgPSAzMDU7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBVTlBST0NFU1NBQkxFX0NPTlRFTlQgPSA0MjI7XG5cbiAgICAvKipcbiAgICAgKiBNYXBwaW5nIGJldHdlZW4gSFRUUCByZXNwb25zZSBjb2RlcyAoc3RyaW5nKSBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyByZWFzb24tcGhyYXNlc1xuICAgICAqIGFzIGRlZmluZWQgaW4gUkZDIDcyMzEsIHNlY3Rpb24gNi4xLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSHR0cENvZGVzUmVhc29ucyA9IHtcbiAgICAgICAgXCIxMDBcIjogXCJDb250aW51ZVwiLCBcIjEwMVwiOiBcIlN3aXRjaGluZyBQcm90b2NvbHNcIiwgXCIyMDBcIjogXCJPS1wiLCBcIjIwMVwiOiBcIkNyZWF0ZWRcIixcbiAgICAgICAgXCIyMDJcIjogXCJBY2NlcHRlZFwiLCBcIjIwM1wiOiBcIk5vbi1BdXRob3JpdGF0aXZlIEluZm9ybWF0aW9uXCIsIFwiMjA0XCI6IFwiTm8gQ29udGVudFwiLFxuICAgICAgICBcIjIwNVwiOiBcIlJlc2V0IENvbnRlbnRcIiwgXCIyMDZcIjogXCJQYXJ0aWFsIENvbnRlbnRcIiwgXCIzMDBcIjogXCJNdWx0aXBsZSBDaG9pY2VzXCIsXG4gICAgICAgIFwiMzAxXCI6IFwiTW92ZWQgUGVybWFuZW50bHlcIiwgXCIzMDJcIjogXCJGb3VuZFwiLCBcIjMwM1wiOiBcIlNlZSBPdGhlclwiLCBcIjMwNFwiOiBcIk5vdCBNb2RpZmllZFwiLFxuICAgICAgICBcIjMwNVwiOiBcIlVzZSBQcm94eVwiLCBcIjMwN1wiOiBcIlRlbXBvcmFyeSBSZWRpcmVjdFwiLCBcIjQwMFwiOiBcIkJhZCBSZXF1ZXN0XCIsXG4gICAgICAgIFwiNDAxXCI6IFwiVW5hdXRob3JpemVkXCIsIFwiNDAyXCI6IFwiUGF5bWVudCBSZXF1aXJlZFwiLCBcIjQwM1wiOiBcIkZvcmJpZGRlblwiLFxuICAgICAgICBcIjQwNFwiOiBcIk5vdCBGb3VuZFwiLCBcIjQwNVwiOiBcIk1ldGhvZCBOb3QgQWxsb3dlZFwiLCBcIjQwNlwiOiBcIk5vdCBBY2NlcHRhYmxlXCIsXG4gICAgICAgIFwiNDA3XCI6IFwiUHJveHkgQXV0aGVudGljYXRpb24gUmVxdWlyZWRcIiwgXCI0MDhcIjogXCJSZXF1ZXN0IFRpbWVvdXRcIiwgXCI0MDlcIjogXCJDb25mbGljdFwiLFxuICAgICAgICBcIjQxMFwiOiBcIkdvbmVcIiwgXCI0MTFcIjogXCJMZW5ndGggUmVxdWlyZWRcIiwgXCI0MTJcIjogXCJQcmVjb25kaXRpb24gRmFpbGVkXCIsXG4gICAgICAgIFwiNDEzXCI6IFwiUGF5bG9hZCBUb28gTGFyZ2VcIiwgXCI0MTRcIjogXCJVUkkgVG9vIExhcmdlXCIsIFwiNDE1XCI6IFwiVW5zdXBwb3J0ZWQgTWVkaWEgVHlwZVwiLFxuICAgICAgICBcIjQxNlwiOiBcIlJhbmdlIE5vdCBTYXRpc2ZpYWJsZVwiLCBcIjQxN1wiOiBcIkV4cGVjdGF0aW9uIEZhaWxlZFwiLCBcIjQyMlwiOiBcIlVucHJvY2Vzc2FibGUgQ29udGVudFwiLFxuICAgICAgICBcIjQyNlwiOiBcIlVwZ3JhZGUgUmVxdWlyZWRcIiwgXCI1MDBcIjogXCJJbnRlcm5hbCBTZXJ2ZXIgRXJyb3JcIiwgXCI1MDFcIjogXCJOb3QgSW1wbGVtZW50ZWRcIixcbiAgICAgICAgXCI1MDJcIjogXCJCYWQgR2F0ZXdheVwiLCBcIjUwM1wiOiBcIlNlcnZpY2UgVW5hdmFpbGFibGVcIiwgXCI1MDRcIjogXCJHYXRld2F5IFRpbW1lb3V0XCIsXG4gICAgICAgIFwiNTA1XCI6IFwiSFRUUCBWZXJzaW9uIE5vdCBTdXBwb3J0ZWRcIixcblxuICAgICAgICAvKipcbiAgICAgICAgKiBVdGlsaXR5IG1ldGhvZCB0aGF0IGFjY2VwdHMgYW4gSFRUUCBjb2RlIGFuZCByZXR1cm5zIGl0cyBjb3JyZXNwb25kaW5nIHJlYXNvbi1waHJhc2UuXG4gICAgICAgICogQHBhcmFtIGNvZGUgVGhlIEhUVFAgc3RhdHVzIGNvZGUgKG51bWJlcikuXG4gICAgICAgICogQHJldHVybnMgVGhlIHJlYXNvbiBwaHJhc2Ugc3RyaW5nLlxuICAgICAgICAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIGNvZGUgaXMgbm90IGEgdmFsaWQgaW50ZWdlciBpbiB0aGUgcmFuZ2UgWzEwMC01MDVdLlxuICAgICAgICAqL1xuICAgICAgICBnZXRSZWFzb246IChjb2RlOiBudW1iZXIpOiBzdHJpbmcgPT4ge1xuICAgICAgICAgICAgaWYgKGlzTmFOKGNvZGUpIHx8IGNvZGUgPCAxMDAgfHwgY29kZSA+IDUwNSkge1xuICAgICAgICAgICAgICAgIHRocm93IEVycm9yKCdJbGxlZ2FsIGFyZ3VtZW50IGZvciBjb2RlWycgKyBjb2RlICsgJ10uIFZhbGlkIEhUVFAgY29kZXMgYXJlIGludGVnZXIgbnVtYmVycyBpbiB0aGUgcmFuZ2UgWzEwMC01MDVdLicpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gUmVzcG9uc2UuSHR0cENvZGVzUmVhc29uc1tTdHJpbmcoY29kZSldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSByZXNwb25zZSBmYVx1MDBFN2FkZSBpcyBjdXJyZW50bHkgdmFsaWQgb3IgY29ubmVjdGVkIHRvIGFuIGFjdGl2ZSByZXF1ZXN0IGNvbnRleHQuXG4gICAgICogQHJldHVybnMgVHJ1ZSBpZiB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgaXNWYWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXNwb25zZUZhY2FkZS5pc1ZhbGlkKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VyaWFsaXplcyBhIEphdmFTY3JpcHQgb2JqZWN0IHRvIEpTT04sIHNldHMgdGhlIGBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb25gIGhlYWRlcixcbiAgICAgKiBhbmQgd3JpdGVzIHRoZSBKU09OIHN0cmluZyB0byB0aGUgcmVzcG9uc2Ugb3V0cHV0IHN0cmVhbS5cbiAgICAgKiBAcGFyYW0gb2JqIFRoZSBKYXZhU2NyaXB0IG9iamVjdCB0byBiZSBzZXJpYWxpemVkIGFuZCBzZW50LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMganNvbihvYmo6IGFueSk6IHZvaWQge1xuICAgICAgICBSZXNwb25zZS5hZGRIZWFkZXIoXCJDb250ZW50LVR5cGVcIiwgXCJhcHBsaWNhdGlvbi9qc29uXCIpXG4gICAgICAgIGNvbnN0IG9iakpzb24gPSBKU09OLnN0cmluZ2lmeShvYmopO1xuICAgICAgICBSZXNwb25zZS5wcmludChvYmpKc29uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXcml0ZXMgYSBzdHJpbmcgb2YgdGV4dCB0byB0aGUgcmVzcG9uc2UgYm9keSB1c2luZyAqKlVURi04KiogZW5jb2RpbmcuXG4gICAgICogTm90ZTogVGhpcyBtZXRob2QgYXV0b21hdGljYWxseSBoYW5kbGVzIGZsdXNoaW5nIHRoZSBvdXRwdXQgc3RyZWFtLlxuICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBzdHJpbmcgY29udGVudCB0byB3cml0ZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHByaW50KHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0ZXh0ID0gKHRleHQgJiYgdGV4dC50b1N0cmluZygpKSB8fCBcIlwiO1xuICAgICAgICBjb25zdCBvdXQgPSBSZXNwb25zZS5nZXRPdXRwdXRTdHJlYW0oKS5uYXRpdmU7XG4gICAgICAgIC8vIFVzZSBKYXZhIEkvTyB0byBlbnN1cmUgZXhwbGljaXQgVVRGLTggZW5jb2RpbmdcbiAgICAgICAgY29uc3Qgd3JpdGVyID0gbmV3IE91dHB1dFN0cmVhbVdyaXRlcihvdXQsIFN0YW5kYXJkQ2hhcnNldHMuVVRGXzgpO1xuICAgICAgICB3cml0ZXIud3JpdGUodGV4dCk7XG4gICAgICAgIHdyaXRlci5mbHVzaCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdyaXRlcyBhIHN0cmluZyBvZiB0ZXh0IGZvbGxvd2VkIGJ5IGEgbmV3bGluZSBjaGFyYWN0ZXIgKGBcXG5gKSB0byB0aGUgcmVzcG9uc2UgYm9keVxuICAgICAqIHVzaW5nICoqVVRGLTgqKiBlbmNvZGluZy5cbiAgICAgKiBAcGFyYW0gdGV4dCBUaGUgc3RyaW5nIGNvbnRlbnQgdG8gd3JpdGUuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBwcmludGxuKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0ZXh0ID0gKHRleHQgJiYgdGV4dC50b1N0cmluZygpKSB8fCBcIlwiO1xuICAgICAgICBjb25zdCBvdXQgPSBSZXNwb25zZS5nZXRPdXRwdXRTdHJlYW0oKS5uYXRpdmU7XG4gICAgICAgIGNvbnN0IHdyaXRlciA9IG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIob3V0LCBTdGFuZGFyZENoYXJzZXRzLlVURl84KTtcbiAgICAgICAgd3JpdGVyLndyaXRlKHRleHQpO1xuICAgICAgICB3cml0ZXIud3JpdGUoXCJcXG5cIik7XG4gICAgICAgIHdyaXRlci5mbHVzaCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdyaXRlcyBhbiBhcnJheSBvZiBieXRlcyBkaXJlY3RseSB0byB0aGUgcmVzcG9uc2Ugb3V0cHV0IHN0cmVhbSwgdHlwaWNhbGx5IHVzZWQgZm9yIGJpbmFyeSBkYXRhLlxuICAgICAqIEBwYXJhbSBieXRlcyBUaGUgYXJyYXkgb2YgYnl0ZXMgdG8gd3JpdGUuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyB3cml0ZShieXRlczogYW55W10pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFieXRlcykge1xuICAgICAgICAgICAgYnl0ZXMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBIdHRwUmVzcG9uc2VGYWNhZGUud3JpdGUoYnl0ZXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aGUgcmVzcG9uc2UgaGVhZGVycyBhbmQgc3RhdHVzIGhhdmUgYWxyZWFkeSBiZWVuIHNlbnQgdG8gdGhlIGNsaWVudC5cbiAgICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSByZXNwb25zZSBpcyBjb21taXR0ZWQsIGZhbHNlIG90aGVyd2lzZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGlzQ29tbWl0dGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gSHR0cFJlc3BvbnNlRmFjYWRlLmlzQ29tbWl0dGVkKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgdmFsdWUgb2YgdGhlIGBDb250ZW50LVR5cGVgIGhlYWRlci5cbiAgICAgKiBAcGFyYW0gY29udGVudFR5cGUgVGhlIE1JTUUgdHlwZSBzdHJpbmcgKGUuZy4sICd0ZXh0L2h0bWwnLCAnYXBwbGljYXRpb24vcGRmJykuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBzZXRDb250ZW50VHlwZShjb250ZW50VHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIEh0dHBSZXNwb25zZUZhY2FkZS5zZXRDb250ZW50VHlwZShjb250ZW50VHlwZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9yY2VzIGFueSBidWZmZXJlZCBvdXRwdXQgdG8gYmUgd3JpdHRlbiB0byB0aGUgY2xpZW50LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZmx1c2goKTogdm9pZCB7XG4gICAgICAgIEh0dHBSZXNwb25zZUZhY2FkZS5mbHVzaCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlcyB0aGUgcmVzcG9uc2Ugb3V0cHV0IHN0cmVhbS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICBIdHRwUmVzcG9uc2VGYWNhZGUuY2xvc2UoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGEgY29va2llIHRvIHRoZSByZXNwb25zZS4gVGhlIGNvb2tpZSBvYmplY3QgaXMgc2VyaWFsaXplZCB0byBKU09OIGJlZm9yZSBiZWluZyBwYXNzZWRcbiAgICAgKiB0byB0aGUgdW5kZXJseWluZyBKYXZhIGZhY2FkZS5cbiAgICAgKiBAcGFyYW0gY29va2llIFRoZSBjb29raWUgZGVmaW5pdGlvbiBvYmplY3QuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBhZGRDb29raWUoY29va2llOiBDb29raWUpOiB2b2lkIHtcbiAgICAgICAgSHR0cFJlc3BvbnNlRmFjYWRlLmFkZENvb2tpZShKU09OLnN0cmluZ2lmeShjb29raWUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYSByZXNwb25zZSBoZWFkZXIgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUgaGFzIGFscmVhZHkgYmVlbiBzZXQuXG4gICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGhlYWRlci5cbiAgICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBoZWFkZXIgZXhpc3RzLCBmYWxzZSBvdGhlcndpc2UuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBjb250YWluc0hlYWRlcihuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXNwb25zZUZhY2FkZS5jb250YWluc0hlYWRlcihuYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFbmNvZGVzIGEgVVJMIGZvciB1c2UgaW4gcmVkaXJlY3RzIG9yIGZvcm1zLCBpbmNsdWRpbmcgc2Vzc2lvbiBpbmZvcm1hdGlvbiBpZiBuZWNlc3NhcnkuXG4gICAgICogQHBhcmFtIHVybCBUaGUgVVJMIHRvIGVuY29kZS5cbiAgICAgKiBAcmV0dXJucyBUaGUgZW5jb2RlZCBVUkwgc3RyaW5nLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZW5jb2RlVVJMKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXNwb25zZUZhY2FkZS5lbmNvZGVVUkwodXJsKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcgdXNlZCBmb3IgdGhlIHJlc3BvbnNlIGJvZHkuXG4gICAgICogQHJldHVybnMgVGhlIGNoYXJhY3RlciBlbmNvZGluZyBzdHJpbmcuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRDaGFyYWN0ZXJFbmNvZGluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlc3BvbnNlRmFjYWRlLmdldENoYXJhY3RlckVuY29kaW5nKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW5jb2RlcyBhIFVSTCBmb3IgdXNlIGluIHRoZSBgTG9jYXRpb25gIGhlYWRlciBvZiBhIHJlZGlyZWN0IHJlc3BvbnNlLlxuICAgICAqIEBwYXJhbSB1cmwgVGhlIHJlZGlyZWN0IFVSTCB0byBlbmNvZGUuXG4gICAgICogQHJldHVybnMgVGhlIGVuY29kZWQgcmVkaXJlY3QgVVJMIHN0cmluZy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGVuY29kZVJlZGlyZWN0VVJMKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXNwb25zZUZhY2FkZS5lbmNvZGVSZWRpcmVjdFVSTCh1cmwpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGN1cnJlbnQgYENvbnRlbnQtVHlwZWAgaGVhZGVyIHZhbHVlLlxuICAgICAqIEByZXR1cm5zIFRoZSBjb250ZW50IHR5cGUgc3RyaW5nLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0Q29udGVudFR5cGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXNwb25zZUZhY2FkZS5nZXRDb250ZW50VHlwZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlbmRzIGFuIEhUVFAgZXJyb3IgcmVzcG9uc2UgdG8gdGhlIGNsaWVudCB3aXRoIHRoZSBzcGVjaWZpZWQgc3RhdHVzIGNvZGUgYW5kIG9wdGlvbmFsIG1lc3NhZ2UuXG4gICAgICogVGhpcyBieXBhc3NlcyB0aGUgbm9ybWFsIHJlc3BvbnNlIGJvZHkgd3JpdGluZyBwcm9jZXNzLlxuICAgICAqIEBwYXJhbSBzdGF0dXMgVGhlIEhUVFAgc3RhdHVzIGNvZGUgKGUuZy4sIDQwNCwgNTAwKS5cbiAgICAgKiBAcGFyYW0gbWVzc2FnZSBBbiBvcHRpb25hbCBtZXNzYWdlIHRvIGluY2x1ZGUgaW4gdGhlIGVycm9yIHJlc3BvbnNlLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgc2VuZEVycm9yKHN0YXR1czogbnVtYmVyLCBtZXNzYWdlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIEh0dHBSZXNwb25zZUZhY2FkZS5zZW5kRXJyb3Ioc3RhdHVzLCBtZXNzYWdlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcgdG8gYmUgdXNlZCBmb3IgdGhlIHJlc3BvbnNlIGJvZHkgKGUuZy4sICdVVEYtOCcpLlxuICAgICAqIEBwYXJhbSBjaGFyc2V0IFRoZSBjaGFyYWN0ZXIgc2V0IHN0cmluZy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHNldENoYXJhY3RlckVuY29kaW5nKGNoYXJzZXQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBIdHRwUmVzcG9uc2VGYWNhZGUuc2V0Q2hhcmFjdGVyRW5jb2RpbmcoY2hhcnNldCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VuZHMgYSByZWRpcmVjdCByZXNwb25zZSAoc3RhdHVzIGNvZGUgMzAyIGJ5IGRlZmF1bHQpIHRvIHRoZSBjbGllbnQuXG4gICAgICogQHBhcmFtIGxvY2F0aW9uIFRoZSBuZXcgVVJMIHRvIHJlZGlyZWN0IHRoZSBjbGllbnQgdG8uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBzZW5kUmVkaXJlY3QobG9jYXRpb246IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBIdHRwUmVzcG9uc2VGYWNhZGUuc2VuZFJlZGlyZWN0KGxvY2F0aW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBgQ29udGVudC1MZW5ndGhgIGhlYWRlciBmb3IgdGhlIHJlc3BvbnNlLlxuICAgICAqIEBwYXJhbSBsZW5ndGggVGhlIHNpemUgb2YgdGhlIHJlc3BvbnNlIGJvZHkgaW4gYnl0ZXMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBzZXRDb250ZW50TGVuZ3RoKGxlbmd0aDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIEh0dHBSZXNwb25zZUZhY2FkZS5zZXRDb250ZW50TGVuZ3RoKGxlbmd0aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBhIHJlc3BvbnNlIGhlYWRlciB3aXRoIHRoZSBnaXZlbiBuYW1lIGFuZCB2YWx1ZS4gSWYgdGhlIGhlYWRlciBhbHJlYWR5IGV4aXN0cywgaXRzIHZhbHVlIGlzIG92ZXJ3cml0dGVuLlxuICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBoZWFkZXIuXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgaGVhZGVyLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgc2V0SGVhZGVyKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBIdHRwUmVzcG9uc2VGYWNhZGUuc2V0SGVhZGVyKG5hbWUsIHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGEgcmVzcG9uc2UgaGVhZGVyIHdpdGggdGhlIGdpdmVuIG5hbWUgYW5kIHZhbHVlLiBJZiB0aGUgaGVhZGVyIGFscmVhZHkgZXhpc3RzLCBhIHNlY29uZCBoZWFkZXIgd2l0aCB0aGUgc2FtZSBuYW1lIGlzIGFkZGVkLlxuICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBoZWFkZXIuXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgaGVhZGVyLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgYWRkSGVhZGVyKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBIdHRwUmVzcG9uc2VGYWNhZGUuYWRkSGVhZGVyKG5hbWUsIHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBIVFRQIHN0YXR1cyBjb2RlIGZvciB0aGUgcmVzcG9uc2UuXG4gICAgICogQHBhcmFtIHN0YXR1cyBUaGUgaW50ZWdlciBzdGF0dXMgY29kZSAoZS5nLiwgMjAwLCA0MDQpLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgc2V0U3RhdHVzKHN0YXR1czogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIEh0dHBSZXNwb25zZUZhY2FkZS5zZXRTdGF0dXMoc3RhdHVzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbGVhcnMgYWxsIGJ1ZmZlcnMsIHN0YXR1cyBjb2RlLCBhbmQgaGVhZGVycyBmcm9tIHRoZSByZXNwb25zZSwgYWxsb3dpbmcgYSBuZXcgcmVzcG9uc2UgdG8gYmUgZ2VuZXJhdGVkLlxuICAgICAqIFRoaXMgaXMgb25seSBwb3NzaWJsZSBpZiB0aGUgcmVzcG9uc2UgaGFzIG5vdCB5ZXQgYmVlbiBjb21taXR0ZWQuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyByZXNldCgpOiB2b2lkIHtcbiAgICAgICAgSHR0cFJlc3BvbnNlRmFjYWRlLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgdmFsdWUgb2YgYSBzcGVjaWZpYyBoZWFkZXIuIElmIG11bHRpcGxlIGhlYWRlcnMgd2l0aCB0aGUgc2FtZSBuYW1lIGV4aXN0LCBpdCByZXR1cm5zIHRoZSBmaXJzdCBvbmUuXG4gICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGhlYWRlci5cbiAgICAgKiBAcmV0dXJucyBUaGUgaGVhZGVyIHZhbHVlIHN0cmluZy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldEhlYWRlcihuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlc3BvbnNlRmFjYWRlLmdldEhlYWRlcihuYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBsb2NhbGUgZm9yIHRoZSByZXNwb25zZSwgd2hpY2ggbWF5IGFmZmVjdCBsYW5ndWFnZSBhbmQgZGF0ZS90aW1lIGZvcm1hdHRpbmcuXG4gICAgICogQHBhcmFtIGxhbmd1YWdlIFRoZSBsYW5ndWFnZSBjb2RlIChlLmcuLCAnZW4nLCAnZnInKS5cbiAgICAgKiBAcGFyYW0gY291bnRyeSBUaGUgb3B0aW9uYWwgY291bnRyeSBjb2RlIChlLmcuLCAnVVMnLCAnR0InKS5cbiAgICAgKiBAcGFyYW0gdmFyaWFudCBUaGUgb3B0aW9uYWwgdmFyaWFudCBjb2RlLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgc2V0TG9jYWxlKGxhbmd1YWdlOiBzdHJpbmcsIGNvdW50cnk/OiBzdHJpbmcsIHZhcmlhbnQ/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXNwb25zZUZhY2FkZS5zZXRMb2NhbGUobGFuZ3VhZ2UsIGNvdW50cnksIHZhcmlhbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYWxsIGhlYWRlciB2YWx1ZXMgZm9yIGEgc3BlY2lmaWMgaGVhZGVyIG5hbWUgYXMgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAgICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgaGVhZGVyLlxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGhlYWRlciB2YWx1ZXMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRIZWFkZXJzKG5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSHR0cFJlc3BvbnNlRmFjYWRlLmdldEhlYWRlcnMobmFtZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIG5hbWVzIG9mIGFsbCBoZWFkZXJzIHRoYXQgaGF2ZSBiZWVuIHNldCBvbiB0aGUgcmVzcG9uc2UuXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgaGVhZGVyIG5hbWVzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0SGVhZGVyTmFtZXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShIdHRwUmVzcG9uc2VGYWNhZGUuZ2V0SGVhZGVyTmFtZXMoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgY3VycmVudGx5IHNldCBsb2NhbGUgc3RyaW5nIGZvciB0aGUgcmVzcG9uc2UuXG4gICAgICogQHJldHVybnMgVGhlIGxvY2FsZSBzdHJpbmcuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRMb2NhbGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXNwb25zZUZhY2FkZS5nZXRMb2NhbGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSB1bmRlcmx5aW5nIG91dHB1dCBzdHJlYW0gb2JqZWN0LCB3cmFwcGVkIGluIHRoZSBTREsncyBgT3V0cHV0U3RyZWFtYCBjbGFzcy5cbiAgICAgKiBUaGlzIGlzIHVzZWZ1bCBmb3Igd3JpdGluZyByYXcgb3IgbGFyZ2UgYW1vdW50cyBvZiBkYXRhLlxuICAgICAqIEByZXR1cm5zIFRoZSBvdXRwdXQgc3RyZWFtIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldE91dHB1dFN0cmVhbSgpOiBPdXRwdXRTdHJlYW0ge1xuICAgICAgICByZXR1cm4gbmV3IE91dHB1dFN0cmVhbShIdHRwUmVzcG9uc2VGYWNhZGUuZ2V0T3V0cHV0U3RyZWFtKCkpO1xuICAgIH1cbn1cblxuLy8gQHRzLWlnbm9yZVxuaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnKSB7XG5cdC8vIEB0cy1pZ25vcmVcblx0bW9kdWxlLmV4cG9ydHMgPSBSZXNwb25zZTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQU1BLFNBQVMsb0JBQW9CO0FBRTdCLE1BQU0scUJBQXFCLEtBQUssS0FBSyw4REFBOEQ7QUFDbkcsTUFBTSxxQkFBcUIsS0FBSyxLQUFLLDRCQUE0QjtBQUNqRSxNQUFNLG1CQUFtQixLQUFLLEtBQUssbUNBQW1DO0FBa0IvRCxNQUFNLFNBQVM7QUFBQSxFQUlsQjtBQUFBO0FBQUEsU0FBdUIsV0FBVztBQUFBO0FBQUEsRUFDbEM7QUFBQSxT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
@@ -0,0 +1,13 @@
1
+ function handlerFunction(thiz, configuration, sHandlerFuncName, fHandler) {
2
+ if (fHandler !== void 0) {
3
+ if (typeof fHandler !== "function" && typeof fHandler !== "string") {
4
+ throw new Error(`Invalid argument: ${sHandlerFuncName} method argument must be a valid javascript function or string, but instead is ${typeof fHandler}`);
5
+ }
6
+ configuration[sHandlerFuncName] = fHandler;
7
+ }
8
+ return thiz;
9
+ }
10
+ export {
11
+ handlerFunction
12
+ };
13
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2h0dHAvcnMvcmVzb3VyY2UtY29tbW9uLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvbW1tb24gZnVuY3Rpb24gZm9yIGluaXRpYWxpem5nIHRoZSBjYWxsYmFjayBmdW5jdGlvbnMgaW4gdGhlIFJlc291cmNlTWV0aG9kIGluc3RhbmNlcy5cbiAqXG4gKiBAcGFyYW0gdGhpeiBUaGUgUmVzb3VyY2VNZXRob2QgaW5zdGFuY2UgdG8gd2hpY2ggdGhlIGZ1bmN0aW9uIGlzIGJvdW5kIChvciBSZXNvdXJjZSBpbnN0YW5jZSBpbiB0aGUgY2FzZSBvZiByZWRpcmVjdCkuXG4gKiBAcGFyYW0gY29uZmlndXJhdGlvbiBUaGUgY29uZmlndXJhdGlvbiBvYmplY3Qgd2hlcmUgdGhlIGhhbmRsZXIgd2lsbCBiZSBhdHRhY2hlZC5cbiAqIEBwYXJhbSBzSGFuZGxlckZ1bmNOYW1lIFRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgYXR0YWNoZWQgdG8gdGhlIHJlc291cmNlIG1hcHBpbmdzIGNvbmZpZ3VyYXRpb24gKGUuZy4sICdzZXJ2ZScsICdyZWRpcmVjdCcpLlxuICogQHBhcmFtIGZIYW5kbGVyIFRoZSBoYW5kbGVyIGZ1bmN0aW9uIG9yIHZhbHVlIHRoYXQgd2lsbCBiZSBhdHRhY2hlZCB0byB0aGUgcmVzb3VyY2UgbWFwcGluZ3MgY29uZmlndXJhdGlvbi5cbiAqIEByZXR1cm5zIFRoZSBpbnN0YW5jZSBwYXNzZWQgaW4gYXMgJ3RoaXonIGZvciBtZXRob2QgY2hhaW5pbmcuXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlckZ1bmN0aW9uKHRoaXo6IGFueSwgY29uZmlndXJhdGlvbjogYW55LCBzSGFuZGxlckZ1bmNOYW1lOiBzdHJpbmcsIGZIYW5kbGVyOiBGdW5jdGlvbiB8IHN0cmluZyk6IGFueSB7XG4gICAgaWYgKGZIYW5kbGVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gSWYgZkhhbmRsZXIgaXMgYSBzdHJpbmcgKG9ubHkgdXNlZCBmb3IgJ3JlZGlyZWN0JyksIGl0J3MgdmFsaWQuXG4gICAgICAgIC8vIElmIGZIYW5kbGVyIGlzIGEgZnVuY3Rpb24sIGl0J3MgdmFsaWQuXG4gICAgICAgIGlmICh0eXBlb2YgZkhhbmRsZXIgIT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGZIYW5kbGVyICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFyZ3VtZW50OiAke3NIYW5kbGVyRnVuY05hbWV9IG1ldGhvZCBhcmd1bWVudCBtdXN0IGJlIGEgdmFsaWQgamF2YXNjcmlwdCBmdW5jdGlvbiBvciBzdHJpbmcsIGJ1dCBpbnN0ZWFkIGlzICR7dHlwZW9mIGZIYW5kbGVyfWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbmZpZ3VyYXRpb25bc0hhbmRsZXJGdW5jTmFtZV0gPSBmSGFuZGxlcjtcbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gdGhlIGNoYWluaW5nIG9iamVjdCAoUmVzb3VyY2Ugb3IgUmVzb3VyY2VNZXRob2QpXG4gICAgcmV0dXJuIHRoaXo7XG59Il0sCiAgIm1hcHBpbmdzIjogIkFBVU8sU0FBUyxnQkFBZ0IsTUFBVyxlQUFvQixrQkFBMEIsVUFBa0M7QUFDdkgsTUFBSSxhQUFhLFFBQVc7QUFHeEIsUUFBSSxPQUFPLGFBQWEsY0FBYyxPQUFPLGFBQWEsVUFBVTtBQUNoRSxZQUFNLElBQUksTUFBTSxxQkFBcUIsZ0JBQWdCLGtGQUFrRixPQUFPLFFBQVEsRUFBRTtBQUFBLElBQzVKO0FBQ0Esa0JBQWMsZ0JBQWdCLElBQUk7QUFBQSxFQUN0QztBQUdBLFNBQU87QUFDWDsiLAogICJuYW1lcyI6IFtdCn0K