@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,350 @@
1
+ import {KeeperCommand, KeeperHttpResponse} from './commands'
2
+ import {KeeperError} from './configuration'
3
+ import {Authentication, Push, SsoCloud} from './proto'
4
+ import {platform} from './platform'
5
+ import {
6
+ generateTransmissionKey,
7
+ getKeeperUrl,
8
+ isTwoFactorResultCode,
9
+ normal64,
10
+ normal64Bytes,
11
+ webSafe64FromBytes
12
+ } from './utils'
13
+ import {
14
+ deviceMessage,
15
+ preLoginMessage,
16
+ registerDeviceMessage,
17
+ registerDeviceInRegionMessage,
18
+ RestMessage,
19
+ ssoCloudRequestMessage,
20
+ updateDeviceMessage
21
+ } from './restMessages'
22
+ import {ClientConfigurationInternal, TransmissionKey} from './configuration';
23
+ import ApiRequestPayload = Authentication.ApiRequestPayload;
24
+ import ApiRequest = Authentication.ApiRequest;
25
+ import IDeviceResponse = Authentication.IDeviceResponse;
26
+ import IPreLoginResponse = Authentication.IPreLoginResponse;
27
+ import WssClientResponse = Push.WssClientResponse;
28
+ import WssConnectionRequest = Push.WssConnectionRequest;
29
+ import SsoCloudResponse = SsoCloud.SsoCloudResponse;
30
+
31
+ export class KeeperEndpoint {
32
+ private transmissionKey: TransmissionKey
33
+ public deviceToken: Uint8Array
34
+ public clientVersion
35
+
36
+ private onsitePrivateKey: Uint8Array | null = null
37
+ private onsitePublicKey: Uint8Array | null = null
38
+
39
+ constructor(private options: ClientConfigurationInternal) {
40
+ if (options.deviceToken) {
41
+ this.deviceToken = options.deviceToken
42
+ this.transmissionKey = generateTransmissionKey(1)
43
+ } else {
44
+ this.transmissionKey = generateTransmissionKey(options.deviceConfig.transmissionKeyId || 1)
45
+ }
46
+ }
47
+
48
+ private getUrl(forPath: string): string {
49
+ return getKeeperUrl(this.options.host, forPath)
50
+ }
51
+
52
+ async getDeviceToken(): Promise<IDeviceResponse> {
53
+ return this.executeRest(deviceMessage({
54
+ clientVersion: this.clientVersion,
55
+ deviceName: 'JS Keeper API'
56
+ }))
57
+ }
58
+
59
+ async getPreLogin(username: string): Promise<IPreLoginResponse> {
60
+
61
+ if (!this.deviceToken) {
62
+ console.log('Obtaining device token...')
63
+ let deviceResponse = await this.getDeviceToken()
64
+ this.deviceToken = deviceResponse.encryptedDeviceToken
65
+ if (this.options.onDeviceToken) {
66
+ this.options.onDeviceToken(this.deviceToken)
67
+ }
68
+ }
69
+
70
+ while (true) {
71
+ try {
72
+ return await this.executeRest(preLoginMessage({
73
+ authRequest: {
74
+ clientVersion: this.clientVersion,
75
+ username: username,
76
+ encryptedDeviceToken: this.deviceToken
77
+ },
78
+ loginType: Authentication.LoginType.NORMAL
79
+ }))
80
+ } catch (e) {
81
+ if (!(e instanceof Error))
82
+ throw(e)
83
+ let errorObj = JSON.parse(e.message)
84
+ if (errorObj.error === 'region_redirect') {
85
+ this.options.host = errorObj.region_host
86
+ console.log(`Redirecting to ${this.options.host}`)
87
+ } else {
88
+ throw(e)
89
+ }
90
+ }
91
+ }
92
+ }
93
+
94
+ async registerDevice() {
95
+ // Case 1 new device, no edt no keys - call registration with pub key
96
+ // Case 2 existing device on 14, edt but no keys - call device update
97
+ // Case 3 existing device on 15+, has edt and keys - skip registration
98
+
99
+ const deviceConfig = this.options.deviceConfig
100
+
101
+ if (deviceConfig.deviceToken && deviceConfig.privateKey && deviceConfig.publicKey) { // Case 1
102
+ return
103
+ }
104
+
105
+ const ecdh = await platform.generateECKeyPair()
106
+ deviceConfig.publicKey = ecdh.publicKey
107
+ deviceConfig.privateKey = ecdh.privateKey
108
+ if (deviceConfig.deviceToken) {
109
+ const devUpdMsg = updateDeviceMessage({
110
+ encryptedDeviceToken: deviceConfig.deviceToken,
111
+ clientVersion: this.options.clientVersion,
112
+ deviceName: deviceConfig.deviceName,
113
+ devicePublicKey: deviceConfig.publicKey,
114
+ })
115
+ await this.executeRest(devUpdMsg)
116
+ } else {
117
+ const devRegMsg = registerDeviceMessage({
118
+ clientVersion: this.options.clientVersion,
119
+ deviceName: deviceConfig.deviceName,
120
+ devicePublicKey: deviceConfig.publicKey,
121
+ })
122
+ const devRegResp = await this.executeRest(devRegMsg)
123
+ console.log(devRegResp)
124
+ deviceConfig.deviceToken = devRegResp.encryptedDeviceToken || null
125
+ }
126
+ if (this.options.onDeviceConfig) {
127
+ this.options.onDeviceConfig(deviceConfig, this.options.host);
128
+ }
129
+ }
130
+
131
+ async executeRest<TIn, TOut>(message: RestMessage<TIn, TOut>, sessionToken?: string): Promise<TOut> {
132
+ while (true) {
133
+ let request = await this.prepareRequest(message.toBytes(), sessionToken)
134
+ console.log("Calling REST URL:", this.getUrl(message.path));
135
+ let response = await platform.post(this.getUrl(message.path), request)
136
+ if (!response.data || response.data.length === 0 && response.statusCode === 200) {
137
+ return
138
+ }
139
+ console.log("Response code:", response.statusCode);
140
+
141
+ try {
142
+ let decrypted = await platform.aesGcmDecrypt(response.data, this.transmissionKey.key)
143
+ return message.fromBytes(decrypted)
144
+ } catch {
145
+ const errorMessage = platform.bytesToString(response.data.slice(0, 1000))
146
+ try {
147
+ const errorObj: KeeperError = JSON.parse(errorMessage)
148
+ switch (errorObj.error) {
149
+ case 'key':
150
+ this.updateTransmissionKey(errorObj.key_id)
151
+ continue
152
+ case 'region_redirect':
153
+ this.options.host = errorObj.region_host
154
+ if (this.options.onRegionChanged) {
155
+ this.options.onRegionChanged(this.options.host);
156
+ }
157
+ continue
158
+ case 'device_not_registered': {
159
+ if (this.options.deviceConfig.deviceToken) {
160
+ await this.executeRest(registerDeviceInRegionMessage({
161
+ clientVersion: this.options.clientVersion,
162
+ deviceName: this.options.deviceConfig.deviceName,
163
+ devicePublicKey: this.options.deviceConfig.publicKey,
164
+ encryptedDeviceToken: this.options.deviceConfig.deviceToken
165
+ }))
166
+ continue
167
+ }
168
+ }
169
+ }
170
+ if (this.options.onCommandFailure) {
171
+ this.options.onCommandFailure({ ...errorObj, ...{ path: message.path } })
172
+ }
173
+ } catch {
174
+ }
175
+ throw(new Error(errorMessage))
176
+ }
177
+ }
178
+ }
179
+
180
+ async executeV2Command<T>(command: KeeperCommand): Promise<T> {
181
+ command.client_version = this.clientVersion
182
+ let requestBytes = await this.prepareRequest(command)
183
+ let response = await platform.post(this.getUrl('vault/execute_v2_command'), requestBytes)
184
+ let decrypted
185
+ try {
186
+ decrypted = await platform.aesGcmDecrypt(response.data, this.transmissionKey.key)
187
+ } catch (e) {
188
+ let error = platform.bytesToString(response.data)
189
+ throw(`Unable to decrypt response: ${error}`)
190
+ }
191
+ let json = JSON.parse(platform.bytesToString(decrypted))
192
+ if (json.result !== 'success' && !isTwoFactorResultCode(json.result_code)) {
193
+ throw(json)
194
+ }
195
+ return json as T
196
+ }
197
+
198
+ async get(path: string): Promise<KeeperHttpResponse> {
199
+ return platform.get(this.getUrl(path), {})
200
+ }
201
+
202
+ public updateTransmissionKey(keyNumber: number) {
203
+ this.transmissionKey = generateTransmissionKey(keyNumber)
204
+
205
+ this.options.deviceConfig.transmissionKeyId = keyNumber
206
+ if (this.options.onDeviceConfig) {
207
+ this.options.onDeviceConfig(this.options.deviceConfig, this.options.host);
208
+ }
209
+ }
210
+
211
+ public async prepareRequest(payload: Uint8Array | KeeperCommand, sessionToken?: string): Promise<Uint8Array> {
212
+ return prepareApiRequest(payload, this.transmissionKey, sessionToken)
213
+ }
214
+
215
+ async decryptPushMessage(pushMessageData: Uint8Array): Promise<WssClientResponse> {
216
+ const decryptedPushMessage = await platform.aesGcmDecrypt(pushMessageData, this.transmissionKey.key)
217
+ return WssClientResponse.decode(decryptedPushMessage)
218
+ }
219
+
220
+ async getPushConnectionRequest(messageSessionUid: Uint8Array) {
221
+ return getPushConnectionRequest(messageSessionUid, this.options.deviceConfig.deviceToken, this.transmissionKey)
222
+ }
223
+
224
+ getTransmissionKey(): TransmissionKey {
225
+ return this.transmissionKey;
226
+ }
227
+
228
+ public async prepareSsoPayload(messageSessionUid: Uint8Array, username: string = '', idpSessionId = ''): Promise<string> {
229
+ const payload = ssoCloudRequestMessage({
230
+ "embedded": true,
231
+ "clientVersion": this.clientVersion,
232
+ "dest": "vault",
233
+ "forceLogin": false,
234
+ "messageSessionUid": messageSessionUid,
235
+ "idpSessionId": idpSessionId,
236
+ "username": username
237
+ }).toBytes()
238
+ const request = await prepareApiRequest(payload, this.transmissionKey)
239
+ return webSafe64FromBytes(request)
240
+ }
241
+
242
+ public async decryptCloudSsoResponse(token: string): Promise<SsoCloudResponse> {
243
+ return decryptCloudSsoResponse(token, this.getTransmissionKey().key)
244
+ }
245
+
246
+ public async getOnsitePublicKey(): Promise<string> {
247
+ if (!this.onsitePublicKey || !this.onsitePrivateKey) {
248
+ const {privateKey, publicKey} = await platform.generateRSAKeyPair()
249
+
250
+ this.onsitePrivateKey = privateKey
251
+ this.onsitePublicKey = publicKey
252
+ }
253
+
254
+ return webSafe64FromBytes(this.onsitePublicKey)
255
+ }
256
+
257
+ public decryptOnsiteSsoPassword(password: string): string {
258
+ const encryptedPasswordBytes = normal64Bytes(password)
259
+ const decryptedPassword = platform.privateDecrypt(encryptedPasswordBytes, this.onsitePrivateKey)
260
+ return platform.bytesToString(decryptedPassword)
261
+ }
262
+ }
263
+
264
+ export async function getPushConnectionRequest(messageSessionUid: Uint8Array, encryptedDeviceToken: Uint8Array, transmissionKey: TransmissionKey) {
265
+ const connectionRequest = WssConnectionRequest.create({
266
+ messageSessionUid: messageSessionUid,
267
+ encryptedDeviceToken: encryptedDeviceToken,
268
+ deviceTimeStamp: new Date().getTime()
269
+ })
270
+ const connectionRequestBytes = WssConnectionRequest.encode(connectionRequest).finish()
271
+ const apiRequest = await prepareApiRequest(connectionRequestBytes, transmissionKey)
272
+ return webSafe64FromBytes(apiRequest)
273
+ }
274
+
275
+ export async function prepareApiRequest(payload: Uint8Array | KeeperCommand, transmissionKey: TransmissionKey, sessionToken?: string): Promise<Uint8Array> {
276
+ const requestPayload = ApiRequestPayload.create()
277
+ if (payload) {
278
+ requestPayload.payload = payload instanceof Uint8Array
279
+ ? payload
280
+ : Buffer.from(JSON.stringify(payload))
281
+ }
282
+ if (sessionToken) {
283
+ requestPayload.encryptedSessionToken = normal64Bytes(sessionToken);
284
+ }
285
+ let requestPayloadBytes = ApiRequestPayload.encode(requestPayload).finish()
286
+ let encryptedRequestPayload = await platform.aesGcmEncrypt(requestPayloadBytes, transmissionKey.key)
287
+ let apiRequest = ApiRequest.create({
288
+ encryptedTransmissionKey: transmissionKey.encryptedKey,
289
+ encryptedPayload: encryptedRequestPayload,
290
+ publicKeyId: transmissionKey.publicKeyId,
291
+ locale: 'en_US'
292
+ })
293
+ return ApiRequest.encode(apiRequest).finish()
294
+ }
295
+
296
+ export async function decryptCloudSsoResponse(cloudResponseToken: string, key: Uint8Array): Promise<SsoCloudResponse> {
297
+ const decryptedData = await platform.aesGcmDecrypt(normal64Bytes(cloudResponseToken), key);
298
+ return SsoCloudResponse.decode(decryptedData);
299
+ }
300
+
301
+ export enum KeeperEnvironment {
302
+ Prod = 'keepersecurity.com',
303
+ QA = 'qa.keepersecurity.com',
304
+ DEV = 'dev.keepersecurity.com',
305
+ DEV2 = 'dev2.keepersecurity.com',
306
+ LOCAL = 'local.keepersecurity.com',
307
+ Prod_EU = 'keepersecurity.eu',
308
+ QA_EU = 'qa.keepersecurity.eu',
309
+ DEV_EU = 'dev.keepersecurity.eu',
310
+ }
311
+
312
+ interface KeeperKeys {
313
+ der: string[],
314
+ pem: string[]
315
+ }
316
+
317
+ let keys =
318
+ {
319
+ der: {
320
+ key1: 'MIIBCgKCAQEA9Z/CZzxiNUz8+npqI4V10+zW3AL7+M4UQDdd/17759Xzm0MOEfHOOsOgZxxNK1DEsbyCTCE05fd3Hz1mn1uGjXvm5HnN2mL/3TOVxyLU6VwH9EDInnj4DNMFifs69il3KlviT3llRgPCcjF4xrF8d4SR0/N3eqS1f9CBJPNEKEH+am5Xb/FqAlOUoXkILF0UYxA/jNLoWBSq+1W58e4xDI0p0GuP0lN8f97HBtfB7ijbtF+VxIXtxRy+4jA49zK+CQrGmWqIm5DzZcBvUtVGZ3UXd6LeMXMJOifvuCneGC2T2uB6G2g5yD54+onmKIETyNX0LtpR1MsZmKLgru5ugwIDAQAB',
321
+ key2: 'MIIBCgKCAQEAkOpym7xC3sSysw5DAidLoVF7JUgnvXejbieDWmEiD-DQOKxzfQqYHoFfeeix__bx3wMW3I8cAc8zwZ1JO8hyB2ON732JE2Zp301GAUMnAK_rBhQWmYKP_-uXSKeTJPiuaW9PVG0oRJ4MEdS-t1vIA4eDPhI1EexHaY3P2wHKoV8twcGvdWUZB5gxEpMbx5CuvEXptnXEJlxKou3TZu9uwJIo0pgqVLUgRpW1RSRipgutpUslBnQ72Bdbsry0KKVTlcPsudAnnWUtsMJNgmyQbESPm-aVv-GzdVUFvWKpKkAxDpNArPMf0xt8VL2frw2LDe5_n9IMFogUiSYt156_mQIDAQAB',
322
+ key3: 'MIIBCgKCAQEAyvxCWbLvtMRmq57oFg3mY4DWfkb1dir7b29E8UcwcKDcCsGTqoIhubU2pO46TVUXmFgC4E-Zlxt-9F-YA-MY7i_5GrDvySwAy4nbDhRL6Z0kz-rqUirgm9WWsP9v-X_BwzARqq83HNBuzAjf3UHgYDsKmCCarVAzRplZdT3Q5rnNiYPYSHzwfUhKEAyXk71UdtleD-bsMAmwnuYHLhDHiT279An_Ta93c9MTqa_Tq2Eirl_NXn1RdtbNohmMXldAH-C8uIh3Sz8erS4hZFSdUG1WlDsKpyRouNPQ3diorbO88wEAgpHjXkOLj63d1fYJBFG0yfu73U80aEZehQkSawIDAQAB',
323
+ key4: 'MIIBCgKCAQEA0TVoXLpgluaqw3P011zFPSIzWhUMBqXT-Ocjy8NKjJbdrbs53eRFKk1waeB3hNn5JEKNVSNbUIe-MjacB9P34iCfKtdnrdDB8JXx0nIbIPzLtcJC4HCYASpjX_TVXrU9BgeCE3NUtnIxjHDy8PCbJyAS_Pv299Q_wpLWnkkjq70ZJ2_fX-ObbQaZHwsWKbRZ_5sD6rLfxNACTGI_jo9-vVug6AdNq96J7nUdYV1cG-INQwJJKMcAbKQcLrml8CMPc2mmf0KQ5MbS_KSbLXHUF-81AsZVHfQRSuigOStQKxgSGL5osY4NrEcODbEXtkuDrKNMsZYhijKiUHBj9vvgKwIDAQAB',
324
+ key5: 'MIIBCgKCAQEAueOWC26w-HlOLW7s88WeWkXpjxK4mkjqngIzwbjnsU9145R51HvsILvjXJNdAuueVDHj3OOtQjfUM6eMMLr-3kaPv68y4FNusvB49uKc5ETI0HtHmHFSn9qAZvC7dQHSpYqC2TeCus-xKeUciQ5AmSfwpNtwzM6Oh2TO45zAqSA-QBSk_uv9TJu0e1W1AlNmizQtHX6je-mvqZCVHkzGFSQWQ8DBL9dHjviI2mmWfL_egAVVhBgTFXRHg5OmJbbPoHj217Yh-kHYA8IWEAHylboH6CVBdrNL4Na0fracQVTm-nOWdM95dKk3fH-KJYk_SmwB47ndWACLLi5epLl9vwIDAQAB',
325
+ key6: 'MIIBCgKCAQEA2PJRM7-4R97rHwY_zCkFA8B3llawb6gF7oAZCpxprl6KB5z2cqLAvUfEOBtnr7RIturX04p3ThnwaFnAR7ADVZWBGOYuAyaLzGHDI5mvs8D-NewG9vw8qRkTT7Mb8fuOHC6-_lTp9AF2OA2H4QYiT1vt43KbuD0Y2CCVrOTKzDMXG8msl_JvAKt4axY9RGUtBbv0NmpkBCjLZri5AaTMgjLdu8XBXCqoLx7qZL-Bwiv4njw-ZAI4jIszJTdGzMtoQ0zL7LBj_TDUBI4Qhf2bZTZlUSL3xeDWOKmd8Frksw3oKyJ17oCQK-EGau6EaJRGyasBXl8uOEWmYYgqOWirNwIDAQAB'
326
+ },
327
+ pem: {
328
+ 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',
329
+ key2: '-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkOpym7xC3sSysw5DAidL\noVF7JUgnvXejbieDWmEiD+DQOKxzfQqYHoFfeeix//bx3wMW3I8cAc8zwZ1JO8hy\nB2ON732JE2Zp301GAUMnAK/rBhQWmYKP/+uXSKeTJPiuaW9PVG0oRJ4MEdS+t1vI\nA4eDPhI1EexHaY3P2wHKoV8twcGvdWUZB5gxEpMbx5CuvEXptnXEJlxKou3TZu9u\nwJIo0pgqVLUgRpW1RSRipgutpUslBnQ72Bdbsry0KKVTlcPsudAnnWUtsMJNgmyQ\nbESPm+aVv+GzdVUFvWKpKkAxDpNArPMf0xt8VL2frw2LDe5/n9IMFogUiSYt156/\nmQIDAQAB\n-----END PUBLIC KEY-----\n',
330
+ 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',
331
+ 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',
332
+ 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',
333
+ 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'
334
+ }
335
+ }
336
+
337
+ let _keeperKeys: KeeperKeys = {
338
+ der: [], pem: []
339
+ }
340
+
341
+ for (let key in keys.der) {
342
+ _keeperKeys.der.push(normal64(keys.der[key]))
343
+ }
344
+ for (let key in keys.pem) {
345
+ _keeperKeys.pem.push(keys.pem[key])
346
+ }
347
+
348
+ export const keeperKeys: KeeperKeys = _keeperKeys
349
+
350
+
@@ -0,0 +1,17 @@
1
+ export * from "../endpoint";
2
+ export * from "../auth";
3
+ export * from "../vendorContext";
4
+ export * from "../vendorModel";
5
+ export * from "../vault";
6
+ export * from "../company";
7
+ export * from "../configuration";
8
+ export * from "../commands";
9
+ export * from "../restMessages";
10
+ export * from "../utils";
11
+ export * from "../platform";
12
+ export * from "../proto";
13
+ import {connectPlatform} from "../platform";
14
+ import {nodePlatform} from "./platform";
15
+
16
+ connectPlatform(nodePlatform);
17
+
@@ -0,0 +1,283 @@
1
+ import * as crypto from "crypto";
2
+ import {createECDH} from "crypto";
3
+ import * as https from "https";
4
+ import * as FormData from "form-data"
5
+ import * as NodeRSA from 'node-rsa';
6
+ import * as WebSocket from 'faye-websocket'
7
+
8
+ import {KeyWrapper, Platform} from "../platform";
9
+ import {RSA_PKCS1_PADDING} from "constants";
10
+ import {KeeperHttpResponse} from "../commands";
11
+ import {keeperKeys} from "../endpoint";
12
+ import {SocketProxy, socketSendMessage} from '../auth'
13
+
14
+ export const nodePlatform: Platform = class {
15
+ static keys = keeperKeys.pem;
16
+
17
+ static getRandomBytes(length: number): Uint8Array {
18
+ return crypto.randomBytes(length);
19
+ }
20
+
21
+ static bytesToBase64(data: Uint8Array): string {
22
+ return Buffer.from(data).toString("base64");
23
+ }
24
+
25
+ static base64ToBytes(data: string): Uint8Array {
26
+ return Buffer.from(data, "base64");
27
+ }
28
+
29
+ static bytesToString(data: Uint8Array): string {
30
+ return Buffer.from(data).toString();
31
+ }
32
+
33
+ static stringToBytes(data: string): Uint8Array {
34
+ return Buffer.from(data);
35
+ }
36
+
37
+ static wrapPassword(password: Uint8Array): KeyWrapper {
38
+ return KeyWrapper.create(password)
39
+ }
40
+
41
+ static unWrapPassword(password: KeyWrapper): Uint8Array {
42
+ return password.getKey()
43
+ }
44
+
45
+ static async generateRSAKeyPair(): Promise<{ privateKey: Uint8Array; publicKey: Uint8Array}> {
46
+ const rsaKeys = new NodeRSA({b: 2048});
47
+ const rsaPublicKey: Buffer = rsaKeys.exportKey('public-der');
48
+ const rsaPrivateKey: Buffer = rsaKeys.exportKey('private-der');
49
+ return Promise.resolve({
50
+ privateKey: rsaPrivateKey,
51
+ publicKey: rsaPublicKey
52
+ })
53
+ }
54
+
55
+ static async generateECKeyPair(): Promise<{ privateKey: Uint8Array; publicKey: Uint8Array }> {
56
+ const ecdh = createECDH('prime256v1')
57
+ ecdh.generateKeys()
58
+ return Promise.resolve({
59
+ privateKey: ecdh.getPrivateKey(),
60
+ publicKey: ecdh.getPublicKey()
61
+ })
62
+ }
63
+
64
+ static publicEncrypt(data: Uint8Array, key: string): Uint8Array {
65
+ let publicKey = key[0] === '-' // PEM or DER?
66
+ ? key
67
+ : crypto.createPublicKey({
68
+ key: Buffer.from(key, 'base64'),
69
+ type: 'pkcs1',
70
+ format: 'der'
71
+ })
72
+ return crypto.publicEncrypt({
73
+ key: publicKey,
74
+ padding: RSA_PKCS1_PADDING
75
+ }, data)
76
+ }
77
+
78
+ static async publicEncryptEC(data: Uint8Array, key: Uint8Array, id?: Uint8Array): Promise<Uint8Array> {
79
+ const ecdh = createECDH('prime256v1')
80
+ ecdh.generateKeys()
81
+ const ephemeralPublicKey = ecdh.getPublicKey()
82
+ const sharedSecret = ecdh.computeSecret(key)
83
+ const sharedSecretCombined = Buffer.concat([sharedSecret, id || new Uint8Array()])
84
+ const symmetricKey = crypto.createHash("SHA256").update(sharedSecretCombined).digest()
85
+ const encryptedData = await this.aesGcmEncrypt(data, symmetricKey)
86
+ return Buffer.concat([ephemeralPublicKey, encryptedData])
87
+ }
88
+
89
+ static privateDecrypt(data: Uint8Array, key: Uint8Array): Uint8Array {
90
+ return crypto.privateDecrypt({
91
+ key: crypto.createPrivateKey({
92
+ key: Buffer.from(key),
93
+ type: 'pkcs1',
94
+ format: 'der',
95
+ }),
96
+ padding: RSA_PKCS1_PADDING
97
+ }, data);
98
+ }
99
+
100
+ static async privateDecryptEC(data: Uint8Array, privateKey: Uint8Array, publicKey?: Uint8Array, id?: Uint8Array): Promise<Uint8Array> {
101
+ const ecdh = createECDH('prime256v1')
102
+ ecdh.setPrivateKey(privateKey)
103
+ const publicKeyLength = 65
104
+ const ephemeralPublicKey = data.slice(0, publicKeyLength)
105
+ const sharedSecret = ecdh.computeSecret(ephemeralPublicKey)
106
+ const sharedSecretCombined = Buffer.concat([sharedSecret, id || new Uint8Array()])
107
+ const symmetricKey = crypto.createHash("SHA256").update(sharedSecretCombined).digest()
108
+ const encryptedData = data.slice(publicKeyLength)
109
+ return await this.aesGcmDecrypt(encryptedData, symmetricKey)
110
+ }
111
+
112
+ static privateSign(data: Uint8Array, key: string): Promise<Uint8Array> {
113
+ return Promise.resolve(crypto
114
+ .createSign("SHA256")
115
+ .update(data)
116
+ .sign(key));
117
+ }
118
+
119
+ static aesGcmEncrypt(data: Uint8Array, key: Uint8Array): Promise<Uint8Array> {
120
+ let iv = crypto.randomBytes(12);
121
+ let cipher = crypto.createCipheriv("aes-256-gcm", key, iv);
122
+ let encrypted = Buffer.concat([cipher.update(data), cipher.final()]);
123
+ const tag = cipher.getAuthTag();
124
+ let result = Buffer.concat([iv, encrypted, tag]);
125
+ return Promise.resolve(result);
126
+ }
127
+
128
+ static aesGcmDecrypt(data: Uint8Array, key: Uint8Array): Promise<Uint8Array> {
129
+ let iv = data.subarray(0, 12);
130
+ let encrypted = data.subarray(12, data.length - 16);
131
+ let tag = data.subarray(data.length - 16);
132
+ let cipher = crypto.createDecipheriv("aes-256-gcm", key, iv);
133
+ cipher.setAuthTag(tag);
134
+ return Promise.resolve(Buffer.concat([cipher.update(encrypted), cipher.final()]));
135
+ }
136
+
137
+ static async aesCbcEncrypt(data: Uint8Array, key: Uint8Array, usePadding: boolean): Promise<Uint8Array> {
138
+ let iv = crypto.randomBytes(16);
139
+ let cipher = crypto
140
+ .createCipheriv("aes-256-cbc", key, iv)
141
+ .setAutoPadding(usePadding);
142
+ let encrypted = Buffer.concat([cipher.update(data), cipher.final()]);
143
+ return Buffer.concat([iv, encrypted]);
144
+ }
145
+
146
+ static async aesCbcDecrypt(data: Uint8Array, key: Uint8Array, usePadding: boolean): Promise<Uint8Array> {
147
+ let iv = data.subarray(0, 16);
148
+ let encrypted = data.subarray(16);
149
+ let cipher = crypto
150
+ .createDecipheriv("aes-256-cbc", key, iv)
151
+ .setAutoPadding(usePadding);
152
+ return Buffer.concat([cipher.update(encrypted), cipher.final()]);
153
+ }
154
+
155
+ static deriveKey(password: KeyWrapper, saltBytes: Uint8Array, iterations: number): Promise<Uint8Array> {
156
+ return Promise.resolve(crypto.pbkdf2Sync(password.getKey(), saltBytes, iterations, 32, 'SHA256'));
157
+ }
158
+
159
+ static deriveKeyV2(domain: string, password: KeyWrapper, saltBytes: Uint8Array, iterations: number): Promise<Uint8Array> {
160
+ const bytes = crypto.pbkdf2Sync(Buffer.of(...Buffer.from(domain), ...nodePlatform.unWrapPassword(password.getKey())), saltBytes, iterations, 64, 'SHA512')
161
+ const reducedBytes = crypto.createHmac("SHA256", bytes).update(Buffer.from(domain)).digest()
162
+ return Promise.resolve(reducedBytes);
163
+ }
164
+
165
+ static calcAuthVerifier(key: Uint8Array): Promise<Uint8Array> {
166
+ return Promise.resolve(crypto.createHash("SHA256").update(key).digest());
167
+ }
168
+
169
+ static get(
170
+ url: string,
171
+ headers?: {[key: string]: string}
172
+ ): Promise<KeeperHttpResponse> {
173
+ return new Promise<KeeperHttpResponse>((resolve, reject) => {
174
+ let get = https.request(url, {
175
+ method: "get",
176
+ headers: {
177
+ "User-Agent": `Node/${process.version}`,
178
+ ...headers
179
+ }
180
+ }, (res) => {
181
+ this.fetchData(res, resolve);
182
+ });
183
+ get.on('error', reject)
184
+ get.end();
185
+ })
186
+ }
187
+
188
+ static post(
189
+ url: string,
190
+ request: Uint8Array | string,
191
+ headers?: {[key: string]: string}
192
+ ): Promise<KeeperHttpResponse> {
193
+ return new Promise<KeeperHttpResponse>((resolve, reject) => {
194
+ let post = https.request(url, {
195
+ method: "post",
196
+ headers: {
197
+ "Content-Type": "application/octet-stream",
198
+ "Content-Length": request.length,
199
+ "User-Agent": `Node/${process.version}`,
200
+ ...headers,
201
+ },
202
+ }, (res) => {
203
+ this.fetchData(res, resolve)
204
+ });
205
+ post.on('error', reject)
206
+ post.write(request);
207
+ post.end();
208
+ })
209
+ }
210
+
211
+ static fileUpload(
212
+ url: string,
213
+ uploadParameters: {[key: string]: string},
214
+ data: Uint8Array
215
+ ): Promise<any> {
216
+ return new Promise<any>((resolve, reject) => {
217
+ const form = new FormData()
218
+
219
+ for (const key in uploadParameters) {
220
+ form.append(key, uploadParameters[key]);
221
+ }
222
+ form.append('file', data)
223
+
224
+ let post = https.request(url, {
225
+ method: "post",
226
+ headers: form.getHeaders()
227
+ });
228
+ form.pipe(post)
229
+ post.on('error', reject)
230
+ post.on('response', function (res: any) {
231
+ resolve({
232
+ headers: res.headers,
233
+ statusCode: res.statusCode,
234
+ statusMessage: res.statusMessage
235
+ })
236
+ })
237
+ })
238
+ }
239
+
240
+ private static fetchData(res, resolve) {
241
+ let retVal = {
242
+ statusCode: res.statusCode,
243
+ headers: res.headers,
244
+ data: null
245
+ };
246
+ res.on("data", data => {
247
+ retVal.data = retVal.data
248
+ ? Buffer.concat([retVal.data, data])
249
+ : data
250
+ });
251
+ res.on("end", () => {
252
+ resolve(retVal);
253
+ });
254
+ }
255
+
256
+ static createWebsocket(url: string): SocketProxy {
257
+ const socket = new WebSocket.Client(url)
258
+ let createdSocket;
259
+ return createdSocket = {
260
+ onOpen: (callback: () => void) => {
261
+ socket.on('open', callback)
262
+ },
263
+ close: () => {
264
+ socket.close()
265
+ },
266
+ onClose: (callback: (e:Event) => void) => {
267
+ socket.on('close', callback)
268
+ },
269
+ onError: (callback: (err: Error) => void) => {
270
+ socket.on('error', callback)
271
+ },
272
+ onMessage: (callback: (e: Uint8Array) => void) => {
273
+ socket.on('message', (e: MessageEvent) => {
274
+ callback(e.data)
275
+ })
276
+ },
277
+ send: (message => {
278
+ socketSendMessage(message, socket, createdSocket)
279
+ }),
280
+ messageQueue: [],
281
+ }
282
+ }
283
+ };