lakutata 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (594) hide show
  1. package/.idea/codeStyles/Project.xml +18 -0
  2. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  3. package/.idea/inspectionProfiles/Project_Default.xml +6 -0
  4. package/.idea/lakutata.iml +13 -0
  5. package/.idea/modules.xml +8 -0
  6. package/.idea/vcs.xml +6 -0
  7. package/LICENSE +21 -0
  8. package/README.md +1 -0
  9. package/build/Application-78a416de.d.ts +387 -0
  10. package/build/Application-b5e19e08.d.ts +387 -0
  11. package/build/Components.cjs +55 -0
  12. package/build/Components.d.cts +9 -0
  13. package/build/Components.d.ts +9 -0
  14. package/build/Components.js +44 -0
  15. package/build/Core.cjs +148 -0
  16. package/build/Core.d.cts +33 -0
  17. package/build/Core.d.ts +33 -0
  18. package/build/Core.js +71 -0
  19. package/build/Crypto.cjs +96 -0
  20. package/build/Crypto.d.cts +19 -0
  21. package/build/Crypto.d.ts +19 -0
  22. package/build/Crypto.js +41 -0
  23. package/build/Decorators.cjs +100 -0
  24. package/build/Decorators.d.cts +23 -0
  25. package/build/Decorators.d.ts +23 -0
  26. package/build/Decorators.js +45 -0
  27. package/build/DependencyInjectionContainer-871a6c03.d.ts +340 -0
  28. package/build/DependencyInjectionContainer-f037ac36.d.ts +340 -0
  29. package/build/Exceptions.cjs +144 -0
  30. package/build/Exceptions.d.cts +28 -0
  31. package/build/Exceptions.d.ts +28 -0
  32. package/build/Exceptions.js +37 -0
  33. package/build/Hash.cjs +223 -0
  34. package/build/Hash.d.cts +535 -0
  35. package/build/Hash.d.ts +535 -0
  36. package/build/Hash.js +10 -0
  37. package/build/Time.cjs +14 -0
  38. package/build/Time.d.cts +5 -0
  39. package/build/Time.d.ts +5 -0
  40. package/build/Time.js +5 -0
  41. package/build/TimeInput-24fced42.d.ts +243 -0
  42. package/build/TimeInput-4401fc58.d.ts +243 -0
  43. package/build/Utilities.cjs +100 -0
  44. package/build/Utilities.d.cts +212 -0
  45. package/build/Utilities.d.ts +212 -0
  46. package/build/Utilities.js +7 -0
  47. package/build/Validator.cjs +24 -0
  48. package/build/Validator.d.cts +1851 -0
  49. package/build/Validator.d.ts +1851 -0
  50. package/build/Validator.js +11 -0
  51. package/build/chunk-26TQI22I.js +196 -0
  52. package/build/chunk-27OFA7C3.js +16 -0
  53. package/build/chunk-2C2UILFN.js +23 -0
  54. package/build/chunk-2CHYQHWR.cjs +16 -0
  55. package/build/chunk-2DN35UQB.cjs +10947 -0
  56. package/build/chunk-2E4TF6LU.cjs +16 -0
  57. package/build/chunk-2PLJEW2R.js +14 -0
  58. package/build/chunk-2RW3VMNS.js +45 -0
  59. package/build/chunk-2T6JU2UH.js +14 -0
  60. package/build/chunk-3CX3GCQF.js +32 -0
  61. package/build/chunk-3JIQCDQG.cjs +25 -0
  62. package/build/chunk-3KLEN3PR.js +14 -0
  63. package/build/chunk-3LZRQPJ5.js +14 -0
  64. package/build/chunk-3NHHHZFR.cjs +870 -0
  65. package/build/chunk-4332C5BW.js +30 -0
  66. package/build/chunk-46V7GHKE.cjs +25 -0
  67. package/build/chunk-4EPPSZ7L.js +14 -0
  68. package/build/chunk-4FEEQIQ4.js +23 -0
  69. package/build/chunk-4G2ZCUBN.js +5570 -0
  70. package/build/chunk-4KTVY73U.js +15 -0
  71. package/build/chunk-4MQXSUTL.cjs +14 -0
  72. package/build/chunk-4OHSPWRQ.js +34 -0
  73. package/build/chunk-4PK4TGU4.cjs +16 -0
  74. package/build/chunk-4YXUEJSO.js +23 -0
  75. package/build/chunk-5475IFR4.cjs +16 -0
  76. package/build/chunk-5B5Z4GCR.cjs +17 -0
  77. package/build/chunk-5FPTDIKI.cjs +16 -0
  78. package/build/chunk-5NK7E2HA.js +69 -0
  79. package/build/chunk-67F5WP5Z.cjs +8 -0
  80. package/build/chunk-6BJTKEXZ.cjs +25 -0
  81. package/build/chunk-6WNLPTDY.cjs +8 -0
  82. package/build/chunk-7G7FCNEG.cjs +8 -0
  83. package/build/chunk-7IVNTVYK.cjs +16 -0
  84. package/build/chunk-7MJAWOWL.js +22896 -0
  85. package/build/chunk-7MTOK62N.js +767 -0
  86. package/build/chunk-7PADGZPI.cjs +129 -0
  87. package/build/chunk-7ZUM53G6.js +14 -0
  88. package/build/chunk-A4BYNKYF.js +42 -0
  89. package/build/chunk-A7F6LCRA.cjs +16 -0
  90. package/build/chunk-AFV3VN3X.cjs +8 -0
  91. package/build/chunk-AGHMOCC3.cjs +16 -0
  92. package/build/chunk-AHUH4FWQ.cjs +29 -0
  93. package/build/chunk-AM4YMG2S.js +6 -0
  94. package/build/chunk-ANDEVIKJ.cjs +16 -0
  95. package/build/chunk-APETX7ZT.cjs +16 -0
  96. package/build/chunk-ASMC7EUP.js +6 -0
  97. package/build/chunk-BDCRHGKN.js +6 -0
  98. package/build/chunk-BDJXMO44.js +2920 -0
  99. package/build/chunk-BE7ICF5R.js +32 -0
  100. package/build/chunk-BEDKPRVX.cjs +17 -0
  101. package/build/chunk-BFE66ADZ.cjs +34 -0
  102. package/build/chunk-BKCT2HSQ.js +178 -0
  103. package/build/chunk-BMNC4W46.js +20 -0
  104. package/build/chunk-BO7Y6HNS.cjs +176 -0
  105. package/build/chunk-D4H35ART.cjs +53 -0
  106. package/build/chunk-D5DE7Z4J.js +29 -0
  107. package/build/chunk-DHSSJJMD.cjs +25 -0
  108. package/build/chunk-DIMOR6NE.cjs +8 -0
  109. package/build/chunk-DN5TSX6S.cjs +244 -0
  110. package/build/chunk-EEH5LCBP.cjs +16 -0
  111. package/build/chunk-EFYDUUXT.cjs +92 -0
  112. package/build/chunk-ENJSEFE4.js +14 -0
  113. package/build/chunk-EPYJVQHQ.js +6 -0
  114. package/build/chunk-EUVLTNDV.js +32 -0
  115. package/build/chunk-EXQVCESB.cjs +20 -0
  116. package/build/chunk-EYPPC6HP.js +18 -0
  117. package/build/chunk-F5NKGQDL.cjs +16 -0
  118. package/build/chunk-F7RNH2H2.js +266 -0
  119. package/build/chunk-FCTV4OB7.cjs +50 -0
  120. package/build/chunk-FHEXUE67.js +29 -0
  121. package/build/chunk-FJP3KNXK.js +23 -0
  122. package/build/chunk-FJQSLRIP.js +14 -0
  123. package/build/chunk-FSFWPTIC.js +6 -0
  124. package/build/chunk-FTKFMQHJ.cjs +16 -0
  125. package/build/chunk-FW26MPE4.js +69 -0
  126. package/build/chunk-FZNRGZGE.js +6372 -0
  127. package/build/chunk-G7EDOLQ7.cjs +100 -0
  128. package/build/chunk-GGY7LCMQ.cjs +73 -0
  129. package/build/chunk-GLWUJIMW.cjs +8 -0
  130. package/build/chunk-GZ5KN2PE.js +6 -0
  131. package/build/chunk-HBPRX3WA.cjs +202 -0
  132. package/build/chunk-HJAQ6WJM.cjs +288 -0
  133. package/build/chunk-HJSJA5CF.js +14 -0
  134. package/build/chunk-HKAY7FWM.js +28 -0
  135. package/build/chunk-HMKTNRQF.js +14 -0
  136. package/build/chunk-HODDA5D5.js +199 -0
  137. package/build/chunk-HPKJUFTM.js +14 -0
  138. package/build/chunk-HWCTWIVZ.cjs +30 -0
  139. package/build/chunk-HXWC4YN6.cjs +22908 -0
  140. package/build/chunk-HZJ7XFHQ.cjs +8 -0
  141. package/build/chunk-I5TGKTX6.js +18 -0
  142. package/build/chunk-I7J6V3EU.cjs +34 -0
  143. package/build/chunk-IKWXYUGY.js +14 -0
  144. package/build/chunk-IYGGR65W.cjs +16 -0
  145. package/build/chunk-J6RXNX2K.js +174 -0
  146. package/build/chunk-JAEEMFEZ.cjs +24 -0
  147. package/build/chunk-JFOMNL5I.cjs +22 -0
  148. package/build/chunk-JPV2PUHF.cjs +8 -0
  149. package/build/chunk-JR726PDZ.cjs +70 -0
  150. package/build/chunk-JTKOYDJB.js +5914 -0
  151. package/build/chunk-JU53NOVA.cjs +31 -0
  152. package/build/chunk-JVSBYHUY.js +10944 -0
  153. package/build/chunk-JYBISTRN.cjs +25 -0
  154. package/build/chunk-K2ALA7QI.js +12 -0
  155. package/build/chunk-KG6DPM4B.js +14 -0
  156. package/build/chunk-KNSBLLL2.cjs +32 -0
  157. package/build/chunk-KNTGBUSY.js +6 -0
  158. package/build/chunk-KWOHVRRL.js +6 -0
  159. package/build/chunk-L3IVYIVA.js +23 -0
  160. package/build/chunk-LBL5XNWX.js +221 -0
  161. package/build/chunk-LBOBUFWZ.js +6 -0
  162. package/build/chunk-LEJXJUBE.js +6 -0
  163. package/build/chunk-LJTCXKC4.js +242 -0
  164. package/build/chunk-MBKTJ3KM.cjs +118 -0
  165. package/build/chunk-MDE5SRLT.cjs +16 -0
  166. package/build/chunk-MEKICSEL.js +22 -0
  167. package/build/chunk-MNDBRDT2.cjs +608 -0
  168. package/build/chunk-MSWZLYS7.cjs +5916 -0
  169. package/build/chunk-MT2OB376.js +14 -0
  170. package/build/chunk-MVWB4XDJ.js +14 -0
  171. package/build/chunk-MXAAAL2S.js +53 -0
  172. package/build/chunk-N37KV2VV.cjs +199 -0
  173. package/build/chunk-NZ5IZMM5.cjs +2922 -0
  174. package/build/chunk-O2NOYN65.js +54 -0
  175. package/build/chunk-OAD22QZQ.js +6 -0
  176. package/build/chunk-OIFILR4I.js +125 -0
  177. package/build/chunk-OJGBPS2B.cjs +16 -0
  178. package/build/chunk-OMPATIMZ.cjs +71 -0
  179. package/build/chunk-P3Z7ZEGJ.cjs +18 -0
  180. package/build/chunk-P6BBXCBD.cjs +6425 -0
  181. package/build/chunk-PE4C2TIO.cjs +16 -0
  182. package/build/chunk-PF2WAZLH.cjs +52 -0
  183. package/build/chunk-PFFTGOAR.cjs +25 -0
  184. package/build/chunk-PFUZLHWJ.cjs +25 -0
  185. package/build/chunk-POE7A7NF.cjs +180 -0
  186. package/build/chunk-PQSDA5BN.js +50 -0
  187. package/build/chunk-PR5TPAGH.js +14 -0
  188. package/build/chunk-PXMWVOKK.cjs +16 -0
  189. package/build/chunk-PZ5OJC4I.cjs +16 -0
  190. package/build/chunk-Q4LNTPEI.cjs +34 -0
  191. package/build/chunk-QCA5YGYV.js +14 -0
  192. package/build/chunk-QGGML4PP.js +17 -0
  193. package/build/chunk-QHW273SN.js +32 -0
  194. package/build/chunk-QJJRQMA6.cjs +8 -0
  195. package/build/chunk-QKB76MIV.cjs +769 -0
  196. package/build/chunk-QKVPGRI5.cjs +8 -0
  197. package/build/chunk-QME47CJL.cjs +8 -0
  198. package/build/chunk-QNJ6XBYQ.js +14 -0
  199. package/build/chunk-QWYKUNU5.js +14 -0
  200. package/build/chunk-QXTBP6TW.js +116 -0
  201. package/build/chunk-RH3LAIQS.js +32 -0
  202. package/build/chunk-RMAXG5F7.js +118 -0
  203. package/build/chunk-RUHAPGDE.js +14 -0
  204. package/build/chunk-S4KA3ZGO.js +6 -0
  205. package/build/chunk-SAGMV3YX.cjs +16 -0
  206. package/build/chunk-SCWEQ5JA.cjs +34 -0
  207. package/build/chunk-SEKBDIJH.cjs +16 -0
  208. package/build/chunk-SGWWTKLW.cjs +16 -0
  209. package/build/chunk-SWCU6OID.cjs +61 -0
  210. package/build/chunk-T4C7UJEZ.js +29 -0
  211. package/build/chunk-TBWIKIS3.cjs +8 -0
  212. package/build/chunk-TS74DN3N.cjs +229 -0
  213. package/build/chunk-TXTNUC7S.cjs +16 -0
  214. package/build/chunk-UEGDBJEG.cjs +127 -0
  215. package/build/chunk-UR2ZK7MI.cjs +16 -0
  216. package/build/chunk-VAOR6JOP.js +14 -0
  217. package/build/chunk-VELZ3KJY.cjs +45 -0
  218. package/build/chunk-VHTAHAD6.cjs +34 -0
  219. package/build/chunk-VISA22LF.js +14 -0
  220. package/build/chunk-VOFRWVGM.js +23 -0
  221. package/build/chunk-VPRNM6FU.cjs +118 -0
  222. package/build/chunk-VTFNEUOF.js +14 -0
  223. package/build/chunk-VVNU27G2.js +868 -0
  224. package/build/chunk-W3TQER3B.cjs +31 -0
  225. package/build/chunk-WINISBV4.js +70 -0
  226. package/build/chunk-WSEZ7DZV.js +14 -0
  227. package/build/chunk-WW57G6RG.js +124 -0
  228. package/build/chunk-WYJCE3KY.cjs +5593 -0
  229. package/build/chunk-WZI5UPER.cjs +61 -0
  230. package/build/chunk-WZZF2IEV.js +14 -0
  231. package/build/chunk-X4AIZSIY.cjs +47 -0
  232. package/build/chunk-XO6M5AYN.js +585 -0
  233. package/build/chunk-XWP76C6E.js +25 -0
  234. package/build/chunk-Y7O5SCF6.cjs +16 -0
  235. package/build/chunk-YEBPQG7X.js +96 -0
  236. package/build/chunk-YT4CYDJ3.js +14 -0
  237. package/build/chunk-ZG3PHRVQ.cjs +20 -0
  238. package/build/chunk-ZG7QF5S2.cjs +16 -0
  239. package/build/chunk-ZJYLWSBE.js +90 -0
  240. package/build/chunk-ZYBMNLGI.js +48 -0
  241. package/build/constants/DefaultValue.cjs +14 -0
  242. package/build/constants/DefaultValue.d.cts +9 -0
  243. package/build/constants/DefaultValue.d.ts +9 -0
  244. package/build/constants/DefaultValue.js +5 -0
  245. package/build/constants/MetadataKey.cjs +114 -0
  246. package/build/constants/MetadataKey.d.cts +30 -0
  247. package/build/constants/MetadataKey.d.ts +30 -0
  248. package/build/constants/MetadataKey.js +5 -0
  249. package/build/decorators/ControllerDecorators.cjs +21 -0
  250. package/build/decorators/ControllerDecorators.d.cts +32 -0
  251. package/build/decorators/ControllerDecorators.d.ts +32 -0
  252. package/build/decorators/ControllerDecorators.js +12 -0
  253. package/build/decorators/DependencyInjectionDecorators.cjs +78 -0
  254. package/build/decorators/DependencyInjectionDecorators.d.cts +75 -0
  255. package/build/decorators/DependencyInjectionDecorators.d.ts +75 -0
  256. package/build/decorators/DependencyInjectionDecorators.js +41 -0
  257. package/build/decorators/ValidationDecorators.cjs +35 -0
  258. package/build/decorators/ValidationDecorators.d.cts +36 -0
  259. package/build/decorators/ValidationDecorators.d.ts +36 -0
  260. package/build/decorators/ValidationDecorators.js +14 -0
  261. package/build/exceptions/DependencyInjectionException.cjs +18 -0
  262. package/build/exceptions/DependencyInjectionException.d.cts +8 -0
  263. package/build/exceptions/DependencyInjectionException.d.ts +8 -0
  264. package/build/exceptions/DependencyInjectionException.js +9 -0
  265. package/build/exceptions/InvalidConfigurableValueException.cjs +18 -0
  266. package/build/exceptions/InvalidConfigurableValueException.d.cts +8 -0
  267. package/build/exceptions/InvalidConfigurableValueException.d.ts +8 -0
  268. package/build/exceptions/InvalidConfigurableValueException.js +9 -0
  269. package/build/exceptions/InvalidDTOValueException.cjs +18 -0
  270. package/build/exceptions/InvalidDTOValueException.d.cts +8 -0
  271. package/build/exceptions/InvalidDTOValueException.d.ts +8 -0
  272. package/build/exceptions/InvalidDTOValueException.js +9 -0
  273. package/build/exceptions/InvalidGlobStringException.cjs +18 -0
  274. package/build/exceptions/InvalidGlobStringException.d.cts +8 -0
  275. package/build/exceptions/InvalidGlobStringException.d.ts +8 -0
  276. package/build/exceptions/InvalidGlobStringException.js +9 -0
  277. package/build/exceptions/MethodNotFoundException.cjs +18 -0
  278. package/build/exceptions/MethodNotFoundException.d.cts +8 -0
  279. package/build/exceptions/MethodNotFoundException.d.ts +8 -0
  280. package/build/exceptions/MethodNotFoundException.js +9 -0
  281. package/build/exceptions/NotSupportHashException.cjs +18 -0
  282. package/build/exceptions/NotSupportHashException.d.cts +8 -0
  283. package/build/exceptions/NotSupportHashException.d.ts +8 -0
  284. package/build/exceptions/NotSupportHashException.js +9 -0
  285. package/build/exceptions/controller/DuplicateControllerActionPatternException.cjs +18 -0
  286. package/build/exceptions/controller/DuplicateControllerActionPatternException.d.cts +8 -0
  287. package/build/exceptions/controller/DuplicateControllerActionPatternException.d.ts +8 -0
  288. package/build/exceptions/controller/DuplicateControllerActionPatternException.js +9 -0
  289. package/build/exceptions/controller/DynamicRegisterControllerNotAllowException.cjs +18 -0
  290. package/build/exceptions/controller/DynamicRegisterControllerNotAllowException.d.cts +8 -0
  291. package/build/exceptions/controller/DynamicRegisterControllerNotAllowException.d.ts +8 -0
  292. package/build/exceptions/controller/DynamicRegisterControllerNotAllowException.js +9 -0
  293. package/build/exceptions/controller/NoMatchedControllerActionPatternException.cjs +18 -0
  294. package/build/exceptions/controller/NoMatchedControllerActionPatternException.d.cts +8 -0
  295. package/build/exceptions/controller/NoMatchedControllerActionPatternException.d.ts +8 -0
  296. package/build/exceptions/controller/NoMatchedControllerActionPatternException.js +9 -0
  297. package/build/exceptions/crypto/asymmetric/AsymmetricDecryptException.cjs +18 -0
  298. package/build/exceptions/crypto/asymmetric/AsymmetricDecryptException.d.cts +8 -0
  299. package/build/exceptions/crypto/asymmetric/AsymmetricDecryptException.d.ts +8 -0
  300. package/build/exceptions/crypto/asymmetric/AsymmetricDecryptException.js +9 -0
  301. package/build/exceptions/crypto/asymmetric/AsymmetricEncryptException.cjs +18 -0
  302. package/build/exceptions/crypto/asymmetric/AsymmetricEncryptException.d.cts +8 -0
  303. package/build/exceptions/crypto/asymmetric/AsymmetricEncryptException.d.ts +8 -0
  304. package/build/exceptions/crypto/asymmetric/AsymmetricEncryptException.js +9 -0
  305. package/build/exceptions/crypto/asymmetric/AsymmetricSignException.cjs +18 -0
  306. package/build/exceptions/crypto/asymmetric/AsymmetricSignException.d.cts +8 -0
  307. package/build/exceptions/crypto/asymmetric/AsymmetricSignException.d.ts +8 -0
  308. package/build/exceptions/crypto/asymmetric/AsymmetricSignException.js +9 -0
  309. package/build/exceptions/crypto/asymmetric/AsymmetricVerifyException.cjs +18 -0
  310. package/build/exceptions/crypto/asymmetric/AsymmetricVerifyException.d.cts +8 -0
  311. package/build/exceptions/crypto/asymmetric/AsymmetricVerifyException.d.ts +8 -0
  312. package/build/exceptions/crypto/asymmetric/AsymmetricVerifyException.js +9 -0
  313. package/build/exceptions/crypto/asymmetric/InvalidAsymmetricEncryptKeyPairException.cjs +18 -0
  314. package/build/exceptions/crypto/asymmetric/InvalidAsymmetricEncryptKeyPairException.d.cts +8 -0
  315. package/build/exceptions/crypto/asymmetric/InvalidAsymmetricEncryptKeyPairException.d.ts +8 -0
  316. package/build/exceptions/crypto/asymmetric/InvalidAsymmetricEncryptKeyPairException.js +9 -0
  317. package/build/exceptions/crypto/asymmetric/InvalidAsymmetricEncryptPrivateKeyException.cjs +18 -0
  318. package/build/exceptions/crypto/asymmetric/InvalidAsymmetricEncryptPrivateKeyException.d.cts +8 -0
  319. package/build/exceptions/crypto/asymmetric/InvalidAsymmetricEncryptPrivateKeyException.d.ts +8 -0
  320. package/build/exceptions/crypto/asymmetric/InvalidAsymmetricEncryptPrivateKeyException.js +9 -0
  321. package/build/exceptions/crypto/asymmetric/InvalidAsymmetricEncryptPublicKeyException.cjs +18 -0
  322. package/build/exceptions/crypto/asymmetric/InvalidAsymmetricEncryptPublicKeyException.d.cts +8 -0
  323. package/build/exceptions/crypto/asymmetric/InvalidAsymmetricEncryptPublicKeyException.d.ts +8 -0
  324. package/build/exceptions/crypto/asymmetric/InvalidAsymmetricEncryptPublicKeyException.js +9 -0
  325. package/build/exceptions/crypto/asymmetric/NoAsymmetricEncryptPrivateKeyException.cjs +18 -0
  326. package/build/exceptions/crypto/asymmetric/NoAsymmetricEncryptPrivateKeyException.d.cts +8 -0
  327. package/build/exceptions/crypto/asymmetric/NoAsymmetricEncryptPrivateKeyException.d.ts +8 -0
  328. package/build/exceptions/crypto/asymmetric/NoAsymmetricEncryptPrivateKeyException.js +9 -0
  329. package/build/exceptions/crypto/asymmetric/NoAsymmetricEncryptPublicKeyException.cjs +18 -0
  330. package/build/exceptions/crypto/asymmetric/NoAsymmetricEncryptPublicKeyException.d.cts +8 -0
  331. package/build/exceptions/crypto/asymmetric/NoAsymmetricEncryptPublicKeyException.d.ts +8 -0
  332. package/build/exceptions/crypto/asymmetric/NoAsymmetricEncryptPublicKeyException.js +9 -0
  333. package/build/exceptions/crypto/symmetric/InvalidSymmetricCipherIVLengthException.cjs +18 -0
  334. package/build/exceptions/crypto/symmetric/InvalidSymmetricCipherIVLengthException.d.cts +8 -0
  335. package/build/exceptions/crypto/symmetric/InvalidSymmetricCipherIVLengthException.d.ts +8 -0
  336. package/build/exceptions/crypto/symmetric/InvalidSymmetricCipherIVLengthException.js +9 -0
  337. package/build/exceptions/crypto/symmetric/InvalidSymmetricCipherKeyLengthException.cjs +18 -0
  338. package/build/exceptions/crypto/symmetric/InvalidSymmetricCipherKeyLengthException.d.cts +8 -0
  339. package/build/exceptions/crypto/symmetric/InvalidSymmetricCipherKeyLengthException.d.ts +8 -0
  340. package/build/exceptions/crypto/symmetric/InvalidSymmetricCipherKeyLengthException.js +9 -0
  341. package/build/exceptions/crypto/symmetric/NotSupportCipherException.cjs +18 -0
  342. package/build/exceptions/crypto/symmetric/NotSupportCipherException.d.cts +8 -0
  343. package/build/exceptions/crypto/symmetric/NotSupportCipherException.d.ts +8 -0
  344. package/build/exceptions/crypto/symmetric/NotSupportCipherException.js +9 -0
  345. package/build/exceptions/crypto/symmetric/SymmetricDecryptException.cjs +18 -0
  346. package/build/exceptions/crypto/symmetric/SymmetricDecryptException.d.cts +8 -0
  347. package/build/exceptions/crypto/symmetric/SymmetricDecryptException.d.ts +8 -0
  348. package/build/exceptions/crypto/symmetric/SymmetricDecryptException.js +9 -0
  349. package/build/exceptions/crypto/symmetric/SymmetricEncryptException.cjs +18 -0
  350. package/build/exceptions/crypto/symmetric/SymmetricEncryptException.d.cts +8 -0
  351. package/build/exceptions/crypto/symmetric/SymmetricEncryptException.d.ts +8 -0
  352. package/build/exceptions/crypto/symmetric/SymmetricEncryptException.js +9 -0
  353. package/build/exceptions/validation/InvalidMethodAcceptException.cjs +18 -0
  354. package/build/exceptions/validation/InvalidMethodAcceptException.d.cts +8 -0
  355. package/build/exceptions/validation/InvalidMethodAcceptException.d.ts +8 -0
  356. package/build/exceptions/validation/InvalidMethodAcceptException.js +9 -0
  357. package/build/exceptions/validation/InvalidMethodReturnException.cjs +18 -0
  358. package/build/exceptions/validation/InvalidMethodReturnException.d.cts +8 -0
  359. package/build/exceptions/validation/InvalidMethodReturnException.d.ts +8 -0
  360. package/build/exceptions/validation/InvalidMethodReturnException.js +9 -0
  361. package/build/exceptions/validation/InvalidValueException.cjs +18 -0
  362. package/build/exceptions/validation/InvalidValueException.d.cts +8 -0
  363. package/build/exceptions/validation/InvalidValueException.d.ts +8 -0
  364. package/build/exceptions/validation/InvalidValueException.js +9 -0
  365. package/build/index.d-e5279fea.d.ts +872 -0
  366. package/build/interfaces/IConstructor.cjs +7 -0
  367. package/build/interfaces/IConstructor.d.cts +6 -0
  368. package/build/interfaces/IConstructor.d.ts +6 -0
  369. package/build/interfaces/IConstructor.js +4 -0
  370. package/build/interfaces/ILogger.cjs +7 -0
  371. package/build/interfaces/ILogger.d.cts +22 -0
  372. package/build/interfaces/ILogger.d.ts +22 -0
  373. package/build/interfaces/ILogger.js +4 -0
  374. package/build/interfaces/IPatRun.cjs +7 -0
  375. package/build/interfaces/IPatRun.d.cts +12 -0
  376. package/build/interfaces/IPatRun.d.ts +12 -0
  377. package/build/interfaces/IPatRun.js +4 -0
  378. package/build/interfaces/ISortArrayOptions.cjs +7 -0
  379. package/build/interfaces/ISortArrayOptions.d.cts +12 -0
  380. package/build/interfaces/ISortArrayOptions.d.ts +12 -0
  381. package/build/interfaces/ISortArrayOptions.js +4 -0
  382. package/build/interfaces/ISortObjectOptions.cjs +7 -0
  383. package/build/interfaces/ISortObjectOptions.d.cts +6 -0
  384. package/build/interfaces/ISortObjectOptions.d.ts +6 -0
  385. package/build/interfaces/ISortObjectOptions.js +4 -0
  386. package/build/lib/Application.cjs +50 -0
  387. package/build/lib/Application.d.cts +20 -0
  388. package/build/lib/Application.d.ts +20 -0
  389. package/build/lib/Application.js +41 -0
  390. package/build/lib/base/BaseObject.cjs +50 -0
  391. package/build/lib/base/BaseObject.d.cts +112 -0
  392. package/build/lib/base/BaseObject.d.ts +112 -0
  393. package/build/lib/base/BaseObject.js +41 -0
  394. package/build/lib/base/Component.cjs +50 -0
  395. package/build/lib/base/Component.d.cts +116 -0
  396. package/build/lib/base/Component.d.ts +116 -0
  397. package/build/lib/base/Component.js +41 -0
  398. package/build/lib/base/Container.cjs +50 -0
  399. package/build/lib/base/Container.d.cts +20 -0
  400. package/build/lib/base/Container.d.ts +20 -0
  401. package/build/lib/base/Container.js +41 -0
  402. package/build/lib/base/Controller.cjs +50 -0
  403. package/build/lib/base/Controller.d.cts +20 -0
  404. package/build/lib/base/Controller.d.ts +20 -0
  405. package/build/lib/base/Controller.js +41 -0
  406. package/build/lib/base/DTO.cjs +23 -0
  407. package/build/lib/base/DTO.d.cts +59 -0
  408. package/build/lib/base/DTO.d.ts +59 -0
  409. package/build/lib/base/DTO.js +14 -0
  410. package/build/lib/base/Model.cjs +51 -0
  411. package/build/lib/base/Model.d.cts +30 -0
  412. package/build/lib/base/Model.d.ts +30 -0
  413. package/build/lib/base/Model.js +42 -0
  414. package/build/lib/base/Module.cjs +50 -0
  415. package/build/lib/base/Module.d.cts +20 -0
  416. package/build/lib/base/Module.d.ts +20 -0
  417. package/build/lib/base/Module.js +41 -0
  418. package/build/lib/base/abstracts/AsymmetricEncryption.cjs +27 -0
  419. package/build/lib/base/abstracts/AsymmetricEncryption.d.cts +172 -0
  420. package/build/lib/base/abstracts/AsymmetricEncryption.d.ts +172 -0
  421. package/build/lib/base/abstracts/AsymmetricEncryption.js +18 -0
  422. package/build/lib/base/abstracts/Exception.cjs +17 -0
  423. package/build/lib/base/abstracts/Exception.d.cts +23 -0
  424. package/build/lib/base/abstracts/Exception.d.ts +23 -0
  425. package/build/lib/base/abstracts/Exception.js +8 -0
  426. package/build/lib/base/abstracts/Interval.cjs +51 -0
  427. package/build/lib/base/abstracts/Interval.d.cts +76 -0
  428. package/build/lib/base/abstracts/Interval.d.ts +76 -0
  429. package/build/lib/base/abstracts/Interval.js +42 -0
  430. package/build/lib/base/abstracts/SymmetricEncryption.cjs +23 -0
  431. package/build/lib/base/abstracts/SymmetricEncryption.d.cts +149 -0
  432. package/build/lib/base/abstracts/SymmetricEncryption.d.ts +149 -0
  433. package/build/lib/base/abstracts/SymmetricEncryption.js +14 -0
  434. package/build/lib/base/async-constructor/Append.cjs +14 -0
  435. package/build/lib/base/async-constructor/Append.d.cts +5 -0
  436. package/build/lib/base/async-constructor/Append.d.ts +5 -0
  437. package/build/lib/base/async-constructor/Append.js +5 -0
  438. package/build/lib/base/async-constructor/AsyncConstructor.cjs +15 -0
  439. package/build/lib/base/async-constructor/AsyncConstructor.d.cts +7 -0
  440. package/build/lib/base/async-constructor/AsyncConstructor.d.ts +7 -0
  441. package/build/lib/base/async-constructor/AsyncConstructor.js +6 -0
  442. package/build/lib/components/Formatter.cjs +50 -0
  443. package/build/lib/components/Formatter.d.cts +203 -0
  444. package/build/lib/components/Formatter.d.ts +203 -0
  445. package/build/lib/components/Formatter.js +41 -0
  446. package/build/lib/components/Logger.cjs +50 -0
  447. package/build/lib/components/Logger.d.cts +61 -0
  448. package/build/lib/components/Logger.d.ts +61 -0
  449. package/build/lib/components/Logger.js +41 -0
  450. package/build/lib/crypto/RSA.cjs +28 -0
  451. package/build/lib/crypto/RSA.d.cts +61 -0
  452. package/build/lib/crypto/RSA.d.ts +61 -0
  453. package/build/lib/crypto/RSA.js +19 -0
  454. package/build/lib/crypto/SM2.cjs +28 -0
  455. package/build/lib/crypto/SM2.d.cts +47 -0
  456. package/build/lib/crypto/SM2.d.ts +47 -0
  457. package/build/lib/crypto/SM2.js +19 -0
  458. package/build/lib/crypto/aes/AES128.cjs +25 -0
  459. package/build/lib/crypto/aes/AES128.d.cts +14 -0
  460. package/build/lib/crypto/aes/AES128.d.ts +14 -0
  461. package/build/lib/crypto/aes/AES128.js +16 -0
  462. package/build/lib/crypto/aes/AES192.cjs +25 -0
  463. package/build/lib/crypto/aes/AES192.d.cts +14 -0
  464. package/build/lib/crypto/aes/AES192.d.ts +14 -0
  465. package/build/lib/crypto/aes/AES192.js +16 -0
  466. package/build/lib/crypto/aes/AES256.cjs +25 -0
  467. package/build/lib/crypto/aes/AES256.d.cts +14 -0
  468. package/build/lib/crypto/aes/AES256.d.ts +14 -0
  469. package/build/lib/crypto/aes/AES256.js +16 -0
  470. package/build/lib/crypto/aria/ARIA128.cjs +24 -0
  471. package/build/lib/crypto/aria/ARIA128.d.cts +13 -0
  472. package/build/lib/crypto/aria/ARIA128.d.ts +13 -0
  473. package/build/lib/crypto/aria/ARIA128.js +15 -0
  474. package/build/lib/crypto/aria/ARIA192.cjs +24 -0
  475. package/build/lib/crypto/aria/ARIA192.d.cts +13 -0
  476. package/build/lib/crypto/aria/ARIA192.d.ts +13 -0
  477. package/build/lib/crypto/aria/ARIA192.js +15 -0
  478. package/build/lib/crypto/aria/ARIA256.cjs +24 -0
  479. package/build/lib/crypto/aria/ARIA256.d.cts +13 -0
  480. package/build/lib/crypto/aria/ARIA256.d.ts +13 -0
  481. package/build/lib/crypto/aria/ARIA256.js +15 -0
  482. package/build/lib/crypto/camellia/CAMELLIA128.cjs +24 -0
  483. package/build/lib/crypto/camellia/CAMELLIA128.d.cts +13 -0
  484. package/build/lib/crypto/camellia/CAMELLIA128.d.ts +13 -0
  485. package/build/lib/crypto/camellia/CAMELLIA128.js +15 -0
  486. package/build/lib/crypto/camellia/CAMELLIA192.cjs +24 -0
  487. package/build/lib/crypto/camellia/CAMELLIA192.d.cts +13 -0
  488. package/build/lib/crypto/camellia/CAMELLIA192.d.ts +13 -0
  489. package/build/lib/crypto/camellia/CAMELLIA192.js +15 -0
  490. package/build/lib/crypto/camellia/CAMELLIA256.cjs +24 -0
  491. package/build/lib/crypto/camellia/CAMELLIA256.d.cts +13 -0
  492. package/build/lib/crypto/camellia/CAMELLIA256.d.ts +13 -0
  493. package/build/lib/crypto/camellia/CAMELLIA256.js +15 -0
  494. package/build/lib/crypto/des/DES.cjs +25 -0
  495. package/build/lib/crypto/des/DES.d.cts +14 -0
  496. package/build/lib/crypto/des/DES.d.ts +14 -0
  497. package/build/lib/crypto/des/DES.js +16 -0
  498. package/build/lib/crypto/des/TripleDES.cjs +25 -0
  499. package/build/lib/crypto/des/TripleDES.d.cts +14 -0
  500. package/build/lib/crypto/des/TripleDES.d.ts +14 -0
  501. package/build/lib/crypto/des/TripleDES.js +16 -0
  502. package/build/lib/ioc/DependencyInjectionContainer.cjs +29 -0
  503. package/build/lib/ioc/DependencyInjectionContainer.d.cts +4 -0
  504. package/build/lib/ioc/DependencyInjectionContainer.d.ts +4 -0
  505. package/build/lib/ioc/DependencyInjectionContainer.js +20 -0
  506. package/build/lib/ioc/Errors.cjs +27 -0
  507. package/build/lib/ioc/Errors.d.cts +53 -0
  508. package/build/lib/ioc/Errors.d.ts +53 -0
  509. package/build/lib/ioc/Errors.js +10 -0
  510. package/build/lib/ioc/FunctionTokenizer.cjs +18 -0
  511. package/build/lib/ioc/FunctionTokenizer.d.cts +33 -0
  512. package/build/lib/ioc/FunctionTokenizer.d.ts +33 -0
  513. package/build/lib/ioc/FunctionTokenizer.js +5 -0
  514. package/build/lib/ioc/InjectionMode.cjs +14 -0
  515. package/build/lib/ioc/InjectionMode.d.cts +12 -0
  516. package/build/lib/ioc/InjectionMode.d.ts +12 -0
  517. package/build/lib/ioc/InjectionMode.js +5 -0
  518. package/build/lib/ioc/Lifetime.cjs +14 -0
  519. package/build/lib/ioc/Lifetime.d.cts +12 -0
  520. package/build/lib/ioc/Lifetime.d.ts +12 -0
  521. package/build/lib/ioc/Lifetime.js +5 -0
  522. package/build/lib/ioc/ListModules.cjs +17 -0
  523. package/build/lib/ioc/ListModules.d.cts +4 -0
  524. package/build/lib/ioc/ListModules.d.ts +4 -0
  525. package/build/lib/ioc/ListModules.js +8 -0
  526. package/build/lib/ioc/LoadModuleNative.cjs +14 -0
  527. package/build/lib/ioc/LoadModuleNative.d.cts +9 -0
  528. package/build/lib/ioc/LoadModuleNative.d.ts +9 -0
  529. package/build/lib/ioc/LoadModuleNative.js +5 -0
  530. package/build/lib/ioc/LoadModules.cjs +26 -0
  531. package/build/lib/ioc/LoadModules.d.cts +4 -0
  532. package/build/lib/ioc/LoadModules.d.ts +4 -0
  533. package/build/lib/ioc/LoadModules.js +17 -0
  534. package/build/lib/ioc/ParamParser.cjs +15 -0
  535. package/build/lib/ioc/ParamParser.d.cts +25 -0
  536. package/build/lib/ioc/ParamParser.d.ts +25 -0
  537. package/build/lib/ioc/ParamParser.js +6 -0
  538. package/build/lib/ioc/Resolvers.cjs +49 -0
  539. package/build/lib/ioc/Resolvers.d.cts +4 -0
  540. package/build/lib/ioc/Resolvers.d.ts +4 -0
  541. package/build/lib/ioc/Resolvers.js +16 -0
  542. package/build/lib/ioc/Utils.cjs +35 -0
  543. package/build/lib/ioc/Utils.d.cts +38 -0
  544. package/build/lib/ioc/Utils.d.ts +38 -0
  545. package/build/lib/ioc/Utils.js +6 -0
  546. package/build/options/ApplicationOptions.cjs +50 -0
  547. package/build/options/ApplicationOptions.d.cts +20 -0
  548. package/build/options/ApplicationOptions.d.ts +20 -0
  549. package/build/options/ApplicationOptions.js +41 -0
  550. package/build/options/LoadComponentOptions.cjs +50 -0
  551. package/build/options/LoadComponentOptions.d.cts +22 -0
  552. package/build/options/LoadComponentOptions.d.ts +22 -0
  553. package/build/options/LoadComponentOptions.js +41 -0
  554. package/build/options/LoadEntryClassOptions.cjs +50 -0
  555. package/build/options/LoadEntryClassOptions.d.cts +16 -0
  556. package/build/options/LoadEntryClassOptions.d.ts +16 -0
  557. package/build/options/LoadEntryClassOptions.js +41 -0
  558. package/build/options/LoadEntryCommonOptions.cjs +27 -0
  559. package/build/options/LoadEntryCommonOptions.d.cts +13 -0
  560. package/build/options/LoadEntryCommonOptions.d.ts +13 -0
  561. package/build/options/LoadEntryCommonOptions.js +18 -0
  562. package/build/options/LoadModuleOptions.cjs +50 -0
  563. package/build/options/LoadModuleOptions.d.cts +20 -0
  564. package/build/options/LoadModuleOptions.d.ts +20 -0
  565. package/build/options/LoadModuleOptions.js +41 -0
  566. package/build/options/ModuleOptions.cjs +50 -0
  567. package/build/options/ModuleOptions.d.cts +20 -0
  568. package/build/options/ModuleOptions.d.ts +20 -0
  569. package/build/options/ModuleOptions.js +41 -0
  570. package/build/types/AsyncFunction.cjs +7 -0
  571. package/build/types/AsyncFunction.d.cts +3 -0
  572. package/build/types/AsyncFunction.d.ts +3 -0
  573. package/build/types/AsyncFunction.js +4 -0
  574. package/build/types/ControllerActionMapItem.cjs +7 -0
  575. package/build/types/ControllerActionMapItem.d.cts +20 -0
  576. package/build/types/ControllerActionMapItem.d.ts +20 -0
  577. package/build/types/ControllerActionMapItem.js +4 -0
  578. package/build/types/InjectionProperties.cjs +7 -0
  579. package/build/types/InjectionProperties.d.cts +3 -0
  580. package/build/types/InjectionProperties.d.ts +3 -0
  581. package/build/types/InjectionProperties.js +4 -0
  582. package/build/types/TimeInput.cjs +7 -0
  583. package/build/types/TimeInput.d.cts +5 -0
  584. package/build/types/TimeInput.d.ts +5 -0
  585. package/build/types/TimeInput.js +4 -0
  586. package/build/types/TimeObject.cjs +7 -0
  587. package/build/types/TimeObject.d.cts +11 -0
  588. package/build/types/TimeObject.d.ts +11 -0
  589. package/build/types/TimeObject.js +4 -0
  590. package/build/types/UnitOfTime.cjs +7 -0
  591. package/build/types/UnitOfTime.d.cts +14 -0
  592. package/build/types/UnitOfTime.d.ts +14 -0
  593. package/build/types/UnitOfTime.js +4 -0
  594. package/package.json +145 -0
@@ -0,0 +1,266 @@
1
+ import { listModules } from './chunk-4G2ZCUBN.js';
2
+ import { importModule } from './chunk-K2ALA7QI.js';
3
+ import { loadModules } from './chunk-OIFILR4I.js';
4
+ import { asClass, asFunction } from './chunk-LBL5XNWX.js';
5
+ import { last, nameValueToObject, isClass } from './chunk-O2NOYN65.js';
6
+ import { DependencyInjectionResolutionError, DependencyInjectionTypeError } from './chunk-YEBPQG7X.js';
7
+ import { InjectionMode } from './chunk-EYPPC6HP.js';
8
+ import { Lifetime } from './chunk-MEKICSEL.js';
9
+ import { DI_CONTAINER_CREATOR_CONSTRUCTOR, DI_TARGET_CONSTRUCTOR_CONFIGURABLE_OBJECT_NAME } from './chunk-4OHSPWRQ.js';
10
+ import { init_esm_shims, __name, __require } from './chunk-5NK7E2HA.js';
11
+ import * as util from 'util';
12
+
13
+ // src/lib/ioc/DependencyInjectionContainer.ts
14
+ init_esm_shims();
15
+ var FAMILY_TREE = Symbol("familyTree");
16
+ var ROLL_UP_REGISTRATIONS = Symbol("rollUpRegistrations");
17
+ var CRADLE_STRING_TAG = "DependencyInjectionContainerCradle";
18
+ function createContainer(options, parentContainer) {
19
+ options = {
20
+ injectionMode: InjectionMode.PROXY,
21
+ ...options
22
+ };
23
+ let resolutionStack = [];
24
+ const registrations = {};
25
+ const cradle = new Proxy(
26
+ {
27
+ [util.inspect.custom]: toStringRepresentationFn
28
+ },
29
+ {
30
+ /**
31
+ * 当进行container.cradle.*的get调用时,会调用get处理程序
32
+ * @param _target
33
+ * @param name
34
+ */
35
+ get: (_target, name) => resolve(name),
36
+ /**
37
+ * 在cradle上设置内容会抛出错误
38
+ * @param _target
39
+ * @param name
40
+ */
41
+ set: (_target, name) => {
42
+ throw new Error(
43
+ `Attempted setting property "${name}" on container cradle - this is not allowed.`
44
+ );
45
+ },
46
+ /**
47
+ * Used for `Object.keys`.
48
+ */
49
+ ownKeys() {
50
+ return Array.from(cradle);
51
+ },
52
+ /**
53
+ * Used for `Object.keys`.
54
+ */
55
+ getOwnPropertyDescriptor(target, key) {
56
+ const regs = rollUpRegistrations();
57
+ if (Object.getOwnPropertyDescriptor(regs, key))
58
+ return {
59
+ enumerable: true,
60
+ configurable: true
61
+ };
62
+ return void 0;
63
+ }
64
+ }
65
+ );
66
+ const container = {
67
+ options,
68
+ cradle,
69
+ inspect: inspect2,
70
+ cache: /* @__PURE__ */ new Map(),
71
+ loadModules: loadModules2,
72
+ createScope,
73
+ register,
74
+ build,
75
+ resolve,
76
+ hasRegistration,
77
+ dispose,
78
+ getRegistration,
79
+ [util.inspect.custom]: inspect2,
80
+ // tslint:disable-next-line
81
+ [ROLL_UP_REGISTRATIONS]: rollUpRegistrations,
82
+ get registrations() {
83
+ return rollUpRegistrations();
84
+ }
85
+ };
86
+ const familyTree = parentContainer ? [container].concat(parentContainer[FAMILY_TREE]) : [container];
87
+ container[FAMILY_TREE] = familyTree;
88
+ const rootContainer = last(familyTree);
89
+ return container;
90
+ function inspect2() {
91
+ return `[DependencyInjectionContainer (${parentContainer ? "scoped, " : ""}registrations: ${Object.keys(container.registrations).length})]`;
92
+ }
93
+ function rollUpRegistrations() {
94
+ return {
95
+ ...parentContainer && parentContainer[ROLL_UP_REGISTRATIONS](),
96
+ ...registrations
97
+ };
98
+ }
99
+ function* cradleIterator() {
100
+ const registrations2 = rollUpRegistrations();
101
+ for (const registrationName in registrations2) {
102
+ yield registrationName;
103
+ }
104
+ }
105
+ function createScope() {
106
+ return createContainer(options, container);
107
+ }
108
+ function register(arg1, arg2) {
109
+ const obj = nameValueToObject(arg1, arg2);
110
+ const keys = [...Object.keys(obj), ...Object.getOwnPropertySymbols(obj)];
111
+ for (const key of keys) {
112
+ const value = obj[key];
113
+ registrations[key] = value;
114
+ }
115
+ return container;
116
+ }
117
+ function toStringRepresentationFn() {
118
+ return Object.prototype.toString.call(cradle);
119
+ }
120
+ function getRegistration(name) {
121
+ const resolver = registrations[name];
122
+ if (resolver)
123
+ return resolver;
124
+ if (parentContainer)
125
+ return parentContainer.getRegistration(name);
126
+ return null;
127
+ }
128
+ function resolve(name, resolveOpts) {
129
+ resolveOpts = resolveOpts || {};
130
+ try {
131
+ const resolver = getRegistration(name);
132
+ if (resolutionStack.indexOf(name) > -1) {
133
+ throw new DependencyInjectionResolutionError(
134
+ name,
135
+ resolutionStack,
136
+ "Cyclic dependencies detected."
137
+ );
138
+ }
139
+ if (name === "toJSON")
140
+ return toStringRepresentationFn;
141
+ if (name === "constructor")
142
+ return createContainer;
143
+ if (!resolver) {
144
+ switch (name) {
145
+ case util.inspect.custom:
146
+ case "inspect":
147
+ case "toString":
148
+ return toStringRepresentationFn;
149
+ case Symbol.toStringTag:
150
+ return CRADLE_STRING_TAG;
151
+ case "then":
152
+ return void 0;
153
+ case Symbol.iterator:
154
+ return cradleIterator;
155
+ }
156
+ if (resolveOpts.allowUnregistered) {
157
+ return void 0;
158
+ }
159
+ throw new DependencyInjectionResolutionError(name, resolutionStack);
160
+ }
161
+ resolutionStack.push(name);
162
+ let cached;
163
+ let resolved;
164
+ switch (resolver.lifetime || Lifetime.TRANSIENT) {
165
+ case Lifetime.TRANSIENT:
166
+ resolved = resolver.resolve(container);
167
+ break;
168
+ case Lifetime.SINGLETON:
169
+ cached = rootContainer.cache.get(name);
170
+ if (!cached) {
171
+ resolved = resolver.resolve(container);
172
+ rootContainer.cache.set(name, { resolver, value: resolved });
173
+ } else {
174
+ resolved = cached.value;
175
+ }
176
+ break;
177
+ case Lifetime.SCOPED:
178
+ cached = container.cache.get(name);
179
+ if (cached !== void 0) {
180
+ resolved = cached.value;
181
+ break;
182
+ }
183
+ resolved = resolver.resolve(container);
184
+ container.cache.set(name, { resolver, value: resolved });
185
+ break;
186
+ default:
187
+ throw new DependencyInjectionResolutionError(
188
+ name,
189
+ resolutionStack,
190
+ `Unknown lifetime "${resolver.lifetime}"`
191
+ );
192
+ }
193
+ resolutionStack.pop();
194
+ if ((typeof resolved === "object" || typeof resolved === "function") && !Reflect.hasOwnMetadata(DI_TARGET_CONSTRUCTOR_CONFIGURABLE_OBJECT_NAME, resolved))
195
+ Reflect.defineMetadata(DI_TARGET_CONSTRUCTOR_CONFIGURABLE_OBJECT_NAME, name, resolved);
196
+ return resolved;
197
+ } catch (err) {
198
+ resolutionStack = [];
199
+ throw err;
200
+ }
201
+ }
202
+ function hasRegistration(name) {
203
+ return !!getRegistration(name);
204
+ }
205
+ function build(targetOrResolver, opts) {
206
+ if (targetOrResolver && targetOrResolver.resolve)
207
+ return targetOrResolver.resolve(container);
208
+ const funcName = "build";
209
+ const paramName = "targetOrResolver";
210
+ DependencyInjectionTypeError.assert(
211
+ targetOrResolver,
212
+ funcName,
213
+ paramName,
214
+ "a registration, function or class",
215
+ targetOrResolver
216
+ );
217
+ DependencyInjectionTypeError.assert(
218
+ typeof targetOrResolver === "function",
219
+ funcName,
220
+ paramName,
221
+ "a function or class",
222
+ targetOrResolver
223
+ );
224
+ const resolver = isClass(targetOrResolver) ? asClass(targetOrResolver, opts) : asFunction(targetOrResolver, opts);
225
+ return resolver.resolve(container);
226
+ }
227
+ function loadModules2(globPatterns, opts) {
228
+ const _loadModulesDeps = {
229
+ require: options.require || function(uri) {
230
+ return __require(uri);
231
+ },
232
+ listModules,
233
+ container
234
+ };
235
+ if (opts == null ? void 0 : opts.esModules) {
236
+ _loadModulesDeps.require = importModule;
237
+ return loadModules(
238
+ _loadModulesDeps,
239
+ globPatterns,
240
+ opts
241
+ ).then(() => container);
242
+ } else {
243
+ loadModules(_loadModulesDeps, globPatterns, opts);
244
+ return container;
245
+ }
246
+ }
247
+ async function dispose() {
248
+ const entries = Array.from(container.cache.entries());
249
+ container.cache.clear();
250
+ return Promise.all(
251
+ entries.map(([name, entry]) => {
252
+ const { resolver, value } = entry;
253
+ const disposable = resolver;
254
+ if (disposable.dispose)
255
+ return Promise.resolve().then(() => disposable.dispose(value));
256
+ return Promise.resolve();
257
+ })
258
+ ).then(() => void 0);
259
+ }
260
+ }
261
+ __name(createContainer, "createContainer");
262
+ Reflect.defineMetadata(DI_CONTAINER_CREATOR_CONSTRUCTOR, true, createContainer);
263
+
264
+ export { createContainer };
265
+ //# sourceMappingURL=out.js.map
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9saWIvaW9jL0RlcGVuZGVuY3lJbmplY3Rpb25Db250YWluZXIudHMiXSwibmFtZXMiOlsiaW5zcGVjdCIsImxvYWRNb2R1bGVzIiwicmVnaXN0cmF0aW9ucyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQSxZQUFZLFVBQVU7QUFrTXRCLElBQU0sY0FBYyxPQUFPLFlBQVk7QUFLdkMsSUFBTSx3QkFBd0IsT0FBTyxxQkFBcUI7QUFLMUQsSUFBTSxvQkFBNEI7QUFPM0IsU0FBUyxnQkFDWixTQUNBLGlCQUNnQztBQUNoQyxZQUFVO0FBQUEsSUFDTixlQUFlLGNBQWM7QUFBQSxJQUM3QixHQUFHO0FBQUEsRUFDUDtBQUdBLE1BQUksa0JBQW1DLENBQUM7QUFHeEMsUUFBTSxnQkFBa0MsQ0FBQztBQUt6QyxRQUFNLFNBQVksSUFBSTtBQUFBLElBQ2xCO0FBQUEsTUFDSSxDQUFNLGFBQVEsTUFBTSxHQUFHO0FBQUEsSUFDM0I7QUFBQSxJQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BTUksS0FBSyxDQUFDLFNBQWlCLFNBQXNCLFFBQVEsSUFBSTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQU96RCxLQUFLLENBQUMsU0FBaUIsU0FBMEI7QUFDN0MsY0FBTSxJQUFJO0FBQUEsVUFDTiwrQkFDSSxJQUNKO0FBQUEsUUFDSjtBQUFBLE1BQ0o7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQUtBLFVBQVU7QUFDTixlQUFPLE1BQU0sS0FBSyxNQUFhO0FBQUEsTUFDbkM7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQUtBLHlCQUF5QixRQUFnQixLQUFzRDtBQUMzRixjQUFNLE9BQXlCLG9CQUFvQjtBQUNuRCxZQUFJLE9BQU8seUJBQXlCLE1BQU0sR0FBRztBQUFHLGlCQUFPO0FBQUEsWUFDbkQsWUFBWTtBQUFBLFlBQ1osY0FBYztBQUFBLFVBQ2xCO0FBQ0EsZUFBTztBQUFB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QUFNLEVBQUMsVUFBVSxNQUFLLElBQUk7QUFDMUIsY0FBTSxhQUFzQztBQUM1QyxZQUFJLFdBQVc7QUFBUyxpQkFBTyxRQUFRLFFBQVEsRUFBRSxLQUFLLE1BQU0sV0FBVyxRQUFTLEtBQUssQ0FBQztBQUN0RixlQUFPLFFBQVEsUUFBUTtBQUFBLE1BQzNCLENBQUM7QUFBQSxJQUNMLEVBQUUsS0FBSyxNQUFNLE1BQVM7QUFBQSxFQUMxQjtBQVhlO0FBWW5CO0FBMVdnQjtBQTRXaEIsUUFBUSxlQUFlLGtDQUFrQyxNQUFNLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnXG5pbXBvcnQgKiBhcyB1dGlsIGZyb20gJ3V0aWwnXG5pbXBvcnQge0dsb2JXaXRoT3B0aW9ucywgbGlzdE1vZHVsZXN9IGZyb20gJy4vTGlzdE1vZHVsZXMuanMnXG5pbXBvcnQge1xuICAgIExvYWRNb2R1bGVzT3B0aW9ucyxcbiAgICBsb2FkTW9kdWxlcyBhcyByZWFsTG9hZE1vZHVsZXMsXG4gICAgTG9hZE1vZHVsZXNSZXN1bHRcbn0gZnJvbSAnLi9Mb2FkTW9kdWxlcy5qcydcbmltcG9ydCB7XG4gICAgUmVzb2x2ZXIsXG4gICAgQ29uc3RydWN0b3IsXG4gICAgYXNDbGFzcyxcbiAgICBhc0Z1bmN0aW9uLFxuICAgIERpc3Bvc2FibGVSZXNvbHZlcixcbiAgICBCdWlsZFJlc29sdmVyT3B0aW9ucywgQnVpbGRSZXNvbHZlclxufSBmcm9tICcuL1Jlc29sdmVycy5qcydcbmltcG9ydCB7bGFzdCwgbmFtZVZhbHVlVG9PYmplY3QsIGlzQ2xhc3N9IGZyb20gJy4vVXRpbHMuanMnXG5pbXBvcnQge0luamVjdGlvbk1vZGUsIEluamVjdGlvbk1vZGVUeXBlfSBmcm9tICcuL0luamVjdGlvbk1vZGUuanMnXG5pbXBvcnQge0xpZmV0aW1lfSBmcm9tICcuL0xpZmV0aW1lLmpzJ1xuaW1wb3J0IHtEZXBlbmRlbmN5SW5qZWN0aW9uUmVzb2x1dGlvbkVycm9yLCBEZXBlbmRlbmN5SW5qZWN0aW9uVHlwZUVycm9yfSBmcm9tICcuL0Vycm9ycy5qcydcbmltcG9ydCB7aW1wb3J0TW9kdWxlfSBmcm9tICcuL0xvYWRNb2R1bGVOYXRpdmUuanMnXG5pbXBvcnQge1xuICAgIERJX0NPTlRBSU5FUl9DUkVBVE9SX0NPTlNUUlVDVE9SLFxuICAgIERJX1RBUkdFVF9DT05TVFJVQ1RPUl9DT05GSUdVUkFCTEVfT0JKRUNUX05BTUVcbn0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL01ldGFkYXRhS2V5LmpzJ1xuXG4vKipcbiAqIOS7jmNyZWF0ZUNvbnRhaW5lcui/lOWbnueahOWuueWZqOWFt+acieS4gOS6m+aWueazleWSjOWxnuaAp+OAglxuICogQGludGVyZmFjZSBJRGVwZW5kZW5jeUluamVjdGlvbkNvbnRhaW5lclxuICovXG5leHBvcnQgaW50ZXJmYWNlIElEZXBlbmRlbmN5SW5qZWN0aW9uQ29udGFpbmVyPENyYWRsZSBleHRlbmRzIG9iamVjdCA9IGFueT4ge1xuICAgIC8qKlxuICAgICAqIOWuueWZqOmFjee9rueahOmAiemhueOAglxuICAgICAqL1xuICAgIG9wdGlvbnM6IENvbnRhaW5lck9wdGlvbnNcbiAgICAvKipcbiAgICAgKiDlnKjkvb/nlKhQUk9YWeazqOWFpeaooeW8j+aXtuazqOWFpeeahOS7o+eQhuWvueixoeOAglxuICAgICAqIOWPr+S7peebtOaOpeS9v+eUqOOAglxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNyYWRsZTogQ3JhZGxlXG4gICAgLyoqXG4gICAgICog6I635Y+W5ZCI5bm25a655Zmo5peP6LCx55qE5rOo5YaM5L+h5oGv55qE6I635Y+W5Zmo44CCXG4gICAgICovXG4gICAgcmVhZG9ubHkgcmVnaXN0cmF0aW9uczogUmVnaXN0cmF0aW9uSGFzaFxuICAgIC8qKlxuICAgICAqIOW3suino+aekOaooeWdl+eahOe8k+WtmOOAglxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNhY2hlOiBNYXA8c3RyaW5nIHwgc3ltYm9sLCBDYWNoZUVudHJ5PlxuXG4gICAgLyoqXG4gICAgICog5Lul5b2T5YmN5a655Zmo5Li654i25a655Zmo77yM5Yib5bu65LiA5Liq5L2c55So5Z+f5a655Zmo44CCXG4gICAgICovXG4gICAgY3JlYXRlU2NvcGU8VCBleHRlbmRzIG9iamVjdCA9IHt9PigpOiBJRGVwZW5kZW5jeUluamVjdGlvbkNvbnRhaW5lcjxDcmFkbGUgJiBUPlxuXG4gICAgLyoqXG4gICAgICogVXNlZCBieSBgdXRpbC5pbnNwZWN0YC5cbiAgICAgKi9cbiAgICBpbnNwZWN0KGRlcHRoOiBudW1iZXIsIG9wdHM/OiBhbnkpOiBzdHJpbmdcblxuICAgIC8qKlxuICAgICAqIOWwhmxpYi9sb2FkTW9kdWxlc+e7keWumuWIsOW9k+WJjeWuueWZqO+8jOW5tuaPkOS+m+Wug+aJgOS+nei1lueahOWunumZheWunueOsOOAglxuICAgICAqIOatpOWklu+8jOWwhuino+aekOS9v+eUqGRlcGVuZHNPbiBBUEnnmoTku7vkvZXmqKHlnZfjgIJcbiAgICAgKi9cbiAgICBsb2FkTW9kdWxlczxFU00gZXh0ZW5kcyBib29sZWFuID0gZmFsc2U+KFxuICAgICAgICBnbG9iUGF0dGVybnM6IEFycmF5PHN0cmluZyB8IEdsb2JXaXRoT3B0aW9ucz4sXG4gICAgICAgIG9wdGlvbnM/OiBMb2FkTW9kdWxlc09wdGlvbnM8RVNNPlxuICAgICk6IEVTTSBleHRlbmRzIGZhbHNlID8gdGhpcyA6IFByb21pc2U8dGhpcz5cblxuICAgIC8qKlxuICAgICAqIOa3u+WKoOS4gOS4quWNleeLrOeahOazqOWGjO+8jOS9v+eUqOmihOWFiOaehOW7uueahOino+aekOWZqOOAglxuICAgICAqL1xuICAgIHJlZ2lzdGVyPFQ+KG5hbWU6IHN0cmluZyB8IHN5bWJvbCwgcmVnaXN0cmF0aW9uOiBSZXNvbHZlcjxUPik6IHRoaXNcblxuICAgIC8qKlxuICAgICAqIOWwhuino+aekOWZqOS4juazqOWGjOWQjeensOmFjeWvueW5tui/m+ihjOazqOWGjOOAglxuICAgICAqL1xuICAgIHJlZ2lzdGVyKG5hbWVBbmRSZWdpc3RyYXRpb25QYWlyOiBOYW1lQW5kUmVnaXN0cmF0aW9uUGFpcjxDcmFkbGU+KTogdGhpc1xuXG4gICAgLyoqXG4gICAgICog6Kej5p6Q5YW35pyJ57uZ5a6a5ZCN56ew55qE5rOo5YaMXG4gICAgICogQHBhcmFtIG5hbWVcbiAgICAgKiBAcGFyYW0gcmVzb2x2ZU9wdGlvbnNcbiAgICAgKi9cbiAgICByZXNvbHZlPEsgZXh0ZW5kcyBrZXlvZiBDcmFkbGU+KFxuICAgICAgICBuYW1lOiBLLFxuICAgICAgICByZXNvbHZlT3B0aW9ucz86IFJlc29sdmVPcHRpb25zXG4gICAgKTogQ3JhZGxlW0tdXG5cbiAgICAvKipcbiAgICAgKiDop6PmnpDlhbfmnInnu5nlrprlkI3np7DnmoTms6jlhoxcbiAgICAgKiBAcGFyYW0gbmFtZVxuICAgICAqIEBwYXJhbSByZXNvbHZlT3B0aW9uc1xuICAgICAqL1xuICAgIHJlc29sdmU8VD4obmFtZTogc3RyaW5nIHwgc3ltYm9sLCByZXNvbHZlT3B0aW9ucz86IFJlc29sdmVPcHRpb25zKTogVFxuXG4gICAgLyoqXG4gICAgICog5qOA5p+l5YW35pyJ57uZ5a6a5ZCN56ew55qE5rOo5YaM5piv5ZCm5a2Y5ZyoXG4gICAgICogQHBhcmFtIG5hbWVcbiAgICAgKi9cbiAgICBoYXNSZWdpc3RyYXRpb24obmFtZTogc3RyaW5nIHwgc3ltYm9sKTogYm9vbGVhblxuXG4gICAgLyoqXG4gICAgICog6YCS5b2S5Zyw6YCa6L+H5ZCN56ew6I635Y+W5rOo5YaM77yI5aaC5p6c5a2Y5Zyo5LqO5b2T5YmN5a655Zmo5oiW5YW25Lu75L2V54i25a655Zmo5Lit77yJXG4gICAgICogQHBhcmFtIG5hbWVcbiAgICAgKi9cbiAgICBnZXRSZWdpc3RyYXRpb248SyBleHRlbmRzIGtleW9mIENyYWRsZT4obmFtZTogSyk6IFJlc29sdmVyPENyYWRsZVtLXT4gfCBudWxsXG5cbiAgICAvKipcbiAgICAgKiDlpoLmnpzlvZPliY3lrrnlmajmiJblhbbku7vkvZXniLblrrnlmajkuK3lrZjlnKjlhbfmnInmjIflrprlkI3np7DnmoTms6jlhozvvIzliJnpgJLlvZLojrflj5bor6Xms6jlhoxcbiAgICAgKiBAcGFyYW0gbmFtZVxuICAgICAqL1xuICAgIGdldFJlZ2lzdHJhdGlvbjxUID0gdW5rbm93bj4obmFtZTogc3RyaW5nIHwgc3ltYm9sKTogUmVzb2x2ZXI8VD4gfCBudWxsXG5cbiAgICAvKipcbiAgICAgKiDnu5nlrprkuIDkuKrop6PmnpDlmajjgIHnsbvmiJblh73mlbDvvIzmnoTlu7rlroPlubbov5Tlm55cbiAgICAgKiDkuI3nvJPlrZjlroPvvIzov5nmhI/lkbPnnYDlpoLmnpzkvKDpgJLkuobkuIDkuKrop6PmnpDlmajvvIzpgqPkuYjkuI3kvJrkvb/nlKjku7vkvZXlnKjnlJ/lkb3lkajmnJ/kuK3phY3nva7nmoTorr7nva5cbiAgICAgKiBAcGFyYW0gdGFyZ2V0T3JSZXNvbHZlclxuICAgICAqIEBwYXJhbSBvcHRzXG4gICAgICovXG4gICAgYnVpbGQ8VD4oXG4gICAgICAgIHRhcmdldE9yUmVzb2x2ZXI6IENsYXNzT3JGdW5jdGlvblJldHVybmluZzxUPiB8IFJlc29sdmVyPFQ+LFxuICAgICAgICBvcHRzPzogQnVpbGRSZXNvbHZlck9wdGlvbnM8VD5cbiAgICApOiBUXG5cbiAgICAvKipcbiAgICAgKiDplIDmr4Hor6Xlrrnlmajlj4rlhbblrZDlrrnlmajvvIzlr7nmiYDmnInlj6/ph4rmlL7nmoTms6jlhozov5vooYzmuIXnkIblubbmuIXpmaTnvJPlrZhcbiAgICAgKiDku4XpgILnlKjkuo7lhbfmnIlTQ09QRUTmiJZTSU5HTEVUT07nlJ/lkb3lkajmnJ/nmoTms6jlhoxcbiAgICAgKi9cbiAgICBkaXNwb3NlKCk6IFByb21pc2U8dm9pZD5cbn1cblxuLyoqXG4gKiDlj6/pgInnmoTop6PmnpDpgInpobnjgIJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlT3B0aW9ucyB7XG4gICAgLyoqXG4gICAgICog5aaC5p6c6K6+572u5Li6dHJ1Ze+8jOW5tuS4lHJlc29sdmXml6Dms5Xmib7liLDor7fmsYLnmoTkvp3otZbpobnvvIzliJnov5Tlm551bmRlZmluZWTogIzkuI3mmK/mipvlh7rplJnor6/jgIJcbiAgICAgKi9cbiAgICBhbGxvd1VucmVnaXN0ZXJlZD86IGJvb2xlYW5cbn1cblxuLyoqXG4gKiDnvJPlrZjmnaHnm67jgIJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYWNoZUVudHJ5PFQgPSBhbnk+IHtcbiAgICAvKipcbiAgICAgKiDop6PmnpDlgLznmoTop6PmnpDlmajjgIJcbiAgICAgKi9cbiAgICByZXNvbHZlcjogUmVzb2x2ZXI8VD5cbiAgICAvKipcbiAgICAgKiDop6PmnpDnmoTlgLzjgIJcbiAgICAgKi9cbiAgICB2YWx1ZTogVFxufVxuXG4vKipcbiAqIOazqOWGjOS4gOS4quazqOWGjOmhueOAglxuICogQGludGVyZmFjZSBOYW1lQW5kUmVnaXN0cmF0aW9uUGFpclxuICovXG5leHBvcnQgdHlwZSBOYW1lQW5kUmVnaXN0cmF0aW9uUGFpcjxUPiA9IHtcbiAgICBbVSBpbiBrZXlvZiBUXT86IFJlc29sdmVyPFRbVV0+XG59XG5cbi8qKlxuICog6L+U5Zue57G75Z6L5Li6IFQg55qE5Ye95pWw44CCXG4gKi9cbmV4cG9ydCB0eXBlIEZ1bmN0aW9uUmV0dXJuaW5nPFQ+ID0gKC4uLmFyZ3M6IEFycmF5PGFueT4pID0+IFRcblxuLyoqXG4gKiDov5Tlm54gVCDnmoTnsbvmiJblh73mlbDjgIJcbiAqL1xuZXhwb3J0IHR5cGUgQ2xhc3NPckZ1bmN0aW9uUmV0dXJuaW5nPFQ+ID0gRnVuY3Rpb25SZXR1cm5pbmc8VD4gfCBDb25zdHJ1Y3RvcjxUPlxuXG4vKipcbiAqIGNyZWF0ZUNvbnRhaW5lciDlh73mlbDnmoTpgInpobnjgIJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250YWluZXJPcHRpb25zIHtcbiAgICByZXF1aXJlPzogKGlkOiBzdHJpbmcpID0+IGFueVxuICAgIGluamVjdGlvbk1vZGU/OiBJbmplY3Rpb25Nb2RlVHlwZVxufVxuXG4vKipcbiAqIOWMheWQq+azqOWGjOmhueeahOaVo+WIl++8jOWFtuS4reWQjeensOaYr+mUruOAglxuICovXG5leHBvcnQgdHlwZSBSZWdpc3RyYXRpb25IYXNoID0gUmVjb3JkPHN0cmluZyB8IHN5bWJvbCB8IG51bWJlciwgUmVzb2x2ZXI8YW55Pj5cblxuLyoqXG4gKiDop6PmnpDloIbmoIjjgIJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvbHV0aW9uU3RhY2sgZXh0ZW5kcyBBcnJheTxzdHJpbmcgfCBzeW1ib2w+IHtcbn1cblxuLyoqXG4gKiDlrrbml4/moJHnrKblj7fjgIJcbiAqL1xuY29uc3QgRkFNSUxZX1RSRUUgPSBTeW1ib2woJ2ZhbWlseVRyZWUnKVxuXG4vKipcbiAqIOWQiOW5tuazqOWGjOmhueespuWPt+OAglxuICovXG5jb25zdCBST0xMX1VQX1JFR0lTVFJBVElPTlMgPSBTeW1ib2woJ3JvbGxVcFJlZ2lzdHJhdGlvbnMnKVxuXG4vKipcbiAqIOiwg+eUqCB0b1N0cmluZyDml7bnmoTlrZfnrKbkuLLooajnpLrlvaLlvI/jgIJcbiAqL1xuY29uc3QgQ1JBRExFX1NUUklOR19UQUc6IHN0cmluZyA9ICdEZXBlbmRlbmN5SW5qZWN0aW9uQ29udGFpbmVyQ3JhZGxlJ1xuXG4vKipcbiAqIOWIm+W7uuS4gOS4quS+nei1luazqOWFpeWuueWZqOWunuS+i1xuICogQHBhcmFtIG9wdGlvbnNcbiAqIEBwYXJhbSBwYXJlbnRDb250YWluZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbnRhaW5lcjxUIGV4dGVuZHMgb2JqZWN0ID0gYW55LCBVIGV4dGVuZHMgb2JqZWN0ID0gYW55PihcbiAgICBvcHRpb25zPzogQ29udGFpbmVyT3B0aW9ucyxcbiAgICBwYXJlbnRDb250YWluZXI/OiBJRGVwZW5kZW5jeUluamVjdGlvbkNvbnRhaW5lcjxVPlxuKTogSURlcGVuZGVuY3lJbmplY3Rpb25Db250YWluZXI8VD4ge1xuICAgIG9wdGlvbnMgPSB7XG4gICAgICAgIGluamVjdGlvbk1vZGU6IEluamVjdGlvbk1vZGUuUFJPWFksXG4gICAgICAgIC4uLm9wdGlvbnNcbiAgICB9XG5cbiAgICAvLyDop6PmnpDloIbmoIjnlKjkuo7ot5/ouKrmraPlnKjop6PmnpDnmoTmqKHlnZdcbiAgICBsZXQgcmVzb2x1dGlvblN0YWNrOiBSZXNvbHV0aW9uU3RhY2sgPSBbXVxuXG4gICAgLy8g5q2k5a655Zmo55qE5YaF6YOo5rOo5YaM5a2Y5YKoXG4gICAgY29uc3QgcmVnaXN0cmF0aW9uczogUmVnaXN0cmF0aW9uSGFzaCA9IHt9XG5cbiAgICAvKipcbiAgICAgKiDkvKDpgJLnu5nlh73mlbDnmoRQcm94ee+8jOS9v+Wug+S7rOWPr+S7peWcqOS4jeefpemBk+S+nei1lumhueadpeiHquS9leWkhOeahOaDheWGteS4i+ino+aekOWug+S7rOOAguaIkeensOS5i+S4uuKAnGNyYWRsZe+8iOaRh+evru+8ieKAne+8jOWboOS4uuWug+aYr+azqOWGjOS6i+eJqeWcqOino+aekOaXtuS6p+eUn+eUn+WRveeahOWcsOaWueOAglxuICAgICAqL1xuICAgIGNvbnN0IGNyYWRsZTogVCA9IG5ldyBQcm94eShcbiAgICAgICAge1xuICAgICAgICAgICAgW3V0aWwuaW5zcGVjdC5jdXN0b21dOiB0b1N0cmluZ1JlcHJlc2VudGF0aW9uRm5cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiDlvZPov5vooYxjb250YWluZXIuY3JhZGxlLirnmoRnZXTosIPnlKjml7bvvIzkvJrosIPnlKhnZXTlpITnkIbnqIvluo9cbiAgICAgICAgICAgICAqIEBwYXJhbSBfdGFyZ2V0XG4gICAgICAgICAgICAgKiBAcGFyYW0gbmFtZVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBnZXQ6IChfdGFyZ2V0OiBvYmplY3QsIG5hbWU6IHN0cmluZyk6IGFueSA9PiByZXNvbHZlKG5hbWUpLFxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIOWcqGNyYWRsZeS4iuiuvue9ruWGheWuueS8muaKm+WHuumUmeivr1xuICAgICAgICAgICAgICogQHBhcmFtIF90YXJnZXRcbiAgICAgICAgICAgICAqIEBwYXJhbSBuYW1lXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHNldDogKF90YXJnZXQ6IG9iamVjdCwgbmFtZTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgQXR0ZW1wdGVkIHNldHRpbmcgcHJvcGVydHkgXCIke1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSBhcyBhbnlcbiAgICAgICAgICAgICAgICAgICAgfVwiIG9uIGNvbnRhaW5lciBjcmFkbGUgLSB0aGlzIGlzIG5vdCBhbGxvd2VkLmBcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFVzZWQgZm9yIGBPYmplY3Qua2V5c2AuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIG93bktleXMoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oY3JhZGxlIGFzIGFueSlcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogVXNlZCBmb3IgYE9iamVjdC5rZXlzYC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldDogb2JqZWN0LCBrZXk6IHN0cmluZyB8IHN5bWJvbCk6IFByb3BlcnR5RGVzY3JpcHRvciB8IHVuZGVmaW5lZCB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVnczogUmVnaXN0cmF0aW9uSGFzaCA9IHJvbGxVcFJlZ2lzdHJhdGlvbnMoKVxuICAgICAgICAgICAgICAgIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHJlZ3MsIGtleSkpIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICApIGFzIFRcblxuICAgIC8vIFRoZSBjb250YWluZXIgYmVpbmcgZXhwb3NlZC5cbiAgICBjb25zdCBjb250YWluZXI6IElEZXBlbmRlbmN5SW5qZWN0aW9uQ29udGFpbmVyICYgYW55ID0ge1xuICAgICAgICBvcHRpb25zLFxuICAgICAgICBjcmFkbGUsXG4gICAgICAgIGluc3BlY3QsXG4gICAgICAgIGNhY2hlOiBuZXcgTWFwPHN0cmluZyB8IHN5bWJvbCwgQ2FjaGVFbnRyeT4oKSxcbiAgICAgICAgbG9hZE1vZHVsZXMsXG4gICAgICAgIGNyZWF0ZVNjb3BlLFxuICAgICAgICByZWdpc3RlcjogcmVnaXN0ZXIgYXMgYW55LFxuICAgICAgICBidWlsZCxcbiAgICAgICAgcmVzb2x2ZSxcbiAgICAgICAgaGFzUmVnaXN0cmF0aW9uLFxuICAgICAgICBkaXNwb3NlLFxuICAgICAgICBnZXRSZWdpc3RyYXRpb24sXG4gICAgICAgIFt1dGlsLmluc3BlY3QuY3VzdG9tXTogaW5zcGVjdCxcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgIFtST0xMX1VQX1JFR0lTVFJBVElPTlMhXTogcm9sbFVwUmVnaXN0cmF0aW9ucyxcbiAgICAgICAgZ2V0IHJlZ2lzdHJhdGlvbnMoKSB7XG4gICAgICAgICAgICByZXR1cm4gcm9sbFVwUmVnaXN0cmF0aW9ucygpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyDot5/ouKrlrrbml4/moJFcbiAgICBjb25zdCBmYW1pbHlUcmVlOiBBcnJheTxJRGVwZW5kZW5jeUluamVjdGlvbkNvbnRhaW5lcj4gPSBwYXJlbnRDb250YWluZXJcbiAgICAgICAgICAgID8gW2NvbnRhaW5lcl0uY29uY2F0KChwYXJlbnRDb250YWluZXIgYXMgYW55KVtGQU1JTFlfVFJFRV0pXG4gICAgICAgICAgICA6IFtjb250YWluZXJdXG4gICAgICAgIC8vIOS/neWtmOWug++8jOS7peS+v+aIkeS7rOWPr+S7peS7juS9nOeUqOWfn+WuueWZqOS4reiuv+mXruWug1xuICAgIDsoY29udGFpbmVyIGFzIGFueSlbRkFNSUxZX1RSRUVdID0gZmFtaWx5VHJlZVxuXG4gICAgLy8g5oiR5Lus6ZyA6KaB5a+55qC55a655Zmo55qE5byV55So77yM5Lul5L6/5oiR5Lus5Y+v5Lul5qOA57Si5ZKM5a2Y5YKo5Y2V5L6L5a+56LGhXG4gICAgY29uc3Qgcm9vdENvbnRhaW5lcjogSURlcGVuZGVuY3lJbmplY3Rpb25Db250YWluZXIgPSBsYXN0KGZhbWlseVRyZWUpXG5cbiAgICByZXR1cm4gY29udGFpbmVyXG5cbiAgICAvKipcbiAgICAgKiDnlLF1dGlsLmluc3BlY3Tkvb/nlKjvvIh1dGlsLmluc3BlY3Tlj4jooqtjb25zb2xlLmxvZ+S9v+eUqO+8iVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGluc3BlY3QoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGBbRGVwZW5kZW5jeUluamVjdGlvbkNvbnRhaW5lciAoJHtcbiAgICAgICAgICAgIHBhcmVudENvbnRhaW5lciA/ICdzY29wZWQsICcgOiAnJ1xuICAgICAgICB9cmVnaXN0cmF0aW9uczogJHtPYmplY3Qua2V5cyhjb250YWluZXIucmVnaXN0cmF0aW9ucykubGVuZ3RofSldYFxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOS7juWutuaXj+agkeS4reWQiOW5tuazqOWGjOmhuVxuICAgICAqIOi/meWPr+iDveS8mumdnuW4uOiAl+i0uei1hOa6kOOAguS7heWcqOi/reS7o+aRh+evruS7o+eQhuaXtuS9v+eUqO+8jOi/meW5tuS4jeaYr+aXpeW4uOS9v+eUqOS4reW6lOivpeWBmueahOS6i+aDhe+8jOS4u+imgeeUqOS6juiwg+ivlVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJvbGxVcFJlZ2lzdHJhdGlvbnMoKTogUmVnaXN0cmF0aW9uSGFzaCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi4ocGFyZW50Q29udGFpbmVyICYmIChwYXJlbnRDb250YWluZXIgYXMgYW55KVtST0xMX1VQX1JFR0lTVFJBVElPTlNdKCkpLFxuICAgICAgICAgICAgLi4ucmVnaXN0cmF0aW9uc1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog55So5LqO5Li65pGH56+u5o+Q5L6b6L+t5Luj5Zmo44CCXG4gICAgICovXG4gICAgZnVuY3Rpb24qIGNyYWRsZUl0ZXJhdG9yKCk6IEdlbmVyYXRvciB7XG4gICAgICAgIGNvbnN0IHJlZ2lzdHJhdGlvbnM6IFJlZ2lzdHJhdGlvbkhhc2ggPSByb2xsVXBSZWdpc3RyYXRpb25zKClcbiAgICAgICAgZm9yIChjb25zdCByZWdpc3RyYXRpb25OYW1lIGluIHJlZ2lzdHJhdGlvbnMpIHtcbiAgICAgICAgICAgIHlpZWxkIHJlZ2lzdHJhdGlvbk5hbWVcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWIm+W7uuS4gOS4quS9nOeUqOWfn+WuueWZqFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZVNjb3BlPFAgZXh0ZW5kcyBvYmplY3Q+KCk6IElEZXBlbmRlbmN5SW5qZWN0aW9uQ29udGFpbmVyPFAgJiBUPiB7XG4gICAgICAgIHJldHVybiBjcmVhdGVDb250YWluZXIob3B0aW9ucywgY29udGFpbmVyIGFzIElEZXBlbmRlbmN5SW5qZWN0aW9uQ29udGFpbmVyPFQ+KVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOS4uuino+aekOWZqOa3u+WKoOS4gOS4quazqOWGjOmhueOAglxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJlZ2lzdGVyKGFyZzE6IGFueSwgYXJnMjogYW55KTogSURlcGVuZGVuY3lJbmplY3Rpb25Db250YWluZXI8VD4ge1xuICAgICAgICBjb25zdCBvYmo6IFJlY29yZDxzdHJpbmcgfCBzeW1ib2wsIGFueT4gPSBuYW1lVmFsdWVUb09iamVjdChhcmcxLCBhcmcyKVxuICAgICAgICBjb25zdCBrZXlzOiAoc3RyaW5nIHwgc3ltYm9sKVtdID0gWy4uLk9iamVjdC5rZXlzKG9iaiksIC4uLk9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqKV1cbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICAgICAgY29uc3QgdmFsdWU6IFJlc29sdmVyPGFueT4gPSBvYmpba2V5IGFzIGFueV0gYXMgUmVzb2x2ZXI8YW55PlxuICAgICAgICAgICAgcmVnaXN0cmF0aW9uc1trZXkgYXMgYW55XSA9IHZhbHVlXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbnRhaW5lclxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWcqOWwneivleino+aekOaRh+evruS4iueahOiHquWumuS5ieajgOafpeWZqOWHveaVsOaXtu+8jOi/lOWbnue7mXV0aWwuaW5zcGVjdOWSjFN5bWJvbC50b1N0cmluZ1RhZ+OAglxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvU3RyaW5nUmVwcmVzZW50YXRpb25GbigpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChjcmFkbGUpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5aaC5p6c5Zyo5b2T5YmN5a655Zmo5oiW5YW25Lu75L2V54i25a655Zmo5Lit5a2Y5Zyo5YW35pyJ5oyH5a6a5ZCN56ew55qE5rOo5YaM6aG577yM5YiZ6YCS5b2S6I635Y+W6K+l5rOo5YaM6aG5XG4gICAgICogQHBhcmFtIG5hbWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRSZWdpc3RyYXRpb24obmFtZTogc3RyaW5nIHwgc3ltYm9sKSB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVyOiBSZXNvbHZlcjxhbnk+ID0gcmVnaXN0cmF0aW9uc1tuYW1lXVxuICAgICAgICBpZiAocmVzb2x2ZXIpIHJldHVybiByZXNvbHZlclxuICAgICAgICBpZiAocGFyZW50Q29udGFpbmVyKSByZXR1cm4gcGFyZW50Q29udGFpbmVyLmdldFJlZ2lzdHJhdGlvbihuYW1lKVxuICAgICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOS9v+eUqOe7meWumuWQjeensOino+aekOazqOWGjOmhuVxuICAgICAqIEBwYXJhbSBuYW1lXG4gICAgICogQHBhcmFtIHJlc29sdmVPcHRzXG4gICAgICovXG4gICAgZnVuY3Rpb24gcmVzb2x2ZShuYW1lOiBzdHJpbmcgfCBzeW1ib2wsIHJlc29sdmVPcHRzPzogUmVzb2x2ZU9wdGlvbnMpOiBhbnkge1xuICAgICAgICByZXNvbHZlT3B0cyA9IHJlc29sdmVPcHRzIHx8IHt9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBHcmFiIHRoZSByZWdpc3RyYXRpb24gYnkgbmFtZS5cbiAgICAgICAgICAgIGNvbnN0IHJlc29sdmVyOiBSZXNvbHZlcjxhbnk+IHwgbnVsbCA9IGdldFJlZ2lzdHJhdGlvbihuYW1lKVxuICAgICAgICAgICAgaWYgKHJlc29sdXRpb25TdGFjay5pbmRleE9mKG5hbWUpID4gLTEpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRGVwZW5kZW5jeUluamVjdGlvblJlc29sdXRpb25FcnJvcihcbiAgICAgICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x1dGlvblN0YWNrLFxuICAgICAgICAgICAgICAgICAgICAnQ3ljbGljIGRlcGVuZGVuY2llcyBkZXRlY3RlZC4nXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gVXNlZCBpbiBKU09OLnN0cmluZ2lmeS5cbiAgICAgICAgICAgIGlmIChuYW1lID09PSAndG9KU09OJykgcmV0dXJuIHRvU3RyaW5nUmVwcmVzZW50YXRpb25GblxuICAgICAgICAgICAgLy8gVXNlZCBpbiBjb25zb2xlLmxvZy5cbiAgICAgICAgICAgIGlmIChuYW1lID09PSAnY29uc3RydWN0b3InKSByZXR1cm4gY3JlYXRlQ29udGFpbmVyXG4gICAgICAgICAgICBpZiAoIXJlc29sdmVyKSB7XG4gICAgICAgICAgICAgICAgLy8gQ2hlY2tzIGZvciBzb21lIGVkZ2UgY2FzZXMuXG4gICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgY2hlY2tzIGVuc3VyZSB0aGF0IGNvbnNvbGUubG9nIG9uIHRoZSBjcmFkbGUgZG9lcyBub3RcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhyb3cgYW4gZXJyb3IgKGlzc3VlICM3KS5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSB1dGlsLmluc3BlY3QuY3VzdG9tOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICdpbnNwZWN0JzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAndG9TdHJpbmcnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRvU3RyaW5nUmVwcmVzZW50YXRpb25GblxuICAgICAgICAgICAgICAgICAgICBjYXNlIFN5bWJvbC50b1N0cmluZ1RhZzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDUkFETEVfU1RSSU5HX1RBR1xuICAgICAgICAgICAgICAgICAgICAvLyBFZGdlIGNhc2U6IFByb21pc2UgdW53cmFwcGluZyB3aWxsIGxvb2sgZm9yIGEgXCJ0aGVuXCIgcHJvcGVydHkgYW5kIGF0dGVtcHQgdG8gY2FsbCBpdC5cbiAgICAgICAgICAgICAgICAgICAgLy8gUmV0dXJuIHVuZGVmaW5lZCBzbyB0aGF0IHdlIHdvbid0IGNhdXNlIGEgcmVzb2x1dGlvbiBlcnJvci5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSAndGhlbic6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgIC8vIFdoZW4gdXNpbmcgYEFycmF5LmZyb21gIG9yIHNwcmVhZGluZyB0aGUgY3JhZGxlLCB0aGlzIHdpbGxcbiAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHRoZSByZWdpc3RyYXRpb24gbmFtZXMuXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgU3ltYm9sLml0ZXJhdG9yOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyYWRsZUl0ZXJhdG9yXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHJlc29sdmVPcHRzLmFsbG93VW5yZWdpc3RlcmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IERlcGVuZGVuY3lJbmplY3Rpb25SZXNvbHV0aW9uRXJyb3IobmFtZSwgcmVzb2x1dGlvblN0YWNrKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gUHVzaGVzIHRoZSBjdXJyZW50bHktcmVzb2x2aW5nIG1vZHVsZSBuYW1lIG9udG8gdGhlIHN0YWNrXG4gICAgICAgICAgICByZXNvbHV0aW9uU3RhY2sucHVzaChuYW1lKVxuICAgICAgICAgICAgLy8gRG8gdGhlIHRoaW5nXG4gICAgICAgICAgICBsZXQgY2FjaGVkOiBDYWNoZUVudHJ5IHwgdW5kZWZpbmVkXG4gICAgICAgICAgICBsZXQgcmVzb2x2ZWQ6IGFueVxuICAgICAgICAgICAgc3dpdGNoIChyZXNvbHZlci5saWZldGltZSB8fCBMaWZldGltZS5UUkFOU0lFTlQpIHtcbiAgICAgICAgICAgICAgICBjYXNlIExpZmV0aW1lLlRSQU5TSUVOVDpcbiAgICAgICAgICAgICAgICAgICAgLy8gVHJhbnNpZW50IGxpZmV0aW1lIG1lYW5zIHJlc29sdmUgZXZlcnkgdGltZS5cbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZWQgPSByZXNvbHZlci5yZXNvbHZlKGNvbnRhaW5lcilcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBjYXNlIExpZmV0aW1lLlNJTkdMRVRPTjpcbiAgICAgICAgICAgICAgICAgICAgLy8gU2luZ2xldG9uIGxpZmV0aW1lIG1lYW5zIGNhY2hlIGF0IGFsbCB0aW1lcywgcmVnYXJkbGVzcyBvZiBzY29wZS5cbiAgICAgICAgICAgICAgICAgICAgY2FjaGVkID0gcm9vdENvbnRhaW5lci5jYWNoZS5nZXQobmFtZSlcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjYWNoZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVkID0gcmVzb2x2ZXIucmVzb2x2ZShjb250YWluZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICByb290Q29udGFpbmVyLmNhY2hlLnNldChuYW1lLCB7cmVzb2x2ZXIsIHZhbHVlOiByZXNvbHZlZH0pXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlZCA9IGNhY2hlZC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgY2FzZSBMaWZldGltZS5TQ09QRUQ6XG4gICAgICAgICAgICAgICAgICAgIC8vIFNjb3BlZCBsaWZldGltZSBtZWFucyB0aGF0IHRoZSBjb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhhdCByZXNvbHZlcyB0aGUgcmVnaXN0cmF0aW9uIGFsc28gY2FjaGVzIGl0LlxuICAgICAgICAgICAgICAgICAgICAvLyBXaGVuIGEgcmVnaXN0cmF0aW9uIGlzIG5vdCBmb3VuZCwgd2UgdHJhdmVsIHVwXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBmYW1pbHkgdHJlZSB1bnRpbCB3ZSBmaW5kIG9uZSB0aGF0IGlzIGNhY2hlZC5cbiAgICAgICAgICAgICAgICAgICAgY2FjaGVkID0gY29udGFpbmVyLmNhY2hlLmdldChuYW1lKVxuICAgICAgICAgICAgICAgICAgICBpZiAoY2FjaGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGZvdW5kIG9uZSFcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVkID0gY2FjaGVkLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIOWmguaenOaIkeS7rOi/mOayoeacieaJvuWIsOS4gOS4qu+8jOaIkeS7rOmcgOimgeino+aekOW5tue8k+WtmOWug1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlZCA9IHJlc29sdmVyLnJlc29sdmUoY29udGFpbmVyKVxuICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuY2FjaGUuc2V0KG5hbWUsIHtyZXNvbHZlciwgdmFsdWU6IHJlc29sdmVkfSlcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRGVwZW5kZW5jeUluamVjdGlvblJlc29sdXRpb25FcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHV0aW9uU3RhY2ssXG4gICAgICAgICAgICAgICAgICAgICAgICBgVW5rbm93biBsaWZldGltZSBcIiR7cmVzb2x2ZXIubGlmZXRpbWV9XCJgXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIOWGjeasoeS7juWghuagiOS4rVBvcOWHuuWvueixoe+8jOS4uuS4i+S4gOasoeino+aekOWBmuWlveWHhuWkh1xuICAgICAgICAgICAgcmVzb2x1dGlvblN0YWNrLnBvcCgpXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIOeUqOS6juWKoOi9vemFjee9ruWvueixoeiHs+azqOWFpemhueebruWGhVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAoKHR5cGVvZiByZXNvbHZlZCA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIHJlc29sdmVkID09PSAnZnVuY3Rpb24nKSAmJiAhUmVmbGVjdC5oYXNPd25NZXRhZGF0YShESV9UQVJHRVRfQ09OU1RSVUNUT1JfQ09ORklHVVJBQkxFX09CSkVDVF9OQU1FLCByZXNvbHZlZCkpXG4gICAgICAgICAgICAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShESV9UQVJHRVRfQ09OU1RSVUNUT1JfQ09ORklHVVJBQkxFX09CSkVDVF9OQU1FLCBuYW1lLCByZXNvbHZlZClcbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlZFxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIC8vIOW9k+mBh+WIsOmUmeivr+aXtu+8jOmcgOimgemHjee9ruWghuagiFxuICAgICAgICAgICAgcmVzb2x1dGlvblN0YWNrID0gW11cbiAgICAgICAgICAgIHRocm93IGVyclxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5qOA5p+l5piv5ZCm5a2Y5Zyo5YW35pyJ57uZ5a6a5ZCN56ew55qE5rOo5YaM6aG5XG4gICAgICogQHBhcmFtIG5hbWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBoYXNSZWdpc3RyYXRpb24obmFtZTogc3RyaW5nIHwgc3ltYm9sKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIWdldFJlZ2lzdHJhdGlvbihuYW1lKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOe7meWumuS4gOS4quazqOWGjOmhueOAgeexu+aIluWHveaVsO+8jOaehOW7uuWFtuW5tui/lOWbnuOAguS4jeS8mue8k+WtmOWug++8jOi/meaEj+WRs+edgOWmguaenOS8oOmAkuS6huazqOWGjOmhue+8jOWImeS4jeS8muS9v+eUqOS7u+S9lemFjee9rueahOeUn+WRveWRqOacn1xuICAgICAqIEBwYXJhbSB0YXJnZXRPclJlc29sdmVyXG4gICAgICogQHBhcmFtIG9wdHNcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBidWlsZDxUPihcbiAgICAgICAgdGFyZ2V0T3JSZXNvbHZlcjogUmVzb2x2ZXI8VD4gfCBDbGFzc09yRnVuY3Rpb25SZXR1cm5pbmc8VD4sXG4gICAgICAgIG9wdHM/OiBCdWlsZFJlc29sdmVyT3B0aW9uczxUPlxuICAgICk6IFQge1xuICAgICAgICBpZiAodGFyZ2V0T3JSZXNvbHZlciAmJiAodGFyZ2V0T3JSZXNvbHZlciBhcyBSZXNvbHZlcjxUPikucmVzb2x2ZSkgcmV0dXJuICh0YXJnZXRPclJlc29sdmVyIGFzIFJlc29sdmVyPFQ+KS5yZXNvbHZlKGNvbnRhaW5lcilcbiAgICAgICAgY29uc3QgZnVuY05hbWU6IHN0cmluZyA9ICdidWlsZCdcbiAgICAgICAgY29uc3QgcGFyYW1OYW1lOiBzdHJpbmcgPSAndGFyZ2V0T3JSZXNvbHZlcidcbiAgICAgICAgRGVwZW5kZW5jeUluamVjdGlvblR5cGVFcnJvci5hc3NlcnQoXG4gICAgICAgICAgICB0YXJnZXRPclJlc29sdmVyLFxuICAgICAgICAgICAgZnVuY05hbWUsXG4gICAgICAgICAgICBwYXJhbU5hbWUsXG4gICAgICAgICAgICAnYSByZWdpc3RyYXRpb24sIGZ1bmN0aW9uIG9yIGNsYXNzJyxcbiAgICAgICAgICAgIHRhcmdldE9yUmVzb2x2ZXJcbiAgICAgICAgKVxuICAgICAgICBEZXBlbmRlbmN5SW5qZWN0aW9uVHlwZUVycm9yLmFzc2VydChcbiAgICAgICAgICAgIHR5cGVvZiB0YXJnZXRPclJlc29sdmVyID09PSAnZnVuY3Rpb24nLFxuICAgICAgICAgICAgZnVuY05hbWUsXG4gICAgICAgICAgICBwYXJhbU5hbWUsXG4gICAgICAgICAgICAnYSBmdW5jdGlvbiBvciBjbGFzcycsXG4gICAgICAgICAgICB0YXJnZXRPclJlc29sdmVyXG4gICAgICAgIClcbiAgICAgICAgY29uc3QgcmVzb2x2ZXI6IEJ1aWxkUmVzb2x2ZXI8VD4gJiBEaXNwb3NhYmxlUmVzb2x2ZXI8VD4gPSBpc0NsYXNzKHRhcmdldE9yUmVzb2x2ZXIgYXMgYW55KVxuICAgICAgICAgICAgPyBhc0NsYXNzKHRhcmdldE9yUmVzb2x2ZXIgYXMgQ29uc3RydWN0b3I8VD4sIG9wdHMpXG4gICAgICAgICAgICA6IGFzRnVuY3Rpb24odGFyZ2V0T3JSZXNvbHZlciBhcyBGdW5jdGlvblJldHVybmluZzxUPiwgb3B0cylcbiAgICAgICAgcmV0dXJuIHJlc29sdmVyLnJlc29sdmUoY29udGFpbmVyKVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvYWRNb2R1bGVzPEVTTSBleHRlbmRzIGJvb2xlYW4gPSBmYWxzZT4oXG4gICAgICAgIGdsb2JQYXR0ZXJuczogQXJyYXk8c3RyaW5nIHwgR2xvYldpdGhPcHRpb25zPixcbiAgICAgICAgb3B0czogTG9hZE1vZHVsZXNPcHRpb25zPEVTTT5cbiAgICApOiBFU00gZXh0ZW5kcyBmYWxzZSA/IElEZXBlbmRlbmN5SW5qZWN0aW9uQ29udGFpbmVyIDogUHJvbWlzZTxJRGVwZW5kZW5jeUluamVjdGlvbkNvbnRhaW5lcj5cbiAgICAvKipcbiAgICAgKiDlsIYgbGliL2xvYWRNb2R1bGVzIOe7keWumuWIsOatpOWuueWZqO+8jOW5tuaPkOS+m+WFtuS+nei1lumhueeahOecn+WunuWunueOsOOAguatpOWklu+8jOS7u+S9leS9v+eUqCBkZXBlbmRzT24gQVBJIOeahOaooeWdl+mDveWwhuiiq+ino+aekFxuICAgICAqIEBwYXJhbSBnbG9iUGF0dGVybnNcbiAgICAgKiBAcGFyYW0gb3B0c1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxvYWRNb2R1bGVzPEVTTSBleHRlbmRzIGJvb2xlYW4gPSBmYWxzZT4oXG4gICAgICAgIGdsb2JQYXR0ZXJuczogQXJyYXk8c3RyaW5nIHwgR2xvYldpdGhPcHRpb25zPixcbiAgICAgICAgb3B0czogTG9hZE1vZHVsZXNPcHRpb25zPEVTTT5cbiAgICApOiBQcm9taXNlPElEZXBlbmRlbmN5SW5qZWN0aW9uQ29udGFpbmVyPiB8IElEZXBlbmRlbmN5SW5qZWN0aW9uQ29udGFpbmVyIHtcbiAgICAgICAgY29uc3QgX2xvYWRNb2R1bGVzRGVwcyA9IHtcbiAgICAgICAgICAgIHJlcXVpcmU6XG4gICAgICAgICAgICAgICAgb3B0aW9ucyEucmVxdWlyZSB8fFxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uICh1cmk6IHN0cmluZykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWlyZSh1cmkpXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxpc3RNb2R1bGVzLFxuICAgICAgICAgICAgY29udGFpbmVyXG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdHM/LmVzTW9kdWxlcykge1xuICAgICAgICAgICAgX2xvYWRNb2R1bGVzRGVwcy5yZXF1aXJlID0gaW1wb3J0TW9kdWxlXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHJlYWxMb2FkTW9kdWxlcyhcbiAgICAgICAgICAgICAgICAgICAgX2xvYWRNb2R1bGVzRGVwcyxcbiAgICAgICAgICAgICAgICAgICAgZ2xvYlBhdHRlcm5zLFxuICAgICAgICAgICAgICAgICAgICBvcHRzXG4gICAgICAgICAgICAgICAgKSBhcyBQcm9taXNlPExvYWRNb2R1bGVzUmVzdWx0PlxuICAgICAgICAgICAgKS50aGVuKCgpID0+IGNvbnRhaW5lcilcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlYWxMb2FkTW9kdWxlcyhfbG9hZE1vZHVsZXNEZXBzLCBnbG9iUGF0dGVybnMsIG9wdHMpXG4gICAgICAgICAgICByZXR1cm4gY29udGFpbmVyXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDplIDmr4Hor6Xlrrnlmajlj4rlhbblrZDlrrnlmajvvIzlr7nmiYDmnInlj6/ph4rmlL7nmoTms6jlhozov5vooYzmuIXnkIblubbmuIXpmaTnvJPlrZhcbiAgICAgKi9cbiAgICBhc3luYyBmdW5jdGlvbiBkaXNwb3NlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBlbnRyaWVzOiBbKHN0cmluZyB8IHN5bWJvbCksIENhY2hlRW50cnldW10gPSBBcnJheS5mcm9tKGNvbnRhaW5lci5jYWNoZS5lbnRyaWVzKCkpXG4gICAgICAgIGNvbnRhaW5lci5jYWNoZS5jbGVhcigpXG4gICAgICAgIHJldHVybiBQcm9taXNlLmFsbChcbiAgICAgICAgICAgIGVudHJpZXMubWFwKChbbmFtZSwgZW50cnldKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qge3Jlc29sdmVyLCB2YWx1ZX0gPSBlbnRyeVxuICAgICAgICAgICAgICAgIGNvbnN0IGRpc3Bvc2FibGU6IERpc3Bvc2FibGVSZXNvbHZlcjxhbnk+ID0gcmVzb2x2ZXIgYXMgRGlzcG9zYWJsZVJlc29sdmVyPGFueT5cbiAgICAgICAgICAgICAgICBpZiAoZGlzcG9zYWJsZS5kaXNwb3NlKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiBkaXNwb3NhYmxlLmRpc3Bvc2UhKHZhbHVlKSlcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKClcbiAgICAgICAgICAgIH0pXG4gICAgICAgICkudGhlbigoKSA9PiB1bmRlZmluZWQpXG4gICAgfVxufVxuXG5SZWZsZWN0LmRlZmluZU1ldGFkYXRhKERJX0NPTlRBSU5FUl9DUkVBVE9SX0NPTlNUUlVDVE9SLCB0cnVlLCBjcmVhdGVDb250YWluZXIpXG4iXX0=
@@ -0,0 +1,50 @@
1
+ 'use strict';
2
+
3
+ var chunkHWCTWIVZ_cjs = require('./chunk-HWCTWIVZ.cjs');
4
+ var chunkX4AIZSIY_cjs = require('./chunk-X4AIZSIY.cjs');
5
+ var chunkHXWC4YN6_cjs = require('./chunk-HXWC4YN6.cjs');
6
+ var chunkGGY7LCMQ_cjs = require('./chunk-GGY7LCMQ.cjs');
7
+
8
+ // src/tests/controllers/Test1Controller.ts
9
+ chunkGGY7LCMQ_cjs.init_cjs_shims();
10
+ var _Test1Controller = class _Test1Controller extends chunkHXWC4YN6_cjs.Controller {
11
+ testBoolean;
12
+ async test(inp) {
13
+ return await this.test1(inp);
14
+ }
15
+ async test1(inp) {
16
+ console.log("this is test1 method, the inp is:", inp);
17
+ return this.forward(chunkHWCTWIVZ_cjs.Test2Controller, Object.assign(inp, { test2: true }));
18
+ }
19
+ async test2() {
20
+ return "this is a equal 1, b equal 1";
21
+ }
22
+ async init() {
23
+ console.log("Configurable variable in test controller1:", this.testBoolean);
24
+ }
25
+ async destroy() {
26
+ console.log(this.className, "destroy!!!!!!");
27
+ }
28
+ async beforeAction(subject, method) {
29
+ console.log("beforeAction", subject, method, this.getInternalProperty("uniqueObjectId"));
30
+ return true;
31
+ }
32
+ };
33
+ chunkGGY7LCMQ_cjs.__name(_Test1Controller, "Test1Controller");
34
+ chunkGGY7LCMQ_cjs.__decorateClass([
35
+ chunkHXWC4YN6_cjs.Configurable()
36
+ ], _Test1Controller.prototype, "testBoolean", 2);
37
+ chunkGGY7LCMQ_cjs.__decorateClass([
38
+ chunkX4AIZSIY_cjs.Action({ a: 1 })
39
+ ], _Test1Controller.prototype, "test", 1);
40
+ chunkGGY7LCMQ_cjs.__decorateClass([
41
+ chunkX4AIZSIY_cjs.Action({ a: 2 })
42
+ ], _Test1Controller.prototype, "test1", 1);
43
+ chunkGGY7LCMQ_cjs.__decorateClass([
44
+ chunkX4AIZSIY_cjs.Action({ a: 1, b: 1 })
45
+ ], _Test1Controller.prototype, "test2", 1);
46
+ var Test1Controller = _Test1Controller;
47
+
48
+ exports.Test1Controller = Test1Controller;
49
+ //# sourceMappingURL=out.js.map
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXN0cy9jb250cm9sbGVycy9UZXN0MUNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUtPLElBQU0sbUJBQU4sTUFBTSx5QkFBd0IsV0FBVztBQUFBLEVBR3JDO0FBQUEsRUFHUCxNQUFhLEtBQUssS0FBSztBQUNuQixXQUFPLE1BQU0sS0FBSyxNQUFNLEdBQUc7QUFBQSxFQUUvQjtBQUFBLEVBR0EsTUFBYSxNQUFNLEtBQUs7QUFDcEIsWUFBUSxJQUFJLHFDQUFxQyxHQUFHO0FBQ3BELFdBQU8sS0FBSyxRQUFRLGlCQUFpQixPQUFPLE9BQU8sS0FBSyxFQUFDLE9BQU8sS0FBSSxDQUFDLENBQUM7QUFBQSxFQUMxRTtBQUFBLEVBR0EsTUFBYSxRQUFRO0FBQ2pCLFdBQU87QUFBQSxFQUNYO0FBQUEsRUFFQSxNQUFnQixPQUFzQjtBQUNsQyxZQUFRLElBQUksOENBQThDLEtBQUssV0FBVztBQUFBLEVBQzlFO0FBQUEsRUFFQSxNQUFnQixVQUF5QjtBQUNyQyxZQUFRLElBQUksS0FBSyxXQUFXLGVBQWU7QUFBQSxFQUMvQztBQUFBLEVBRUEsTUFBTSxhQUFhLFNBQThCLFFBQW9EO0FBQ2pHLFlBQVEsSUFBSSxnQkFBZ0IsU0FBUyxRQUFRLEtBQUssb0JBQW9CLGdCQUFnQixDQUFDO0FBQ3ZGLFdBQU87QUFBQSxFQUNYO0FBQ0o7QUFsQ2dEO0FBR3JDO0FBQUEsRUFETixhQUFhO0FBQUEsR0FGTCxpQkFHRjtBQUdNO0FBQUEsRUFEWixPQUFPLEVBQUMsR0FBRyxFQUFDLENBQUM7QUFBQSxHQUxMLGlCQU1JO0FBTUE7QUFBQSxFQURaLE9BQU8sRUFBQyxHQUFHLEVBQUMsQ0FBQztBQUFBLEdBWEwsaUJBWUk7QUFNQTtBQUFBLEVBRFosT0FBTyxFQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUMsQ0FBQztBQUFBLEdBakJYLGlCQWtCSTtBQWxCVixJQUFNLGtCQUFOIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb250cm9sbGVyfSBmcm9tICcuLi8uLi9saWIvYmFzZS9Db250cm9sbGVyLmpzJ1xuaW1wb3J0IHtBY3Rpb259IGZyb20gJy4uLy4uL2RlY29yYXRvcnMvQ29udHJvbGxlckRlY29yYXRvcnMuanMnXG5pbXBvcnQge0NvbmZpZ3VyYWJsZX0gZnJvbSAnLi4vLi4vZGVjb3JhdG9ycy9EZXBlbmRlbmN5SW5qZWN0aW9uRGVjb3JhdG9ycy5qcydcbmltcG9ydCB7VGVzdDJDb250cm9sbGVyfSBmcm9tICcuL1Rlc3QyQ29udHJvbGxlci5qcydcblxuZXhwb3J0IGNsYXNzIFRlc3QxQ29udHJvbGxlciBleHRlbmRzIENvbnRyb2xsZXIge1xuXG4gICAgQENvbmZpZ3VyYWJsZSgpXG4gICAgcHVibGljIHRlc3RCb29sZWFuOiBib29sZWFuXG5cbiAgICBAQWN0aW9uKHthOiAxfSlcbiAgICBwdWJsaWMgYXN5bmMgdGVzdChpbnApIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMudGVzdDEoaW5wKVxuICAgICAgICAvLyByZXR1cm4gdGhpc1xuICAgIH1cblxuICAgIEBBY3Rpb24oe2E6IDJ9KVxuICAgIHB1YmxpYyBhc3luYyB0ZXN0MShpbnApIHtcbiAgICAgICAgY29uc29sZS5sb2coJ3RoaXMgaXMgdGVzdDEgbWV0aG9kLCB0aGUgaW5wIGlzOicsIGlucClcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9yd2FyZChUZXN0MkNvbnRyb2xsZXIsIE9iamVjdC5hc3NpZ24oaW5wLCB7dGVzdDI6IHRydWV9KSlcbiAgICB9XG5cbiAgICBAQWN0aW9uKHthOiAxLCBiOiAxfSlcbiAgICBwdWJsaWMgYXN5bmMgdGVzdDIoKSB7XG4gICAgICAgIHJldHVybiAndGhpcyBpcyBhIGVxdWFsIDEsIGIgZXF1YWwgMSdcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgaW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc29sZS5sb2coJ0NvbmZpZ3VyYWJsZSB2YXJpYWJsZSBpbiB0ZXN0IGNvbnRyb2xsZXIxOicsIHRoaXMudGVzdEJvb2xlYW4pXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGRlc3Ryb3koKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMuY2xhc3NOYW1lLCAnZGVzdHJveSEhISEhIScpXG4gICAgfVxuXG4gICAgYXN5bmMgYmVmb3JlQWN0aW9uKHN1YmplY3Q6IFJlY29yZDxzdHJpbmcsIGFueT4sIG1ldGhvZDogc3RyaW5nIHwgc3ltYm9sIHwgbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdiZWZvcmVBY3Rpb24nLCBzdWJqZWN0LCBtZXRob2QsIHRoaXMuZ2V0SW50ZXJuYWxQcm9wZXJ0eSgndW5pcXVlT2JqZWN0SWQnKSlcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { Interval } from './chunk-QXTBP6TW.js';
2
+ import { Inject, Application } from './chunk-7MJAWOWL.js';
3
+ import { init_esm_shims, __name, __decorateClass } from './chunk-5NK7E2HA.js';
4
+
5
+ // src/tests/intervals/TestInterval.ts
6
+ init_esm_shims();
7
+ var _TestInterval = class _TestInterval extends Interval {
8
+ app;
9
+ testComponent;
10
+ testObject;
11
+ executor() {
12
+ console.log(this.className, "got username:", this.testObject.getUsername());
13
+ }
14
+ };
15
+ __name(_TestInterval, "TestInterval");
16
+ __decorateClass([
17
+ Inject(Application)
18
+ ], _TestInterval.prototype, "app", 2);
19
+ __decorateClass([
20
+ Inject()
21
+ ], _TestInterval.prototype, "testComponent", 2);
22
+ __decorateClass([
23
+ Inject()
24
+ ], _TestInterval.prototype, "testObject", 2);
25
+ var TestInterval = _TestInterval;
26
+
27
+ export { TestInterval };
28
+ //# sourceMappingURL=out.js.map
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXN0cy9pbnRlcnZhbHMvVGVzdEludGVydmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFNTyxJQUFNLGdCQUFOLE1BQU0sc0JBQXFCLFNBQVM7QUFBQSxFQUdwQjtBQUFBLEVBR0E7QUFBQSxFQUdBO0FBQUEsRUFFVCxXQUFpQztBQUN2QyxZQUFRLElBQUksS0FBSyxXQUFXLGlCQUFpQixLQUFLLFdBQVcsWUFBWSxDQUFDO0FBQUEsRUFDOUU7QUFDSjtBQWQyQztBQUdwQjtBQUFBLEVBRGxCLE9BQU8sV0FBVztBQUFBLEdBRlYsY0FHVTtBQUdBO0FBQUEsRUFEbEIsT0FBTztBQUFBLEdBTEMsY0FNVTtBQUdBO0FBQUEsRUFEbEIsT0FBTztBQUFBLEdBUkMsY0FTVTtBQVRoQixJQUFNLGVBQU4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FwcGxpY2F0aW9uLCBJbnRlcnZhbH0gZnJvbSAnLi4vLi4vQ29yZS5qcydcbmltcG9ydCB7VGVzdENvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy9UZXN0Q29tcG9uZW50LmpzJ1xuaW1wb3J0IHtJbmplY3R9IGZyb20gJy4uLy4uL2RlY29yYXRvcnMvRGVwZW5kZW5jeUluamVjdGlvbkRlY29yYXRvcnMuanMnXG5pbXBvcnQge1Rlc3RPYmplY3R9IGZyb20gJy4uL29iamVjdHMvVGVzdE9iamVjdC5qcydcbmltcG9ydCB7RElfQ09OVEFJTkVSX0lOSkVDVF9JU19NT0RVTEVfR0VUVEVSfSBmcm9tICcuLi8uLi9jb25zdGFudHMvTWV0YWRhdGFLZXkuanMnXG5cbmV4cG9ydCBjbGFzcyBUZXN0SW50ZXJ2YWwgZXh0ZW5kcyBJbnRlcnZhbCB7XG5cbiAgICBASW5qZWN0KEFwcGxpY2F0aW9uKVxuICAgIHByb3RlY3RlZCByZWFkb25seSBhcHA6IEFwcGxpY2F0aW9uXG5cbiAgICBASW5qZWN0KClcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGVzdENvbXBvbmVudDogVGVzdENvbXBvbmVudFxuXG4gICAgQEluamVjdCgpXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRlc3RPYmplY3Q6IFRlc3RPYmplY3RcblxuICAgIHByb3RlY3RlZCBleGVjdXRvcigpOiBQcm9taXNlPHZvaWQ+IHwgdm9pZCB7XG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMuY2xhc3NOYW1lLCAnZ290IHVzZXJuYW1lOicsIHRoaXMudGVzdE9iamVjdC5nZXRVc2VybmFtZSgpKVxuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,23 @@
1
+ import { SymmetricEncryption } from './chunk-LJTCXKC4.js';
2
+ import { init_esm_shims, __name } from './chunk-5NK7E2HA.js';
3
+
4
+ // src/lib/crypto/camellia/CAMELLIA256.ts
5
+ init_esm_shims();
6
+ var _CAMELLIA256 = class _CAMELLIA256 extends SymmetricEncryption {
7
+ ivLength = 16;
8
+ keyLength = 32;
9
+ constructor(key, iv) {
10
+ super();
11
+ if (!arguments.length)
12
+ return;
13
+ const allowNullIV = iv === void 0;
14
+ const algorithm = `camellia-256-${allowNullIV ? "ecb" : "cbc"}`;
15
+ this.initCipher(algorithm, allowNullIV, key, iv);
16
+ }
17
+ };
18
+ __name(_CAMELLIA256, "CAMELLIA256");
19
+ var CAMELLIA256 = _CAMELLIA256;
20
+
21
+ export { CAMELLIA256 };
22
+ //# sourceMappingURL=out.js.map
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9saWIvY3J5cHRvL2NhbWVsbGlhL0NBTUVMTElBMjU2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBO0FBR08sSUFBTSxlQUFOLE1BQU0scUJBQW9CLG9CQUFvQjtBQUFBLEVBRTlCLFdBQW1CO0FBQUEsRUFFbkIsWUFBb0I7QUFBQSxFQUl2QyxZQUFZLEtBQXNCLElBQXNCO0FBQ3BELFVBQU07QUFDTixRQUFJLENBQUMsVUFBVTtBQUFRO0FBQ3ZCLFVBQU0sY0FBdUIsT0FBTztBQUNwQyxVQUFNLFlBQW9CLGdCQUFnQixjQUFjLFFBQVEsS0FBSztBQUNyRSxTQUFLLFdBQVcsV0FBVyxhQUFhLEtBQUssRUFBRTtBQUFBLEVBQ25EO0FBQ0o7QUFmcUQ7QUFBOUMsSUFBTSxjQUFOIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJ1xuaW1wb3J0IHtTeW1tZXRyaWNFbmNyeXB0aW9ufSBmcm9tICcuLi8uLi9iYXNlL2Fic3RyYWN0cy9TeW1tZXRyaWNFbmNyeXB0aW9uLmpzJ1xuXG5leHBvcnQgY2xhc3MgQ0FNRUxMSUEyNTYgZXh0ZW5kcyBTeW1tZXRyaWNFbmNyeXB0aW9uIHtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBpdkxlbmd0aDogbnVtYmVyID0gMTZcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBrZXlMZW5ndGg6IG51bWJlciA9IDMyXG5cbiAgICBjb25zdHJ1Y3RvcihrZXk6IEJ1ZmZlciwgaXY/OiBCdWZmZXIpXG4gICAgY29uc3RydWN0b3Ioa2V5OiBzdHJpbmcsIGl2Pzogc3RyaW5nKVxuICAgIGNvbnN0cnVjdG9yKGtleTogQnVmZmVyIHwgc3RyaW5nLCBpdj86IEJ1ZmZlciB8IHN0cmluZykge1xuICAgICAgICBzdXBlcigpXG4gICAgICAgIGlmICghYXJndW1lbnRzLmxlbmd0aCkgcmV0dXJuXG4gICAgICAgIGNvbnN0IGFsbG93TnVsbElWOiBib29sZWFuID0gaXYgPT09IHVuZGVmaW5lZFxuICAgICAgICBjb25zdCBhbGdvcml0aG06IHN0cmluZyA9IGBjYW1lbGxpYS0yNTYtJHthbGxvd051bGxJViA/ICdlY2InIDogJ2NiYyd9YFxuICAgICAgICB0aGlzLmluaXRDaXBoZXIoYWxnb3JpdGhtLCBhbGxvd051bGxJViwga2V5LCBpdilcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,14 @@
1
+ import { Exception } from './chunk-HODDA5D5.js';
2
+ import { init_esm_shims, __name } from './chunk-5NK7E2HA.js';
3
+
4
+ // src/exceptions/InvalidDTOValueException.ts
5
+ init_esm_shims();
6
+ var _InvalidDTOValueException = class _InvalidDTOValueException extends Exception {
7
+ errno = "E_INVALID_DTO_VALUE";
8
+ };
9
+ __name(_InvalidDTOValueException, "InvalidDTOValueException");
10
+ var InvalidDTOValueException = _InvalidDTOValueException;
11
+
12
+ export { InvalidDTOValueException };
13
+ //# sourceMappingURL=out.js.map
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9leGNlcHRpb25zL0ludmFsaWREVE9WYWx1ZUV4Y2VwdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTtBQUVPLElBQU0sNEJBQU4sTUFBTSxrQ0FBaUMsVUFBVTtBQUFBLEVBQzdDLFFBQXlCO0FBQ3BDO0FBRndEO0FBQWpELElBQU0sMkJBQU4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0V4Y2VwdGlvbn0gZnJvbSAnLi4vbGliL2Jhc2UvYWJzdHJhY3RzL0V4Y2VwdGlvbi5qcydcblxuZXhwb3J0IGNsYXNzIEludmFsaWREVE9WYWx1ZUV4Y2VwdGlvbiBleHRlbmRzIEV4Y2VwdGlvbiB7XG4gICAgcHVibGljIGVycm5vOiBudW1iZXIgfCBzdHJpbmcgPSAnRV9JTlZBTElEX0RUT19WQUxVRSdcbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ import { init_esm_shims } from './chunk-5NK7E2HA.js';
2
+
3
+ // src/interfaces/ISortArrayOptions.ts
4
+ init_esm_shims();
5
+ //# sourceMappingURL=out.js.map
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnRlcmZhY2VzL0lTb3J0QXJyYXlPcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIFRPcmRlciA9ICdhc2MnIHwgJ2Rlc2MnXG50eXBlIFRDb21wdXRlZEZ1bmN0aW9uPFQ+ID0gKCgpID0+IGFueSkgfCAoKGl0ZW06IFQpID0+IGFueSlcbnR5cGUgVENvbXB1dGVkPFQ+ID0geyBbY29tcHV0ZWRLZXk6IHN0cmluZ106IFRDb21wdXRlZEZ1bmN0aW9uPFQ+IH1cblxuZXhwb3J0IGludGVyZmFjZSBJU29ydEFycmF5T3B0aW9uczxUID0gYW55PiB7XG4gICAgcmVhZG9ubHkgYnk/OiBrZXlvZiBUIHwgc3RyaW5nXG4gICAgcmVhZG9ubHkgb3JkZXI/OiBUT3JkZXJcbiAgICByZWFkb25seSBjb21wdXRlZD86IFRDb21wdXRlZDxUPlxufVxuIl19
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ var chunkHBPRX3WA_cjs = require('./chunk-HBPRX3WA.cjs');
4
+ var chunkGGY7LCMQ_cjs = require('./chunk-GGY7LCMQ.cjs');
5
+
6
+ // src/exceptions/controller/NoMatchedControllerActionPatternException.ts
7
+ chunkGGY7LCMQ_cjs.init_cjs_shims();
8
+ var _NoMatchedControllerActionPatternException = class _NoMatchedControllerActionPatternException extends chunkHBPRX3WA_cjs.Exception {
9
+ errno = "E_NO_MATCHED_CONTROLLER_ACTION_PATTERN";
10
+ };
11
+ chunkGGY7LCMQ_cjs.__name(_NoMatchedControllerActionPatternException, "NoMatchedControllerActionPatternException");
12
+ var NoMatchedControllerActionPatternException = _NoMatchedControllerActionPatternException;
13
+
14
+ exports.NoMatchedControllerActionPatternException = NoMatchedControllerActionPatternException;
15
+ //# sourceMappingURL=out.js.map
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9leGNlcHRpb25zL2NvbnRyb2xsZXIvTm9NYXRjaGVkQ29udHJvbGxlckFjdGlvblBhdHRlcm5FeGNlcHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFFTyxJQUFNLDZDQUFOLE1BQU0sbURBQWtELFVBQVU7QUFBQSxFQUM5RCxRQUF5QjtBQUNwQztBQUZ5RTtBQUFsRSxJQUFNLDRDQUFOIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFeGNlcHRpb259IGZyb20gJy4uLy4uL2xpYi9iYXNlL2Fic3RyYWN0cy9FeGNlcHRpb24uanMnXG5cbmV4cG9ydCBjbGFzcyBOb01hdGNoZWRDb250cm9sbGVyQWN0aW9uUGF0dGVybkV4Y2VwdGlvbiBleHRlbmRzIEV4Y2VwdGlvbiB7XG4gICAgcHVibGljIGVycm5vOiBudW1iZXIgfCBzdHJpbmcgPSAnRV9OT19NQVRDSEVEX0NPTlRST0xMRVJfQUNUSU9OX1BBVFRFUk4nXG59XG4iXX0=
@@ -0,0 +1,69 @@
1
+ import { AsymmetricEncryption } from './chunk-BKCT2HSQ.js';
2
+ import { As } from './chunk-XO6M5AYN.js';
3
+ import { init_esm_shims, __name } from './chunk-5NK7E2HA.js';
4
+ import { createPrivateKey, createPublicKey, privateDecrypt, publicEncrypt, generateKeyPair, sign, verify } from 'crypto';
5
+
6
+ // src/lib/crypto/RSA.ts
7
+ init_esm_shims();
8
+ var _RSA = class _RSA extends AsymmetricEncryption {
9
+ options = {
10
+ signatureAlgorithm: "sha256"
11
+ };
12
+ createPrivateKey(privateKeyString) {
13
+ return createPrivateKey(privateKeyString);
14
+ }
15
+ createPublicKey(publicKeyString) {
16
+ return createPublicKey(publicKeyString);
17
+ }
18
+ decrypt(encryptedMessage) {
19
+ return privateDecrypt(this.privateKey, Buffer.from(encryptedMessage, "base64")).toString();
20
+ }
21
+ encrypt(message) {
22
+ return publicEncrypt(this.publicKey, Buffer.from(message)).toString("base64");
23
+ }
24
+ async generateKeyPair(options) {
25
+ return new Promise((resolve, reject) => {
26
+ options = options ? options : {};
27
+ options.modulusLength = options.modulusLength ? options.modulusLength : 1024;
28
+ options.publicExponent = options.publicExponent ? options.publicExponent : 65537;
29
+ options.publicKeyEncoding = options.publicKeyEncoding ? options.publicKeyEncoding : {};
30
+ options.publicKeyEncoding.type = options.publicKeyEncoding.type ? options.publicKeyEncoding.type : "pkcs1";
31
+ options.publicKeyEncoding.format = options.publicKeyEncoding.format ? options.publicKeyEncoding.format : "pem";
32
+ options.privateKeyEncoding = options.privateKeyEncoding ? options.privateKeyEncoding : {};
33
+ options.privateKeyEncoding.format = options.privateKeyEncoding.format ? options.privateKeyEncoding.format : "pem";
34
+ options.privateKeyEncoding.type = options.privateKeyEncoding.type ? options.privateKeyEncoding.type : "pkcs1";
35
+ return generateKeyPair("rsa", As(options), (err, publicKey, privateKey) => {
36
+ if (err)
37
+ return reject(err);
38
+ return resolve({
39
+ publicKey: typeof publicKey === "string" ? publicKey : publicKey.toString("base64"),
40
+ privateKey: typeof privateKey === "string" ? privateKey : privateKey.toString("base64")
41
+ });
42
+ });
43
+ });
44
+ }
45
+ sign(message) {
46
+ return sign(this.options.signatureAlgorithm, Buffer.from(message), this.privateKey).toString("base64");
47
+ }
48
+ verify(message, sign2) {
49
+ return verify(this.options.signatureAlgorithm, Buffer.from(message), this.publicKey, Buffer.from(sign2, "base64"));
50
+ }
51
+ static async generateKeyPair(options) {
52
+ return super.generateKeyPair(options);
53
+ }
54
+ static async loadKeyPair(keyPair, options) {
55
+ return As(super.loadKeyPair(keyPair, options));
56
+ }
57
+ static async loadPublicKey(inp, options) {
58
+ return super.loadPublicKey(inp, options);
59
+ }
60
+ static async loadPrivateKey(inp, options) {
61
+ return super.loadPrivateKey(inp, options);
62
+ }
63
+ };
64
+ __name(_RSA, "RSA");
65
+ var RSA = _RSA;
66
+
67
+ export { RSA };
68
+ //# sourceMappingURL=out.js.map
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9saWIvY3J5cHRvL1JTQS50cyJdLCJuYW1lcyI6WyJzaWduIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTtBQU1BO0FBQUEsRUFDSTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFFQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0c7QUE2Q0EsSUFBTSxPQUFOLE1BQU0sYUFBWSxxQkFBcUI7QUFBQSxFQUVoQyxVQUFzQjtBQUFBLElBQzVCLG9CQUFvQjtBQUFBLEVBQ3hCO0FBQUEsRUFFVSxpQkFBaUIsa0JBQXFDO0FBQzVELFdBQU8saUJBQWlCLGdCQUFnQjtBQUFBLEVBQzVDO0FBQUEsRUFFVSxnQkFBZ0IsaUJBQW9DO0FBQzFELFdBQU8sZ0JBQWdCLGVBQWU7QUFBQSxFQUMxQztBQUFBLEVBRVUsUUFBUSxrQkFBa0M7QUFDaEQsV0FBTyxlQUFlLEtBQUssWUFBWSxPQUFPLEtBQUssa0JBQWtCLFFBQVEsQ0FBQyxFQUFFLFNBQVM7QUFBQSxFQUM3RjtBQUFBLEVBRVUsUUFBUSxTQUF5QjtBQUN2QyxXQUFPLGNBQWMsS0FBSyxXQUFXLE9BQU8sS0FBSyxPQUFPLENBQUMsRUFBRSxTQUFTLFFBQVE7QUFBQSxFQUNoRjtBQUFBLEVBRUEsTUFBZ0IsZ0JBQWdCLFNBQW1FO0FBQy9GLFdBQU8sSUFBSSxRQUFRLENBQUMsU0FBUyxXQUFXO0FBQ3BDLGdCQUFVLFVBQVUsVUFBVSxDQUFDO0FBQy9CLGNBQVEsZ0JBQWdCLFFBQVEsZ0JBQWdCLFFBQVEsZ0JBQWdCO0FBQ3hFLGNBQVEsaUJBQWlCLFFBQVEsaUJBQWlCLFFBQVEsaUJBQWlCO0FBQzNFLGNBQVEsb0JBQW9CLFFBQVEsb0JBQW9CLFFBQVEsb0JBQW9CLENBQUM7QUFDckYsY0FBUSxrQkFBa0IsT0FBTyxRQUFRLGtCQUFrQixPQUFPLFFBQVEsa0JBQWtCLE9BQU87QUFDbkcsY0FBUSxrQkFBa0IsU0FBUyxRQUFRLGtCQUFrQixTQUFTLFFBQVEsa0JBQWtCLFNBQVM7QUFDekcsY0FBUSxxQkFBcUIsUUFBUSxxQkFBcUIsUUFBUSxxQkFBcUIsQ0FBQztBQUN4RixjQUFRLG1CQUFtQixTQUFTLFFBQVEsbUJBQW1CLFNBQVMsUUFBUSxtQkFBbUIsU0FBUztBQUM1RyxjQUFRLG1CQUFtQixPQUFPLFFBQVEsbUJBQW1CLE9BQU8sUUFBUSxtQkFBbUIsT0FBTztBQUN0RyxhQUFPLGdCQUFnQixPQUFPLEdBQVEsT0FBTyxHQUFHLENBQUMsS0FBbUIsV0FBNEIsZUFBc0M7QUFDbEksWUFBSTtBQUFLLGlCQUFPLE9BQU8sR0FBRztBQUMxQixlQUFPLFFBQVE7QUFBQSxVQUNYLFdBQVcsT0FBTyxjQUFjLFdBQVcsWUFBWSxVQUFVLFNBQVMsUUFBUTtBQUFBLFVBQ2xGLFlBQVksT0FBTyxlQUFlLFdBQVcsYUFBYSxXQUFXLFNBQVMsUUFBUTtBQUFBLFFBQzFGLENBQUM7QUFBQSxNQUNMLENBQUM7QUFBQSxJQUNMLENBQUM7QUFBQSxFQUNMO0FBQUEsRUFFVSxLQUFLLFNBQXlCO0FBQ3BDLFdBQU8sS0FBSyxLQUFLLFFBQVEsb0JBQW9CLE9BQU8sS0FBSyxPQUFPLEdBQUcsS0FBSyxVQUFVLEVBQUUsU0FBUyxRQUFRO0FBQUEsRUFDekc7QUFBQSxFQUVVLE9BQU8sU0FBaUJBLE9BQXVCO0FBQ3JELFdBQU8sT0FBTyxLQUFLLFFBQVEsb0JBQW9CLE9BQU8sS0FBSyxPQUFPLEdBQUcsS0FBSyxXQUFXLE9BQU8sS0FBS0EsT0FBTSxRQUFRLENBQUM7QUFBQSxFQUNwSDtBQUFBLEVBRUEsYUFBb0IsZ0JBQWdCLFNBQW1FO0FBQ25HLFdBQU8sTUFBTSxnQkFBZ0IsT0FBTztBQUFBLEVBQ3hDO0FBQUEsRUFFQSxhQUFvQixZQUFrRCxTQUFzQyxTQUFrQztBQUMxSSxXQUFPLEdBQU0sTUFBTSxZQUFpQixTQUFTLE9BQU8sQ0FBQztBQUFBLEVBQ3pEO0FBQUEsRUFFQSxhQUFvQixjQUFjLEtBQXdCLFNBQTJEO0FBQ2pILFdBQU8sTUFBTSxjQUFjLEtBQUssT0FBTztBQUFBLEVBQzNDO0FBQUEsRUFFQSxhQUFvQixlQUFlLEtBQXdCLFNBQTREO0FBQ25ILFdBQU8sTUFBTSxlQUFlLEtBQUssT0FBTztBQUFBLEVBQzVDO0FBRUo7QUFuRThDO0FBQXZDLElBQU0sTUFBTiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAncmVmbGVjdC1tZXRhZGF0YSdcbmltcG9ydCB7XG4gICAgQXN5bW1ldHJpY0VuY3J5cHRpb24sXG4gICAgQXN5bW1ldHJpY0VuY3J5cHRpb25LZXlQYWlyLCBBc3ltbWV0cmljRW5jcnlwdGlvblByaXZhdGUsXG4gICAgQXN5bW1ldHJpY0VuY3J5cHRpb25QdWJsaWNcbn0gZnJvbSAnLi4vYmFzZS9hYnN0cmFjdHMvQXN5bW1ldHJpY0VuY3J5cHRpb24uanMnXG5pbXBvcnQge1xuICAgIGNyZWF0ZVByaXZhdGVLZXksXG4gICAgY3JlYXRlUHVibGljS2V5LFxuICAgIGdlbmVyYXRlS2V5UGFpcixcbiAgICBLZXlPYmplY3QsXG4gICAgcHJpdmF0ZURlY3J5cHQsXG4gICAgcHVibGljRW5jcnlwdCxcbiAgICBzaWduLFxuICAgIHZlcmlmeVxufSBmcm9tICdjcnlwdG8nXG5pbXBvcnQge0FzfSBmcm9tICcuLi8uLi9VdGlsaXRpZXMuanMnXG5pbXBvcnQge1BhdGhMaWtlfSBmcm9tICdmcydcblxuZXhwb3J0IGludGVyZmFjZSBSU0FLZXlQYWlyT3B0aW9ucyB7XG4gICAgLyoqXG4gICAgICog5a+G6ZKl6ZW/5bqm77yM5LulYml05Li65Y2V5L2NXG4gICAgICogQGRlZmF1bHQgMTAyNFxuICAgICAqL1xuICAgIG1vZHVsdXNMZW5ndGg/OiBudW1iZXJcbiAgICAvKipcbiAgICAgKiDlhazpkqXmjIfmlbBcbiAgICAgKiBAZGVmYXVsdCAweDEwMDAxXG4gICAgICovXG4gICAgcHVibGljRXhwb25lbnQ/OiBudW1iZXIgfCB1bmRlZmluZWRcbiAgICBwdWJsaWNLZXlFbmNvZGluZz86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZWZhdWx0IHBrY3MxXG4gICAgICAgICAqL1xuICAgICAgICB0eXBlPzogJ3BrY3MxJyB8ICdzcGtpJ1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlZmF1bHQgcGVtXG4gICAgICAgICAqL1xuICAgICAgICBmb3JtYXQ/OiAncGVtJyB8ICdkZXInXG4gICAgfVxuICAgIHByaXZhdGVLZXlFbmNvZGluZz86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZWZhdWx0IHBlbVxuICAgICAgICAgKi9cbiAgICAgICAgZm9ybWF0PzogJ3BlbScgfCAnZGVyJ1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlZmF1bHQgcGtjczFcbiAgICAgICAgICovXG4gICAgICAgIHR5cGU/OiAncGtjczEnIHwgJ3BrY3M4JztcbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUlNBT3B0aW9ucyB7XG4gICAgLyoqXG4gICAgICog562+5ZCN5oiW6aqM562+5pe25omA5L2/55So55qE5ZOI5biM566X5rOVXG4gICAgICogQGRlZmF1bHQgc2hhMjU2XG4gICAgICovXG4gICAgc2lnbmF0dXJlQWxnb3JpdGhtPzogc3RyaW5nXG59XG5cbmV4cG9ydCBjbGFzcyBSU0EgZXh0ZW5kcyBBc3ltbWV0cmljRW5jcnlwdGlvbiB7XG5cbiAgICBwcm90ZWN0ZWQgb3B0aW9uczogUlNBT3B0aW9ucyA9IHtcbiAgICAgICAgc2lnbmF0dXJlQWxnb3JpdGhtOiAnc2hhMjU2J1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVQcml2YXRlS2V5KHByaXZhdGVLZXlTdHJpbmc6IHN0cmluZyk6IEtleU9iamVjdCB7XG4gICAgICAgIHJldHVybiBjcmVhdGVQcml2YXRlS2V5KHByaXZhdGVLZXlTdHJpbmcpXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVB1YmxpY0tleShwdWJsaWNLZXlTdHJpbmc6IHN0cmluZyk6IEtleU9iamVjdCB7XG4gICAgICAgIHJldHVybiBjcmVhdGVQdWJsaWNLZXkocHVibGljS2V5U3RyaW5nKVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBkZWNyeXB0KGVuY3J5cHRlZE1lc3NhZ2U6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBwcml2YXRlRGVjcnlwdCh0aGlzLnByaXZhdGVLZXksIEJ1ZmZlci5mcm9tKGVuY3J5cHRlZE1lc3NhZ2UsICdiYXNlNjQnKSkudG9TdHJpbmcoKVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBlbmNyeXB0KG1lc3NhZ2U6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBwdWJsaWNFbmNyeXB0KHRoaXMucHVibGljS2V5LCBCdWZmZXIuZnJvbShtZXNzYWdlKSkudG9TdHJpbmcoJ2Jhc2U2NCcpXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGdlbmVyYXRlS2V5UGFpcihvcHRpb25zPzogUlNBS2V5UGFpck9wdGlvbnMpOiBQcm9taXNlPEFzeW1tZXRyaWNFbmNyeXB0aW9uS2V5UGFpcj4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgPyBvcHRpb25zIDoge31cbiAgICAgICAgICAgIG9wdGlvbnMubW9kdWx1c0xlbmd0aCA9IG9wdGlvbnMubW9kdWx1c0xlbmd0aCA/IG9wdGlvbnMubW9kdWx1c0xlbmd0aCA6IDEwMjRcbiAgICAgICAgICAgIG9wdGlvbnMucHVibGljRXhwb25lbnQgPSBvcHRpb25zLnB1YmxpY0V4cG9uZW50ID8gb3B0aW9ucy5wdWJsaWNFeHBvbmVudCA6IDB4MTAwMDFcbiAgICAgICAgICAgIG9wdGlvbnMucHVibGljS2V5RW5jb2RpbmcgPSBvcHRpb25zLnB1YmxpY0tleUVuY29kaW5nID8gb3B0aW9ucy5wdWJsaWNLZXlFbmNvZGluZyA6IHt9XG4gICAgICAgICAgICBvcHRpb25zLnB1YmxpY0tleUVuY29kaW5nLnR5cGUgPSBvcHRpb25zLnB1YmxpY0tleUVuY29kaW5nLnR5cGUgPyBvcHRpb25zLnB1YmxpY0tleUVuY29kaW5nLnR5cGUgOiAncGtjczEnXG4gICAgICAgICAgICBvcHRpb25zLnB1YmxpY0tleUVuY29kaW5nLmZvcm1hdCA9IG9wdGlvbnMucHVibGljS2V5RW5jb2RpbmcuZm9ybWF0ID8gb3B0aW9ucy5wdWJsaWNLZXlFbmNvZGluZy5mb3JtYXQgOiAncGVtJ1xuICAgICAgICAgICAgb3B0aW9ucy5wcml2YXRlS2V5RW5jb2RpbmcgPSBvcHRpb25zLnByaXZhdGVLZXlFbmNvZGluZyA/IG9wdGlvbnMucHJpdmF0ZUtleUVuY29kaW5nIDoge31cbiAgICAgICAgICAgIG9wdGlvbnMucHJpdmF0ZUtleUVuY29kaW5nLmZvcm1hdCA9IG9wdGlvbnMucHJpdmF0ZUtleUVuY29kaW5nLmZvcm1hdCA/IG9wdGlvbnMucHJpdmF0ZUtleUVuY29kaW5nLmZvcm1hdCA6ICdwZW0nXG4gICAgICAgICAgICBvcHRpb25zLnByaXZhdGVLZXlFbmNvZGluZy50eXBlID0gb3B0aW9ucy5wcml2YXRlS2V5RW5jb2RpbmcudHlwZSA/IG9wdGlvbnMucHJpdmF0ZUtleUVuY29kaW5nLnR5cGUgOiAncGtjczEnXG4gICAgICAgICAgICByZXR1cm4gZ2VuZXJhdGVLZXlQYWlyKCdyc2EnLCBBczxhbnk+KG9wdGlvbnMpLCAoZXJyOiBFcnJvciB8IG51bGwsIHB1YmxpY0tleTogc3RyaW5nIHwgQnVmZmVyLCBwcml2YXRlS2V5OiBzdHJpbmcgfCBCdWZmZXIpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSByZXR1cm4gcmVqZWN0KGVycilcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgICAgIHB1YmxpY0tleTogdHlwZW9mIHB1YmxpY0tleSA9PT0gJ3N0cmluZycgPyBwdWJsaWNLZXkgOiBwdWJsaWNLZXkudG9TdHJpbmcoJ2Jhc2U2NCcpLFxuICAgICAgICAgICAgICAgICAgICBwcml2YXRlS2V5OiB0eXBlb2YgcHJpdmF0ZUtleSA9PT0gJ3N0cmluZycgPyBwcml2YXRlS2V5IDogcHJpdmF0ZUtleS50b1N0cmluZygnYmFzZTY0JylcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2lnbihtZXNzYWdlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gc2lnbih0aGlzLm9wdGlvbnMuc2lnbmF0dXJlQWxnb3JpdGhtLCBCdWZmZXIuZnJvbShtZXNzYWdlKSwgdGhpcy5wcml2YXRlS2V5KS50b1N0cmluZygnYmFzZTY0JylcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdmVyaWZ5KG1lc3NhZ2U6IHN0cmluZywgc2lnbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2ZXJpZnkodGhpcy5vcHRpb25zLnNpZ25hdHVyZUFsZ29yaXRobSwgQnVmZmVyLmZyb20obWVzc2FnZSksIHRoaXMucHVibGljS2V5LCBCdWZmZXIuZnJvbShzaWduLCAnYmFzZTY0JykpXG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBhc3luYyBnZW5lcmF0ZUtleVBhaXIob3B0aW9ucz86IFJTQUtleVBhaXJPcHRpb25zKTogUHJvbWlzZTxBc3ltbWV0cmljRW5jcnlwdGlvbktleVBhaXI+IHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmdlbmVyYXRlS2V5UGFpcihvcHRpb25zKVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYXN5bmMgbG9hZEtleVBhaXI8VCBleHRlbmRzIEFzeW1tZXRyaWNFbmNyeXB0aW9uID0gUlNBPihrZXlQYWlyOiBBc3ltbWV0cmljRW5jcnlwdGlvbktleVBhaXIsIG9wdGlvbnM/OiBSU0FPcHRpb25zKTogUHJvbWlzZTxUPiB7XG4gICAgICAgIHJldHVybiBBczxUPihzdXBlci5sb2FkS2V5UGFpcjxSU0E+KGtleVBhaXIsIG9wdGlvbnMpKVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYXN5bmMgbG9hZFB1YmxpY0tleShpbnA6IFBhdGhMaWtlIHwgc3RyaW5nLCBvcHRpb25zPzogUlNBT3B0aW9ucyk6IFByb21pc2U8QXN5bW1ldHJpY0VuY3J5cHRpb25QdWJsaWM+IHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmxvYWRQdWJsaWNLZXkoaW5wLCBvcHRpb25zKVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYXN5bmMgbG9hZFByaXZhdGVLZXkoaW5wOiBzdHJpbmcgfCBQYXRoTGlrZSwgb3B0aW9ucz86IFJTQU9wdGlvbnMpOiBQcm9taXNlPEFzeW1tZXRyaWNFbmNyeXB0aW9uUHJpdmF0ZT4ge1xuICAgICAgICByZXR1cm4gc3VwZXIubG9hZFByaXZhdGVLZXkoaW5wLCBvcHRpb25zKVxuICAgIH1cblxufVxuIl19