@keeper-security/keeperapi 16.0.1 → 16.0.4
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.
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/code/cache/07113f92cc3a9f5dc57b92f54542a63463f1fa9a +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/code/cache/1ba6467ba06d4bfc0c8581f4ee12c2c0f687214e +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/code/cache/1de1e40928c5c58c4f677d93986cdff01b3d0417 +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/code/cache/47382883a57ad5790d3fd6abd39f33f773726b3b +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/code/cache/4939a895ecf4daac58b0d73bccd49876515d41b8 +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/code/cache/592d89407340c5ec6ad006df327e588b3f442eca +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/code/cache/59783c8cc0cc9d984f5407c218d213bca4c98503 +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/code/cache/61fa6cf725249a1cae9b94b74a8c23aa3efd2ca1 +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/code/cache/77aced5528ce05fe900fdf7634042ec3c0f18255 +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/code/cache/b32ea8d6d3de0c6d8e178eff069fea4e11fa92b1 +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/code/cache/c05be8364ff56aba0298689783666ddb97a31285 +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/code/cache/e23bf49223ba8b7ec926e46c40b27b0353cfc50e +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/code/cache/eec92c105b2694c31bff21903ddc3ef81af8f056 +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/semanticDiagnostics/cache/07113f92cc3a9f5dc57b92f54542a63463f1fa9a +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/semanticDiagnostics/cache/1ba6467ba06d4bfc0c8581f4ee12c2c0f687214e +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/semanticDiagnostics/cache/1de1e40928c5c58c4f677d93986cdff01b3d0417 +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/semanticDiagnostics/cache/47382883a57ad5790d3fd6abd39f33f773726b3b +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/semanticDiagnostics/cache/4939a895ecf4daac58b0d73bccd49876515d41b8 +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/semanticDiagnostics/cache/592d89407340c5ec6ad006df327e588b3f442eca +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/semanticDiagnostics/cache/59783c8cc0cc9d984f5407c218d213bca4c98503 +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/semanticDiagnostics/cache/61fa6cf725249a1cae9b94b74a8c23aa3efd2ca1 +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/semanticDiagnostics/cache/77aced5528ce05fe900fdf7634042ec3c0f18255 +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/semanticDiagnostics/cache/b32ea8d6d3de0c6d8e178eff069fea4e11fa92b1 +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/semanticDiagnostics/cache/c05be8364ff56aba0298689783666ddb97a31285 +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/semanticDiagnostics/cache/e23bf49223ba8b7ec926e46c40b27b0353cfc50e +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/semanticDiagnostics/cache/eec92c105b2694c31bff21903ddc3ef81af8f056 +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/syntacticDiagnostics/cache/07113f92cc3a9f5dc57b92f54542a63463f1fa9a +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/syntacticDiagnostics/cache/1ba6467ba06d4bfc0c8581f4ee12c2c0f687214e +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/syntacticDiagnostics/cache/1de1e40928c5c58c4f677d93986cdff01b3d0417 +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/syntacticDiagnostics/cache/47382883a57ad5790d3fd6abd39f33f773726b3b +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/syntacticDiagnostics/cache/4939a895ecf4daac58b0d73bccd49876515d41b8 +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/syntacticDiagnostics/cache/592d89407340c5ec6ad006df327e588b3f442eca +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/syntacticDiagnostics/cache/59783c8cc0cc9d984f5407c218d213bca4c98503 +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/syntacticDiagnostics/cache/61fa6cf725249a1cae9b94b74a8c23aa3efd2ca1 +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/syntacticDiagnostics/cache/77aced5528ce05fe900fdf7634042ec3c0f18255 +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/syntacticDiagnostics/cache/b32ea8d6d3de0c6d8e178eff069fea4e11fa92b1 +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/syntacticDiagnostics/cache/c05be8364ff56aba0298689783666ddb97a31285 +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/syntacticDiagnostics/cache/e23bf49223ba8b7ec926e46c40b27b0353cfc50e +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/syntacticDiagnostics/cache/eec92c105b2694c31bff21903ddc3ef81af8f056 +1 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/types/cache/20b49cde4def23063b280689e4ff4d5a3803712b +0 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/types/cache/3809196a67de680945038f2b4846e2e3b4af35aa +0 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/types/cache/4ad5d47b1ce7bf45cc7d9ff8c970e1fc57f446f3 +0 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/types/cache/5a0816a3c916ff0e4961dc0ec2da48646f2ac5aa +0 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/types/cache/6182f5491d41e8f10acfbcf46ee875587904f5a3 +0 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/types/cache/7ca2e31bcece668dfa5de5e1349ba34a757b5140 +0 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/types/cache/86a4b0102f5568ac0a5b946d05c55f42c30b472d +0 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/types/cache/87fae47dd5b05377c04cfe377699d748414dc1c9 +0 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/types/cache/a7c23ecebcaf23c9346007731c5796b96c580738 +0 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/types/cache/ac4d101c3489192db3e0ec98430a2336cba9a741 +0 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/types/cache/b1eb441c5b806d06ba6bb36fcfd0cc4746c23a8a +0 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/types/cache/b7942903000069a51e317fef1595a8ea1d8b828d +0 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/types/cache/cee91236390168fd38b01aaae7bed3099bb4555a +0 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/types/cache/d7c87ce194d923e6f02c7e570008e88ade1cbabf +0 -0
- package/.rpt2_cache/rpt2_73ef004c41e5fb714e8076cf96455df4f040d49c/types/cache/fba70878178c036fb4e9e1f19bdb465a1270d258 +0 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/code/cache/05d17f791979143cbce20e3e3e811aa19ed8b492 +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/code/cache/07113f92cc3a9f5dc57b92f54542a63463f1fa9a +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/code/cache/1ba6467ba06d4bfc0c8581f4ee12c2c0f687214e +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/code/cache/1de1e40928c5c58c4f677d93986cdff01b3d0417 +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/code/cache/47382883a57ad5790d3fd6abd39f33f773726b3b +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/code/cache/4d58c1113d07816b1909aaef4395fd8b4d0ee13c +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/code/cache/4ee978699d6de2a60214b16c42d87f8e9309636b +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/code/cache/50f4a014d14ada987c125e6ea55d4e6e75605313 +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/code/cache/58aa8c228c99b690d3ca1f3b464585c41d1cd4bb +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/code/cache/592d89407340c5ec6ad006df327e588b3f442eca +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/code/cache/59783c8cc0cc9d984f5407c218d213bca4c98503 +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/code/cache/61fa6cf725249a1cae9b94b74a8c23aa3efd2ca1 +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/code/cache/89f8a81d9d078b69f9fa7fa95251b38ccc394a3b +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/code/cache/b32ea8d6d3de0c6d8e178eff069fea4e11fa92b1 +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/code/cache/c05be8364ff56aba0298689783666ddb97a31285 +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/code/cache/e23bf49223ba8b7ec926e46c40b27b0353cfc50e +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/code/cache/eec92c105b2694c31bff21903ddc3ef81af8f056 +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/semanticDiagnostics/cache/05d17f791979143cbce20e3e3e811aa19ed8b492 +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/semanticDiagnostics/cache/07113f92cc3a9f5dc57b92f54542a63463f1fa9a +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/semanticDiagnostics/cache/1ba6467ba06d4bfc0c8581f4ee12c2c0f687214e +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/semanticDiagnostics/cache/1de1e40928c5c58c4f677d93986cdff01b3d0417 +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/semanticDiagnostics/cache/47382883a57ad5790d3fd6abd39f33f773726b3b +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/semanticDiagnostics/cache/4d58c1113d07816b1909aaef4395fd8b4d0ee13c +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/semanticDiagnostics/cache/4ee978699d6de2a60214b16c42d87f8e9309636b +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/semanticDiagnostics/cache/50f4a014d14ada987c125e6ea55d4e6e75605313 +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/semanticDiagnostics/cache/58aa8c228c99b690d3ca1f3b464585c41d1cd4bb +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/semanticDiagnostics/cache/592d89407340c5ec6ad006df327e588b3f442eca +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/semanticDiagnostics/cache/59783c8cc0cc9d984f5407c218d213bca4c98503 +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/semanticDiagnostics/cache/61fa6cf725249a1cae9b94b74a8c23aa3efd2ca1 +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/semanticDiagnostics/cache/89f8a81d9d078b69f9fa7fa95251b38ccc394a3b +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/semanticDiagnostics/cache/b32ea8d6d3de0c6d8e178eff069fea4e11fa92b1 +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/semanticDiagnostics/cache/c05be8364ff56aba0298689783666ddb97a31285 +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/semanticDiagnostics/cache/e23bf49223ba8b7ec926e46c40b27b0353cfc50e +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/semanticDiagnostics/cache/eec92c105b2694c31bff21903ddc3ef81af8f056 +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/syntacticDiagnostics/cache/05d17f791979143cbce20e3e3e811aa19ed8b492 +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/syntacticDiagnostics/cache/07113f92cc3a9f5dc57b92f54542a63463f1fa9a +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/syntacticDiagnostics/cache/1ba6467ba06d4bfc0c8581f4ee12c2c0f687214e +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/syntacticDiagnostics/cache/1de1e40928c5c58c4f677d93986cdff01b3d0417 +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/syntacticDiagnostics/cache/47382883a57ad5790d3fd6abd39f33f773726b3b +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/syntacticDiagnostics/cache/4d58c1113d07816b1909aaef4395fd8b4d0ee13c +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/syntacticDiagnostics/cache/4ee978699d6de2a60214b16c42d87f8e9309636b +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/syntacticDiagnostics/cache/50f4a014d14ada987c125e6ea55d4e6e75605313 +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/syntacticDiagnostics/cache/58aa8c228c99b690d3ca1f3b464585c41d1cd4bb +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/syntacticDiagnostics/cache/592d89407340c5ec6ad006df327e588b3f442eca +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/syntacticDiagnostics/cache/59783c8cc0cc9d984f5407c218d213bca4c98503 +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/syntacticDiagnostics/cache/61fa6cf725249a1cae9b94b74a8c23aa3efd2ca1 +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/syntacticDiagnostics/cache/89f8a81d9d078b69f9fa7fa95251b38ccc394a3b +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/syntacticDiagnostics/cache/b32ea8d6d3de0c6d8e178eff069fea4e11fa92b1 +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/syntacticDiagnostics/cache/c05be8364ff56aba0298689783666ddb97a31285 +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/syntacticDiagnostics/cache/e23bf49223ba8b7ec926e46c40b27b0353cfc50e +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/syntacticDiagnostics/cache/eec92c105b2694c31bff21903ddc3ef81af8f056 +1 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/types/cache/20b49cde4def23063b280689e4ff4d5a3803712b +0 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/types/cache/3809196a67de680945038f2b4846e2e3b4af35aa +0 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/types/cache/4ad5d47b1ce7bf45cc7d9ff8c970e1fc57f446f3 +0 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/types/cache/5a0816a3c916ff0e4961dc0ec2da48646f2ac5aa +0 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/types/cache/6182f5491d41e8f10acfbcf46ee875587904f5a3 +0 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/types/cache/7ca2e31bcece668dfa5de5e1349ba34a757b5140 +0 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/types/cache/86a4b0102f5568ac0a5b946d05c55f42c30b472d +0 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/types/cache/87fae47dd5b05377c04cfe377699d748414dc1c9 +0 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/types/cache/a7c23ecebcaf23c9346007731c5796b96c580738 +0 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/types/cache/ac4d101c3489192db3e0ec98430a2336cba9a741 +0 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/types/cache/b1eb441c5b806d06ba6bb36fcfd0cc4746c23a8a +0 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/types/cache/b7942903000069a51e317fef1595a8ea1d8b828d +0 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/types/cache/cee91236390168fd38b01aaae7bed3099bb4555a +0 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/types/cache/d7c87ce194d923e6f02c7e570008e88ade1cbabf +0 -0
- package/.rpt2_cache/rpt2_e52dc086a65136b8064433446ffcd05307935b95/types/cache/fba70878178c036fb4e9e1f19bdb465a1270d258 +0 -0
- package/babel.config.js +6 -0
- package/package.json +7 -10
- package/rollup.config.js +50 -0
- package/scripts/cleanDistFolder.js +9 -0
- package/src/__tests__/utils.test.js +13 -0
- package/src/auth.ts +1514 -0
- package/src/browser/asn1hex.ts +296 -0
- package/src/browser/index.ts +17 -0
- package/src/browser/jsbn.ts +1213 -0
- package/src/browser/platform.ts +434 -0
- package/src/browser/rng.ts +15 -0
- package/src/browser/rsa.ts +262 -0
- package/src/commands.ts +1378 -0
- package/src/company.ts +244 -0
- package/src/configuration.ts +125 -0
- package/src/endpoint.ts +350 -0
- package/src/node/index.ts +17 -0
- package/src/node/platform.ts +283 -0
- package/src/platform.ts +76 -0
- package/{dist → src}/proto.d.ts +0 -0
- package/src/proto.js +136564 -0
- package/src/restMessages.ts +311 -0
- package/src/utils.ts +169 -0
- package/src/vault.ts +844 -0
- package/src/vendorContext.ts +69 -0
- package/src/vendorModel.ts +36 -0
- package/tsconfig.json +14 -0
- package/tsconfig.rollup.json +14 -0
|
@@ -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":["/home/runner/work/keeper-sdk-javascript/keeper-sdk-javascript/keeperapi/src/endpoint.ts","/home/runner/work/keeper-sdk-javascript/keeper-sdk-javascript/keeperapi/src/proto.d.ts","/home/runner/work/keeper-sdk-javascript/keeper-sdk-javascript/keeperapi/src/platform.ts","/home/runner/work/keeper-sdk-javascript/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":"/home/runner/work/keeper-sdk-javascript/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"}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"code":"import { __awaiter } from \"tslib\";\r\nimport { EnterpriseAllocateIdsCommand, GetEnterpriseDataCommand, NodeAddCommand, RoleAddCommand, TeamAddCommand, EnterpriseUserAddCommand } from \"./commands\";\r\nimport { decryptFromStorage, decryptObjectFromStorage, encryptForStorage, encryptObjectForStorage, encryptKey, decryptKey, generateUid, generateEncryptionKey, webSafe64FromBytes, normal64Bytes } from \"./utils\";\r\nimport { platform } from \"./platform\";\r\nexport class Company {\r\n constructor(auth) {\r\n this.auth = auth;\r\n }\r\n load(include) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let getEnterpriseDataCommand = new GetEnterpriseDataCommand();\r\n getEnterpriseDataCommand.include = include;\r\n this._data = yield this.auth.executeCommand(getEnterpriseDataCommand);\r\n if (this._data.msp_key) {\r\n let key4TreeKey;\r\n switch (this._data.msp_key.encrypted_msp_tree_key_type) {\r\n case 'encrypted_by_data_key':\r\n key4TreeKey = decryptFromStorage(this._data.msp_key.encrypted_msp_tree_key, this.auth.dataKey);\r\n break;\r\n case 'encrypted_by_public_key':\r\n key4TreeKey = platform.privateDecrypt(normal64Bytes(this._data.msp_key.encrypted_msp_tree_key), this.auth.privateKey);\r\n break;\r\n case 'no_key':\r\n throw new Error('invalid value for encrypted_msp_tree_key_type');\r\n }\r\n this.treeKey = yield decryptKey(this._data.tree_key, key4TreeKey);\r\n }\r\n else {\r\n if (this._data.key_type_id === 1) {\r\n this.treeKey = yield decryptFromStorage(this._data.tree_key, this.auth.dataKey);\r\n }\r\n else {\r\n this.treeKey = platform.privateDecrypt(normal64Bytes(this._data.tree_key), this.auth.privateKey);\r\n }\r\n }\r\n if (!this._data.roles)\r\n this._data.roles = [];\r\n if (!this._data.teams)\r\n this._data.teams = [];\r\n if (!this._data.users)\r\n this._data.users = [];\r\n for (let node of this._data.nodes) {\r\n node.displayName = (yield decryptObjectFromStorage(node.encrypted_data, this.treeKey)).displayname;\r\n if (node.parent_id) {\r\n let parent = this._data.nodes.find(x => x.node_id == node.parent_id);\r\n if (!parent) {\r\n throw new Error(`Unable to find parent for node:${node.parent_id}`);\r\n }\r\n if (!parent.nodes) {\r\n parent.nodes = [];\r\n }\r\n parent.nodes.push(node);\r\n }\r\n }\r\n for (let role of this._data.roles) {\r\n if (role.role_type === \"pool_manager\") {\r\n role.displayName = \"License Purchaser\";\r\n }\r\n else {\r\n switch (role.key_type) {\r\n case \"encrypted_by_data_key\":\r\n role.displayName = (yield decryptObjectFromStorage(role.encrypted_data, this.treeKey)).displayname;\r\n break;\r\n case \"encrypted_by_public_key\":\r\n throw \"Not Implemented\";\r\n case \"no_key\":\r\n role.displayName = role.encrypted_data;\r\n break;\r\n }\r\n }\r\n let node = this._data.nodes.find(x => x.node_id == role.node_id);\r\n if (!node) {\r\n throw new Error(`Unable to find node for role:${role.node_id}`);\r\n }\r\n if (!node.roles) {\r\n node.roles = [];\r\n }\r\n node.roles.push(role);\r\n }\r\n for (let team of this._data.teams) {\r\n let node = this._data.nodes.find(x => x.node_id == team.node_id);\r\n if (!node) {\r\n throw new Error(`Unable to find node for team:${team.node_id}`);\r\n }\r\n if (!node.teams) {\r\n node.teams = [];\r\n }\r\n node.teams.push(team);\r\n }\r\n for (let user of this._data.users) {\r\n switch (user.key_type) {\r\n case \"encrypted_by_data_key\":\r\n user.displayName = (yield decryptObjectFromStorage(user.encrypted_data, this.treeKey)).displayname;\r\n break;\r\n case \"encrypted_by_public_key\":\r\n throw \"Not Implemented\";\r\n case \"no_key\":\r\n user.displayName = user.encrypted_data;\r\n break;\r\n }\r\n let node = this._data.nodes.find(x => x.node_id == user.node_id);\r\n if (!node) {\r\n throw new Error(`Unable to find node for user:${user.node_id}`);\r\n }\r\n if (!node.users) {\r\n node.users = [];\r\n }\r\n for (let user_role of this._data.role_users || []) {\r\n if (user_role.enterprise_user_id == user.enterprise_user_id) {\r\n if (!user.roles) {\r\n user.roles = [];\r\n }\r\n const role = this._data.roles.find(x => x.role_id === user_role.role_id);\r\n if (!role) {\r\n throw new Error(`Unable to find role for user_role:${user_role.role_id}`);\r\n }\r\n user.roles.push(role);\r\n }\r\n }\r\n for (let user_team of this._data.team_users || []) {\r\n if (user_team.enterprise_user_id == user.enterprise_user_id) {\r\n if (!user.teams) {\r\n user.teams = [];\r\n }\r\n const team = this._data.teams.find(x => x.team_uid === user_team.team_uid);\r\n if (!team) {\r\n throw new Error(`Unable to find team for user_team:${user_team.team_uid}`);\r\n }\r\n user.teams.push(team);\r\n }\r\n }\r\n node.users.push(user);\r\n }\r\n });\r\n }\r\n get data() {\r\n return this._data;\r\n }\r\n encryptDisplayName(displayName) {\r\n return encryptObjectForStorage({\r\n displayname: displayName\r\n }, this.treeKey);\r\n }\r\n encryptForStorage(data) {\r\n return encryptForStorage(data, this.treeKey);\r\n }\r\n encryptKey(key) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return encryptKey(key, this.treeKey);\r\n });\r\n }\r\n encryptKeyAsBytes(key) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return platform.aesGcmEncrypt(key, this.treeKey);\r\n });\r\n }\r\n decryptKey(encryptedKey) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return decryptKey(encryptedKey, this.treeKey);\r\n });\r\n }\r\n allocateIDs(count) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let allocateCommand = new EnterpriseAllocateIdsCommand();\r\n allocateCommand.number_requested = count;\r\n let response = yield this.auth.executeCommand(allocateCommand);\r\n return response.base_id;\r\n });\r\n }\r\n addNode(parentNodeId, nodeName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let nodeId = yield this.allocateIDs(1);\r\n let nodeAddCommand = new NodeAddCommand(nodeId, parentNodeId, yield this.encryptDisplayName(nodeName));\r\n let response = yield this.auth.executeCommand(nodeAddCommand);\r\n return nodeId;\r\n });\r\n }\r\n addRole(nodeId, roleName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let roleId = yield this.allocateIDs(1);\r\n let roleAddCommand = new RoleAddCommand(roleId, nodeId, yield this.encryptDisplayName(roleName));\r\n let response = yield this.auth.executeCommand(roleAddCommand);\r\n return roleId;\r\n });\r\n }\r\n addTeam(nodeId, teamName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let teamUid = generateUid();\r\n let teamKeyBytes = generateEncryptionKey();\r\n let { privateKey, publicKey } = yield platform.generateRSAKeyPair();\r\n let publicKey64 = webSafe64FromBytes(publicKey);\r\n let encryptedPrivateKey = encryptForStorage(privateKey, teamKeyBytes);\r\n let teamKey = yield encryptForStorage(teamKeyBytes, this.auth.dataKey);\r\n let encryptedTeamKey = yield this.encryptKey(teamKeyBytes);\r\n let teamAddCommand = new TeamAddCommand(teamUid, teamName, nodeId, publicKey64, yield encryptedPrivateKey, teamKey, encryptedTeamKey);\r\n let response = yield this.auth.executeCommand(teamAddCommand);\r\n });\r\n }\r\n addUser(nodeId, email, userName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let userId = yield this.allocateIDs(1);\r\n let userAddCommand = new EnterpriseUserAddCommand(userId, email, nodeId, yield this.encryptDisplayName(userName));\r\n let response = yield this.auth.executeCommand(userAddCommand);\r\n let verification_code = response.verification_code;\r\n return { userId, verification_code };\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=company.js.map","references":["/home/runner/work/keeper-sdk-javascript/keeper-sdk-javascript/keeperapi/src/auth.ts","/home/runner/work/keeper-sdk-javascript/keeper-sdk-javascript/keeperapi/src/commands.ts","/home/runner/work/keeper-sdk-javascript/keeper-sdk-javascript/keeperapi/src/utils.ts","/home/runner/work/keeper-sdk-javascript/keeper-sdk-javascript/keeperapi/src/platform.ts"],"map":"{\"version\":3,\"file\":\"company.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/company.ts\"],\"names\":[],\"mappings\":\";AACA,OAAO,EACH,4BAA4B,EAE5B,wBAAwB,EAExB,cAAc,EACd,cAAc,EACd,cAAc,EACd,wBAAwB,EAC3B,MAAM,YAAY,CAAC;AACpB,OAAO,EACH,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,uBAAuB,EACvB,UAAU,EACV,UAAU,EACV,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EAAE,aAAa,EACpC,MAAM,SAAS,CAAC;AACjB,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,MAAM,OAAO,OAAO;IAKhB,YAAoB,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;IAC9B,CAAC;IAEK,IAAI,CAAC,OAAgC;;YACvC,IAAI,wBAAwB,GAAG,IAAI,wBAAwB,EAAE,CAAC;YAC9D,wBAAwB,CAAC,OAAO,GAAG,OAAO,CAAC;YAE3C,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;YAEtE,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBACpB,IAAI,WAAW,CAAA;gBACf,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,2BAA2B,EAAE;oBACpD,KAAK,uBAAuB;wBACxB,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,sBAAsB,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC/F,MAAM;oBACV,KAAK,yBAAyB;wBAC1B,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;wBACrH,MAAM;oBACV,KAAK,QAAQ;wBACT,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;iBACvE;gBACD,IAAI,CAAC,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;aACrE;iBAAM;gBACH,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,CAAC,EAAE;oBAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBACnF;qBACI;oBACD,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;iBACnG;aACJ;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK;gBACjB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK;gBACjB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK;gBACjB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;YAE1B,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gBAC/B,IAAI,CAAC,WAAW,GAAG,CAAC,MAAM,wBAAwB,CAAgB,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;gBAClH,IAAI,IAAI,CAAC,SAAS,EAAE;oBAChB,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;oBACrE,IAAI,CAAC,MAAM,EAAE;wBACT,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;qBACtE;oBAED,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;wBACf,MAAM,CAAC,KAAK,GAAG,EAAE,CAAA;qBACpB;oBACD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC3B;aACJ;YAED,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gBAE/B,IAAI,IAAI,CAAC,SAAS,KAAK,cAAc,EAAE;oBACnC,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAA;iBACzC;qBACI;oBACD,QAAQ,IAAI,CAAC,QAAQ,EAAE;wBACnB,KAAK,uBAAuB;4BACxB,IAAI,CAAC,WAAW,GAAG,CAAC,MAAM,wBAAwB,CAAgB,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;4BAClH,MAAM;wBACV,KAAK,yBAAyB;4BAC1B,MAAM,iBAAiB,CAAC;wBAC5B,KAAK,QAAQ;4BACT,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC;4BACvC,MAAM;qBACb;iBACJ;gBAED,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;gBACjE,IAAI,CAAC,IAAI,EAAE;oBACP,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;iBAClE;gBAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;oBACb,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;iBAClB;gBACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACzB;YAED,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gBAC/B,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;gBACjE,IAAI,CAAC,IAAI,EAAE;oBACP,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;iBAClE;gBAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;oBACb,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;iBAClB;gBACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACzB;YAED,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gBAC/B,QAAQ,IAAI,CAAC,QAAQ,EAAE;oBACnB,KAAK,uBAAuB;wBACxB,IAAI,CAAC,WAAW,GAAG,CAAC,MAAM,wBAAwB,CAAgB,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;wBAClH,MAAM;oBACV,KAAK,yBAAyB;wBAC1B,MAAM,iBAAiB,CAAC;oBAC5B,KAAK,QAAQ;wBACT,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC;wBACvC,MAAM;iBACb;gBAED,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;gBACjE,IAAI,CAAC,IAAI,EAAE;oBACP,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;iBAClE;gBAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;oBACb,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;iBAClB;gBACD,KAAK,IAAI,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,EAAE;oBAC/C,IAAI,SAAS,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,EAAE;wBACzD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;4BACb,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;yBAClB;wBAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,OAAO,CAAC,CAAA;wBACxE,IAAI,CAAC,IAAI,EAAE;4BACP,MAAM,IAAI,KAAK,CAAC,qCAAqC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAA;yBAC5E;wBAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;qBACxB;iBACJ;gBACD,KAAK,IAAI,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,EAAE;oBAC/C,IAAI,SAAS,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,EAAE;wBACzD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;4BACb,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;yBAClB;wBAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAA;wBAC1E,IAAI,CAAC,IAAI,EAAE;4BACP,MAAM,IAAI,KAAK,CAAC,qCAAqC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;yBAC7E;wBAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;qBACxB;iBACJ;gBACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACzB;QACL,CAAC;KAAA;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,kBAAkB,CAAC,WAAmB;QAClC,OAAO,uBAAuB,CAAgB;YAC1C,WAAW,EAAE,WAAW;SAC3B,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAED,iBAAiB,CAAC,IAAgB;QAC9B,OAAO,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IAEK,UAAU,CAAC,GAAe;;YAC5B,OAAO,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;KAAA;IAEK,iBAAiB,CAAC,GAAe;;YACnC,OAAO,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QACpD,CAAC;KAAA;IAEK,UAAU,CAAC,YAAoB;;YACjC,OAAO,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;KAAA;IAEK,WAAW,CAAC,KAAa;;YAC3B,IAAI,eAAe,GAAG,IAAI,4BAA4B,EAAE,CAAC;YACzD,eAAe,CAAC,gBAAgB,GAAG,KAAK,CAAC;YACzC,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;YAC/D,OAAO,QAAQ,CAAC,OAAO,CAAC;QAC5B,CAAC;KAAA;IAEK,OAAO,CAAC,YAAoB,EAAE,QAAgB;;YAChD,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;YACvG,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YAC9D,OAAO,MAAM,CAAC;QAClB,CAAC;KAAA;IAEK,OAAO,CAAC,MAAc,EAAE,QAAgB;;YAC1C,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;YACjG,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YAC9D,OAAO,MAAM,CAAC;QAClB,CAAC;KAAA;IAEK,OAAO,CAAC,MAAc,EAAE,QAAgB;;YAC1C,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;YAC5B,IAAI,YAAY,GAAG,qBAAqB,EAAE,CAAC;YAC3C,IAAI,EAAC,UAAU,EAAE,SAAS,EAAC,GAAG,MAAM,QAAQ,CAAC,kBAAkB,EAAE,CAAC;YAClE,IAAI,WAAW,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;YAChD,IAAI,mBAAmB,GAAG,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YACtE,IAAI,OAAO,GAAG,MAAM,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvE,IAAI,gBAAgB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAC3D,IAAI,cAAc,GAAG,IAAI,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,mBAAmB,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;YACtI,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QAClE,CAAC;KAAA;IAEK,OAAO,CAAC,MAAc,EAAE,KAAa,EAAE,QAAgB;;YACzD,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,cAAc,GAAG,IAAI,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClH,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YAC9D,IAAI,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;YACnD,OAAO,EAAC,MAAM,EAAE,iBAAiB,EAAC,CAAC;QACvC,CAAC;KAAA;CACJ\"}","dts":{"name":"/home/runner/work/keeper-sdk-javascript/keeper-sdk-javascript/keeperapi/company.d.ts","writeByteOrderMark":false,"text":"import { Auth } from \"./auth\";\r\nimport { EnterpriseDataInclude, GetEnterpriseDataResponse } from \"./commands\";\r\nexport declare class Company {\r\n private auth;\r\n private _data;\r\n private treeKey;\r\n constructor(auth: Auth);\r\n load(include: EnterpriseDataInclude[]): Promise<void>;\r\n get data(): GetEnterpriseDataResponse;\r\n encryptDisplayName(displayName: string): Promise<string>;\r\n encryptForStorage(data: Uint8Array): Promise<string>;\r\n encryptKey(key: Uint8Array): Promise<string>;\r\n encryptKeyAsBytes(key: Uint8Array): Promise<Uint8Array>;\r\n decryptKey(encryptedKey: string): Promise<Uint8Array>;\r\n allocateIDs(count: number): Promise<number>;\r\n addNode(parentNodeId: number, nodeName: string): Promise<number>;\r\n addRole(nodeId: number, roleName: string): Promise<number>;\r\n addTeam(nodeId: number, teamName: string): Promise<void>;\r\n addUser(nodeId: number, email: string, userName: string): Promise<{\r\n userId: number;\r\n verification_code: string;\r\n }>;\r\n}\r\nexport declare type EncryptedData = {\r\n displayname: string;\r\n};\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 = yield 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 = yield 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 = yield 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":["/home/runner/work/keeper-sdk-javascript/keeper-sdk-javascript/keeperapi/src/configuration.ts","/home/runner/work/keeper-sdk-javascript/keeper-sdk-javascript/keeperapi/src/endpoint.ts","/home/runner/work/keeper-sdk-javascript/keeper-sdk-javascript/keeperapi/src/platform.ts","/home/runner/work/keeper-sdk-javascript/keeper-sdk-javascript/keeperapi/src/commands.ts","/home/runner/work/keeper-sdk-javascript/keeper-sdk-javascript/keeperapi/src/utils.ts","/home/runner/work/keeper-sdk-javascript/keeper-sdk-javascript/keeperapi/src/restMessages.ts","/home/runner/work/keeper-sdk-javascript/keeper-sdk-javascript/keeperapi/src/proto.d.ts"],"map":"{\"version\":3,\"file\":\"auth.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/auth.ts\"],\"names\":[],\"mappings\":\"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\"}","dts":{"name":"/home/runner/work/keeper-sdk-javascript/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":"import { __awaiter } from \"tslib\";\r\nimport { platform } from \"./platform\";\r\nimport { Authentication } from \"./proto\";\r\nexport function getKeeperUrl(host, forPath) {\r\n return `https://${host}/api/rest/${forPath}`;\r\n}\r\nexport function getKeeperSAMLUrl(host, forPath, serviceProviderId = null) {\r\n if (serviceProviderId) {\r\n return getKeeperUrl(host, `sso/saml/${forPath}/${serviceProviderId}`);\r\n }\r\n else {\r\n return getKeeperUrl(host, `sso/saml/${forPath}`);\r\n }\r\n}\r\nexport function getKeeperSsoConfigUrl(host, forPath, serviceProviderId = null) {\r\n if (serviceProviderId) {\r\n return getKeeperUrl(host, `sso/config/${forPath}/${serviceProviderId}`);\r\n }\r\n else {\r\n return getKeeperUrl(host, `sso/config/${forPath}`);\r\n }\r\n}\r\nexport function getKeeperAutomatorAdminUrl(host, forPath, automatorId = null) {\r\n if (automatorId) {\r\n return getKeeperUrl(host, `automator/${forPath}/${automatorId}`);\r\n }\r\n else {\r\n return getKeeperUrl(host, `automator/${forPath}`);\r\n }\r\n}\r\nexport function generateTransmissionKey(keyNumber) {\r\n const transmissionKey = platform.getRandomBytes(32);\r\n return {\r\n publicKeyId: keyNumber,\r\n key: transmissionKey,\r\n encryptedKey: platform.publicEncrypt(transmissionKey, platform.keys[keyNumber - 1])\r\n };\r\n}\r\nexport function webSafe64(source) {\r\n return source.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\r\n}\r\nexport function webSafe64FromBytes(source) {\r\n return webSafe64(platform.bytesToBase64(source));\r\n}\r\nexport function normal64(source) {\r\n return source.replace(/-/g, '+').replace(/_/g, '/') + '=='.substring(0, (3 * source.length) % 4);\r\n}\r\nexport function normal64Bytes(source) {\r\n return platform.base64ToBytes(normal64(source));\r\n}\r\nexport function isTwoFactorResultCode(resultCode) {\r\n return [\"need_totp\", \"invalid_device_token\", \"invalid_totp\"].includes(resultCode);\r\n}\r\nexport function generateEncryptionKey() {\r\n return platform.getRandomBytes(32);\r\n}\r\nexport function generateUidBytes() {\r\n return platform.getRandomBytes(16);\r\n}\r\nexport function generateUid() {\r\n return webSafe64FromBytes(generateUidBytes());\r\n}\r\nexport function wrapPassword(key) {\r\n if (typeof key === 'string') {\r\n return platform.wrapPassword(platform.stringToBytes(key));\r\n }\r\n if (key instanceof Uint8Array) {\r\n return platform.wrapPassword(key);\r\n }\r\n throw new Error('Error wrapping the password');\r\n}\r\nexport function encryptKey(key, withKey) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let encryptedKey = yield platform.aesGcmEncrypt(key, withKey);\r\n return webSafe64FromBytes(encryptedKey);\r\n });\r\n}\r\nexport function shareKey(key, publicKey) {\r\n let encryptedKey = platform.publicEncrypt(key, publicKey);\r\n return webSafe64FromBytes(encryptedKey);\r\n}\r\nexport function shareKeyEC(key, publicKey) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let encryptedKey = yield platform.publicEncryptEC(key, publicKey);\r\n return webSafe64FromBytes(encryptedKey);\r\n });\r\n}\r\nexport function decryptKey(encryptedKey, withKey) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return platform.aesGcmDecrypt(normal64Bytes(encryptedKey), withKey);\r\n });\r\n}\r\nexport function encryptForStorage(data, key) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return webSafe64FromBytes(yield platform.aesCbcEncrypt(data, key, true));\r\n });\r\n}\r\nexport function decryptFromStorage(data, key) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return yield platform.aesCbcDecrypt(normal64Bytes(data), key, true);\r\n });\r\n}\r\nexport function decryptFromStorageGcm(data, key) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return platform.aesGcmDecrypt(normal64Bytes(data), key);\r\n });\r\n}\r\nexport function encryptObjectForStorage(obj, key) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let s = JSON.stringify(obj);\r\n let bytes = platform.stringToBytes(s);\r\n return encryptForStorage(bytes, key);\r\n });\r\n}\r\nexport function encryptObjectForStorageAsBytes(obj, key) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let s = JSON.stringify(obj);\r\n let bytes = platform.stringToBytes(s);\r\n return platform.aesCbcEncrypt(bytes, key, true);\r\n });\r\n}\r\nexport function decryptObjectFromStorage(data, key) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n let decrypted = yield decryptFromStorage(data, key);\r\n return JSON.parse(platform.bytesToString(decrypted));\r\n }\r\n catch (e) {\r\n console.log(`Unable to decrypt ${data}`);\r\n return {};\r\n }\r\n });\r\n}\r\nexport function encryptObjectForStorageGCM(obj, key, usePadding = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let bytes = platform.stringToBytes(JSON.stringify(obj));\r\n if (usePadding) {\r\n const paddedSize = Math.ceil(Math.max(384, bytes.length) / 16) * 16;\r\n bytes = Uint8Array.of(...bytes, ...Array(paddedSize - bytes.length).fill(0x20));\r\n }\r\n return platform.aesGcmEncrypt(bytes, key);\r\n });\r\n}\r\nexport function chooseErrorMessage(errorNumber) {\r\n switch (errorNumber) {\r\n case Authentication.LoginState.ACCOUNT_LOCKED:\r\n return 'account_locked';\r\n case Authentication.LoginState.DEVICE_ACCOUNT_LOCKED:\r\n return 'device_account_locked';\r\n case Authentication.LoginState.DEVICE_LOCKED:\r\n return 'device_locked';\r\n case Authentication.LoginState.INVALID_LOGINSTATE:\r\n return 'invalid_loginstate';\r\n }\r\n}\r\nexport function resolvablePromise() {\r\n let resolver;\r\n const promise = new Promise((resolve) => {\r\n resolver = resolve;\r\n });\r\n return {\r\n promise: promise,\r\n resolve: resolver\r\n };\r\n}\r\n//# sourceMappingURL=utils.js.map","references":["/home/runner/work/keeper-sdk-javascript/keeper-sdk-javascript/keeperapi/src/platform.ts","/home/runner/work/keeper-sdk-javascript/keeper-sdk-javascript/keeperapi/src/configuration.ts","/home/runner/work/keeper-sdk-javascript/keeper-sdk-javascript/keeperapi/src/proto.d.ts"],"map":"{\"version\":3,\"file\":\"utils.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/utils.ts\"],\"names\":[],\"mappings\":\"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\"}","dts":{"name":"/home/runner/work/keeper-sdk-javascript/keeper-sdk-javascript/keeperapi/utils.d.ts","writeByteOrderMark":false,"text":"import { KeyWrapper } from \"./platform\";\r\nimport { KeeperHost, TransmissionKey } from './configuration';\r\nexport declare function getKeeperUrl(host: KeeperHost, forPath: string): string;\r\nexport declare function getKeeperSAMLUrl(host: KeeperHost, forPath: string, serviceProviderId?: number): string;\r\nexport declare function getKeeperSsoConfigUrl(host: KeeperHost, forPath: string, serviceProviderId?: number): string;\r\nexport declare function getKeeperAutomatorAdminUrl(host: KeeperHost, forPath: string, automatorId?: number): string;\r\nexport declare function generateTransmissionKey(keyNumber: number): TransmissionKey;\r\nexport declare function webSafe64(source: string): string;\r\nexport declare function webSafe64FromBytes(source: Uint8Array): string;\r\nexport declare function normal64(source: string): string;\r\nexport declare function normal64Bytes(source: string): Uint8Array;\r\nexport declare function isTwoFactorResultCode(resultCode: string): boolean;\r\nexport declare function generateEncryptionKey(): Uint8Array;\r\nexport declare function generateUidBytes(): Uint8Array;\r\nexport declare function generateUid(): string;\r\nexport declare function wrapPassword(key: string | Uint8Array): KeyWrapper;\r\nexport declare function encryptKey(key: Uint8Array, withKey: Uint8Array): Promise<string>;\r\nexport declare function shareKey(key: Uint8Array, publicKey: string): string;\r\nexport declare function shareKeyEC(key: Uint8Array, publicKey: Uint8Array): Promise<string>;\r\nexport declare function decryptKey(encryptedKey: string, withKey: Uint8Array): Promise<Uint8Array>;\r\nexport declare function encryptForStorage(data: Uint8Array, key: Uint8Array): Promise<string>;\r\nexport declare function decryptFromStorage(data: string, key: Uint8Array): Promise<Uint8Array>;\r\nexport declare function decryptFromStorageGcm(data: string, key: Uint8Array): Promise<Uint8Array>;\r\nexport declare function encryptObjectForStorage<T>(obj: T, key: Uint8Array): Promise<string>;\r\nexport declare function encryptObjectForStorageAsBytes<T>(obj: T, key: Uint8Array): Promise<Uint8Array>;\r\nexport declare function decryptObjectFromStorage<T>(data: string, key: Uint8Array): Promise<T>;\r\nexport declare function encryptObjectForStorageGCM<T>(obj: T, key: Uint8Array, usePadding?: boolean): Promise<Uint8Array>;\r\nexport declare function chooseErrorMessage(errorNumber: number): \"account_locked\" | \"device_account_locked\" | \"device_locked\" | \"invalid_loginstate\";\r\nexport declare function resolvablePromise(): {\r\n promise: Promise<void>;\r\n resolve: () => void;\r\n};\r\n"}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|