@keeper-security/keeperapi 16.0.0 → 16.0.3

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 (272) hide show
  1. package/.idea/keeperapi.iml +12 -0
  2. package/.idea/modules.xml +8 -0
  3. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/code/cache/1c87a75f7bda91e438f008e21dafe531c949031d +1 -0
  4. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/code/cache/55ab809efdb0061fba3df7fa2029e2706a361534 +1 -0
  5. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/code/cache/5e18f43a9b613f6f6f2302b3a4e5176f6bc92fc5 +1 -0
  6. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/code/cache/61937b699b545d77d9bb72af5e7182c1803ae24c +1 -0
  7. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/code/cache/6eb75399e6e0179b01b9d8cb1afc01f5068ef4f0 +1 -0
  8. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/code/cache/7c0e3c33301dea7e674a558fac5e4f028dbaa3ad +1 -0
  9. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/code/cache/7fbbd271f2a6fe2a55d7ee5e3ad7716e7cf051ba +1 -0
  10. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/code/cache/85bbe002887f4018a0fe647b8b05194dbc048f66 +1 -0
  11. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/code/cache/8f851753b53908ad3f972c31696dbdeeed9b4661 +1 -0
  12. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/code/cache/9eb60cc6282da763987e9a366716c57e69db7cbc +1 -0
  13. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/code/cache/dc4d6f4549ac6f4017ff017e35d2349480068cdf +1 -0
  14. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/code/cache/e4d5be0687b96b93a032d9922fa511f04ed27deb +1 -0
  15. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/code/cache/f385a84342a7d9131d8da13c2546cde25fa23f1d +1 -0
  16. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/semanticDiagnostics/cache/1c87a75f7bda91e438f008e21dafe531c949031d +1 -0
  17. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/semanticDiagnostics/cache/55ab809efdb0061fba3df7fa2029e2706a361534 +1 -0
  18. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/semanticDiagnostics/cache/5e18f43a9b613f6f6f2302b3a4e5176f6bc92fc5 +1 -0
  19. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/semanticDiagnostics/cache/61937b699b545d77d9bb72af5e7182c1803ae24c +1 -0
  20. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/semanticDiagnostics/cache/6eb75399e6e0179b01b9d8cb1afc01f5068ef4f0 +1 -0
  21. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/semanticDiagnostics/cache/7c0e3c33301dea7e674a558fac5e4f028dbaa3ad +1 -0
  22. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/semanticDiagnostics/cache/7fbbd271f2a6fe2a55d7ee5e3ad7716e7cf051ba +1 -0
  23. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/semanticDiagnostics/cache/85bbe002887f4018a0fe647b8b05194dbc048f66 +1 -0
  24. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/semanticDiagnostics/cache/8f851753b53908ad3f972c31696dbdeeed9b4661 +1 -0
  25. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/semanticDiagnostics/cache/9eb60cc6282da763987e9a366716c57e69db7cbc +1 -0
  26. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/semanticDiagnostics/cache/dc4d6f4549ac6f4017ff017e35d2349480068cdf +1 -0
  27. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/semanticDiagnostics/cache/e4d5be0687b96b93a032d9922fa511f04ed27deb +1 -0
  28. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/semanticDiagnostics/cache/f385a84342a7d9131d8da13c2546cde25fa23f1d +1 -0
  29. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/syntacticDiagnostics/cache/1c87a75f7bda91e438f008e21dafe531c949031d +1 -0
  30. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/syntacticDiagnostics/cache/55ab809efdb0061fba3df7fa2029e2706a361534 +1 -0
  31. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/syntacticDiagnostics/cache/5e18f43a9b613f6f6f2302b3a4e5176f6bc92fc5 +1 -0
  32. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/syntacticDiagnostics/cache/61937b699b545d77d9bb72af5e7182c1803ae24c +1 -0
  33. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/syntacticDiagnostics/cache/6eb75399e6e0179b01b9d8cb1afc01f5068ef4f0 +1 -0
  34. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/syntacticDiagnostics/cache/7c0e3c33301dea7e674a558fac5e4f028dbaa3ad +1 -0
  35. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/syntacticDiagnostics/cache/7fbbd271f2a6fe2a55d7ee5e3ad7716e7cf051ba +1 -0
  36. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/syntacticDiagnostics/cache/85bbe002887f4018a0fe647b8b05194dbc048f66 +1 -0
  37. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/syntacticDiagnostics/cache/8f851753b53908ad3f972c31696dbdeeed9b4661 +1 -0
  38. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/syntacticDiagnostics/cache/9eb60cc6282da763987e9a366716c57e69db7cbc +1 -0
  39. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/syntacticDiagnostics/cache/dc4d6f4549ac6f4017ff017e35d2349480068cdf +1 -0
  40. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/syntacticDiagnostics/cache/e4d5be0687b96b93a032d9922fa511f04ed27deb +1 -0
  41. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/syntacticDiagnostics/cache/f385a84342a7d9131d8da13c2546cde25fa23f1d +1 -0
  42. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/types/cache/24fbc0427075baf3ac3fee2ada4ddd2fdd6804a6 +0 -0
  43. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/types/cache/3050043c8485297b366404c9b699f00a98a44b3c +0 -0
  44. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/types/cache/4dffa8599530c3200ba2fa8029fa291435ba7cf7 +0 -0
  45. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/types/cache/6a0bc58668c059b99bff8dba6f0246cb049f0db9 +0 -0
  46. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/types/cache/7351d2ef4cb3d5388301a3ad1d1f7e3a0782c0bd +0 -0
  47. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/types/cache/8d7296121e0007eebc1b0eabcfcc2a262d6bbc22 +0 -0
  48. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/types/cache/8fe39fe93705cfe38c1944a307c3fd64e5985d1e +0 -0
  49. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/types/cache/9f92f7bfd4bd0aa870a95101ec02f2a32337ff1f +0 -0
  50. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/types/cache/a6e317ef3069e9a270811fbc729535be3c405f41 +0 -0
  51. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/types/cache/ac8bef3228680d10f4db046facede43040f41854 +0 -0
  52. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/types/cache/afe32918d3a600939f39f4fcfb6852fe43f8ada9 +0 -0
  53. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/types/cache/bbe22fc71946abdfc667c2388606bfe83397ec81 +0 -0
  54. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/types/cache/d7bc52f98e9a008b81c621d963e9d4a276c80ee3 +0 -0
  55. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/types/cache/ddcd4d72185f8c85750f6f2f755c1152fddafdf4 +0 -0
  56. package/.rpt2_cache/rpt2_02b50c05ca0c5f1826efd221b9443199179ac6f1/types/cache/df632d4bb144fc3001f92ea2a2678baeb386dcc4 +0 -0
  57. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/code/cache/0155dc333b076ed1526d900b68620ead8c8d8b6b +1 -0
  58. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/code/cache/09a21931f2a982e751cd2b7ce45fa6df0bfdbfc6 +1 -0
  59. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/code/cache/0bd8fcd9e5871476984908e9d214bc12244a56c7 +1 -0
  60. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/code/cache/1c87a75f7bda91e438f008e21dafe531c949031d +1 -0
  61. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/code/cache/4af634b56884c8fd08ba3107422b0108644ee513 +1 -0
  62. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/code/cache/55ab809efdb0061fba3df7fa2029e2706a361534 +1 -0
  63. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/code/cache/624184538e182d7e8888620f356c12b51bbcc6ca +1 -0
  64. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/code/cache/67074a8d808b8e4a0c15d67f36f13664fcff8143 +1 -0
  65. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/code/cache/6eb75399e6e0179b01b9d8cb1afc01f5068ef4f0 +1 -0
  66. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/code/cache/7c0e3c33301dea7e674a558fac5e4f028dbaa3ad +1 -0
  67. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/code/cache/934e86e88e5eef117e7f7c7e98bb7b13ee83e8af +1 -0
  68. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/code/cache/a282f7f4f34b6e0f7604a1e31cac2d2efbc0304c +1 -0
  69. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/code/cache/b1af8b4bca5d49b190d355a5d7186b277280db7e +1 -0
  70. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/code/cache/b5f1f1702282c76ceff0f0ff97a3ba80b5adeccc +1 -0
  71. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/code/cache/bcfb396489824911797b349d7388000f2b3a3298 +1 -0
  72. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/code/cache/f2e98088f53c88114a0a5322154f96a639246440 +1 -0
  73. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/code/cache/f385a84342a7d9131d8da13c2546cde25fa23f1d +1 -0
  74. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/semanticDiagnostics/cache/0155dc333b076ed1526d900b68620ead8c8d8b6b +1 -0
  75. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/semanticDiagnostics/cache/09a21931f2a982e751cd2b7ce45fa6df0bfdbfc6 +1 -0
  76. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/semanticDiagnostics/cache/0bd8fcd9e5871476984908e9d214bc12244a56c7 +1 -0
  77. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/semanticDiagnostics/cache/1c87a75f7bda91e438f008e21dafe531c949031d +1 -0
  78. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/semanticDiagnostics/cache/4af634b56884c8fd08ba3107422b0108644ee513 +1 -0
  79. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/semanticDiagnostics/cache/55ab809efdb0061fba3df7fa2029e2706a361534 +1 -0
  80. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/semanticDiagnostics/cache/624184538e182d7e8888620f356c12b51bbcc6ca +1 -0
  81. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/semanticDiagnostics/cache/67074a8d808b8e4a0c15d67f36f13664fcff8143 +1 -0
  82. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/semanticDiagnostics/cache/6eb75399e6e0179b01b9d8cb1afc01f5068ef4f0 +1 -0
  83. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/semanticDiagnostics/cache/7c0e3c33301dea7e674a558fac5e4f028dbaa3ad +1 -0
  84. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/semanticDiagnostics/cache/934e86e88e5eef117e7f7c7e98bb7b13ee83e8af +1 -0
  85. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/semanticDiagnostics/cache/a282f7f4f34b6e0f7604a1e31cac2d2efbc0304c +1 -0
  86. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/semanticDiagnostics/cache/b1af8b4bca5d49b190d355a5d7186b277280db7e +1 -0
  87. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/semanticDiagnostics/cache/b5f1f1702282c76ceff0f0ff97a3ba80b5adeccc +1 -0
  88. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/semanticDiagnostics/cache/bcfb396489824911797b349d7388000f2b3a3298 +1 -0
  89. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/semanticDiagnostics/cache/f2e98088f53c88114a0a5322154f96a639246440 +1 -0
  90. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/semanticDiagnostics/cache/f385a84342a7d9131d8da13c2546cde25fa23f1d +1 -0
  91. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/syntacticDiagnostics/cache/0155dc333b076ed1526d900b68620ead8c8d8b6b +1 -0
  92. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/syntacticDiagnostics/cache/09a21931f2a982e751cd2b7ce45fa6df0bfdbfc6 +1 -0
  93. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/syntacticDiagnostics/cache/0bd8fcd9e5871476984908e9d214bc12244a56c7 +1 -0
  94. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/syntacticDiagnostics/cache/1c87a75f7bda91e438f008e21dafe531c949031d +1 -0
  95. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/syntacticDiagnostics/cache/4af634b56884c8fd08ba3107422b0108644ee513 +1 -0
  96. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/syntacticDiagnostics/cache/55ab809efdb0061fba3df7fa2029e2706a361534 +1 -0
  97. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/syntacticDiagnostics/cache/624184538e182d7e8888620f356c12b51bbcc6ca +1 -0
  98. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/syntacticDiagnostics/cache/67074a8d808b8e4a0c15d67f36f13664fcff8143 +1 -0
  99. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/syntacticDiagnostics/cache/6eb75399e6e0179b01b9d8cb1afc01f5068ef4f0 +1 -0
  100. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/syntacticDiagnostics/cache/7c0e3c33301dea7e674a558fac5e4f028dbaa3ad +1 -0
  101. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/syntacticDiagnostics/cache/934e86e88e5eef117e7f7c7e98bb7b13ee83e8af +1 -0
  102. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/syntacticDiagnostics/cache/a282f7f4f34b6e0f7604a1e31cac2d2efbc0304c +1 -0
  103. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/syntacticDiagnostics/cache/b1af8b4bca5d49b190d355a5d7186b277280db7e +1 -0
  104. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/syntacticDiagnostics/cache/b5f1f1702282c76ceff0f0ff97a3ba80b5adeccc +1 -0
  105. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/syntacticDiagnostics/cache/bcfb396489824911797b349d7388000f2b3a3298 +1 -0
  106. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/syntacticDiagnostics/cache/f2e98088f53c88114a0a5322154f96a639246440 +1 -0
  107. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/syntacticDiagnostics/cache/f385a84342a7d9131d8da13c2546cde25fa23f1d +1 -0
  108. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/types/cache/24fbc0427075baf3ac3fee2ada4ddd2fdd6804a6 +0 -0
  109. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/types/cache/3050043c8485297b366404c9b699f00a98a44b3c +0 -0
  110. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/types/cache/4dffa8599530c3200ba2fa8029fa291435ba7cf7 +0 -0
  111. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/types/cache/603166e7191a1eb2b59e6dc3a0c5060e83e42bf5 +0 -0
  112. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/types/cache/6a0bc58668c059b99bff8dba6f0246cb049f0db9 +0 -0
  113. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/types/cache/7351d2ef4cb3d5388301a3ad1d1f7e3a0782c0bd +0 -0
  114. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/types/cache/8d7296121e0007eebc1b0eabcfcc2a262d6bbc22 +0 -0
  115. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/types/cache/8fe39fe93705cfe38c1944a307c3fd64e5985d1e +0 -0
  116. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/types/cache/9f92f7bfd4bd0aa870a95101ec02f2a32337ff1f +0 -0
  117. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/types/cache/a6e317ef3069e9a270811fbc729535be3c405f41 +0 -0
  118. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/types/cache/ac8bef3228680d10f4db046facede43040f41854 +0 -0
  119. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/types/cache/afe32918d3a600939f39f4fcfb6852fe43f8ada9 +0 -0
  120. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/types/cache/bbe22fc71946abdfc667c2388606bfe83397ec81 +0 -0
  121. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/types/cache/d7bc52f98e9a008b81c621d963e9d4a276c80ee3 +0 -0
  122. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/types/cache/ddcd4d72185f8c85750f6f2f755c1152fddafdf4 +0 -0
  123. package/.rpt2_cache/rpt2_3297a01a1b62f1695764463c584003ad1da34817/types/cache/df632d4bb144fc3001f92ea2a2678baeb386dcc4 +0 -0
  124. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/code/cache/09a21931f2a982e751cd2b7ce45fa6df0bfdbfc6 +1 -0
  125. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/code/cache/1c87a75f7bda91e438f008e21dafe531c949031d +1 -0
  126. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/code/cache/55ab809efdb0061fba3df7fa2029e2706a361534 +1 -0
  127. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/code/cache/5e18f43a9b613f6f6f2302b3a4e5176f6bc92fc5 +1 -0
  128. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/code/cache/624184538e182d7e8888620f356c12b51bbcc6ca +1 -0
  129. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/code/cache/6eb75399e6e0179b01b9d8cb1afc01f5068ef4f0 +1 -0
  130. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/code/cache/7c0e3c33301dea7e674a558fac5e4f028dbaa3ad +1 -0
  131. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/code/cache/7fbbd271f2a6fe2a55d7ee5e3ad7716e7cf051ba +1 -0
  132. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/code/cache/8378bbd69de2cb8546f7e5f380a4ca34a2b252ac +1 -0
  133. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/code/cache/85bbe002887f4018a0fe647b8b05194dbc048f66 +1 -0
  134. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/code/cache/8f851753b53908ad3f972c31696dbdeeed9b4661 +1 -0
  135. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/code/cache/b5f1f1702282c76ceff0f0ff97a3ba80b5adeccc +1 -0
  136. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/code/cache/bcfb396489824911797b349d7388000f2b3a3298 +1 -0
  137. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/code/cache/dc4d6f4549ac6f4017ff017e35d2349480068cdf +1 -0
  138. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/code/cache/e4d5be0687b96b93a032d9922fa511f04ed27deb +1 -0
  139. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/code/cache/f2e98088f53c88114a0a5322154f96a639246440 +1 -0
  140. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/code/cache/f385a84342a7d9131d8da13c2546cde25fa23f1d +1 -0
  141. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/semanticDiagnostics/cache/09a21931f2a982e751cd2b7ce45fa6df0bfdbfc6 +1 -0
  142. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/semanticDiagnostics/cache/1c87a75f7bda91e438f008e21dafe531c949031d +1 -0
  143. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/semanticDiagnostics/cache/55ab809efdb0061fba3df7fa2029e2706a361534 +1 -0
  144. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/semanticDiagnostics/cache/5e18f43a9b613f6f6f2302b3a4e5176f6bc92fc5 +1 -0
  145. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/semanticDiagnostics/cache/624184538e182d7e8888620f356c12b51bbcc6ca +1 -0
  146. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/semanticDiagnostics/cache/6eb75399e6e0179b01b9d8cb1afc01f5068ef4f0 +1 -0
  147. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/semanticDiagnostics/cache/7c0e3c33301dea7e674a558fac5e4f028dbaa3ad +1 -0
  148. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/semanticDiagnostics/cache/7fbbd271f2a6fe2a55d7ee5e3ad7716e7cf051ba +1 -0
  149. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/semanticDiagnostics/cache/8378bbd69de2cb8546f7e5f380a4ca34a2b252ac +1 -0
  150. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/semanticDiagnostics/cache/85bbe002887f4018a0fe647b8b05194dbc048f66 +1 -0
  151. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/semanticDiagnostics/cache/8f851753b53908ad3f972c31696dbdeeed9b4661 +1 -0
  152. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/semanticDiagnostics/cache/b5f1f1702282c76ceff0f0ff97a3ba80b5adeccc +1 -0
  153. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/semanticDiagnostics/cache/bcfb396489824911797b349d7388000f2b3a3298 +1 -0
  154. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/semanticDiagnostics/cache/dc4d6f4549ac6f4017ff017e35d2349480068cdf +1 -0
  155. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/semanticDiagnostics/cache/e4d5be0687b96b93a032d9922fa511f04ed27deb +1 -0
  156. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/semanticDiagnostics/cache/f2e98088f53c88114a0a5322154f96a639246440 +1 -0
  157. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/semanticDiagnostics/cache/f385a84342a7d9131d8da13c2546cde25fa23f1d +1 -0
  158. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/syntacticDiagnostics/cache/09a21931f2a982e751cd2b7ce45fa6df0bfdbfc6 +1 -0
  159. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/syntacticDiagnostics/cache/1c87a75f7bda91e438f008e21dafe531c949031d +1 -0
  160. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/syntacticDiagnostics/cache/55ab809efdb0061fba3df7fa2029e2706a361534 +1 -0
  161. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/syntacticDiagnostics/cache/5e18f43a9b613f6f6f2302b3a4e5176f6bc92fc5 +1 -0
  162. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/syntacticDiagnostics/cache/624184538e182d7e8888620f356c12b51bbcc6ca +1 -0
  163. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/syntacticDiagnostics/cache/6eb75399e6e0179b01b9d8cb1afc01f5068ef4f0 +1 -0
  164. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/syntacticDiagnostics/cache/7c0e3c33301dea7e674a558fac5e4f028dbaa3ad +1 -0
  165. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/syntacticDiagnostics/cache/7fbbd271f2a6fe2a55d7ee5e3ad7716e7cf051ba +1 -0
  166. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/syntacticDiagnostics/cache/8378bbd69de2cb8546f7e5f380a4ca34a2b252ac +1 -0
  167. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/syntacticDiagnostics/cache/85bbe002887f4018a0fe647b8b05194dbc048f66 +1 -0
  168. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/syntacticDiagnostics/cache/8f851753b53908ad3f972c31696dbdeeed9b4661 +1 -0
  169. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/syntacticDiagnostics/cache/b5f1f1702282c76ceff0f0ff97a3ba80b5adeccc +1 -0
  170. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/syntacticDiagnostics/cache/bcfb396489824911797b349d7388000f2b3a3298 +1 -0
  171. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/syntacticDiagnostics/cache/dc4d6f4549ac6f4017ff017e35d2349480068cdf +1 -0
  172. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/syntacticDiagnostics/cache/e4d5be0687b96b93a032d9922fa511f04ed27deb +1 -0
  173. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/syntacticDiagnostics/cache/f2e98088f53c88114a0a5322154f96a639246440 +1 -0
  174. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/syntacticDiagnostics/cache/f385a84342a7d9131d8da13c2546cde25fa23f1d +1 -0
  175. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/types/cache/24fbc0427075baf3ac3fee2ada4ddd2fdd6804a6 +0 -0
  176. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/types/cache/3050043c8485297b366404c9b699f00a98a44b3c +0 -0
  177. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/types/cache/4dffa8599530c3200ba2fa8029fa291435ba7cf7 +0 -0
  178. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/types/cache/6a0bc58668c059b99bff8dba6f0246cb049f0db9 +0 -0
  179. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/types/cache/7351d2ef4cb3d5388301a3ad1d1f7e3a0782c0bd +0 -0
  180. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/types/cache/8d7296121e0007eebc1b0eabcfcc2a262d6bbc22 +0 -0
  181. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/types/cache/8fe39fe93705cfe38c1944a307c3fd64e5985d1e +0 -0
  182. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/types/cache/9f92f7bfd4bd0aa870a95101ec02f2a32337ff1f +0 -0
  183. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/types/cache/a6e317ef3069e9a270811fbc729535be3c405f41 +0 -0
  184. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/types/cache/ac8bef3228680d10f4db046facede43040f41854 +0 -0
  185. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/types/cache/afe32918d3a600939f39f4fcfb6852fe43f8ada9 +0 -0
  186. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/types/cache/bbe22fc71946abdfc667c2388606bfe83397ec81 +0 -0
  187. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/types/cache/d7bc52f98e9a008b81c621d963e9d4a276c80ee3 +0 -0
  188. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/types/cache/ddcd4d72185f8c85750f6f2f755c1152fddafdf4 +0 -0
  189. package/.rpt2_cache/rpt2_695cfcfdb8ad5fdc842bebc6c6523fff84b97236/types/cache/df632d4bb144fc3001f92ea2a2678baeb386dcc4 +0 -0
  190. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/code/cache/0155dc333b076ed1526d900b68620ead8c8d8b6b +1 -0
  191. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/code/cache/0bd8fcd9e5871476984908e9d214bc12244a56c7 +1 -0
  192. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/code/cache/1c87a75f7bda91e438f008e21dafe531c949031d +1 -0
  193. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/code/cache/4af634b56884c8fd08ba3107422b0108644ee513 +1 -0
  194. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/code/cache/55ab809efdb0061fba3df7fa2029e2706a361534 +1 -0
  195. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/code/cache/61937b699b545d77d9bb72af5e7182c1803ae24c +1 -0
  196. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/code/cache/651b0423c46988097da560167e3f6f432e8fbfc8 +1 -0
  197. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/code/cache/67074a8d808b8e4a0c15d67f36f13664fcff8143 +1 -0
  198. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/code/cache/6eb75399e6e0179b01b9d8cb1afc01f5068ef4f0 +1 -0
  199. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/code/cache/7c0e3c33301dea7e674a558fac5e4f028dbaa3ad +1 -0
  200. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/code/cache/934e86e88e5eef117e7f7c7e98bb7b13ee83e8af +1 -0
  201. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/code/cache/b1af8b4bca5d49b190d355a5d7186b277280db7e +1 -0
  202. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/code/cache/f385a84342a7d9131d8da13c2546cde25fa23f1d +1 -0
  203. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/semanticDiagnostics/cache/0155dc333b076ed1526d900b68620ead8c8d8b6b +1 -0
  204. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/semanticDiagnostics/cache/0bd8fcd9e5871476984908e9d214bc12244a56c7 +1 -0
  205. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/semanticDiagnostics/cache/1c87a75f7bda91e438f008e21dafe531c949031d +1 -0
  206. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/semanticDiagnostics/cache/4af634b56884c8fd08ba3107422b0108644ee513 +1 -0
  207. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/semanticDiagnostics/cache/55ab809efdb0061fba3df7fa2029e2706a361534 +1 -0
  208. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/semanticDiagnostics/cache/61937b699b545d77d9bb72af5e7182c1803ae24c +1 -0
  209. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/semanticDiagnostics/cache/651b0423c46988097da560167e3f6f432e8fbfc8 +1 -0
  210. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/semanticDiagnostics/cache/67074a8d808b8e4a0c15d67f36f13664fcff8143 +1 -0
  211. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/semanticDiagnostics/cache/6eb75399e6e0179b01b9d8cb1afc01f5068ef4f0 +1 -0
  212. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/semanticDiagnostics/cache/7c0e3c33301dea7e674a558fac5e4f028dbaa3ad +1 -0
  213. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/semanticDiagnostics/cache/934e86e88e5eef117e7f7c7e98bb7b13ee83e8af +1 -0
  214. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/semanticDiagnostics/cache/b1af8b4bca5d49b190d355a5d7186b277280db7e +1 -0
  215. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/semanticDiagnostics/cache/f385a84342a7d9131d8da13c2546cde25fa23f1d +1 -0
  216. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/syntacticDiagnostics/cache/0155dc333b076ed1526d900b68620ead8c8d8b6b +1 -0
  217. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/syntacticDiagnostics/cache/0bd8fcd9e5871476984908e9d214bc12244a56c7 +1 -0
  218. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/syntacticDiagnostics/cache/1c87a75f7bda91e438f008e21dafe531c949031d +1 -0
  219. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/syntacticDiagnostics/cache/4af634b56884c8fd08ba3107422b0108644ee513 +1 -0
  220. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/syntacticDiagnostics/cache/55ab809efdb0061fba3df7fa2029e2706a361534 +1 -0
  221. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/syntacticDiagnostics/cache/61937b699b545d77d9bb72af5e7182c1803ae24c +1 -0
  222. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/syntacticDiagnostics/cache/651b0423c46988097da560167e3f6f432e8fbfc8 +1 -0
  223. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/syntacticDiagnostics/cache/67074a8d808b8e4a0c15d67f36f13664fcff8143 +1 -0
  224. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/syntacticDiagnostics/cache/6eb75399e6e0179b01b9d8cb1afc01f5068ef4f0 +1 -0
  225. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/syntacticDiagnostics/cache/7c0e3c33301dea7e674a558fac5e4f028dbaa3ad +1 -0
  226. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/syntacticDiagnostics/cache/934e86e88e5eef117e7f7c7e98bb7b13ee83e8af +1 -0
  227. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/syntacticDiagnostics/cache/b1af8b4bca5d49b190d355a5d7186b277280db7e +1 -0
  228. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/syntacticDiagnostics/cache/f385a84342a7d9131d8da13c2546cde25fa23f1d +1 -0
  229. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/types/cache/24fbc0427075baf3ac3fee2ada4ddd2fdd6804a6 +0 -0
  230. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/types/cache/3050043c8485297b366404c9b699f00a98a44b3c +0 -0
  231. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/types/cache/4dffa8599530c3200ba2fa8029fa291435ba7cf7 +0 -0
  232. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/types/cache/603166e7191a1eb2b59e6dc3a0c5060e83e42bf5 +0 -0
  233. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/types/cache/6a0bc58668c059b99bff8dba6f0246cb049f0db9 +0 -0
  234. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/types/cache/7351d2ef4cb3d5388301a3ad1d1f7e3a0782c0bd +0 -0
  235. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/types/cache/8d7296121e0007eebc1b0eabcfcc2a262d6bbc22 +0 -0
  236. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/types/cache/8fe39fe93705cfe38c1944a307c3fd64e5985d1e +0 -0
  237. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/types/cache/9f92f7bfd4bd0aa870a95101ec02f2a32337ff1f +0 -0
  238. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/types/cache/a6e317ef3069e9a270811fbc729535be3c405f41 +0 -0
  239. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/types/cache/ac8bef3228680d10f4db046facede43040f41854 +0 -0
  240. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/types/cache/afe32918d3a600939f39f4fcfb6852fe43f8ada9 +0 -0
  241. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/types/cache/bbe22fc71946abdfc667c2388606bfe83397ec81 +0 -0
  242. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/types/cache/d7bc52f98e9a008b81c621d963e9d4a276c80ee3 +0 -0
  243. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/types/cache/ddcd4d72185f8c85750f6f2f755c1152fddafdf4 +0 -0
  244. package/.rpt2_cache/rpt2_91c74d821d2604d85061209debacd53e1a896747/types/cache/df632d4bb144fc3001f92ea2a2678baeb386dcc4 +0 -0
  245. package/babel.config.js +6 -0
  246. package/package.json +7 -10
  247. package/rollup.config.js +50 -0
  248. package/scripts/cleanDistFolder.js +9 -0
  249. package/src/__tests__/utils.test.js +13 -0
  250. package/src/auth.ts +1514 -0
  251. package/src/browser/asn1hex.ts +296 -0
  252. package/src/browser/index.ts +17 -0
  253. package/src/browser/jsbn.ts +1213 -0
  254. package/src/browser/platform.ts +434 -0
  255. package/src/browser/rng.ts +15 -0
  256. package/src/browser/rsa.ts +262 -0
  257. package/src/commands.ts +1378 -0
  258. package/src/company.ts +244 -0
  259. package/src/configuration.ts +125 -0
  260. package/src/endpoint.ts +350 -0
  261. package/src/node/index.ts +17 -0
  262. package/src/node/platform.ts +283 -0
  263. package/src/platform.ts +76 -0
  264. package/src/proto.d.ts +50992 -0
  265. package/src/proto.js +136564 -0
  266. package/src/restMessages.ts +311 -0
  267. package/src/utils.ts +169 -0
  268. package/src/vault.ts +844 -0
  269. package/src/vendorContext.ts +69 -0
  270. package/src/vendorModel.ts +36 -0
  271. package/tsconfig.json +14 -0
  272. package/tsconfig.rollup.json +14 -0
@@ -0,0 +1 @@
1
+ {"code":"import { __awaiter } from \"tslib\";\r\nimport { DeleteCommand, FolderAddCommand, PreDeleteCommand, PublicKeysCommand, PurgeDeletedRecordsCommand, RecordAddCommand, RecordShareUpdateCommand, RequestUploadCommand, SharedFolderUpdateCommand, SyncDownCommand, RecordUpdateCommand } from './commands';\r\nimport { platform } from './platform';\r\nimport { decryptFromStorage, decryptFromStorageGcm, decryptKey, encryptForStorage, encryptObjectForStorage, encryptObjectForStorageGCM, generateEncryptionKey, generateUid, normal64, normal64Bytes, shareKey, shareKeyEC, webSafe64FromBytes } from './utils';\r\nimport { applicationAddMessage, fileAddMessage, fileDownloadMessage, getEnterprisePublicKeyMessage, recordsAddMessage, recordsUpdateMessage } from './restMessages';\r\nimport { Records } from './proto';\r\nvar RecordFolderType = Records.RecordFolderType;\r\nvar FileAddResult = Records.FileAddResult;\r\nfunction decryptRecord(record) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const dataBytes = record.recordData.version < 3\r\n ? decryptFromStorage(record.recordData.data, record.key)\r\n : yield decryptFromStorageGcm(record.recordData.data, record.key);\r\n record.data = JSON.parse(platform.bytesToString(dataBytes));\r\n if (record.recordData.extra) {\r\n record.extra = JSON.parse(platform.bytesToString(decryptFromStorage(record.recordData.extra, record.key)));\r\n }\r\n }\r\n catch (e) {\r\n console.log(e);\r\n }\r\n });\r\n}\r\nexport class Vault {\r\n constructor(auth) {\r\n this.auth = auth;\r\n this._includes = ['folders', 'non_shared_data', 'record', 'shared_folder', 'sfheaders', 'sfrecords', 'sfusers'];\r\n this._records = {};\r\n this._sharedFolders = {};\r\n this._revision = 0;\r\n this.noTypedRecords = false;\r\n }\r\n getRecord(recordUid) {\r\n let record = this._records[recordUid];\r\n let isNew = false;\r\n if (!record) {\r\n record = {};\r\n this._records[recordUid] = record;\r\n isNew = true;\r\n }\r\n return { record, isNew };\r\n }\r\n get includes() {\r\n return this._includes;\r\n }\r\n get revision() {\r\n return this._revision;\r\n }\r\n get records() {\r\n return Object.values(this._records);\r\n }\r\n get sharedFolders() {\r\n return Object.values(this._sharedFolders);\r\n }\r\n get recordUids() {\r\n return Object.keys(this._records);\r\n }\r\n get sharedFolderUids() {\r\n return Object.keys(this._sharedFolders);\r\n }\r\n recordByUid(record_uid) {\r\n return this._records[record_uid];\r\n }\r\n recordByUidBytes(record_uid) {\r\n return this.recordByUid(webSafe64FromBytes(record_uid));\r\n }\r\n decryptKey(encryptedKey, keyType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n switch (keyType) {\r\n case 1:\r\n return decryptFromStorage(encryptedKey, this.auth.dataKey);\r\n case 2:\r\n return platform.privateDecrypt(normal64Bytes(encryptedKey), this.auth.privateKey);\r\n case 3:\r\n return decryptKey(encryptedKey, this.auth.dataKey);\r\n case 4:\r\n return platform.privateDecryptEC(normal64Bytes(encryptedKey), this.auth.eccPrivateKey);\r\n default:\r\n throw new Error(`Unknown key type: ${keyType}`);\r\n }\r\n });\r\n }\r\n setIncludes(includes) {\r\n this._includes = includes;\r\n }\r\n // todo: remove logResponse in favor of a unified log levels solution\r\n syncDown(revision, logResponse) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (typeof revision === 'number') {\r\n this._revision = revision;\r\n }\r\n console.log(`syncing revision ${this._revision} for ${this.auth.username}`);\r\n let syncDownCommand = new SyncDownCommand(this._revision);\r\n syncDownCommand.include = [...this._includes];\r\n if (!this.noTypedRecords) {\r\n syncDownCommand.include.push('typed_record', 'app_record');\r\n }\r\n let syncDownResponse = yield this.auth.executeCommand(syncDownCommand);\r\n if (logResponse) {\r\n console.log(syncDownResponse);\r\n // console.log(syncDownResponse.shared_folders[0].records)\r\n }\r\n this._revision = syncDownResponse.revision;\r\n if (syncDownResponse.full_sync) {\r\n this._records = {};\r\n }\r\n let added = 0;\r\n let updated = 0;\r\n let removed = 0;\r\n for (let recordData of syncDownResponse.records || []) {\r\n let { record, isNew } = this.getRecord(recordData.record_uid);\r\n record.recordData = recordData;\r\n if (isNew) {\r\n added++;\r\n }\r\n else {\r\n updated++;\r\n }\r\n }\r\n for (let meta of syncDownResponse.record_meta_data || []) {\r\n let { record } = this.getRecord(meta.record_uid);\r\n record.metaData = meta;\r\n try {\r\n record.key = yield this.decryptKey(meta.record_key, meta.record_key_type);\r\n }\r\n catch (e) {\r\n console.log(e);\r\n }\r\n yield decryptRecord(record);\r\n }\r\n for (let sharedFolder of syncDownResponse.shared_folders || []) {\r\n let vaultFolder = {\r\n sharedFolder: sharedFolder\r\n };\r\n this._sharedFolders[sharedFolder.shared_folder_uid] = vaultFolder;\r\n if (!(sharedFolder.shared_folder_key && sharedFolder.key_type)) {\r\n continue;\r\n }\r\n try {\r\n vaultFolder.key = yield this.decryptKey(sharedFolder.shared_folder_key, sharedFolder.key_type);\r\n for (let sfRecord of sharedFolder.records || []) {\r\n let recordKey;\r\n try {\r\n recordKey = sfRecord.record_key.length === 80\r\n ? yield decryptKey(sfRecord.record_key, vaultFolder.key) // GCM\r\n : decryptFromStorage(sfRecord.record_key, vaultFolder.key); // CBC\r\n let { record } = this.getRecord(sfRecord.record_uid);\r\n record.key = recordKey;\r\n record.sharedFolderUid = sharedFolder.shared_folder_uid;\r\n yield decryptRecord(record);\r\n }\r\n catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n for (let team of syncDownResponse.teams || []) {\r\n const teamKey = yield this.decryptKey(team.team_key, team.team_key_type);\r\n const teamPrivateKey = decryptFromStorage(team.team_private_key, teamKey);\r\n for (let folderKey of team.shared_folder_keys || []) {\r\n let decryptedFolderKey;\r\n switch (folderKey.key_type) {\r\n case 1:\r\n decryptedFolderKey = decryptFromStorage(folderKey.shared_folder_key, teamKey);\r\n break;\r\n case 2:\r\n decryptedFolderKey = platform.privateDecrypt(normal64Bytes(folderKey.shared_folder_key), teamPrivateKey);\r\n break;\r\n default:\r\n throw new Error(`Unknown key type: ${folderKey.key_type}`);\r\n }\r\n this._sharedFolders[folderKey.shared_folder_uid].key = decryptedFolderKey;\r\n }\r\n }\r\n for (let sffRecord of syncDownResponse.shared_folder_folder_records || []) {\r\n let { record } = this.getRecord(sffRecord.record_uid);\r\n record.sharedFolderFolderUid = sffRecord.folder_uid;\r\n }\r\n for (let uid of syncDownResponse.removed_records || []) {\r\n if (this.records[uid]) {\r\n removed++;\r\n delete this.records[uid];\r\n }\r\n }\r\n for (let non_shared_data of syncDownResponse.non_shared_data || []) {\r\n let { record } = this.getRecord(non_shared_data.record_uid);\r\n try {\r\n const nonSharedData = record.recordData.version > 2\r\n ? yield decryptFromStorageGcm(non_shared_data.data, this.auth.dataKey)\r\n : decryptFromStorage(non_shared_data.data, this.auth.dataKey);\r\n record.nonSharedData = JSON.parse(platform.bytesToString(nonSharedData));\r\n }\r\n catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n for (let record of this.records.filter(x => { var _a; return !!((_a = x.recordData) === null || _a === void 0 ? void 0 : _a.owner_uid); })) {\r\n const owner = this._records[record.recordData.owner_uid];\r\n if (!owner.links) {\r\n owner.links = [];\r\n }\r\n owner.links.push(record.recordData.record_uid);\r\n record.key = yield decryptKey(record.recordData.link_key, owner.key);\r\n yield decryptRecord(record);\r\n }\r\n if (added > 0)\r\n console.log(`${added} records added.`);\r\n if (updated > 0)\r\n console.log(`${updated} records updated.`);\r\n if (removed > 0)\r\n console.log(`${removed} records removed.`);\r\n console.log(`Synced to the revision ${syncDownResponse.revision}`);\r\n console.log(`${Object.keys(this._records).length} records are in the vault.`);\r\n });\r\n }\r\n addRecord(recordData, sharedFolderUid, files) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let recordAddCommand = new RecordAddCommand();\r\n recordAddCommand.record_uid = generateUid();\r\n let recordKey = generateEncryptionKey();\r\n recordAddCommand.record_key = encryptForStorage(recordKey, this.auth.dataKey);\r\n recordAddCommand.record_type = 'password';\r\n recordAddCommand.data = encryptForStorage(platform.stringToBytes(JSON.stringify(recordData)), recordKey);\r\n recordAddCommand.how_long_ago = 0;\r\n if (sharedFolderUid) {\r\n recordAddCommand.folder_type = 'shared_folder';\r\n recordAddCommand.folder_uid = sharedFolderUid;\r\n recordAddCommand.folder_key = encryptForStorage(recordKey, this._sharedFolders[sharedFolderUid].key);\r\n }\r\n else {\r\n recordAddCommand.folder_type = 'user_folder';\r\n }\r\n if (files) {\r\n let extra = {\r\n fields: [],\r\n files: files\r\n };\r\n recordAddCommand.extra = encryptForStorage(platform.stringToBytes(JSON.stringify(extra)), recordKey);\r\n recordAddCommand.file_ids = files.map(x => x.id);\r\n }\r\n yield this.auth.executeCommand(recordAddCommand);\r\n return recordAddCommand.record_uid;\r\n });\r\n }\r\n addRecordNew(recordData, sharedFolderUid, linkedRecords) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const recordKey = generateEncryptionKey();\r\n const encryptedKey = yield platform.aesGcmEncrypt(recordKey, this.auth.dataKey);\r\n const encryptedData = yield encryptObjectForStorageGCM(recordData, recordKey);\r\n let recordAdd = {\r\n recordUid: platform.getRandomBytes(16),\r\n recordKey: encryptedKey,\r\n data: encryptedData,\r\n clientModifiedTime: new Date().getTime()\r\n };\r\n if (sharedFolderUid) {\r\n recordAdd.folderType = RecordFolderType.shared_folder;\r\n recordAdd.folderUid = normal64Bytes(sharedFolderUid);\r\n recordAdd.folderKey = yield platform.aesGcmEncrypt(recordKey, this._sharedFolders[sharedFolderUid].key);\r\n }\r\n if (linkedRecords) {\r\n let links = [];\r\n for (const linkedRecord of linkedRecords) {\r\n const linkedRecordKey = generateEncryptionKey();\r\n // const linkedRecordKey = await platform.aesGcmEncrypt(this._records[linkedRecord].key, recordKey)\r\n links.push({\r\n recordUid: normal64Bytes(linkedRecord),\r\n recordKey: linkedRecordKey\r\n });\r\n }\r\n recordAdd.recordLinks = links;\r\n }\r\n const recordAddResponse = yield this.auth.executeRest(recordsAddMessage({\r\n clientTime: new Date().getTime(),\r\n records: [recordAdd]\r\n }));\r\n const recordUid = webSafe64FromBytes(recordAdd.recordUid);\r\n this._records[recordUid] = {\r\n recordData: {\r\n record_uid: recordUid,\r\n version: 3\r\n },\r\n key: recordKey\r\n };\r\n return recordAddResponse;\r\n });\r\n }\r\n addRecordsNew(recordsData) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const now = new Date().getTime();\r\n let records = [];\r\n let keys = {};\r\n for (const recordData of recordsData) {\r\n const recordKey = generateEncryptionKey();\r\n const encryptedKey = yield platform.aesGcmEncrypt(recordKey, this.auth.dataKey);\r\n const encryptedData = yield encryptObjectForStorageGCM(recordData, recordKey);\r\n let recordAdd = {\r\n recordUid: platform.getRandomBytes(16),\r\n recordKey: encryptedKey,\r\n data: encryptedData,\r\n clientModifiedTime: now\r\n };\r\n records.push(recordAdd);\r\n keys[webSafe64FromBytes(recordAdd.recordUid)] = recordKey;\r\n }\r\n const recordsAddResponse = yield this.auth.executeRest(recordsAddMessage({\r\n clientTime: now,\r\n records: records\r\n }));\r\n for (const recordResponse of recordsAddResponse.records) {\r\n const recordUid = webSafe64FromBytes(recordResponse.recordUid);\r\n this._records[recordUid] = {\r\n recordData: {\r\n record_uid: recordUid,\r\n version: 3\r\n },\r\n key: keys[recordUid]\r\n };\r\n }\r\n return recordsAddResponse;\r\n });\r\n }\r\n uploadFile(fileName, fileData, thumbnailData) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const fileMetaData = {\r\n name: fileName,\r\n hasThumbnail: !!thumbnailData\r\n };\r\n const recordKey = generateEncryptionKey();\r\n const encryptedKey = yield platform.aesGcmEncrypt(recordKey, this.auth.dataKey);\r\n const encryptedData = yield encryptObjectForStorageGCM(fileMetaData, recordKey);\r\n const encryptedFile = yield platform.aesGcmEncrypt(fileData, recordKey);\r\n const encryptedThumbnail = thumbnailData\r\n ? yield platform.aesGcmEncrypt(thumbnailData, recordKey)\r\n : undefined;\r\n const fileRequest = {\r\n clientTime: new Date().getTime(),\r\n files: [\r\n {\r\n recordUid: platform.getRandomBytes(16),\r\n recordKey: encryptedKey,\r\n data: encryptedData,\r\n fileSize: encryptedFile.length,\r\n thumbSize: encryptedThumbnail ? encryptedThumbnail.length : undefined\r\n }\r\n ]\r\n };\r\n console.log(fileRequest);\r\n const rq = fileAddMessage(fileRequest);\r\n const fileAddResponse = yield this.auth.executeRest(rq);\r\n const file = fileAddResponse.files[0];\r\n if (file.status !== FileAddResult.FA_SUCCESS)\r\n throw new Error(`Error adding a file record for ${fileName}`);\r\n console.log(file.url);\r\n yield this.uploadFileData(file.url, file.parameters, file.successStatusCode, encryptedFile);\r\n if (encryptedThumbnail) {\r\n yield this.uploadFileData(file.url, file.thumbnailParameters, file.successStatusCode, encryptedThumbnail);\r\n }\r\n const fileUid = webSafe64FromBytes(file.recordUid);\r\n this._records[fileUid] = {\r\n recordData: {\r\n record_uid: fileUid,\r\n version: 4\r\n },\r\n key: recordKey\r\n };\r\n return fileUid;\r\n });\r\n }\r\n uploadFileData(url, parameters, successStatusCode, encryptedData) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const res = yield platform.fileUpload(url, JSON.parse(parameters), encryptedData);\r\n if (res.statusCode !== successStatusCode) {\r\n throw new Error(`Upload failed (${res.statusMessage}), code ${res.statusCode}`);\r\n }\r\n });\r\n }\r\n downloadFile(recordUid, thumbNail) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const rq = fileDownloadMessage({\r\n recordUids: [\r\n normal64Bytes(recordUid)\r\n ],\r\n forThumbnails: thumbNail\r\n });\r\n let resp = yield this.auth.executeRest(rq);\r\n let file = resp.files[0];\r\n console.log(resp);\r\n console.log(file);\r\n const fileResponse = yield platform.get(file.url, {});\r\n console.log(fileResponse);\r\n switch (file.fileKeyType) {\r\n case Records.RecordKeyType.ENCRYPTED_BY_DATA_KEY:\r\n return platform.aesCbcDecrypt(fileResponse.data, this._records[recordUid].key, false);\r\n case Records.RecordKeyType.ENCRYPTED_BY_DATA_KEY_GCM:\r\n return platform.aesGcmDecrypt(fileResponse.data, this._records[recordUid].key);\r\n default:\r\n throw Error(`Unsupported kile key type: ${file.fileKeyType}`);\r\n }\r\n });\r\n }\r\n addApplication(appData) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const recordKey = generateEncryptionKey();\r\n const encryptedKey = yield platform.aesGcmEncrypt(recordKey, this.auth.dataKey);\r\n const encryptedData = yield encryptObjectForStorageGCM(appData, recordKey);\r\n let applicationAdd = {\r\n appUid: platform.getRandomBytes(16),\r\n recordKey: encryptedKey,\r\n data: encryptedData,\r\n clientModifiedTime: new Date().getTime()\r\n };\r\n yield this.auth.executeRest(applicationAddMessage(applicationAdd));\r\n return webSafe64FromBytes(applicationAdd.appUid);\r\n });\r\n }\r\n updateRecordV2(update) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const record = this._records[update.record_uid];\r\n const encryptedData = update.data\r\n ? encryptObjectForStorage(update.data, record.key)\r\n : undefined;\r\n const encryptedExtra = encryptObjectForStorage(record.extra, record.key);\r\n let nonSharedData = undefined;\r\n if (update.nonSharedData || update.nonSharedData === null) {\r\n if (update.nonSharedData == null) {\r\n nonSharedData = Uint8Array.of(0);\r\n }\r\n else {\r\n nonSharedData = encryptObjectForStorage(update.nonSharedData, this.auth.dataKey);\r\n }\r\n }\r\n const updateCommand = new RecordUpdateCommand();\r\n updateCommand.client_time = new Date().getTime();\r\n updateCommand.update_records = [\r\n {\r\n record_uid: update.record_uid,\r\n client_modified_time: new Date().getTime(),\r\n data: encryptedData,\r\n extra: encryptedExtra,\r\n non_shared_data: nonSharedData,\r\n revision: record.recordData.revision,\r\n version: 2,\r\n udata: update.udata,\r\n }\r\n ];\r\n const resp = yield this.auth.executeCommand(updateCommand);\r\n console.log(resp);\r\n });\r\n }\r\n updateRecord(update) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return this.updateRecords([update]);\r\n });\r\n }\r\n updateRecords(updates) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const request = {\r\n clientTime: new Date().getTime(),\r\n records: []\r\n };\r\n for (const update of updates) {\r\n const record = this._records[update.record_uid];\r\n const encryptedData = update.data\r\n ? yield encryptObjectForStorageGCM(update.data, record.key)\r\n : undefined;\r\n let nonSharedData = undefined;\r\n if (update.nonSharedData || update.nonSharedData === null) {\r\n if (update.nonSharedData == null) {\r\n nonSharedData = Uint8Array.of(0);\r\n }\r\n else {\r\n nonSharedData = yield encryptObjectForStorageGCM(update.nonSharedData, this.auth.dataKey, false);\r\n }\r\n }\r\n let recordAudit = undefined;\r\n if (update.audit) {\r\n const pubKeyResponse = yield this.auth.executeRest(getEnterprisePublicKeyMessage());\r\n const auditBytes = platform.stringToBytes(JSON.stringify(update.audit.data));\r\n const auditData = yield platform.publicEncryptEC(auditBytes, pubKeyResponse.enterpriseECCPublicKey);\r\n recordAudit = {\r\n version: update.audit.version,\r\n data: auditData\r\n };\r\n }\r\n let addedLinks = undefined;\r\n if (update.add_links) {\r\n addedLinks = [];\r\n for (const linkedRecord of update.add_links) {\r\n const linkedRecordKey = yield platform.aesGcmEncrypt(this._records[linkedRecord].key, record.key);\r\n addedLinks.push({\r\n recordUid: normal64Bytes(linkedRecord),\r\n recordKey: linkedRecordKey\r\n });\r\n }\r\n }\r\n let removedLinks = update.remove_links\r\n ? update.remove_links.map(x => normal64Bytes(x))\r\n : undefined;\r\n request.records.push({\r\n recordUid: normal64Bytes(update.record_uid),\r\n data: encryptedData,\r\n nonSharedData: nonSharedData,\r\n audit: recordAudit,\r\n recordLinksAdd: addedLinks,\r\n recordLinksRemove: removedLinks,\r\n clientModifiedTime: new Date().getTime(),\r\n revision: record.recordData.revision\r\n });\r\n console.log(`Updating record ${update.record_uid} revision ${record.recordData.revision}`);\r\n }\r\n const updateMsg = recordsUpdateMessage(request);\r\n const response = yield this.auth.executeRest(updateMsg);\r\n const revision = response.revision;\r\n for (const record of response.records) {\r\n this._records[webSafe64FromBytes(record.recordUid)].recordData.revision = revision;\r\n }\r\n return response;\r\n });\r\n }\r\n deleteRecords(recordUids) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const preDeleteCommand = new PreDeleteCommand();\r\n preDeleteCommand.objects = recordUids.map(x => {\r\n return {\r\n object_uid: x,\r\n object_type: 'record',\r\n from_type: 'user_folder',\r\n delete_resolution: 'unlink'\r\n };\r\n });\r\n const preDeleteResult = yield this.auth.executeCommand(preDeleteCommand);\r\n const deleteCommand = new DeleteCommand();\r\n deleteCommand.pre_delete_token = preDeleteResult.pre_delete_response.pre_delete_token;\r\n return this.auth.executeCommand(deleteCommand);\r\n });\r\n }\r\n cleanTrash() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n yield this.auth.executeCommand(new PurgeDeletedRecordsCommand());\r\n });\r\n }\r\n createSharedFolder(folderName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let folderKey = generateEncryptionKey();\r\n let folderUid = generateUid();\r\n const faCommand = new FolderAddCommand();\r\n faCommand.name = encryptForStorage(platform.stringToBytes(folderName), folderKey);\r\n faCommand.folder_uid = folderUid;\r\n faCommand.folder_type = 'shared_folder';\r\n faCommand.key = encryptForStorage(folderKey, this.auth.dataKey);\r\n faCommand.data = encryptObjectForStorage({ name: folderName + '1', color: '#FF0000' }, folderKey);\r\n const addFolderResponse = yield this.auth.executeCommand(faCommand);\r\n this._revision = addFolderResponse.revision;\r\n this._sharedFolders[folderUid] = {\r\n key: folderKey\r\n };\r\n return folderUid;\r\n });\r\n }\r\n addUserToSharedFolder(sharedFolderUid, user) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const sharedFolder = this._sharedFolders[sharedFolderUid];\r\n const userPublicKey = yield this.fetchUserPublicKey(user);\r\n const sfuCommand = new SharedFolderUpdateCommand();\r\n sfuCommand.operation = 'update';\r\n sfuCommand.name = encryptForStorage(platform.stringToBytes('sftest2'), sharedFolder.key);\r\n sfuCommand.shared_folder_uid = sharedFolderUid;\r\n sfuCommand.revision = this._revision;\r\n sfuCommand.add_users = [{\r\n username: user,\r\n manage_records: false,\r\n manage_users: false,\r\n shared_folder_key: shareKey(sharedFolder.key, userPublicKey)\r\n }];\r\n yield this.auth.executeCommand(sfuCommand);\r\n });\r\n }\r\n deleteSharedFolders(sharedFolderUids) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n for (let sharedFolderUid of sharedFolderUids) {\r\n const sfuCommand = new SharedFolderUpdateCommand();\r\n sfuCommand.operation = 'delete';\r\n sfuCommand.shared_folder_uid = sharedFolderUid;\r\n yield this.auth.executeCommand(sfuCommand);\r\n }\r\n // only can leave shared folders if not the owner\r\n // {\"command\":\"shared_folder_update\",\"pt\":\"-n4s_eSHBZzOMRZQtX0gDg\",\"operation\":\"update\",\"shared_folder_uid\":\"PFe3TzKS6wq3YtXivxR6oA\",\"revision\":944012,\r\n // \"remove_users\":[{\"username\":\"saldoukhov@gmail.com\"}],\"locale\":\"en_US\",\"username\":\"saldoukhov@gmail.com\",\"session_token\":\"6X8lJLgDecS2IKTwErliMX0UKYkhznDWS59asu4kVeN3GMidq--T1kyBJ1YSJ9hxm67qsMkXeG5egEGaAQ_YjVc6CrhyFJovS4mOIZ3APLVdiylEroLQbsttCgkF\",\"client_version\":\"w14.13.0\"}\r\n });\r\n }\r\n fetchUserPublicKey(user) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const publicKeysCommand = new PublicKeysCommand();\r\n publicKeysCommand.key_owners = [user];\r\n const publicKeys = yield this.auth.executeCommand(publicKeysCommand);\r\n if (!publicKeys.public_keys[0].public_key) {\r\n throw new Error(publicKeys.public_keys[0].message);\r\n }\r\n return normal64(publicKeys.public_keys[0].public_key);\r\n });\r\n }\r\n fetchUserPublicKeyEC(user) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const publicKeysCommand = new PublicKeysCommand();\r\n publicKeysCommand.key_owners = [user];\r\n const publicKeys = yield this.auth.executeCommand(publicKeysCommand);\r\n if (!publicKeys.public_keys[0].public_key) {\r\n throw new Error(publicKeys.public_keys[0].message);\r\n }\r\n return null;\r\n // return normal64(publicKeys.public_keys[0].public_key)\r\n });\r\n }\r\n shareRecords(recordUids, share) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const userPublicKey = yield this.fetchUserPublicKey(share.to_user);\r\n const shareCommand = new RecordShareUpdateCommand();\r\n let shareObjects = [];\r\n for (const recordUid of recordUids) {\r\n const recordKey = shareKey(this._records[recordUid].key, userPublicKey);\r\n const so = {\r\n record_uid: recordUid,\r\n record_key: recordKey,\r\n to_username: share.to_user,\r\n shareable: share.shareable,\r\n editable: share.editable\r\n };\r\n shareObjects.push(so);\r\n }\r\n shareCommand.add_shares = shareObjects;\r\n return this.auth.executeCommand(shareCommand);\r\n });\r\n }\r\n shareRecordsEC(recordUids, share) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const userPublicKey = yield this.fetchUserPublicKeyEC(share.to_user);\r\n const shareCommand = new RecordShareUpdateCommand();\r\n let shareObjects = [];\r\n for (const recordUid of recordUids) {\r\n const recordKey = yield shareKeyEC(this._records[recordUid].key, userPublicKey);\r\n const so = {\r\n record_uid: recordUid,\r\n record_key: recordKey,\r\n to_username: share.to_user,\r\n shareable: share.shareable,\r\n editable: share.editable\r\n };\r\n shareObjects.push(so);\r\n }\r\n shareCommand.add_shares = shareObjects;\r\n return this.auth.executeCommand(shareCommand);\r\n });\r\n }\r\n uploadFileOld(fileName, fileData, thumbnailData) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const uploadCommand = new RequestUploadCommand();\r\n uploadCommand.file_count = 1;\r\n uploadCommand.thumbnail_count = thumbnailData ? 1 : 0;\r\n const resp = yield this.auth.executeCommand(uploadCommand);\r\n const uploadInfo = resp.file_uploads[0];\r\n console.log(uploadInfo);\r\n const fileKey = generateEncryptionKey();\r\n // const encryptedFile = await platform.aesGcmEncrypt(fileData, fileKey)\r\n const encryptedFile = platform.aesCbcEncrypt(fileData, fileKey, true);\r\n const res = yield platform.fileUpload(uploadInfo.url, uploadInfo.parameters, encryptedFile);\r\n if (res.statusCode !== uploadInfo.success_status_code) {\r\n throw new Error(`Upload failed (${res.statusMessage}), code ${res.statusCode}`);\r\n }\r\n return {\r\n id: uploadInfo.file_id,\r\n name: fileName,\r\n title: fileName,\r\n key: webSafe64FromBytes(fileKey),\r\n lastModified: new Date().getTime(),\r\n size: encryptedFile.length,\r\n type: '',\r\n };\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=vault.js.map","references":["/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/src/auth.ts","/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/src/commands.ts","/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/src/platform.ts","/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/src/utils.ts","/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/src/restMessages.ts","/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/src/proto.d.ts"],"map":"{\"version\":3,\"file\":\"vault.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/vault.ts\"],\"names\":[],\"mappings\":\"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\"}","dts":{"name":"/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/vault.d.ts","writeByteOrderMark":false,"text":"import { Auth } from './auth';\r\nimport { RecordData, RecordMetaData, RecordShareUpdateResponse, SharedFolder, SyncDataInclude, DeleteResponse } from './commands';\r\nimport { Records } from './proto';\r\nexport declare class Vault {\r\n private auth;\r\n private _includes;\r\n private _records;\r\n private _sharedFolders;\r\n private _revision;\r\n noTypedRecords: boolean;\r\n constructor(auth: Auth);\r\n private getRecord;\r\n get includes(): SyncDataInclude[];\r\n get revision(): number;\r\n get records(): VaultRecord[];\r\n get sharedFolders(): VaultSharedFolder[];\r\n get recordUids(): string[];\r\n get sharedFolderUids(): string[];\r\n recordByUid(record_uid: string): VaultRecord;\r\n recordByUidBytes(record_uid: Uint8Array): VaultRecord;\r\n decryptKey(encryptedKey: string, keyType: number): Promise<Uint8Array>;\r\n setIncludes(includes: SyncDataInclude[]): void;\r\n syncDown(revision?: number, logResponse?: boolean): Promise<void>;\r\n addRecord(recordData: KeeperRecordData, sharedFolderUid?: string, files?: [ExtraFile]): Promise<string>;\r\n addRecordNew(recordData: any, sharedFolderUid?: string, linkedRecords?: string[]): Promise<Records.IRecordsModifyResponse>;\r\n addRecordsNew(recordsData: any[]): Promise<Records.IRecordsModifyResponse>;\r\n uploadFile(fileName: string, fileData: Uint8Array, thumbnailData?: Uint8Array): Promise<string>;\r\n uploadFileData(url: string, parameters: string, successStatusCode: number, encryptedData: Uint8Array): Promise<void>;\r\n downloadFile(recordUid: string, thumbNail: boolean): Promise<Uint8Array>;\r\n addApplication(appData: any): Promise<string>;\r\n updateRecordV2(update: RecordUpdateV2): Promise<void>;\r\n updateRecord(update: RecordUpdate): Promise<Records.IRecordsModifyResponse>;\r\n updateRecords(updates: RecordUpdate[]): Promise<Records.IRecordsModifyResponse>;\r\n deleteRecords(recordUids: string[]): Promise<DeleteResponse>;\r\n cleanTrash(): Promise<void>;\r\n createSharedFolder(folderName: string): Promise<string>;\r\n addUserToSharedFolder(sharedFolderUid: string, user: string): Promise<void>;\r\n deleteSharedFolders(sharedFolderUids: string[]): Promise<void>;\r\n fetchUserPublicKey(user: string): Promise<string>;\r\n fetchUserPublicKeyEC(user: string): Promise<Uint8Array>;\r\n shareRecords(recordUids: string[], share: RecordShare): Promise<RecordShareUpdateResponse>;\r\n shareRecordsEC(recordUids: string[], share: RecordShare): Promise<RecordShareUpdateResponse>;\r\n uploadFileOld(fileName: string, fileData: Uint8Array, thumbnailData?: Uint8Array): Promise<ExtraFile>;\r\n}\r\nexport interface VaultRecord {\r\n recordData?: RecordData;\r\n metaData?: RecordMetaData;\r\n key?: Uint8Array;\r\n data?: KeeperRecordData;\r\n extra?: KeeperRecordExtra;\r\n sharedFolderUid?: string;\r\n sharedFolderFolderUid?: string;\r\n nonSharedData?: any;\r\n audit?: KeeperRecordAudit;\r\n links?: string[];\r\n}\r\nexport interface VaultSharedFolder {\r\n sharedFolder?: SharedFolder;\r\n key?: Uint8Array;\r\n}\r\nexport interface KeeperRecordData {\r\n title?: string;\r\n secret1?: string;\r\n secret2?: string;\r\n link?: string;\r\n notes?: string;\r\n custom?: {\r\n name?: string;\r\n value?: string;\r\n }[];\r\n}\r\nexport interface KeeperRecordExtra {\r\n fields: ExtraField[];\r\n files: ExtraFile[];\r\n}\r\nexport interface KeeperRecordAudit {\r\n version: number;\r\n data: any;\r\n}\r\nexport interface RecordShare {\r\n to_user: string;\r\n shareable: boolean;\r\n editable: boolean;\r\n}\r\nexport interface RecordUpdateV2 {\r\n record_uid: string;\r\n data?: KeeperRecordData;\r\n nonSharedData?: any;\r\n udata?: {\r\n file_ids: string[];\r\n };\r\n}\r\nexport interface RecordUpdate {\r\n record_uid: string;\r\n data?: KeeperRecordData;\r\n nonSharedData?: any;\r\n audit?: KeeperRecordAudit;\r\n add_links?: string[];\r\n remove_links?: string[];\r\n}\r\nexport interface ExtraField {\r\n id: string;\r\n field_type: 'totp';\r\n field_title: string;\r\n type: number;\r\n data: string;\r\n}\r\nexport interface ExtraFile {\r\n id: string;\r\n name?: string;\r\n lastModified?: number;\r\n size?: number;\r\n type?: string;\r\n title?: string;\r\n key?: string;\r\n thumbs?: FileThumb[];\r\n}\r\nexport interface FileThumb {\r\n id: string;\r\n size: number;\r\n type: 'image/jpg';\r\n}\r\n"}}
@@ -0,0 +1 @@
1
+ {"code":"// Random number generator - requires a PRNG backend, e.g. prng4.js\r\n// For best results, put code like\r\n// <body onClick='rng_seed_time();' onKeyPress='rng_seed_time();'>\r\n// in your main HTML document.\r\nfunction rng_get_bytes(ba) {\r\n let data = new Uint8Array(ba.length);\r\n crypto.getRandomValues(data);\r\n for (let i = 0; i < ba.length; ++i)\r\n ba[i] = data[i];\r\n}\r\nexport function SecureRandom() { }\r\nSecureRandom.prototype.nextBytes = rng_get_bytes;\r\n//# sourceMappingURL=rng.js.map","references":[],"map":"{\"version\":3,\"file\":\"rng.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/browser/rng.ts\"],\"names\":[],\"mappings\":\"AAAA,mEAAmE;AAEnE,kCAAkC;AAClC,kEAAkE;AAClE,8BAA8B;AAE9B,SAAS,aAAa,CAAC,EAAE;IACrB,IAAI,IAAI,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC7B,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;QAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,YAAY,KAAI,CAAC;AAEjC,YAAY,CAAC,SAAS,CAAC,SAAS,GAAG,aAAa,CAAC\"}","dts":{"name":"/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/browser/rng.d.ts","writeByteOrderMark":false,"text":"export declare function SecureRandom(): void;\r\n"}}
@@ -0,0 +1 @@
1
+ {"code":"import { __awaiter } from \"tslib\";\r\nimport { DeviceVerificationMethods } from './configuration';\r\nimport { KeeperEndpoint } from \"./endpoint\";\r\nimport { platform } from \"./platform\";\r\nimport { AuthorizedCommand, LoginCommand, LoginResponseResultCode } from \"./commands\";\r\nimport { chooseErrorMessage, decryptFromStorage, generateEncryptionKey, wrapPassword, generateUidBytes, isTwoFactorResultCode, normal64, normal64Bytes, resolvablePromise, webSafe64, webSafe64FromBytes } from \"./utils\";\r\nimport { accountSummaryMessage, getEnterprisePublicKeyMessage, logoutV3Message, requestCreateUserMessage, requestDeviceAdminApprovalMessage, requestDeviceVerificationMessage, ssoServiceProviderRequestMessage, startLoginMessage, startLoginMessageFromSessionToken, twoFactorSend2FAPushMessage, twoFactorValidateMessage, validateAuthHashMessage, validateDeviceVerificationCodeMessage } from './restMessages';\r\nimport { Authentication } from './proto';\r\nvar TwoFactorExpiration = Authentication.TwoFactorExpiration;\r\nvar TwoFactorPushType = Authentication.TwoFactorPushType;\r\nvar TwoFactorChannelType = Authentication.TwoFactorChannelType;\r\nvar LoginType = Authentication.LoginType;\r\nvar LoginMethod = Authentication.LoginMethod;\r\nfunction unifyLoginError(e) {\r\n if (e instanceof Error) {\r\n try {\r\n return JSON.parse(e.message);\r\n }\r\n catch (jsonError) {\r\n return {\r\n error: \"unknown\",\r\n message: e.message\r\n };\r\n }\r\n }\r\n else {\r\n return {\r\n error: e.result_code,\r\n message: e.result_code\r\n };\r\n }\r\n}\r\nvar CloseReasonCode;\r\n(function (CloseReasonCode) {\r\n CloseReasonCode[CloseReasonCode[\"CANNOT_ACCEPT\"] = 1003] = \"CANNOT_ACCEPT\";\r\n CloseReasonCode[CloseReasonCode[\"NOT_CONSISTENT\"] = 1007] = \"NOT_CONSISTENT\";\r\n CloseReasonCode[CloseReasonCode[\"VIOLATED_POLICY\"] = 1008] = \"VIOLATED_POLICY\";\r\n CloseReasonCode[CloseReasonCode[\"TRY_AGAIN_LATER\"] = 1013] = \"TRY_AGAIN_LATER\";\r\n})(CloseReasonCode || (CloseReasonCode = {}));\r\nexport class SocketListener {\r\n constructor(url, messageSessionUid, getConnectionRequest) {\r\n console.log('Connecting to ' + url);\r\n this.url = url;\r\n this.closeListeners = [];\r\n this.singleCloseListeners = [];\r\n this.messageListeners = [];\r\n this.singleMessageListeners = [];\r\n this.onOpenListeners = [];\r\n this.currentBackoffSeconds = SocketListener.getBaseReconnectionInterval();\r\n this.isClosedByClient = false;\r\n this.isConnected = false;\r\n if (getConnectionRequest)\r\n this.getConnectionRequest = getConnectionRequest;\r\n if (messageSessionUid) {\r\n this.messageSessionUid = messageSessionUid;\r\n this.createWebsocket(this.messageSessionUid);\r\n }\r\n else {\r\n this.createWebsocket();\r\n }\r\n }\r\n createWebsocket(messageSessionUid) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this.getConnectionRequest && messageSessionUid) {\r\n const connectionRequest = yield this.getConnectionRequest(messageSessionUid);\r\n this.socket = platform.createWebsocket(`${this.url}/${connectionRequest}`);\r\n }\r\n else {\r\n this.socket = platform.createWebsocket(this.url);\r\n }\r\n this.socket.onOpen(() => {\r\n console.log('socket opened');\r\n clearTimeout(this.reconnectTimeout);\r\n this.currentBackoffSeconds = SocketListener.getBaseReconnectionInterval();\r\n this.handleOnOpen();\r\n });\r\n this.socket.onClose((event) => __awaiter(this, void 0, void 0, function* () {\r\n console.log('socket closed because: ', event);\r\n let reason;\r\n this.isConnected = false;\r\n try {\r\n reason = JSON.parse(event.reason);\r\n }\r\n catch (error) {\r\n console.log('No close reason. Error message is: ', error);\r\n if (!this.isClosedByClient) {\r\n this.reconnect();\r\n }\r\n return;\r\n }\r\n switch (event.code) {\r\n case CloseReasonCode.CANNOT_ACCEPT:\r\n // Exact messages that can come from CANNOT_ACCEPT:\r\n // - Push server is in progress of shutting down\r\n // - Push server is not registered with KA\r\n // - Cannot process encrypted message.xxxx\r\n if (reason && reason.close_reason.includes('Push server')) {\r\n // Tell User to try again\r\n this.handleClose({ code: event.code, reason });\r\n }\r\n else {\r\n // this would be an internal error and shouldnt reach here in production\r\n console.error('Incorrect internal error: ', reason.close_reason);\r\n }\r\n break;\r\n case CloseReasonCode.NOT_CONSISTENT:\r\n // Error Message: device timestamp: {time} is off by {off_time}\r\n //Tell User to adjust their system clock\r\n this.handleClose({ code: event.code, reason });\r\n break;\r\n case CloseReasonCode.VIOLATED_POLICY:\r\n // Error Message: duplicate messageSessionUid=${messageSessionUid}\r\n // Relogin if this happens\r\n this.handleClose({ code: event.code, reason });\r\n break;\r\n case CloseReasonCode.TRY_AGAIN_LATER:\r\n // Error Message: throttled messageSessionUid=${messageSessionUid}\r\n //Tell User to try again in 1 minute\r\n this.handleClose({ code: event.code, reason });\r\n break;\r\n default:\r\n if (!this.isClosedByClient) {\r\n this.reconnect();\r\n }\r\n }\r\n }));\r\n this.socket.onError((e) => {\r\n console.log('socket error: ' + e);\r\n });\r\n this.socket.onMessage(e => {\r\n this.handleMessage(e);\r\n });\r\n this.isConnected = true;\r\n });\r\n }\r\n registerLogin(sessionToken) {\r\n if (!this.socket)\r\n throw new Error('Socket not available');\r\n this.socket.send(sessionToken);\r\n }\r\n onOpen(callback) {\r\n this.onOpenListeners.push(callback);\r\n }\r\n onClose(callback) {\r\n if (!this.socket)\r\n throw new Error('Socket not available');\r\n this.socket.onClose(callback);\r\n }\r\n onError(callback) {\r\n if (!this.socket)\r\n throw new Error('Socket not available');\r\n this.socket.onError(callback);\r\n }\r\n handleOnOpen() {\r\n for (let callback of this.onOpenListeners) {\r\n callback();\r\n }\r\n }\r\n handleMessage(messageData) {\r\n for (let callback of this.messageListeners) {\r\n callback(messageData);\r\n }\r\n for (let { resolve } of this.singleMessageListeners) {\r\n resolve(messageData);\r\n }\r\n this.singleMessageListeners.length = 0;\r\n }\r\n handleClose(messageData) {\r\n for (let callback of this.closeListeners) {\r\n callback(messageData);\r\n }\r\n for (let { resolve } of this.singleCloseListeners) {\r\n resolve(messageData);\r\n }\r\n this.singleCloseListeners.length = 0;\r\n }\r\n onPushMessage(callback) {\r\n this.messageListeners.push(callback);\r\n }\r\n onCloseMessage(callback) {\r\n this.closeListeners.push(callback);\r\n }\r\n getPushMessage() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n console.log('Awaiting web socket message...');\r\n return new Promise((resolve, reject) => {\r\n this.singleMessageListeners.push({ resolve, reject });\r\n });\r\n });\r\n }\r\n static getBaseReconnectionInterval() {\r\n return Math.random() * 5;\r\n }\r\n reconnect() {\r\n console.log(`Reconnecting websocket in ${this.currentBackoffSeconds.toFixed(2)} seconds...`);\r\n // schedule next reconnect attempt\r\n clearTimeout(this.reconnectTimeout);\r\n this.reconnectTimeout = setTimeout(() => {\r\n this.createWebsocket(this.messageSessionUid);\r\n }, this.currentBackoffSeconds * 1000);\r\n this.currentBackoffSeconds = Math.min(this.currentBackoffSeconds * 2, 60); // Cap at 1 min, as suggested by docs\r\n }\r\n disconnect() {\r\n this.isClosedByClient = true;\r\n this.socket = null;\r\n this.messageListeners.length = 0;\r\n this.currentBackoffSeconds = Math.random() * 5;\r\n clearTimeout(this.reconnectTimeout);\r\n this.singleMessageListeners.length = 0;\r\n }\r\n getIsConnected() {\r\n return this.isConnected;\r\n }\r\n}\r\nexport function socketSendMessage(message, socket, createdSocket) {\r\n switch (socket.readyState) {\r\n case 0: // CONNECTING\r\n if (createdSocket.messageQueue.indexOf(message) === -1)\r\n createdSocket.messageQueue.push(message);\r\n break;\r\n case 1: // OPEN\r\n if (createdSocket.messageQueue.indexOf(message) === -1)\r\n createdSocket.messageQueue.push(message);\r\n if (createdSocket.messageQueue.length > 0) {\r\n for (let counter = 0; counter < createdSocket.messageQueue.length; counter++) {\r\n socket.send(createdSocket.messageQueue[counter]);\r\n }\r\n }\r\n createdSocket.messageQueue.length = 0;\r\n break;\r\n case 2: // CLOSING\r\n case 3: // CLOSED\r\n createdSocket.messageQueue.length = 0;\r\n console.error('Trying to send a message while in the CLOSING or CLOSED state');\r\n break;\r\n }\r\n}\r\nexport var UserType;\r\n(function (UserType) {\r\n UserType[\"normal\"] = \"normal\";\r\n UserType[\"onsiteSso\"] = \"onsite_sso\";\r\n UserType[\"cloudSso\"] = \"cloud_sso\";\r\n})(UserType || (UserType = {}));\r\nexport class Auth {\r\n constructor(options) {\r\n this.ssoLogoutUrl = '';\r\n this.userType = UserType.normal;\r\n this.ssoSessionId = '';\r\n this._sessionToken = '';\r\n this._username = '';\r\n if (options.deviceConfig && options.deviceToken) {\r\n throw new Error('Both loginV2 and loginV3 token strategies supplied');\r\n }\r\n this.options = options;\r\n if (!this.options.deviceConfig) {\r\n this.options.deviceConfig = {\r\n deviceName: null,\r\n deviceToken: null,\r\n privateKey: null,\r\n publicKey: null,\r\n transmissionKeyId: null,\r\n };\r\n }\r\n if (!this.options.sessionStorage) {\r\n this.options.sessionStorage = {\r\n lastUsername: null,\r\n getCloneCode: () => null,\r\n saveCloneCode: () => new Promise((res, rej) => { }),\r\n getSessionParameters: () => Promise.resolve(null),\r\n saveSessionParameters: () => Promise.resolve()\r\n };\r\n }\r\n this.endpoint = new KeeperEndpoint(this.options);\r\n this.endpoint.clientVersion = this.options.clientVersion || \"c14.0.0\";\r\n this.messageSessionUid = generateUidBytes();\r\n }\r\n get _endpoint() {\r\n return this.endpoint;\r\n }\r\n get accountUid() {\r\n return this._accountUid;\r\n }\r\n get clientVersion() {\r\n return this.endpoint.clientVersion;\r\n }\r\n get sessionToken() {\r\n return this._sessionToken;\r\n }\r\n get sessionTokenType() {\r\n return this._sessionTokenType;\r\n }\r\n get username() {\r\n return this._username;\r\n }\r\n getMessageSessionUid() {\r\n return this.messageSessionUid;\r\n }\r\n idpLogout() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this.userType == UserType.cloudSso) {\r\n const payload = yield this.endpoint.prepareSsoPayload(this.messageSessionUid, this.username, this.ssoSessionId);\r\n const params = new URLSearchParams({\r\n 'payload': payload,\r\n });\r\n const url = `${this.ssoLogoutUrl}?${String(params)}`;\r\n try {\r\n yield this.options.authUI3.idpLogout(url);\r\n }\r\n catch (e) {\r\n console.log('Logout errored out: ' + e);\r\n }\r\n }\r\n else if (this.userType == UserType.onsiteSso) {\r\n const params = new URLSearchParams({\r\n 'embedded': 'true',\r\n 'username': this.username,\r\n 'session_id': this.ssoSessionId,\r\n 'dest': 'vault'\r\n });\r\n const url = `${this.ssoLogoutUrl}?${String(params)}`;\r\n try {\r\n yield this.options.authUI3.idpLogout(url);\r\n }\r\n catch (e) {\r\n console.log('Logout errored out: ' + e);\r\n }\r\n }\r\n });\r\n }\r\n logout() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n yield this.executeRest(logoutV3Message());\r\n yield this.idpLogout();\r\n });\r\n }\r\n connect() {\r\n // When connecting to govcloud, remove the govcloud subdomain. There is no list of urls that do/don't require the govcloud subdomain, so for now do this.\r\n const url = `wss://push.services.${this.options.host.replace('govcloud.', '')}/wss_open_connection`;\r\n const getConnectionRequest = (messageSessionUid) => this.endpoint.getPushConnectionRequest(messageSessionUid);\r\n this.socket = new SocketListener(url, this.messageSessionUid, getConnectionRequest);\r\n console.log(\"Socket connected\");\r\n this.onCloseMessage((closeReason) => {\r\n if (this.options.onCommandFailure) {\r\n this.options.onCommandFailure({\r\n result_code: closeReason.code.toString(),\r\n message: closeReason.reason.close_reason\r\n });\r\n }\r\n });\r\n }\r\n disconnect() {\r\n if (this.socket) {\r\n this.socket.disconnect();\r\n delete this.socket;\r\n }\r\n }\r\n /**\r\n * useAlternate is to pass to the next function to use an alternate method, for testing a different path.\r\n */\r\n loginV3({ username = '', password = null, loginToken = null, loginType = Authentication.LoginType.NORMAL, loginMethod = Authentication.LoginMethod.EXISTING_ACCOUNT, v2TwoFactorToken = null, resumeSessionOnly = false, givenSessionToken = null, }) {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this._username = username || this.options.sessionStorage.lastUsername;\r\n let wrappedPassword;\r\n if (password) {\r\n if (typeof password === 'string') {\r\n wrappedPassword = wrapPassword(password);\r\n }\r\n else\r\n wrappedPassword = password;\r\n }\r\n let needUserName;\r\n let isAlternate = false;\r\n const handleError = (resultCode, loginResponse, error) => {\r\n const errorMessage = chooseErrorMessage(loginResponse.loginState);\r\n if (this.options.onCommandFailure) {\r\n this.options.onCommandFailure({\r\n result_code: resultCode,\r\n message: errorMessage,\r\n error: error.message,\r\n });\r\n }\r\n else {\r\n throw error;\r\n }\r\n };\r\n while (true) {\r\n if (!this.options.deviceConfig.deviceToken) {\r\n yield this.endpoint.registerDevice();\r\n }\r\n if (!this.socket || !this.socket.getIsConnected()) {\r\n this.connect();\r\n }\r\n const startLoginRequest = {\r\n clientVersion: this.endpoint.clientVersion,\r\n encryptedDeviceToken: (_a = this.options.deviceConfig.deviceToken) !== null && _a !== void 0 ? _a : null,\r\n messageSessionUid: this.messageSessionUid,\r\n loginMethod: loginMethod,\r\n cloneCode: yield this.options.sessionStorage.getCloneCode(this.options.host, this._username),\r\n v2TwoFactorToken: v2TwoFactorToken\r\n };\r\n if (loginType !== LoginType.NORMAL && !!loginType) {\r\n startLoginRequest.loginType = loginType;\r\n loginType = undefined;\r\n if (startLoginRequest.loginType == LoginType.ALTERNATE) {\r\n isAlternate = true;\r\n }\r\n }\r\n if (loginToken) {\r\n startLoginRequest.encryptedLoginToken = loginToken;\r\n }\r\n if (needUserName || !this.options.useSessionResumption || isAlternate) {\r\n startLoginRequest.username = this._username;\r\n needUserName = false;\r\n }\r\n var loginResponse;\r\n if (givenSessionToken) {\r\n this._sessionToken = givenSessionToken;\r\n try {\r\n loginResponse = yield this.executeRest(startLoginMessageFromSessionToken(startLoginRequest));\r\n }\r\n catch (e) {\r\n if (this.options.onCommandFailure) {\r\n this.options.onCommandFailure({\r\n result_code: 'failed_login_from_existing_session_token',\r\n message: e.message,\r\n });\r\n }\r\n }\r\n }\r\n else {\r\n loginResponse = yield this.executeRest(startLoginMessage(startLoginRequest));\r\n }\r\n if (loginResponse.cloneCode && loginResponse.cloneCode.length > 0) {\r\n this.options.sessionStorage.saveCloneCode(this.options.host, this._username, loginResponse.cloneCode);\r\n }\r\n if (resumeSessionOnly && loginResponse && (loginResponse.loginState != Authentication.LoginState.LOGGED_IN)) {\r\n return {\r\n result: 'notLoggedin'\r\n };\r\n }\r\n console.log(loginResponse);\r\n console.log(\"login state =\", loginResponse.loginState);\r\n switch (loginResponse.loginState) {\r\n case Authentication.LoginState.ACCOUNT_LOCKED:\r\n case Authentication.LoginState.INVALID_LOGINSTATE:\r\n case Authentication.LoginState.LOGGED_OUT:\r\n case Authentication.LoginState.AFTER_CLOUD_SSO_LOGIN:\r\n case Authentication.LoginState.LOGIN_TOKEN_EXPIRED:\r\n case Authentication.LoginState.DEVICE_ACCOUNT_LOCKED:\r\n case Authentication.LoginState.DEVICE_LOCKED:\r\n handleError('generic_error', loginResponse, new Error(`Unable to login, login state = ${loginResponse.loginState}`));\r\n return;\r\n case Authentication.LoginState.REQUIRES_ACCOUNT_CREATION:\r\n if (this.userType === UserType.cloudSso) {\r\n yield this.createSsoUser(loginResponse.encryptedLoginToken);\r\n }\r\n else {\r\n yield this.createUser(this._username, wrappedPassword);\r\n }\r\n break;\r\n case Authentication.LoginState.UPGRADE:\r\n handleError('generic_error', loginResponse, new Error(`Unable to login, login state = ${loginResponse.loginState}`));\r\n return;\r\n case Authentication.LoginState.REQUIRES_USERNAME:\r\n if (!this._username) {\r\n handleError('generic_error', loginResponse, new Error(`No username supplied, login state = ${loginResponse.loginState}`));\r\n return;\r\n }\r\n needUserName = true;\r\n break;\r\n case Authentication.LoginState.DEVICE_APPROVAL_REQUIRED:\r\n case Authentication.LoginState.REQUIRES_DEVICE_ENCRYPTED_DATA_KEY:\r\n if (!loginResponse.encryptedLoginToken) {\r\n throw new Error('Login token missing from API response');\r\n }\r\n if (givenSessionToken)\r\n return { result: 'notLoggedin' };\r\n try {\r\n loginToken = yield this.verifyDevice(username, loginResponse.encryptedLoginToken, loginResponse.loginState == Authentication.LoginState.REQUIRES_DEVICE_ENCRYPTED_DATA_KEY);\r\n }\r\n catch (e) {\r\n handleError('auth_failed', loginResponse, e);\r\n return;\r\n }\r\n break;\r\n case Authentication.LoginState.LICENSE_EXPIRED:\r\n handleError('license_expired', loginResponse, new Error(loginResponse.message));\r\n return;\r\n case Authentication.LoginState.REGION_REDIRECT:\r\n // TODO: put region_redirect in its own loop since\r\n // its unique to the other states.\r\n this.options.host = loginResponse.stateSpecificValue;\r\n loginToken = undefined;\r\n if (this.options.onRegionChanged) {\r\n this.options.onRegionChanged(loginResponse.stateSpecificValue);\r\n }\r\n // Current socket no longer pointing to the right region\r\n this.disconnect();\r\n break;\r\n case Authentication.LoginState.REDIRECT_CLOUD_SSO:\r\n console.log(\"Cloud SSO Connect login\");\r\n if (!loginResponse.url) {\r\n throw new Error('URL missing from API response');\r\n }\r\n this.ssoLogoutUrl = loginResponse.url.replace('login', 'logout');\r\n this.userType = UserType.cloudSso;\r\n let payload = yield this._endpoint.prepareSsoPayload(this.messageSessionUid);\r\n let cloudSsoLoginUrl = loginResponse.url + \"?payload=\" + payload;\r\n if (this.options.authUI3.redirectCallback) {\r\n this.options.authUI3.redirectCallback(cloudSsoLoginUrl);\r\n return;\r\n }\r\n else if (this.options.authUI3.ssoLogin) {\r\n const token = yield this.options.authUI3.ssoLogin(cloudSsoLoginUrl);\r\n const cloudResp = yield this.endpoint.decryptCloudSsoResponse(token);\r\n console.log(cloudResp);\r\n this._username = cloudResp.email;\r\n loginToken = cloudResp.encryptedLoginToken;\r\n break;\r\n }\r\n case Authentication.LoginState.REDIRECT_ONSITE_SSO:\r\n console.log(\"SSO Connect login\");\r\n if (!loginResponse.url) {\r\n throw new Error('URL missing from API response');\r\n }\r\n this.ssoLogoutUrl = loginResponse.url.replace('login', 'logout');\r\n this.userType = UserType.onsiteSso;\r\n let onsitePublicKey = yield this._endpoint.getOnsitePublicKey();\r\n let onsiteSsoLoginUrl = loginResponse.url + '?embedded&key=' + onsitePublicKey;\r\n if (this.options.authUI3.redirectCallback) {\r\n this.options.authUI3.redirectCallback(onsiteSsoLoginUrl);\r\n return;\r\n }\r\n else if (this.options.authUI3.ssoLogin) {\r\n const onsiteResp = yield this.options.authUI3.ssoLogin(onsiteSsoLoginUrl);\r\n console.log(onsiteResp);\r\n this._username = onsiteResp.email;\r\n wrappedPassword = wrapPassword(onsiteResp.password);\r\n loginType = LoginType.SSO;\r\n loginMethod = LoginMethod.AFTER_SSO;\r\n break;\r\n }\r\n case Authentication.LoginState.REQUIRES_2FA:\r\n try {\r\n loginToken = yield this.handleTwoFactor(loginResponse);\r\n }\r\n catch (e) {\r\n if ((e === null || e === void 0 ? void 0 : e.message) && e.message == 'push_declined') {\r\n handleError(e.message, loginResponse, e);\r\n }\r\n }\r\n break;\r\n case Authentication.LoginState.REQUIRES_AUTH_HASH:\r\n // TODO: loop in authHashLogin until successful or get into\r\n // some other state other than Authentication.LoginState.REQUIRES_AUTH_HASH\r\n if (!wrappedPassword && ((_b = this.options.authUI3) === null || _b === void 0 ? void 0 : _b.getPassword)) {\r\n password = yield this.options.authUI3.getPassword();\r\n if (password) {\r\n if (typeof password === 'string') {\r\n wrappedPassword = wrapPassword(password);\r\n }\r\n else\r\n wrappedPassword = password;\r\n }\r\n }\r\n if (!wrappedPassword) {\r\n throw new Error('User password required and not provided');\r\n }\r\n try {\r\n yield this.authHashLogin(loginResponse, username, wrappedPassword, isAlternate);\r\n return;\r\n }\r\n catch (e) {\r\n wrappedPassword = null;\r\n handleError('auth_failed', loginResponse, e);\r\n break;\r\n }\r\n case Authentication.LoginState.LOGGED_IN:\r\n try {\r\n yield this.loginSuccess(loginResponse, null);\r\n console.log(\"Exiting on loginState = LOGGED_IN\");\r\n return;\r\n }\r\n catch (e) {\r\n console.log('Error in Authentication.LoginState.LOGGED_IN: ', e);\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n /**\r\n * The MV3 browser extension runs in a service worker that shuts down every 5 minutes.\r\n * This rehydrates the Auth class and re-opens our socket with the session parameters.\r\n */\r\n continueSession() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this.options.sessionStorage) {\r\n throw new Error('Missing configuration option to get session parameters');\r\n }\r\n const sessionParams = yield this.options.sessionStorage.getSessionParameters();\r\n if (!sessionParams) {\r\n throw new Error('No session to resume');\r\n }\r\n this.messageSessionUid = sessionParams.messageSessionUid;\r\n this._username = sessionParams.username;\r\n this.dataKey = sessionParams.dataKey;\r\n this.clientKey = sessionParams.clientKey;\r\n this.privateKey = sessionParams.privateKey;\r\n this.eccPrivateKey = sessionParams.eccPrivateKey;\r\n this.eccPublicKey = sessionParams.eccPublicKey;\r\n this.enterpriseEccPublicKey = sessionParams.enterpriseEccPublicKey;\r\n this.ssoLogoutUrl = sessionParams.ssoLogoutUrl;\r\n this.ssoSessionId = sessionParams.ssoSessionId;\r\n this.userType = sessionParams.userType;\r\n if (!this.socket || !this.socket.getIsConnected()) {\r\n this.connect();\r\n }\r\n this.setLoginParameters(sessionParams.sessionToken, sessionParams.sessionTokenType, sessionParams.accountUid);\r\n });\r\n }\r\n getSessionParameters() {\r\n return {\r\n accountUid: this._accountUid,\r\n username: this._username,\r\n sessionToken: this._sessionToken,\r\n sessionTokenType: this._sessionTokenType,\r\n dataKey: this.dataKey,\r\n privateKey: this.privateKey,\r\n eccPrivateKey: this.eccPrivateKey,\r\n eccPublicKey: this.eccPublicKey,\r\n enterpriseEccPublicKey: this.enterpriseEccPublicKey,\r\n clientKey: this.clientKey,\r\n userType: this.userType,\r\n ssoLogoutUrl: this.ssoLogoutUrl,\r\n ssoSessionId: this.ssoSessionId,\r\n messageSessionUid: this.messageSessionUid\r\n };\r\n }\r\n getSsoProvider(ssoDomain, locale) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let domainRequest = {\r\n name: ssoDomain.trim(),\r\n locale: locale,\r\n clientVersion: this.endpoint.clientVersion,\r\n };\r\n const domainResponse = yield this.executeRest(ssoServiceProviderRequestMessage(domainRequest));\r\n const params = domainResponse.isCloud\r\n ? '?payload=' + (yield this._endpoint.prepareSsoPayload(this.messageSessionUid))\r\n : '?embedded&key=' + (yield this._endpoint.getOnsitePublicKey());\r\n this.userType = domainResponse.isCloud ? UserType.cloudSso : UserType.onsiteSso;\r\n this.ssoLogoutUrl = domainResponse.spUrl.replace('login', 'logout');\r\n return {\r\n url: domainResponse.spUrl + params,\r\n name: domainResponse.name,\r\n };\r\n });\r\n }\r\n verifyDevice(username, loginToken, isCloud = false) {\r\n return new Promise((resolve, reject) => {\r\n if (!this.options.authUI3) {\r\n reject(new Error('No authUI3 provided. authUI3 required to verify devices'));\r\n return;\r\n }\r\n let emailSent = false;\r\n let tfaExpiration = TwoFactorExpiration.TWO_FA_EXP_IMMEDIATELY;\r\n const deviceConfig = this.options.deviceConfig;\r\n let channels;\r\n if (!isCloud) {\r\n channels = [\r\n {\r\n channel: DeviceVerificationMethods.Email,\r\n sendApprovalRequest: () => __awaiter(this, void 0, void 0, function* () {\r\n yield this.executeRest(requestDeviceVerificationMessage({\r\n username: username,\r\n verificationChannel: emailSent ? 'email_resend' : 'email',\r\n encryptedDeviceToken: deviceConfig.deviceToken,\r\n clientVersion: this.endpoint.clientVersion,\r\n messageSessionUid: this.messageSessionUid\r\n }));\r\n emailSent = true;\r\n }),\r\n validateCode: (code) => __awaiter(this, void 0, void 0, function* () {\r\n yield this.executeRest(validateDeviceVerificationCodeMessage({\r\n verificationCode: code,\r\n username: username,\r\n }));\r\n resumeWithToken(loginToken);\r\n })\r\n },\r\n {\r\n channel: DeviceVerificationMethods.KeeperPush,\r\n sendApprovalRequest: () => __awaiter(this, void 0, void 0, function* () {\r\n yield this.executeRest(twoFactorSend2FAPushMessage({\r\n encryptedLoginToken: loginToken,\r\n pushType: TwoFactorPushType.TWO_FA_PUSH_KEEPER\r\n }));\r\n })\r\n },\r\n {\r\n channel: DeviceVerificationMethods.TFA,\r\n sendApprovalRequest: () => __awaiter(this, void 0, void 0, function* () {\r\n yield this.executeRest(twoFactorSend2FAPushMessage({\r\n encryptedLoginToken: loginToken,\r\n }));\r\n }),\r\n validateCode: (code) => __awaiter(this, void 0, void 0, function* () {\r\n const twoFactorValidateMsg = twoFactorValidateMessage({\r\n encryptedLoginToken: loginToken,\r\n value: code,\r\n expireIn: tfaExpiration\r\n });\r\n const twoFactorValidateResp = yield this.executeRest(twoFactorValidateMsg);\r\n if (twoFactorValidateResp.encryptedLoginToken) {\r\n const wssRs = {\r\n event: 'received_totp',\r\n encryptedLoginToken: platform.bytesToBase64(twoFactorValidateResp.encryptedLoginToken)\r\n };\r\n processPushNotification(wssRs);\r\n }\r\n }),\r\n setExpiration: expiration => {\r\n tfaExpiration = expiration;\r\n }\r\n }\r\n ];\r\n }\r\n else {\r\n channels = [\r\n {\r\n channel: DeviceVerificationMethods.KeeperPush,\r\n sendApprovalRequest: () => __awaiter(this, void 0, void 0, function* () {\r\n yield this.executeRest(twoFactorSend2FAPushMessage({\r\n encryptedLoginToken: loginToken,\r\n pushType: TwoFactorPushType.TWO_FA_PUSH_KEEPER\r\n }));\r\n })\r\n },\r\n {\r\n channel: DeviceVerificationMethods.AdminApproval,\r\n sendApprovalRequest: () => __awaiter(this, void 0, void 0, function* () {\r\n yield this.executeRest(requestDeviceAdminApprovalMessage({\r\n username: username,\r\n verificationChannel: emailSent ? 'email_resend' : 'email',\r\n encryptedDeviceToken: deviceConfig.deviceToken,\r\n clientVersion: this.endpoint.clientVersion,\r\n messageSessionUid: this.messageSessionUid\r\n }));\r\n })\r\n }\r\n ];\r\n }\r\n let done = false;\r\n const resumeWithToken = (token) => {\r\n done = true;\r\n resolve(token);\r\n };\r\n const rejectWithError = (error) => {\r\n done = true;\r\n reject(error);\r\n };\r\n const processPushNotification = (wssRs) => {\r\n if (wssRs.event === 'received_totp') {\r\n const token = wssRs.encryptedLoginToken ? normal64Bytes(wssRs.encryptedLoginToken) : loginToken;\r\n resumeWithToken(token);\r\n }\r\n else if (wssRs.message === 'device_approved') {\r\n if (wssRs.approved) {\r\n resumeWithToken(loginToken);\r\n }\r\n else {\r\n rejectWithError(new Error('Rejected'));\r\n }\r\n }\r\n else if (wssRs.command === 'device_verified') {\r\n if (this.options.onDeviceVerified) {\r\n this.options.onDeviceVerified(true);\r\n }\r\n resumeWithToken(loginToken);\r\n }\r\n };\r\n // response from the client true - try again, false - cancel\r\n this.options.authUI3.waitForDeviceApproval(channels, isCloud)\r\n .then((ok) => {\r\n if (ok) {\r\n resumeWithToken(loginToken);\r\n }\r\n else {\r\n rejectWithError(new Error('Canceled'));\r\n }\r\n })\r\n .catch(reason => rejectWithError(reason));\r\n (() => __awaiter(this, void 0, void 0, function* () {\r\n while (!done) {\r\n const pushMessage = yield this.socket.getPushMessage();\r\n const wssClientResponse = yield this.endpoint.decryptPushMessage(pushMessage);\r\n if (!done) {\r\n const wssRs = JSON.parse(wssClientResponse.message);\r\n console.log(wssRs);\r\n processPushNotification(wssRs);\r\n }\r\n }\r\n }))();\r\n });\r\n }\r\n handleTwoFactor(loginResponse) {\r\n return new Promise((resolve, reject) => {\r\n if (!loginResponse.channels) {\r\n reject(new Error('Channels not provided by API'));\r\n return;\r\n }\r\n const loginToken = loginResponse.encryptedLoginToken;\r\n let done = false;\r\n let twoFactorWaitCancel = resolvablePromise();\r\n const resumeWithToken = (token) => {\r\n done = true;\r\n twoFactorWaitCancel.resolve();\r\n resolve(token);\r\n };\r\n const rejectWithError = (error) => {\r\n done = true;\r\n twoFactorWaitCancel.resolve();\r\n reject(error);\r\n };\r\n let tfaExpiration = TwoFactorExpiration.TWO_FA_EXP_IMMEDIATELY;\r\n const submitCode = (channel, code) => __awaiter(this, void 0, void 0, function* () {\r\n const channelInfo = loginResponse.channels.find(x => x.channelType === channel);\r\n let valueType;\r\n switch (channelInfo.channelType) {\r\n case Authentication.TwoFactorChannelType.TWO_FA_CT_DNA:\r\n valueType = Authentication.TwoFactorValueType.TWO_FA_CODE_DNA;\r\n break;\r\n case Authentication.TwoFactorChannelType.TWO_FA_CT_DUO:\r\n valueType = Authentication.TwoFactorValueType.TWO_FA_CODE_DUO;\r\n break;\r\n case Authentication.TwoFactorChannelType.TWO_FA_CT_SMS:\r\n valueType = Authentication.TwoFactorValueType.TWO_FA_CODE_SMS;\r\n break;\r\n case Authentication.TwoFactorChannelType.TWO_FA_CT_TOTP:\r\n valueType = Authentication.TwoFactorValueType.TWO_FA_CODE_TOTP;\r\n break;\r\n case Authentication.TwoFactorChannelType.TWO_FA_CT_RSA:\r\n valueType = Authentication.TwoFactorValueType.TWO_FA_CODE_RSA;\r\n break;\r\n case Authentication.TwoFactorChannelType.TWO_FA_CT_U2F:\r\n valueType = Authentication.TwoFactorValueType.TWO_FA_RESP_U2F;\r\n break;\r\n case Authentication.TwoFactorChannelType.TWO_FA_CT_WEBAUTHN:\r\n valueType = Authentication.TwoFactorValueType.TWO_FA_RESP_WEBAUTHN;\r\n break;\r\n default:\r\n valueType = undefined;\r\n break;\r\n }\r\n const twoFactorValidateMsg = twoFactorValidateMessage({\r\n channelUid: channelInfo ? channelInfo.channelUid : undefined,\r\n encryptedLoginToken: loginToken,\r\n value: code,\r\n expireIn: tfaExpiration,\r\n valueType: valueType,\r\n });\r\n const twoFactorValidateResp = yield this.executeRest(twoFactorValidateMsg);\r\n if (twoFactorValidateResp.encryptedLoginToken) {\r\n resumeWithToken(twoFactorValidateResp.encryptedLoginToken);\r\n }\r\n });\r\n let lastPushChannel = TwoFactorChannelType.TWO_FA_CT_NONE;\r\n const submitPush = (channel, pushType) => __awaiter(this, void 0, void 0, function* () {\r\n const sendPushRequest = {\r\n encryptedLoginToken: loginResponse.encryptedLoginToken,\r\n pushType: pushType,\r\n expireIn: tfaExpiration\r\n };\r\n yield this.executeRest(twoFactorSend2FAPushMessage(sendPushRequest));\r\n lastPushChannel = channel;\r\n });\r\n const channels = loginResponse.channels\r\n .map((ch) => {\r\n const tfachannelData = {\r\n channel: ch,\r\n setExpiration: (exp) => {\r\n tfaExpiration = exp;\r\n },\r\n sendCode: (code) => __awaiter(this, void 0, void 0, function* () {\r\n yield submitCode(ch.channelType, code);\r\n })\r\n };\r\n switch (ch.channelType) {\r\n case TwoFactorChannelType.TWO_FA_CT_U2F:\r\n case TwoFactorChannelType.TWO_FA_CT_WEBAUTHN:\r\n // add support for security key as push\r\n break;\r\n case TwoFactorChannelType.TWO_FA_CT_TOTP:\r\n case TwoFactorChannelType.TWO_FA_CT_RSA:\r\n break;\r\n case TwoFactorChannelType.TWO_FA_CT_SMS:\r\n tfachannelData.availablePushes = [TwoFactorPushType.TWO_FA_PUSH_SMS];\r\n break;\r\n case TwoFactorChannelType.TWO_FA_CT_DNA:\r\n tfachannelData.availablePushes = [TwoFactorPushType.TWO_FA_PUSH_DNA];\r\n break;\r\n case TwoFactorChannelType.TWO_FA_CT_KEEPER:\r\n case TwoFactorChannelType.TWO_FA_CT_DUO:\r\n if (ch.capabilities) {\r\n tfachannelData.availablePushes = ch.capabilities\r\n .map(cap => {\r\n switch (cap) {\r\n case 'push':\r\n return TwoFactorPushType.TWO_FA_PUSH_DUO_PUSH;\r\n case 'sms':\r\n return TwoFactorPushType.TWO_FA_PUSH_DUO_TEXT;\r\n case 'phone':\r\n return TwoFactorPushType.TWO_FA_PUSH_DUO_CALL;\r\n default:\r\n return undefined;\r\n }\r\n }).filter(cap => !!cap).map(cap => cap);\r\n }\r\n break;\r\n }\r\n if (tfachannelData.availablePushes) {\r\n tfachannelData.sendPush = (pushType) => __awaiter(this, void 0, void 0, function* () {\r\n submitPush(ch.channelType, pushType);\r\n });\r\n }\r\n return tfachannelData;\r\n }).filter((chd) => !!chd).map(chd => chd);\r\n const processPushNotification = (wssRs) => {\r\n if (wssRs.event === 'received_totp') {\r\n if (wssRs.encryptedLoginToken) {\r\n const token = normal64Bytes(wssRs.encryptedLoginToken);\r\n resumeWithToken(token);\r\n }\r\n else if (wssRs.passcode) {\r\n (() => __awaiter(this, void 0, void 0, function* () {\r\n yield submitCode(lastPushChannel, wssRs.passcode);\r\n }))();\r\n }\r\n else {\r\n rejectWithError(new Error('push_declined'));\r\n }\r\n }\r\n };\r\n this.options.authUI3.waitForTwoFactorCode(channels, twoFactorWaitCancel.promise)\r\n .then(ok => {\r\n if (ok) {\r\n resumeWithToken(loginToken);\r\n }\r\n else {\r\n rejectWithError(new Error('Canceled'));\r\n }\r\n })\r\n .catch(reason => rejectWithError(reason));\r\n (() => __awaiter(this, void 0, void 0, function* () {\r\n while (!done) {\r\n const pushMessage = yield this.socket.getPushMessage();\r\n const wssClientResponse = yield this.endpoint.decryptPushMessage(pushMessage);\r\n if (!done) {\r\n const wssRs = JSON.parse(wssClientResponse.message);\r\n console.log(wssRs);\r\n processPushNotification(wssRs);\r\n }\r\n }\r\n }))();\r\n });\r\n }\r\n authHashLogin(loginResponse, username, password, useAlternate = false) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n // TODO test for account transfer and account recovery\r\n if (!loginResponse.salt) {\r\n throw new Error('Salt missing from API response');\r\n }\r\n const salt = useAlternate ? loginResponse.salt.find(s => s.name === 'alternate') : loginResponse.salt[0];\r\n if (!salt.salt || !salt.iterations) {\r\n throw new Error('Salt missing from API response');\r\n }\r\n this.options.salt = salt.salt;\r\n this.options.iterations = salt.iterations;\r\n const authHashKey = yield platform.deriveKey(password, salt.salt, salt.iterations);\r\n let authHash = yield platform.calcAuthVerifier(authHashKey);\r\n const loginMsg = validateAuthHashMessage({\r\n authResponse: authHash,\r\n encryptedLoginToken: loginResponse.encryptedLoginToken\r\n });\r\n const loginResp = yield this.executeRest(loginMsg);\r\n console.log(loginResp);\r\n if (loginResp.cloneCode && loginResp.cloneCode.length > 0) {\r\n this.options.sessionStorage.saveCloneCode(this.options.host, this._username, loginResp.cloneCode);\r\n }\r\n yield this.loginSuccess(loginResp, password, salt);\r\n });\r\n }\r\n loginSuccess(loginResponse, password, salt = undefined) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this._username = loginResponse.primaryUsername || this._username;\r\n if (!loginResponse.encryptedSessionToken || !loginResponse.encryptedDataKey || !loginResponse.accountUid) {\r\n return;\r\n }\r\n this.setLoginParameters(webSafe64FromBytes(loginResponse.encryptedSessionToken), loginResponse.sessionTokenType, loginResponse.accountUid);\r\n switch (loginResponse.encryptedDataKeyType) {\r\n case Authentication.EncryptedDataKeyType.BY_DEVICE_PUBLIC_KEY:\r\n this.dataKey = yield platform.privateDecryptEC(loginResponse.encryptedDataKey, this.options.deviceConfig.privateKey, this.options.deviceConfig.publicKey);\r\n break;\r\n case Authentication.EncryptedDataKeyType.BY_PASSWORD:\r\n this.dataKey = yield decryptEncryptionParams(password, loginResponse.encryptedDataKey);\r\n break;\r\n case Authentication.EncryptedDataKeyType.BY_ALTERNATE:\r\n if (salt) {\r\n const encKey = yield platform.deriveKeyV2('data_key', password, salt.salt, salt.iterations);\r\n this.dataKey = yield platform.aesGcmDecrypt(loginResponse.encryptedDataKey, encKey);\r\n }\r\n break;\r\n case Authentication.EncryptedDataKeyType.NO_KEY:\r\n case Authentication.EncryptedDataKeyType.BY_BIO:\r\n throw new Error(`Data Key type ${loginResponse.encryptedDataKeyType} decryption not implemented`);\r\n }\r\n yield this.loadAccountSummary();\r\n let encryptedPrivateKey;\r\n let encryptedEccPrivateKey;\r\n if (this.options.kvs) {\r\n const encryptedPrivateKeyString = this.options.kvs.getValue(`${this._username}/private_key`);\r\n if (encryptedPrivateKeyString) {\r\n encryptedPrivateKey = platform.base64ToBytes(encryptedPrivateKeyString);\r\n }\r\n const encryptedEccPrivateKeyString = this.options.kvs.getValue(`${this._username}/ecc_private_key`);\r\n if (encryptedEccPrivateKey) {\r\n encryptedEccPrivateKey = platform.base64ToBytes(encryptedEccPrivateKeyString);\r\n }\r\n }\r\n if (!encryptedPrivateKey || !encryptedEccPrivateKey) {\r\n encryptedPrivateKey = this.accountSummary.keysInfo.encryptedPrivateKey;\r\n encryptedEccPrivateKey = this.accountSummary.keysInfo.encryptedEccPrivateKey;\r\n if (this.options.kvs) {\r\n this.options.kvs.saveValue(`${this._username}/private_key`, platform.bytesToBase64(encryptedPrivateKey));\r\n if (encryptedEccPrivateKey) {\r\n this.options.kvs.saveValue(`${this._username}/ecc_private_key`, platform.bytesToBase64(encryptedEccPrivateKey));\r\n }\r\n }\r\n }\r\n this.privateKey = platform.aesCbcDecrypt(encryptedPrivateKey, this.dataKey, true);\r\n if (encryptedEccPrivateKey === null || encryptedEccPrivateKey === void 0 ? void 0 : encryptedEccPrivateKey.length) {\r\n this.eccPrivateKey = yield platform.aesGcmDecrypt(encryptedEccPrivateKey, this.dataKey);\r\n this.eccPublicKey = this.accountSummary.keysInfo.eccPublicKey;\r\n }\r\n this.clientKey = platform.aesCbcDecrypt(this.accountSummary.clientKey, this.dataKey, true);\r\n if (this.options.sessionStorage) {\r\n this.options.sessionStorage.saveSessionParameters(this.getSessionParameters());\r\n }\r\n });\r\n }\r\n loadAccountSummary() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.accountSummary = yield this.executeRest(accountSummaryMessage({\r\n summaryVersion: 1\r\n }));\r\n });\r\n }\r\n login(username, password) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n let preLoginResponse = yield this.endpoint.getPreLogin(username);\r\n if (!preLoginResponse.salt) {\r\n throw new Error('Salt missing from API response');\r\n }\r\n let salt = preLoginResponse.salt[0];\r\n if (!salt.salt || !salt.iterations) {\r\n throw new Error('Salt missing from API response');\r\n }\r\n let authHashKey = yield platform.deriveKey(password, salt.salt, salt.iterations);\r\n let authHash = platform.bytesToBase64(yield platform.calcAuthVerifier(authHashKey));\r\n let loginCommand = new LoginCommand();\r\n loginCommand.command = \"login\";\r\n loginCommand.username = username;\r\n loginCommand.version = 2;\r\n loginCommand.auth_response = webSafe64(authHash);\r\n loginCommand.platform_device_token = webSafe64FromBytes(this.endpoint.deviceToken);\r\n loginCommand.include = [\"keys\"]; //[\"license\",\"settings\",\"group\",\"sync_log\",\"keys\",\"enforcements\",\"client_key\",\"images\",\"is_enterprise_admin\",\"security_keys\"]\r\n if (this.managedCompanyId) {\r\n loginCommand.enterprise_id = this.managedCompanyId;\r\n }\r\n let loginResponse;\r\n let socketListener = null;\r\n while (true) {\r\n loginResponse = yield this.endpoint.executeV2Command(loginCommand);\r\n if (loginResponse.result_code === \"auth_success\")\r\n break;\r\n console.log(loginResponse);\r\n if (isTwoFactorResultCode(loginResponse.result_code)) {\r\n if (!!loginResponse.u2f_challenge) {\r\n loginResponse.u2f_challenge = JSON.parse(loginResponse.u2f_challenge);\r\n }\r\n if (!this.options.authUI)\r\n break;\r\n let errorMessage = loginResponse.result_code === LoginResponseResultCode.InvalidTOTP\r\n ? loginResponse.message\r\n : undefined;\r\n if (loginResponse.channel === 'two_factor_channel_duo' && loginResponse.url) {\r\n loginCommand['2fa_mode'] = 'push';\r\n socketListener = new SocketListener(loginResponse.url);\r\n }\r\n else {\r\n let token;\r\n if (socketListener) {\r\n const pushMessage = JSON.parse(yield socketListener.getPushMessage());\r\n socketListener.disconnect();\r\n console.log(pushMessage);\r\n token = pushMessage.passcode;\r\n }\r\n else {\r\n token = yield this.options.authUI.getTwoFactorCode(errorMessage);\r\n }\r\n if (!token)\r\n break;\r\n loginCommand[\"2fa_token\"] = token;\r\n }\r\n loginCommand['2fa_type'] = 'one_time';\r\n loginCommand[\"device_token_expire_days\"] = 9999;\r\n }\r\n }\r\n this._sessionToken = loginResponse.session_token;\r\n this._username = username;\r\n this.dataKey = yield decryptEncryptionParamsString(password, loginResponse.keys.encryption_params);\r\n if (loginResponse.keys.encrypted_private_key) {\r\n this.privateKey = decryptFromStorage(loginResponse.keys.encrypted_private_key, this.dataKey);\r\n }\r\n }\r\n catch (e) {\r\n throw unifyLoginError(e);\r\n }\r\n });\r\n }\r\n managedCompanyLogin(username, password, companyId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.managedCompanyId = companyId;\r\n yield this.login(username, password);\r\n });\r\n }\r\n executeCommand(command) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!command.username) {\r\n command.username = this._username;\r\n }\r\n if (command instanceof AuthorizedCommand) {\r\n command.device_id = \"JS Keeper API\";\r\n command.session_token = this._sessionToken;\r\n }\r\n return this.endpoint.executeV2Command(command);\r\n });\r\n }\r\n executeRest(message) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return this.endpoint.executeRest(message, this._sessionToken);\r\n });\r\n }\r\n get(path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return this.endpoint.get(path);\r\n });\r\n }\r\n setLoginParameters(sessionToken, sessionTokenType, accountUid) {\r\n this._sessionToken = sessionToken;\r\n this._sessionTokenType = sessionTokenType;\r\n this._accountUid = accountUid;\r\n if (!this.socket) {\r\n throw new Error('No socket available');\r\n }\r\n if (this.socket.getIsConnected()) {\r\n this.socket.registerLogin(this._sessionToken);\r\n }\r\n this.socket.onOpen(() => {\r\n this.socket.registerLogin(this._sessionToken);\r\n });\r\n }\r\n registerDevice() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n yield this.endpoint.registerDevice();\r\n });\r\n }\r\n onClose(callback) {\r\n if (!this.socket) {\r\n throw new Error('No socket available');\r\n }\r\n this.socket.onClose(callback);\r\n }\r\n onError(callback) {\r\n if (!this.socket) {\r\n throw new Error('No socket available');\r\n }\r\n this.socket.onError(callback);\r\n }\r\n onPushMessage(callback) {\r\n if (!this.socket) {\r\n throw new Error('No socket available');\r\n }\r\n this.socket.onPushMessage(callback);\r\n }\r\n onCloseMessage(callback) {\r\n if (!this.socket) {\r\n throw new Error('No socket available');\r\n }\r\n this.socket.onCloseMessage(callback);\r\n }\r\n getPushMessage() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this.socket) {\r\n throw new Error('No socket available');\r\n }\r\n const pushMessage = yield this.socket.getPushMessage();\r\n const wssClientResponse = yield this.endpoint.decryptPushMessage(pushMessage);\r\n console.log(wssClientResponse.message);\r\n return JSON.parse(wssClientResponse.message);\r\n });\r\n }\r\n createUserRequest(dataKey) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const rsaKeys = yield platform.generateRSAKeyPair();\r\n const rsaEncryptedPrivateKey = yield platform.aesCbcEncrypt(rsaKeys.privateKey, dataKey, true);\r\n const ecKeys = yield platform.generateECKeyPair();\r\n const eccEncryptedPrivateKey = yield platform.aesGcmEncrypt(ecKeys.privateKey, dataKey);\r\n const encryptedClientKey = yield platform.aesCbcEncrypt(generateEncryptionKey(), dataKey, true);\r\n return {\r\n rsaPublicKey: rsaKeys.publicKey,\r\n rsaEncryptedPrivateKey: rsaEncryptedPrivateKey,\r\n eccPublicKey: ecKeys.publicKey,\r\n eccEncryptedPrivateKey: eccEncryptedPrivateKey,\r\n encryptedDeviceToken: this.options.deviceConfig.deviceToken,\r\n encryptedClientKey: encryptedClientKey,\r\n clientVersion: this.options.clientVersion,\r\n };\r\n });\r\n }\r\n createUser(username, password) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const iterations = 100000;\r\n const dataKey = generateEncryptionKey();\r\n const authVerifier = yield createAuthVerifier(password, iterations);\r\n const encryptionParams = yield createEncryptionParams(password, dataKey, iterations);\r\n const request = yield this.createUserRequest(dataKey);\r\n const regUserMsg = requestCreateUserMessage(Object.assign(Object.assign({}, request), { username: username, authVerifier: authVerifier, encryptionParams: encryptionParams }), false);\r\n yield this.executeRest(regUserMsg);\r\n });\r\n }\r\n createSsoUser(loginToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const dataKey = generateEncryptionKey();\r\n const encryptedDeviceDataKey = yield platform.publicEncryptEC(dataKey, this.options.deviceConfig.publicKey);\r\n const request = yield this.createUserRequest(dataKey);\r\n const regUserMsg = requestCreateUserMessage(Object.assign(Object.assign({}, request), { username: this._username, encryptedLoginToken: loginToken, encryptedDeviceDataKey: encryptedDeviceDataKey }), true);\r\n yield this.executeRest(regUserMsg);\r\n });\r\n }\r\n getEnterpriseECCPublicKey() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const resp = yield this.executeRest(getEnterprisePublicKeyMessage());\r\n if (resp.enterpriseECCPublicKey) {\r\n this.enterpriseEccPublicKey = resp.enterpriseECCPublicKey;\r\n }\r\n });\r\n }\r\n}\r\nconst iterationsToBytes = (iterations) => {\r\n const iterationBytes = new ArrayBuffer(4);\r\n new DataView(iterationBytes).setUint32(0, iterations);\r\n const bytes = new Uint8Array(iterationBytes);\r\n bytes[0] = 1; // version\r\n return bytes;\r\n};\r\nexport function createAuthVerifier(password, iterations) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const salt = platform.getRandomBytes(16);\r\n const authHashKey = yield platform.deriveKey(password, salt, iterations);\r\n return Uint8Array.of(...iterationsToBytes(iterations), ...salt, ...authHashKey);\r\n });\r\n}\r\nexport function createEncryptionParams(password, dataKey, iterations) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const salt = platform.getRandomBytes(16);\r\n const authHashKey = yield platform.deriveKey(password, salt, iterations);\r\n const doubledDataKey = Uint8Array.of(...dataKey, ...dataKey);\r\n const encryptedDoubledKey = yield platform.aesCbcEncrypt(doubledDataKey, authHashKey, false);\r\n return Uint8Array.of(...iterationsToBytes(iterations), ...salt, ...encryptedDoubledKey);\r\n });\r\n}\r\nfunction decryptEncryptionParamsString(password, encryptionParams) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return decryptEncryptionParams(password, platform.base64ToBytes(normal64(encryptionParams)));\r\n });\r\n}\r\nexport function decryptEncryptionParams(password, encryptionParams) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let corruptedEncryptionParametersMessage = \"Corrupted encryption parameters\";\r\n if (encryptionParams[0] !== 1)\r\n throw new Error(corruptedEncryptionParametersMessage);\r\n let iterations = (encryptionParams[1] << 16) + (encryptionParams[2] << 8) + encryptionParams[3];\r\n let saltBytes = encryptionParams.subarray(4, 20);\r\n let masterKey = yield platform.deriveKey(password, saltBytes, iterations);\r\n let encryptedDoubledDataKey = encryptionParams.subarray(20);\r\n let doubledDataKey = yield platform.aesCbcDecrypt(encryptedDoubledDataKey, masterKey, false);\r\n for (let i = 0; i < 32; i++) {\r\n if (doubledDataKey[i] !== doubledDataKey[i + 32]) {\r\n throw new Error(corruptedEncryptionParametersMessage);\r\n }\r\n }\r\n return doubledDataKey.slice(0, 32);\r\n });\r\n}\r\n//# sourceMappingURL=auth.js.map","references":["/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/src/configuration.ts","/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/src/endpoint.ts","/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/src/platform.ts","/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/src/commands.ts","/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/src/utils.ts","/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/src/restMessages.ts","/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/src/proto.d.ts"],"map":"{\"version\":3,\"file\":\"auth.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/auth.ts\"],\"names\":[],\"mappings\":\";AAAA,OAAO,EAIH,yBAAyB,EAI5B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAC,cAAc,EAAoB,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAa,QAAQ,EAAC,MAAM,YAAY,CAAC;AAChD,OAAO,EAAC,iBAAiB,EAAiB,YAAY,EAAiB,uBAAuB,EAAC,MAAM,YAAY,CAAC;AAClH,OAAO,EACH,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EAAE,YAAY,EACnC,gBAAgB,EAChB,qBAAqB,EACrB,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EACrB,MAAM,SAAS,CAAC;AACjB,OAAO,EACH,qBAAqB,EACrB,6BAA6B,EAC7B,eAAe,EACf,wBAAwB,EACxB,iCAAiC,EACjC,gCAAgC,EAEhC,gCAAgC,EAChC,iBAAiB,EACjB,iCAAiC,EACjC,2BAA2B,EAC3B,wBAAwB,EACxB,uBAAuB,EACvB,qCAAqC,EACxC,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAiB,cAAc,EAAC,MAAM,SAAS,CAAC;AAGvD,IAAO,mBAAmB,GAAG,cAAc,CAAC,mBAAmB,CAAC;AAChE,IAAO,iBAAiB,GAAG,cAAc,CAAC,iBAAiB,CAAC;AAC5D,IAAO,oBAAoB,GAAG,cAAc,CAAC,oBAAoB,CAAC;AAElE,IAAO,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC;AAC5C,IAAO,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC;AAGhD,SAAS,eAAe,CAAC,CAAM;IAC3B,IAAI,CAAC,YAAY,KAAK,EAAE;QACpB,IAAI;YACA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;SAChC;QAAC,OAAO,SAAS,EAAE;YAChB,OAAO;gBACH,KAAK,EAAE,SAAS;gBAChB,OAAO,EAAE,CAAC,CAAC,OAAO;aACrB,CAAA;SACJ;KACJ;SAAM;QACH,OAAO;YACH,KAAK,EAAE,CAAC,CAAC,WAAW;YACpB,OAAO,EAAE,CAAC,CAAC,WAAW;SACzB,CAAA;KACJ;AACL,CAAC;AAOD,IAAK,eAKJ;AALD,WAAK,eAAe;IAChB,0EAAoB,CAAA;IACpB,4EAAqB,CAAA;IACrB,8EAAsB,CAAA;IACtB,8EAAsB,CAAA;AAC1B,CAAC,EALI,eAAe,KAAf,eAAe,QAKnB;AAuBD,MAAM,OAAO,cAAc;IA4BvB,YAAY,GAAW,EAAE,iBAA8B,EAAE,oBAAwE;QAC7H,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAA;QAEnC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;QACxB,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAA;QAC9B,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAA;QAC1B,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAA;QAChC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;QACzB,IAAI,CAAC,qBAAqB,GAAG,cAAc,CAAC,2BAA2B,EAAE,CAAA;QACzE,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAA;QAC7B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;QACxB,IAAI,oBAAoB;YAAE,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAA;QAE1E,IAAI,iBAAiB,EAAC;YAClB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;YAC1C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;SAC/C;aAAM;YACH,IAAI,CAAC,eAAe,EAAE,CAAA;SACzB;IACL,CAAC;IAEK,eAAe,CAAC,iBAA6B;;YAC/C,IAAI,IAAI,CAAC,oBAAoB,IAAI,iBAAiB,EAAE;gBAChD,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAA;gBAC5E,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,iBAAiB,EAAE,CAAC,CAAA;aAC7E;iBAAM;gBACH,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;aACnD;YAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gBACpB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;gBAC5B,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;gBACnC,IAAI,CAAC,qBAAqB,GAAG,cAAc,CAAC,2BAA2B,EAAE,CAAA;gBACzE,IAAI,CAAC,YAAY,EAAE,CAAA;YACvB,CAAC,CAAC,CAAA;YAEF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAO,KAA2C,EAAE,EAAE;gBACtE,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAA;gBAE7C,IAAI,MAAM,CAAA;gBACV,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;gBAExB,IAAG;oBACC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;iBACpC;gBAAC,OAAM,KAAK,EAAC;oBACV,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAA;oBAEzD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;wBACxB,IAAI,CAAC,SAAS,EAAE,CAAA;qBACnB;oBAED,OAAM;iBACT;gBAED,QAAQ,KAAK,CAAC,IAAI,EAAC;oBACf,KAAK,eAAe,CAAC,aAAa;wBAC9B,mDAAmD;wBACnD,gDAAgD;wBAChD,0CAA0C;wBAC1C,0CAA0C;wBAE1C,IAAG,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAC;4BACrD,yBAAyB;4BACzB,IAAI,CAAC,WAAW,CAAC,EAAC,IAAI,EAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAC,CAAC,CAAA;yBAC9C;6BAAM;4BACH,wEAAwE;4BACxE,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;yBACnE;wBACD,MAAK;oBACT,KAAK,eAAe,CAAC,cAAc;wBAC/B,+DAA+D;wBAC/D,wCAAwC;wBACxC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;wBAC9C,MAAK;oBACT,KAAK,eAAe,CAAC,eAAe;wBAChC,kEAAkE;wBAClE,0BAA0B;wBAC1B,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;wBAC9C,MAAK;oBACT,KAAK,eAAe,CAAC,eAAe;wBAChC,kEAAkE;wBAClE,oCAAoC;wBACpC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;wBAC9C,MAAK;oBACT;wBACI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;4BACxB,IAAI,CAAC,SAAS,EAAE,CAAA;yBACnB;iBACR;YACL,CAAC,CAAA,CAAC,CAAA;YACF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAgB,EAAE,EAAE;gBACrC,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAA;YACrC,CAAC,CAAC,CAAA;YACF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;gBACtB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;YACzB,CAAC,CAAC,CAAA;YAEF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QAC3B,CAAC;KAAA;IAED,aAAa,CAAC,YAAoB;QAC9B,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACzD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAClC,CAAC;IAED,MAAM,CAAC,QAAoB;QACvB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACvC,CAAC;IAED,OAAO,CAAC,QAAoB;QACxB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACzD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC;IAED,OAAO,CAAC,QAAoB;QACxB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACzD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC;IAEO,YAAY;QAChB,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;YACvC,QAAQ,EAAE,CAAA;SACb;IACL,CAAC;IAEO,aAAa,CAAC,WAAuB;QACzC,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACxC,QAAQ,CAAC,WAAW,CAAC,CAAA;SACxB;QAED,KAAK,IAAI,EAAC,OAAO,EAAC,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC/C,OAAO,CAAC,WAAW,CAAC,CAAA;SACvB;QACD,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,CAAA;IAC1C,CAAC;IAEO,WAAW,CAAC,WAAsD;QACtE,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE;YACtC,QAAQ,CAAC,WAAW,CAAC,CAAA;SACxB;QAED,KAAK,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC/C,OAAO,CAAC,WAAW,CAAC,CAAA;SACvB;QACD,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAA;IACxC,CAAC;IAED,aAAa,CAAC,QAA6B;QACvC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACxC,CAAC;IAED,cAAc,CAAC,QAA6B;QACxC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACtC,CAAC;IAEK,cAAc;;YAChB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;YAC7C,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACxC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,MAAM,EAAC,CAAC,CAAA;YACvD,CAAC,CAAC,CAAA;QACN,CAAC;KAAA;IAEO,MAAM,CAAC,2BAA2B;QACtC,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5B,CAAC;IAEO,SAAS;QACb,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAA;QAE5F,kCAAkC;QAClC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QACnC,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAChD,CAAC,EAAE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAA;QAErC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA,CAAC,qCAAqC;IACnH,CAAC;IAED,UAAU;QACN,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAA;QAEhC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAC9C,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAEnC,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,CAAA;IAC1C,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,WAAW,CAAA;IAC3B,CAAC;CACJ;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAY,EAAE,MAAiB,EAAE,aAAiB;IAChF,QAAQ,MAAM,CAAC,UAAU,EAAE;QACvB,KAAK,CAAC,EAAC,aAAa;YAChB,IAAI,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAAE,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAChG,MAAM;QACV,KAAK,CAAC,EAAC,OAAO;YACV,IAAI,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAAE,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAEhG,IAAI,aAAa,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;oBAC1E,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAA;iBACnD;aACJ;YAED,aAAa,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAA;YACrC,MAAM;QACV,KAAK,CAAC,CAAC,CAAA,UAAU;QACjB,KAAK,CAAC,EAAC,SAAS;YACZ,aAAa,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAA;YACrC,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAA;YAC9E,MAAM;KACb;AACL,CAAC;AAaD,MAAM,CAAN,IAAY,QAIX;AAJD,WAAY,QAAQ;IAChB,6BAAiB,CAAA;IACjB,oCAAwB,CAAA;IACxB,kCAAsB,CAAA;AAC1B,CAAC,EAJW,QAAQ,KAAR,QAAQ,QAInB;AAmBD,MAAM,OAAO,IAAI;IAqBb,YAAY,OAA4B;QApBxC,iBAAY,GAAW,EAAE,CAAA;QACzB,aAAQ,GAAa,QAAQ,CAAC,MAAM,CAAA;QACpC,iBAAY,GAAW,EAAE,CAAA;QAOjB,kBAAa,GAAW,EAAE,CAAC;QAE3B,cAAS,GAAW,EAAE,CAAC;QAU3B,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,WAAW,EAAE;YAC7C,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;SACxE;QAED,IAAI,CAAC,OAAO,GAAG,OAAsC,CAAA;QAErD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;YAC5B,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG;gBACxB,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,IAAI;gBACjB,UAAU,EAAE,IAAI;gBAChB,SAAS,EAAE,IAAI;gBACf,iBAAiB,EAAE,IAAI;aAC1B,CAAA;SACJ;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;YAC9B,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG;gBAC1B,YAAY,EAAE,IAAI;gBAClB,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI;gBACxB,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAE,CAAC,CAAC;gBAClD,oBAAoB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;gBACjD,qBAAqB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE;aACjD,CAAA;SACJ;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,SAAS,CAAC;QACtE,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,EAAE,CAAA;IAC/C,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;IACvC,CAAC;IAED,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,IAAI,gBAAgB;QAChB,OAAO,IAAI,CAAC,iBAAiB,CAAA;IACjC,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,oBAAoB;QAChB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAEK,SAAS;;YACX,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE;gBACpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;gBAE/G,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;oBAC/B,SAAS,EAAE,OAAO;iBACrB,CAAC,CAAA;gBAEF,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAA;gBAEpD,IAAI;oBACA,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;iBAC7C;gBAAC,OAAO,CAAC,EAAE;oBACR,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,CAAC,CAAC,CAAA;iBAC1C;aAEJ;iBAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE;gBAC5C,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;oBAC/B,UAAU,EAAE,MAAM;oBAClB,UAAU,EAAE,IAAI,CAAC,QAAQ;oBACzB,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,MAAM,EAAE,OAAO;iBAClB,CAAC,CAAA;gBAEF,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAA;gBAEpD,IAAI;oBACA,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;iBAC7C;gBAAC,OAAO,CAAC,EAAE;oBACR,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,CAAC,CAAC,CAAA;iBAC1C;aACJ;QACL,CAAC;KAAA;IAEK,MAAM;;YACR,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,CAAA;YACzC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;QAC1B,CAAC;KAAA;IAED,OAAO;QACH,yJAAyJ;QACzJ,MAAM,GAAG,GAAG,uBAAuB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,sBAAsB,CAAA;QACnG,MAAM,oBAAoB,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,CAAA;QAE7G,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,CAAA;QACnF,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;QAC/B,IAAI,CAAC,cAAc,CAAC,CAAC,WAAwB,EAAE,EAAE;YAC7C,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;gBAC/B,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;oBAC1B,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACxC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,YAAY;iBAC3C,CAAC,CAAA;aACL;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED,UAAU;QACN,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAA;YACxB,OAAO,IAAI,CAAC,MAAM,CAAA;SACrB;IACL,CAAC;IAED;;OAEG;IACG,OAAO,CACT,EACI,QAAQ,GAAG,EAAE,EACb,QAAQ,GAAG,IAAI,EACf,UAAU,GAAG,IAAI,EACjB,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,EAC3C,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC,gBAAgB,EACzD,gBAAgB,GAAG,IAAI,EACvB,iBAAiB,GAAG,KAAK,EACzB,iBAAiB,GAAG,IAAI,GACb;;;YAEf,IAAI,CAAC,SAAS,GAAG,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,CAAA;YAErE,IAAI,eAA2B,CAAC;YAEhC,IAAI,QAAQ,EAAE;gBACV,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;oBAC9B,eAAe,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;iBAC3C;;oBAEG,eAAe,GAAG,QAAQ,CAAA;aACjC;YAED,IAAI,YAAqB,CAAA;YACzB,IAAI,WAAW,GAAG,KAAK,CAAA;YAEvB,MAAM,WAAW,GAAG,CAAC,UAAkB,EAAE,aAA4C,EAAE,KAAkB,EAAE,EAAE;gBACzG,MAAM,YAAY,GAAG,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;gBACjE,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;oBAC/B,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;wBAC1B,WAAW,EAAE,UAAU;wBACvB,OAAO,EAAE,YAAY;wBACrB,KAAK,EAAE,KAAK,CAAC,OAAO;qBACvB,CAAC,CAAA;iBACL;qBAAM;oBACH,MAAM,KAAK,CAAC;iBACf;YACL,CAAC,CAAC;YAEF,OAAO,IAAI,EAAE;gBAET,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE;oBACxC,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAA;iBACvC;gBAED,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE;oBAC/C,IAAI,CAAC,OAAO,EAAE,CAAA;iBACjB;gBAED,MAAM,iBAAiB,GAAuB;oBAC1C,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;oBAC1C,oBAAoB,EAAE,MAAA,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,mCAAI,IAAI;oBACnE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;oBACzC,WAAW,EAAE,WAAW;oBACxB,SAAS,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAyB,EAAE,IAAI,CAAC,SAAS,CAAC;oBACjH,gBAAgB,EAAE,gBAAgB;iBACrC,CAAA;gBACD,IAAI,SAAS,KAAK,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,SAAS,EAAE;oBAC/C,iBAAiB,CAAC,SAAS,GAAG,SAAS,CAAA;oBACvC,SAAS,GAAG,SAAS,CAAA;oBACrB,IAAI,iBAAiB,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,EAAE;wBACpD,WAAW,GAAG,IAAI,CAAA;qBACrB;iBACJ;gBACD,IAAI,UAAU,EAAE;oBACZ,iBAAiB,CAAC,mBAAmB,GAAG,UAAU,CAAA;iBACrD;gBACD,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,IAAI,WAAW,EAAE;oBACnE,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAA;oBAC3C,YAAY,GAAG,KAAK,CAAA;iBACvB;gBAED,IAAI,aAAa,CAAC;gBAClB,IAAI,iBAAiB,EAAC;oBAClB,IAAI,CAAC,aAAa,GAAG,iBAAiB,CAAA;oBACtC,IAAG;wBACC,aAAa,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,iCAAiC,CAAC,iBAAiB,CAAC,CAAC,CAAA;qBAC/F;oBAAC,OAAM,CAAC,EAAC;wBACN,IAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAC;4BAC7B,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;gCAC1B,WAAW,EAAE,0CAA0C;gCACvD,OAAO,EAAE,CAAC,CAAC,OAAO;6BACrB,CAAC,CAAA;yBACL;qBACJ;iBACJ;qBAAM;oBACH,aAAa,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAAA;iBAC/E;gBAED,IAAI,aAAa,CAAC,SAAS,IAAI,aAAa,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC/D,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAyB,EAAE,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;iBAC7H;gBACD,IAAI,iBAAiB,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,UAAU,IAAI,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;oBACzG,OAAO;wBACH,MAAM,EAAE,aAAa;qBACxB,CAAA;iBACJ;gBACD,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;gBAC1B,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;gBAEvD,QAAQ,aAAa,CAAC,UAAU,EAAE;oBAC9B,KAAK,cAAc,CAAC,UAAU,CAAC,cAAc,CAAC;oBAC9C,KAAK,cAAc,CAAC,UAAU,CAAC,kBAAkB,CAAC;oBAClD,KAAK,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC;oBAC1C,KAAK,cAAc,CAAC,UAAU,CAAC,qBAAqB,CAAC;oBACrD,KAAK,cAAc,CAAC,UAAU,CAAC,mBAAmB,CAAC;oBACnD,KAAK,cAAc,CAAC,UAAU,CAAC,qBAAqB,CAAC;oBACrD,KAAK,cAAc,CAAC,UAAU,CAAC,aAAa;wBACxC,WAAW,CAAC,eAAe,EAAE,aAAa,EAAE,IAAI,KAAK,CAAC,kCAAkC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;wBACpH,OAAM;oBACV,KAAK,cAAc,CAAC,UAAU,CAAC,yBAAyB;wBACpD,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,EAAE;4BACrC,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAA;yBAC9D;6BAAM;4BACH,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;yBACzD;wBACD,MAAM;oBACV,KAAK,cAAc,CAAC,UAAU,CAAC,OAAO;wBAClC,WAAW,CAAC,eAAe,EAAE,aAAa,EAAE,IAAI,KAAK,CAAC,kCAAkC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;wBACpH,OAAO;oBACX,KAAK,cAAc,CAAC,UAAU,CAAC,iBAAiB;wBAC5C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;4BACjB,WAAW,CAAC,eAAe,EAAE,aAAa,EAAE,IAAI,KAAK,CAAC,uCAAuC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;4BAC1H,OAAM;yBACT;wBACD,YAAY,GAAG,IAAI,CAAA;wBACnB,MAAM;oBACV,KAAK,cAAc,CAAC,UAAU,CAAC,wBAAwB,CAAC;oBACxD,KAAK,cAAc,CAAC,UAAU,CAAC,kCAAkC;wBAC7D,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE;4BACpC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;yBAC3D;wBACD,IAAI,iBAAiB;4BAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAA;wBACvD,IAAI;4BACA,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,mBAAmB,EAAE,aAAa,CAAC,UAAU,IAAI,cAAc,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAA;yBAC9K;wBAAC,OAAO,CAAC,EAAE;4BACR,WAAW,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC,CAAC,CAAA;4BAC5C,OAAM;yBACT;wBACD,MAAM;oBACV,KAAK,cAAc,CAAC,UAAU,CAAC,eAAe;wBAC1C,WAAW,CAAC,iBAAiB,EAAE,aAAa,EAAE,IAAI,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAA;wBAC/E,OAAO;oBACX,KAAK,cAAc,CAAC,UAAU,CAAC,eAAe;wBAC1C,kDAAkD;wBAClD,kCAAkC;wBAClC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC,kBAAkB,CAAA;wBACpD,UAAU,GAAG,SAAS,CAAA;wBACtB,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;4BAC9B,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAA;yBACjE;wBACD,wDAAwD;wBACxD,IAAI,CAAC,UAAU,EAAE,CAAA;wBACjB,MAAM;oBACV,KAAK,cAAc,CAAC,UAAU,CAAC,kBAAkB;wBAC7C,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;wBACvC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE;4BACpB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;yBACnD;wBACD,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;wBAChE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAA;wBACjC,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;wBAC5E,IAAI,gBAAgB,GAAG,aAAa,CAAC,GAAG,GAAG,WAAW,GAAG,OAAO,CAAC;wBACjE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;4BACvC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAA;4BACvD,OAAM;yBACT;6BAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE;4BACtC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAA;4BACnE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAA;4BACpE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;4BACtB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAA;4BAChC,UAAU,GAAG,SAAS,CAAC,mBAAmB,CAAA;4BAC1C,MAAM;yBACT;oBACL,KAAK,cAAc,CAAC,UAAU,CAAC,mBAAmB;wBAC9C,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;wBACjC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE;4BACpB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;yBACnD;wBACD,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;wBAChE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAA;wBAElC,IAAI,eAAe,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAA;wBAC/D,IAAI,iBAAiB,GAAG,aAAa,CAAC,GAAG,GAAG,gBAAgB,GAAG,eAAe,CAAA;wBAE9E,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;4BACvC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAA;4BACxD,OAAM;yBACT;6BAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE;4BACtC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAA;4BACzE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;4BACvB,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,KAAK,CAAA;4BACjC,eAAe,GAAG,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;4BACnD,SAAS,GAAG,SAAS,CAAC,GAAG,CAAA;4BACzB,WAAW,GAAG,WAAW,CAAC,SAAS,CAAA;4BACnC,MAAM;yBACT;oBACL,KAAK,cAAc,CAAC,UAAU,CAAC,YAAY;wBACvC,IAAG;4BACC,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAA;yBACzD;wBAAC,OAAM,CAAC,EAAC;4BACN,IAAI,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,OAAO,KAAI,CAAC,CAAC,OAAO,IAAI,eAAe,EAAC;gCAC3C,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,CAAA;6BAC3C;yBACJ;wBACD,MAAK;oBAET,KAAK,cAAc,CAAC,UAAU,CAAC,kBAAkB;wBAC7C,2DAA2D;wBAC3D,2EAA2E;wBAC3E,IAAI,CAAC,eAAe,KAAI,MAAA,IAAI,CAAC,OAAO,CAAC,OAAO,0CAAE,WAAW,CAAA,EAAE;4BACvD,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA;4BACnD,IAAI,QAAQ,EAAE;gCACV,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;oCAC9B,eAAe,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;iCAC3C;;oCAEG,eAAe,GAAG,QAAQ,CAAA;6BACjC;yBACJ;wBACD,IAAI,CAAC,eAAe,EAAE;4BAClB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;yBAC7D;wBAED,IAAI;4BACA,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,CAAC,CAAA;4BAC/E,OAAO;yBACV;wBAAC,OAAO,CAAC,EAAE;4BACR,eAAe,GAAG,IAAI,CAAA;4BACtB,WAAW,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC,CAAC,CAAA;4BAC5C,MAAM;yBACT;oBACL,KAAK,cAAc,CAAC,UAAU,CAAC,SAAS;wBACpC,IAAI;4BACA,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;4BAC5C,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;4BACjD,OAAO;yBACV;wBAAC,OAAO,CAAC,EAAE;4BACR,OAAO,CAAC,GAAG,CAAC,gDAAgD,EAAE,CAAC,CAAC,CAAA;4BAChE,OAAO;yBACV;iBACR;aACJ;;KACJ;IAED;;;OAGG;IACG,eAAe;;YACjB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;gBAC9B,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;aAC5E;YAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,oBAAoB,EAAE,CAAA;YAC9E,IAAI,CAAC,aAAa,EAAE;gBAChB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;aAC1C;YAED,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC,iBAAiB,CAAA;YACxD,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAA;YACvC,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,CAAA;YACpC,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,CAAA;YACxC,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC,UAAU,CAAA;YAC1C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,aAAa,CAAA;YAChD,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,YAAY,CAAA;YAC9C,IAAI,CAAC,sBAAsB,GAAG,aAAa,CAAC,sBAAsB,CAAA;YAClE,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,YAAY,CAAA;YAC9C,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,YAAY,CAAA;YAC9C,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAA;YAEtC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE;gBAC/C,IAAI,CAAC,OAAO,EAAE,CAAA;aACjB;YAED,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,gBAAgB,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;QACjH,CAAC;KAAA;IAEO,oBAAoB;QACxB,OAAO;YACH,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,YAAY,EAAE,IAAI,CAAC,aAAa;YAChC,gBAAgB,EAAE,IAAI,CAAC,iBAAiB;YACxC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;SAC5C,CAAA;IACL,CAAC;IAEK,cAAc,CAAC,SAAiB,EAAE,MAAe;;YACnD,IAAI,aAAa,GAA+B;gBAC5C,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE;gBACtB,MAAM,EAAE,MAAM;gBACd,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;aAC7C,CAAA;YACD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,gCAAgC,CAAC,aAAa,CAAC,CAAC,CAAA;YAC9F,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO;gBACjC,CAAC,CAAC,WAAW,IAAG,MAAM,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;gBAC9E,CAAC,CAAC,gBAAgB,IAAG,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAA,CAAA;YAElE,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAA;YAC/E,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YAEnE,OAAO;gBACH,GAAG,EAAE,cAAc,CAAC,KAAK,GAAG,MAAM;gBAClC,IAAI,EAAE,cAAc,CAAC,IAAI;aAC5B,CAAA;QACL,CAAC;KAAA;IAED,YAAY,CAAC,QAAgB,EAAE,UAAsB,EAAE,UAAmB,KAAK;QAC3E,OAAO,IAAI,OAAO,CAAa,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC/C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBACvB,MAAM,CAAC,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC,CAAA;gBAC5E,OAAM;aACT;YAED,IAAI,SAAS,GAAG,KAAK,CAAA;YACrB,IAAI,aAAa,GAAG,mBAAmB,CAAC,sBAAsB,CAAA;YAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAA;YAC9C,IAAI,QAAiC,CAAA;YACrC,IAAI,CAAC,OAAO,EAAE;gBACV,QAAQ,GAAG;oBACP;wBACI,OAAO,EAAE,yBAAyB,CAAC,KAAK;wBACxC,mBAAmB,EAAE,GAAS,EAAE;4BAC5B,MAAM,IAAI,CAAC,WAAW,CAAC,gCAAgC,CAAC;gCACpD,QAAQ,EAAE,QAAQ;gCAClB,mBAAmB,EAAE,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO;gCACzD,oBAAoB,EAAE,YAAY,CAAC,WAAW;gCAC9C,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;gCAC1C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;6BAC5C,CAAC,CAAC,CAAA;4BACH,SAAS,GAAG,IAAI,CAAA;wBACpB,CAAC,CAAA;wBACD,YAAY,EAAE,CAAO,IAAI,EAAE,EAAE;4BACzB,MAAM,IAAI,CAAC,WAAW,CAAC,qCAAqC,CAAC;gCACzD,gBAAgB,EAAE,IAAI;gCACtB,QAAQ,EAAE,QAAQ;6BACrB,CAAC,CAAC,CAAA;4BACH,eAAe,CAAC,UAAU,CAAC,CAAA;wBAC/B,CAAC,CAAA;qBACJ;oBACD;wBACI,OAAO,EAAE,yBAAyB,CAAC,UAAU;wBAC7C,mBAAmB,EAAE,GAAS,EAAE;4BAC5B,MAAM,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC;gCAC/C,mBAAmB,EAAE,UAAU;gCAC/B,QAAQ,EAAE,iBAAiB,CAAC,kBAAkB;6BACjD,CAAC,CAAC,CAAA;wBACP,CAAC,CAAA;qBACJ;oBACD;wBACI,OAAO,EAAE,yBAAyB,CAAC,GAAG;wBACtC,mBAAmB,EAAE,GAAS,EAAE;4BAC5B,MAAM,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC;gCAC/C,mBAAmB,EAAE,UAAU;6BAClC,CAAC,CAAC,CAAA;wBACP,CAAC,CAAA;wBACD,YAAY,EAAE,CAAO,IAAI,EAAE,EAAE;4BACzB,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;gCAClD,mBAAmB,EAAE,UAAU;gCAC/B,KAAK,EAAE,IAAI;gCACX,QAAQ,EAAE,aAAa;6BAC1B,CAAC,CAAA;4BACF,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAA;4BAC1E,IAAI,qBAAqB,CAAC,mBAAmB,EAAE;gCAC3C,MAAM,KAAK,GAAwB;oCAC/B,KAAK,EAAE,eAAe;oCACtB,mBAAmB,EAAE,QAAQ,CAAC,aAAa,CAAC,qBAAqB,CAAC,mBAAmB,CAAC;iCACzF,CAAA;gCACD,uBAAuB,CAAC,KAAK,CAAC,CAAA;6BACjC;wBACL,CAAC,CAAA;wBACD,aAAa,EAAE,UAAU,CAAC,EAAE;4BACxB,aAAa,GAAG,UAAU,CAAA;wBAC9B,CAAC;qBACJ;iBACJ,CAAC;aACL;iBAAM;gBACH,QAAQ,GAAG;oBACP;wBACI,OAAO,EAAE,yBAAyB,CAAC,UAAU;wBAC7C,mBAAmB,EAAE,GAAS,EAAE;4BAC5B,MAAM,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC;gCAC/C,mBAAmB,EAAE,UAAU;gCAC/B,QAAQ,EAAE,iBAAiB,CAAC,kBAAkB;6BACjD,CAAC,CAAC,CAAA;wBACP,CAAC,CAAA;qBACJ;oBACD;wBACI,OAAO,EAAE,yBAAyB,CAAC,aAAa;wBAChD,mBAAmB,EAAE,GAAS,EAAE;4BAC5B,MAAM,IAAI,CAAC,WAAW,CAAC,iCAAiC,CAAC;gCACrD,QAAQ,EAAE,QAAQ;gCAClB,mBAAmB,EAAE,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO;gCACzD,oBAAoB,EAAE,YAAY,CAAC,WAAW;gCAC9C,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;gCAC1C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;6BAC5C,CAAC,CAAC,CAAA;wBACP,CAAC,CAAA;qBACJ;iBACJ,CAAA;aACJ;YAED,IAAI,IAAI,GAAG,KAAK,CAAA;YAChB,MAAM,eAAe,GAAG,CAAC,KAAiB,EAAE,EAAE;gBAC1C,IAAI,GAAG,IAAI,CAAA;gBACX,OAAO,CAAC,KAAK,CAAC,CAAA;YAClB,CAAC,CAAA;YACD,MAAM,eAAe,GAAG,CAAC,KAAY,EAAE,EAAE;gBACrC,IAAI,GAAG,IAAI,CAAA;gBACX,MAAM,CAAC,KAAK,CAAC,CAAA;YACjB,CAAC,CAAA;YAED,MAAM,uBAAuB,GAAG,CAAC,KAA0B,EAAE,EAAE;gBAC3D,IAAI,KAAK,CAAC,KAAK,KAAK,eAAe,EAAE;oBACjC,MAAM,KAAK,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;oBAC/F,eAAe,CAAC,KAAK,CAAC,CAAA;iBACzB;qBAAM,IAAI,KAAK,CAAC,OAAO,KAAK,iBAAiB,EAAE;oBAC5C,IAAI,KAAK,CAAC,QAAQ,EAAE;wBAChB,eAAe,CAAC,UAAU,CAAC,CAAA;qBAC9B;yBAAM;wBACH,eAAe,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAA;qBACzC;iBACJ;qBAAM,IAAI,KAAK,CAAC,OAAO,KAAK,iBAAiB,EAAE;oBAC5C,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;wBAC/B,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;qBACtC;oBACD,eAAe,CAAC,UAAU,CAAC,CAAA;iBAC9B;YACL,CAAC,CAAA;YAED,4DAA4D;YAC5D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,QAAQ,EAAE,OAAO,CAAC;iBACxD,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;gBACT,IAAI,EAAE,EAAE;oBACJ,eAAe,CAAC,UAAU,CAAC,CAAA;iBAC9B;qBAAM;oBACH,eAAe,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAA;iBACzC;YACL,CAAC,CAAC;iBACD,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAG5C;YAAA,CAAC,GAAS,EAAE;gBACT,OAAO,CAAC,IAAI,EAAE;oBACV,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAA;oBACtD,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAA;oBAC7E,IAAI,CAAC,IAAI,EAAE;wBACP,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;wBACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;wBAClB,uBAAuB,CAAC,KAAK,CAAC,CAAA;qBACjC;iBACJ;YACL,CAAC,CAAA,CAAC,EAAE,CAAC;QACT,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,eAAe,CAAC,aAA4C;QAChE,OAAO,IAAI,OAAO,CAAa,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC/C,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;gBACzB,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAA;gBACjD,OAAM;aACT;YAED,MAAM,UAAU,GAAG,aAAa,CAAC,mBAAmB,CAAA;YAEpD,IAAI,IAAI,GAAG,KAAK,CAAA;YAChB,IAAI,mBAAmB,GAAG,iBAAiB,EAAE,CAAC;YAC9C,MAAM,eAAe,GAAG,CAAC,KAAiB,EAAE,EAAE;gBAC1C,IAAI,GAAG,IAAI,CAAA;gBACX,mBAAmB,CAAC,OAAO,EAAE,CAAA;gBAC7B,OAAO,CAAC,KAAK,CAAC,CAAA;YAClB,CAAC,CAAA;YACD,MAAM,eAAe,GAAG,CAAC,KAAY,EAAE,EAAE;gBACrC,IAAI,GAAG,IAAI,CAAA;gBACX,mBAAmB,CAAC,OAAO,EAAE,CAAA;gBAC7B,MAAM,CAAC,KAAK,CAAC,CAAA;YACjB,CAAC,CAAA;YAED,IAAI,aAAa,GAAG,mBAAmB,CAAC,sBAAsB,CAAA;YAC9D,MAAM,UAAU,GAAG,CAAO,OAA4C,EAAE,IAAY,EAAE,EAAE;gBACpF,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,OAAO,CAAC,CAAA;gBAC/E,IAAI,SAAwD,CAAA;gBAC5D,QAAQ,WAAW,CAAC,WAAW,EAAE;oBAC7B,KAAK,cAAc,CAAC,oBAAoB,CAAC,aAAa;wBAClD,SAAS,GAAG,cAAc,CAAC,kBAAkB,CAAC,eAAe,CAAA;wBAC7D,MAAK;oBACT,KAAK,cAAc,CAAC,oBAAoB,CAAC,aAAa;wBAClD,SAAS,GAAG,cAAc,CAAC,kBAAkB,CAAC,eAAe,CAAA;wBAC7D,MAAK;oBACT,KAAK,cAAc,CAAC,oBAAoB,CAAC,aAAa;wBAClD,SAAS,GAAG,cAAc,CAAC,kBAAkB,CAAC,eAAe,CAAA;wBAC7D,MAAK;oBACT,KAAK,cAAc,CAAC,oBAAoB,CAAC,cAAc;wBACnD,SAAS,GAAG,cAAc,CAAC,kBAAkB,CAAC,gBAAgB,CAAA;wBAC9D,MAAK;oBACT,KAAK,cAAc,CAAC,oBAAoB,CAAC,aAAa;wBAClD,SAAS,GAAG,cAAc,CAAC,kBAAkB,CAAC,eAAe,CAAA;wBAC7D,MAAK;oBACT,KAAK,cAAc,CAAC,oBAAoB,CAAC,aAAa;wBAClD,SAAS,GAAG,cAAc,CAAC,kBAAkB,CAAC,eAAe,CAAA;wBAC7D,MAAK;oBACT,KAAK,cAAc,CAAC,oBAAoB,CAAC,kBAAkB;wBACvD,SAAS,GAAG,cAAc,CAAC,kBAAkB,CAAC,oBAAoB,CAAA;wBAClE,MAAK;oBACT;wBACI,SAAS,GAAG,SAAS,CAAA;wBACrB,MAAK;iBACZ;gBACD,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;oBAClD,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;oBAC5D,mBAAmB,EAAE,UAAU;oBAC/B,KAAK,EAAE,IAAI;oBACX,QAAQ,EAAE,aAAa;oBACvB,SAAS,EAAE,SAAS;iBACvB,CAAC,CAAA;gBACF,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAA;gBAC1E,IAAI,qBAAqB,CAAC,mBAAmB,EAAE;oBAC3C,eAAe,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,CAAA;iBAC7D;YACL,CAAC,CAAA,CAAA;YAED,IAAI,eAAe,GAAG,oBAAoB,CAAC,cAAc,CAAA;YACzD,MAAM,UAAU,GAAG,CAAO,OAA6B,EAAE,QAA2B,EAAE,EAAE;gBACpF,MAAM,eAAe,GAA8B;oBAC/C,mBAAmB,EAAE,aAAa,CAAC,mBAAmB;oBACtD,QAAQ,EAAE,QAAQ;oBAClB,QAAQ,EAAE,aAAa;iBAC1B,CAAA;gBACD,MAAM,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC,eAAe,CAAC,CAAC,CAAA;gBACpE,eAAe,GAAG,OAAO,CAAA;YAC7B,CAAC,CAAA,CAAA;YAED,MAAM,QAAQ,GAA2B,aAAa,CAAC,QAAQ;iBAC1D,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBACR,MAAM,cAAc,GAAyB;oBACzC,OAAO,EAAE,EAAE;oBACX,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;wBACnB,aAAa,GAAG,GAAG,CAAA;oBACvB,CAAC;oBACD,QAAQ,EAAE,CAAO,IAAI,EAAE,EAAE;wBACrB,MAAM,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;oBAC1C,CAAC,CAAA;iBACJ,CAAA;gBACD,QAAQ,EAAE,CAAC,WAAW,EAAE;oBACpB,KAAK,oBAAoB,CAAC,aAAa,CAAC;oBACxC,KAAK,oBAAoB,CAAC,kBAAkB;wBACxC,uCAAuC;wBACvC,MAAM;oBACV,KAAK,oBAAoB,CAAC,cAAc,CAAC;oBACzC,KAAK,oBAAoB,CAAC,aAAa;wBACnC,MAAK;oBACT,KAAK,oBAAoB,CAAC,aAAa;wBACnC,cAAc,CAAC,eAAe,GAAG,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAA;wBACpE,MAAK;oBACT,KAAK,oBAAoB,CAAC,aAAa;wBACnC,cAAc,CAAC,eAAe,GAAG,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAA;wBACpE,MAAK;oBACT,KAAK,oBAAoB,CAAC,gBAAgB,CAAC;oBAC3C,KAAK,oBAAoB,CAAC,aAAa;wBACnC,IAAI,EAAE,CAAC,YAAY,EAAE;4BACjB,cAAc,CAAC,eAAe,GAAG,EAAE,CAAC,YAAY;iCAC3C,GAAG,CAAC,GAAG,CAAC,EAAE;gCACP,QAAQ,GAAG,EAAE;oCACT,KAAK,MAAM;wCACP,OAAO,iBAAiB,CAAC,oBAAoB,CAAA;oCACjD,KAAK,KAAK;wCACN,OAAO,iBAAiB,CAAC,oBAAoB,CAAA;oCACjD,KAAK,OAAO;wCACR,OAAO,iBAAiB,CAAC,oBAAoB,CAAA;oCACjD;wCACI,OAAO,SAAS,CAAA;iCACvB;4BACL,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAI,CAAC,CAAA;yBAC/C;wBACD,MAAK;iBACZ;gBACD,IAAI,cAAc,CAAC,eAAe,EAAE;oBAChC,cAAc,CAAC,QAAQ,GAAG,CAAO,QAA2B,EAAE,EAAE;wBAC5D,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;oBACxC,CAAC,CAAA,CAAA;iBACJ;gBACD,OAAO,cAAc,CAAA;YACzB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAqC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAI,CAAC,CAAA;YAEhF,MAAM,uBAAuB,GAAG,CAAC,KAA0B,EAAE,EAAE;gBAC3D,IAAI,KAAK,CAAC,KAAK,KAAK,eAAe,EAAE;oBACjC,IAAI,KAAK,CAAC,mBAAmB,EAAE;wBAC3B,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;wBACtD,eAAe,CAAC,KAAK,CAAC,CAAA;qBACzB;yBAAM,IAAI,KAAK,CAAC,QAAQ,EAAE;wBACvB,CAAC,GAAS,EAAE;4BACR,MAAM,UAAU,CAAC,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;wBACrD,CAAC,CAAA,CAAC,EAAE,CAAA;qBACP;yBAAM;wBACH,eAAe,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAA;qBAC9C;iBACJ;YACL,CAAC,CAAA;YAED,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,OAAO,CAAC;iBAC3E,IAAI,CAAC,EAAE,CAAC,EAAE;gBACP,IAAI,EAAE,EAAE;oBACJ,eAAe,CAAC,UAAU,CAAC,CAAA;iBAC9B;qBAAM;oBACH,eAAe,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAA;iBACzC;YACL,CAAC,CAAC;iBACD,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAG5C;YAAA,CAAC,GAAS,EAAE;gBACT,OAAO,CAAC,IAAI,EAAE;oBACV,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAA;oBACtD,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAA;oBAC7E,IAAI,CAAC,IAAI,EAAE;wBACP,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;wBACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;wBAClB,uBAAuB,CAAC,KAAK,CAAC,CAAA;qBACjC;iBACJ;YACL,CAAC,CAAA,CAAC,EAAE,CAAC;QACT,CAAC,CAAC,CAAA;IACN,CAAC;IAEK,aAAa,CAAC,aAA4C,EAAE,QAAgB,EAAE,QAAoB,EAAE,eAAwB,KAAK;;YACnI,sDAAsD;YACtD,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;aACpD;YAED,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACxG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBAChC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;aACpD;YAED,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YAC7B,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;YAEzC,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACnF,IAAI,QAAQ,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAE5D,MAAM,QAAQ,GAAG,uBAAuB,CAAC;gBACrC,YAAY,EAAE,QAAQ;gBACtB,mBAAmB,EAAE,aAAa,CAAC,mBAAmB;aACzD,CAAC,CAAA;YACF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;YAClD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YACtB,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvD,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAyB,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;aACzH;YACD,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;QACtD,CAAC;KAAA;IAEK,YAAY,CAAC,aAA4C,EAAE,QAAoB,EAAE,OAAyC,SAAS;;YACrI,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,eAAe,IAAI,IAAI,CAAC,SAAS,CAAA;YAChE,IAAI,CAAC,aAAa,CAAC,qBAAqB,IAAI,CAAC,aAAa,CAAC,gBAAgB,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;gBACtG,OAAM;aACT;YACD,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAAE,aAAa,CAAC,gBAAgB,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;YAC1I,QAAQ,aAAa,CAAC,oBAAoB,EAAE;gBACxC,KAAK,cAAc,CAAC,oBAAoB,CAAC,oBAAoB;oBACzD,IAAI,CAAC,OAAO,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;oBACzJ,MAAM;gBACV,KAAK,cAAc,CAAC,oBAAoB,CAAC,WAAW;oBAChD,IAAI,CAAC,OAAO,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;oBACvF,MAAM;gBACV,KAAK,cAAc,CAAC,oBAAoB,CAAC,YAAY;oBACjD,IAAI,IAAI,EAAE;wBACN,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;wBAC3F,IAAI,CAAC,OAAO,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAA;qBACtF;oBACD,MAAM;gBACV,KAAK,cAAc,CAAC,oBAAoB,CAAC,MAAM,CAAC;gBAChD,KAAK,cAAc,CAAC,oBAAoB,CAAC,MAAM;oBAC3C,MAAM,IAAI,KAAK,CAAC,iBAAiB,aAAa,CAAC,oBAAoB,6BAA6B,CAAC,CAAA;aACxG;YAED,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAA;YAE/B,IAAI,mBAA+B,CAAA;YACnC,IAAI,sBAAkC,CAAA;YACtC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;gBAClB,MAAM,yBAAyB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,SAAS,cAAc,CAAC,CAAA;gBAC5F,IAAI,yBAAyB,EAAE;oBAC3B,mBAAmB,GAAG,QAAQ,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAA;iBAC1E;gBACD,MAAM,4BAA4B,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,SAAS,kBAAkB,CAAC,CAAA;gBACnG,IAAI,sBAAsB,EAAE;oBACxB,sBAAsB,GAAG,QAAQ,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAA;iBAChF;aACJ;YACD,IAAI,CAAC,mBAAmB,IAAI,CAAC,sBAAsB,EAAE;gBACjD,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,mBAAmB,CAAA;gBACtE,sBAAsB,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,sBAAsB,CAAA;gBAC5E,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;oBAClB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,cAAc,EAAE,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAA;oBACxG,IAAI,sBAAsB,EAAE;wBACxB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,kBAAkB,EAAE,QAAQ,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAAA;qBAClH;iBACJ;aACJ;YACD,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YAEjF,IAAI,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,MAAM,EAAE;gBAChC,IAAI,CAAC,aAAa,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,sBAAsB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;gBACvF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAA;aAChE;YAED,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YAE1F,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;gBAC7B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,qBAAqB,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAA;aACjF;QACL,CAAC;KAAA;IAEK,kBAAkB;;YACpB,IAAI,CAAC,cAAc,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC;gBAC/D,cAAc,EAAE,CAAC;aACpB,CAAC,CAAC,CAAC;QACR,CAAC;KAAA;IAEK,KAAK,CAAC,QAAgB,EAAE,QAAoB;;YAC9C,IAAI;gBACA,IAAI,gBAAgB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACjE,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;oBACxB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;iBACpD;gBAED,IAAI,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;oBAChC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;iBACpD;gBAED,IAAI,WAAW,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBACjF,IAAI,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,QAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;gBAEpF,IAAI,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;gBACtC,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC;gBAC/B,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACjC,YAAY,CAAC,OAAO,GAAG,CAAC,CAAC;gBACzB,YAAY,CAAC,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACjD,YAAY,CAAC,qBAAqB,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBACnF,YAAY,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,6HAA6H;gBAC9J,IAAI,IAAI,CAAC,gBAAgB,EAAE;oBACvB,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAA;iBACrD;gBACD,IAAI,aAA4B,CAAC;gBACjC,IAAI,cAAc,GAA0B,IAAI,CAAC;gBACjD,OAAO,IAAI,EAAE;oBACT,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAgB,YAAY,CAAC,CAAC;oBAClF,IAAI,aAAa,CAAC,WAAW,KAAK,cAAc;wBAC5C,MAAM;oBACV,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;oBAC1B,IAAI,qBAAqB,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE;wBAClD,IAAI,CAAC,CAAC,aAAa,CAAC,aAAa,EAAE;4BAC/B,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,aAAuB,CAAC,CAAC;yBACnF;wBACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;4BACpB,MAAM;wBACV,IAAI,YAAY,GAAG,aAAa,CAAC,WAAW,KAAK,uBAAuB,CAAC,WAAW;4BAChF,CAAC,CAAC,aAAa,CAAC,OAAO;4BACvB,CAAC,CAAC,SAAS,CAAC;wBAChB,IAAI,aAAa,CAAC,OAAO,KAAK,wBAAwB,IAAI,aAAa,CAAC,GAAG,EAAE;4BACzE,YAAY,CAAC,UAAU,CAAC,GAAG,MAAM,CAAA;4BACjC,cAAc,GAAG,IAAI,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;yBACzD;6BAAM;4BACH,IAAI,KAAa,CAAA;4BACjB,IAAI,cAAc,EAAE;gCAChB,MAAM,WAAW,GAAkB,IAAI,CAAC,KAAK,CAAC,MAAM,cAAc,CAAC,cAAc,EAAE,CAAC,CAAA;gCACpF,cAAc,CAAC,UAAU,EAAE,CAAA;gCAC3B,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;gCACxB,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAA;6BAC/B;iCAAM;gCACH,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAA;6BACnE;4BACD,IAAI,CAAC,KAAK;gCACN,MAAM;4BACV,YAAY,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;yBACrC;wBACD,YAAY,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;wBACtC,YAAY,CAAC,0BAA0B,CAAC,GAAG,IAAI,CAAC;qBACnD;iBACJ;gBACD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC;gBACjD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;gBAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,6BAA6B,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACnG,IAAI,aAAa,CAAC,IAAI,CAAC,qBAAqB,EAAE;oBAC1C,IAAI,CAAC,UAAU,GAAG,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;iBAChG;aACJ;YAAC,OAAO,CAAC,EAAE;gBACR,MAAM,eAAe,CAAC,CAAC,CAAC,CAAC;aAC5B;QACL,CAAC;KAAA;IAEK,mBAAmB,CAAC,QAAgB,EAAE,QAAoB,EAAE,SAAiB;;YAC/E,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;YAClC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC;KAAA;IAEK,cAAc,CAAgC,OAAgB;;YAChE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;gBACnB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;aACrC;YACD,IAAI,OAAO,YAAY,iBAAiB,EAAE;gBACtC,OAAO,CAAC,SAAS,GAAG,eAAe,CAAC;gBACpC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;aAC9C;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;KAAA;IAEK,WAAW,CAAY,OAA+B;;YACxD,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAClE,CAAC;KAAA;IAEK,GAAG,CAAC,IAAY;;YAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAClC,CAAC;KAAA;IAED,kBAAkB,CAAC,YAAoB,EAAE,gBAAiD,EAAE,UAAsB;QAC9G,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAA;QACzC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;SACzC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE;YAC9B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;SAChD;QACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;YACpB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;IACN,CAAC;IAEK,cAAc;;YAChB,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAA;QACxC,CAAC;KAAA;IAED,OAAO,CAAC,QAAoB;QACxB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;SACzC;QACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC;IAED,OAAO,CAAC,QAAoB;QACxB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;SACzC;QACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC;IAED,aAAa,CAAC,QAA6B;QACvC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;SACzC;QACD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IACvC,CAAC;IAED,cAAc,CAAC,QAA4B;QACvC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;SACzC;QACD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;IACxC,CAAC;IAEK,cAAc;;YAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACd,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;aACzC;YACD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAA;YACtD,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAA;YAC7E,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;YACtC,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;QAChD,CAAC;KAAA;IAEa,iBAAiB,CAAC,OAAmB;;YAC/C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,kBAAkB,EAAE,CAAA;YACnD,MAAM,sBAAsB,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;YAE9F,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,iBAAiB,EAAE,CAAA;YACjD,MAAM,sBAAsB,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;YAEvF,MAAM,kBAAkB,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,qBAAqB,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;YAE/F,OAAO;gBACH,YAAY,EAAE,OAAO,CAAC,SAAS;gBAC/B,sBAAsB,EAAE,sBAAsB;gBAC9C,YAAY,EAAE,MAAM,CAAC,SAAS;gBAC9B,sBAAsB,EAAE,sBAAsB;gBAC9C,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW;gBAC3D,kBAAkB,EAAE,kBAAkB;gBACtC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;aAC5C,CAAA;QACL,CAAC;KAAA;IAEY,UAAU,CAAC,QAAgB,EAAE,QAAoB;;YAC1D,MAAM,UAAU,GAAG,MAAM,CAAA;YACzB,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAA;YACvC,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;YACnE,MAAM,gBAAgB,GAAG,MAAM,sBAAsB,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;YACpF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;YACrD,MAAM,UAAU,GAAG,wBAAwB,iCACpC,OAAO,KACV,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,gBAAgB,KACnC,KAAK,CAAC,CAAA;YACT,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;QACtC,CAAC;KAAA;IAEa,aAAa,CAAC,UAAsB;;YAC9C,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAA;YACvC,MAAM,sBAAsB,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;YAC3G,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;YACrD,MAAM,UAAU,GAAG,wBAAwB,iCACpC,OAAO,KACV,QAAQ,EAAE,IAAI,CAAC,SAAS,EACxB,mBAAmB,EAAE,UAAU,EAC/B,sBAAsB,EAAE,sBAAsB,KAC/C,IAAI,CAAC,CAAA;YACR,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;QACtC,CAAC;KAAA;IAEY,yBAAyB;;YAClC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,6BAA6B,EAAE,CAAC,CAAA;YACpE,IAAI,IAAI,CAAC,sBAAsB,EAAE;gBAC7B,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAA;aAC5D;QACL,CAAC;KAAA;CACJ;AAED,MAAM,iBAAiB,GAAG,CAAC,UAAkB,EAAc,EAAE;IACzD,MAAM,cAAc,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAA;IACzC,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;IACrD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,cAAc,CAAC,CAAA;IAC5C,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA,CAAC,UAAU;IACvB,OAAO,KAAK,CAAA;AAChB,CAAC,CAAC;AAEF,MAAM,UAAgB,kBAAkB,CAAC,QAAoB,EAAE,UAAkB;;QAC7E,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QACzE,OAAO,UAAU,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,WAAW,CAAC,CAAA;IACnF,CAAC;CAAA;AAED,MAAM,UAAgB,sBAAsB,CAAC,QAAoB,EAAE,OAAmB,EAAE,UAAkB;;QACtG,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QACzE,MAAM,cAAc,GAAG,UAAU,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC,CAAA;QAC5D,MAAM,mBAAmB,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,cAAc,EAAE,WAAW,EAAE,KAAK,CAAC,CAAA;QAC5F,OAAO,UAAU,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,mBAAmB,CAAC,CAAA;IAC3F,CAAC;CAAA;AAED,SAAe,6BAA6B,CAAC,QAAoB,EAAE,gBAAwB;;QACvF,OAAO,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;IAChG,CAAC;CAAA;AAED,MAAM,UAAgB,uBAAuB,CAAC,QAAoB,EAAE,gBAA4B;;QAC5F,IAAI,oCAAoC,GAAG,iCAAiC,CAAC;QAC7E,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAC1D,IAAI,UAAU,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAChG,IAAI,SAAS,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,SAAS,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAC1E,IAAI,uBAAuB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,cAAc,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,uBAAuB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YACzB,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE;gBAC9C,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;aACzD;SACJ;QACD,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC;CAAA\"}","dts":{"name":"/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/auth.d.ts","writeByteOrderMark":false,"text":"import { ClientConfiguration, ClientConfigurationInternal } from './configuration';\r\nimport { KeeperEndpoint } from \"./endpoint\";\r\nimport { KeyWrapper } from \"./platform\";\r\nimport { KeeperCommand } from \"./commands\";\r\nimport { RestMessage } from './restMessages';\r\nimport { Authentication } from './proto';\r\nexport declare type SocketProxy = {\r\n onOpen: (callback: () => void) => void;\r\n close: () => void;\r\n onClose: (callback: (e: Event) => void) => void;\r\n onError: (callback: (e: Event | Error) => void) => void;\r\n onMessage: (callback: (e: Uint8Array) => void) => void;\r\n send: (message: any) => void;\r\n messageQueue: any[];\r\n};\r\nexport declare class SocketListener {\r\n private socket;\r\n private url;\r\n private getConnectionRequest?;\r\n private messageListeners;\r\n private singleMessageListeners;\r\n private closeListeners;\r\n private singleCloseListeners;\r\n private onOpenListeners;\r\n private messageSessionUid;\r\n private isConnected;\r\n private reconnectTimeout;\r\n private currentBackoffSeconds;\r\n private isClosedByClient;\r\n constructor(url: string, messageSessionUid?: Uint8Array, getConnectionRequest?: (messageSessionUid: Uint8Array) => Promise<string>);\r\n createWebsocket(messageSessionUid?: Uint8Array): Promise<void>;\r\n registerLogin(sessionToken: string): void;\r\n onOpen(callback: () => void): void;\r\n onClose(callback: () => void): void;\r\n onError(callback: () => void): void;\r\n private handleOnOpen;\r\n private handleMessage;\r\n private handleClose;\r\n onPushMessage(callback: (data: any) => void): void;\r\n onCloseMessage(callback: (data: any) => void): void;\r\n getPushMessage(): Promise<any>;\r\n private static getBaseReconnectionInterval;\r\n private reconnect;\r\n disconnect(): void;\r\n getIsConnected(): boolean;\r\n}\r\nexport declare function socketSendMessage(message: any, socket: WebSocket, createdSocket: any): void;\r\nexport declare type LoginPayload = {\r\n username: string;\r\n password?: string | KeyWrapper;\r\n loginToken?: Uint8Array;\r\n loginType?: Authentication.LoginType;\r\n loginMethod?: Authentication.LoginMethod;\r\n v2TwoFactorToken?: string;\r\n resumeSessionOnly?: boolean;\r\n givenSessionToken?: string;\r\n};\r\nexport declare enum UserType {\r\n normal = \"normal\",\r\n onsiteSso = \"onsite_sso\",\r\n cloudSso = \"cloud_sso\"\r\n}\r\nexport declare type SessionParams = {\r\n accountUid: Uint8Array;\r\n username: string;\r\n sessionToken: string;\r\n sessionTokenType: Authentication.SessionTokenType;\r\n dataKey: Uint8Array;\r\n privateKey: Uint8Array;\r\n eccPrivateKey?: Uint8Array;\r\n eccPublicKey?: Uint8Array;\r\n enterpriseEccPublicKey?: Uint8Array;\r\n clientKey: Uint8Array;\r\n userType: UserType;\r\n ssoLogoutUrl: string;\r\n ssoSessionId: string;\r\n messageSessionUid: Uint8Array;\r\n};\r\nexport declare class Auth {\r\n ssoLogoutUrl: string;\r\n userType: UserType;\r\n ssoSessionId: string;\r\n dataKey: Uint8Array;\r\n privateKey: Uint8Array;\r\n eccPrivateKey: Uint8Array;\r\n eccPublicKey: Uint8Array;\r\n enterpriseEccPublicKey: Uint8Array;\r\n private _accountUid;\r\n private _sessionToken;\r\n private _sessionTokenType;\r\n private _username;\r\n private endpoint;\r\n private managedCompanyId?;\r\n private messageSessionUid;\r\n options: ClientConfigurationInternal;\r\n private socket;\r\n clientKey: Uint8Array;\r\n private accountSummary;\r\n constructor(options: ClientConfiguration);\r\n get _endpoint(): KeeperEndpoint;\r\n get accountUid(): Uint8Array;\r\n get clientVersion(): string;\r\n get sessionToken(): string;\r\n get sessionTokenType(): Authentication.SessionTokenType | null;\r\n get username(): string;\r\n getMessageSessionUid(): Uint8Array;\r\n idpLogout(): Promise<void>;\r\n logout(): Promise<void>;\r\n connect(): void;\r\n disconnect(): void;\r\n /**\r\n * useAlternate is to pass to the next function to use an alternate method, for testing a different path.\r\n */\r\n loginV3({ username, password, loginToken, loginType, loginMethod, v2TwoFactorToken, resumeSessionOnly, givenSessionToken, }: LoginPayload): Promise<{\r\n result: string;\r\n }>;\r\n /**\r\n * The MV3 browser extension runs in a service worker that shuts down every 5 minutes.\r\n * This rehydrates the Auth class and re-opens our socket with the session parameters.\r\n */\r\n continueSession(): Promise<void>;\r\n private getSessionParameters;\r\n getSsoProvider(ssoDomain: string, locale?: string): Promise<{\r\n url: string;\r\n name: string;\r\n }>;\r\n verifyDevice(username: string, loginToken: Uint8Array, isCloud?: boolean): Promise<Uint8Array>;\r\n private handleTwoFactor;\r\n authHashLogin(loginResponse: Authentication.ILoginResponse, username: string, password: KeyWrapper, useAlternate?: boolean): Promise<void>;\r\n loginSuccess(loginResponse: Authentication.ILoginResponse, password: KeyWrapper, salt?: Authentication.ISalt | undefined): Promise<void>;\r\n loadAccountSummary(): Promise<void>;\r\n login(username: string, password: KeyWrapper): Promise<void>;\r\n managedCompanyLogin(username: string, password: KeyWrapper, companyId: number): Promise<void>;\r\n executeCommand<Command extends KeeperCommand>(command: Command): Promise<Command[\"response\"]>;\r\n executeRest<TIn, TOut>(message: RestMessage<TIn, TOut>): Promise<TOut>;\r\n get(path: string): Promise<import(\"./commands\").KeeperHttpResponse>;\r\n setLoginParameters(sessionToken: string, sessionTokenType: Authentication.SessionTokenType, accountUid: Uint8Array): void;\r\n registerDevice(): Promise<void>;\r\n onClose(callback: () => void): void;\r\n onError(callback: () => void): void;\r\n onPushMessage(callback: (data: any) => void): void;\r\n onCloseMessage(callback: (data: any) => void): void;\r\n getPushMessage(): Promise<any>;\r\n private createUserRequest;\r\n createUser(username: string, password: KeyWrapper): Promise<void>;\r\n private createSsoUser;\r\n getEnterpriseECCPublicKey(): Promise<void>;\r\n}\r\nexport declare function createAuthVerifier(password: KeyWrapper, iterations: number): Promise<Uint8Array>;\r\nexport declare function createEncryptionParams(password: KeyWrapper, dataKey: Uint8Array, iterations: number): Promise<Uint8Array>;\r\nexport declare function decryptEncryptionParams(password: KeyWrapper, encryptionParams: Uint8Array): Promise<Uint8Array>;\r\n"}}
@@ -0,0 +1 @@
1
+ {"code":"export {};\r\n//# sourceMappingURL=vendorModel.js.map","references":[],"map":"{\"version\":3,\"file\":\"vendorModel.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/vendorModel.ts\"],\"names\":[],\"mappings\":\"\"}","dts":{"name":"/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/vendorModel.d.ts","writeByteOrderMark":false,"text":"export interface EnterpriseBase {\r\n name: string;\r\n region: string;\r\n email: string;\r\n license: MSPLicense;\r\n}\r\nexport interface MSPEnterprise extends EnterpriseBase {\r\n enterprise_id: number;\r\n customers: Customer[];\r\n}\r\nexport interface MSPLicense {\r\n is_trial: boolean;\r\n seats: number;\r\n products: Product[];\r\n}\r\nexport interface Product {\r\n product_id: string;\r\n seats: number;\r\n}\r\nexport interface Customer {\r\n enterprise_id: number;\r\n name: string;\r\n product_id: string;\r\n seats: number;\r\n users: number;\r\n}\r\nexport interface LicenseAdjustment {\r\n seats?: number;\r\n products: Product[];\r\n}\r\n"}}
@@ -0,0 +1 @@
1
+ {"code":"import { __awaiter } from \"tslib\";\r\nimport { Authentication, Push, SsoCloud } from './proto';\r\nimport { platform } from './platform';\r\nimport { generateTransmissionKey, getKeeperUrl, isTwoFactorResultCode, normal64, normal64Bytes, webSafe64FromBytes } from './utils';\r\nimport { deviceMessage, preLoginMessage, registerDeviceMessage, registerDeviceInRegionMessage, ssoCloudRequestMessage, updateDeviceMessage } from './restMessages';\r\nvar ApiRequestPayload = Authentication.ApiRequestPayload;\r\nvar ApiRequest = Authentication.ApiRequest;\r\nvar WssClientResponse = Push.WssClientResponse;\r\nvar WssConnectionRequest = Push.WssConnectionRequest;\r\nvar SsoCloudResponse = SsoCloud.SsoCloudResponse;\r\nexport class KeeperEndpoint {\r\n constructor(options) {\r\n this.options = options;\r\n this.onsitePrivateKey = null;\r\n this.onsitePublicKey = null;\r\n if (options.deviceToken) {\r\n this.deviceToken = options.deviceToken;\r\n this.updateTransmissionKey(1);\r\n }\r\n else {\r\n this.updateTransmissionKey(options.deviceConfig.transmissionKeyId || 1);\r\n }\r\n }\r\n getUrl(forPath) {\r\n return getKeeperUrl(this.options.host, forPath);\r\n }\r\n getDeviceToken() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return this.executeRest(deviceMessage({\r\n clientVersion: this.clientVersion,\r\n deviceName: 'JS Keeper API'\r\n }));\r\n });\r\n }\r\n getPreLogin(username) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this.deviceToken) {\r\n console.log('Obtaining device token...');\r\n let deviceResponse = yield this.getDeviceToken();\r\n this.deviceToken = deviceResponse.encryptedDeviceToken;\r\n if (this.options.onDeviceToken) {\r\n this.options.onDeviceToken(this.deviceToken);\r\n }\r\n }\r\n while (true) {\r\n try {\r\n return yield this.executeRest(preLoginMessage({\r\n authRequest: {\r\n clientVersion: this.clientVersion,\r\n username: username,\r\n encryptedDeviceToken: this.deviceToken\r\n },\r\n loginType: Authentication.LoginType.NORMAL\r\n }));\r\n }\r\n catch (e) {\r\n if (!(e instanceof Error))\r\n throw (e);\r\n let errorObj = JSON.parse(e.message);\r\n if (errorObj.error === 'region_redirect') {\r\n this.options.host = errorObj.region_host;\r\n console.log(`Redirecting to ${this.options.host}`);\r\n }\r\n else {\r\n throw (e);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n registerDevice() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n // Case 1 new device, no edt no keys - call registration with pub key\r\n // Case 2 existing device on 14, edt but no keys - call device update\r\n // Case 3 existing device on 15+, has edt and keys - skip registration\r\n const deviceConfig = this.options.deviceConfig;\r\n if (deviceConfig.deviceToken && deviceConfig.privateKey && deviceConfig.publicKey) { // Case 1\r\n return;\r\n }\r\n const ecdh = yield platform.generateECKeyPair();\r\n deviceConfig.publicKey = ecdh.publicKey;\r\n deviceConfig.privateKey = ecdh.privateKey;\r\n if (deviceConfig.deviceToken) {\r\n const devUpdMsg = updateDeviceMessage({\r\n encryptedDeviceToken: deviceConfig.deviceToken,\r\n clientVersion: this.options.clientVersion,\r\n deviceName: deviceConfig.deviceName,\r\n devicePublicKey: deviceConfig.publicKey,\r\n });\r\n yield this.executeRest(devUpdMsg);\r\n }\r\n else {\r\n const devRegMsg = registerDeviceMessage({\r\n clientVersion: this.options.clientVersion,\r\n deviceName: deviceConfig.deviceName,\r\n devicePublicKey: deviceConfig.publicKey,\r\n });\r\n const devRegResp = yield this.executeRest(devRegMsg);\r\n console.log(devRegResp);\r\n deviceConfig.deviceToken = devRegResp.encryptedDeviceToken || null;\r\n }\r\n if (this.options.onDeviceConfig) {\r\n this.options.onDeviceConfig(deviceConfig, this.options.host);\r\n }\r\n });\r\n }\r\n executeRest(message, sessionToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n while (true) {\r\n let request = yield this.prepareRequest(message.toBytes(), sessionToken);\r\n console.log(\"Calling REST URL:\", this.getUrl(message.path));\r\n let response = yield platform.post(this.getUrl(message.path), request);\r\n if (!response.data || response.data.length === 0 && response.statusCode === 200) {\r\n return;\r\n }\r\n console.log(\"Response code:\", response.statusCode);\r\n try {\r\n let decrypted = yield platform.aesGcmDecrypt(response.data, this.transmissionKey.key);\r\n return message.fromBytes(decrypted);\r\n }\r\n catch (_a) {\r\n const errorMessage = platform.bytesToString(response.data.slice(0, 1000));\r\n try {\r\n const errorObj = JSON.parse(errorMessage);\r\n switch (errorObj.error) {\r\n case 'key':\r\n this.options.deviceConfig.transmissionKeyId = errorObj.key_id;\r\n if (this.options.onDeviceConfig) {\r\n this.options.onDeviceConfig(this.options.deviceConfig, this.options.host);\r\n }\r\n this.updateTransmissionKey(errorObj.key_id);\r\n continue;\r\n case 'region_redirect':\r\n this.options.host = errorObj.region_host;\r\n if (this.options.onRegionChanged) {\r\n this.options.onRegionChanged(this.options.host);\r\n }\r\n continue;\r\n case 'device_not_registered': {\r\n if (this.options.deviceConfig.deviceToken) {\r\n yield this.executeRest(registerDeviceInRegionMessage({\r\n clientVersion: this.options.clientVersion,\r\n deviceName: this.options.deviceConfig.deviceName,\r\n devicePublicKey: this.options.deviceConfig.publicKey,\r\n encryptedDeviceToken: this.options.deviceConfig.deviceToken\r\n }));\r\n continue;\r\n }\r\n }\r\n }\r\n if (this.options.onCommandFailure) {\r\n this.options.onCommandFailure(Object.assign(Object.assign({}, errorObj), { path: message.path }));\r\n }\r\n }\r\n catch (_b) {\r\n }\r\n throw (new Error(errorMessage));\r\n }\r\n }\r\n });\r\n }\r\n executeV2Command(command) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n command.client_version = this.clientVersion;\r\n let requestBytes = yield this.prepareRequest(command);\r\n let response = yield platform.post(this.getUrl('vault/execute_v2_command'), requestBytes);\r\n let decrypted;\r\n try {\r\n decrypted = yield platform.aesGcmDecrypt(response.data, this.transmissionKey.key);\r\n }\r\n catch (e) {\r\n let error = platform.bytesToString(response.data);\r\n throw (`Unable to decrypt response: ${error}`);\r\n }\r\n let json = JSON.parse(platform.bytesToString(decrypted));\r\n if (json.result !== 'success' && !isTwoFactorResultCode(json.result_code)) {\r\n throw (json);\r\n }\r\n return json;\r\n });\r\n }\r\n get(path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return platform.get(this.getUrl(path), {});\r\n });\r\n }\r\n updateTransmissionKey(keyNumber) {\r\n this.transmissionKey = generateTransmissionKey(keyNumber);\r\n }\r\n prepareRequest(payload, sessionToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return prepareApiRequest(payload, this.transmissionKey, sessionToken);\r\n });\r\n }\r\n decryptPushMessage(pushMessageData) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const decryptedPushMessage = yield platform.aesGcmDecrypt(pushMessageData, this.transmissionKey.key);\r\n return WssClientResponse.decode(decryptedPushMessage);\r\n });\r\n }\r\n getPushConnectionRequest(messageSessionUid) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return getPushConnectionRequest(messageSessionUid, this.options.deviceConfig.deviceToken, this.transmissionKey);\r\n });\r\n }\r\n getTransmissionKey() {\r\n return this.transmissionKey;\r\n }\r\n prepareSsoPayload(messageSessionUid, username = '', idpSessionId = '') {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const payload = ssoCloudRequestMessage({\r\n \"embedded\": true,\r\n \"clientVersion\": this.clientVersion,\r\n \"dest\": \"vault\",\r\n \"forceLogin\": false,\r\n \"messageSessionUid\": messageSessionUid,\r\n \"idpSessionId\": idpSessionId,\r\n \"username\": username\r\n }).toBytes();\r\n const request = yield prepareApiRequest(payload, this.transmissionKey);\r\n return webSafe64FromBytes(request);\r\n });\r\n }\r\n decryptCloudSsoResponse(token) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return decryptCloudSsoResponse(token, this.getTransmissionKey().key);\r\n });\r\n }\r\n getOnsitePublicKey() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this.onsitePublicKey || !this.onsitePrivateKey) {\r\n const { privateKey, publicKey } = yield platform.generateRSAKeyPair();\r\n this.onsitePrivateKey = privateKey;\r\n this.onsitePublicKey = publicKey;\r\n }\r\n return webSafe64FromBytes(this.onsitePublicKey);\r\n });\r\n }\r\n decryptOnsiteSsoPassword(password) {\r\n const encryptedPasswordBytes = normal64Bytes(password);\r\n const decryptedPassword = platform.privateDecrypt(encryptedPasswordBytes, this.onsitePrivateKey);\r\n return platform.bytesToString(decryptedPassword);\r\n }\r\n}\r\nexport function getPushConnectionRequest(messageSessionUid, encryptedDeviceToken, transmissionKey) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const connectionRequest = WssConnectionRequest.create({\r\n messageSessionUid: messageSessionUid,\r\n encryptedDeviceToken: encryptedDeviceToken,\r\n deviceTimeStamp: new Date().getTime()\r\n });\r\n const connectionRequestBytes = WssConnectionRequest.encode(connectionRequest).finish();\r\n const apiRequest = yield prepareApiRequest(connectionRequestBytes, transmissionKey);\r\n return webSafe64FromBytes(apiRequest);\r\n });\r\n}\r\nexport function prepareApiRequest(payload, transmissionKey, sessionToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const requestPayload = ApiRequestPayload.create();\r\n if (payload) {\r\n requestPayload.payload = payload instanceof Uint8Array\r\n ? payload\r\n : Buffer.from(JSON.stringify(payload));\r\n }\r\n if (sessionToken) {\r\n requestPayload.encryptedSessionToken = normal64Bytes(sessionToken);\r\n }\r\n let requestPayloadBytes = ApiRequestPayload.encode(requestPayload).finish();\r\n let encryptedRequestPayload = yield platform.aesGcmEncrypt(requestPayloadBytes, transmissionKey.key);\r\n let apiRequest = ApiRequest.create({\r\n encryptedTransmissionKey: transmissionKey.encryptedKey,\r\n encryptedPayload: encryptedRequestPayload,\r\n publicKeyId: transmissionKey.publicKeyId,\r\n locale: 'en_US'\r\n });\r\n return ApiRequest.encode(apiRequest).finish();\r\n });\r\n}\r\nexport function decryptCloudSsoResponse(cloudResponseToken, key) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const decryptedData = yield platform.aesGcmDecrypt(normal64Bytes(cloudResponseToken), key);\r\n return SsoCloudResponse.decode(decryptedData);\r\n });\r\n}\r\nexport var KeeperEnvironment;\r\n(function (KeeperEnvironment) {\r\n KeeperEnvironment[\"Prod\"] = \"keepersecurity.com\";\r\n KeeperEnvironment[\"QA\"] = \"qa.keepersecurity.com\";\r\n KeeperEnvironment[\"DEV\"] = \"dev.keepersecurity.com\";\r\n KeeperEnvironment[\"DEV2\"] = \"dev2.keepersecurity.com\";\r\n KeeperEnvironment[\"LOCAL\"] = \"local.keepersecurity.com\";\r\n KeeperEnvironment[\"Prod_EU\"] = \"keepersecurity.eu\";\r\n KeeperEnvironment[\"QA_EU\"] = \"qa.keepersecurity.eu\";\r\n KeeperEnvironment[\"DEV_EU\"] = \"dev.keepersecurity.eu\";\r\n})(KeeperEnvironment || (KeeperEnvironment = {}));\r\nlet keys = {\r\n der: {\r\n key1: 'MIIBCgKCAQEA9Z/CZzxiNUz8+npqI4V10+zW3AL7+M4UQDdd/17759Xzm0MOEfHOOsOgZxxNK1DEsbyCTCE05fd3Hz1mn1uGjXvm5HnN2mL/3TOVxyLU6VwH9EDInnj4DNMFifs69il3KlviT3llRgPCcjF4xrF8d4SR0/N3eqS1f9CBJPNEKEH+am5Xb/FqAlOUoXkILF0UYxA/jNLoWBSq+1W58e4xDI0p0GuP0lN8f97HBtfB7ijbtF+VxIXtxRy+4jA49zK+CQrGmWqIm5DzZcBvUtVGZ3UXd6LeMXMJOifvuCneGC2T2uB6G2g5yD54+onmKIETyNX0LtpR1MsZmKLgru5ugwIDAQAB',\r\n key2: 'MIIBCgKCAQEAkOpym7xC3sSysw5DAidLoVF7JUgnvXejbieDWmEiD-DQOKxzfQqYHoFfeeix__bx3wMW3I8cAc8zwZ1JO8hyB2ON732JE2Zp301GAUMnAK_rBhQWmYKP_-uXSKeTJPiuaW9PVG0oRJ4MEdS-t1vIA4eDPhI1EexHaY3P2wHKoV8twcGvdWUZB5gxEpMbx5CuvEXptnXEJlxKou3TZu9uwJIo0pgqVLUgRpW1RSRipgutpUslBnQ72Bdbsry0KKVTlcPsudAnnWUtsMJNgmyQbESPm-aVv-GzdVUFvWKpKkAxDpNArPMf0xt8VL2frw2LDe5_n9IMFogUiSYt156_mQIDAQAB',\r\n key3: 'MIIBCgKCAQEAyvxCWbLvtMRmq57oFg3mY4DWfkb1dir7b29E8UcwcKDcCsGTqoIhubU2pO46TVUXmFgC4E-Zlxt-9F-YA-MY7i_5GrDvySwAy4nbDhRL6Z0kz-rqUirgm9WWsP9v-X_BwzARqq83HNBuzAjf3UHgYDsKmCCarVAzRplZdT3Q5rnNiYPYSHzwfUhKEAyXk71UdtleD-bsMAmwnuYHLhDHiT279An_Ta93c9MTqa_Tq2Eirl_NXn1RdtbNohmMXldAH-C8uIh3Sz8erS4hZFSdUG1WlDsKpyRouNPQ3diorbO88wEAgpHjXkOLj63d1fYJBFG0yfu73U80aEZehQkSawIDAQAB',\r\n key4: 'MIIBCgKCAQEA0TVoXLpgluaqw3P011zFPSIzWhUMBqXT-Ocjy8NKjJbdrbs53eRFKk1waeB3hNn5JEKNVSNbUIe-MjacB9P34iCfKtdnrdDB8JXx0nIbIPzLtcJC4HCYASpjX_TVXrU9BgeCE3NUtnIxjHDy8PCbJyAS_Pv299Q_wpLWnkkjq70ZJ2_fX-ObbQaZHwsWKbRZ_5sD6rLfxNACTGI_jo9-vVug6AdNq96J7nUdYV1cG-INQwJJKMcAbKQcLrml8CMPc2mmf0KQ5MbS_KSbLXHUF-81AsZVHfQRSuigOStQKxgSGL5osY4NrEcODbEXtkuDrKNMsZYhijKiUHBj9vvgKwIDAQAB',\r\n key5: 'MIIBCgKCAQEAueOWC26w-HlOLW7s88WeWkXpjxK4mkjqngIzwbjnsU9145R51HvsILvjXJNdAuueVDHj3OOtQjfUM6eMMLr-3kaPv68y4FNusvB49uKc5ETI0HtHmHFSn9qAZvC7dQHSpYqC2TeCus-xKeUciQ5AmSfwpNtwzM6Oh2TO45zAqSA-QBSk_uv9TJu0e1W1AlNmizQtHX6je-mvqZCVHkzGFSQWQ8DBL9dHjviI2mmWfL_egAVVhBgTFXRHg5OmJbbPoHj217Yh-kHYA8IWEAHylboH6CVBdrNL4Na0fracQVTm-nOWdM95dKk3fH-KJYk_SmwB47ndWACLLi5epLl9vwIDAQAB',\r\n key6: 'MIIBCgKCAQEA2PJRM7-4R97rHwY_zCkFA8B3llawb6gF7oAZCpxprl6KB5z2cqLAvUfEOBtnr7RIturX04p3ThnwaFnAR7ADVZWBGOYuAyaLzGHDI5mvs8D-NewG9vw8qRkTT7Mb8fuOHC6-_lTp9AF2OA2H4QYiT1vt43KbuD0Y2CCVrOTKzDMXG8msl_JvAKt4axY9RGUtBbv0NmpkBCjLZri5AaTMgjLdu8XBXCqoLx7qZL-Bwiv4njw-ZAI4jIszJTdGzMtoQ0zL7LBj_TDUBI4Qhf2bZTZlUSL3xeDWOKmd8Frksw3oKyJ17oCQK-EGau6EaJRGyasBXl8uOEWmYYgqOWirNwIDAQAB'\r\n },\r\n pem: {\r\n key1: '-----BEGIN PUBLIC KEY-----\\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9Z/CZzxiNUz8+npqI4V1\\n0+zW3AL7+M4UQDdd/17759Xzm0MOEfHOOsOgZxxNK1DEsbyCTCE05fd3Hz1mn1uG\\njXvm5HnN2mL/3TOVxyLU6VwH9EDInnj4DNMFifs69il3KlviT3llRgPCcjF4xrF8\\nd4SR0/N3eqS1f9CBJPNEKEH+am5Xb/FqAlOUoXkILF0UYxA/jNLoWBSq+1W58e4x\\nDI0p0GuP0lN8f97HBtfB7ijbtF+VxIXtxRy+4jA49zK+CQrGmWqIm5DzZcBvUtVG\\nZ3UXd6LeMXMJOifvuCneGC2T2uB6G2g5yD54+onmKIETyNX0LtpR1MsZmKLgru5u\\ngwIDAQAB\\n-----END PUBLIC KEY-----\\n',\r\n key2: '-----BEGIN PUBLIC KEY-----\\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkOpym7xC3sSysw5DAidL\\noVF7JUgnvXejbieDWmEiD+DQOKxzfQqYHoFfeeix//bx3wMW3I8cAc8zwZ1JO8hy\\nB2ON732JE2Zp301GAUMnAK/rBhQWmYKP/+uXSKeTJPiuaW9PVG0oRJ4MEdS+t1vI\\nA4eDPhI1EexHaY3P2wHKoV8twcGvdWUZB5gxEpMbx5CuvEXptnXEJlxKou3TZu9u\\nwJIo0pgqVLUgRpW1RSRipgutpUslBnQ72Bdbsry0KKVTlcPsudAnnWUtsMJNgmyQ\\nbESPm+aVv+GzdVUFvWKpKkAxDpNArPMf0xt8VL2frw2LDe5/n9IMFogUiSYt156/\\nmQIDAQAB\\n-----END PUBLIC KEY-----\\n',\r\n key3: '-----BEGIN PUBLIC KEY-----\\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyvxCWbLvtMRmq57oFg3m\\nY4DWfkb1dir7b29E8UcwcKDcCsGTqoIhubU2pO46TVUXmFgC4E+Zlxt+9F+YA+MY\\n7i/5GrDvySwAy4nbDhRL6Z0kz+rqUirgm9WWsP9v+X/BwzARqq83HNBuzAjf3UHg\\nYDsKmCCarVAzRplZdT3Q5rnNiYPYSHzwfUhKEAyXk71UdtleD+bsMAmwnuYHLhDH\\niT279An/Ta93c9MTqa/Tq2Eirl/NXn1RdtbNohmMXldAH+C8uIh3Sz8erS4hZFSd\\nUG1WlDsKpyRouNPQ3diorbO88wEAgpHjXkOLj63d1fYJBFG0yfu73U80aEZehQkS\\nawIDAQAB\\n-----END PUBLIC KEY-----\\n',\r\n key4: '-----BEGIN PUBLIC KEY-----\\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0TVoXLpgluaqw3P011zF\\nPSIzWhUMBqXT+Ocjy8NKjJbdrbs53eRFKk1waeB3hNn5JEKNVSNbUIe+MjacB9P3\\n4iCfKtdnrdDB8JXx0nIbIPzLtcJC4HCYASpjX/TVXrU9BgeCE3NUtnIxjHDy8PCb\\nJyAS/Pv299Q/wpLWnkkjq70ZJ2/fX+ObbQaZHwsWKbRZ/5sD6rLfxNACTGI/jo9+\\nvVug6AdNq96J7nUdYV1cG+INQwJJKMcAbKQcLrml8CMPc2mmf0KQ5MbS/KSbLXHU\\nF+81AsZVHfQRSuigOStQKxgSGL5osY4NrEcODbEXtkuDrKNMsZYhijKiUHBj9vvg\\nKwIDAQAB\\n-----END PUBLIC KEY-----\\n',\r\n key5: '-----BEGIN PUBLIC KEY-----\\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAueOWC26w+HlOLW7s88We\\nWkXpjxK4mkjqngIzwbjnsU9145R51HvsILvjXJNdAuueVDHj3OOtQjfUM6eMMLr+\\n3kaPv68y4FNusvB49uKc5ETI0HtHmHFSn9qAZvC7dQHSpYqC2TeCus+xKeUciQ5A\\nmSfwpNtwzM6Oh2TO45zAqSA+QBSk/uv9TJu0e1W1AlNmizQtHX6je+mvqZCVHkzG\\nFSQWQ8DBL9dHjviI2mmWfL/egAVVhBgTFXRHg5OmJbbPoHj217Yh+kHYA8IWEAHy\\nlboH6CVBdrNL4Na0fracQVTm+nOWdM95dKk3fH+KJYk/SmwB47ndWACLLi5epLl9\\nvwIDAQAB\\n-----END PUBLIC KEY-----\\n',\r\n key6: '-----BEGIN PUBLIC KEY-----\\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2PJRM7+4R97rHwY/zCkF\\nA8B3llawb6gF7oAZCpxprl6KB5z2cqLAvUfEOBtnr7RIturX04p3ThnwaFnAR7AD\\nVZWBGOYuAyaLzGHDI5mvs8D+NewG9vw8qRkTT7Mb8fuOHC6+/lTp9AF2OA2H4QYi\\nT1vt43KbuD0Y2CCVrOTKzDMXG8msl/JvAKt4axY9RGUtBbv0NmpkBCjLZri5AaTM\\ngjLdu8XBXCqoLx7qZL+Bwiv4njw+ZAI4jIszJTdGzMtoQ0zL7LBj/TDUBI4Qhf2b\\nZTZlUSL3xeDWOKmd8Frksw3oKyJ17oCQK+EGau6EaJRGyasBXl8uOEWmYYgqOWir\\nNwIDAQAB\\n-----END PUBLIC KEY-----\\n'\r\n }\r\n};\r\nlet _keeperKeys = {\r\n der: [], pem: []\r\n};\r\nfor (let key in keys.der) {\r\n _keeperKeys.der.push(normal64(keys.der[key]));\r\n}\r\nfor (let key in keys.pem) {\r\n _keeperKeys.pem.push(keys.pem[key]);\r\n}\r\nexport const keeperKeys = _keeperKeys;\r\n//# sourceMappingURL=endpoint.js.map","references":["/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/src/commands.ts","/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/src/configuration.ts","/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/src/proto.d.ts","/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/src/platform.ts","/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/src/utils.ts","/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/src/restMessages.ts","/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/src/configuration.ts"],"map":"{\"version\":3,\"file\":\"endpoint.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/endpoint.ts\"],\"names\":[],\"mappings\":\";AAEA,OAAO,EAAC,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAA;AACtD,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAA;AACnC,OAAO,EACH,uBAAuB,EACvB,YAAY,EACZ,qBAAqB,EACrB,QAAQ,EACR,aAAa,EACb,kBAAkB,EACrB,MAAM,SAAS,CAAA;AAChB,OAAO,EACH,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,6BAA6B,EAE7B,sBAAsB,EACtB,mBAAmB,EACtB,MAAM,gBAAgB,CAAA;AAEvB,IAAO,iBAAiB,GAAG,cAAc,CAAC,iBAAiB,CAAC;AAC5D,IAAO,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC;AAG9C,IAAO,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;AAClD,IAAO,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;AACxD,IAAO,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAC;AAEpD,MAAM,OAAO,cAAc;IAQvB,YAAoB,OAAoC;QAApC,YAAO,GAAP,OAAO,CAA6B;QAHhD,qBAAgB,GAAsB,IAAI,CAAA;QAC1C,oBAAe,GAAsB,IAAI,CAAA;QAG7C,IAAI,OAAO,CAAC,WAAW,EAAE;YACrB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;YACtC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;SAChC;aAAM;YACH,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAA;SAC1E;IACL,CAAC;IAEO,MAAM,CAAC,OAAe;QAC1B,OAAO,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACnD,CAAC;IAEK,cAAc;;YAChB,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;gBAClC,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,UAAU,EAAE,eAAe;aAC9B,CAAC,CAAC,CAAA;QACP,CAAC;KAAA;IAEK,WAAW,CAAC,QAAgB;;YAE9B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACnB,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;gBACxC,IAAI,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;gBAChD,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,oBAAoB,CAAA;gBACtD,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;oBAC5B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;iBAC/C;aACJ;YAED,OAAO,IAAI,EAAE;gBACT,IAAI;oBACA,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC;wBAC1C,WAAW,EAAE;4BACT,aAAa,EAAE,IAAI,CAAC,aAAa;4BACjC,QAAQ,EAAE,QAAQ;4BAClB,oBAAoB,EAAE,IAAI,CAAC,WAAW;yBACzC;wBACD,SAAS,EAAE,cAAc,CAAC,SAAS,CAAC,MAAM;qBAC7C,CAAC,CAAC,CAAA;iBACN;gBAAC,OAAO,CAAC,EAAE;oBACR,IAAI,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC;wBACrB,MAAK,CAAC,CAAC,CAAC,CAAA;oBACZ,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;oBACpC,IAAI,QAAQ,CAAC,KAAK,KAAK,iBAAiB,EAAE;wBACtC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAA;wBACxC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;qBACrD;yBAAM;wBACH,MAAK,CAAC,CAAC,CAAC,CAAA;qBACX;iBACJ;aACJ;QACL,CAAC;KAAA;IAEK,cAAc;;YAChB,qEAAqE;YACrE,qEAAqE;YACrE,sEAAsE;YAEtE,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAA;YAE9C,IAAI,YAAY,CAAC,WAAW,IAAI,YAAY,CAAC,UAAU,IAAI,YAAY,CAAC,SAAS,EAAE,EAAG,SAAS;gBAC3F,OAAM;aACT;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,iBAAiB,EAAE,CAAA;YAC/C,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;YACvC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;YACzC,IAAI,YAAY,CAAC,WAAW,EAAE;gBAC1B,MAAM,SAAS,GAAG,mBAAmB,CAAC;oBAClC,oBAAoB,EAAE,YAAY,CAAC,WAAW;oBAC9C,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;oBACzC,UAAU,EAAE,YAAY,CAAC,UAAU;oBACnC,eAAe,EAAE,YAAY,CAAC,SAAS;iBAC1C,CAAC,CAAA;gBACF,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;aACpC;iBAAM;gBACH,MAAM,SAAS,GAAG,qBAAqB,CAAC;oBACpC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;oBACzC,UAAU,EAAE,YAAY,CAAC,UAAU;oBACnC,eAAe,EAAE,YAAY,CAAC,SAAS;iBAC1C,CAAC,CAAA;gBACF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;gBACpD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;gBACvB,YAAY,CAAC,WAAW,GAAG,UAAU,CAAC,oBAAoB,IAAI,IAAI,CAAA;aACrE;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;gBAC7B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aAChE;QACL,CAAC;KAAA;IAEK,WAAW,CAAY,OAA+B,EAAE,YAAqB;;YAC/E,OAAO,IAAI,EAAE;gBACT,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAA;gBACxE,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC5D,IAAI,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;gBACtE,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,EAAE;oBAC7E,OAAM;iBACT;gBACD,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAEnD,IAAI;oBACA,IAAI,SAAS,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;oBACrF,OAAO,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;iBACtC;gBAAC,WAAM;oBACJ,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;oBACzE,IAAI;wBACA,MAAM,QAAQ,GAAgB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;wBACtD,QAAQ,QAAQ,CAAC,KAAK,EAAE;4BACpB,KAAK,KAAK;gCACN,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAA;gCAC7D,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;oCAC7B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;iCAC7E;gCACD,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;gCAC3C,SAAQ;4BACZ,KAAK,iBAAiB;gCAClB,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAA;gCACxC,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;oCAC9B,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;iCACnD;gCACD,SAAQ;4BACZ,KAAK,uBAAuB,CAAC,CAAC;gCAC1B,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE;oCACvC,MAAM,IAAI,CAAC,WAAW,CAAC,6BAA6B,CAAC;wCACjD,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;wCACzC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU;wCAChD,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS;wCACpD,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW;qCAC9D,CAAC,CAAC,CAAA;oCACH,SAAQ;iCACX;6BACJ;yBACJ;wBACD,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;4BAC/B,IAAI,CAAC,OAAO,CAAC,gBAAgB,iCAAM,QAAQ,GAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAG,CAAA;yBAC5E;qBACJ;oBAAC,WAAM;qBACP;oBACD,MAAK,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAA;iBACjC;aACJ;QACL,CAAC;KAAA;IAEK,gBAAgB,CAAI,OAAsB;;YAC5C,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAA;YAC3C,IAAI,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;YACrD,IAAI,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,EAAE,YAAY,CAAC,CAAA;YACzF,IAAI,SAAS,CAAA;YACb,IAAI;gBACA,SAAS,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;aACpF;YAAC,OAAO,CAAC,EAAE;gBACR,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;gBACjD,MAAK,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAA;aAChD;YACD,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAA;YACxD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;gBACvE,MAAK,CAAC,IAAI,CAAC,CAAA;aACd;YACD,OAAO,IAAS,CAAA;QACpB,CAAC;KAAA;IAEK,GAAG,CAAC,IAAY;;YAClB,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;QAC9C,CAAC;KAAA;IAEO,qBAAqB,CAAC,SAAiB;QAC3C,IAAI,CAAC,eAAe,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAA;IAC7D,CAAC;IAEY,cAAc,CAAC,OAAmC,EAAE,YAAqB;;YAClF,OAAO,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,CAAA;QACzE,CAAC;KAAA;IAEK,kBAAkB,CAAC,eAA2B;;YAChD,MAAM,oBAAoB,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;YACpG,OAAO,iBAAiB,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAA;QACzD,CAAC;KAAA;IAEK,wBAAwB,CAAC,iBAA6B;;YACxD,OAAO,wBAAwB,CAAC,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;QACnH,CAAC;KAAA;IAED,kBAAkB;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAEY,iBAAiB,CAAC,iBAA6B,EAAE,WAAmB,EAAE,EAAE,YAAY,GAAG,EAAE;;YAClG,MAAM,OAAO,GAAG,sBAAsB,CAAC;gBACnC,UAAU,EAAE,IAAI;gBAChB,eAAe,EAAE,IAAI,CAAC,aAAa;gBACnC,MAAM,EAAE,OAAO;gBACf,YAAY,EAAE,KAAK;gBACnB,mBAAmB,EAAE,iBAAiB;gBACtC,cAAc,EAAE,YAAY;gBAC5B,UAAU,EAAE,QAAQ;aACvB,CAAC,CAAC,OAAO,EAAE,CAAA;YACZ,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;YACtE,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAA;QACtC,CAAC;KAAA;IAEY,uBAAuB,CAAC,KAAa;;YAC9C,OAAO,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,CAAA;QACxE,CAAC;KAAA;IAEY,kBAAkB;;YAC3B,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBACjD,MAAM,EAAC,UAAU,EAAE,SAAS,EAAC,GAAG,MAAM,QAAQ,CAAC,kBAAkB,EAAE,CAAA;gBAEnE,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAA;gBAClC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAA;aACnC;YAED,OAAO,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACnD,CAAC;KAAA;IAEM,wBAAwB,CAAC,QAAgB;QAC5C,MAAM,sBAAsB,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;QACtD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,cAAc,CAAC,sBAAsB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAChG,OAAO,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAA;IACpD,CAAC;CACJ;AAED,MAAM,UAAgB,wBAAwB,CAAC,iBAA6B,EAAE,oBAAgC,EAAE,eAAgC;;QAC5I,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,MAAM,CAAC;YAClD,iBAAiB,EAAE,iBAAiB;YACpC,oBAAoB,EAAE,oBAAoB;YAC1C,eAAe,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;SACxC,CAAC,CAAA;QACF,MAAM,sBAAsB,GAAG,oBAAoB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAA;QACtF,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAA;QACnF,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAA;IACzC,CAAC;CAAA;AAED,MAAM,UAAgB,iBAAiB,CAAC,OAAmC,EAAE,eAAgC,EAAE,YAAqB;;QAChI,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAA;QACjD,IAAI,OAAO,EAAE;YACT,cAAc,CAAC,OAAO,GAAG,OAAO,YAAY,UAAU;gBAClD,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;SAC7C;QACD,IAAI,YAAY,EAAE;YACd,cAAc,CAAC,qBAAqB,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;SACtE;QACD,IAAI,mBAAmB,GAAG,iBAAiB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,CAAA;QAC3E,IAAI,uBAAuB,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,mBAAmB,EAAE,eAAe,CAAC,GAAG,CAAC,CAAA;QACpG,IAAI,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;YAC/B,wBAAwB,EAAE,eAAe,CAAC,YAAY;YACtD,gBAAgB,EAAE,uBAAuB;YACzC,WAAW,EAAE,eAAe,CAAC,WAAW;YACxC,MAAM,EAAE,OAAO;SAClB,CAAC,CAAA;QACF,OAAO,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAA;IACjD,CAAC;CAAA;AAED,MAAM,UAAgB,uBAAuB,CAAC,kBAA0B,EAAE,GAAe;;QACrF,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3F,OAAO,gBAAgB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC;CAAA;AAED,MAAM,CAAN,IAAY,iBASX;AATD,WAAY,iBAAiB;IACzB,gDAA2B,CAAA;IAC3B,iDAA4B,CAAA;IAC5B,mDAA8B,CAAA;IAC9B,qDAAgC,CAAA;IAChC,uDAAkC,CAAA;IAClC,kDAA6B,CAAA;IAC7B,mDAA8B,CAAA;IAC9B,qDAAgC,CAAA;AACpC,CAAC,EATW,iBAAiB,KAAjB,iBAAiB,QAS5B;AAOD,IAAI,IAAI,GACJ;IACI,GAAG,EAAE;QACD,IAAI,EAAE,0WAA0W;QAChX,IAAI,EAAE,0WAA0W;QAChX,IAAI,EAAE,0WAA0W;QAChX,IAAI,EAAE,0WAA0W;QAChX,IAAI,EAAE,0WAA0W;QAChX,IAAI,EAAE,0WAA0W;KACnX;IACD,GAAG,EAAE;QACD,IAAI,EAAE,8cAA8c;QACpd,IAAI,EAAE,8cAA8c;QACpd,IAAI,EAAE,8cAA8c;QACpd,IAAI,EAAE,8cAA8c;QACpd,IAAI,EAAE,8cAA8c;QACpd,IAAI,EAAE,8cAA8c;KACvd;CACJ,CAAA;AAEL,IAAI,WAAW,GAAe;IAC1B,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;CACnB,CAAA;AAED,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE;IACtB,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;CAChD;AACD,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE;IACtB,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;CACtC;AAED,MAAM,CAAC,MAAM,UAAU,GAAe,WAAW,CAAA\"}","dts":{"name":"/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/endpoint.d.ts","writeByteOrderMark":false,"text":"import { KeeperCommand, KeeperHttpResponse } from './commands';\r\nimport { Authentication, Push, SsoCloud } from './proto';\r\nimport { RestMessage } from './restMessages';\r\nimport { ClientConfigurationInternal, TransmissionKey } from './configuration';\r\nimport IDeviceResponse = Authentication.IDeviceResponse;\r\nimport IPreLoginResponse = Authentication.IPreLoginResponse;\r\nimport WssClientResponse = Push.WssClientResponse;\r\nimport SsoCloudResponse = SsoCloud.SsoCloudResponse;\r\nexport declare class KeeperEndpoint {\r\n private options;\r\n private transmissionKey;\r\n deviceToken: Uint8Array;\r\n clientVersion: any;\r\n private onsitePrivateKey;\r\n private onsitePublicKey;\r\n constructor(options: ClientConfigurationInternal);\r\n private getUrl;\r\n getDeviceToken(): Promise<IDeviceResponse>;\r\n getPreLogin(username: string): Promise<IPreLoginResponse>;\r\n registerDevice(): Promise<void>;\r\n executeRest<TIn, TOut>(message: RestMessage<TIn, TOut>, sessionToken?: string): Promise<TOut>;\r\n executeV2Command<T>(command: KeeperCommand): Promise<T>;\r\n get(path: string): Promise<KeeperHttpResponse>;\r\n private updateTransmissionKey;\r\n prepareRequest(payload: Uint8Array | KeeperCommand, sessionToken?: string): Promise<Uint8Array>;\r\n decryptPushMessage(pushMessageData: Uint8Array): Promise<WssClientResponse>;\r\n getPushConnectionRequest(messageSessionUid: Uint8Array): Promise<string>;\r\n getTransmissionKey(): TransmissionKey;\r\n prepareSsoPayload(messageSessionUid: Uint8Array, username?: string, idpSessionId?: string): Promise<string>;\r\n decryptCloudSsoResponse(token: string): Promise<SsoCloudResponse>;\r\n getOnsitePublicKey(): Promise<string>;\r\n decryptOnsiteSsoPassword(password: string): string;\r\n}\r\nexport declare function getPushConnectionRequest(messageSessionUid: Uint8Array, encryptedDeviceToken: Uint8Array, transmissionKey: TransmissionKey): Promise<string>;\r\nexport declare function prepareApiRequest(payload: Uint8Array | KeeperCommand, transmissionKey: TransmissionKey, sessionToken?: string): Promise<Uint8Array>;\r\nexport declare function decryptCloudSsoResponse(cloudResponseToken: string, key: Uint8Array): Promise<SsoCloudResponse>;\r\nexport declare enum KeeperEnvironment {\r\n Prod = \"keepersecurity.com\",\r\n QA = \"qa.keepersecurity.com\",\r\n DEV = \"dev.keepersecurity.com\",\r\n DEV2 = \"dev2.keepersecurity.com\",\r\n LOCAL = \"local.keepersecurity.com\",\r\n Prod_EU = \"keepersecurity.eu\",\r\n QA_EU = \"qa.keepersecurity.eu\",\r\n DEV_EU = \"dev.keepersecurity.eu\"\r\n}\r\ninterface KeeperKeys {\r\n der: string[];\r\n pem: string[];\r\n}\r\nexport declare const keeperKeys: KeeperKeys;\r\nexport {};\r\n"}}
@@ -0,0 +1 @@
1
+ {"code":"export var DeviceVerificationMethods;\r\n(function (DeviceVerificationMethods) {\r\n DeviceVerificationMethods[DeviceVerificationMethods[\"Email\"] = 0] = \"Email\";\r\n DeviceVerificationMethods[DeviceVerificationMethods[\"KeeperPush\"] = 1] = \"KeeperPush\";\r\n DeviceVerificationMethods[DeviceVerificationMethods[\"TFA\"] = 2] = \"TFA\";\r\n DeviceVerificationMethods[DeviceVerificationMethods[\"AdminApproval\"] = 3] = \"AdminApproval\";\r\n})(DeviceVerificationMethods || (DeviceVerificationMethods = {}));\r\n//# sourceMappingURL=configuration.js.map","references":["/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/src/endpoint.ts","/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/src/proto.d.ts","/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/src/platform.ts","/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/src/auth.ts"],"map":"{\"version\":3,\"file\":\"configuration.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/configuration.ts\"],\"names\":[],\"mappings\":\"AAmGA,MAAM,CAAN,IAAY,yBAKX;AALD,WAAY,yBAAyB;IACjC,2EAAK,CAAA;IACL,qFAAU,CAAA;IACV,uEAAG,CAAA;IACH,2FAAa,CAAA;AACjB,CAAC,EALW,yBAAyB,KAAzB,yBAAyB,QAKpC\"}","dts":{"name":"/Users/saldoukhov/Documents/Code/Keeper/keeper-sdk-javascript/keeperapi/configuration.d.ts","writeByteOrderMark":false,"text":"import { KeeperEnvironment } from \"./endpoint\";\r\nimport { Authentication } from './proto';\r\nimport TwoFactorExpiration = Authentication.TwoFactorExpiration;\r\nimport TwoFactorPushType = Authentication.TwoFactorPushType;\r\nimport { KeyWrapper } from './platform';\r\nimport { SessionParams } from \"./auth\";\r\nexport declare type KeeperHost = KeeperEnvironment | string;\r\nexport interface ClientConfiguration {\r\n authUI?: AuthUI;\r\n authUI3?: AuthUI3;\r\n clientVersion?: string;\r\n deviceConfig?: DeviceConfig;\r\n deviceToken?: Uint8Array;\r\n host: KeeperHost;\r\n onCommandFailure?: (error: KeeperError) => void;\r\n onDeviceConfig?: (deviceConfig: DeviceConfig, host: KeeperHost) => void;\r\n onDeviceToken?: (deviceToken: Uint8Array) => void;\r\n onRegionChanged?: (newRegion: string) => void;\r\n onDeviceVerified?: (isDeviceVerified: boolean) => void;\r\n sessionStorage?: SessionStorage;\r\n kvs?: KeyValueStorage;\r\n useSessionResumption?: boolean;\r\n iterations?: number;\r\n salt?: Uint8Array;\r\n}\r\nexport interface ClientConfigurationInternal extends ClientConfiguration {\r\n deviceConfig: DeviceConfig;\r\n}\r\nexport declare type KeeperError = {\r\n additional_info?: string;\r\n error?: string;\r\n location?: string;\r\n message?: string;\r\n path?: string;\r\n result_code?: string;\r\n key_id?: number;\r\n region_host?: string;\r\n};\r\nexport interface DeviceConfig {\r\n deviceName: string | null;\r\n deviceToken: Uint8Array | null;\r\n privateKey: Uint8Array | null;\r\n publicKey: Uint8Array | null;\r\n transmissionKeyId: number | null;\r\n}\r\nexport interface SessionStorage {\r\n lastUsername: string;\r\n getCloneCode(host: KeeperEnvironment, username: string): Promise<Uint8Array | null>;\r\n saveCloneCode(host: KeeperEnvironment, username: string, cloneCode: Uint8Array): Promise<void>;\r\n getSessionParameters(): Promise<SessionParams | null>;\r\n /**\r\n * Important: implementation of this function should retain these values in memory only, never to disk.\r\n */\r\n saveSessionParameters(sessionParams: SessionParams): Promise<void>;\r\n}\r\nexport interface KeyValueStorage {\r\n getValue(key: string): string | null;\r\n saveValue(key: string, value: string): void;\r\n}\r\nexport interface VendorConfiguration {\r\n host: KeeperHost;\r\n vendorId: string;\r\n privateKey: string;\r\n}\r\nexport interface TransmissionKey {\r\n key: Uint8Array;\r\n publicKeyId: number;\r\n encryptedKey: Uint8Array;\r\n}\r\nexport interface AuthUI {\r\n getTwoFactorCode(errorMessage?: string): Promise<string>;\r\n displayDialog(): Promise<boolean>;\r\n}\r\nexport interface AuthUI3 {\r\n waitForDeviceApproval(channels: DeviceApprovalChannel[], isCloud: boolean): Promise<boolean>;\r\n waitForTwoFactorCode(channels: TwoFactorChannelData[], cancel: Promise<void>): Promise<boolean>;\r\n getPassword?(): Promise<string | KeyWrapper>;\r\n getSSOToken?(redirectUrl: string): Promise<Uint8Array>;\r\n redirectCallback?(url: string): void;\r\n ssoLogin?(url: string): Promise<any>;\r\n idpLogout?(url: string): Promise<void>;\r\n}\r\nexport declare type TwoFactorInput = {\r\n twoFactorCode: string;\r\n desiredExpiration: TwoFactorExpiration;\r\n};\r\nexport declare enum DeviceVerificationMethods {\r\n Email = 0,\r\n KeeperPush = 1,\r\n TFA = 2,\r\n AdminApproval = 3\r\n}\r\nexport declare type DeviceApprovalChannel = {\r\n channel: DeviceVerificationMethods;\r\n sendApprovalRequest: () => Promise<void>;\r\n validateCode?: (code: string) => Promise<void>;\r\n setExpiration?: (expiration: TwoFactorExpiration) => void;\r\n};\r\nexport declare type TwoFactorChannelData = {\r\n availablePushes?: TwoFactorPushType[];\r\n channel: Authentication.ITwoFactorChannelInfo;\r\n sendPush?: (type: TwoFactorPushType) => void;\r\n sendCode: (code: string) => void;\r\n setExpiration: (expiration: TwoFactorExpiration) => void;\r\n};\r\nexport declare type LoginError = {\r\n error: string;\r\n message: string;\r\n};\r\n"}}