{"version":3,"file":"app/main.7c1287a291f3bb48f2e0.js","mappings":"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2CAKE,mEAAa,QAAAA,QAAA,QACf,IANA,QAQF,2BACF,yBACA,qCACE,qCACE,2CAAyB,U,iBAAuB,QAChD,2CAKE,mEAAa,QAAAA,QAAA,OACf,IANA,QAQF,2BACF,yBACA,qCACE,qCACE,2CAA0B,U,iBAA4B,QACtD,2CAKE,mEAAa,QAAAA,QAAA,QACf,IANA,QAQF,2BACF,yBACF,sB,yBAlDgC,sCAMxB,0CAOwB,wCAMxB,0CAOuB,wCAMvB,yCAOwB,6CAMxB,yC,EC5UD,MAAM6N,EA+BX,WAAAtlC,CACUyB,EACAuD,EACAsc,EACA3W,GAHA,KAAAlJ,WAAAA,EACA,KAAAuD,MAAAA,EACA,KAAAsc,WAAAA,EACA,KAAA3W,uBAAAA,EAlCD,KAAA00B,WAAY,EACX,KAAAkG,iBAAmB,IAAI,MAEjC,KAAAx7B,SAAU,EAGV,KAAA0tB,QAAuB,CACrBG,MAAO,KACPE,MAAO,KACPC,MAAO,KACPC,KAAM,KACNH,MAAO,KACPN,WAAY,KACZG,QAAS,KACT8N,cAAc,GAKR,KAAAC,SAAwB,CAC9B7N,MAAO,KACPE,MAAO,KACPC,MAAO,KACPC,KAAM,KACNH,MAAO,KACPN,WAAY,KACZG,QAAS,KACT8N,cAAc,GAuKR,KAAAE,yBAAqC,CAC3C,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KAxOC,CAEG,QAAAt+B,G,yCAGJzH,KAAKqF,MAAMuF,YAAY6J,WAAWtO,IAChCnG,KAAK6I,WAAa1C,EAAO0C,UAAU,IAIrC7I,KAAKqF,MAAMmP,OAAOA,OAAOrO,O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CE,U,iBACA,mBAA2B,UAAW,QACrC,sBACH,QACF,2BACA,kCACE,mCACE,U,iBACF,QACF,2BACF,yBACF,uBACA,gB,MAhBwB,sDAIhB,+EAC2B,wBAM3B,sF,wCCND,MAAMC,I,kCAAAA,GAAuB,E,oBAAvBA,GAAuB,iTCNpC,gBAAsC,0CAA8B,QACpE,+BACE,gCACE,0IAEF,QACF,sBACA,8BACE,gCAAI,iDAAoC,QACxC,gCAAI,2CAA8B,QAClC,gCAAI,0CAA6B,QACjC,gCAAI,+CAAkC,QACxC,uBACA,iCACE,6CACA,8CACF,uBACA,e,yCCXO,MAAMC,I,kCAAAA,GAA2B,E,oBAA3BA,GAA2B,gcCNxC,gBAAsC,kDAAsC,QAC5E,+BACE,gCACE,sIAEF,QACF,sBACA,8BACE,kCACE,mCACC,mBACE,mGAAsF,QAE3F,yBACA,kCACE,mCACC,mBACE,4GACO,QAEZ,yBACA,kCACE,mCACC,mBACE,wHACW,QAEhB,yBACA,kCACE,mCACC,mBACE,8EAAiE,QAEtE,yBACA,kCACE,mCACC,mBACE,0FAA6E,QAElF,yBACF,uBACA,iCACE,6CACF,uBACA,e,sCCtCO,MAAMC,I,kCAAAA,GAA2B,E,oBAA3BA,GAA2B,gcCNxC,gBAAsC,kDAAsC,QAC5E,+BACE,gCACE,sIAEF,QACF,sBACA,8BACE,kCACE,mCACC,mBACE,mGAAsF,QAE3F,yBACA,kCACE,mCACC,mBACE,4GACO,QAEZ,yBACA,kCACE,mCACC,mBACE,wHACW,QAEhB,yBACA,kCACE,mCACC,mBACE,8EAAiE,QAEtE,yBACA,kCACE,mCACC,mBACE,0FAA6E,QAElF,yBACF,uBACA,iCACE,6CACF,uBACA,e,sCCtCO,MAAMC,I,kCAAAA,GAAsB,E,oBAAtBA,GAAsB,2bCNnC,gBAAsC,iDAAqC,QAC3E,+BACE,gCACE,4GACF,QACF,sBACA,8BACE,kCACE,mCACC,mBACE,mGAAsF,QAE3F,yBACA,kCACE,mCACC,mBACE,8EAAiE,QAEtE,yBACA,kCACE,mCACC,mBACE,yFAA4E,QAEjF,yBACA,kCACE,mCACC,mBACE,kF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AGyH,KAAKC,MAAMi3N,EADb,OAEnB,CAEQ,oBAAO3C,CAActrF,GAC3B,OAC8C,MAA5CA,EAAI5vH,UAAU4xH,UAAUxjE,MAAM,YACY,MAA1CwhE,EAAI5vH,UAAU4xH,UAAUxjE,MAAM,QAElC,CAEQ,mBAAO0uJ,CAAaP,GAG1B,MAAMuB,EAAcvB,EAAUpsM,QAAQ,QAAU,EAChD,IAAK2tM,GAAevB,EAAUpsM,QAAQ,MAAQ,EAC5CosM,EAAY,UAAYA,OACnB,IAAKuB,EACV,OAAO,KAGT,IACE,OAAe,MAAXlD,EACK,IAAIA,EAAQhiL,IAAI2jL,GAGlB,IAAI3jL,IAAI2jL,E,CACf,MAAO36N,G,CAIT,OAAO,IACT,EA5kBO,EAAAozE,QAAS,EACT,EAAAl0B,QAAS,EACT,EAAAC,WAAY,EACZ,EAAAyvF,iBAAkB,EAClB,EAAAyqF,sBAAuB,EACvB,EAAAh/K,OAAwB,KAExB,EAAA8hL,wBACL,02BACc,EAAAvB,WAAuB,CAAC,aACxB,EAAAjmD,8BAAgC,EAChC,EAAAr4K,sBAAwB,GACxB,EAAA8/N,qBAAuB,IAAIh7N,IAAyB,CAClE,CAAC,aAAc,IAAImP,IAAI,CAAC,yBAyNnB,EAAAmqN,UAAY,4EAyWrBzB,EAAMx+J,M,qECvmBC,MAAM4hK,EAAkB,CAC7B,SACA,UACA,YACA,QACA,UACA,UACA,SACA,OACA,WACA,WACA,WACA,UACA,UACA,SACA,WACA,UACA,WACA,WACA,WACA,WACA,UACA,UACA,WACA,SACA,SACA,UACA,YACA,YACA,UACA,WACA,WACA,WACA,UACA,WACA,SACA,OACA,QACA,WACA,UACA,OACA,UACA,UACA,SACA,SACA,WACA,YACA,SACA,WACA,WACA,WACA,UACA,OACA,UACA,YACA,WACA,WACA,UACA,YACA,OACA,SACA,WACA,YACA,YACA,YACA,YACA,SACA,QACA,YACA,WACA,SACA,UACA,SACA,SACA,WACA,QACA,SACA,YACA,YACA,YACA,YACA,YACA,OACA,UACA,SACA,SACA,QACA,YACA,SACA,QACA,UACA,QACA,WACA,UACA,YACA,QACA,YACA,YACA,SACA,WACA,YACA,UACA,QACA,OACA,OACA,OACA,MACA,OACA,YACA,QACA,YACA,QACA,UACA,UACA,YACA,QACA,QACA,YACA,WACA,SACA,QACA,QACA,WACA,WACA,UACA,WACA,SACA,OACA,QACA,QACA,QACA,YACA,QACA,WACA,UACA,WACA,WACA,OACA,WACA,SACA,SACA,WACA,QACA,YACA,QACA,WACA,YACA,YACA,WACA,YACA,YACA,SACA,YACA,YACA,SACA,UACA,UACA,WACA,OACA,QACA,QACA,QACA,UACA,WACA,UACA,WACA,QACA,SACA,WACA,QACA,YACA,UACA,QACA,QACA,SACA,WACA,SACA,YACA,SACA,UACA,WACA,YACA,UACA,YACA,UACA,SACA,UACA,UACA,UACA,SACA,SACA,WACA,OACA,YACA,UACA,QACA,SACA,SACA,SACA,UACA,UACA,YACA,YACA,UACA,SACA,UACA,YACA,YACA,WACA,QACA,YACA,QACA,QACA,WACA,YACA,WACA,WACA,UACA,WACA,UACA,YACA,UACA,YACA,WACA,WACA,WACA,SACA,UACA,YACA,WACA,SACA,WACA,WACA,YACA,WACA,YACA,WACA,YACA,YACA,YACA,YACA,SACA,UACA,QACA,QACA,UACA,SACA,UACA,SACA,WACA,WACA,UACA,SACA,WACA,QACA,SACA,UACA,YACA,SACA,UACA,YACA,YACA,WACA,WACA,YACA,UACA,WACA,QACA,YACA,YACA,UACA,QACA,YACA,YACA,YACA,YACA,WACA,WACA,UACA,UACA,QACA,QACA,WACA,QACA,OACA,WACA,YACA,YACA,WACA,OACA,QACA,WACA,WACA,QACA,QACA,YACA,UACA,WACA,QACA,SACA,UACA,SACA,UACA,UACA,UACA,SACA,UACA,OACA,QACA,QACA,SACA,UACA,UACA,QACA,SACA,UACA,SACA,YACA,WACA,QACA,MACA,SACA,YACA,SACA,YACA,UACA,QACA,QACA,OACA,QACA,QACA,SACA,YACA,SACA,WACA,SACA,UACA,WACA,UACA,UACA,YACA,YACA,YACA,SACA,WACA,QACA,OACA,WACA,OACA,SACA,YACA,UACA,SACA,SACA,UACA,YACA,WACA,YACA,YACA,SACA,QACA,SACA,WACA,YACA,YACA,WACA,UACA,YACA,WACA,UACA,UACA,WACA,QACA,WACA,YACA,SACA,YACA,SACA,SACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,SACA,SACA,WACA,SACA,UACA,WACA,QACA,WACA,UACA,OACA,QACA,QACA,SACA,QACA,QACA,SACA,UACA,SACA,QACA,OACA,OACA,SACA,WACA,SACA,SACA,WACA,YACA,YACA,WACA,SACA,SACA,YACA,WACA,WACA,UACA,YACA,WACA,WACA,YACA,UACA,UACA,WACA,YACA,WACA,WACA,YACA,WACA,WACA,YACA,WACA,WACA,YACA,WACA,YACA,SACA,WACA,WACA,YACA,WACA,QACA,WACA,YACA,SACA,QACA,UACA,QACA,UACA,SACA,WACA,QACA,SACA,UACA,SACA,SACA,YACA,UACA,QACA,UACA,WACA,QACA,SACA,WACA,SACA,UACA,YACA,UACA,QACA,WACA,SACA,SACA,SACA,WACA,QACA,WACA,WACA,SACA,SACA,UACA,WACA,WACA,SACA,YACA,UACA,SACA,WACA,SACA,UACA,SACA,UACA,QACA,WACA,UACA,WACA,SACA,UACA,SACA,OACA,YACA,UACA,YACA,SACA,WACA,YACA,UACA,WACA,YACA,WACA,OACA,YACA,SACA,QACA,QACA,QACA,SACA,SACA,QACA,OACA,QACA,OACA,YACA,WACA,YACA,UACA,UACA,SACA,SACA,UACA,UACA,UACA,QACA,OACA,QACA,UACA,YACA,YACA,QACA,YACA,YACA,QACA,WACA,YACA,SACA,UACA,SACA,QACA,QACA,UACA,QACA,QACA,WACA,QACA,QACA,UACA,UACA,WACA,SACA,OACA,WACA,QACA,WACA,UACA,WACA,OACA,OACA,WACA,WACA,UACA,OACA,SACA,UACA,QACA,SACA,YACA,QACA,QACA,UACA,SACA,QACA,QACA,WACA,UACA,WACA,WACA,OACA,SACA,UACA,SACA,SACA,UACA,UACA,YACA,OACA,SACA,SACA,QACA,OACA,MACA,UACA,OACA,UACA,SACA,UACA,WACA,QACA,WACA,WACA,WACA,QACA,UACA,SACA,SACA,QACA,OACA,YACA,YACA,OACA,YACA,SACA,QACA,SACA,UACA,WACA,UACA,QACA,QACA,QACA,SACA,UACA,WACA,YACA,OACA,YACA,WACA,SACA,QACA,OACA,SACA,WACA,SACA,SACA,WACA,SACA,WACA,YACA,YACA,SACA,SACA,QACA,SACA,UACA,OACA,SACA,SACA,WACA,YACA,UACA,WACA,SACA,SACA,WACA,UACA,UACA,QACA,QACA,QACA,QACA,UACA,UACA,SACA,YACA,OACA,QACA,QACA,UACA,UACA,YACA,UACA,UACA,YACA,YACA,UACA,UACA,YACA,YACA,YACA,UACA,WACA,SACA,SACA,YACA,SACA,SACA,WACA,QACA,QACA,UACA,WACA,YACA,SACA,WACA,WACA,SACA,WACA,QACA,QACA,WACA,QACA,YACA,SACA,WACA,SACA,YACA,SACA,SACA,SACA,WACA,WACA,YACA,YACA,WACA,WACA,UACA,QACA,SACA,UACA,SACA,SACA,UACA,UACA,QACA,OACA,QACA,YACA,SACA,OACA,UACA,YACA,YACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,WACA,QACA,QACA,SACA,SACA,SACA,UACA,YACA,WACA,QACA,OACA,SACA,OACA,SACA,UACA,OACA,WACA,OACA,SACA,UACA,SACA,YACA,QACA,UACA,QACA,SACA,QACA,SACA,SACA,QACA,QACA,WACA,UACA,OACA,UACA,OACA,WACA,WACA,UACA,YACA,WACA,UACA,YACA,OACA,UACA,UACA,UACA,YACA,QACA,SACA,WACA,SACA,WACA,UACA,WACA,SACA,QACA,SACA,SACA,UACA,SACA,QACA,OACA,SACA,WACA,WACA,SACA,UACA,SACA,SACA,SACA,QACA,YACA,SACA,UACA,SACA,UACA,UACA,WACA,OACA,YACA,UACA,UACA,SACA,YACA,UACA,UACA,UACA,YACA,UACA,YACA,UACA,UACA,QACA,UACA,SACA,YACA,SACA,UACA,WACA,WACA,YACA,YACA,YACA,WACA,SACA,YACA,QACA,SACA,UACA,UACA,WACA,UACA,YACA,WACA,YACA,QACA,YACA,YACA,UACA,UACA,UACA,SACA,YACA,QACA,SACA,WACA,SACA,UACA,YACA,YACA,QACA,UACA,UACA,UACA,OACA,OACA,SACA,SACA,SACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,YACA,UACA,YACA,UACA,WACA,SACA,UACA,WACA,WACA,UACA,YACA,WACA,UACA,SACA,SACA,SACA,UACA,YACA,SACA,QACA,UACA,YACA,SACA,SACA,YACA,QACA,UACA,YACA,UACA,WACA,WACA,UACA,SACA,SACA,QACA,SACA,YACA,WACA,WACA,SACA,SACA,SACA,WACA,WACA,YACA,YACA,YACA,UACA,WACA,WACA,QACA,WACA,QACA,QACA,UACA,YACA,UACA,YACA,WACA,SACA,SACA,UACA,QACA,QACA,YACA,WACA,UACA,QACA,UACA,YACA,YACA,WACA,UACA,WACA,UACA,UACA,QACA,UACA,UACA,WACA,QACA,UACA,SACA,WACA,WACA,WACA,UACA,WACA,SACA,WACA,UACA,QACA,QACA,SACA,SACA,OACA,YACA,UACA,QACA,YACA,SACA,QACA,QACA,UACA,QACA,WACA,SACA,UACA,QACA,QACA,YACA,YACA,YACA,WACA,YACA,YACA,QACA,QACA,QACA,OACA,WACA,SACA,WACA,WACA,QACA,WACA,WACA,SACA,YACA,UACA,QACA,UACA,WACA,SACA,OACA,SACA,UACA,WACA,SACA,SACA,QACA,OACA,SACA,QACA,QACA,QACA,QACA,QACA,WACA,QACA,SACA,WACA,SACA,WACA,WACA,YACA,SACA,UACA,UACA,WACA,UACA,SACA,SACA,OACA,QACA,QACA,OACA,QACA,WACA,SACA,SACA,QACA,YACA,QACA,WACA,UACA,UACA,WACA,UACA,WACA,UACA,QACA,QACA,QACA,UACA,SACA,WACA,OACA,OACA,QACA,QACA,QACA,UACA,QACA,SACA,YACA,WACA,QACA,SACA,UACA,SACA,UACA,WACA,QACA,SACA,WACA,OACA,SACA,QACA,UACA,QACA,QACA,UACA,WACA,UACA,UACA,WACA,QACA,SACA,UACA,WACA,YACA,QACA,WACA,SACA,SACA,YACA,SACA,UACA,QACA,YACA,UACA,UACA,WACA,YACA,YACA,OACA,WACA,SACA,UACA,SACA,QACA,UACA,MACA,WACA,SACA,UACA,SACA,YACA,YACA,YACA,WACA,YACA,WACA,WACA,OACA,OACA,OACA,OACA,WACA,WACA,UACA,WACA,SACA,YACA,YACA,UACA,SACA,YACA,WACA,WACA,WACA,SACA,WACA,OACA,OACA,OACA,UACA,QACA,QACA,SACA,QACA,WACA,UACA,UACA,WACA,UACA,YACA,YACA,SACA,YACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,UACA,UACA,SACA,UACA,SACA,YACA,WACA,WACA,YACA,UACA,YACA,WACA,WACA,YACA,WACA,YACA,UACA,UACA,UACA,WACA,UACA,YACA,UACA,QACA,YACA,UACA,WACA,WACA,SACA,WACA,YACA,YACA,UACA,YACA,YACA,UACA,OACA,UACA,WACA,YACA,YACA,WACA,YACA,YACA,WACA,YACA,UACA,WACA,UACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,WACA,WACA,UACA,YACA,UACA,WACA,YACA,YACA,YACA,UACA,UACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,UACA,YACA,YACA,WACA,UACA,UACA,UACA,UACA,WACA,UACA,YACA,UACA,UACA,YACA,OACA,SACA,SACA,UACA,SACA,UACA,SACA,OACA,QACA,OACA,WACA,YACA,UACA,SACA,SACA,SACA,YACA,YACA,WACA,WACA,YACA,QACA,WACA,UACA,WACA,YACA,SACA,UACA,WACA,UACA,YACA,YACA,UACA,SACA,SACA,WACA,YACA,SACA,SACA,YACA,OACA,UACA,SACA,QACA,QACA,QACA,YACA,YACA,WACA,YACA,UACA,SACA,UACA,WACA,QACA,UACA,WACA,UACA,SACA,WACA,OACA,WACA,YACA,WACA,WACA,SACA,WACA,UACA,WACA,YACA,YACA,SACA,QACA,YACA,QACA,UACA,UACA,QACA,QACA,QACA,UACA,WACA,WACA,WACA,WACA,SACA,SACA,UACA,YACA,QACA,UACA,UACA,YACA,SACA,WACA,YACA,SACA,WACA,WACA,WACA,WACA,WACA,SACA,QACA,QACA,SACA,QACA,QACA,WACA,UACA,WACA,YACA,UACA,WACA,UACA,WACA,OACA,UACA,QACA,QACA,QACA,UACA,SACA,WACA,UACA,UACA,UACA,WACA,UACA,YACA,SACA,WACA,UACA,QACA,QACA,QACA,QACA,OACA,QACA,SACA,UACA,UACA,QACA,QACA,UACA,UACA,YACA,UACA,YACA,UACA,QACA,YACA,SACA,UACA,WACA,WACA,YACA,UACA,WACA,YACA,UACA,UACA,WACA,QACA,OACA,SACA,UACA,UACA,YACA,OACA,UACA,UACA,WACA,SACA,SACA,WACA,WACA,YACA,WACA,UACA,YACA,WACA,UACA,YACA,UACA,QACA,SACA,UACA,UACA,UACA,SACA,OACA,SACA,SACA,SACA,SACA,YACA,UACA,QACA,QACA,QACA,UACA,SACA,UACA,SACA,SACA,YACA,QACA,QACA,QACA,OACA,SACA,UACA,YACA,UACA,YACA,WACA,YACA,UACA,MACA,QACA,SACA,UACA,UACA,WACA,SACA,YACA,YACA,MACA,MACA,WACA,SACA,QACA,WACA,SACA,QACA,QACA,WACA,QACA,UACA,YACA,SACA,WACA,QACA,SACA,SACA,WACA,YACA,QACA,WACA,WACA,YACA,UACA,WACA,WACA,UACA,OACA,OACA,YACA,OACA,YACA,OACA,WACA,SACA,WACA,WACA,UACA,OACA,SACA,WACA,UACA,WACA,WACA,UACA,UACA,UACA,UACA,WACA,SACA,YACA,WACA,SACA,UACA,YACA,QACA,OACA,YACA,SACA,WACA,QACA,UACA,WACA,SACA,QACA,SACA,SACA,QACA,QACA,YACA,QACA,WACA,SACA,WACA,YACA,WACA,UACA,SACA,YACA,YACA,UACA,YACA,UACA,YACA,WACA,OACA,WACA,UACA,SACA,YACA,YACA,YACA,QACA,WACA,SACA,WACA,YACA,SACA,SACA,OACA,OACA,SACA,SACA,WACA,SACA,WACA,SACA,UACA,SACA,YACA,YACA,YACA,WACA,UACA,YACA,WACA,WACA,WACA,UACA,SACA,WACA,SACA,WACA,UACA,YACA,WACA,YACA,YACA,QACA,WACA,UACA,UACA,SACA,SACA,OACA,WACA,YACA,WACA,SACA,YACA,QACA,WACA,QACA,WACA,YACA,SACA,WACA,WACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,UACA,QACA,SACA,WACA,SACA,YACA,YACA,WACA,SACA,YACA,WACA,SACA,WACA,YACA,YACA,WACA,SACA,QACA,SACA,QACA,UACA,SACA,UACA,UACA,OACA,YACA,YACA,WACA,YACA,SACA,UACA,YACA,WACA,SACA,SACA,SACA,WACA,YACA,YACA,UACA,UACA,QACA,WACA,SACA,SACA,WACA,QACA,UACA,YACA,UACA,YACA,YACA,WACA,WACA,YACA,YACA,UACA,WACA,WACA,UACA,UACA,UACA,UACA,YACA,WACA,WACA,SACA,YACA,YACA,WACA,YACA,YACA,SACA,WACA,YACA,WACA,UACA,QACA,UACA,WACA,UACA,UACA,YACA,WACA,SACA,UACA,YACA,UACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,WACA,YACA,YACA,UACA,OACA,WACA,SACA,YACA,QACA,OACA,SACA,UACA,YACA,WACA,YACA,WACA,WACA,YACA,YACA,MACA,WACA,YACA,WACA,OACA,SACA,OACA,WACA,QACA,SACA,SACA,UACA,SACA,QACA,UACA,SACA,YACA,QACA,QACA,SACA,SACA,UACA,UACA,UACA,SACA,SACA,UACA,WACA,YACA,YACA,WACA,YACA,WACA,YACA,WACA,WACA,WACA,SACA,WACA,WACA,UACA,YACA,WACA,UACA,UACA,YACA,WACA,WACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,WACA,OACA,YACA,UACA,OACA,UACA,YACA,YACA,WACA,WACA,YACA,SACA,UACA,WACA,UACA,WACA,SACA,YACA,YACA,WACA,WACA,YACA,YACA,YACA,WACA,UACA,YACA,WACA,UACA,WACA,UACA,YACA,UACA,WACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,WACA,WACA,WACA,QACA,QACA,QACA,YACA,UACA,WACA,WACA,WACA,WACA,SACA,WACA,YACA,YACA,WACA,WACA,WACA,YACA,QACA,SACA,SACA,OACA,WACA,WACA,QACA,QACA,QACA,QACA,OACA,SACA,YACA,SACA,QACA,UACA,SACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,QACA,QACA,SACA,WACA,YACA,WACA,UACA,UACA,WACA,WACA,WACA,WACA,UACA,QACA,OACA,YACA,SACA,SACA,OACA,SACA,WACA,SACA,OACA,OACA,QACA,OACA,OACA,WACA,YACA,YACA,WACA,YACA,WACA,UACA,UACA,YACA,WACA,YACA,QACA,UACA,UACA,OACA,UACA,WACA,YACA,YACA,WACA,YACA,YACA,YACA,SACA,SACA,WACA,SACA,SACA,QACA,OACA,UACA,QACA,QACA,QACA,UACA,WACA,YACA,WACA,WACA,SACA,WACA,SACA,SACA,WACA,UACA,UACA,UACA,QACA,QACA,QACA,YACA,UACA,WACA,UACA,UACA,UACA,QACA,QACA,WACA,SACA,OACA,MACA,SACA,YACA,UACA,WACA,UACA,WACA,WACA,QACA,OACA,OACA,SACA,SACA,MACA,OACA,SACA,WACA,OACA,UACA,WACA,WACA,MACA,OACA,SACA,YACA,YACA,UACA,UACA,WACA,SACA,SACA,OACA,OACA,UACA,OACA,QACA,QACA,QACA,UACA,UACA,WACA,UACA,YACA,UACA,WACA,UACA,WACA,WACA,OACA,QACA,UACA,UACA,UACA,SACA,UACA,QACA,UACA,UACA,WACA,WACA,WACA,UACA,UACA,UACA,YACA,YACA,UACA,YACA,SACA,SACA,UACA,QACA,UACA,SACA,WACA,SACA,YACA,YACA,SACA,WACA,UACA,QACA,SACA,SACA,OACA,OACA,QACA,QACA,QACA,YACA,OACA,SACA,UACA,YACA,UACA,WACA,YACA,UACA,YACA,YACA,OACA,WACA,SACA,OACA,UACA,SACA,WACA,YACA,WACA,MACA,YACA,UACA,YACA,SACA,YACA,SACA,SACA,WACA,WACA,YACA,UACA,YACA,SACA,QACA,YACA,UACA,SACA,QACA,YACA,UACA,SACA,YACA,WACA,WACA,WACA,UACA,YACA,YACA,WACA,SACA,MACA,WACA,WACA,YACA,QACA,UACA,SACA,MACA,UACA,WACA,MACA,YACA,QACA,YACA,WACA,YACA,QACA,UACA,QACA,QACA,UACA,SACA,UACA,YACA,YACA,QACA,WACA,UACA,SACA,SACA,WACA,SACA,YACA,QACA,UACA,YACA,WACA,OACA,QACA,WACA,UACA,WACA,UACA,UACA,WACA,WACA,YACA,WACA,YACA,WACA,WACA,WACA,WACA,UACA,UACA,YACA,QACA,MACA,SACA,YACA,SACA,YACA,YACA,WACA,UACA,YACA,SACA,SACA,YACA,YACA,WACA,UACA,UACA,WACA,WACA,YACA,QACA,SACA,UACA,UACA,YACA,YACA,UACA,YACA,WACA,YACA,YACA,WACA,YACA,WACA,SACA,WACA,WACA,UACA,WACA,SACA,UACA,WACA,WACA,YACA,UACA,SACA,UACA,YACA,YACA,YACA,UACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,SACA,SACA,SACA,UACA,UACA,SACA,SACA,YACA,WACA,YACA,WACA,SACA,UACA,SACA,SACA,YACA,SACA,SACA,WACA,UACA,WACA,UACA,YACA,WACA,WACA,WACA,UACA,WACA,QACA,OACA,SACA,OACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,WACA,UACA,QACA,SACA,WACA,UACA,UACA,YACA,SACA,YACA,YACA,WACA,SACA,SACA,UACA,YACA,SACA,SACA,UACA,QACA,QACA,WACA,YACA,YACA,WACA,WACA,WACA,SACA,YACA,YACA,WACA,UACA,QACA,UACA,YACA,YACA,SACA,WACA,WACA,YACA,YACA,WACA,UACA,UACA,WACA,UACA,QACA,YACA,SACA,YACA,WACA,UACA,QACA,WACA,YACA,YACA,UACA,UACA,OACA,YACA,YACA,YACA,WACA,WACA,QACA,WACA,UACA,OACA,QACA,YACA,SACA,QACA,UACA,UACA,WACA,YACA,YACA,YACA,SACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,SACA,YACA,YACA,YACA,YACA,QACA,OACA,YACA,SACA,UACA,SACA,QACA,WACA,OACA,SACA,YACA,WACA,WACA,SACA,UACA,YACA,YACA,YACA,YACA,YACA,QACA,SACA,WACA,YACA,SACA,SACA,WACA,UACA,YACA,WACA,UACA,UACA,UACA,YACA,WACA,WACA,YACA,SACA,WACA,UACA,YACA,YACA,WACA,YACA,SACA,YACA,WACA,WACA,UACA,YACA,YACA,SACA,YACA,UACA,YACA,YACA,QACA,SACA,WACA,WACA,YACA,WACA,WACA,WACA,YACA,UACA,SACA,WACA,SACA,YACA,UACA,UACA,SACA,YACA,UACA,UACA,OACA,SACA,UACA,SACA,OACA,QACA,UACA,OACA,WACA,SACA,SACA,WACA,UACA,UACA,YACA,QACA,UACA,OACA,UACA,YACA,YACA,UACA,UACA,WACA,SACA,UACA,WACA,SACA,YACA,YACA,UACA,WACA,WACA,MACA,QACA,UACA,SACA,SACA,OACA,OACA,SACA,SACA,WACA,WACA,WACA,WACA,WACA,QACA,QACA,UACA,SACA,UACA,WACA,YACA,WACA,SACA,SACA,QACA,SACA,SACA,WACA,UACA,YACA,QACA,QACA,QACA,QACA,UACA,SACA,WACA,WACA,YACA,UACA,UACA,QACA,WACA,QACA,UACA,SACA,WACA,SACA,SACA,SACA,UACA,OACA,SACA,QACA,WACA,SACA,WACA,WACA,UACA,UACA,YACA,QACA,WACA,QACA,UACA,WACA,WACA,YACA,SACA,UACA,UACA,WACA,MACA,OACA,UACA,UACA,WACA,WACA,YACA,YACA,QACA,UACA,QACA,QACA,YACA,UACA,WACA,WACA,OACA,UACA,YACA,YACA,YACA,WACA,WACA,SACA,QACA,UACA,WACA,SACA,WACA,UACA,YACA,YACA,WACA,UACA,WACA,WACA,WACA,YACA,YACA,WACA,OACA,UACA,SACA,QACA,QACA,SACA,SACA,QACA,QACA,OACA,QACA,QACA,QACA,WACA,OACA,SACA,UACA,QACA,WACA,UACA,UACA,QACA,SACA,UACA,WACA,OACA,MACA,MACA,OACA,QACA,OACA,WACA,SACA,WACA,SACA,WACA,SACA,OACA,OACA,OACA,UACA,WACA,WACA,YACA,SACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,UACA,WACA,YACA,WACA,UACA,WACA,WACA,WACA,SACA,SACA,UACA,WACA,WACA,MACA,QACA,WACA,WACA,UACA,YACA,WACA,YACA,WACA,QACA,QACA,UACA,UACA,YACA,SACA,UACA,QACA,WACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,UACA,WACA,SACA,YACA,WACA,YACA,WACA,UACA,WACA,YACA,WACA,UACA,SACA,WACA,SACA,YACA,WACA,QACA,UACA,UACA,WACA,SACA,SACA,QACA,SACA,WACA,YACA,YACA,WACA,QACA,SACA,UACA,QACA,UACA,YACA,SACA,OACA,QACA,YACA,UACA,WACA,WACA,YACA,SACA,QACA,QACA,SACA,WACA,YACA,WACA,QACA,YACA,SACA,MACA,QACA,MACA,YACA,UACA,QACA,OACA,YACA,WACA,UACA,SACA,SACA,UACA,YACA,SACA,YACA,WACA,OACA,SACA,QACA,SACA,SACA,WACA,UACA,MACA,SACA,UACA,SACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,MACA,WACA,YACA,SACA,UACA,WACA,QACA,OACA,OACA,SACA,OACA,QACA,OACA,SACA,MACA,SACA,UACA,WACA,WACA,QACA,UACA,YACA,SACA,QACA,YACA,WACA,YACA,UACA,YACA,WACA,WACA,SACA,YACA,YACA,YACA,WACA,YACA,UACA,YACA,UACA,UACA,UACA,QACA,QACA,YACA,SACA,UACA,YACA,QACA,OACA,WACA,YACA,WACA,SACA,WACA,SACA,SACA,SACA,QACA,UACA,SACA,WACA,QACA,QACA,SACA,QACA,UACA,UACA,UACA,QACA,YACA,SACA,YACA,UACA,SACA,WACA,YACA,QACA,UACA,QACA,WACA,UACA,WACA,UACA,SACA,UACA,UACA,UACA,UACA,SACA,UACA,SACA,UACA,WACA,WACA,SACA,YACA,YACA,UACA,WACA,QACA,QACA,QACA,UACA,WACA,UACA,OACA,SACA,YACA,UACA,SACA,OACA,OACA,WACA,OACA,UACA,QACA,WACA,WACA,YACA,OACA,UACA,QACA,UACA,OACA,OACA,OACA,QACA,WACA,YACA,QACA,SACA,OACA,SACA,OACA,SACA,WACA,OACA,UACA,SACA,SACA,SACA,OACA,OACA,OACA,WACA,YACA,WACA,YACA,SACA,SACA,WACA,UACA,YACA,WACA,WACA,UACA,WACA,QACA,WACA,WACA,UACA,UACA,UACA,WACA,UACA,SACA,UACA,QACA,WACA,QACA,QACA,UACA,YACA,QACA,QACA,YACA,UACA,UACA,YACA,WACA,SACA,YACA,SACA,YACA,YACA,UACA,QACA,OACA,UACA,WACA,WACA,YACA,SACA,QACA,UACA,WACA,OACA,YACA,OACA,QACA,YACA,WACA,WACA,QACA,UACA,YACA,QACA,YACA,QACA,SACA,WACA,OACA,UACA,OACA,WACA,SACA,QACA,QACA,SACA,WACA,SACA,QACA,SACA,UACA,QACA,QACA,SACA,UACA,QACA,OACA,SACA,WACA,WACA,UACA,UACA,YACA,UACA,WACA,SACA,QACA,YACA,WACA,WACA,QACA,UACA,YACA,QACA,OACA,WACA,QACA,OACA,UACA,UACA,YACA,UACA,QACA,SACA,WACA,OACA,OACA,QACA,QACA,UACA,OACA,SACA,MACA,UACA,WACA,YACA,WACA,UACA,WACA,SACA,SACA,UACA,UACA,MACA,UACA,QACA,OACA,UACA,OACA,SACA,SACA,YACA,SACA,UACA,SACA,UACA,YACA,UACA,WACA,WACA,YACA,WACA,WACA,YACA,YACA,WACA,SACA,UACA,WACA,UACA,WACA,YACA,YACA,YACA,UACA,UACA,WACA,WACA,UACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,YACA,WACA,WACA,YACA,YACA,WACA,WACA,UACA,WACA,SACA,YACA,SACA,QACA,YACA,YACA,UACA,WACA,UACA,YACA,QACA,SACA,WACA,WACA,YACA,WACA,WACA,WACA,YACA,UACA,WACA,YACA,SACA,WACA,WACA,WACA,YACA,WACA,QACA,UACA,WACA,YACA,YACA,YACA,UACA,UACA,UACA,QACA,UACA,OACA,SACA,QACA,UACA,YACA,QACA,SACA,YACA,WACA,UACA,WACA,YACA,OACA,UACA,SACA,QACA,QACA,SACA,WACA,SACA,WACA,SACA,OACA,WACA,WACA,YACA,YACA,YACA,SACA,SACA,YACA,WACA,UACA,WACA,WACA,WACA,YACA,YACA,WACA,WACA,YACA,UACA,WACA,YACA,YACA,UACA,WACA,OACA,OACA,QACA,UACA,YACA,UACA,QACA,UACA,YACA,QACA,SACA,SACA,SACA,UACA,UACA,WACA,WACA,UACA,YACA,QACA,WACA,QACA,SACA,SACA,YACA,QACA,WACA,SACA,UACA,UACA,UACA,UACA,QACA,YACA,WACA,WACA,UACA,WACA,SACA,SACA,WACA,OACA,MACA,OACA,OACA,OACA,QACA,SACA,WACA,SACA,QACA,YACA,WACA,UACA,SACA,YACA,WACA,YACA,WACA,WACA,SACA,SACA,YACA,YACA,SACA,WACA,SACA,OACA,SACA,UACA,WACA,WACA,SACA,SACA,SACA,UACA,SACA,YACA,UACA,QACA,OACA,UACA,OACA,SACA,YACA,MACA,SACA,UACA,WACA,YACA,WACA,YACA,YACA,YACA,SACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,MACA,UACA,QACA,OACA,OACA,MACA,WACA,WACA,WACA,UACA,YACA,YACA,WACA,WACA,WACA,SACA,QACA,OACA,QACA,WACA,SACA,SACA,YACA,WACA,WACA,QACA,YACA,WACA,UACA,WACA,UACA,YACA,WACA,UACA,YACA,WACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,WACA,SACA,SACA,YACA,UACA,WACA,YACA,YACA,WACA,SACA,UACA,YACA,YACA,WACA,UACA,YACA,YACA,QACA,WACA,YACA,WACA,SACA,WACA,YACA,YACA,WACA,UACA,YACA,UACA,WACA,YACA,WACA,UACA,YACA,YACA,YACA,UACA,YACA,SACA,WACA,SACA,SACA,MACA,OACA,SACA,OACA,QACA,MACA,OACA,YACA,WACA,YACA,YACA,WACA,WACA,UACA,WACA,WACA,YACA,YACA,UACA,QACA,UACA,YACA,UACA,OACA,YACA,SACA,QACA,MACA,MACA,SACA,SACA,YACA,UACA,WACA,YACA,SACA,YACA,WACA,MACA,UACA,UACA,SACA,UACA,UACA,WACA,QACA,OACA,QACA,UACA,UACA,OACA,UACA,YACA,OACA,OACA,YACA,UACA,QACA,SACA,SACA,MACA,QACA,SACA,QACA,SACA,WACA,OACA,UACA,UACA,MACA,SACA,YACA,SACA,UACA,OACA,UACA,WACA,WACA,YACA,QACA,OACA,MACA,SACA,WACA,YACA,SACA,UACA,WACA,YACA,WACA,QACA,YACA,WACA,YACA,OACA,SACA,WACA,UACA,QACA,YACA,QACA,UACA,UACA,OACA,SACA,QACA,OACA,WACA,WACA,OACA,SACA,UACA,SACA,UACA,WACA,SACA,QACA,OACA,UACA,YACA,UACA,SACA,WACA,WACA,QACA,WACA,UACA,SACA,QACA,QACA,SACA,WACA,OACA,MACA,OACA,SACA,OACA,WACA,WACA,SACA,OACA,OACA,WACA,WACA,YACA,WACA,OACA,SACA,SACA,WACA,SACA,WACA,UACA,UACA,UACA,OACA,UACA,UACA,YACA,WACA,SACA,UACA,UACA,OACA,SACA,QACA,OACA,UACA,WACA,OACA,QACA,WACA,QACA,QACA,QACA,SACA,UACA,QACA,OACA,UACA,UACA,WACA,YACA,WACA,SACA,SACA,QACA,UACA,WACA,SACA,UACA,SACA,OACA,OACA,QACA,SACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,YACA,YACA,WACA,YACA,WACA,YACA,QACA,UACA,SACA,QACA,SACA,UACA,SACA,OACA,QACA,OACA,OACA,QACA,OACA,QACA,OACA,SACA,WACA,UACA,SACA,WACA,SACA,UACA,UACA,SACA,WACA,SACA,WACA,SACA,WACA,OACA,WACA,OACA,SACA,QACA,SACA,SACA,WACA,UACA,UACA,YACA,OACA,UACA,SACA,YACA,UACA,QACA,OACA,SACA,OACA,OACA,UACA,SACA,UACA,YACA,WACA,SACA,UACA,QACA,WACA,SACA,WACA,YACA,YACA,SACA,UACA,YACA,UACA,UACA,WACA,MACA,OACA,SACA,UACA,UACA,WACA,SACA,WACA,WACA,SACA,QACA,QACA,OACA,OACA,UACA,YACA,QACA,QACA,UACA,WACA,OACA,QACA,WACA,WACA,SACA,SACA,WACA,UACA,OACA,OACA,MACA,UACA,UACA,SACA,OACA,OACA,WACA,YACA,SACA,SACA,SACA,UACA,QACA,SACA,QACA,YACA,UACA,SACA,SACA,YACA,YACA,QACA,UACA,YACA,WACA,YACA,YACA,SACA,WACA,UACA,SACA,YACA,WACA,YACA,UACA,UACA,SACA,QACA,WACA,WACA,YACA,YACA,OACA,QACA,OACA,YACA,OACA,SACA,WACA,SACA,YACA,UACA,YACA,WACA,QACA,YACA,SACA,QACA,YACA,WACA,WACA,SACA,WACA,WACA,QACA,OACA,UACA,YACA,WACA,UACA,SACA,UACA,WACA,QACA,YACA,WACA,YACA,YACA,YACA,UACA,YACA,WACA,WACA,SACA,WACA,UACA,YACA,WACA,WACA,QACA,YACA,SACA,YACA,OACA,OACA,SACA,UACA,YACA,UACA,WACA,UACA,WACA,UACA,YACA,WACA,SACA,SACA,QACA,QACA,YACA,UACA,UACA,UACA,YACA,WACA,YACA,SACA,UACA,UACA,YACA,QACA,UACA,SACA,UACA,QACA,WACA,SACA,SACA,SACA,OACA,MACA,WACA,YACA,UACA,UACA,WACA,QACA,QACA,YACA,YACA,SACA,WACA,SACA,SACA,UACA,WACA,SACA,YACA,SACA,UACA,SACA,QACA,YACA,SACA,YACA,YACA,UACA,SACA,YACA,SACA,UACA,WACA,SACA,UACA,UACA,UACA,YACA,WACA,UACA,WACA,YACA,WACA,WACA,YACA,OACA,SACA,YACA,YACA,SACA,SACA,SACA,SACA,WACA,WACA,WACA,QACA,WACA,WACA,UACA,QACA,SACA,YACA,SACA,UACA,SACA,WACA,WACA,UACA,QACA,SACA,SACA,WACA,SACA,UACA,YACA,SACA,UACA,YACA,WACA,QACA,WACA,OACA,YACA,WACA,WACA,UACA,MACA,YACA,SACA,WACA,WACA,YACA,YACA,YACA,WACA,UACA,UACA,WACA,WACA,WACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,YACA,UACA,WACA,UACA,YACA,QACA,SACA,WACA,SACA,YACA,WACA,UACA,WACA,YACA,YACA,YACA,WACA,MACA,SACA,WACA,UACA,YACA,WACA,WACA,WACA,QACA,YACA,WACA,YACA,YACA,UACA,WACA,SACA,QACA,OACA,WACA,YACA,SACA,WACA,YACA,SACA,YACA,QACA,QACA,YACA,WACA,UACA,WACA,UACA,WACA,QACA,YACA,YACA,QACA,QACA,UACA,OACA,QACA,SACA,QACA,SACA,OACA,OACA,MACA,MACA,WACA,QACA,OACA,SACA,UACA,WACA,WACA,YACA,YACA,SACA,WACA,QACA,YACA,UACA,QACA,QACA,WACA,UACA,YACA,SACA,QACA,YACA,QACA,YACA,WACA,SACA,UACA,YACA,WACA,QACA,QACA,SACA,YACA,QACA,UACA,UACA,SACA,YACA,QACA,UACA,SACA,WACA,OACA,YACA,YACA,SACA,OACA,SACA,SACA,SACA,UACA,YACA,UACA,OACA,QACA,MACA,OACA,OACA,SACA,QACA,YACA,OACA,SACA,SACA,UACA,QACA,SACA,UACA,YACA,WACA,SACA,WACA,UACA,SACA,WACA,WACA,WACA,YACA,OACA,SACA,UACA,SACA,WACA,SACA,WACA,SACA,YACA,SACA,SACA,WACA,WACA,YACA,WACA,YACA,YACA,UACA,UACA,OACA,SACA,OACA,UACA,QACA,OACA,MACA,YACA,SACA,WACA,WACA,SACA,UACA,QACA,OACA,SACA,WACA,WACA,QACA,QACA,SACA,SACA,WACA,YACA,QACA,WACA,QACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,SACA,WACA,UACA,WACA,YACA,UACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,SACA,WACA,WACA,YACA,QACA,SACA,QACA,MACA,MACA,QACA,MACA,YACA,WACA,WACA,SACA,WACA,UACA,WACA,YACA,SACA,YACA,OACA,UACA,YACA,YACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,SACA,YACA,SACA,UACA,YACA,YACA,WACA,WACA,SACA,QACA,SACA,UACA,SACA,UACA,UACA,OACA,MACA,OACA,WACA,OACA,MACA,QACA,WACA,QACA,OACA,UACA,WACA,OACA,WACA,UACA,WACA,UACA,QACA,SACA,WACA,OACA,WACA,QACA,UACA,YACA,UACA,OACA,SACA,OACA,OACA,OACA,OACA,UACA,OACA,OACA,WACA,UACA,YACA,YACA,YACA,WACA,QACA,UACA,WACA,SACA,WACA,WACA,YACA,YACA,MACA,YACA,UACA,QACA,QACA,OACA,QACA,QACA,SACA,UACA,SACA,WACA,WACA,WACA,WACA,UACA,WACA,UACA,WACA,WACA,QACA,WACA,SACA,WACA,WACA,UACA,WACA,SACA,UACA,SACA,UACA,UACA,WACA,WACA,UACA,YACA,YACA,UACA,UACA,SACA,UACA,UACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,WACA,UACA,WACA,SACA,OACA,QACA,OACA,UACA,UACA,WACA,UACA,WACA,WACA,YACA,YACA,WACA,YACA,WACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,UACA,YACA,YACA,YACA,UACA,WACA,WACA,WACA,WACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,YACA,WACA,YACA,WACA,UACA,UACA,WACA,WACA,WACA,YACA,YACA,WACA,UACA,YACA,WACA,YACA,YACA,WACA,YACA,YACA,WACA,WACA,WACA,UACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,WACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,UACA,WACA,WACA,WACA,UACA,YACA,WACA,YACA,MACA,SACA,UACA,YACA,UACA,YACA,SACA,WACA,SACA,QACA,QACA,YACA,UACA,WACA,WACA,WACA,SACA,SACA,UACA,SACA,WACA,UACA,QACA,QACA,SACA,UACA,SACA,YACA,OACA,WACA,YACA,SACA,WACA,WACA,UACA,WACA,SACA,UACA,WACA,QACA,WACA,OACA,YACA,QACA,UACA,WACA,YACA,UACA,YACA,SACA,QACA,YACA,YACA,SACA,QACA,UACA,UACA,WACA,YACA,SACA,UACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,WACA,YACA,SACA,UACA,YACA,SACA,SACA,QACA,UACA,UACA,SACA,WACA,SACA,SACA,UACA,UACA,UACA,SACA,UACA,YACA,SACA,UACA,YACA,QACA,WACA,WACA,UACA,WACA,YACA,WACA,UACA,UACA,UACA,YACA,WACA,WACA,WACA,QACA,SACA,SACA,UACA,SACA,WACA,UACA,QACA,YACA,SACA,WACA,YACA,OACA,WACA,UACA,QACA,YACA,UACA,SACA,YACA,YACA,SACA,WACA,QACA,YACA,WACA,SACA,SACA,UACA,UACA,WACA,SACA,QACA,QACA,SACA,UACA,WACA,UACA,SACA,SACA,QACA,SACA,WACA,WACA,YACA,WACA,WACA,YACA,WACA,UACA,SACA,OACA,SACA,WACA,UACA,SACA,UACA,UACA,YACA,WACA,UACA,YACA,QACA,SACA,UACA,WACA,YACA,MACA,WACA,UACA,QACA,YACA,YACA,YACA,YACA,UACA,YACA,SACA,WACA,UACA,YACA,QACA,OACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,QACA,OACA,YACA,YACA,SACA,YACA,QACA,SACA,WACA,QACA,YACA,SACA,YACA,YACA,QACA,UACA,UACA,SACA,UACA,YACA,SACA,UACA,YACA,QACA,YACA,QACA,SACA,WACA,UACA,UACA,WACA,QACA,UACA,QACA,SACA,UACA,UACA,SACA,WACA,UACA,WACA,WACA,UACA,WACA,YACA,YACA,WACA,WACA,SACA,UACA,YACA,YACA,UACA,WACA,YACA,WACA,UACA,UACA,WACA,UACA,YACA,WACA,QACA,WACA,QACA,SACA,YACA,SACA,WACA,YACA,UACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,UACA,WACA,SACA,OACA,YACA,UACA,QACA,MACA,OACA,OACA,OACA,UACA,UACA,WACA,YACA,SACA,QACA,SACA,QACA,SACA,QACA,SACA,SACA,QACA,SACA,WACA,QACA,OACA,YACA,UACA,YACA,UACA,SACA,OACA,OACA,UACA,OACA,SACA,SACA,QACA,WACA,WACA,UACA,WACA,YACA,OACA,SACA,WACA,WACA,SACA,YACA,WACA,UACA,SACA,WACA,QACA,OACA,SACA,WACA,WACA,SACA,UACA,SACA,UACA,WACA,SACA,SACA,UACA,YACA,UACA,UACA,QACA,SACA,WACA,QACA,UACA,OACA,WACA,YACA,UACA,QACA,SACA,MACA,WACA,SACA,WACA,UACA,WACA,YACA,SACA,UACA,WACA,YACA,UACA,WACA,WACA,UACA,YACA,UACA,SACA,WACA,YACA,UACA,UACA,SACA,YACA,YACA,UACA,YACA,WACA,YACA,YACA,SACA,UACA,WACA,WACA,UACA,WACA,YACA,WACA,UACA,SACA,UACA,SACA,YACA,YACA,YACA,SACA,UACA,YACA,UACA,QACA,UACA,YACA,UACA,YACA,YACA,WACA,UACA,SACA,UACA,UACA,YACA,UACA,UACA,WACA,SACA,YACA,WACA,QACA,SACA,YACA,UACA,UACA,SACA,QACA,WACA,QACA,QACA,QACA,SACA,SACA,WACA,UACA,UACA,YACA,QACA,YACA,WACA,WACA,YACA,QACA,UACA,YACA,UACA,YACA,UACA,WACA,YACA,WACA,WACA,UACA,UACA,UACA,UACA,YACA,YACA,YACA,UACA,WACA,YACA,UACA,YACA,UACA,WACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,WACA,QACA,QACA,YACA,SACA,WACA,YACA,SACA,YACA,WACA,WACA,YACA,WACA,UACA,QACA,UACA,YACA,WACA,SACA,YACA,YACA,WACA,WACA,QACA,WACA,SACA,SACA,WACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,UACA,UACA,WACA,YACA,QACA,SACA,QACA,YACA,QACA,UACA,MACA,UACA,SACA,YACA,SACA,SACA,MACA,OACA,YACA,OACA,UACA,QACA,YACA,OACA,SACA,SACA,QACA,WACA,YACA,YACA,UACA,WACA,OACA,QACA,SACA,QACA,WACA,YACA,WACA,SACA,WACA,YACA,QACA,UACA,WACA,SACA,SACA,UACA,SACA,SACA,WACA,YACA,OACA,QACA,YACA,WACA,UACA,WACA,WACA,YACA,SACA,YACA,UACA,WACA,UACA,SACA,QACA,UACA,OACA,SACA,WACA,UACA,YACA,SACA,QACA,WACA,QACA,WACA,QACA,UACA,YACA,YACA,UACA,UACA,QACA,UACA,UACA,SACA,YACA,YACA,WACA,UACA,SACA,QACA,UACA,UACA,YACA,YACA,YACA,QACA,QACA,QACA,UACA,YACA,QACA,OACA,SACA,YACA,WACA,YACA,QACA,QACA,OACA,SACA,SACA,OACA,SACA,QACA,SACA,WACA,YACA,WACA,YACA,WACA,QACA,SACA,SACA,OACA,OACA,SACA,SACA,UACA,SACA,UACA,UACA,WACA,UACA,SACA,OACA,SACA,QACA,SACA,WACA,OACA,SACA,QACA,YACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,QACA,OACA,SACA,SACA,OACA,UACA,SACA,QACA,SACA,SACA,UACA,YACA,WACA,QACA,YACA,WACA,WACA,UACA,WACA,OACA,YACA,WACA,UACA,YACA,YACA,YACA,WACA,SACA,WACA,WACA,WACA,UACA,YACA,SACA,QACA,UACA,SACA,SACA,UACA,SACA,UACA,UACA,WACA,WACA,SACA,SACA,YACA,SACA,SACA,SACA,SACA,YACA,YACA,UACA,SACA,WACA,UACA,WACA,YACA,UACA,YACA,YACA,SACA,YACA,UACA,YACA,YACA,YACA,SACA,SACA,UACA,SACA,WACA,WACA,SACA,YACA,YACA,UACA,WACA,WACA,YACA,WACA,UACA,UACA,UACA,YACA,YACA,UACA,YACA,SACA,YACA,UACA,WACA,WACA,WACA,YACA,YACA,SACA,SACA,UACA,SACA,WACA,WACA,WACA,WACA,YACA,UACA,UACA,WACA,UACA,UACA,YACA,SACA,YACA,YACA,UACA,SACA,WACA,YACA,SACA,SACA,UACA,UACA,SACA,SACA,SACA,WACA,YACA,WACA,UACA,YACA,UACA,UACA,WACA,YACA,QACA,SACA,SACA,YACA,YACA,UACA,YACA,UACA,YACA,SACA,WACA,UACA,YACA,YACA,UACA,WACA,WACA,QACA,QACA,UACA,UACA,YACA,WACA,WACA,WACA,UACA,QACA,UACA,YACA,UACA,SACA,SACA,SACA,WACA,SACA,YACA,OACA,SACA,SACA,UACA,UACA,WACA,SACA,WACA,WACA,YACA,YACA,QACA,UACA,YACA,SACA,UACA,SACA,YACA,UACA,UACA,UACA,WACA,SACA,WACA,YACA,YACA,WACA,YACA,YACA,UACA,UACA,WACA,WACA,YACA,WACA,SACA,SACA,SACA,WACA,UACA,SACA,UACA,YACA,YACA,UACA,SACA,SACA,WACA,YACA,SACA,WACA,WACA,SACA,WACA,UACA,SACA,UACA,QACA,WACA,SACA,YACA,SACA,YACA,YACA,UACA,UACA,WACA,YACA,YACA,YACA,OACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,UACA,UACA,YACA,UACA,QACA,SACA,WACA,UACA,SACA,WACA,WACA,WACA,WACA,SACA,SACA,QACA,UACA,UACA,YACA,YACA,YACA,WACA,WACA,UACA,WACA,YACA,YACA,YACA,SACA,WACA,WACA,WACA,WACA,SACA,WACA,UACA,WACA,SACA,SACA,WACA,YACA,YACA,SACA,WACA,YACA,SACA,YACA,YACA,UACA,UACA,UACA,UACA,WACA,SACA,SACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YACA,YACA,QACA,SACA,UACA,SACA,UACA,UACA,WACA,QACA,SACA,UACA,UACA,UACA,SACA,UACA,YACA,WACA,WACA,UACA,YACA,YACA,SACA,YACA,SACA,WACA,UACA,YACA,UACA,UACA,WACA,YACA,SACA,SACA,WACA,YACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UACA,QACA,SACA,UACA,OACA,SACA,SACA,WACA,UACA,UACA,WACA,SACA,OACA,SACA,UACA,OACA,UACA,QACA,QACA,UACA,SACA,OACA,OACA,QACA,UACA,OACA,UACA,WACA,WACA,UACA,SACA,WACA,UACA,OACA,SACA,OACA,UACA,UACA,QACA,QACA,YACA,WACA,YACA,YACA,UACA,WACA,SACA,UACA,QACA,UACA,OACA,QACA,WACA,SACA,WACA,SACA,SACA,WACA,YACA,UACA,WACA,YACA,WACA,QACA,QACA,QACA,OACA,OACA,SACA,SACA,OACA,SACA,UACA,UACA,WACA,WACA,WACA,YACA,UACA,YACA,UACA,UACA,QACA,SACA,QACA,SACA,SACA,UACA,SACA,UACA,OACA,SACA,SACA,MACA,SACA,OACA,SACA,WACA,UACA,QACA,YACA,UACA,SACA,UACA,QACA,OACA,SACA,UACA,QACA,OACA,OACA,OACA,MACA,UACA,WACA,YACA,SACA,YACA,SACA,YACA,UACA,WACA,QACA,UACA,SACA,YACA,YACA,SACA,WACA,UACA,OACA,OACA,UACA,QACA,OACA,QACA,OACA,QACA,SACA,WACA,SACA,SACA,QACA,SACA,QACA,OACA,WACA,SACA,UACA,YACA,YACA,OACA,SACA,WACA,WACA,WACA,YACA,SACA,UACA,WACA,UACA,YACA,UACA,SACA,WACA,UACA,UACA,YACA,UACA,YACA,YACA,WACA,QACA,WACA,YACA,OACA,QACA,UACA,YACA,QACA,UACA,YACA,UACA,OACA,YACA,QACA,UACA,WACA,QACA,YACA,YACA,UACA,WACA,WACA,YACA,QACA,QACA,SACA,UACA,QACA,UACA,SACA,QACA,YACA,MACA,UACA,SACA,UACA,WACA,QACA,UACA,WACA,UACA,WACA,OACA,UACA,UACA,WACA,QACA,YACA,SACA,WACA,YACA,SACA,QACA,UACA,YACA,WACA,QACA,YACA,SACA,WACA,YACA,SACA,WACA,YACA,WACA,UACA,UACA,YACA,QACA,QACA,WACA,QACA,QACA,UACA,QACA,SACA,YACA,YACA,SACA,YACA,SACA,UACA,QACA,WACA,SACA,YACA,UACA,WACA,WACA,SACA,WACA,WACA,WACA,YACA,YACA,QACA,UACA,UACA,SACA,WACA,SACA,WACA,YACA,SACA,SACA,UACA,YACA,WACA,WACA,UACA,UACA,WACA,QACA,QACA,WACA,YACA,SACA,UACA,WACA,YACA,YACA,SACA,UACA,SACA,YACA,SACA,UACA,WACA,WACA,QACA,SACA,WACA,WACA,WACA,SACA,WACA,UACA,UACA,UACA,SACA,WACA,YACA,YACA,WACA,OACA,UACA,WACA,WACA,YACA,YACA,UACA,WACA,YACA,SACA,UACA,OACA,SACA,WACA,YACA,YACA,YACA,YACA,WACA,QACA,YACA,SACA,SACA,SACA,WACA,YACA,SACA,SACA,YACA,UACA,WACA,QACA,UACA,UACA,SACA,WACA,UACA,UACA,SACA,WACA,QACA,YACA,YACA,UACA,UACA,WACA,SACA,QACA,SACA,UACA,YACA,UACA,SACA,QACA,QACA,WACA,UACA,YACA,UACA,QACA,QACA,UACA,UACA,QACA,UACA,WACA,QACA,SACA,QACA,UACA,QACA,YACA,UACA,UACA,UACA,YACA,QACA,SACA,OACA,QACA,QACA,QACA,QACA,UACA,SACA,WACA,SACA,SACA,UACA,WACA,YACA,SACA,UACA,SACA,UACA,QACA,UACA,YACA,UACA,QACA,OACA,QACA,YACA,QACA,QACA,WACA,UACA,WACA,WACA,QACA,WACA,YACA,WACA,UACA,UACA,YACA,YACA,UACA,YACA,SACA,YACA,SACA,QACA,QACA,UACA,WACA,WACA,SACA,WACA,UACA,UACA,QACA,UACA,YACA,YACA,WACA,QACA,SACA,WACA,WACA,YACA,WACA,SACA,SACA,SACA,SACA,SACA,UACA,WACA,YACA,SACA,QACA,SACA,WACA,UACA,UACA,YACA,OACA,QACA,OACA,MACA,UACA,WACA,UACA,SACA,SACA,SACA,OACA,UACA,WACA,WACA,SACA,SACA,UACA,OACA,YACA,QACA,OACA,OACA,SACA,YACA,SACA,YACA,SACA,WACA,SACA,UACA,YACA,SACA,UACA,SACA,WACA,WACA,UACA,SACA,UACA,MACA,QACA,SACA,SACA,SACA,UACA,WACA,YACA,UACA,UACA,QACA,UACA,WACA,YACA,UACA,UACA,OACA,SACA,SACA,WACA,SACA,UACA,YACA,WACA,WACA,UACA,SACA,SACA,SACA,OACA,QACA,QACA,QACA,SACA,UACA,UACA,WACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,SACA,YACA,UACA,WACA,WACA,QACA,UACA,WACA,WACA,UACA,QACA,YACA,UACA,OACA,UACA,UACA,WACA,YACA,SACA,QACA,OACA,UACA,QACA,WACA,YACA,UACA,WACA,QACA,UACA,OACA,OACA,QACA,QACA,QACA,SACA,QACA,YACA,SACA,SACA,UACA,QACA,SACA,YACA,UACA,WACA,YACA,WACA,WACA,QACA,WACA,YACA,SACA,OACA,OACA,SACA,WACA,SACA,SACA,UACA,WACA,SACA,OACA,YACA,UACA,SACA,OACA,OACA,QACA,QACA,MACA,QACA,UACA,YACA,UACA,WACA,UACA,QACA,WACA,QACA,YACA,QACA,QACA,QACA,UACA,QACA,OACA,SACA,YACA,YACA,UACA,QACA,UACA,SACA,UACA,SACA,SACA,WACA,YACA,SACA,WACA,QACA,UACA,UACA,OACA,QACA,QACA,SACA,QACA,QACA,SACA,WACA,QACA,QACA,UACA,WACA,SACA,UACA,SACA,QACA,UACA,UACA,QACA,QACA,WACA,YACA,YACA,UACA,YACA,WACA,WACA,YACA,YACA,YACA,WACA,UACA,WACA,WACA,YACA,WACA,QACA,OACA,QACA,UACA,SACA,WACA,QACA,YACA,YACA,WACA,YACA,UACA,WACA,UACA,WACA,SACA,YACA,YACA,WACA,YACA,SACA,QACA,YACA,UACA,WACA,YACA,UACA,WACA,QACA,OACA,SACA,YACA,SACA,SACA,QACA,SACA,QACA,QACA,UACA,SACA,UACA,UACA,WACA,UACA,WACA,QACA,SACA,WACA,YACA,UACA,YACA,WACA,YACA,UACA,WACA,SACA,WACA,WACA,SACA,WACA,WACA,WACA,UACA,WACA,UACA,UACA,WACA,SACA,SACA,YACA,SACA,SACA,UACA,QACA,WACA,SACA,QACA,QACA,QACA,WACA,SACA,SACA,WACA,YACA,UACA,UACA,WACA,SACA,UACA,SACA,QACA,SACA,SACA,SACA,QACA,QACA,QACA,SACA,YACA,YACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,OACA,UACA,WACA,WACA,QACA,SACA,WACA,SACA,WACA,WACA,YACA,SACA,WACA,YACA,YACA,WACA,UACA,YACA,QACA,WACA,WACA,SACA,SACA,SACA,YACA,UACA,YACA,YACA,SACA,QACA,UACA,QACA,QACA,UACA,WACA,WACA,YACA,UACA,WACA,YACA,YACA,YACA,WACA,WACA,UACA,UACA,QACA,QACA,QACA,SACA,WACA,YACA,SACA,UACA,WACA,WACA,YACA,UACA,QACA,WACA,UACA,YACA,UACA,WACA,SACA,WACA,UACA,WACA,UACA,YACA,UACA,UACA,WACA,QACA,QACA,SACA,YACA,SACA,UACA,SACA,UACA,YACA,UACA,QACA,YACA,WACA,WACA,YACA,QACA,QACA,QACA,YACA,WACA,YACA,YACA,UACA,OACA,SACA,UACA,OACA,SACA,UACA,YACA,YACA,WACA,YACA,UACA,OACA,QACA,UACA,UACA,YACA,SACA,WACA,YACA,QACA,YACA,YACA,UACA,WACA,UACA,WACA,WACA,WACA,SACA,WACA,SACA,UACA,YACA,OACA,SACA,QACA,QACA,QACA,QACA,QACA,YACA,YACA,YACA,UACA,QACA,QACA,SACA,QACA,QACA,YACA,YACA,WACA,UACA,UACA,WACA,YACA,WACA,UACA,YACA,YACA,QACA,QACA,QACA,WACA,UACA,WACA,YACA,WACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,UACA,QACA,QACA,SACA,SACA,SACA,WACA,YACA,QACA,SACA,UACA,SACA,WACA,SACA,SACA,SACA,SACA,WACA,SACA,WACA,SACA,SACA,WACA,YACA,WACA,YACA,SACA,YACA,UACA,WACA,QACA,SACA,QACA,UACA,UACA,UACA,WACA,SACA,QACA,UACA,UACA,SACA,QACA,UACA,WACA,SACA,UACA,YACA,QACA,QACA,UACA,UACA,WACA,QACA,SACA,WACA,SACA,UACA,YACA,UACA,WACA,SACA,QACA,YACA,YACA,YACA,UACA,WACA,WACA,WACA,YACA,UACA,WACA,SACA,WACA,UACA,YACA,WACA,YACA,YACA,WACA,SACA,UACA,WACA,YACA,YACA,YACA,UACA,YACA,YACA,UACA,UACA,WACA,YACA,YACA,UACA,WACA,SACA,WACA,WACA,UACA,SACA,SACA,YACA,UACA,YACA,OACA,UACA,SACA,SACA,OACA,WACA,YACA,UACA,SACA,YACA,WACA,QACA,UACA,QACA,WACA,WACA,WACA,SACA,UACA,UACA,UACA,SACA,OACA,SACA,WACA,YACA,SACA,YACA,YACA,YACA,WACA,WACA,WACA,WACA,YACA,YACA,SACA,WACA,SACA,UACA,YACA,UACA,YACA,SACA,WACA,UACA,YACA,YACA,SACA,UACA,WACA,UACA,UACA,UACA,UACA,WACA,UACA,YACA,YACA,WACA,SACA,WACA,UACA,YACA,WACA,QACA,UACA,UACA,WACA,YACA,YACA,OACA,YACA,UACA,YACA,OACA,WACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,SACA,UACA,UACA,YACA,YACA,UACA,WACA,WACA,WACA,UACA,WACA,QACA,QACA,SACA,SACA,UACA,UACA,QACA,SACA,QACA,QACA,QACA,WACA,WACA,YACA,WACA,UACA,UACA,WACA,UACA,WACA,WACA,YACA,YACA,QACA,SACA,UACA,UACA,QACA,WACA,SACA,SACA,YACA,UACA,YACA,UACA,SACA,WACA,QACA,OACA,UACA,WACA,UACA,UACA,WACA,UACA,YACA,MACA,UACA,OACA,SACA,SACA,WACA,OACA,QACA,SACA,WACA,QACA,SACA,OACA,SACA,UACA,UACA,UACA,WACA,UACA,WACA,WACA,UACA,UACA,OACA,YACA,SACA,SACA,UACA,QACA,SACA,SACA,WACA,OACA,SACA,QACA,YACA,UACA,QACA,WACA,SACA,WACA,SACA,QACA,SACA,QACA,OACA,OACA,UACA,YACA,OACA,QACA,QACA,WACA,WACA,UACA,UACA,YACA,QACA,SACA,WACA,UACA,UACA,YACA,WACA,WACA,QACA,UACA,QACA,QACA,SACA,UACA,WACA,WACA,YACA,YACA,UACA,WACA,SACA,QACA,QACA,QACA,WACA,SACA,SACA,WACA,YACA,SACA,SACA,SACA,WACA,SACA,YACA,SACA,WACA,YACA,YACA,UACA,WACA,OACA,QACA,WACA,WACA,OACA,YACA,UACA,QACA,QACA,QACA,SACA,WACA,UACA,OACA,QACA,UACA,UACA,YACA,YACA,WACA,UACA,OACA,SACA,OACA,OACA,QACA,SACA,UACA,YACA,UACA,SACA,WACA,SACA,SACA,WACA,SACA,WACA,OACA,UACA,OACA,SACA,SACA,SACA,UACA,YACA,SACA,SACA,SACA,QACA,UACA,QACA,WACA,UACA,QACA,UACA,YACA,UACA,UACA,WACA,YACA,QACA,UACA,SACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,WACA,UACA,YACA,UACA,UACA,WACA,QACA,QACA,SACA,WACA,WACA,OACA,YACA,WACA,YACA,UACA,QACA,SACA,OACA,UACA,UACA,YACA,SACA,SACA,QACA,WACA,SACA,QACA,WACA,YACA,WACA,UACA,YACA,UACA,UACA,WACA,WACA,WACA,UACA,YACA,SACA,WACA,WACA,UACA,QACA,SACA,YACA,WACA,UACA,YACA,UACA,WACA,WACA,UACA,OACA,SACA,WACA,UACA,UACA,UACA,WACA,WACA,SACA,WACA,UACA,UACA,YACA,SACA,WACA,QACA,SACA,QACA,QACA,UACA,QACA,SACA,YACA,UACA,WACA,WACA,YACA,QACA,MACA,QACA,WACA,UACA,UACA,UACA,MACA,UACA,QACA,SACA,WACA,QACA,SACA,UACA,WACA,WACA,YACA,OACA,SACA,UACA,SACA,SACA,OACA,QACA,OACA,MACA,QACA,QACA,QACA,WACA,SACA,YACA,SACA,QACA,QACA,UACA,YACA,OACA,WACA,QACA,QACA,QACA,YACA,UACA,UACA,WACA,SACA,SACA,UACA,SACA,QACA,OACA,QACA,WACA,YACA,QACA,YACA,WACA,SACA,YACA,SACA,YACA,YACA,WACA,UACA,YACA,YACA,YACA,YACA,YACA,UACA,UACA,UACA,YACA,WACA,SACA,SACA,WACA,WACA,YACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,WACA,YACA,WACA,WACA,WACA,UACA,WACA,WACA,YACA,UACA,YACA,YACA,UACA,UACA,SACA,YACA,YACA,UACA,QACA,SACA,UACA,SACA,YACA,WACA,WACA,YACA,WACA,WACA,WACA,SACA,YACA,YACA,WACA,UACA,UACA,UACA,UACA,YACA,UACA,YACA,WACA,QACA,YACA,UACA,YACA,SACA,YACA,YACA,WACA,WACA,YACA,YACA,WACA,WACA,YACA,WACA,YACA,YACA,UACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,UACA,SACA,YACA,UACA,YACA,WACA,UACA,WACA,UACA,SACA,WACA,SACA,YACA,UACA,WACA,YACA,WACA,YACA,WACA,UACA,YACA,SACA,YACA,YACA,YACA,SACA,WACA,UACA,YACA,UACA,WACA,WACA,YACA,YACA,UACA,WACA,YACA,SACA,YACA,WACA,WACA,YACA,WACA,WACA,WACA,WACA,SACA,UACA,WACA,YACA,YACA,WACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,YACA,WACA,UACA,YACA,SACA,SACA,UACA,WACA,UACA,UACA,YACA,YACA,QACA,YACA,YACA,YACA,YACA,YACA,QACA,WACA,YACA,SACA,WACA,OACA,YACA,WACA,WACA,UACA,SACA,YACA,YACA,UACA,UACA,UACA,WACA,WACA,YACA,UACA,SACA,YACA,YACA,YACA,YACA,UACA,WACA,WACA,QACA,YACA,WACA,WACA,WACA,YACA,YACA,UACA,WACA,WACA,YACA,UACA,SACA,YACA,WACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,UACA,WACA,UACA,YACA,UACA,WACA,YACA,UACA,YACA,WACA,UACA,YACA,YACA,WACA,YACA,SACA,WACA,SACA,YACA,WACA,UACA,WACA,WACA,YACA,WACA,YACA,YACA,YACA,YACA,WACA,SACA,YACA,WACA,UACA,WACA,UACA,YACA,YACA,SACA,SACA,YACA,YACA,YACA,WACA,SACA,YACA,YACA,WACA,SACA,YACA,YACA,UACA,SACA,YACA,SACA,WACA,WACA,SACA,SACA,WACA,UACA,WACA,YACA,YACA,UACA,WACA,WACA,YACA,WACA,WACA,SACA,WACA,YACA,SACA,YACA,YACA,WACA,WACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,WACA,SACA,WACA,WACA,SACA,WACA,WACA,YACA,WACA,WACA,YACA,YACA,WACA,YACA,YACA,WACA,YACA,UACA,YACA,YACA,WACA,WACA,WACA,SACA,UACA,WACA,YACA,UACA,UACA,YACA,WACA,UACA,WACA,WACA,SACA,QACA,QACA,UACA,WACA,WACA,YACA,SACA,YACA,YACA,YACA,YACA,UACA,YACA,SACA,UACA,WACA,UACA,UACA,WACA,SACA,UACA,WACA,WACA,YACA,WACA,YACA,WACA,WACA,YACA,UACA,WACA,YACA,SACA,WACA,YACA,UACA,QACA,YACA,SACA,WACA,YACA,SACA,UACA,YACA,YACA,YACA,SACA,YACA,WACA,UACA,UACA,YACA,YACA,QACA,SACA,UACA,WACA,YACA,SACA,UACA,UACA,WACA,SACA,SACA,SACA,WACA,YACA,SACA,OACA,QACA,UACA,WACA,UACA,SACA,SACA,UACA,SACA,UACA,WACA,UACA,UACA,WACA,WACA,UACA,SACA,UACA,SACA,WACA,SACA,SACA,UACA,QACA,SACA,WACA,UACA,SACA,SACA,YACA,UACA,SACA,QACA,UACA,OACA,YACA,OACA,QACA,QACA,UACA,UACA,UACA,SACA,SACA,QACA,UACA,SACA,SACA,WACA,WACA,WACA,YACA,UACA,YACA,UACA,QACA,SACA,SACA,YACA,QACA,UACA,SACA,SACA,WACA,UACA,YACA,WACA,WACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,SACA,WACA,OACA,QACA,SACA,YACA,SACA,WACA,SACA,WACA,UACA,SACA,YACA,WACA,WACA,YACA,UACA,QACA,QACA,YACA,WACA,UACA,UACA,SACA,QACA,UACA,SACA,YACA,WACA,UACA,OACA,SACA,OACA,UACA,OACA,WACA,YACA,SACA,QACA,OACA,WACA,UACA,QACA,WACA,SACA,UACA,WACA,YACA,WACA,UACA,UACA,YACA,WACA,UACA,UACA,YACA,WACA,SACA,SACA,QACA,QACA,UACA,WACA,QACA,OACA,YACA,UACA,WACA,UACA,UACA,SACA,WACA,UACA,QACA,QACA,WACA,WACA,UACA,WACA,YACA,UACA,YACA,QACA,WACA,WACA,UACA,WACA,QACA,UACA,OACA,WACA,SACA,UACA,UACA,QACA,SACA,UACA,QACA,QACA,SACA,YACA,MACA,QACA,SACA,QACA,QACA,QACA,SACA,QACA,OACA,SACA,OACA,UACA,SACA,SACA,QACA,OACA,UACA,SACA,UACA,SACA,WACA,YACA,YACA,WACA,YACA,UACA,SACA,SACA,YACA,UACA,UACA,WACA,YACA,UACA,OACA,UACA,QACA,QACA,WACA,SACA,OACA,WACA,SACA,OACA,QACA,QACA,WACA,QACA,YACA,SACA,QACA,WACA,UACA,QACA,WACA,UACA,WACA,SACA,MACA,OACA,SACA,QACA,SACA,QACA,QACA,YACA,UACA,OACA,OACA,YACA,WACA,UACA,SACA,WACA,WACA,WACA,WACA,SACA,WACA,SACA,YACA,UACA,SACA,YACA,OACA,OACA,QACA,UACA,OACA,OACA,UACA,SACA,WACA,SACA,OACA,QACA,WACA,SACA,OACA,SACA,OACA,OACA,WACA,QACA,UACA,SACA,SACA,WACA,SACA,MACA,OACA,YACA,YACA,YACA,YACA,YACA,UACA,OACA,OACA,SACA,OACA,QACA,OACA,OACA,UACA,UACA,YACA,QACA,YACA,YACA,QACA,QACA,QACA,MACA,UACA,QACA,SACA,WACA,UACA,WACA,SACA,UACA,UACA,UACA,UACA,QACA,UACA,UACA,YACA,UACA,WACA,UACA,YACA,UACA,OACA,QACA,QACA,MACA,UACA,UACA,OACA,OACA,OACA,WACA,WACA,SACA,WACA,QACA,UACA,OACA,MACA,YACA,UACA,QACA,MACA,SACA,QACA,QACA,OACA,SACA,SACA,OACA,QACA,MACA,UACA,QACA,MACA,WACA,OACA,YACA,QACA,YACA,UACA,UACA,QACA,OACA,MACA,SACA,SACA,OACA,SACA,YACA,YACA,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B,e,mBAAlBA,EAAkB,2E,4JCzBxB,MAAMC,EACX,WAAAp0P,CAAgCspP,GAAA,KAAAA,gBAAAA,CAAyC,CAEzE,aAAmC/hP,GACjC,OAAO,KAAckT,OAAO,CAC1B,gBACA,oBAEA,4BACA,+BACCA,OAA+BtZ,MAAxBxB,KAAK2pP,gBAA+B,KAAsB,KACtE,CAEA,QAAAliP,G,MACsB,QAApB,EAAAzH,KAAK2pP,uBAAe,SAAEyE,cAAc,WACtC,E,iCAfWqG,GAAkB,e,mBAAlBA,EAAkB,2E,yPCFzB5G,EAAY,CAMhB,cACA,yBACA,kBACA,qBACA,yBACA,uBACA,uBACA,iBACA,6BACA,yBAGIvB,EAA2C,CAC/CoI,SAAU,CACR,oBACA,oBACA,wBACA,gCACA,gCACA,6CACA,yBACA,uCACA,sCACG7G,GAEL8G,KAAM,CACJ,oBACA,gBACA,wBACA,gCACA,4BACA,yCACA,yBACA,uCACA,sCACG9G,GAEL+G,MAAO,CACL,oBACA,iBACA,wBACA,gCACA,8BACA,2CACA,yBACA,uCACA,sCACG/G,GAEL96C,QAAS,CACP,oBACA,oBACA,wBACA,0BACA,8BACA,2CACA,yBACA,uCACA,sCACG86C,GAELtB,UAAW,CACT,oBACA,iBACA,uBACA,0BACA,yBACA,2CACA,yBACA,sCACA,mCACA,gCACA,yCACGsB,GAEL/6C,OAAQ,CACN,oBACA,kBACA,uBACA,0BACA,yBACA,2CACA,yBACA,sCACA,mCACA,iCACA,yCACG+6C,GAELgH,MAAO,CACL,oBACA,gBACA,wBACA,gCACA,4BACA,yCACA,uCACA,sCACGhH,GAELE,SAAU,IAKN+G,EAA0C,CAC9CniD,QAAS,CAAC,YAAa,aACvBD,MAAO,CAAC,kBAAmB,eAAgB,WAWtC,MAAMqiD,EAOX,aAA0BntP,G,MACxB,MAAO,CACL,mBACA,YACA,kBACA,aACA,gBACA,wBACA,yBAECkT,OAAOwxO,EAAsB,QAAf,EAAAtsP,KAAK0mJ,kBAAU,QAAI,SACjC5rI,OAAOg6O,EAAM90P,KAAK+tB,MACvB,CAEA,aAAIo0L,GACF,MAAO,CAACniN,KAA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","sources":["webpack://@bitwarden/web-vault/webpack/runtime/chunk loaded","webpack://@bitwarden/web-vault/webpack/runtime/create fake namespace object","webpack://@bitwarden/web-vault/webpack/runtime/load script","webpack://@bitwarden/web-vault/./src/app/admin-console/core/policy-list.service.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/core/core-organization.module.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/core/services/group/responses/group.response.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/core/views/group.view.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/core/services/group/requests/group.request.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/core/services/group/requests/organization-group-bulk.request.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/core/services/group/group.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/abstractions/organization-user/requests/organization-user-update.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/abstractions/organization-user/requests/organization-user-invite.request.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/core/views/organization-user-admin-view.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/core/services/user-admin.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/view/view.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/core/views/collection-access-selection.view.ts","webpack://@bitwarden/web-vault/../../libs/components/src/navigation/nav-divider.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/navigation/nav-divider.component.html","webpack://@bitwarden/web-vault/./src/app/layouts/org-switcher/org-switcher.component.html","webpack://@bitwarden/web-vault/./src/app/layouts/org-switcher/org-switcher.component.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/icons/admin-console-logo.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/layouts/organization-layout.component.html","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/layouts/organization-layout.component.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/request/organization-verify-delete-recover.request.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/manage/verify-recover-delete-org.component.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/manage/verify-recover-delete-org.component.html","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/members/services/organization-user-reset-password/organization-user-reset-password.service.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/policies/policies.module.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/request/policy.request.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/policies/base-policy.component.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/policies/disable-send.component.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/policies/disable-send.component.html","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/policies/master-password.component.html","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/policies/master-password.component.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/policies/password-generator.component.html","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/policies/password-generator.component.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/policies/personal-ownership.component.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/policies/personal-ownership.component.html","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/policies/require-sso.component.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/policies/require-sso.component.html","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/policies/reset-password.component.html","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/policies/reset-password.component.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/policies/send-options.component.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/policies/send-options.component.html","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/policies/single-org.component.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/policies/single-org.component.html","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/policies/two-factor-authentication.component.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/policies/two-factor-authentication.component.html","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/policies/policy-edit.component.html","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/policies/policy-edit.component.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/policies/policies.component.html","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/policies/policies.component.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/settings/components/delete-organization-dialog.component.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/settings/components/delete-organization-dialog.component.html","webpack://@bitwarden/web-vault/../../libs/angular/src/utils/form-selection-list.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/shared/components/access-selector/user-type.pipe.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/shared/components/access-selector/access-selector.component.html","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/shared/components/access-selector/access-selector.component.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/shared/components/access-selector/access-selector.models.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/shared/components/access-selector/access-selector.module.ts","webpack://@bitwarden/web-vault/./src/app/auth/emergency-access/emergency-access.module.ts","webpack://@bitwarden/web-vault/./src/app/auth/emergency-access/enums/emergency-access-status-type.ts","webpack://@bitwarden/web-vault/./src/app/auth/emergency-access/response/emergency-access.response.ts","webpack://@bitwarden/web-vault/./src/app/auth/emergency-access/services/emergency-access-api.service.ts","webpack://@bitwarden/web-vault/./src/app/auth/emergency-access/request/emergency-access-accept.request.ts","webpack://@bitwarden/web-vault/./src/app/auth/emergency-access/request/emergency-access-confirm.request.ts","webpack://@bitwarden/web-vault/./src/app/auth/emergency-access/request/emergency-access-invite.request.ts","webpack://@bitwarden/web-vault/./src/app/auth/emergency-access/request/emergency-access-password.request.ts","webpack://@bitwarden/web-vault/./src/app/auth/emergency-access/request/emergency-access-update.request.ts","webpack://@bitwarden/web-vault/./src/app/auth/emergency-access/services/emergency-access.service.ts","webpack://@bitwarden/web-vault/./src/app/auth/guards/deep-link.guard.ts","webpack://@bitwarden/web-vault/./src/app/auth/key-rotation/user-key-rotation-api.service.ts","webpack://@bitwarden/web-vault/./src/app/auth/key-rotation/user-key-rotation.module.ts","webpack://@bitwarden/web-vault/./src/app/auth/key-rotation/request/update-key.request.ts","webpack://@bitwarden/web-vault/./src/app/auth/key-rotation/user-key-rotation.service.ts","webpack://@bitwarden/web-vault/./src/app/auth/register-form/register-form.module.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/account/danger-zone.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/account/danger-zone.component.html","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/update-profile.request.ts","webpack://@bitwarden/web-vault/./src/app/components/selectable-avatar.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/account/change-avatar.component.html","webpack://@bitwarden/web-vault/./src/app/auth/settings/account/change-avatar.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/account/profile.component.html","webpack://@bitwarden/web-vault/./src/app/auth/settings/account/profile.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/security/api-key.component.html","webpack://@bitwarden/web-vault/./src/app/auth/settings/security/api-key.component.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/two-factor-provider.request.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/two-factor-base.component.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/update-two-factor-duo.request.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/two-factor-duo.component.html","webpack://@bitwarden/web-vault/./src/app/auth/settings/two-factor-duo.component.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/update-two-factor-authenticator.request.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/two-factor-authenticator.component.html","webpack://@bitwarden/web-vault/./src/app/auth/settings/two-factor-authenticator.component.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/update-two-factor-email.request.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/two-factor-email.component.html","webpack://@bitwarden/web-vault/./src/app/auth/settings/two-factor-email.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/two-factor-recovery.component.html","webpack://@bitwarden/web-vault/./src/app/auth/settings/two-factor-recovery.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/two-factor-verify.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/two-factor-verify.component.html","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/update-two-factor-web-authn-delete.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/update-two-factor-web-authn.request.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/two-factor-webauthn.component.html","webpack://@bitwarden/web-vault/./src/app/auth/settings/two-factor-webauthn.component.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/update-two-factor-yubio-otp.request.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/two-factor-yubikey.component.html","webpack://@bitwarden/web-vault/./src/app/auth/settings/two-factor-yubikey.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/two-factor-setup.component.html","webpack://@bitwarden/web-vault/./src/app/auth/settings/two-factor-setup.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/shared/components/user-verification/user-verification.module.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/components/user-verification-prompt.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/shared/components/user-verification/user-verification-prompt.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/shared/components/user-verification/user-verification-prompt.component.html","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/components/user-verification.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/shared/components/user-verification/user-verification.component.html","webpack://@bitwarden/web-vault/./src/app/auth/shared/components/user-verification/user-verification.component.ts","webpack://@bitwarden/web-vault/./src/app/billing/shared/adjust-payment-dialog.component.ts","webpack://@bitwarden/web-vault/./src/app/billing/shared/adjust-payment-dialog.component.html","webpack://@bitwarden/web-vault/../../libs/common/src/models/request/storage.request.ts","webpack://@bitwarden/web-vault/./src/app/billing/shared/adjust-storage.component.ts","webpack://@bitwarden/web-vault/./src/app/billing/shared/adjust-storage.component.html","webpack://@bitwarden/web-vault/../../libs/common/src/models/request/verify-bank.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/models/request/bit-pay-invoice.request.ts","webpack://@bitwarden/web-vault/./src/app/billing/shared/add-credit-dialog.component.ts","webpack://@bitwarden/web-vault/./src/app/billing/shared/add-credit-dialog.component.html","webpack://@bitwarden/web-vault/./src/app/billing/shared/payment-method.component.html","webpack://@bitwarden/web-vault/./src/app/billing/shared/payment-method.component.ts","webpack://@bitwarden/web-vault/./src/app/billing/shared/billing-shared.module.ts","webpack://@bitwarden/web-vault/./src/app/billing/shared/payment-method-warnings/payment-method-warnings.module.ts","webpack://@bitwarden/web-vault/./src/app/billing/shared/payment-method-warnings/payment-method-warnings.component.html","webpack://@bitwarden/web-vault/./src/app/billing/shared/payment-method-warnings/payment-method-warnings.component.ts","webpack://@bitwarden/web-vault/./src/app/billing/shared/payment.component.html","webpack://@bitwarden/web-vault/./src/app/billing/shared/payment.component.ts","webpack://@bitwarden/web-vault/./src/app/layouts/secrets-manager-logo.ts","webpack://@bitwarden/web-vault/./src/app/billing/shared/sm-subscribe.component.html","webpack://@bitwarden/web-vault/./src/app/billing/shared/sm-subscribe.component.ts","webpack://@bitwarden/web-vault/./src/app/billing/shared/tax-info.component.html","webpack://@bitwarden/web-vault/./src/app/billing/shared/tax-info.component.ts","webpack://@bitwarden/web-vault/./src/app/common/base.accept.component.ts","webpack://@bitwarden/web-vault/./src/app/components/dynamic-avatar.component.ts","webpack://@bitwarden/web-vault/./src/app/components/environment-selector/environment-selector.module.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/abstractions/organization-domain/org-domain.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/enums/sso.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/response/api-key.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/api/sso-config.api.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/response/organization-sso.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/models/response/billing.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/models/response/plan.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/response/organization.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/models/response/subscription.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/models/response/organization-subscription.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/response/profile-organization.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/response/profile-provider-organization.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/response/profile-provider.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/response/profile.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/models/response/payment.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/models/response/tax-info.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/response/organization-api-key-information.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/response/organization-auto-enroll-status.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/response/keys.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/response/organization-keys.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/data/organization.data.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/services/organization/organization.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/abstractions/organization-domain/responses/organization-domain-sso-details.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/abstractions/organization-domain/responses/organization-domain.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/services/organization-domain/requests/organization-domain-sso-details.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/services/organization-management-preferences/default-organization-management-preferences.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/abstractions/organization-user/responses/organization-user.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/abstractions/organization-user/responses/organization-user-bulk.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/abstractions/organization-user/responses/organization-user-bulk-public-key.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/services/organization-user/requests/organization-user-bulk.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/domain/reset-password-policy-options.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/services/policy/policy.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/response/provider/provider.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/domain/provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/services/provider.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/abstractions/user-verification/user-verification-api.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/abstractions/webauthn/webauthn-login-api.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/account.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/response/notification.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/request/update-avatar.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/avatar.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/update-devices-trust.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/device-trust.service.implementation.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/abstractions/devices/views/device.view.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/abstractions/devices/responses/device.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/response/protected-device.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/devices/requests/trusted-device-keys.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/kdf-config.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/key-connector-user-key.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/set-key-connector-key.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/key-connector.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/master-password/master-password.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/sso-login.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/token.state.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/token.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/verify-otp.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/view/webauthn-login/webauthn-login-credential-assertion.view.ts","webpack://@bitwarden/web-vault/../../libs/common/src/autofill/constants/index.ts","webpack://@bitwarden/web-vault/../../libs/common/src/autofill/services/autofill-settings.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/autofill/services/badge-settings.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/services/account/billing-account-profile-state.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/models/response/organization-billing-metadata.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/models/response/organization-billing-status.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/models/response/masked-payment-method.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/models/response/payment-information.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/models/response/provider-subscription-response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/models/billing-keys.state.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/abstractions/config/config-api.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/abstractions/file-upload/file-upload.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/abstractions/key-generation.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/abstractions/storage.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/factories/account-factory.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/factories/global-state-factory.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/factories/state-factory.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/messaging/message.listener.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/messaging/helpers.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/messaging/subject-message.sender.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/models/domain/global-state.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/app-id.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/models/response/server-config.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/abstractions/config/server-config.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/models/data/server-config.data.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/config/default-config.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/domain/encrypted-organization-key.ts","webpack://@bitwarden/web-vault/../../libs/common/src/services/vault-timeout/vault-timeout-settings.state.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/key-state/org-keys.state.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/key-state/provider-keys.state.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/key-state/user-key.state.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/models/domain/encrypted-object.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/cryptography/encrypt.service.implementation.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/cryptography/get-class-initializer.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/cryptography/multithread-encrypt.service.implementation.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/default-environment.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/file-upload/azure-file-upload.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/file-upload/bitwarden-file-upload.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migration-builder.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrator.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/10-move-ever-had-user-key-to-state-providers.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/11-move-org-keys-to-state-providers.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/12-move-environment-state-to-providers.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/13-move-provider-keys-to-state-providers.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/14-move-biometric-client-key-half-state-to-providers.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/15-move-folder-state-to-state-provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/16-move-last-sync-to-state-provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/17-move-enable-passkeys-to-state-providers.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/18-move-autofill-settings-to-state-providers.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/19-migrate-require-password-on-start.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/20-move-private-key-to-state-providers.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/21-move-collections-state-to-state-provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/22-move-collapsed-groupings-to-state-provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/23-move-biometric-prompts-to-state-providers.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/24-move-sm-onboarding-key-to-state-providers.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/25-move-clear-clipboard-to-autofill-settings-state-provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/26-revert-move-last-sync-to-state-provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/27-move-badge-settings-to-state-providers.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/28-move-biometric-unlock-to-state-providers.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/29-move-user-notification-settings-to-state-provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/30-move-policy-state-to-state-provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/31-move-enable-context-menu-to-autofill-settings-state-provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/32-move-preferred-language.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/33-move-app-id-to-state-providers.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/34-move-domain-settings-to-state-providers.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/35-move-theme-to-state-providers.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/36-move-show-card-and-identity-to-state-provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/37-move-avatar-color-to-state-providers.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/38-migrate-token-svc-to-state-provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/39-move-billing-account-profile-to-state-providers.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/4-remove-ever-been-unlocked.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/40-move-organization-state-to-state-provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/41-move-event-collection-to-state-provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/42-move-enable-favicon-to-domain-settings-state-provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/43-move-auto-confirm-finger-prints-to-state-provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/44-move-user-decryption-options-to-state-provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/45-merge-environment-state.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/46-delete-orphaned-biometric-prompt-data.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/47-move-desktop-settings.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/48-move-ddg-to-state-provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/49-move-account-server-configs.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/5-add-key-type-to-org-keys.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/50-move-key-connector-to-state-provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/51-move-remembered-email-to-state-providers.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/52-delete-installed-version.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/53-migrate-device-trust-svc-to-state-providers.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/54-move-encrypted-sends.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/55-move-master-key-state-to-provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/56-move-auth-requests.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/57-move-cipher-service-to-state-provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/58-remove-refresh-token-migrated-state-provider-flag.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/59-move-kdf-config-to-state-provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/6-remove-legacy-etm-key.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/60-known-accounts.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/61-move-pin-state-to-providers.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/62-migrate-vault-timeout-settings-svc-to-state-provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/63-migrate-password-settings.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/64-migrate-generator-history.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/65-migrate-forwarder-settings.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/7-move-biometric-auto-prompt-to-account.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/8-move-state-version.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/9-move-browser-settings-to-global.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrations/min-version.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migrate.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/migration-builder.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/state-migrations/migration-helper.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/migration-runner.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/models/domain/state.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/state.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/storage-service.provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/user-auto-unlock-key.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/models/domain/decrypt-parameters.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/user-state.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/implementations/default-active-user-state.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/implementations/default-derived-state.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/state-update-options.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/implementations/util.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/implementations/state-base.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/implementations/default-global-state.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/implementations/default-single-user-state.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/response/organization-connection.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/response/organization-export.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/response/organization-sponsorship-sync-status.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/response/provider/provider-organization.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/response/provider/provider-user-bulk-public-key.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/response/provider/provider-user-bulk.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/response/provider/provider-user.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/response/auth-request.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/response/device-verification.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/response/key-connector-user-key.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/response/prelogin.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/response/register.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/response/sso-pre-validate.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/response/two-factor-authenticator.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/response/two-factor-duo.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/response/two-factor-email.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/response/two-factor-provider.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/response/two-factor-recover.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/response/two-factor-yubi-key.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/models/response/billing-history.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/models/response/billing-payment.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/models/response/tax-rate.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/request/collection-bulk-delete.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/response/breach-account.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/response/global-domain.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/response/domains.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/response/event.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/response/user-key.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/response/attachment-upload-data.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/response/optional-cipher.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/models/api/send-file.api.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/models/api/send-text.api.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/models/response/send.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/response/folder.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/response/sync.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/services/audit.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/misc/throttle.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/data/event.data.ts","webpack://@bitwarden/web-vault/../../libs/common/src/services/event/key-definitions.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/request/event.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/services/search.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/services/vault-timeout/vault-timeout.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/default-generator.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/state/buffered-state.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/state/data-packer.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/state/padded-data-packer.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/state/secret-state.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/state/user-encryptor.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/state/user-key-encryptor.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/abstractions/generator-history.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/history/legacy-password-history-decryptor.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/history/local-generator-history.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/navigation/generator-navigation.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/navigation/generator-navigation-evaluator.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/navigation/generator-navigation-policy.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/navigation/default-generator-navigation.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/passphrase/passphrase-generator-policy.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/passphrase/passphrase-generator-strategy.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/legacy-password-generation.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/abstractions/generator-strategy.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/username/forwarder-generator-strategy.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/username/options/constants.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/username/forwarders/addy-io.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/username/forwarders/duck-duck-go.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/username/forwarders/fastmail.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/username/forwarders/firefox-relay.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/username/forwarders/forward-email.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/username/forwarders/simple-login.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/legacy-username-generation.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/models/data/send-file.data.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/models/data/send-text.data.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/models/data/send.data.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/models/request/send.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/models/response/send-access.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/models/response/send-file-download-data.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/models/response/send-file-upload-data.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/services/key-definitions.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/services/send-state.provider.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/models/request/send-with-id.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/abstractions/file-upload/cipher-file-upload.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/misc/sequentialize.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/domain/sorted-ciphers-cache.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/request/cipher-bulk-move.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/request/cipher-bulk-restore.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/request/cipher-bulk-share.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/request/cipher-bulk-update-collections.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/request/cipher-create.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/request/cipher-partial.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/request/cipher-share.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/services/key-state/ciphers.state.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/services/cipher.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/services/collection.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/data/folder.data.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/services/key-state/folder.state.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/data/provider.data.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/sync/core-sync.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/services/sync/sync.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/services/totp.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/services/key-state/vault-settings.state.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/platform/services/logging-error-handler.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/platform/services/theming/angular-theming.service.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/services/jslib-services.module.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/auth.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/file-upload/file-upload.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/services/file-upload/cipher-file-upload.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/services/folder/folder.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/services/folder/folder-api.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/account-api.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/key-generation.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/crypto.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/misc/convert-values.ts","webpack://@bitwarden/web-vault/../../libs/common/src/services/api.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/services/send.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/services/send-state.provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/services/send-api.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/default-broadcaster.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/services/vault-timeout/vault-timeout-settings.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/noop-notifications.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/services/notifications.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/web-crypto-function.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/services/event/event-upload.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/services/event/event-collection.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/services/policy/policy-api.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/user-verification/user-verification.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/types/verification.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/services/organization-user/organization-user.service.implementation.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/password-reset-enrollment.service.implementation.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/platform/services/form-validation-errors.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/user-verification/user-verification-api.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/services/organization/organization-api.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/abstractions/sync/sync-notifier.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/services/sync/sync-notifier.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/config/config-api.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/anonymous-hub.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/validation.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/services/organization-domain/org-domain.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/services/organization-domain/org-domain-api.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/devices-api.service.implementation.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/devices/devices.service.implementation.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/webauthn-login/webauthn-login-prf-crypto.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/webauthn-login/webauthn-login-api.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/webauthn-login/webauthn-login.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/implementations/default-global-state.provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/implementations/default-active-user-state.provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/implementations/default-single-user-state.provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/implementations/default-derived-state.provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/implementations/default-state.provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/services/organization-billing.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/abstractions/vault-settings/vault-settings.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/services/vault-settings/vault-settings.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/services/billing-api.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/services/payment-method-warnings.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/services/provider/provider-api.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/abstractions/payment-processors/braintree.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/services/payment-processors/braintree.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/abstractions/payment-processors/stripe.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/services/payment-processors/stripe.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/memory-storage.service.ts","webpack://@bitwarden/web-vault/./src/app/core/html-storage.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/translation.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/i18n.service.ts","webpack://@bitwarden/web-vault/./src/translation-constants.ts","webpack://@bitwarden/web-vault/./src/app/platform/web-environment.service.ts","webpack://@bitwarden/web-vault/./src/app/platform/web-migration-runner.ts","webpack://@bitwarden/web-vault/./src/app/platform/window-storage.service.ts","webpack://@bitwarden/web-vault/./src/app/core/event.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/container.service.ts","webpack://@bitwarden/web-vault/./src/app/core/init.service.ts","webpack://@bitwarden/web-vault/./src/app/core/modal.service.ts","webpack://@bitwarden/web-vault/./src/app/core/state/account.ts","webpack://@bitwarden/web-vault/./src/app/core/state/state.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/abstractions/file-download/file-download.builder.ts","webpack://@bitwarden/web-vault/./src/app/core/web-file-download.service.ts","webpack://@bitwarden/web-vault/./src/app/core/web-platform-utils.service.ts","webpack://@bitwarden/web-vault/./src/app/core/core.module.ts","webpack://@bitwarden/web-vault/./src/app/core/state/global-state.ts","webpack://@bitwarden/web-vault/./src/app/core/i18n.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/storage/memory-storage.service.ts","webpack://@bitwarden/web-vault/./src/app/platform/web-storage-service.provider.ts","webpack://@bitwarden/web-vault/./src/app/core/router.service.ts","webpack://@bitwarden/web-vault/./src/app/layouts/product-switcher/product-switcher-content.component.html","webpack://@bitwarden/web-vault/./src/app/layouts/product-switcher/product-switcher-content.component.ts","webpack://@bitwarden/web-vault/./src/app/layouts/product-switcher/product-switcher.component.ts","webpack://@bitwarden/web-vault/./src/app/layouts/product-switcher/product-switcher.component.html","webpack://@bitwarden/web-vault/./src/app/layouts/header/header.module.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/services/unassigned-items-banner.api.service.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/services/unassigned-items-banner.service.ts","webpack://@bitwarden/web-vault/./src/app/layouts/header/web-header.component.html","webpack://@bitwarden/web-vault/./src/app/layouts/header/web-header.component.ts","webpack://@bitwarden/web-vault/./src/app/layouts/product-switcher/navigation-switcher/navigation-switcher.component.html","webpack://@bitwarden/web-vault/./src/app/layouts/product-switcher/navigation-switcher/navigation-switcher.component.ts","webpack://@bitwarden/web-vault/./src/app/layouts/product-switcher/product-switcher.module.ts","webpack://@bitwarden/web-vault/./src/app/layouts/product-switcher/shared/product-switcher.service.ts","webpack://@bitwarden/web-vault/./src/app/layouts/toggle-width.component.ts","webpack://@bitwarden/web-vault/./src/app/layouts/password-manager-logo.ts","webpack://@bitwarden/web-vault/./src/app/layouts/user-layout.component.html","webpack://@bitwarden/web-vault/./src/app/layouts/user-layout.component.ts","webpack://@bitwarden/web-vault/./src/app/shared/components/account-fingerprint/account-fingerprint.component.html","webpack://@bitwarden/web-vault/./src/app/shared/components/account-fingerprint/account-fingerprint.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/security/change-kdf/change-kdf.module.ts","webpack://@bitwarden/web-vault/./src/app/shared/loose-components.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/avatar/avatar.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/badge-list/badge-list.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/color-password/color-password.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/tabs/tabs.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/toggle-group/toggle-group.module.ts","webpack://@bitwarden/web-vault/./src/app/shared/locales.ts","webpack://@bitwarden/web-vault/./src/app/shared/shared.module.ts","webpack://@bitwarden/web-vault/./src/app/core/guards/has-premium.guard.ts","webpack://@bitwarden/web-vault/./src/app/tools/reports/pages/breach-report.component.html","webpack://@bitwarden/web-vault/./src/app/tools/reports/pages/breach-report.component.ts","webpack://@bitwarden/web-vault/./src/app/tools/reports/icons/report-breach.icon.ts","webpack://@bitwarden/web-vault/./src/app/tools/reports/icons/report-exposed-passwords.icon.ts","webpack://@bitwarden/web-vault/./src/app/tools/reports/icons/report-inactive-two-factor.icon.ts","webpack://@bitwarden/web-vault/./src/app/tools/reports/icons/report-reused-passwords.icon.ts","webpack://@bitwarden/web-vault/./src/app/tools/reports/icons/report-unsecured-websites.icon.ts","webpack://@bitwarden/web-vault/./src/app/tools/reports/icons/report-weak-passwords.icon.ts","webpack://@bitwarden/web-vault/./src/app/tools/reports/reports.ts","webpack://@bitwarden/web-vault/./src/app/tools/reports/shared/reports-shared.module.ts","webpack://@bitwarden/web-vault/./src/app/tools/reports/pages/reports-home.component.ts","webpack://@bitwarden/web-vault/./src/app/tools/reports/pages/reports-home.component.html","webpack://@bitwarden/web-vault/./src/app/tools/reports/reports-layout.component.html","webpack://@bitwarden/web-vault/./src/app/tools/reports/reports-layout.component.ts","webpack://@bitwarden/web-vault/./src/app/tools/reports/reports-routing.module.ts","webpack://@bitwarden/web-vault/./src/app/tools/reports/reports.module.ts","webpack://@bitwarden/web-vault/./src/app/tools/reports/pages/cipher-report.component.ts","webpack://@bitwarden/web-vault/./src/app/tools/reports/pages/exposed-passwords-report.component.html","webpack://@bitwarden/web-vault/./src/app/tools/reports/pages/exposed-passwords-report.component.ts","webpack://@bitwarden/web-vault/./src/app/tools/reports/pages/inactive-two-factor-report.component.html","webpack://@bitwarden/web-vault/./src/app/tools/reports/pages/inactive-two-factor-report.component.ts","webpack://@bitwarden/web-vault/./src/app/tools/reports/pages/reused-passwords-report.component.html","webpack://@bitwarden/web-vault/./src/app/tools/reports/pages/reused-passwords-report.component.ts","webpack://@bitwarden/web-vault/./src/app/tools/reports/pages/unsecured-websites-report.component.html","webpack://@bitwarden/web-vault/./src/app/tools/reports/pages/unsecured-websites-report.component.ts","webpack://@bitwarden/web-vault/./src/app/tools/reports/pages/weak-passwords-report.component.html","webpack://@bitwarden/web-vault/./src/app/tools/reports/pages/weak-passwords-report.component.ts","webpack://@bitwarden/web-vault/./src/app/tools/reports/shared/models/report-variant.ts","webpack://@bitwarden/web-vault/./src/app/tools/reports/shared/report-card/report-card.component.html","webpack://@bitwarden/web-vault/./src/app/tools/reports/shared/report-card/report-card.component.ts","webpack://@bitwarden/web-vault/./src/app/tools/reports/shared/report-list/report-list.component.html","webpack://@bitwarden/web-vault/./src/app/tools/reports/shared/report-list/report-list.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/components/collection-dialog/collection-dialog.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/components/collection-dialog/collection-dialog.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/form-field/bit-validators/forbidden-characters.validator.ts","webpack://@bitwarden/web-vault/./src/app/vault/components/collection-dialog/collection-dialog.module.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/directives/not-premium.directive.ts","webpack://@bitwarden/web-vault/./src/app/vault/components/premium-badge.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/components/vault-items/vault-items.component.html","webpack://@bitwarden/web-vault/./src/app/vault/components/vault-items/vault-items.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/pipes/get-collection-name.pipe.ts","webpack://@bitwarden/web-vault/./src/app/vault/org-vault/collection-badge/collection-name-badge.component.html","webpack://@bitwarden/web-vault/./src/app/vault/org-vault/collection-badge/collection-name.badge.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/components/vault-items/vault-cipher-row.component.html","webpack://@bitwarden/web-vault/./src/app/vault/components/vault-items/vault-cipher-row.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/org-vault/group-badge/group-name-badge.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/org-vault/group-badge/group-name-badge.component.html","webpack://@bitwarden/web-vault/./src/app/vault/components/vault-items/vault-collection-row.component.html","webpack://@bitwarden/web-vault/./src/app/vault/components/vault-items/vault-collection-row.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/components/vault-items/vault-items.module.ts","webpack://@bitwarden/web-vault/./src/app/vault/core/bulk-collection-access.request.ts","webpack://@bitwarden/web-vault/./src/app/vault/core/collection-admin.service.ts","webpack://@bitwarden/web-vault/./src/app/vault/core/views/collection-admin.view.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/vault/components/add-edit-custom-fields.component.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/directives/true-false-value.directive.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/add-edit-custom-fields.component.html","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/add-edit-custom-fields.component.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/vault/components/add-edit.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/add-edit.component.html","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/add-edit.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/attachments.component.html","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/attachments.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/bulk-action-dialogs/bulk-delete-dialog/bulk-delete-dialog.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/bulk-action-dialogs/bulk-delete-dialog/bulk-delete-dialog.component.html","webpack://@bitwarden/web-vault/../../libs/angular/src/admin-console/components/collections.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/collections.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/collections.component.html","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/organization-badge/organization-badge.module.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/platform/pipes/ellipsis.pipe.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/organization-badge/organization-name-badge.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/organization-badge/organization-name-badge.component.html","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/pipes/get-organization-name.pipe.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/pipes/pipes.module.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/users/enroll-master-password-reset.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-filter/components/link-sso.directive.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-filter/components/organization-options.component.html","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-filter/components/organization-options.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-filter/components/vault-filter.component.html","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-filter/components/vault-filter.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-filter/services/abstractions/vault-filter.service.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-filter/shared/models/routed-vault-filter-bridge.model.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-filter/services/routed-vault-filter-bridge.service.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-filter/services/routed-vault-filter.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/services/key-state/collapsed-groupings.state.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-filter/services/vault-filter.service.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-filter/shared/components/vault-filter-section.component.html","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-filter/shared/components/vault-filter-section.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-filter/shared/models/filter-function.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-filter/shared/models/routed-vault-filter.model.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-filter/shared/models/vault-filter.model.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-filter/shared/vault-filter-shared.module.ts","webpack://@bitwarden/web-vault/./src/app/vault/org-vault/add-edit.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/org-vault/collection-badge/collection-badge.module.ts","webpack://@bitwarden/web-vault/./src/app/vault/org-vault/group-badge/group-badge.module.ts","webpack://@bitwarden/web-vault/./src/app/vault/settings/purge-vault.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/settings/purge-vault.component.html","webpack://@bitwarden/web-vault/./src/app/vault/utils/collection-utils.ts","webpack://@bitwarden/web-vault/./src/app/app.component.ts","webpack://@bitwarden/web-vault/./src/app/app.component.html","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/sponsorships/accept-family-sponsorship.component.html","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/sponsorships/accept-family-sponsorship.component.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/request/organization/organization-sponsorship-redeem.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/request/organization-upgrade.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/request/provider/provider-organization-create.request.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/create/organization-create.module.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/create/organization-information.component.html","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/create/organization-information.component.ts","webpack://@bitwarden/web-vault/./src/app/billing/organizations/organization-plans.component.html","webpack://@bitwarden/web-vault/./src/app/billing/organizations/organization-plans.component.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/sponsorships/families-for-enterprise-setup.component.html","webpack://@bitwarden/web-vault/./src/app/admin-console/organizations/sponsorships/families-for-enterprise-setup.component.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/request/provider/provider-verify-recover-delete.request.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/providers/verify-recover-delete-provider.component.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/providers/verify-recover-delete-provider.component.html","webpack://@bitwarden/web-vault/./src/app/admin-console/settings/create-organization.component.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/settings/create-organization.component.html","webpack://@bitwarden/web-vault/./src/app/admin-console/settings/sponsoring-org-row.component.html","webpack://@bitwarden/web-vault/./src/app/admin-console/settings/sponsoring-org-row.component.ts","webpack://@bitwarden/web-vault/./src/app/admin-console/settings/sponsored-families.component.html","webpack://@bitwarden/web-vault/./src/app/admin-console/settings/sponsored-families.component.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/password-hint.request.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/components/hint.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/hint.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/hint.component.html","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/components/lock.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/lock.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/lock.component.html","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/components/base-login-decryption-options.component.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/abstractions/organization-user/requests/organization-user-accept-init.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/abstractions/organization-user/requests/organization-user-accept.request.ts","webpack://@bitwarden/web-vault/./src/app/auth/organization-invite/organization-invite.ts","webpack://@bitwarden/web-vault/./src/app/auth/organization-invite/accept-organization.service.ts","webpack://@bitwarden/web-vault/./src/app/auth/login/login-decryption-options/login-decryption-options.component.html","webpack://@bitwarden/web-vault/./src/app/auth/login/login-decryption-options/login-decryption-options.component.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/enums/auth-request-type.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/create-auth.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/iframe-component.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/captcha-iframe.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/components/captcha-protected.component.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/components/login-via-auth-request.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/login/login-via-auth-request.component.html","webpack://@bitwarden/web-vault/./src/app/auth/login/login-via-auth-request.component.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/components/base-login-via-webauthn.component.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/icons/create-passkey-failed.icon.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/icons/create-passkey.icon.ts","webpack://@bitwarden/web-vault/./src/app/auth/login/login-via-webauthn/login-via-webauthn.component.html","webpack://@bitwarden/web-vault/./src/app/auth/login/login-via-webauthn/login-via-webauthn.component.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/components/login.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/login/login.component.html","webpack://@bitwarden/web-vault/./src/app/auth/login/login.component.ts","webpack://@bitwarden/web-vault/./src/utils/flags.ts","webpack://@bitwarden/web-vault/./src/app/auth/organization-invite/accept-organization.component.html","webpack://@bitwarden/web-vault/./src/app/auth/organization-invite/accept-organization.component.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/request/delete-recover.request.ts","webpack://@bitwarden/web-vault/./src/app/auth/recover-delete.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/recover-delete.component.html","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/two-factor-recovery.request.ts","webpack://@bitwarden/web-vault/./src/app/auth/recover-two-factor.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/recover-two-factor.component.html","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/components/remove-password.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/remove-password.component.html","webpack://@bitwarden/web-vault/./src/app/auth/remove-password.component.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/set-password.request.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/components/change-password.component.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/components/set-password.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/set-password.component.html","webpack://@bitwarden/web-vault/./src/app/auth/set-password.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/account/deauthorize-sessions.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/account/deauthorize-sessions.component.html","webpack://@bitwarden/web-vault/./src/app/auth/settings/account/delete-account-dialog.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/account/delete-account-dialog.component.html","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/email-token.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/email.request.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/account/change-email.component.html","webpack://@bitwarden/web-vault/./src/app/auth/settings/account/change-email.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/account/account.component.html","webpack://@bitwarden/web-vault/./src/app/auth/settings/account/account.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/emergency-access/enums/emergency-access-type.ts","webpack://@bitwarden/web-vault/./src/app/auth/emergency-access/models/emergency-access.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/emergency-access/confirm/emergency-access-confirm.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/emergency-access/confirm/emergency-access-confirm.component.html","webpack://@bitwarden/web-vault/./src/app/auth/settings/emergency-access/emergency-access-add-edit.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/emergency-access/emergency-access-add-edit.component.html","webpack://@bitwarden/web-vault/./src/app/auth/settings/emergency-access/takeover/emergency-access-takeover.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/emergency-access/takeover/emergency-access-takeover.component.html","webpack://@bitwarden/web-vault/./src/app/auth/settings/emergency-access/emergency-access.component.html","webpack://@bitwarden/web-vault/./src/app/auth/settings/emergency-access/emergency-access.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/emergency-access/attachments/emergency-access-attachments.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/emergency-access/view/emergency-add-edit-cipher.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/emergency-access/view/emergency-access-view.component.html","webpack://@bitwarden/web-vault/./src/app/auth/settings/emergency-access/view/emergency-access-view.component.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/password.request.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/change-password.component.html","webpack://@bitwarden/web-vault/./src/app/auth/settings/change-password.component.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/request/kdf.request.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/security/change-kdf/change-kdf-confirmation.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/security/change-kdf/change-kdf-confirmation.component.html","webpack://@bitwarden/web-vault/./src/app/auth/settings/security/change-kdf/change-kdf.component.html","webpack://@bitwarden/web-vault/./src/app/auth/settings/security/change-kdf/change-kdf.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/security/security-keys.component.html","webpack://@bitwarden/web-vault/./src/app/auth/settings/security/security-keys.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/tabs/tab-nav-bar/tab-link.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/tabs/tab-nav-bar/tab-link.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/tabs/tab-nav-bar/tab-nav-bar.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/tabs/tab-nav-bar/tab-nav-bar.component.html","webpack://@bitwarden/web-vault/./src/app/auth/settings/security/security.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/security/security.component.html","webpack://@bitwarden/web-vault/./src/app/auth/settings/security/security-routing.module.ts","webpack://@bitwarden/web-vault/./src/app/auth/sso.component.html","webpack://@bitwarden/web-vault/./src/app/auth/sso.component.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/request/reference-event.request.ts","webpack://@bitwarden/web-vault/./src/app/billing/accounts/trial-initiation/trial-billing-step.component.ts","webpack://@bitwarden/web-vault/./src/app/billing/accounts/trial-initiation/trial-billing-step.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/vertical-stepper/vertical-step.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/vertical-stepper/vertical-step.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/vertical-stepper/vertical-step-content.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/vertical-stepper/vertical-step-content.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/vertical-stepper/vertical-stepper.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/vertical-stepper/vertical-stepper.component.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/request/register.request.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/validators/inputs-field-match.validator.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/components/register.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/register-form/register-form.component.html","webpack://@bitwarden/web-vault/./src/app/auth/register-form/register-form.component.ts","webpack://@bitwarden/web-vault/./src/app/components/environment-selector/environment-selector.component.html","webpack://@bitwarden/web-vault/./src/app/components/environment-selector/environment-selector.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/logo-badges.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/logo-badges.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/enterprise-content.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/enterprise-content.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/logo-forbes.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/logo-forbes.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/logo-us-news.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/logo-us-news.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/teams-content.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/teams-content.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/confirmation-details.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/confirmation-details.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/default-content.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/default-content.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/enterprise1-content.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/enterprise1-content.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/enterprise2-content.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/enterprise2-content.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/teams1-content.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/teams1-content.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/teams2-content.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/teams2-content.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/teams3-content.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/teams3-content.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/logo-cnet.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/logo-cnet.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/cnet-enterprise-content.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/cnet-enterprise-content.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/cnet-individual-content.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/cnet-individual-content.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/cnet-teams-content.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/cnet-teams-content.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/abm-enterprise-content.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/abm-enterprise-content.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/abm-teams-content.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/abm-teams-content.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/review-blurb.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/secrets-manager-content.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/review-blurb.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/content/secrets-manager-content.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/secrets-manager/secrets-manager-trial-free-stepper.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/secrets-manager/secrets-manager-trial-free-stepper.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/secrets-manager/secrets-manager-trial-paid-stepper.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/secrets-manager/secrets-manager-trial-paid-stepper.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/secrets-manager/secrets-manager-trial.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/secrets-manager/secrets-manager-trial.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/trial-initiation.component.html","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/trial-initiation.component.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/webauthn-iframe.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/components/two-factor.component.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/components/two-factor-options.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/two-factor-options.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/two-factor-options.component.html","webpack://@bitwarden/web-vault/./src/app/auth/two-factor.component.html","webpack://@bitwarden/web-vault/./src/app/auth/two-factor.component.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/components/update-password.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/update-password.component.html","webpack://@bitwarden/web-vault/./src/app/auth/update-password.component.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/update-temp-password.request.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/components/update-temp-password.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/update-temp-password.component.html","webpack://@bitwarden/web-vault/./src/app/auth/update-temp-password.component.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/request/verify-email.request.ts","webpack://@bitwarden/web-vault/./src/app/auth/verify-email-token.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/verify-email-token.component.html","webpack://@bitwarden/web-vault/../../libs/common/src/models/request/verify-delete-recover.request.ts","webpack://@bitwarden/web-vault/./src/app/auth/verify-recover-delete.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/verify-recover-delete.component.html","webpack://@bitwarden/web-vault/./src/app/layouts/frontend-layout.component.ts","webpack://@bitwarden/web-vault/./src/app/layouts/frontend-layout.component.html","webpack://@bitwarden/web-vault/../../libs/common/src/models/request/update-domains.request.ts","webpack://@bitwarden/web-vault/./src/app/settings/domain-rules.component.html","webpack://@bitwarden/web-vault/./src/app/settings/domain-rules.component.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/components/settings/vault-timeout-input.component.ts","webpack://@bitwarden/web-vault/./src/app/settings/vault-timeout-input.component.html","webpack://@bitwarden/web-vault/./src/app/settings/vault-timeout-input.component.ts","webpack://@bitwarden/web-vault/./src/app/settings/preferences.component.html","webpack://@bitwarden/web-vault/./src/app/settings/preferences.component.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/tools/generator/components/generator.component.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/tools/generator/components/password-generator-history.component.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/directives/copy-text.directive.ts","webpack://@bitwarden/web-vault/./src/app/tools/password-generator-history.component.html","webpack://@bitwarden/web-vault/./src/app/tools/password-generator-history.component.ts","webpack://@bitwarden/web-vault/./src/app/tools/generator.component.html","webpack://@bitwarden/web-vault/./src/app/tools/generator.component.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/models/view/send-access.view.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/models/domain/send-access.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/models/request/send-access.request.ts","webpack://@bitwarden/web-vault/./src/app/tools/send/icons/expired-send.icon.ts","webpack://@bitwarden/web-vault/./src/app/tools/send/send-access-file.component.ts","webpack://@bitwarden/web-vault/./src/app/tools/send/send-access-file.component.html","webpack://@bitwarden/web-vault/./src/app/tools/send/send-access-password.component.ts","webpack://@bitwarden/web-vault/./src/app/tools/send/send-access-text.component.html","webpack://@bitwarden/web-vault/./src/app/tools/send/send-access-password.component.html","webpack://@bitwarden/web-vault/./src/app/tools/send/send-access-text.component.ts","webpack://@bitwarden/web-vault/./src/app/tools/send/access.component.html","webpack://@bitwarden/web-vault/./src/app/tools/send/access.component.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/tools/send/send.component.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/tools/send/add-edit.component.ts","webpack://@bitwarden/web-vault/./src/app/tools/send/add-edit.component.html","webpack://@bitwarden/web-vault/./src/app/tools/send/add-edit.component.ts","webpack://@bitwarden/web-vault/./src/app/tools/send/icons/no-send.icon.ts","webpack://@bitwarden/web-vault/./src/app/tools/send/send.component.html","webpack://@bitwarden/web-vault/./src/app/tools/send/send.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/verify-email.component.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/verify-email.component.html","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/bulk-action-dialogs/bulk-dialogs.module.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-banners/services/vault-banners.service.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-filter/vault-filter.module.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-onboarding/services/abstraction/vault-onboarding.service.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-onboarding/services/vault-onboarding.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/enums/vault-onboarding.enum.ts","webpack://@bitwarden/web-vault/./src/app/shared/components/onboarding/onboarding.module.ts","webpack://@bitwarden/web-vault/./src/app/shared/components/onboarding/onboarding-task.component.html","webpack://@bitwarden/web-vault/./src/app/shared/components/onboarding/onboarding-task.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/progress/progress.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/progress/progress.component.ts","webpack://@bitwarden/web-vault/./src/app/shared/components/onboarding/onboarding.component.html","webpack://@bitwarden/web-vault/./src/app/shared/components/onboarding/onboarding.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-onboarding/vault-onboarding.component.html","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-onboarding/vault-onboarding.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/bulk-action-dialogs/bulk-move-dialog/bulk-move-dialog.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/bulk-action-dialogs/bulk-move-dialog/bulk-move-dialog.component.html","webpack://@bitwarden/web-vault/../../libs/common/src/types/checkable.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/bulk-action-dialogs/bulk-share-dialog/bulk-share-dialog.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/bulk-action-dialogs/bulk-share-dialog/bulk-share-dialog.component.html","webpack://@bitwarden/web-vault/../../libs/angular/src/vault/components/folder-add-edit.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/folder-add-edit.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/folder-add-edit.component.html","webpack://@bitwarden/web-vault/../../libs/angular/src/components/share.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/share.component.html","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/share.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-header/vault-header.component.html","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-header/vault-header.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-banners/vault-banners.component.html","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-banners/vault-banners.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault.component.html","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault.component.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault-routing.module.ts","webpack://@bitwarden/web-vault/./src/app/vault/individual-vault/vault.module.ts","webpack://@bitwarden/web-vault/./src/app/oss-routing.module.ts","webpack://@bitwarden/web-vault/./src/app/auth/organization-invite/accept-organization.module.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/webauthn-login-settings/webauthn-login-settings.module.ts","webpack://@bitwarden/web-vault/./src/app/auth/settings/settings.module.ts","webpack://@bitwarden/web-vault/./src/app/auth/auth.module.ts","webpack://@bitwarden/web-vault/./src/app/auth/core/views/credential-create-options.view.ts","webpack://@bitwarden/web-vault/./src/app/auth/core/views/pending-webauthn-login-credential.view.ts","webpack://@bitwarden/web-vault/./src/app/auth/core/views/webauthn-login-credential.view.ts","webpack://@bitwarden/web-vault/./src/app/auth/core/services/rotateable-key-set.service.ts","webpack://@bitwarden/web-vault/./src/app/auth/core/services/webauthn-login/request/enable-credential-encryption.request.ts","webpack://@bitwarden/web-vault/./src/app/auth/core/services/webauthn-login/request/save-credential.request.ts","webpack://@bitwarden/web-vault/./src/app/auth/core/services/webauthn-login/request/webauthn-login-authenticator-response.request.ts","webpack://@bitwarden/web-vault/./src/app/auth/core/services/webauthn-login/request/webauthn-login-attestation-response.request.ts","webpack://@bitwarden/web-vault/./src/app/auth/core/services/webauthn-login/response/webauthn-login-credential-create-options.response.ts","webpack://@bitwarden/web-vault/./src/app/auth/core/services/webauthn-login/webauthn-login-admin-api.service.ts","webpack://@bitwarden/web-vault/./src/app/auth/core/services/webauthn-login/webauthn-login-admin.service.ts","webpack://@bitwarden/web-vault/./src/app/auth/login/login.module.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/vertical-stepper/vertical-stepper.module.ts","webpack://@bitwarden/web-vault/./src/app/auth/trial-initiation/trial-initiation.module.ts","webpack://@bitwarden/web-vault/./src/app/oss.module.ts","webpack://@bitwarden/web-vault/./src/app/wildcard-routing.module.ts","webpack://@bitwarden/web-vault/./src/app/app.module.ts","webpack://@bitwarden/web-vault/./src/main.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/components/sso.component.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/guards/auth.guard.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/guards/lock.guard.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/guards/redirect.guard.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/guards/tde-decryption-required.guard.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/auth/guards/unauth.guard.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/components/callout.component.html","webpack://@bitwarden/web-vault/../../libs/angular/src/components/callout.component.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/directives/a11y-title.directive.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/directives/api-action.directive.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/directives/input-verbatim.directive.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/directives/stop-click.directive.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/directives/stop-prop.directive.ts","webpack://@bitwarden/web-vault/../../libs/components/src/toast/toast.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/toast/toast.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/toast/toastr.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/toast/toast.module.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/pipes/credit-card-number.pipe.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/platform/pipes/fingerprint.pipe.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/jslib.module.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/pipes/search.pipe.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/pipes/user-name.pipe.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/pipes/user-type.pipe.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/platform/abstractions/form-validation-errors.service.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/platform/pipes/i18n.pipe.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/platform/services/theming/theming.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/platform/utils/safe-provider.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/services/injection-tokens.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/components/modal/modal.ref.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/components/modal/dynamic-modal.component.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/components/modal/modal-injector.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/services/modal.service.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/tools/password-strength/password-strength.component.html","webpack://@bitwarden/web-vault/../../libs/angular/src/tools/password-strength/password-strength.component.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/vault/components/attachments.component.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/directives/fallback-src.directive.ts","webpack://@bitwarden/web-vault/../../libs/angular/src/vault/components/icon.component.html","webpack://@bitwarden/web-vault/../../libs/angular/src/vault/components/icon.component.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/icon/build-cipher-icon.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/angular/icons/bitwarden-logo.icon.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/angular/icons/lock.icon.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/angular/icons/user-verification-biometrics-fingerprint.icon.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/angular/anon-layout/anon-layout.component.html","webpack://@bitwarden/web-vault/../../libs/auth/src/angular/anon-layout/anon-layout.component.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/angular/anon-layout/anon-layout-wrapper.component.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/angular/anon-layout/anon-layout-wrapper.component.html","webpack://@bitwarden/web-vault/../../libs/auth/src/angular/fingerprint-dialog/fingerprint-dialog.component.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/angular/fingerprint-dialog/fingerprint-dialog.component.html","webpack://@bitwarden/web-vault/../../libs/auth/src/angular/user-verification/user-verification-dialog.component.html","webpack://@bitwarden/web-vault/../../libs/auth/src/angular/user-verification/user-verification-dialog.component.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/angular/icons/registration-check-email.icon.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/angular/registration/registration-env-selector/registration-self-hosted-env-config-dialog.component.html","webpack://@bitwarden/web-vault/../../libs/auth/src/angular/registration/registration-env-selector/registration-self-hosted-env-config-dialog.component.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/angular/registration/registration-env-selector/registration-env-selector.component.html","webpack://@bitwarden/web-vault/../../libs/auth/src/angular/registration/registration-env-selector/registration-env-selector.component.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/angular/registration/registration-start/registration-start.component.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/angular/registration/registration-start/registration-start.component.html","webpack://@bitwarden/web-vault/../../libs/auth/src/angular/registration/registration-start/registration-start-secondary.component.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/angular/registration/registration-start/registration-start-secondary.component.html","webpack://@bitwarden/web-vault/../../libs/auth/src/angular/password-callout/password-callout.component.html","webpack://@bitwarden/web-vault/../../libs/auth/src/angular/password-callout/password-callout.component.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/angular/user-verification/active-client-verification-option.enum.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/angular/user-verification/user-verification-form-input.component.html","webpack://@bitwarden/web-vault/../../libs/auth/src/angular/user-verification/user-verification-form-input.component.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/common/abstractions/pin.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/common/abstractions/login-email.service.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/common/abstractions/login-strategy.service.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/common/abstractions/user-decryption-options.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/common/abstractions/auth-request.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/common/models/domain/rotateable-key-set.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/common/models/domain/login-credentials.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/common/models/domain/user-decryption-options.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/common/services/pin/pin.service.implementation.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/common/services/login-email/login-email.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/passwordless-auth.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/request/prelogin.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/identity-token/password-token.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/domain/auth-result.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/common/login-strategies/login.strategy.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/common/login-strategies/auth-request-login.strategy.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/common/login-strategies/password-login.strategy.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/identity-token/sso-token.request.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/common/login-strategies/sso-login.strategy.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/common/login-strategies/user-api-login.strategy.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/identity-token/webauthn-login-token.request.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/common/login-strategies/webauthn-login.strategy.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/common/services/login-strategies/login-strategy.state.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/common/services/login-strategies/login-strategy.service.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/common/services/user-decryption-options/user-decryption-options.service.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/common/services/auth-request/auth-request.service.ts","webpack://@bitwarden/web-vault/../../libs/auth/src/common/utilities/decode-jwt-token-to-json.utility.ts","webpack://@bitwarden/web-vault/../../libs/common/src/abstractions/api.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/abstractions/audit.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/abstractions/event/event-collection.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/abstractions/event/event-upload.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/abstractions/notifications.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/abstractions/search.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/abstractions/vault-timeout/vault-timeout-settings.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/abstractions/vault-timeout/vault-timeout.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/abstractions/organization-domain/org-domain-api.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/abstractions/organization-management-preferences/organization-management-preferences.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/abstractions/organization-user/organization-user.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/abstractions/organization-user/requests/organization-user-reset-password-enrollment.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/abstractions/organization-user/requests/organization-user-reset-password.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/abstractions/organization/organization-api.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/abstractions/organization/organization.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/abstractions/policy/policy-api.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/abstractions/policy/policy.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/abstractions/provider.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/abstractions/provider/provider-api.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/enums/organization-api-key-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/enums/organization-connection-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/enums/organization-user-status-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/enums/organization-user-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/enums/policy-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/enums/provider-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/enums/provider-user-status-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/enums/provider-user-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/enums/scim-provider-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/enums/provider-status-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/api/permissions.api.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/data/policy.data.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/domain/master-password-policy-options.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/domain/organization.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/domain/password-generator-policy-options.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/domain/policy.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/request/organization-create.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/request/organization-keys.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/request/selection-read-only.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/response/policy.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/admin-console/models/response/selection-read-only.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/abstractions/account-api.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/abstractions/account.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/abstractions/anonymous-hub.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/abstractions/auth.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/abstractions/avatar.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/abstractions/device-trust.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/abstractions/devices-api.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/abstractions/devices/devices.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/abstractions/kdf-config.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/abstractions/key-connector.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/abstractions/master-password.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/abstractions/password-reset-enrollment.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/abstractions/sso-login.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/abstractions/token.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/abstractions/two-factor.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/abstractions/user-verification/user-verification.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/abstractions/webauthn/webauthn-login-prf-crypto.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/abstractions/webauthn/webauthn-login.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/enums/authentication-status.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/enums/authentication-type.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/enums/two-factor-provider-type.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/enums/verification-type.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/domain/admin-auth-req-storable.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/domain/force-set-password-reason.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/domain/kdf-config.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/identity-token/device.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/identity-token/token-two-factor.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/identity-token/token.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/identity-token/user-api-token.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/secret-verification.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/request/two-factor-email.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/response/identity-captcha.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/response/user-decryption-options/key-connector-user-decryption-option.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/response/user-decryption-options/trusted-device-user-decryption-option.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/response/user-decryption-options/webauthn-prf-decryption-option.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/response/user-decryption-options/user-decryption-options.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/response/identity-token.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/response/identity-two-factor.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/response/master-password-policy.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/response/two-factor-web-authn.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/models/view/webauthn-login/webauthn-login-credential-assertion-options.view.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/two-factor.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/webauthn-login/request/webauthn-login-response.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/webauthn-login/request/webauthn-login-assertion-response.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/webauthn-login/response/assertion-options.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/auth/services/webauthn-login/response/credential-assertion-options.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/autofill/services/domain-settings.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/abstractions/account/billing-account-profile-state.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/abstractions/billilng-api.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/abstractions/organization-billing.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/abstractions/payment-method-warnings-service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/enums/payment-method-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/enums/plan-sponsorship-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/enums/plan-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/enums/transaction-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/enums/bitwarden-product-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/models/request/expanded-tax-info-update.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/models/request/payment.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/billing/models/request/tax-info-update.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/enums/feature-flag.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/enums/http-status-code.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/enums/client-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/enums/device-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/enums/event-system-user.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/enums/event-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/enums/integration-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/enums/native-messaging-version.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/enums/notification-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/enums/product-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/enums/vault-timeout-action.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/domain/domain-service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/export/utils.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/export/card.export.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/export/field.export.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/export/identity.export.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/export/fido2-credential.export.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/export/login-uri.export.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/export/login.export.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/export/password-history.export.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/export/secure-note.export.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/export/cipher.export.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/export/cipher-with-ids.export.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/export/collection.export.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/export/collection-with-id.export.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/export/folder.export.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/export/folder-with-id.export.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/request/keys.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/response/base.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/response/error.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/response/list.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/abstractions/app-id.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/abstractions/broadcaster.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/abstractions/config/config.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/abstractions/crypto-function.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/abstractions/crypto.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/abstractions/encrypt.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/abstractions/environment.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/abstractions/file-download/file-download.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/abstractions/translation.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/abstractions/i18n.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/abstractions/log.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/abstractions/platform-utils.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/abstractions/state.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/abstractions/validation.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/biometrics/biometric.state.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/biometrics/biometric-state.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/enums/encryption-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/enums/file-upload-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/enums/hash-purpose.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/enums/html-storage-location.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/enums/kdf-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/enums/key-suffix-options.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/enums/log-level-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/enums/storage-location.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/enums/theme-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/messaging/message.sender.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/misc/flags.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/misc/range-with-default.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/misc/safe-urls.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/misc/utils.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/misc/wordlist.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/models/domain/account.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/models/domain/domain-base.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/models/domain/enc-array-buffer.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/models/domain/enc-string.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/models/domain/symmetric-crypto-key.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/console-log.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/services/cryptography/initializer-key.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/deserialization-helpers.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/derive-definition.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/derived-state.provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/state.provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/global-state.provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/user-state.provider.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/key-definition.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/state-definition.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/state-definitions.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/state-event-registrar.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/state-event-runner.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/state/user-key-definition.ts","webpack://@bitwarden/web-vault/../../libs/common/src/platform/theming/theme-state.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/default-policy-evaluator.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/history/generated-credential.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/state/buffered-key-definition.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/key-definitions.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/passphrase/passphrase-generation-options.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/passphrase/passphrase-generator-options-evaluator.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/password/generated-password-history.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/password/password-generation-options.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/password/password-generator-policy.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/password/password-generator-strategy.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/abstractions/password-generation.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/password/password-generation.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/password/password-generator-options-evaluator.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/rx-operators.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/username/eff-username-generator-options.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/username/eff-username-generator-strategy.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/username/catchall-generator-options.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/username/catchall-generator-strategy.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/username/subaddress-generator-options.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/username/subaddress-generator-strategy.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/abstractions/username-generation.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/username/email-forwarders/anon-addy-forwarder.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/username/email-forwarders/duck-duck-go-forwarder.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/username/email-forwarders/fastmail-forwarder.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/username/email-forwarders/firefox-relay-forwarder.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/username/email-forwarders/forwarder-options.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/username/email-forwarders/simple-login-forwarder.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/username/email-forwarders/forward-email-forwarder.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/generator/username/username-generation.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/password-strength/password-strength.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/password-strength/password-strength.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/enums/send-type.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/models/domain/send-file.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/models/domain/send-text.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/models/domain/send.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/models/view/send-file.view.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/models/view/send-text.view.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/models/view/send.view.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/send-kdf.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/services/send-api.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/send/services/send.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/state/secret-classifier.ts","webpack://@bitwarden/web-vault/../../libs/common/src/tools/state/secret-key-definition.ts","webpack://@bitwarden/web-vault/../../libs/common/src/types/vault-timeout.type.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/abstractions/cipher.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/abstractions/collection.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/abstractions/folder/folder-api.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/abstractions/folder/folder.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/abstractions/sync/sync.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/abstractions/totp.service.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/enums/cipher-reprompt-type.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/enums/cipher-type.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/enums/field-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/enums/linked-id-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/enums/secure-note-type.enum.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/linked-field-option.decorator.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/api/card.api.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/api/fido2-credential.api.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/api/field.api.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/api/identity.api.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/api/login-uri.api.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/api/login.api.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/api/secure-note.api.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/data/attachment.data.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/data/card.data.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/data/cipher.data.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/data/collection.data.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/data/fido2-credential.data.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/data/field.data.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/data/identity.data.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/data/login-uri.data.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/data/login.data.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/data/password-history.data.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/data/secure-note.data.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/domain/attachment.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/domain/card.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/domain/cipher.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/domain/collection.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/domain/fido2-credential.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/domain/field.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/domain/folder.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/domain/identity.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/domain/login-uri.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/domain/login.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/domain/password.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/domain/secure-note.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/domain/tree-node.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/request/cipher-bulk-delete.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/request/cipher-collections.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/request/cipher-with-id.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/request/attachment.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/request/cipher.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/request/collection.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/request/folder-with-id.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/request/folder.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/response/attachment.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/response/password-history.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/response/cipher.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/response/collection.response.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/view/attachment.view.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/view/card.view.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/view/cipher.view.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/view/collection.view.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/view/fido2-credential.view.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/view/field.view.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/view/folder.view.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/view/identity.view.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/view/item.view.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/view/login-uri.view.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/view/login.view.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/view/password-history.view.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/view/secure-note.view.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/service-utils.ts","webpack://@bitwarden/web-vault/../../libs/components/src/async-actions/async-actions.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/async-actions/bit-action.directive.ts","webpack://@bitwarden/web-vault/../../libs/components/src/async-actions/bit-submit.directive.ts","webpack://@bitwarden/web-vault/../../libs/components/src/async-actions/form-button.directive.ts","webpack://@bitwarden/web-vault/../../libs/components/src/avatar/avatar.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/badge-list/badge-list.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/badge-list/badge-list.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/badge/badge.directive.ts","webpack://@bitwarden/web-vault/../../libs/components/src/badge/badge.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/banner/banner.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/banner/banner.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/banner/banner.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/breadcrumbs/breadcrumb.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/breadcrumbs/breadcrumb.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/breadcrumbs/breadcrumbs.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/breadcrumbs/breadcrumbs.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/breadcrumbs/breadcrumbs.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/button/button.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/button/button.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/button/button.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/callout/callout.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/callout/callout.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/callout/callout.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/checkbox/checkbox.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/checkbox/checkbox.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/color-password/color-password.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/container/container.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/container/container.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/dialog/animations.ts","webpack://@bitwarden/web-vault/../../libs/components/src/dialog/dialog.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/dialog/simple-dialog/simple-configurable-dialog/simple-configurable-dialog.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/dialog/simple-dialog/simple-configurable-dialog/simple-configurable-dialog.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/dialog/dialog.service.ts","webpack://@bitwarden/web-vault/../../libs/components/src/dialog/dialog/dialog.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/dialog/dialog/dialog.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/dialog/directives/dialog-close.directive.ts","webpack://@bitwarden/web-vault/../../libs/components/src/dialog/directives/dialog-title-container.directive.ts","webpack://@bitwarden/web-vault/../../libs/components/src/dialog/simple-dialog/simple-dialog.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/dialog/simple-dialog/simple-dialog.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/form-control/form-control.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/components/src/form-control/form-control.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/form-control/form-control.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/form-control/form-control.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/form-control/hint.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/form-control/label.directive.ts","webpack://@bitwarden/web-vault/../../libs/components/src/form-field/error-summary.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/form-field/form-field-control.ts","webpack://@bitwarden/web-vault/../../libs/components/src/form-field/error.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/form-field/form-field.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/form-field/form-field.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/form-field/form-field.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/form-field/password-input-toggle.directive.ts","webpack://@bitwarden/web-vault/../../libs/components/src/form-field/prefix.directive.ts","webpack://@bitwarden/web-vault/../../libs/components/src/form-field/suffix.directive.ts","webpack://@bitwarden/web-vault/../../libs/components/src/icon-button/icon-button.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/icon-button/icon-button.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/icon-button/icon-button.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/icon/icon.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/icon/icon.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/icon/icon.ts","webpack://@bitwarden/web-vault/../../libs/components/src/icon/icons/search.ts","webpack://@bitwarden/web-vault/../../libs/components/src/input/autofocus.directive.ts","webpack://@bitwarden/web-vault/../../libs/components/src/input/input.directive.ts","webpack://@bitwarden/web-vault/../../libs/components/src/input/input.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/layout/layout.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/layout/layout.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/link/link.directive.ts","webpack://@bitwarden/web-vault/../../libs/components/src/link/link.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/menu/menu-divider.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/menu/menu-divider.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/menu/menu-item.directive.ts","webpack://@bitwarden/web-vault/../../libs/components/src/menu/menu-item.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/menu/menu-trigger-for.directive.ts","webpack://@bitwarden/web-vault/../../libs/components/src/menu/menu.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/menu/menu.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/menu/menu.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/multi-select/multi-select.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/multi-select/multi-select.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/multi-select/multi-select.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/navigation/nav-base.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/navigation/nav-group.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/navigation/nav-group.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/navigation/nav-item.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/navigation/nav-item.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/navigation/navigation.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/no-items/no-items.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/no-items/no-items.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/no-items/no-items.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/progress/progress.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/radio-button/radio-input.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/radio-button/radio-button.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/radio-button/radio-button.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/radio-button/radio-button.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/radio-button/radio-group.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/radio-button/radio-group.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/search/search.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/search/search.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/search/search.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/section/section.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/select/option.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/select/select.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/select/select.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/select/select.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/shared/button-like.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/components/src/shared/focusable-element.ts","webpack://@bitwarden/web-vault/../../libs/components/src/shared/i18n.pipe.ts","webpack://@bitwarden/web-vault/../../libs/components/src/shared/shared.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/table/cell.directive.ts","webpack://@bitwarden/web-vault/../../libs/components/src/table/row.directive.ts","webpack://@bitwarden/web-vault/../../libs/components/src/table/sortable.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/table/table-data-source.ts","webpack://@bitwarden/web-vault/../../libs/components/src/table/table.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/table/table.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/table/table.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/tabs/shared/tab-header.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/tabs/shared/tab-list-container.directive.ts","webpack://@bitwarden/web-vault/../../libs/components/src/tabs/shared/tab-list-item.directive.ts","webpack://@bitwarden/web-vault/../../libs/components/src/tabs/tab-group/tab-body.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/tabs/tab-group/tab-group.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/tabs/tab-group/tab-body.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/tabs/tab-group/tab-group.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/tabs/tab-group/tab-label.directive.ts","webpack://@bitwarden/web-vault/../../libs/components/src/tabs/tab-group/tab.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/tabs/tab-group/tab.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/toast/utils.ts","webpack://@bitwarden/web-vault/../../libs/components/src/toast/toast.service.ts","webpack://@bitwarden/web-vault/../../libs/components/src/toggle-group/toggle-group.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/toggle-group/toggle-group.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/toggle-group/toggle.component.ts","webpack://@bitwarden/web-vault/../../libs/components/src/toggle-group/toggle.component.html","webpack://@bitwarden/web-vault/../../libs/components/src/typography/typography.directive.ts","webpack://@bitwarden/web-vault/../../libs/components/src/typography/typography.module.ts","webpack://@bitwarden/web-vault/../../libs/components/src/utils/function-to-observable.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/services/import-api.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/services/import-api.service.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/services/import.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/request/import-ciphers.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/request/import-organization-ciphers.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/models/request/kvp.request.ts","webpack://@bitwarden/web-vault/../../libs/common/src/vault/models/request/collection-with-id.request.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/models/import-result.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/base-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/ascendo-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/avast/avast-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/avast/avast-json-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/avira-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/blackberry-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/chrome-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/bitwarden/bitwarden-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/bitwarden/bitwarden-json-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/bitwarden/bitwarden-password-protected-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/blur-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/buttercup-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/clipperz-html-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/codebook-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/dashlane/dashlane-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/dashlane/dashlane-json-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/encryptr-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/enpass/enpass-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/enpass/enpass-json-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/firefox-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/fsecure/fsecure-fsk-types.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/fsecure/fsecure-fsk-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/gnome-json-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/kaspersky-txt-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/keepass2-xml-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/keepassx-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/keeper/keeper-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/lastpass-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/logmeonce-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/meldium-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/msecure-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/myki-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/nordpass-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/onepassword/types/onepassword-1pux-importer-types.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/onepassword/onepassword-1pif-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/onepassword/onepassword-1pux-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/onepassword/cipher-import-context.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/onepassword/onepassword-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/onepassword/onepassword-mac-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/onepassword/onepassword-win-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/padlock-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/passkeep-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/passky/passky-json-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/passman-json-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/passpack-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/passwordagent-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/passwordboss-json-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/passworddragon-xml-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/passwordsafe-xml-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/passwordwallet-txt-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/protonpass/types/protonpass-json-type.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/protonpass/protonpass-json-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/psono/psono-json-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/remembear-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/roboform-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/safari-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/safeincloud-xml-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/saferpass-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/securesafe-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/splashid-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/stickypassword-xml-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/truekey-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/upm-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/yoti-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/importers/zohovault-csv-importer.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/models/import-options.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/services/import.service.ts","webpack://@bitwarden/web-vault/../../libs/importer/src/services/import-collection.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/tools/export/vault-export/vault-export-core/src/services/vault-export.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/tools/export/vault-export/vault-export-core/src/services/export-helper.ts","webpack://@bitwarden/web-vault/../../libs/tools/export/vault-export/vault-export-core/src/services/vault-export.service.ts","webpack://@bitwarden/web-vault/../../libs/tools/export/vault-export/vault-export-core/src/services/org-vault-export.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/tools/export/vault-export/vault-export-core/src/services/base-vault-export.service.ts","webpack://@bitwarden/web-vault/../../libs/tools/export/vault-export/vault-export-core/src/services/org-vault-export.service.ts","webpack://@bitwarden/web-vault/../../libs/tools/export/vault-export/vault-export-core/src/services/individual-vault-export.service.abstraction.ts","webpack://@bitwarden/web-vault/../../libs/tools/export/vault-export/vault-export-core/src/services/individual-vault-export.service.ts","webpack://@bitwarden/web-vault/../../libs/vault/src/components/password-reprompt.component.ts","webpack://@bitwarden/web-vault/../../libs/vault/src/components/password-reprompt.component.html","webpack://@bitwarden/web-vault/../../libs/vault/src/services/password-reprompt.service.ts","webpack://@bitwarden/web-vault/webpack/bootstrap","webpack://@bitwarden/web-vault/webpack/runtime/compat get default export","webpack://@bitwarden/web-vault/webpack/runtime/define property getters","webpack://@bitwarden/web-vault/webpack/runtime/ensure chunk","webpack://@bitwarden/web-vault/webpack/runtime/get javascript chunk filename","webpack://@bitwarden/web-vault/webpack/runtime/get mini-css chunk filename","webpack://@bitwarden/web-vault/webpack/runtime/global","webpack://@bitwarden/web-vault/webpack/runtime/hasOwnProperty shorthand","webpack://@bitwarden/web-vault/webpack/runtime/make namespace object","webpack://@bitwarden/web-vault/webpack/runtime/node module decorator","webpack://@bitwarden/web-vault/webpack/runtime/publicPath","webpack://@bitwarden/web-vault/webpack/runtime/jsonp chunk loading","webpack://@bitwarden/web-vault/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"@bitwarden/web-vault:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","import { BasePolicy } from \"../organizations/policies\";\n\nexport class PolicyListService {\n private policies: BasePolicy[] = [];\n\n addPolicies(policies: BasePolicy[]) {\n this.policies.push(...policies);\n }\n\n getPolicies(): BasePolicy[] {\n return this.policies;\n }\n}\n","import { NgModule } from \"@angular/core\";\n\n@NgModule({})\nexport class CoreOrganizationModule {}\n","import { SelectionReadOnlyResponse } from \"@bitwarden/common/admin-console/models/response/selection-read-only.response\";\nimport { BaseResponse } from \"@bitwarden/common/models/response/base.response\";\n\nexport class GroupResponse extends BaseResponse {\n id: string;\n organizationId: string;\n name: string;\n /**\n * @deprecated\n * To be removed after Flexible Collections.\n **/\n accessAll: boolean;\n externalId: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.organizationId = this.getResponseProperty(\"OrganizationId\");\n this.name = this.getResponseProperty(\"Name\");\n this.accessAll = this.getResponseProperty(\"AccessAll\");\n this.externalId = this.getResponseProperty(\"ExternalId\");\n }\n}\n\nexport class GroupDetailsResponse extends GroupResponse {\n collections: SelectionReadOnlyResponse[] = [];\n\n constructor(response: any) {\n super(response);\n const collections = this.getResponseProperty(\"Collections\");\n if (collections != null) {\n this.collections = collections.map((c: any) => new SelectionReadOnlyResponse(c));\n }\n }\n}\n","import { View } from \"@bitwarden/common/src/models/view/view\";\n\nimport { GroupDetailsResponse, GroupResponse } from \"../services/group/responses/group.response\";\n\nimport { CollectionAccessSelectionView } from \"./collection-access-selection.view\";\n\nexport class GroupView implements View {\n id: string;\n organizationId: string;\n name: string;\n /**\n * @deprecated\n * To be removed after Flexible Collections.\n * This will always return `false` if Flexible Collections is enabled.\n **/\n accessAll: boolean;\n externalId: string;\n collections: CollectionAccessSelectionView[] = [];\n members: string[] = [];\n\n static fromResponse(response: GroupResponse): GroupView {\n const view: GroupView = Object.assign(new GroupView(), response) as GroupView;\n\n if (response instanceof GroupDetailsResponse && response.collections != undefined) {\n view.collections = response.collections.map((c) => new CollectionAccessSelectionView(c));\n }\n\n return view;\n }\n}\n","import { SelectionReadOnlyRequest } from \"@bitwarden/common/admin-console/models/request/selection-read-only.request\";\n\nexport class GroupRequest {\n name: string;\n accessAll: boolean;\n collections: SelectionReadOnlyRequest[] = [];\n users: string[] = [];\n}\n","export class OrganizationGroupBulkRequest {\n ids: string[];\n\n constructor(ids: string[]) {\n this.ids = ids == null ? [] : ids;\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { ApiService } from \"@bitwarden/common/abstractions/api.service\";\nimport { SelectionReadOnlyRequest } from \"@bitwarden/common/admin-console/models/request/selection-read-only.request\";\nimport { ListResponse } from \"@bitwarden/common/models/response/list.response\";\nimport { ConfigService } from \"@bitwarden/common/platform/abstractions/config/config.service\";\n\nimport { CoreOrganizationModule } from \"../../core-organization.module\";\nimport { GroupView } from \"../../views/group.view\";\n\nimport { GroupRequest } from \"./requests/group.request\";\nimport { OrganizationGroupBulkRequest } from \"./requests/organization-group-bulk.request\";\nimport { GroupDetailsResponse, GroupResponse } from \"./responses/group.response\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class GroupService {\n constructor(\n protected apiService: ApiService,\n protected configService: ConfigService,\n ) {}\n\n async get(orgId: string, groupId: string): Promise {\n const r = await this.apiService.send(\n \"GET\",\n \"/organizations/\" + orgId + \"/groups/\" + groupId + \"/details\",\n null,\n true,\n true,\n );\n\n return GroupView.fromResponse(new GroupDetailsResponse(r));\n }\n\n async getAll(orgId: string): Promise {\n const r = await this.apiService.send(\n \"GET\",\n \"/organizations/\" + orgId + \"/groups\",\n null,\n true,\n true,\n );\n\n const listResponse = new ListResponse(r, GroupDetailsResponse);\n\n return Promise.all(listResponse.data?.map((gr) => GroupView.fromResponse(gr))) ?? [];\n }\n}\n\n@Injectable({ providedIn: CoreOrganizationModule })\nexport class InternalGroupService extends GroupService {\n constructor(\n protected apiService: ApiService,\n protected configService: ConfigService,\n ) {\n super(apiService, configService);\n }\n\n async delete(orgId: string, groupId: string): Promise {\n await this.apiService.send(\n \"DELETE\",\n \"/organizations/\" + orgId + \"/groups/\" + groupId,\n null,\n true,\n false,\n );\n }\n\n async deleteMany(orgId: string, groupIds: string[]): Promise {\n await this.apiService.send(\n \"DELETE\",\n \"/organizations/\" + orgId + \"/groups\",\n new OrganizationGroupBulkRequest(groupIds),\n true,\n true,\n );\n }\n\n async save(group: GroupView): Promise {\n const request = new GroupRequest();\n request.name = group.name;\n request.accessAll = group.accessAll;\n request.users = group.members;\n request.collections = group.collections.map(\n (c) => new SelectionReadOnlyRequest(c.id, c.readOnly, c.hidePasswords, c.manage),\n );\n\n if (group.id == undefined) {\n return await this.postGroup(group.organizationId, request);\n } else {\n return await this.putGroup(group.organizationId, group.id, request);\n }\n }\n\n private async postGroup(organizationId: string, request: GroupRequest): Promise {\n const r = await this.apiService.send(\n \"POST\",\n \"/organizations/\" + organizationId + \"/groups\",\n request,\n true,\n true,\n );\n return GroupView.fromResponse(new GroupResponse(r));\n }\n\n private async putGroup(\n organizationId: string,\n id: string,\n request: GroupRequest,\n ): Promise {\n const r = await this.apiService.send(\n \"PUT\",\n \"/organizations/\" + organizationId + \"/groups/\" + id,\n request,\n true,\n true,\n );\n return GroupView.fromResponse(new GroupResponse(r));\n }\n}\n","import { OrganizationUserType } from \"../../../enums\";\nimport { PermissionsApi } from \"../../../models/api/permissions.api\";\nimport { SelectionReadOnlyRequest } from \"../../../models/request/selection-read-only.request\";\n\nexport class OrganizationUserUpdateRequest {\n type: OrganizationUserType;\n accessAll: boolean;\n accessSecretsManager: boolean;\n collections: SelectionReadOnlyRequest[] = [];\n groups: string[] = [];\n permissions: PermissionsApi;\n}\n","import { OrganizationUserType } from \"../../../enums\";\nimport { PermissionsApi } from \"../../../models/api/permissions.api\";\nimport { SelectionReadOnlyRequest } from \"../../../models/request/selection-read-only.request\";\n\nexport class OrganizationUserInviteRequest {\n emails: string[] = [];\n type: OrganizationUserType;\n accessAll: boolean;\n accessSecretsManager: boolean;\n collections: SelectionReadOnlyRequest[] = [];\n groups: string[];\n permissions: PermissionsApi;\n}\n","import {\n OrganizationUserStatusType,\n OrganizationUserType,\n} from \"@bitwarden/common/admin-console/enums\";\nimport { PermissionsApi } from \"@bitwarden/common/admin-console/models/api/permissions.api\";\n\nimport { CollectionAccessSelectionView } from \"./collection-access-selection.view\";\n\nexport class OrganizationUserAdminView {\n id: string;\n userId: string;\n organizationId: string;\n type: OrganizationUserType;\n status: OrganizationUserStatusType;\n externalId: string;\n /**\n * @deprecated\n * To be removed after Flexible Collections.\n * This will always return `false` if Flexible Collections is enabled.\n **/\n accessAll: boolean;\n permissions: PermissionsApi;\n resetPasswordEnrolled: boolean;\n hasMasterPassword: boolean;\n\n collections: CollectionAccessSelectionView[] = [];\n groups: string[] = [];\n\n accessSecretsManager: boolean;\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { OrganizationUserService } from \"@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service\";\nimport {\n OrganizationUserInviteRequest,\n OrganizationUserUpdateRequest,\n} from \"@bitwarden/common/admin-console/abstractions/organization-user/requests\";\nimport { OrganizationUserDetailsResponse } from \"@bitwarden/common/admin-console/abstractions/organization-user/responses\";\nimport { ConfigService } from \"@bitwarden/common/platform/abstractions/config/config.service\";\n\nimport { CoreOrganizationModule } from \"../core-organization.module\";\nimport { OrganizationUserAdminView } from \"../views/organization-user-admin-view\";\n\n@Injectable({ providedIn: CoreOrganizationModule })\nexport class UserAdminService {\n constructor(\n private configService: ConfigService,\n private organizationUserService: OrganizationUserService,\n ) {}\n\n async get(\n organizationId: string,\n organizationUserId: string,\n ): Promise {\n const userResponse = await this.organizationUserService.getOrganizationUser(\n organizationId,\n organizationUserId,\n {\n includeGroups: true,\n },\n );\n\n if (userResponse == null) {\n return undefined;\n }\n\n const [view] = await this.decryptMany(organizationId, [userResponse]);\n\n return view;\n }\n\n async save(user: OrganizationUserAdminView): Promise {\n const request = new OrganizationUserUpdateRequest();\n request.accessAll = user.accessAll;\n request.permissions = user.permissions;\n request.type = user.type;\n request.collections = user.collections;\n request.groups = user.groups;\n request.accessSecretsManager = user.accessSecretsManager;\n\n await this.organizationUserService.putOrganizationUser(user.organizationId, user.id, request);\n }\n\n async invite(emails: string[], user: OrganizationUserAdminView): Promise {\n const request = new OrganizationUserInviteRequest();\n request.emails = emails;\n request.accessAll = user.accessAll;\n request.permissions = user.permissions;\n request.type = user.type;\n request.collections = user.collections;\n request.groups = user.groups;\n request.accessSecretsManager = user.accessSecretsManager;\n\n await this.organizationUserService.postOrganizationUserInvite(user.organizationId, request);\n }\n\n private async decryptMany(\n organizationId: string,\n users: OrganizationUserDetailsResponse[],\n ): Promise {\n const promises = users.map(async (u) => {\n const view = new OrganizationUserAdminView();\n\n view.id = u.id;\n view.organizationId = organizationId;\n view.userId = u.userId;\n view.type = u.type;\n view.status = u.status;\n view.externalId = u.externalId;\n view.accessAll = u.accessAll;\n view.permissions = u.permissions;\n view.resetPasswordEnrolled = u.resetPasswordEnrolled;\n view.collections = u.collections.map((c) => ({\n id: c.id,\n hidePasswords: c.hidePasswords,\n readOnly: c.readOnly,\n manage: c.manage,\n }));\n view.groups = u.groups;\n view.accessSecretsManager = u.accessSecretsManager;\n view.hasMasterPassword = u.hasMasterPassword;\n\n return view;\n });\n\n return await Promise.all(promises);\n }\n}\n","export class View {}\n","import { View } from \"@bitwarden/common/models/view/view\";\n\ninterface SelectionResponseLike {\n id: string;\n readOnly: boolean;\n hidePasswords: boolean;\n manage: boolean;\n}\n\nexport class CollectionAccessSelectionView extends View {\n readonly id: string;\n readonly readOnly: boolean;\n readonly hidePasswords: boolean;\n readonly manage: boolean;\n\n constructor(response?: SelectionResponseLike) {\n super();\n\n if (!response) {\n return;\n }\n\n this.id = response.id;\n this.readOnly = response.readOnly;\n this.hidePasswords = response.hidePasswords;\n this.manage = response.manage;\n }\n}\n","import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"bit-nav-divider\",\n templateUrl: \"./nav-divider.component.html\",\n})\nexport class NavDividerComponent {}\n","
\n","\n \n \n \n \n \n \n \n \n\n","import { CommonModule } from \"@angular/common\";\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { combineLatest, map, Observable } from \"rxjs\";\n\nimport { JslibModule } from \"@bitwarden/angular/jslib.module\";\nimport { OrganizationService } from \"@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction\";\nimport type { Organization } from \"@bitwarden/common/admin-console/models/domain/organization\";\nimport { NavigationModule } from \"@bitwarden/components\";\n\n@Component({\n selector: \"org-switcher\",\n templateUrl: \"org-switcher.component.html\",\n standalone: true,\n imports: [CommonModule, JslibModule, NavigationModule],\n})\nexport class OrgSwitcherComponent {\n protected organizations$: Observable =\n this.organizationService.organizations$.pipe(\n map((orgs) =>\n orgs.filter((org) => this.filter(org)).sort((a, b) => a.name.localeCompare(b.name)),\n ),\n );\n\n protected activeOrganization$: Observable = combineLatest([\n this.route.paramMap,\n this.organizations$,\n ]).pipe(map(([params, orgs]) => orgs.find((org) => org.id === params.get(\"organizationId\"))));\n\n /**\n * Filter function for displayed organizations in the `org-switcher`\n * @example\n * const smFilter = (org: Organization) => org.canAccessSecretsManager\n * // \n */\n @Input()\n filter: (org: Organization) => boolean = () => true;\n\n /**\n * Is `true` if the expanded content is visible\n */\n @Input()\n open = false;\n @Output()\n openChange = new EventEmitter();\n\n /**\n * Visibility of the New Organization button\n */\n @Input()\n hideNewButton = false;\n\n constructor(\n private route: ActivatedRoute,\n private organizationService: OrganizationService,\n ) {}\n\n protected toggle(event?: MouseEvent) {\n event?.stopPropagation();\n this.open = !this.open;\n this.openChange.emit(this.open);\n }\n}\n","import { svgIcon } from \"@bitwarden/components\";\n\nexport const AdminConsoleLogo = svgIcon`\n\n \n \n \n \n \n\n`;\n","\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n \n\n \n \n {{ \"accessingUsingProvider\" | i18n: organization.providerName }}\n \n \n \n\n \n\n","import { CommonModule } from \"@angular/common\";\nimport { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { ActivatedRoute, RouterModule } from \"@angular/router\";\nimport { combineLatest, map, mergeMap, Observable, Subject, switchMap, takeUntil } from \"rxjs\";\n\nimport { JslibModule } from \"@bitwarden/angular/jslib.module\";\nimport {\n canAccessBillingTab,\n canAccessGroupsTab,\n canAccessMembersTab,\n canAccessOrgAdmin,\n canAccessReportingTab,\n canAccessSettingsTab,\n canAccessVaultTab,\n getOrganizationById,\n OrganizationService,\n} from \"@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction\";\nimport { PolicyService } from \"@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction\";\nimport { ProviderService } from \"@bitwarden/common/admin-console/abstractions/provider.service\";\nimport { PolicyType, ProviderStatusType } from \"@bitwarden/common/admin-console/enums\";\nimport { Organization } from \"@bitwarden/common/admin-console/models/domain/organization\";\nimport { FeatureFlag } from \"@bitwarden/common/enums/feature-flag.enum\";\nimport { ConfigService } from \"@bitwarden/common/platform/abstractions/config/config.service\";\nimport { PlatformUtilsService } from \"@bitwarden/common/platform/abstractions/platform-utils.service\";\nimport { BannerModule, IconModule, LayoutComponent, NavigationModule } from \"@bitwarden/components\";\n\nimport { PaymentMethodWarningsModule } from \"../../../billing/shared\";\nimport { OrgSwitcherComponent } from \"../../../layouts/org-switcher/org-switcher.component\";\nimport { ProductSwitcherModule } from \"../../../layouts/product-switcher/product-switcher.module\";\nimport { ToggleWidthComponent } from \"../../../layouts/toggle-width.component\";\nimport { AdminConsoleLogo } from \"../../icons/admin-console-logo\";\n\n@Component({\n selector: \"app-organization-layout\",\n templateUrl: \"organization-layout.component.html\",\n standalone: true,\n imports: [\n CommonModule,\n RouterModule,\n JslibModule,\n LayoutComponent,\n IconModule,\n NavigationModule,\n OrgSwitcherComponent,\n BannerModule,\n PaymentMethodWarningsModule,\n ToggleWidthComponent,\n ProductSwitcherModule,\n ],\n})\nexport class OrganizationLayoutComponent implements OnInit, OnDestroy {\n protected readonly logo = AdminConsoleLogo;\n\n protected orgFilter = (org: Organization) => canAccessOrgAdmin(org);\n\n organization$: Observable;\n showPaymentAndHistory$: Observable;\n hideNewOrgButton$: Observable;\n organizationIsUnmanaged$: Observable;\n\n private _destroy = new Subject();\n\n protected consolidatedBillingEnabled$ = this.configService.getFeatureFlag$(\n FeatureFlag.EnableConsolidatedBilling,\n );\n\n protected showPaymentMethodWarningBanners$ = this.configService.getFeatureFlag$(\n FeatureFlag.ShowPaymentMethodWarningBanners,\n );\n\n constructor(\n private route: ActivatedRoute,\n private organizationService: OrganizationService,\n private platformUtilsService: PlatformUtilsService,\n private configService: ConfigService,\n private policyService: PolicyService,\n private providerService: ProviderService,\n ) {}\n\n async ngOnInit() {\n document.body.classList.remove(\"layout_frontend\");\n\n this.organization$ = this.route.params\n .pipe(takeUntil(this._destroy))\n .pipe(map((p) => p.organizationId))\n .pipe(\n mergeMap((id) => {\n return this.organizationService.organizations$\n .pipe(takeUntil(this._destroy))\n .pipe(getOrganizationById(id));\n }),\n );\n\n this.showPaymentAndHistory$ = this.organization$.pipe(\n map(\n (org) =>\n !this.platformUtilsService.isSelfHost() &&\n org?.canViewBillingHistory &&\n org?.canEditPaymentMethods,\n ),\n );\n\n this.hideNewOrgButton$ = this.policyService.policyAppliesToActiveUser$(PolicyType.SingleOrg);\n\n const provider$ = this.organization$.pipe(\n switchMap((organization) => this.providerService.get$(organization.providerId)),\n );\n\n this.organizationIsUnmanaged$ = combineLatest([\n this.consolidatedBillingEnabled$,\n this.organization$,\n provider$,\n ]).pipe(\n map(\n ([consolidatedBillingEnabled, organization, provider]) =>\n !consolidatedBillingEnabled ||\n !organization.hasProvider ||\n !provider ||\n provider.providerStatus !== ProviderStatusType.Billable,\n ),\n );\n }\n\n ngOnDestroy() {\n this._destroy.next();\n this._destroy.complete();\n }\n\n canShowVaultTab(organization: Organization): boolean {\n return canAccessVaultTab(organization);\n }\n\n canShowSettingsTab(organization: Organization): boolean {\n return canAccessSettingsTab(organization);\n }\n\n canShowMembersTab(organization: Organization): boolean {\n return canAccessMembersTab(organization);\n }\n\n canShowGroupsTab(organization: Organization): boolean {\n return canAccessGroupsTab(organization);\n }\n\n canShowReportsTab(organization: Organization): boolean {\n return canAccessReportingTab(organization);\n }\n\n canShowBillingTab(organization: Organization): boolean {\n return false; // disable billing tab in Vaultwarden\n return canAccessBillingTab(organization);\n }\n\n getReportTabLabel(organization: Organization): string {\n return organization.useEvents ? \"reporting\" : \"reports\";\n }\n}\n","export class OrganizationVerifyDeleteRecoverRequest {\n token: string;\n\n constructor(token: string) {\n this.token = token;\n }\n}\n","import { Component, OnInit } from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { firstValueFrom } from \"rxjs\";\n\nimport { OrganizationApiServiceAbstraction } from \"@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction\";\nimport { OrganizationVerifyDeleteRecoverRequest } from \"@bitwarden/common/admin-console/models/request/organization-verify-delete-recover.request\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\nimport { PlatformUtilsService } from \"@bitwarden/common/platform/abstractions/platform-utils.service\";\n\nimport { SharedModule } from \"../../../shared/shared.module\";\n\n@Component({\n templateUrl: \"verify-recover-delete-org.component.html\",\n standalone: true,\n imports: [SharedModule],\n})\nexport class VerifyRecoverDeleteOrgComponent implements OnInit {\n loading = true;\n name: string;\n\n private orgId: string;\n private token: string;\n\n constructor(\n private router: Router,\n private apiService: OrganizationApiServiceAbstraction,\n private platformUtilsService: PlatformUtilsService,\n private i18nService: I18nService,\n private route: ActivatedRoute,\n ) {}\n\n async ngOnInit() {\n const qParams = await firstValueFrom(this.route.queryParams);\n if (qParams.orgId != null && qParams.token != null && qParams.name != null) {\n this.orgId = qParams.orgId;\n this.token = qParams.token;\n this.name = qParams.name;\n this.loading = false;\n } else {\n await this.router.navigate([\"/\"]);\n }\n }\n\n submit = async () => {\n const request = new OrganizationVerifyDeleteRecoverRequest(this.token);\n await this.apiService.deleteUsingToken(this.orgId, request);\n this.platformUtilsService.showToast(\n \"success\",\n this.i18nService.t(\"organizationDeleted\"),\n this.i18nService.t(\"organizationDeletedDesc\"),\n );\n await this.router.navigate([\"/\"]);\n };\n}\n","
\n
\n

{{ \"deleteOrganization\" | i18n }}

\n
\n
\n {{\n \"deletingOrganizationIsPermanentWarning\" | i18n: name\n }}\n

\n {{ name }}\n

\n

{{ \"deleteRecoverOrgConfirmDesc\" | i18n }}

\n

{{ \"deletingOrganizationActiveUserAccountsWarning\" | i18n }}

\n
\n
\n \n {{ \"deleteOrganization\" | i18n }}\n \n \n {{ \"cancel\" | i18n }}\n \n
\n
\n
\n
\n
\n","import { Injectable } from \"@angular/core\";\n\nimport { OrganizationApiServiceAbstraction } from \"@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction\";\nimport { OrganizationService } from \"@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction\";\nimport { OrganizationUserService } from \"@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service\";\nimport {\n OrganizationUserResetPasswordRequest,\n OrganizationUserResetPasswordWithIdRequest,\n} from \"@bitwarden/common/admin-console/abstractions/organization-user/requests\";\nimport {\n Argon2KdfConfig,\n KdfConfig,\n PBKDF2KdfConfig,\n} from \"@bitwarden/common/auth/models/domain/kdf-config\";\nimport { CryptoService } from \"@bitwarden/common/platform/abstractions/crypto.service\";\nimport { EncryptService } from \"@bitwarden/common/platform/abstractions/encrypt.service\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\nimport { KdfType } from \"@bitwarden/common/platform/enums\";\nimport { Utils } from \"@bitwarden/common/platform/misc/utils\";\nimport { EncryptedString, EncString } from \"@bitwarden/common/platform/models/domain/enc-string\";\nimport { SymmetricCryptoKey } from \"@bitwarden/common/platform/models/domain/symmetric-crypto-key\";\nimport { UserKey } from \"@bitwarden/common/types/key\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class OrganizationUserResetPasswordService {\n constructor(\n private cryptoService: CryptoService,\n private encryptService: EncryptService,\n private organizationService: OrganizationService,\n private organizationUserService: OrganizationUserService,\n private organizationApiService: OrganizationApiServiceAbstraction,\n private i18nService: I18nService,\n ) {}\n\n /**\n * Returns the user key encrypted by the organization's public key.\n * Intended for use in enrollment\n * @param orgId desired organization\n */\n async buildRecoveryKey(orgId: string, userKey?: UserKey): Promise {\n // Retrieve Public Key\n const orgKeys = await this.organizationApiService.getKeys(orgId);\n if (orgKeys == null) {\n throw new Error(this.i18nService.t(\"resetPasswordOrgKeysError\"));\n }\n\n const publicKey = Utils.fromB64ToArray(orgKeys.publicKey);\n\n // RSA Encrypt user key with organization's public key\n userKey ??= await this.cryptoService.getUserKey();\n if (userKey == null) {\n throw new Error(\"No user key found\");\n }\n const encryptedKey = await this.cryptoService.rsaEncrypt(userKey.key, publicKey);\n\n return encryptedKey.encryptedString;\n }\n\n /**\n * Sets a user's master password through account recovery.\n * Intended for organization admins\n * @param newMasterPassword user's new master password\n * @param email user's email\n * @param orgUserId organization user's id\n * @param orgId organization id\n */\n async resetMasterPassword(\n newMasterPassword: string,\n email: string,\n orgUserId: string,\n orgId: string,\n ): Promise {\n const response = await this.organizationUserService.getOrganizationUserResetPasswordDetails(\n orgId,\n orgUserId,\n );\n\n if (response == null) {\n throw new Error(this.i18nService.t(\"resetPasswordDetailsError\"));\n }\n\n // Decrypt Organization's encrypted Private Key with org key\n const orgSymKey = await this.cryptoService.getOrgKey(orgId);\n if (orgSymKey == null) {\n throw new Error(\"No org key found\");\n }\n const decPrivateKey = await this.encryptService.decryptToBytes(\n new EncString(response.encryptedPrivateKey),\n orgSymKey,\n );\n\n // Decrypt User's Reset Password Key to get UserKey\n const decValue = await this.cryptoService.rsaDecrypt(response.resetPasswordKey, decPrivateKey);\n const existingUserKey = new SymmetricCryptoKey(decValue) as UserKey;\n\n // determine Kdf Algorithm\n const kdfConfig: KdfConfig =\n response.kdf === KdfType.PBKDF2_SHA256\n ? new PBKDF2KdfConfig(response.kdfIterations)\n : new Argon2KdfConfig(response.kdfIterations, response.kdfMemory, response.kdfParallelism);\n\n // Create new master key and hash new password\n const newMasterKey = await this.cryptoService.makeMasterKey(\n newMasterPassword,\n email.trim().toLowerCase(),\n kdfConfig,\n );\n const newMasterKeyHash = await this.cryptoService.hashMasterKey(\n newMasterPassword,\n newMasterKey,\n );\n\n // Create new encrypted user key for the User\n const newUserKey = await this.cryptoService.encryptUserKeyWithMasterKey(\n newMasterKey,\n existingUserKey,\n );\n\n // Create request\n const request = new OrganizationUserResetPasswordRequest();\n request.key = newUserKey[1].encryptedString;\n request.newMasterPasswordHash = newMasterKeyHash;\n\n // Change user's password\n await this.organizationUserService.putOrganizationUserResetPassword(orgId, orgUserId, request);\n }\n\n /**\n * Returns existing account recovery keys re-encrypted with the new user key.\n * @param newUserKey the new user key\n * @throws Error if new user key is null\n */\n async getRotatedKeys(\n newUserKey: UserKey,\n ): Promise {\n if (newUserKey == null) {\n throw new Error(\"New user key is required for rotation.\");\n }\n\n const allOrgs = await this.organizationService.getAll();\n\n if (!allOrgs) {\n return;\n }\n\n const requests: OrganizationUserResetPasswordWithIdRequest[] = [];\n for (const org of allOrgs) {\n // If not already enrolled, skip\n if (!org.resetPasswordEnrolled) {\n continue;\n }\n\n // Re-enroll - encrypt user key with organization public key\n const encryptedKey = await this.buildRecoveryKey(org.id, newUserKey);\n\n // Create/Execute request\n const request = new OrganizationUserResetPasswordWithIdRequest();\n request.organizationId = org.id;\n request.resetPasswordKey = encryptedKey;\n request.masterPasswordHash = \"ignored\";\n\n requests.push(request);\n }\n return requests;\n }\n}\n","import { NgModule } from \"@angular/core\";\n\nimport { LooseComponentsModule, SharedModule } from \"../../../shared\";\n\nimport { DisableSendPolicyComponent } from \"./disable-send.component\";\nimport { MasterPasswordPolicyComponent } from \"./master-password.component\";\nimport { PasswordGeneratorPolicyComponent } from \"./password-generator.component\";\nimport { PersonalOwnershipPolicyComponent } from \"./personal-ownership.component\";\nimport { PoliciesComponent } from \"./policies.component\";\nimport { PolicyEditComponent } from \"./policy-edit.component\";\nimport { RequireSsoPolicyComponent } from \"./require-sso.component\";\nimport { ResetPasswordPolicyComponent } from \"./reset-password.component\";\nimport { SendOptionsPolicyComponent } from \"./send-options.component\";\nimport { SingleOrgPolicyComponent } from \"./single-org.component\";\nimport { TwoFactorAuthenticationPolicyComponent } from \"./two-factor-authentication.component\";\n\n@NgModule({\n imports: [SharedModule, LooseComponentsModule],\n declarations: [\n DisableSendPolicyComponent,\n MasterPasswordPolicyComponent,\n PasswordGeneratorPolicyComponent,\n PersonalOwnershipPolicyComponent,\n RequireSsoPolicyComponent,\n ResetPasswordPolicyComponent,\n SendOptionsPolicyComponent,\n SingleOrgPolicyComponent,\n TwoFactorAuthenticationPolicyComponent,\n PoliciesComponent,\n PolicyEditComponent,\n ],\n exports: [\n DisableSendPolicyComponent,\n MasterPasswordPolicyComponent,\n PasswordGeneratorPolicyComponent,\n PersonalOwnershipPolicyComponent,\n RequireSsoPolicyComponent,\n ResetPasswordPolicyComponent,\n SendOptionsPolicyComponent,\n SingleOrgPolicyComponent,\n TwoFactorAuthenticationPolicyComponent,\n PoliciesComponent,\n PolicyEditComponent,\n ],\n})\nexport class PoliciesModule {}\n","import { PolicyType } from \"../../enums\";\n\nexport class PolicyRequest {\n type: PolicyType;\n enabled: boolean;\n data: any;\n}\n","import { Directive, Input, OnInit } from \"@angular/core\";\nimport { UntypedFormControl, UntypedFormGroup } from \"@angular/forms\";\n\nimport { PolicyType } from \"@bitwarden/common/admin-console/enums\";\nimport { Organization } from \"@bitwarden/common/admin-console/models/domain/organization\";\nimport { PolicyRequest } from \"@bitwarden/common/admin-console/models/request/policy.request\";\nimport { PolicyResponse } from \"@bitwarden/common/admin-console/models/response/policy.response\";\n\nexport abstract class BasePolicy {\n abstract name: string;\n abstract description: string;\n abstract type: PolicyType;\n abstract component: any;\n\n display(organization: Organization) {\n return true;\n }\n}\n\n@Directive()\nexport abstract class BasePolicyComponent implements OnInit {\n @Input() policyResponse: PolicyResponse;\n @Input() policy: BasePolicy;\n\n enabled = new UntypedFormControl(false);\n data: UntypedFormGroup = null;\n\n ngOnInit(): void {\n this.enabled.setValue(this.policyResponse.enabled);\n\n if (this.policyResponse.data != null) {\n this.loadData();\n }\n }\n\n loadData() {\n this.data.patchValue(this.policyResponse.data ?? {});\n }\n\n buildRequestData() {\n if (this.data != null) {\n return this.data.value;\n }\n\n return null;\n }\n\n buildRequest(policiesEnabledMap: Map) {\n const request = new PolicyRequest();\n request.enabled = this.enabled.value;\n request.type = this.policy.type;\n request.data = this.buildRequestData();\n\n return Promise.resolve(request);\n }\n}\n","import { Component } from \"@angular/core\";\n\nimport { PolicyType } from \"@bitwarden/common/admin-console/enums\";\n\nimport { BasePolicy, BasePolicyComponent } from \"./base-policy.component\";\n\nexport class DisableSendPolicy extends BasePolicy {\n name = \"disableSend\";\n description = \"disableSendPolicyDesc\";\n type = PolicyType.DisableSend;\n component = DisableSendPolicyComponent;\n}\n\n@Component({\n selector: \"policy-disable-send\",\n templateUrl: \"disable-send.component.html\",\n})\nexport class DisableSendPolicyComponent extends BasePolicyComponent {}\n","\n {{ \"disableSendExemption\" | i18n }}\n\n\n\n \n {{ \"turnOn\" | i18n }}\n\n","\n {{ \"keyConnectorPolicyRestriction\" | i18n }}\n\n\n
\n \n \n {{ \"turnOn\" | i18n }}\n \n\n \n \n {{ \"enforceOnLoginDesc\" | i18n }}\n \n\n
\n \n {{ \"minComplexityScore\" | i18n }}\n \n \n \n \n \n {{ \"minLength\" | i18n }}\n \n \n
\n\n \n \n A-Z\n \n \n \n a-z\n \n \n \n 0-9\n \n \n \n !@#$%^&*\n \n
\n","import { Component } from \"@angular/core\";\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\n\nimport { ControlsOf } from \"@bitwarden/angular/types/controls-of\";\nimport { OrganizationService } from \"@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction\";\nimport { PolicyType } from \"@bitwarden/common/admin-console/enums\";\nimport { MasterPasswordPolicyOptions } from \"@bitwarden/common/admin-console/models/domain/master-password-policy-options\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\nimport { Utils } from \"@bitwarden/common/platform/misc/utils\";\n\nimport { BasePolicy, BasePolicyComponent } from \"./base-policy.component\";\n\nexport class MasterPasswordPolicy extends BasePolicy {\n name = \"masterPassPolicyTitle\";\n description = \"masterPassPolicyDesc\";\n type = PolicyType.MasterPassword;\n component = MasterPasswordPolicyComponent;\n}\n\n@Component({\n selector: \"policy-master-password\",\n templateUrl: \"master-password.component.html\",\n})\nexport class MasterPasswordPolicyComponent extends BasePolicyComponent {\n MinPasswordLength = Utils.minimumPasswordLength;\n\n data: FormGroup> = this.formBuilder.group({\n minComplexity: [null],\n minLength: [this.MinPasswordLength, [Validators.min(Utils.minimumPasswordLength)]],\n requireUpper: [false],\n requireLower: [false],\n requireNumbers: [false],\n requireSpecial: [false],\n enforceOnLogin: [false],\n });\n\n passwordScores: { name: string; value: number }[];\n showKeyConnectorInfo = false;\n\n constructor(\n private formBuilder: FormBuilder,\n i18nService: I18nService,\n private organizationService: OrganizationService,\n ) {\n super();\n\n this.passwordScores = [\n { name: \"-- \" + i18nService.t(\"select\") + \" --\", value: null },\n { name: i18nService.t(\"weak\") + \" (0)\", value: 0 },\n { name: i18nService.t(\"weak\") + \" (1)\", value: 1 },\n { name: i18nService.t(\"weak\") + \" (2)\", value: 2 },\n { name: i18nService.t(\"good\") + \" (3)\", value: 3 },\n { name: i18nService.t(\"strong\") + \" (4)\", value: 4 },\n ];\n }\n\n async ngOnInit() {\n super.ngOnInit();\n const organization = await this.organizationService.get(this.policyResponse.organizationId);\n this.showKeyConnectorInfo = organization.keyConnectorEnabled;\n }\n}\n","
\n \n \n {{ \"turnOn\" | i18n }}\n \n\n
\n \n {{ \"defaultType\" | i18n }}\n \n \n \n \n
\n\n

{{ \"password\" | i18n }}

\n
\n \n {{ \"minLength\" | i18n }}\n \n \n
\n
\n \n {{ \"minNumbers\" | i18n }}\n \n \n \n {{ \"minSpecial\" | i18n }}\n \n \n
\n \n \n A-Z\n \n \n \n a-z\n \n \n \n 0-9\n \n \n \n !@#$%^&*\n \n

{{ \"passphrase\" | i18n }}

\n
\n \n {{ \"minimumNumberOfWords\" | i18n }}\n \n \n
\n \n \n {{ \"capitalize\" | i18n }}\n \n \n \n {{ \"includeNumber\" | i18n }}\n \n
\n","import { Component } from \"@angular/core\";\nimport { UntypedFormBuilder, Validators } from \"@angular/forms\";\n\nimport { PolicyType } from \"@bitwarden/common/admin-console/enums\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\n\nimport { BasePolicy, BasePolicyComponent } from \"./base-policy.component\";\n\nexport class PasswordGeneratorPolicy extends BasePolicy {\n name = \"passwordGenerator\";\n description = \"passwordGeneratorPolicyDesc\";\n type = PolicyType.PasswordGenerator;\n component = PasswordGeneratorPolicyComponent;\n}\n\n@Component({\n selector: \"policy-password-generator\",\n templateUrl: \"password-generator.component.html\",\n})\nexport class PasswordGeneratorPolicyComponent extends BasePolicyComponent {\n data = this.formBuilder.group({\n defaultType: [null],\n minLength: [null, [Validators.min(5), Validators.max(128)]],\n useUpper: [null],\n useLower: [null],\n useNumbers: [null],\n useSpecial: [null],\n minNumbers: [null, [Validators.min(0), Validators.max(9)]],\n minSpecial: [null, [Validators.min(0), Validators.max(9)]],\n minNumberWords: [null, [Validators.min(3), Validators.max(20)]],\n capitalize: [null],\n includeNumber: [null],\n });\n\n defaultTypes: { name: string; value: string }[];\n\n constructor(\n private formBuilder: UntypedFormBuilder,\n i18nService: I18nService,\n ) {\n super();\n\n this.defaultTypes = [\n { name: i18nService.t(\"userPreference\"), value: null },\n { name: i18nService.t(\"password\"), value: \"password\" },\n { name: i18nService.t(\"passphrase\"), value: \"passphrase\" },\n ];\n }\n}\n","import { Component } from \"@angular/core\";\n\nimport { PolicyType } from \"@bitwarden/common/admin-console/enums\";\n\nimport { BasePolicy, BasePolicyComponent } from \"./base-policy.component\";\n\nexport class PersonalOwnershipPolicy extends BasePolicy {\n name = \"personalOwnership\";\n description = \"personalOwnershipPolicyDesc\";\n type = PolicyType.PersonalOwnership;\n component = PersonalOwnershipPolicyComponent;\n}\n\n@Component({\n selector: \"policy-personal-ownership\",\n templateUrl: \"personal-ownership.component.html\",\n})\nexport class PersonalOwnershipPolicyComponent extends BasePolicyComponent {}\n","\n {{ \"personalOwnershipExemption\" | i18n }}\n\n\n
\n
\n \n \n
\n
\n","import { Component } from \"@angular/core\";\n\nimport { PolicyType } from \"@bitwarden/common/admin-console/enums\";\nimport { Organization } from \"@bitwarden/common/admin-console/models/domain/organization\";\nimport { PolicyRequest } from \"@bitwarden/common/admin-console/models/request/policy.request\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\n\nimport { BasePolicy, BasePolicyComponent } from \"./base-policy.component\";\n\nexport class RequireSsoPolicy extends BasePolicy {\n name = \"requireSso\";\n description = \"requireSsoPolicyDesc\";\n type = PolicyType.RequireSso;\n component = RequireSsoPolicyComponent;\n\n display(organization: Organization) {\n return organization.useSso;\n }\n}\n\n@Component({\n selector: \"policy-require-sso\",\n templateUrl: \"require-sso.component.html\",\n})\nexport class RequireSsoPolicyComponent extends BasePolicyComponent {\n constructor(private i18nService: I18nService) {\n super();\n }\n\n buildRequest(policiesEnabledMap: Map): Promise {\n const singleOrgEnabled = policiesEnabledMap.get(PolicyType.SingleOrg) ?? false;\n if (this.enabled.value && !singleOrgEnabled) {\n throw new Error(this.i18nService.t(\"requireSsoPolicyReqError\"));\n }\n\n return super.buildRequest(policiesEnabledMap);\n }\n}\n","\n {{ \"requireSsoPolicyReq\" | i18n }}\n\n\n {{ \"requireSsoExemption\" | i18n }}\n\n\n\n \n {{ \"turnOn\" | i18n }}\n\n","\n {{ \"keyConnectorPolicyRestriction\" | i18n }}\n\n\n\n {{ \"accountRecoverySingleOrgRequirementDesc\" | i18n }}\n\n\n\n {{ \"accountRecoveryPolicyWarning\" | i18n }}\n\n\n\n \n {{ \"turnOn\" | i18n }}\n\n\n\n \n \n {{ \"resetPasswordPolicyAutoEnrollCheckbox\" | i18n }}\n \n\n","import { Component } from \"@angular/core\";\nimport { FormBuilder } from \"@angular/forms\";\n\nimport { OrganizationService } from \"@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction\";\nimport { PolicyType } from \"@bitwarden/common/admin-console/enums\";\nimport { Organization } from \"@bitwarden/common/admin-console/models/domain/organization\";\n\nimport { BasePolicy, BasePolicyComponent } from \"./base-policy.component\";\n\nexport class ResetPasswordPolicy extends BasePolicy {\n name = \"accountRecoveryPolicy\";\n description = \"accountRecoveryPolicyDesc\";\n type = PolicyType.ResetPassword;\n component = ResetPasswordPolicyComponent;\n\n display(organization: Organization) {\n return organization.useResetPassword;\n }\n}\n\n@Component({\n selector: \"policy-reset-password\",\n templateUrl: \"reset-password.component.html\",\n})\nexport class ResetPasswordPolicyComponent extends BasePolicyComponent {\n data = this.formBuilder.group({\n autoEnrollEnabled: false,\n });\n showKeyConnectorInfo = false;\n\n constructor(\n private formBuilder: FormBuilder,\n private organizationService: OrganizationService,\n ) {\n super();\n }\n\n async ngOnInit() {\n super.ngOnInit();\n const organization = await this.organizationService.get(this.policyResponse.organizationId);\n this.showKeyConnectorInfo = organization.keyConnectorEnabled;\n }\n}\n","import { Component } from \"@angular/core\";\nimport { UntypedFormBuilder } from \"@angular/forms\";\n\nimport { PolicyType } from \"@bitwarden/common/admin-console/enums\";\n\nimport { BasePolicy, BasePolicyComponent } from \"./base-policy.component\";\n\nexport class SendOptionsPolicy extends BasePolicy {\n name = \"sendOptions\";\n description = \"sendOptionsPolicyDesc\";\n type = PolicyType.SendOptions;\n component = SendOptionsPolicyComponent;\n}\n\n@Component({\n selector: \"policy-send-options\",\n templateUrl: \"send-options.component.html\",\n})\nexport class SendOptionsPolicyComponent extends BasePolicyComponent {\n data = this.formBuilder.group({\n disableHideEmail: false,\n });\n\n constructor(private formBuilder: UntypedFormBuilder) {\n super();\n }\n}\n","\n {{ \"sendOptionsExemption\" | i18n }}\n\n\n\n \n {{ \"turnOn\" | i18n }}\n\n\n
\n

{{ \"options\" | i18n }}

\n \n \n {{ \"disableHideEmail\" | i18n }}\n \n
\n","import { Component } from \"@angular/core\";\n\nimport { PolicyType } from \"@bitwarden/common/admin-console/enums\";\nimport { PolicyRequest } from \"@bitwarden/common/admin-console/models/request/policy.request\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\n\nimport { BasePolicy, BasePolicyComponent } from \"./base-policy.component\";\n\nexport class SingleOrgPolicy extends BasePolicy {\n name = \"singleOrg\";\n description = \"singleOrgDesc\";\n type = PolicyType.SingleOrg;\n component = SingleOrgPolicyComponent;\n}\n\n@Component({\n selector: \"policy-single-org\",\n templateUrl: \"single-org.component.html\",\n})\nexport class SingleOrgPolicyComponent extends BasePolicyComponent {\n constructor(private i18nService: I18nService) {\n super();\n }\n\n buildRequest(policiesEnabledMap: Map): Promise {\n if (!this.enabled.value) {\n if (policiesEnabledMap.get(PolicyType.RequireSso) ?? false) {\n throw new Error(\n this.i18nService.t(\"disableRequiredError\", this.i18nService.t(\"requireSso\")),\n );\n }\n\n if (policiesEnabledMap.get(PolicyType.MaximumVaultTimeout) ?? false) {\n throw new Error(\n this.i18nService.t(\n \"disableRequiredError\",\n this.i18nService.t(\"maximumVaultTimeoutLabel\"),\n ),\n );\n }\n }\n\n return super.buildRequest(policiesEnabledMap);\n }\n}\n","\n {{ \"singleOrgPolicyWarning\" | i18n }}\n\n\n\n \n {{ \"turnOn\" | i18n }}\n\n","import { Component } from \"@angular/core\";\n\nimport { PolicyType } from \"@bitwarden/common/admin-console/enums\";\n\nimport { BasePolicy, BasePolicyComponent } from \"./base-policy.component\";\n\nexport class TwoFactorAuthenticationPolicy extends BasePolicy {\n name = \"twoStepLoginPolicyTitle\";\n description = \"twoStepLoginPolicyDesc\";\n type = PolicyType.TwoFactorAuthentication;\n component = TwoFactorAuthenticationPolicyComponent;\n}\n\n@Component({\n selector: \"policy-two-factor-authentication\",\n templateUrl: \"two-factor-authentication.component.html\",\n})\nexport class TwoFactorAuthenticationPolicyComponent extends BasePolicyComponent {}\n","\n {{ \"twoStepLoginPolicyWarning\" | i18n }}\n\n\n\n \n {{ \"turnOn\" | i18n }}\n\n","
\n \n {{ \"editPolicy\" | i18n }} - {{ policy.name | i18n }}\n\n \n
\n \n {{ \"loading\" | i18n }}\n
\n
\n

{{ policy.description | i18n }}

\n \n
\n
\n \n \n \n \n
\n
\n","import { DIALOG_DATA, DialogConfig, DialogRef } from \"@angular/cdk/dialog\";\nimport { ChangeDetectorRef, Component, Inject, ViewChild, ViewContainerRef } from \"@angular/core\";\nimport { FormBuilder } from \"@angular/forms\";\n\nimport { PolicyApiServiceAbstraction } from \"@bitwarden/common/admin-console/abstractions/policy/policy-api.service.abstraction\";\nimport { PolicyType } from \"@bitwarden/common/admin-console/enums\";\nimport { PolicyRequest } from \"@bitwarden/common/admin-console/models/request/policy.request\";\nimport { PolicyResponse } from \"@bitwarden/common/admin-console/models/response/policy.response\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\nimport { PlatformUtilsService } from \"@bitwarden/common/platform/abstractions/platform-utils.service\";\nimport { DialogService } from \"@bitwarden/components\";\n\nimport { BasePolicy, BasePolicyComponent } from \"../policies\";\n\nexport type PolicyEditDialogData = {\n /** Returns policy abstracts. */\n policy: BasePolicy;\n /** Returns a unique organization id */\n organizationId: string;\n /** A map indicating whether each policy type is enabled or disabled. */\n policiesEnabledMap: Map;\n};\n\nexport enum PolicyEditDialogResult {\n Saved = \"saved\",\n}\n@Component({\n selector: \"app-policy-edit\",\n templateUrl: \"policy-edit.component.html\",\n})\nexport class PolicyEditComponent {\n @ViewChild(\"policyForm\", { read: ViewContainerRef, static: true })\n policyFormRef: ViewContainerRef;\n\n policyType = PolicyType;\n loading = true;\n enabled = false;\n formPromise: Promise;\n defaultTypes: any[];\n policyComponent: BasePolicyComponent;\n\n private policyResponse: PolicyResponse;\n formGroup = this.formBuilder.group({\n enabled: [this.enabled],\n });\n constructor(\n @Inject(DIALOG_DATA) protected data: PolicyEditDialogData,\n private policyApiService: PolicyApiServiceAbstraction,\n private i18nService: I18nService,\n private platformUtilsService: PlatformUtilsService,\n private cdr: ChangeDetectorRef,\n private formBuilder: FormBuilder,\n private dialogRef: DialogRef,\n ) {}\n get policy(): BasePolicy {\n return this.data.policy;\n }\n\n async ngAfterViewInit() {\n await this.load();\n this.loading = false;\n\n this.policyComponent = this.policyFormRef.createComponent(this.data.policy.component)\n .instance as BasePolicyComponent;\n this.policyComponent.policy = this.data.policy;\n this.policyComponent.policyResponse = this.policyResponse;\n\n this.cdr.detectChanges();\n }\n\n async load() {\n try {\n this.policyResponse = await this.policyApiService.getPolicy(\n this.data.organizationId,\n this.data.policy.type,\n );\n } catch (e) {\n if (e.statusCode === 404) {\n this.policyResponse = new PolicyResponse({ Enabled: false });\n } else {\n throw e;\n }\n }\n }\n\n submit = async () => {\n let request: PolicyRequest;\n try {\n request = await this.policyComponent.buildRequest(this.data.policiesEnabledMap);\n } catch (e) {\n this.platformUtilsService.showToast(\"error\", null, e.message);\n return;\n }\n this.formPromise = this.policyApiService.putPolicy(\n this.data.organizationId,\n this.data.policy.type,\n request,\n );\n await this.formPromise;\n this.platformUtilsService.showToast(\n \"success\",\n null,\n this.i18nService.t(\"editedPolicyId\", this.i18nService.t(this.data.policy.name)),\n );\n this.dialogRef.close(PolicyEditDialogResult.Saved);\n };\n\n static open = (dialogService: DialogService, config: DialogConfig) => {\n return dialogService.open(PolicyEditComponent, config);\n };\n}\n","\n\n\n \n \n {{ \"loading\" | i18n }}\n \n \n \n \n \n \n {{\n \"on\" | i18n\n }}\n {{ p.description | i18n }}\n \n \n \n \n \n\n","import { Component, OnInit, ViewChild, ViewContainerRef } from \"@angular/core\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { lastValueFrom } from \"rxjs\";\nimport { first } from \"rxjs/operators\";\n\nimport { OrganizationService } from \"@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction\";\nimport { PolicyApiServiceAbstraction } from \"@bitwarden/common/admin-console/abstractions/policy/policy-api.service.abstraction\";\nimport { PolicyType } from \"@bitwarden/common/admin-console/enums\";\nimport { Organization } from \"@bitwarden/common/admin-console/models/domain/organization\";\nimport { PolicyResponse } from \"@bitwarden/common/admin-console/models/response/policy.response\";\nimport { DialogService } from \"@bitwarden/components\";\n\nimport { PolicyListService } from \"../../core/policy-list.service\";\nimport { BasePolicy } from \"../policies\";\n\nimport { PolicyEditComponent, PolicyEditDialogResult } from \"./policy-edit.component\";\n\n@Component({\n selector: \"app-org-policies\",\n templateUrl: \"policies.component.html\",\n})\n// eslint-disable-next-line rxjs-angular/prefer-takeuntil\nexport class PoliciesComponent implements OnInit {\n @ViewChild(\"editTemplate\", { read: ViewContainerRef, static: true })\n editModalRef: ViewContainerRef;\n\n loading = true;\n organizationId: string;\n policies: BasePolicy[];\n organization: Organization;\n\n private orgPolicies: PolicyResponse[];\n protected policiesEnabledMap: Map = new Map();\n\n constructor(\n private route: ActivatedRoute,\n private organizationService: OrganizationService,\n private policyApiService: PolicyApiServiceAbstraction,\n private policyListService: PolicyListService,\n private dialogService: DialogService,\n ) {}\n\n async ngOnInit() {\n // eslint-disable-next-line rxjs-angular/prefer-takeuntil, rxjs/no-async-subscribe\n this.route.parent.parent.params.subscribe(async (params) => {\n this.organizationId = params.organizationId;\n this.organization = await this.organizationService.get(this.organizationId);\n this.policies = this.policyListService.getPolicies();\n\n await this.load();\n\n // Handle policies component launch from Event message\n /* eslint-disable-next-line rxjs-angular/prefer-takeuntil, rxjs/no-async-subscribe, rxjs/no-nested-subscribe */\n this.route.queryParams.pipe(first()).subscribe(async (qParams) => {\n if (qParams.policyId != null) {\n const policyIdFromEvents: string = qParams.policyId;\n for (const orgPolicy of this.orgPolicies) {\n if (orgPolicy.id === policyIdFromEvents) {\n for (let i = 0; i < this.policies.length; i++) {\n if (this.policies[i].type === orgPolicy.type) {\n // FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.edit(this.policies[i]);\n break;\n }\n }\n break;\n }\n }\n }\n });\n });\n }\n\n async load() {\n const response = await this.policyApiService.getPolicies(this.organizationId);\n this.orgPolicies = response.data != null && response.data.length > 0 ? response.data : [];\n this.orgPolicies.forEach((op) => {\n this.policiesEnabledMap.set(op.type, op.enabled);\n });\n\n this.loading = false;\n }\n\n async edit(policy: BasePolicy) {\n const dialogRef = PolicyEditComponent.open(this.dialogService, {\n data: {\n policy: policy,\n organizationId: this.organizationId,\n policiesEnabledMap: this.policiesEnabledMap,\n },\n });\n\n const result = await lastValueFrom(dialogRef.closed);\n if (result === PolicyEditDialogResult.Saved) {\n await this.load();\n }\n }\n}\n","import { DIALOG_DATA, DialogConfig, DialogRef } from \"@angular/cdk/dialog\";\nimport { Component, Inject, OnDestroy, OnInit } from \"@angular/core\";\nimport { FormBuilder, FormControl, Validators } from \"@angular/forms\";\nimport { combineLatest, Subject, takeUntil } from \"rxjs\";\n\nimport { OrganizationApiServiceAbstraction } from \"@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction\";\nimport { OrganizationService } from \"@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction\";\nimport { Organization } from \"@bitwarden/common/admin-console/models/domain/organization\";\nimport { UserVerificationService } from \"@bitwarden/common/auth/abstractions/user-verification/user-verification.service.abstraction\";\nimport { Verification } from \"@bitwarden/common/auth/types/verification\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\nimport { PlatformUtilsService } from \"@bitwarden/common/platform/abstractions/platform-utils.service\";\nimport { Utils } from \"@bitwarden/common/platform/misc/utils\";\nimport { CipherService } from \"@bitwarden/common/vault/abstractions/cipher.service\";\nimport { CipherType } from \"@bitwarden/common/vault/enums\";\nimport { CipherView } from \"@bitwarden/common/vault/models/view/cipher.view\";\nimport { DialogService } from \"@bitwarden/components\";\n\nimport { UserVerificationModule } from \"../../../../auth/shared/components/user-verification\";\nimport { SharedModule } from \"../../../../shared/shared.module\";\n\nclass CountBasedLocalizationKey {\n singular: string;\n plural: string;\n\n getKey(count: number) {\n return count == 1 ? this.singular : this.plural;\n }\n\n constructor(singular: string, plural: string) {\n this.singular = singular;\n this.plural = plural;\n }\n}\n\nclass OrganizationContentSummaryItem {\n count: number;\n\n get localizationKey(): string {\n return this.localizationKeyOptions.getKey(this.count);\n }\n\n private localizationKeyOptions: CountBasedLocalizationKey;\n\n constructor(count: number, localizationKeyOptions: CountBasedLocalizationKey) {\n this.count = count;\n this.localizationKeyOptions = localizationKeyOptions;\n }\n}\n\nclass OrganizationContentSummary {\n totalItemCount = 0;\n itemCountByType: OrganizationContentSummaryItem[] = [];\n}\n\nexport interface DeleteOrganizationDialogParams {\n organizationId: string;\n\n requestType: \"InvalidFamiliesForEnterprise\" | \"RegularDelete\";\n}\n\nexport enum DeleteOrganizationDialogResult {\n Deleted = \"deleted\",\n Canceled = \"canceled\",\n}\n\n@Component({\n selector: \"app-delete-organization\",\n standalone: true,\n imports: [SharedModule, UserVerificationModule],\n templateUrl: \"delete-organization-dialog.component.html\",\n})\nexport class DeleteOrganizationDialogComponent implements OnInit, OnDestroy {\n private destroy$ = new Subject();\n\n loaded: boolean;\n deleteOrganizationRequestType: \"InvalidFamiliesForEnterprise\" | \"RegularDelete\" = \"RegularDelete\";\n organization: Organization;\n organizationContentSummary: OrganizationContentSummary = new OrganizationContentSummary();\n secret: Verification;\n\n protected formGroup = this.formBuilder.group({\n secret: new FormControl(null, [Validators.required]),\n });\n formPromise: Promise;\n\n constructor(\n @Inject(DIALOG_DATA) private params: DeleteOrganizationDialogParams,\n private dialogRef: DialogRef,\n private i18nService: I18nService,\n private platformUtilsService: PlatformUtilsService,\n private userVerificationService: UserVerificationService,\n private cipherService: CipherService,\n private organizationService: OrganizationService,\n private organizationApiService: OrganizationApiServiceAbstraction,\n private formBuilder: FormBuilder,\n ) {}\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n async ngOnInit(): Promise {\n this.deleteOrganizationRequestType = this.params.requestType;\n\n combineLatest([\n this.organizationService.get$(this.params.organizationId),\n this.cipherService.getAllFromApiForOrganization(this.params.organizationId),\n ])\n .pipe(takeUntil(this.destroy$))\n .subscribe(([organization, ciphers]) => {\n this.organization = organization;\n this.organizationContentSummary = this.buildOrganizationContentSummary(ciphers);\n this.loaded = true;\n });\n }\n\n protected submit = async () => {\n await this.userVerificationService\n .buildRequest(this.formGroup.value.secret)\n .then((request) => this.organizationApiService.delete(this.organization.id, request));\n\n this.platformUtilsService.showToast(\n \"success\",\n this.i18nService.t(\"organizationDeleted\"),\n this.i18nService.t(\"organizationDeletedDesc\"),\n );\n this.dialogRef.close(DeleteOrganizationDialogResult.Deleted);\n };\n\n private buildOrganizationContentSummary(ciphers: CipherView[]): OrganizationContentSummary {\n const organizationContentSummary = new OrganizationContentSummary();\n const organizationItems = ciphers.filter((item) => item.deletedDate == null);\n\n if (organizationItems.length < 1) {\n return organizationContentSummary;\n }\n\n organizationContentSummary.totalItemCount = organizationItems.length;\n for (const cipherType of Utils.iterateEnum(CipherType)) {\n const count = this.getOrganizationItemCountByType(organizationItems, cipherType);\n if (count > 0) {\n organizationContentSummary.itemCountByType.push(\n new OrganizationContentSummaryItem(\n count,\n this.getOrganizationItemLocalizationKeysByType(CipherType[cipherType]),\n ),\n );\n }\n }\n\n return organizationContentSummary;\n }\n\n private getOrganizationItemCountByType(items: CipherView[], type: CipherType) {\n return items.filter((item) => item.type == type).length;\n }\n\n private getOrganizationItemLocalizationKeysByType(type: string): CountBasedLocalizationKey {\n return new CountBasedLocalizationKey(`type${type}`, `type${type}Plural`);\n }\n}\n\n/**\n * Strongly typed helper to open a Delete Organization dialog\n * @param dialogService Instance of the dialog service that will be used to open the dialog\n * @param config Configuration for the dialog\n */\nexport function openDeleteOrganizationDialog(\n dialogService: DialogService,\n config: DialogConfig,\n) {\n return dialogService.open(\n DeleteOrganizationDialogComponent,\n config,\n );\n}\n","
\n \n {{ \"deleteOrganization\" | i18n }}\n
\n {{\n \"deletingOrganizationIsPermanentWarning\" | i18n: organization?.name\n }}\n

\n \n {{ \"orgCreatedSponsorshipInvalid\" | i18n }}\n \n \n 0\">\n {{ \"deletingOrganizationContentWarning\" | i18n: organization?.name }}\n

    \n
  • \n {{ type.count }} {{ type.localizationKey | i18n }}\n
  • \n
\n {{ \"deletingOrganizationActiveUserAccountsWarning\" | i18n }}\n \n \n

\n \n
\n
\n \n \n
\n
\n
\n","import { AbstractControl, FormArray } from \"@angular/forms\";\n\nexport type SelectionItemId = {\n id: string;\n};\n\nfunction findSortedIndex(sortedArray: T[], val: T, compareFn: (a: T, b: T) => number) {\n let low = 0;\n let high = sortedArray.length || 0;\n let mid = -1,\n c = 0;\n while (low < high) {\n mid = Math.floor((low + high) / 2);\n c = compareFn(sortedArray[mid], val);\n if (c < 0) {\n low = mid + 1;\n } else if (c > 0) {\n high = mid;\n } else {\n return mid;\n }\n }\n return low;\n}\n\n/**\n * Utility to help manage a list of selectable items for use with Reactive Angular forms and FormArrays.\n *\n * It supports selecting/deselecting items, keeping items sorted, and synchronizing the selected items\n * with an array of FormControl.\n *\n * The first type parameter TItem represents the item being selected/deselected, it must have an `id`\n * property for identification/comparison. The second type parameter TControlValue represents the value\n * type of the form control.\n */\nexport class FormSelectionList<\n TItem extends SelectionItemId,\n TControlValue extends SelectionItemId,\n> {\n allItems: TItem[] = [];\n /**\n * Sorted list of selected items\n * Immutable and should be recreated whenever a modification is made\n */\n selectedItems: TItem[] = [];\n\n /**\n * Sorted list of deselected items\n * Immutable and should be recreated whenever a modification is made\n */\n deselectedItems: TItem[] = [];\n\n /**\n * Sorted FormArray that corresponds and stays in sync with the selectedItems\n */\n formArray: FormArray, TControlValue>> = new FormArray([]);\n\n /**\n * Construct a new FormSelectionList\n * @param controlFactory - Factory responsible for creating initial form controls for each selected item. It is\n * provided a copy of the selected item for any form control initialization logic. Specify any additional form\n * control options or validators here.\n * @param compareFn - Comparison function used for sorting the items.\n */\n constructor(\n private controlFactory: (item: TItem) => AbstractControl, TControlValue>,\n private compareFn: (a: TItem, b: TItem) => number,\n ) {}\n\n /**\n * Select multiple items by their ids at once. Optionally provide an initial form control value.\n * @param ids - List of ids to select\n * @param initialValue - Value that will be applied to the corresponding form controls\n * The provided `id` arguments will be automatically assigned to each form control value\n */\n selectItems(ids: string[], initialValue?: Partial | undefined) {\n for (const id of ids) {\n this.selectItem(id, initialValue);\n }\n }\n\n /**\n * Deselect multiple items by their ids at once\n * @param ids - List of ids to deselect\n */\n deselectItems(ids: string[]) {\n for (const id of ids) {\n this.deselectItem(id);\n }\n }\n\n deselectAll() {\n this.formArray.clear();\n this.selectedItems = [];\n this.deselectedItems = [...this.allItems];\n }\n\n /**\n * Select a single item by id.\n *\n * Maintains list order for both selected items, deselected items, and the FormArray.\n *\n * @param id - Id of the item to select\n * @param initialValue - Value that will be applied to the corresponding form control for the selected item.\n * The provided `id` argument will be automatically assigned unless explicitly set in the initialValue.\n */\n selectItem(id: string, initialValue?: Partial) {\n const index = this.deselectedItems.findIndex((o) => o.id === id);\n\n if (index === -1) {\n return;\n }\n\n const selectedOption = this.deselectedItems[index];\n\n // Note: Changes to the deselected/selected arrays must create a new copy of the array\n // in order for Angular's Change Detection to pick up the modification (i.e. treat the arrays as immutable)\n\n // Remove from the list of deselected options\n this.deselectedItems = [\n ...this.deselectedItems.slice(0, index),\n ...this.deselectedItems.slice(index + 1),\n ];\n\n // Insert into the sorted selected options list\n const sortedInsertIndex = findSortedIndex(this.selectedItems, selectedOption, this.compareFn);\n\n this.selectedItems = [\n ...this.selectedItems.slice(0, sortedInsertIndex),\n selectedOption,\n ...this.selectedItems.slice(sortedInsertIndex),\n ];\n\n const newControl = this.controlFactory(selectedOption);\n\n // Patch the value and ensure the `id` is set\n newControl.patchValue({\n id,\n ...initialValue,\n });\n\n this.formArray.insert(sortedInsertIndex, newControl);\n }\n\n /**\n * Deselect a single item by id.\n *\n * Maintains list order for both selected items, deselected items, and the FormArray.\n *\n * @param id - Id of the item to deselect\n */\n deselectItem(id: string) {\n const index = this.selectedItems.findIndex((o) => o.id === id);\n\n if (index === -1) {\n return;\n }\n\n const deselectedOption = this.selectedItems[index];\n\n // Note: Changes to the deselected/selected arrays must create a new copy of the array\n // in order for Angular's Change Detection to pick up the modification (i.e. treat the arrays as immutable)\n\n // Remove from the list of selected items (and FormArray)\n this.selectedItems = [\n ...this.selectedItems.slice(0, index),\n ...this.selectedItems.slice(index + 1),\n ];\n this.formArray.removeAt(index);\n\n // Insert into the sorted deselected array\n const sortedInsertIndex = findSortedIndex(\n this.deselectedItems,\n deselectedOption,\n this.compareFn,\n );\n\n this.deselectedItems = [\n ...this.deselectedItems.slice(0, sortedInsertIndex),\n deselectedOption,\n ...this.deselectedItems.slice(sortedInsertIndex),\n ];\n }\n\n /**\n * Populate the list of deselected items, and optional specify which items should be selected and with what initial\n * value for their Form Control\n * @param items - A list of all items. (Will be sorted internally)\n * @param selectedItems - The items to select initially\n */\n populateItems(items: TItem[], selectedItems: TControlValue[] = []) {\n this.formArray.clear();\n this.allItems = [...items].sort(this.compareFn);\n this.selectedItems = [];\n this.deselectedItems = [...this.allItems];\n\n for (const selectedItem of selectedItems) {\n this.selectItem(selectedItem.id, selectedItem);\n }\n }\n\n /**\n * Helper method to iterate over each \"selected\" form control and its corresponding item\n * @param fn - The function to call for each form control and its corresponding item\n */\n forEachControlItem(\n fn: (control: AbstractControl, TControlValue>, value: TItem) => void,\n ) {\n for (let i = 0; i < this.formArray.length; i++) {\n // The selectedItems array and formArray are explicitly kept in sync,\n // so we can safely assume the index of the form control and item are the same\n fn(this.formArray.at(i), this.selectedItems[i]);\n }\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\nimport { OrganizationUserType } from \"@bitwarden/common/admin-console/enums\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\n\n@Pipe({\n name: \"userType\",\n})\nexport class UserTypePipe implements PipeTransform {\n constructor(private i18nService: I18nService) {}\n\n transform(value?: OrganizationUserType, unknownText?: string): string {\n if (value == null) {\n return unknownText ?? this.i18nService.t(\"unknown\");\n }\n switch (value) {\n case OrganizationUserType.Owner:\n return this.i18nService.t(\"owner\");\n case OrganizationUserType.Admin:\n return this.i18nService.t(\"admin\");\n case OrganizationUserType.User:\n return this.i18nService.t(\"user\");\n case OrganizationUserType.Manager:\n return this.i18nService.t(\"manager\");\n case OrganizationUserType.Custom:\n return this.i18nService.t(\"custom\");\n }\n }\n}\n","\n\n
\n \n {{ \"permission\" | i18n }}\n \n \n \n \n \n\n \n {{ selectorLabelText }}\n \n {{ selectorHelpText }}\n \n
\n\n\n \n \n {{ columnHeader }}\n \n
\n {{ \"permission\" | i18n }}\n
\n \n {{ \"role\" | i18n }}\n {{ \"group\" | i18n }}\n \n \n
\n \n \n \n
\n \n
\n
\n {{ item.labelName }}\n \n {{ \"invited\" | i18n }}\n \n
\n
\n {{ $any(item).email }}\n
\n
\n
\n\n
\n \n {{ item.labelName }}\n
\n \n\n \n \n \n\n \n \n {{ \"canEdit\" | i18n }}\n \n \n\n \n {{ permissionLabelId(item.readonlyPermission) | i18n }}\n \n \n \n\n \n {{ $any(item).role | userType: \"-\" }}\n \n\n \n {{ $any(item).viaGroupName ?? \"-\" }}\n \n\n \n \n \n \n \n {{ emptySelectionText }}\n \n
\n
\n","import { Component, forwardRef, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport {\n ControlValueAccessor,\n FormBuilder,\n FormControl,\n FormGroup,\n NG_VALUE_ACCESSOR,\n} from \"@angular/forms\";\nimport { Subject, takeUntil } from \"rxjs\";\n\nimport { ControlsOf } from \"@bitwarden/angular/types/controls-of\";\nimport { FormSelectionList } from \"@bitwarden/angular/utils/form-selection-list\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\nimport { SelectItemView } from \"@bitwarden/components/src/multi-select/models/select-item-view\";\n\nimport {\n AccessItemType,\n AccessItemValue,\n AccessItemView,\n CollectionPermission,\n getPermissionList,\n Permission,\n} from \"./access-selector.models\";\n\nexport enum PermissionMode {\n /**\n * No permission controls or column present. No permission values are emitted.\n */\n Hidden = \"hidden\",\n\n /**\n * No permission controls. Column rendered an if available on an item. No permission values are emitted\n */\n Readonly = \"readonly\",\n\n /**\n * Permission Controls and column present. Permission values are emitted.\n */\n Edit = \"edit\",\n}\n\n@Component({\n selector: \"bit-access-selector\",\n templateUrl: \"access-selector.component.html\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AccessSelectorComponent),\n multi: true,\n },\n ],\n})\nexport class AccessSelectorComponent implements ControlValueAccessor, OnInit, OnDestroy {\n private destroy$ = new Subject();\n private notifyOnChange: (v: unknown) => void;\n private notifyOnTouch: () => void;\n private pauseChangeNotification: boolean;\n\n /**\n * Updates the enabled/disabled state of provided row form group based on the item's readonly state.\n * If a row is enabled, it also updates the enabled/disabled state of the permission control\n * based on the item's accessAllItems state and the current value of `permissionMode`.\n * @param controlRow - The form group for the row to update\n * @param item - The access item that is represented by the row\n */\n private updateRowControlDisableState = (\n controlRow: FormGroup>,\n item: AccessItemView,\n ) => {\n // Disable entire row form group if readonly\n if (item.readonly) {\n controlRow.disable();\n } else {\n controlRow.enable();\n\n // The enable() above also enables the permission control, so we need to disable it again\n // Disable permission control if accessAllItems is enabled or not in Edit mode\n if (item.accessAllItems || this.permissionMode != PermissionMode.Edit) {\n controlRow.controls.permission.disable();\n }\n }\n };\n\n /**\n * Updates the enabled/disabled state of ALL row form groups based on each item's readonly state.\n */\n private updateAllRowControlDisableStates = () => {\n this.selectionList.forEachControlItem((controlRow, item) => {\n this.updateRowControlDisableState(controlRow as FormGroup>, item);\n });\n };\n\n /**\n * The internal selection list that tracks the value of this form control / component.\n * It's responsible for keeping items sorted and synced with the rendered form controls\n * @protected\n */\n protected selectionList = new FormSelectionList((item) => {\n const permissionControl = this.formBuilder.control(this.initialPermission);\n\n const fg = this.formBuilder.group>({\n id: new FormControl(item.id),\n type: new FormControl(item.type),\n permission: permissionControl,\n });\n\n this.updateRowControlDisableState(fg, item);\n\n return fg;\n }, this._itemComparator.bind(this));\n\n /**\n * Internal form group for this component.\n * @protected\n */\n protected formGroup = this.formBuilder.group({\n items: this.selectionList.formArray,\n });\n\n protected itemType = AccessItemType;\n protected permissionList: Permission[];\n protected initialPermission = CollectionPermission.View;\n\n /**\n * When disabled, the access selector will make the assumption that a readonly state is desired.\n * The PermissionMode will be set to Readonly\n * The Multi-Select control will be hidden\n * The delete action on each row item will be hidden\n * The readonly permission label/property needs to configured on the access item views being passed into the component\n */\n disabled: boolean;\n\n /**\n * List of all selectable items that. Sorted internally.\n */\n @Input()\n get items(): AccessItemView[] {\n return this.selectionList.allItems;\n }\n\n set items(val: AccessItemView[]) {\n const selected = (this.selectionList.formArray.getRawValue() ?? []).concat(\n val.filter((m) => m.readonly),\n );\n this.selectionList.populateItems(\n val.map((m) => {\n m.icon = m.icon ?? this.itemIcon(m); // Ensure an icon is set\n return m;\n }),\n selected,\n );\n }\n\n /**\n * Permission mode that controls if the permission form controls and column should be present.\n */\n @Input()\n get permissionMode(): PermissionMode {\n return this._permissionMode;\n }\n\n set permissionMode(value: PermissionMode) {\n this._permissionMode = value;\n // Update any internal permission controls\n this.updateAllRowControlDisableStates();\n }\n private _permissionMode: PermissionMode = PermissionMode.Hidden;\n\n /**\n * Column header for the selected items table\n */\n @Input() columnHeader: string;\n\n /**\n * Label used for the ng selector\n */\n @Input() selectorLabelText: string;\n\n /**\n * Helper text displayed under the ng selector\n */\n @Input() selectorHelpText: string;\n\n /**\n * Text that is shown in the table when no items are selected\n */\n @Input() emptySelectionText: string;\n\n /**\n * Flag for if the member roles column should be present\n */\n @Input() showMemberRoles: boolean;\n\n /**\n * Flag for if the group column should be present\n */\n @Input() showGroupColumn: boolean;\n\n /**\n * Enable Flexible Collections changes (feature flag)\n */\n @Input() set flexibleCollectionsEnabled(value: boolean) {\n this._flexibleCollectionsEnabled = value;\n this.permissionList = getPermissionList(value);\n }\n\n /**\n * Hide the multi-select so that new items cannot be added\n */\n @Input() hideMultiSelect = false;\n\n private _flexibleCollectionsEnabled: boolean;\n\n constructor(\n private readonly formBuilder: FormBuilder,\n private readonly i18nService: I18nService,\n ) {}\n\n /** Required for NG_VALUE_ACCESSOR */\n registerOnChange(fn: any): void {\n this.notifyOnChange = fn;\n }\n\n /** Required for NG_VALUE_ACCESSOR */\n registerOnTouched(fn: any): void {\n this.notifyOnTouch = fn;\n }\n\n /** Required for NG_VALUE_ACCESSOR */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n\n // Keep the internal FormGroup in sync\n if (this.disabled) {\n this.permissionMode = PermissionMode.Readonly;\n this.formGroup.disable();\n } else {\n this.formGroup.enable();\n\n // The enable() above automatically enables all the row controls,\n // so we need to disable the readonly ones again\n this.updateAllRowControlDisableStates();\n }\n }\n\n /** Required for NG_VALUE_ACCESSOR */\n writeValue(selectedItems: AccessItemValue[]): void {\n // Modifying the selection list, mistakenly fires valueChanges in the\n // internal form array, so we need to know to pause external notification\n this.pauseChangeNotification = true;\n\n // Always clear the internal selection list on a new value\n this.selectionList.deselectAll();\n\n // We need to also select any read only items to appear in the table\n this.selectionList.selectItems(this.items.filter((m) => m.readonly).map((m) => m.id));\n\n // If the new value is null, then we're done\n if (selectedItems == null) {\n this.pauseChangeNotification = false;\n return;\n }\n\n // Unable to handle other value types, throw\n if (!Array.isArray(selectedItems)) {\n throw new Error(\"The access selector component only supports Array form values!\");\n }\n\n // Iterate and internally select each item\n for (const value of selectedItems) {\n this.selectionList.selectItem(value.id, value);\n }\n\n this.pauseChangeNotification = false;\n }\n\n async ngOnInit() {\n this.permissionList = getPermissionList(this._flexibleCollectionsEnabled);\n // Watch the internal formArray for changes and propagate them\n this.selectionList.formArray.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((v) => {\n if (!this.notifyOnChange || this.pauseChangeNotification) {\n return;\n }\n // Disabled form arrays emit values for disabled controls, we override this to emit an empty array to avoid\n // emitting values for disabled controls that are \"readonly\" in the table\n if (this.selectionList.formArray.disabled) {\n this.notifyOnChange([]);\n return;\n }\n this.notifyOnChange(v);\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n protected handleBlur() {\n if (!this.notifyOnTouch) {\n return;\n }\n\n this.notifyOnTouch();\n }\n\n protected selectItems(items: SelectItemView[]) {\n this.pauseChangeNotification = true;\n this.selectionList.selectItems(items.map((i) => i.id));\n this.pauseChangeNotification = false;\n if (this.notifyOnChange != undefined) {\n this.notifyOnChange(this.selectionList.formArray.value);\n }\n }\n\n protected itemIcon(item: AccessItemView) {\n switch (item.type) {\n case AccessItemType.Collection:\n return \"bwi-collection\";\n case AccessItemType.Group:\n return \"bwi-users\";\n case AccessItemType.Member:\n return \"bwi-user\";\n }\n }\n\n protected permissionLabelId(perm: CollectionPermission) {\n return this.permissionList.find((p) => p.perm == perm)?.labelId;\n }\n\n protected accessAllLabelId(item: AccessItemView) {\n return item.type == AccessItemType.Group ? \"groupAccessAll\" : \"memberAccessAll\";\n }\n\n protected canEditItemPermission(item: AccessItemView) {\n return this.permissionMode == PermissionMode.Edit && !item.readonly && !item.accessAllItems;\n }\n\n private _itemComparator(a: AccessItemView, b: AccessItemView) {\n return (\n a.type - b.type ||\n this.i18nService.collator.compare(a.listName, b.listName) ||\n this.i18nService.collator.compare(a.labelName, b.labelName) ||\n Number(b.readonly) - Number(a.readonly)\n );\n }\n}\n","import { OrganizationUserUserDetailsResponse } from \"@bitwarden/common/admin-console/abstractions/organization-user/responses\";\nimport {\n OrganizationUserStatusType,\n OrganizationUserType,\n} from \"@bitwarden/common/admin-console/enums\";\nimport { SelectItemView } from \"@bitwarden/components\";\n\nimport { CollectionAccessSelectionView, GroupView } from \"../../../core\";\n\n/**\n * Permission options that replace/correspond with manage, readOnly, and hidePassword server fields.\n */\nexport enum CollectionPermission {\n View = \"view\",\n ViewExceptPass = \"viewExceptPass\",\n Edit = \"edit\",\n EditExceptPass = \"editExceptPass\",\n Manage = \"manage\",\n}\n\nexport enum AccessItemType {\n Collection,\n Group,\n Member,\n}\n\n/**\n * A \"generic\" type that describes an item that can be selected from a\n * ng-select list and have its collection permission modified.\n *\n * Currently, it supports Collections, Groups, and Members. Members require some additional\n * details to render in the AccessSelectorComponent so their type is defined separately\n * and then joined back with the base type.\n *\n */\nexport type AccessItemView = SelectItemView & {\n /**\n * Flag that this group/member can access all items.\n * This will disable the permission editor for this item.\n */\n accessAllItems?: boolean;\n\n /**\n * Flag that this item cannot be modified.\n * This will disable the permission editor and will keep\n * the item always selected.\n */\n readonly?: boolean;\n\n /**\n * Optional permission that will be rendered for this\n * item if it set to readonly.\n */\n readonlyPermission?: CollectionPermission;\n} & (\n | {\n type: AccessItemType.Collection;\n viaGroupName?: string;\n }\n | {\n type: AccessItemType.Group;\n }\n | {\n type: AccessItemType.Member; // Members have a few extra details required to display, so they're added here\n email: string;\n role: OrganizationUserType;\n status: OrganizationUserStatusType;\n }\n );\n\n/**\n * A type that is emitted as a value for the ngControl\n */\nexport type AccessItemValue = {\n id: string;\n permission?: CollectionPermission;\n type: AccessItemType;\n};\n\nexport type Permission = {\n perm: CollectionPermission;\n labelId: string;\n};\n\nexport const getPermissionList = (flexibleCollectionsEnabled: boolean): Permission[] => {\n const permissions = [\n { perm: CollectionPermission.View, labelId: \"canView\" },\n { perm: CollectionPermission.ViewExceptPass, labelId: \"canViewExceptPass\" },\n { perm: CollectionPermission.Edit, labelId: \"canEdit\" },\n { perm: CollectionPermission.EditExceptPass, labelId: \"canEditExceptPass\" },\n ];\n if (flexibleCollectionsEnabled) {\n permissions.push({ perm: CollectionPermission.Manage, labelId: \"canManage\" });\n }\n\n return permissions;\n};\n\n/**\n * Converts the CollectionAccessSelectionView interface to one of the new CollectionPermission values\n * for the dropdown in the AccessSelectorComponent\n * @param value\n */\nexport const convertToPermission = (\n value: CollectionAccessSelectionView | undefined,\n): CollectionPermission | undefined => {\n if (value == null) {\n return undefined;\n }\n if (value.manage) {\n return CollectionPermission.Manage;\n } else if (value.readOnly) {\n return value.hidePasswords ? CollectionPermission.ViewExceptPass : CollectionPermission.View;\n } else {\n return value.hidePasswords ? CollectionPermission.EditExceptPass : CollectionPermission.Edit;\n }\n};\n\n/**\n * Converts an AccessItemValue back into a CollectionAccessView class using the CollectionPermission\n * to determine the values for `manage`, `readOnly`, and `hidePassword`\n * @param value\n */\nexport const convertToSelectionView = (value: AccessItemValue) => {\n return new CollectionAccessSelectionView({\n id: value.id,\n readOnly: readOnly(value.permission),\n hidePasswords: hidePassword(value.permission),\n manage: value.permission === CollectionPermission.Manage,\n });\n};\n\nconst readOnly = (perm: CollectionPermission) =>\n [CollectionPermission.View, CollectionPermission.ViewExceptPass].includes(perm);\n\nconst hidePassword = (perm: CollectionPermission) =>\n [CollectionPermission.ViewExceptPass, CollectionPermission.EditExceptPass].includes(perm);\n\nexport function mapGroupToAccessItemView(group: GroupView): AccessItemView {\n return {\n id: group.id,\n type: AccessItemType.Group,\n listName: group.name,\n labelName: group.name,\n accessAllItems: group.accessAll,\n readonly: group.accessAll,\n };\n}\n\n// TODO: Use view when user apis are migrated to a service\nexport function mapUserToAccessItemView(user: OrganizationUserUserDetailsResponse): AccessItemView {\n return {\n id: user.id,\n type: AccessItemType.Member,\n email: user.email,\n role: user.type,\n listName: user.name?.length > 0 ? `${user.name} (${user.email})` : user.email,\n labelName: user.name ?? user.email,\n status: user.status,\n accessAllItems: user.accessAll,\n readonly: user.accessAll,\n };\n}\n","import { NgModule } from \"@angular/core\";\n\nimport { SharedModule } from \"../../../../../shared\";\n\nimport { AccessSelectorComponent } from \"./access-selector.component\";\nimport { UserTypePipe } from \"./user-type.pipe\";\n\n@NgModule({\n imports: [SharedModule],\n declarations: [AccessSelectorComponent, UserTypePipe],\n exports: [AccessSelectorComponent],\n})\nexport class AccessSelectorModule {}\n","import { NgModule } from \"@angular/core\";\n\nimport { EmergencyAccessApiService } from \"./services/emergency-access-api.service\";\nimport { EmergencyAccessService } from \"./services/emergency-access.service\";\n\n@NgModule({\n declarations: [],\n imports: [],\n providers: [EmergencyAccessApiService, EmergencyAccessService],\n})\nexport class EmergencyAccessModule {}\n","export enum EmergencyAccessStatusType {\n Invited = 0,\n Accepted = 1,\n Confirmed = 2,\n RecoveryInitiated = 3,\n RecoveryApproved = 4,\n}\n","import { BaseResponse } from \"@bitwarden/common/models/response/base.response\";\nimport { KdfType } from \"@bitwarden/common/platform/enums\";\nimport { CipherResponse } from \"@bitwarden/common/vault/models/response/cipher.response\";\n\nimport { EmergencyAccessStatusType } from \"../enums/emergency-access-status-type\";\nimport { EmergencyAccessType } from \"../enums/emergency-access-type\";\n\nexport class EmergencyAccessGranteeDetailsResponse extends BaseResponse {\n id: string;\n granteeId: string;\n name: string;\n email: string;\n type: EmergencyAccessType;\n status: EmergencyAccessStatusType;\n waitTimeDays: number;\n creationDate: string;\n avatarColor: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.granteeId = this.getResponseProperty(\"GranteeId\");\n this.name = this.getResponseProperty(\"Name\");\n this.email = this.getResponseProperty(\"Email\");\n this.type = this.getResponseProperty(\"Type\");\n this.status = this.getResponseProperty(\"Status\");\n this.waitTimeDays = this.getResponseProperty(\"WaitTimeDays\");\n this.creationDate = this.getResponseProperty(\"CreationDate\");\n this.avatarColor = this.getResponseProperty(\"AvatarColor\");\n }\n}\n\nexport class EmergencyAccessGrantorDetailsResponse extends BaseResponse {\n id: string;\n grantorId: string;\n name: string;\n email: string;\n type: EmergencyAccessType;\n status: EmergencyAccessStatusType;\n waitTimeDays: number;\n creationDate: string;\n avatarColor: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.grantorId = this.getResponseProperty(\"GrantorId\");\n this.name = this.getResponseProperty(\"Name\");\n this.email = this.getResponseProperty(\"Email\");\n this.type = this.getResponseProperty(\"Type\");\n this.status = this.getResponseProperty(\"Status\");\n this.waitTimeDays = this.getResponseProperty(\"WaitTimeDays\");\n this.creationDate = this.getResponseProperty(\"CreationDate\");\n this.avatarColor = this.getResponseProperty(\"AvatarColor\");\n }\n}\n\nexport class EmergencyAccessTakeoverResponse extends BaseResponse {\n keyEncrypted: string;\n kdf: KdfType;\n kdfIterations: number;\n kdfMemory?: number;\n kdfParallelism?: number;\n\n constructor(response: any) {\n super(response);\n\n this.keyEncrypted = this.getResponseProperty(\"KeyEncrypted\");\n this.kdf = this.getResponseProperty(\"Kdf\");\n this.kdfIterations = this.getResponseProperty(\"KdfIterations\");\n this.kdfMemory = this.getResponseProperty(\"KdfMemory\");\n this.kdfParallelism = this.getResponseProperty(\"KdfParallelism\");\n }\n}\n\nexport class EmergencyAccessViewResponse extends BaseResponse {\n keyEncrypted: string;\n ciphers: CipherResponse[] = [];\n\n constructor(response: any) {\n super(response);\n\n this.keyEncrypted = this.getResponseProperty(\"KeyEncrypted\");\n\n const ciphers = this.getResponseProperty(\"Ciphers\");\n if (ciphers != null) {\n this.ciphers = ciphers.map((c: any) => new CipherResponse(c));\n }\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { ApiService } from \"@bitwarden/common/abstractions/api.service\";\nimport { PolicyResponse } from \"@bitwarden/common/admin-console/models/response/policy.response\";\nimport { ListResponse } from \"@bitwarden/common/models/response/list.response\";\n\nimport { EmergencyAccessAcceptRequest } from \"../request/emergency-access-accept.request\";\nimport { EmergencyAccessConfirmRequest } from \"../request/emergency-access-confirm.request\";\nimport { EmergencyAccessInviteRequest } from \"../request/emergency-access-invite.request\";\nimport { EmergencyAccessPasswordRequest } from \"../request/emergency-access-password.request\";\nimport { EmergencyAccessUpdateRequest } from \"../request/emergency-access-update.request\";\nimport {\n EmergencyAccessGranteeDetailsResponse,\n EmergencyAccessGrantorDetailsResponse,\n EmergencyAccessTakeoverResponse,\n EmergencyAccessViewResponse,\n} from \"../response/emergency-access.response\";\n\n@Injectable()\nexport class EmergencyAccessApiService {\n constructor(private apiService: ApiService) {}\n\n async getEmergencyAccessTrusted(): Promise> {\n const r = await this.apiService.send(\"GET\", \"/emergency-access/trusted\", null, true, true);\n return new ListResponse(r, EmergencyAccessGranteeDetailsResponse);\n }\n\n async getEmergencyAccessGranted(): Promise> {\n const r = await this.apiService.send(\"GET\", \"/emergency-access/granted\", null, true, true);\n return new ListResponse(r, EmergencyAccessGrantorDetailsResponse);\n }\n\n async getEmergencyAccess(id: string): Promise {\n const r = await this.apiService.send(\"GET\", \"/emergency-access/\" + id, null, true, true);\n return new EmergencyAccessGranteeDetailsResponse(r);\n }\n\n async getEmergencyGrantorPolicies(id: string): Promise> {\n const r = await this.apiService.send(\n \"GET\",\n \"/emergency-access/\" + id + \"/policies\",\n null,\n true,\n true,\n );\n return new ListResponse(r, PolicyResponse);\n }\n\n putEmergencyAccess(id: string, request: EmergencyAccessUpdateRequest): Promise {\n return this.apiService.send(\"PUT\", \"/emergency-access/\" + id, request, true, false);\n }\n\n deleteEmergencyAccess(id: string): Promise {\n return this.apiService.send(\"DELETE\", \"/emergency-access/\" + id, null, true, false);\n }\n\n postEmergencyAccessInvite(request: EmergencyAccessInviteRequest): Promise {\n return this.apiService.send(\"POST\", \"/emergency-access/invite\", request, true, false);\n }\n\n postEmergencyAccessReinvite(id: string): Promise {\n return this.apiService.send(\"POST\", \"/emergency-access/\" + id + \"/reinvite\", null, true, false);\n }\n\n postEmergencyAccessAccept(id: string, request: EmergencyAccessAcceptRequest): Promise {\n return this.apiService.send(\n \"POST\",\n \"/emergency-access/\" + id + \"/accept\",\n request,\n true,\n false,\n );\n }\n\n postEmergencyAccessConfirm(id: string, request: EmergencyAccessConfirmRequest): Promise {\n return this.apiService.send(\n \"POST\",\n \"/emergency-access/\" + id + \"/confirm\",\n request,\n true,\n false,\n );\n }\n\n postEmergencyAccessInitiate(id: string): Promise {\n return this.apiService.send(\"POST\", \"/emergency-access/\" + id + \"/initiate\", null, true, false);\n }\n\n postEmergencyAccessApprove(id: string): Promise {\n return this.apiService.send(\"POST\", \"/emergency-access/\" + id + \"/approve\", null, true, false);\n }\n\n postEmergencyAccessReject(id: string): Promise {\n return this.apiService.send(\"POST\", \"/emergency-access/\" + id + \"/reject\", null, true, false);\n }\n\n async postEmergencyAccessTakeover(id: string): Promise {\n const r = await this.apiService.send(\n \"POST\",\n \"/emergency-access/\" + id + \"/takeover\",\n null,\n true,\n true,\n );\n return new EmergencyAccessTakeoverResponse(r);\n }\n\n async postEmergencyAccessPassword(\n id: string,\n request: EmergencyAccessPasswordRequest,\n ): Promise {\n await this.apiService.send(\n \"POST\",\n \"/emergency-access/\" + id + \"/password\",\n request,\n true,\n true,\n );\n }\n\n async postEmergencyAccessView(id: string): Promise {\n const r = await this.apiService.send(\n \"POST\",\n \"/emergency-access/\" + id + \"/view\",\n null,\n true,\n true,\n );\n return new EmergencyAccessViewResponse(r);\n }\n}\n","export class EmergencyAccessAcceptRequest {\n token: string;\n}\n","export class EmergencyAccessConfirmRequest {\n key: string;\n}\n","import { EmergencyAccessType } from \"../enums/emergency-access-type\";\n\nexport class EmergencyAccessInviteRequest {\n email: string;\n type: EmergencyAccessType;\n waitTimeDays: number;\n}\n","export class EmergencyAccessPasswordRequest {\n newMasterPasswordHash: string;\n key: string;\n}\n","import { EmergencyAccessType } from \"../enums/emergency-access-type\";\n\nexport class EmergencyAccessUpdateRequest {\n type: EmergencyAccessType;\n waitTimeDays: number;\n keyEncrypted?: string;\n}\n\nexport class EmergencyAccessWithIdRequest extends EmergencyAccessUpdateRequest {\n id: string;\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { ApiService } from \"@bitwarden/common/abstractions/api.service\";\nimport { PolicyData } from \"@bitwarden/common/admin-console/models/data/policy.data\";\nimport { Policy } from \"@bitwarden/common/admin-console/models/domain/policy\";\nimport {\n Argon2KdfConfig,\n KdfConfig,\n PBKDF2KdfConfig,\n} from \"@bitwarden/common/auth/models/domain/kdf-config\";\nimport { CryptoService } from \"@bitwarden/common/platform/abstractions/crypto.service\";\nimport { EncryptService } from \"@bitwarden/common/platform/abstractions/encrypt.service\";\nimport { LogService } from \"@bitwarden/common/platform/abstractions/log.service\";\nimport { KdfType } from \"@bitwarden/common/platform/enums\";\nimport { Utils } from \"@bitwarden/common/platform/misc/utils\";\nimport { EncryptedString } from \"@bitwarden/common/platform/models/domain/enc-string\";\nimport { SymmetricCryptoKey } from \"@bitwarden/common/platform/models/domain/symmetric-crypto-key\";\nimport { UserKey } from \"@bitwarden/common/types/key\";\nimport { CipherService } from \"@bitwarden/common/vault/abstractions/cipher.service\";\nimport { Cipher } from \"@bitwarden/common/vault/models/domain/cipher\";\nimport { CipherView } from \"@bitwarden/common/vault/models/view/cipher.view\";\n\nimport { EmergencyAccessStatusType } from \"../enums/emergency-access-status-type\";\nimport { EmergencyAccessType } from \"../enums/emergency-access-type\";\nimport { GranteeEmergencyAccess, GrantorEmergencyAccess } from \"../models/emergency-access\";\nimport { EmergencyAccessAcceptRequest } from \"../request/emergency-access-accept.request\";\nimport { EmergencyAccessConfirmRequest } from \"../request/emergency-access-confirm.request\";\nimport { EmergencyAccessInviteRequest } from \"../request/emergency-access-invite.request\";\nimport { EmergencyAccessPasswordRequest } from \"../request/emergency-access-password.request\";\nimport {\n EmergencyAccessUpdateRequest,\n EmergencyAccessWithIdRequest,\n} from \"../request/emergency-access-update.request\";\n\nimport { EmergencyAccessApiService } from \"./emergency-access-api.service\";\n\n@Injectable()\nexport class EmergencyAccessService {\n constructor(\n private emergencyAccessApiService: EmergencyAccessApiService,\n private apiService: ApiService,\n private cryptoService: CryptoService,\n private encryptService: EncryptService,\n private cipherService: CipherService,\n private logService: LogService,\n ) {}\n\n /**\n * Gets an emergency access by id.\n * @param id emergency access id\n */\n getEmergencyAccess(id: string): Promise {\n return this.emergencyAccessApiService.getEmergencyAccess(id);\n }\n\n /**\n * Gets all emergency access that the user has been granted.\n */\n async getEmergencyAccessTrusted(): Promise {\n return (await this.emergencyAccessApiService.getEmergencyAccessTrusted()).data;\n }\n\n /**\n * Gets all emergency access that the user has granted.\n */\n async getEmergencyAccessGranted(): Promise {\n return (await this.emergencyAccessApiService.getEmergencyAccessGranted()).data;\n }\n\n /**\n * Returns policies that apply to the grantor.\n * Intended for grantee.\n * @param id emergency access id\n */\n async getGrantorPolicies(id: string): Promise {\n const response = await this.emergencyAccessApiService.getEmergencyGrantorPolicies(id);\n let policies: Policy[];\n if (response.data != null && response.data.length > 0) {\n policies = response.data.map((policyResponse) => new Policy(new PolicyData(policyResponse)));\n }\n return policies;\n }\n\n /**\n * Invites the email address to be an emergency contact.\n * Step 1 of the 3 step setup flow.\n * Intended for grantor.\n * @param email email address of trusted emergency contact\n * @param type type of emergency access\n * @param waitTimeDays number of days to wait before granting access\n */\n async invite(email: string, type: EmergencyAccessType, waitTimeDays: number): Promise {\n const request = new EmergencyAccessInviteRequest();\n request.email = email.trim();\n request.type = type;\n request.waitTimeDays = waitTimeDays;\n\n await this.emergencyAccessApiService.postEmergencyAccessInvite(request);\n }\n\n /**\n * Sends another email for an existing emergency access invitation.\n * Intended for grantor.\n * @param id emergency access id\n */\n reinvite(id: string): Promise {\n return this.emergencyAccessApiService.postEmergencyAccessReinvite(id);\n }\n\n /**\n * Edits an existing emergency access.\n * Intended for grantor.\n * @param id emergency access id\n * @param type type of emergency access\n * @param waitTimeDays number of days to wait before granting access\n */\n async update(id: string, type: EmergencyAccessType, waitTimeDays: number) {\n const request = new EmergencyAccessUpdateRequest();\n request.type = type;\n request.waitTimeDays = waitTimeDays;\n\n await this.emergencyAccessApiService.putEmergencyAccess(id, request);\n }\n\n /**\n * Accepts an emergency access invitation.\n * Step 2 of the 3 step setup flow.\n * Intended for grantee.\n * @param id emergency access id\n * @param token secret token provided in email\n */\n async accept(id: string, token: string): Promise {\n const request = new EmergencyAccessAcceptRequest();\n request.token = token;\n\n await this.emergencyAccessApiService.postEmergencyAccessAccept(id, request);\n }\n\n /**\n * Encrypts user key with grantee's public key and sends to bitwarden.\n * Step 3 of the 3 step setup flow.\n * Intended for grantor.\n * @param id emergency access id\n * @param token secret token provided in email\n */\n async confirm(id: string, granteeId: string) {\n const userKey = await this.cryptoService.getUserKey();\n if (!userKey) {\n throw new Error(\"No user key found\");\n }\n const publicKeyResponse = await this.apiService.getUserPublicKey(granteeId);\n const publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey);\n\n try {\n this.logService.debug(\n \"User's fingerprint: \" +\n (await this.cryptoService.getFingerprint(granteeId, publicKey)).join(\"-\"),\n );\n } catch {\n // Ignore errors since it's just a debug message\n }\n\n const request = new EmergencyAccessConfirmRequest();\n request.key = await this.encryptKey(userKey, publicKey);\n await this.emergencyAccessApiService.postEmergencyAccessConfirm(id, request);\n }\n\n /**\n * Deletes an existing emergency access.\n * Intended for either grantor or grantee.\n * @param id emergency access id\n */\n delete(id: string): Promise {\n return this.emergencyAccessApiService.deleteEmergencyAccess(id);\n }\n\n /**\n * Requests access to grantor's vault.\n * Intended for grantee.\n * @param id emergency access id\n */\n requestAccess(id: string): Promise {\n return this.emergencyAccessApiService.postEmergencyAccessInitiate(id);\n }\n\n /**\n * Approves access to grantor's vault.\n * Intended for grantor.\n * @param id emergency access id\n */\n approve(id: string): Promise {\n return this.emergencyAccessApiService.postEmergencyAccessApprove(id);\n }\n\n /**\n * Rejects access to grantor's vault.\n * Intended for grantor.\n * @param id emergency access id\n */\n reject(id: string): Promise {\n return this.emergencyAccessApiService.postEmergencyAccessReject(id);\n }\n\n /**\n * Gets the grantor ciphers for an emergency access in view mode.\n * Intended for grantee.\n * @param id emergency access id\n */\n async getViewOnlyCiphers(id: string): Promise {\n const response = await this.emergencyAccessApiService.postEmergencyAccessView(id);\n\n const activeUserPrivateKey = await this.cryptoService.getPrivateKey();\n\n if (activeUserPrivateKey == null) {\n throw new Error(\"Active user does not have a private key, cannot get view only ciphers.\");\n }\n\n const grantorKeyBuffer = await this.cryptoService.rsaDecrypt(\n response.keyEncrypted,\n activeUserPrivateKey,\n );\n const grantorUserKey = new SymmetricCryptoKey(grantorKeyBuffer) as UserKey;\n\n const ciphers = await this.encryptService.decryptItems(\n response.ciphers.map((c) => new Cipher(c)),\n grantorUserKey,\n );\n return ciphers.sort(this.cipherService.getLocaleSortingFunction());\n }\n\n /**\n * Changes the password for an emergency access.\n * Intended for grantee.\n * @param id emergency access id\n * @param masterPassword new master password\n * @param email email address of grantee (must be consistent or login will fail)\n */\n async takeover(id: string, masterPassword: string, email: string) {\n const takeoverResponse = await this.emergencyAccessApiService.postEmergencyAccessTakeover(id);\n\n const activeUserPrivateKey = await this.cryptoService.getPrivateKey();\n\n if (activeUserPrivateKey == null) {\n throw new Error(\"Active user does not have a private key, cannot complete a takeover.\");\n }\n\n const grantorKeyBuffer = await this.cryptoService.rsaDecrypt(\n takeoverResponse.keyEncrypted,\n activeUserPrivateKey,\n );\n if (grantorKeyBuffer == null) {\n throw new Error(\"Failed to decrypt grantor key\");\n }\n\n const grantorUserKey = new SymmetricCryptoKey(grantorKeyBuffer) as UserKey;\n\n let config: KdfConfig;\n\n switch (takeoverResponse.kdf) {\n case KdfType.PBKDF2_SHA256:\n config = new PBKDF2KdfConfig(takeoverResponse.kdfIterations);\n break;\n case KdfType.Argon2id:\n config = new Argon2KdfConfig(\n takeoverResponse.kdfIterations,\n takeoverResponse.kdfMemory,\n takeoverResponse.kdfParallelism,\n );\n break;\n }\n\n const masterKey = await this.cryptoService.makeMasterKey(masterPassword, email, config);\n const masterKeyHash = await this.cryptoService.hashMasterKey(masterPassword, masterKey);\n\n const encKey = await this.cryptoService.encryptUserKeyWithMasterKey(masterKey, grantorUserKey);\n\n const request = new EmergencyAccessPasswordRequest();\n request.newMasterPasswordHash = masterKeyHash;\n request.key = encKey[1].encryptedString;\n\n // FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.emergencyAccessApiService.postEmergencyAccessPassword(id, request);\n }\n\n /**\n * Returns existing emergency access keys re-encrypted with new user key.\n * Intended for grantor.\n * @param newUserKey the new user key\n */\n async getRotatedKeys(newUserKey: UserKey): Promise {\n const requests: EmergencyAccessWithIdRequest[] = [];\n const existingEmergencyAccess =\n await this.emergencyAccessApiService.getEmergencyAccessTrusted();\n\n if (!existingEmergencyAccess || existingEmergencyAccess.data.length === 0) {\n return requests;\n }\n\n // Any Invited or Accepted requests won't have the key yet, so we don't need to update them\n const allowedStatuses = new Set([\n EmergencyAccessStatusType.Confirmed,\n EmergencyAccessStatusType.RecoveryInitiated,\n EmergencyAccessStatusType.RecoveryApproved,\n ]);\n const filteredAccesses = existingEmergencyAccess.data.filter((d) =>\n allowedStatuses.has(d.status),\n );\n\n for (const details of filteredAccesses) {\n // Get public key of grantee\n const publicKeyResponse = await this.apiService.getUserPublicKey(details.granteeId);\n const publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey);\n\n // Encrypt new user key with public key\n const encryptedKey = await this.encryptKey(newUserKey, publicKey);\n\n const updateRequest = new EmergencyAccessWithIdRequest();\n updateRequest.id = details.id;\n updateRequest.type = details.type;\n updateRequest.waitTimeDays = details.waitTimeDays;\n updateRequest.keyEncrypted = encryptedKey;\n requests.push(updateRequest);\n }\n return requests;\n }\n\n private async encryptKey(userKey: UserKey, publicKey: Uint8Array): Promise {\n return (await this.cryptoService.rsaEncrypt(userKey.key, publicKey)).encryptedString;\n }\n}\n","import { inject } from \"@angular/core\";\nimport { CanActivateFn, Router } from \"@angular/router\";\n\nimport { AuthService } from \"@bitwarden/common/auth/abstractions/auth.service\";\nimport { AuthenticationStatus } from \"@bitwarden/common/auth/enums/authentication-status\";\nimport { Utils } from \"@bitwarden/common/platform/misc/utils\";\n\nimport { RouterService } from \"../../core/router.service\";\n\n/**\n * Guard to persist and apply deep links to handle users who are not unlocked.\n * @returns returns true. If user is not Unlocked will store URL to state for redirect once\n * user is unlocked/Authenticated.\n */\nexport function deepLinkGuard(): CanActivateFn {\n return async (route, routerState) => {\n // Inject Services\n const authService = inject(AuthService);\n const router = inject(Router);\n const routerService = inject(RouterService);\n\n // Fetch State\n const currentUrl = routerState.url;\n const transientPreviousUrl = routerService.getPreviousUrl();\n const authStatus = await authService.getAuthStatus();\n\n // Evaluate State\n /** before anything else, check if the user is already unlocked. */\n if (authStatus === AuthenticationStatus.Unlocked) {\n const persistedPreLoginUrl = await routerService.getAndClearLoginRedirectUrl();\n if (!Utils.isNullOrEmpty(persistedPreLoginUrl)) {\n return router.navigateByUrl(persistedPreLoginUrl);\n }\n return true;\n }\n /**\n * At this point the user is either `locked` or `loggedOut`, it doesn't matter.\n * We opt to persist the currentUrl over the transient previousUrl. This supports\n * the case where a user is locked out of their vault and they deep link from\n * the \"lock\" page.\n *\n * When the user is locked out of their vault the currentUrl contains \"lock\" so it will\n * not be persisted, the previousUrl will be persisted instead.\n */\n if (isValidUrl(currentUrl)) {\n await routerService.persistLoginRedirectUrl(currentUrl);\n } else if (isValidUrl(transientPreviousUrl)) {\n await routerService.persistLoginRedirectUrl(transientPreviousUrl);\n }\n return true;\n };\n\n function isValidUrl(url: string | null | undefined): boolean {\n return !Utils.isNullOrEmpty(url) && !url?.toLocaleLowerCase().includes(\"/lock\");\n }\n}\n","import { inject, Injectable } from \"@angular/core\";\n\nimport { ApiService } from \"@bitwarden/common/abstractions/api.service\";\n\nimport { UpdateKeyRequest } from \"./request/update-key.request\";\n\n@Injectable()\nexport class UserKeyRotationApiService {\n readonly apiService = inject(ApiService);\n\n postUserKeyUpdate(request: UpdateKeyRequest): Promise {\n return this.apiService.send(\"POST\", \"/accounts/key\", request, true, false);\n }\n}\n","import { NgModule } from \"@angular/core\";\n\nimport { UserKeyRotationApiService } from \"./user-key-rotation-api.service\";\nimport { UserKeyRotationService } from \"./user-key-rotation.service\";\n\n@NgModule({\n providers: [UserKeyRotationService, UserKeyRotationApiService],\n})\nexport class UserKeyRotationModule {}\n","import { OrganizationUserResetPasswordWithIdRequest } from \"@bitwarden/common/admin-console/abstractions/organization-user/requests\";\nimport { SendWithIdRequest } from \"@bitwarden/common/src/tools/send/models/request/send-with-id.request\";\nimport { CipherWithIdRequest } from \"@bitwarden/common/src/vault/models/request/cipher-with-id.request\";\nimport { FolderWithIdRequest } from \"@bitwarden/common/src/vault/models/request/folder-with-id.request\";\n\nimport { EmergencyAccessWithIdRequest } from \"../../emergency-access/request/emergency-access-update.request\";\n\nexport class UpdateKeyRequest {\n masterPasswordHash: string;\n key: string;\n privateKey: string;\n ciphers: CipherWithIdRequest[] = [];\n folders: FolderWithIdRequest[] = [];\n sends: SendWithIdRequest[] = [];\n emergencyAccessKeys: EmergencyAccessWithIdRequest[] = [];\n resetPasswordKeys: OrganizationUserResetPasswordWithIdRequest[] = [];\n}\n","import { Injectable } from \"@angular/core\";\nimport { firstValueFrom, map } from \"rxjs\";\n\nimport { AccountService } from \"@bitwarden/common/auth/abstractions/account.service\";\nimport { DeviceTrustServiceAbstraction } from \"@bitwarden/common/auth/abstractions/device-trust.service.abstraction\";\nimport { KdfConfigService } from \"@bitwarden/common/auth/abstractions/kdf-config.service\";\nimport { InternalMasterPasswordServiceAbstraction } from \"@bitwarden/common/auth/abstractions/master-password.service.abstraction\";\nimport { CryptoService } from \"@bitwarden/common/platform/abstractions/crypto.service\";\nimport { EncryptService } from \"@bitwarden/common/platform/abstractions/encrypt.service\";\nimport { StateService } from \"@bitwarden/common/platform/abstractions/state.service\";\nimport { EncryptedString } from \"@bitwarden/common/platform/models/domain/enc-string\";\nimport { SendService } from \"@bitwarden/common/tools/send/services/send.service.abstraction\";\nimport { UserKey } from \"@bitwarden/common/types/key\";\nimport { CipherService } from \"@bitwarden/common/vault/abstractions/cipher.service\";\nimport { FolderService } from \"@bitwarden/common/vault/abstractions/folder/folder.service.abstraction\";\nimport { SyncService } from \"@bitwarden/common/vault/abstractions/sync/sync.service.abstraction\";\nimport { CipherWithIdRequest } from \"@bitwarden/common/vault/models/request/cipher-with-id.request\";\nimport { FolderWithIdRequest } from \"@bitwarden/common/vault/models/request/folder-with-id.request\";\n\nimport { OrganizationUserResetPasswordService } from \"../../admin-console/organizations/members/services/organization-user-reset-password/organization-user-reset-password.service\";\nimport { EmergencyAccessService } from \"../emergency-access\";\n\nimport { UpdateKeyRequest } from \"./request/update-key.request\";\nimport { UserKeyRotationApiService } from \"./user-key-rotation-api.service\";\n\n@Injectable()\nexport class UserKeyRotationService {\n constructor(\n private masterPasswordService: InternalMasterPasswordServiceAbstraction,\n private apiService: UserKeyRotationApiService,\n private cipherService: CipherService,\n private folderService: FolderService,\n private sendService: SendService,\n private emergencyAccessService: EmergencyAccessService,\n private resetPasswordService: OrganizationUserResetPasswordService,\n private deviceTrustService: DeviceTrustServiceAbstraction,\n private cryptoService: CryptoService,\n private encryptService: EncryptService,\n private stateService: StateService,\n private accountService: AccountService,\n private kdfConfigService: KdfConfigService,\n private syncService: SyncService,\n ) {}\n\n /**\n * Creates a new user key and re-encrypts all required data with the it.\n * @param masterPassword current master password (used for validation)\n */\n async rotateUserKeyAndEncryptedData(masterPassword: string): Promise {\n if (!masterPassword) {\n throw new Error(\"Invalid master password\");\n }\n\n if ((await this.syncService.getLastSync()) === null) {\n throw new Error(\n \"The local vault is de-synced and the keys cannot be rotated. Please log out and log back in to resolve this issue.\",\n );\n }\n\n // Create master key to validate the master password\n const masterKey = await this.cryptoService.makeMasterKey(\n masterPassword,\n await firstValueFrom(this.accountService.activeAccount$.pipe(map((a) => a?.email))),\n await this.kdfConfigService.getKdfConfig(),\n );\n\n if (!masterKey) {\n throw new Error(\"Master key could not be created\");\n }\n\n // Set master key again in case it was lost (could be lost on refresh)\n const userId = (await firstValueFrom(this.accountService.activeAccount$))?.id;\n await this.masterPasswordService.setMasterKey(masterKey, userId);\n const [newUserKey, newEncUserKey] = await this.cryptoService.makeUserKey(masterKey);\n\n if (!newUserKey || !newEncUserKey) {\n throw new Error(\"User key could not be created\");\n }\n\n // Create new request\n const request = new UpdateKeyRequest();\n\n // Add new user key\n request.key = newEncUserKey.encryptedString;\n\n // Add master key hash\n const masterPasswordHash = await this.cryptoService.hashMasterKey(masterPassword, masterKey);\n request.masterPasswordHash = masterPasswordHash;\n\n // Add re-encrypted data\n request.privateKey = await this.encryptPrivateKey(newUserKey);\n request.ciphers = await this.encryptCiphers(newUserKey);\n request.folders = await this.encryptFolders(newUserKey);\n request.sends = await this.sendService.getRotatedKeys(newUserKey);\n request.emergencyAccessKeys = await this.emergencyAccessService.getRotatedKeys(newUserKey);\n request.resetPasswordKeys = await this.resetPasswordService.getRotatedKeys(newUserKey);\n\n await this.apiService.postUserKeyUpdate(request);\n\n const activeAccount = await firstValueFrom(this.accountService.activeAccount$);\n await this.deviceTrustService.rotateDevicesTrust(\n activeAccount.id,\n newUserKey,\n masterPasswordHash,\n );\n }\n\n private async encryptPrivateKey(newUserKey: UserKey): Promise {\n const privateKey = await this.cryptoService.getPrivateKey();\n if (!privateKey) {\n return;\n }\n return (await this.encryptService.encrypt(privateKey, newUserKey)).encryptedString;\n }\n\n private async encryptCiphers(newUserKey: UserKey): Promise {\n const ciphers = await this.cipherService.getAllDecrypted();\n if (!ciphers) {\n // Must return an empty array for backwards compatibility\n return [];\n }\n return await Promise.all(\n ciphers.map(async (cipher) => {\n const encryptedCipher = await this.cipherService.encrypt(cipher, newUserKey);\n return new CipherWithIdRequest(encryptedCipher);\n }),\n );\n }\n\n private async encryptFolders(newUserKey: UserKey): Promise {\n const folders = await firstValueFrom(this.folderService.folderViews$);\n if (!folders) {\n // Must return an empty array for backwards compatibility\n return [];\n }\n return await Promise.all(\n folders.map(async (folder) => {\n const encryptedFolder = await this.folderService.encrypt(folder, newUserKey);\n return new FolderWithIdRequest(encryptedFolder);\n }),\n );\n }\n}\n","import { NgModule } from \"@angular/core\";\n\nimport { PasswordCalloutComponent } from \"@bitwarden/auth/angular\";\n\nimport { SharedModule } from \"../../shared\";\n\nimport { RegisterFormComponent } from \"./register-form.component\";\n\n@NgModule({\n imports: [SharedModule, PasswordCalloutComponent],\n declarations: [RegisterFormComponent],\n exports: [RegisterFormComponent],\n})\nexport class RegisterFormModule {}\n","import { Component } from \"@angular/core\";\n\nimport { JslibModule } from \"@bitwarden/angular/jslib.module\";\nimport { TypographyModule } from \"@bitwarden/components\";\n\n/**\n * Component for the Danger Zone section of the Account/Organization Settings page.\n */\n@Component({\n selector: \"app-danger-zone\",\n templateUrl: \"danger-zone.component.html\",\n standalone: true,\n imports: [TypographyModule, JslibModule],\n})\nexport class DangerZoneComponent {}\n","

{{ \"dangerZone\" | i18n }}

\n\n
\n

{{ \"dangerZoneDesc\" | i18n }}

\n\n
\n \n
\n
\n","export class UpdateProfileRequest {\n name: string;\n masterPasswordHint: string;\n culture = \"en-US\"; // deprecated\n\n constructor(name: string, masterPasswordHint: string) {\n this.name = name;\n this.masterPasswordHint = masterPasswordHint ? masterPasswordHint : null;\n }\n}\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\n\n@Component({\n selector: \"selectable-avatar\",\n template: `\n \n \n `,\n})\nexport class SelectableAvatarComponent {\n @Input() id: string;\n @Input() text: string;\n @Input() title: string;\n @Input() color: string;\n @Input() border = false;\n @Input() selected = false;\n @Output() select = new EventEmitter();\n\n onFire() {\n this.select.emit(this.color);\n }\n\n get classList() {\n return [\"tw-rounded-full tw-inline-block\"]\n .concat([\"tw-cursor-pointer\", \"tw-outline\", \"tw-outline-solid\", \"tw-outline-offset-1\"])\n .concat(\n this.selected\n ? [\"tw-outline-[3px]\", \"tw-outline-primary-600\"]\n : [\n \"tw-outline-0\",\n \"hover:tw-outline-1\",\n \"hover:tw-outline-primary-300\",\n \"focus:tw-outline-2\",\n \"focus:tw-outline-primary-600\",\n ],\n );\n }\n}\n","\n\n
\n
\n
\n
\n

{{ \"customizeAvatar\" | i18n }}

\n \n ×\n \n
\n
\n
\n \n {{ \"loading\" | i18n }}\n
\n \n {{ error }}\n \n

{{ \"pickAnAvatarColor\" | i18n }}

\n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n \n \n {{ \"save\" | i18n }}\n \n \n
\n
\n
\n
\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { BehaviorSubject, debounceTime, firstValueFrom, Subject, takeUntil } from \"rxjs\";\n\nimport { AvatarService } from \"@bitwarden/common/auth/abstractions/avatar.service\";\nimport { ProfileResponse } from \"@bitwarden/common/models/response/profile.response\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\nimport { LogService } from \"@bitwarden/common/platform/abstractions/log.service\";\nimport { PlatformUtilsService } from \"@bitwarden/common/platform/abstractions/platform-utils.service\";\nimport { Utils } from \"@bitwarden/common/platform/misc/utils\";\n\n@Component({\n selector: \"app-change-avatar\",\n templateUrl: \"change-avatar.component.html\",\n encapsulation: ViewEncapsulation.None,\n})\nexport class ChangeAvatarComponent implements OnInit, OnDestroy {\n @Input() profile: ProfileResponse;\n\n @Output() changeColor: EventEmitter = new EventEmitter();\n @Output() onSaved = new EventEmitter();\n\n @ViewChild(\"colorPicker\") colorPickerElement: ElementRef;\n\n loading = false;\n error: string;\n defaultColorPalette: NamedAvatarColor[] = [\n { name: \"brightBlue\", color: \"#16cbfc\" },\n { name: \"green\", color: \"#94cc4b\" },\n { name: \"orange\", color: \"#ffb520\" },\n { name: \"lavender\", color: \"#e5beed\" },\n { name: \"yellow\", color: \"#fcff41\" },\n { name: \"indigo\", color: \"#acbdf7\" },\n { name: \"teal\", color: \"#8ecdc5\" },\n { name: \"salmon\", color: \"#ffa3a3\" },\n { name: \"pink\", color: \"#ffa2d4\" },\n ];\n customColorSelected = false;\n currentSelection: string;\n\n protected customColor$ = new BehaviorSubject(null);\n protected customTextColor$ = new BehaviorSubject(\"#000000\");\n private destroy$ = new Subject();\n\n constructor(\n private i18nService: I18nService,\n private platformUtilsService: PlatformUtilsService,\n private logService: LogService,\n private avatarService: AvatarService,\n ) {}\n\n async ngOnInit() {\n //localize the default colors\n this.defaultColorPalette.forEach((c) => (c.name = this.i18nService.t(c.name)));\n\n this.customColor$\n .pipe(debounceTime(200), takeUntil(this.destroy$))\n .subscribe((color: string | null) => {\n if (color == null) {\n return;\n }\n this.customTextColor$.next(Utils.pickTextColorBasedOnBgColor(color));\n this.customColorSelected = true;\n this.currentSelection = color;\n });\n\n await this.setSelection(await firstValueFrom(this.avatarService.avatarColor$));\n }\n\n async showCustomPicker() {\n this.customColorSelected = true;\n this.colorPickerElement.nativeElement.click();\n // FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.setSelection(this.customColor$.value);\n }\n\n async generateAvatarColor() {\n Utils.stringToColor(this.profile.name.toString());\n }\n\n async submit() {\n try {\n if (Utils.validateHexColor(this.currentSelection) || this.currentSelection == null) {\n await this.avatarService.setAvatarColor(this.currentSelection);\n this.changeColor.emit(this.currentSelection);\n this.platformUtilsService.showToast(\"success\", null, this.i18nService.t(\"avatarUpdated\"));\n } else {\n this.platformUtilsService.showToast(\"error\", null, this.i18nService.t(\"errorOccurred\"));\n }\n } catch (e) {\n this.logService.error(e);\n this.platformUtilsService.showToast(\"error\", null, this.i18nService.t(\"errorOccurred\"));\n }\n }\n\n async ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n async setSelection(color: string | null) {\n this.defaultColorPalette.filter((x) => x.selected).forEach((c) => (c.selected = false));\n\n if (color == null) {\n return;\n }\n\n color = color.toLowerCase();\n\n this.customColorSelected = false;\n //Allow for toggle\n if (this.currentSelection === color) {\n this.currentSelection = null;\n } else {\n const selectedColorIndex = this.defaultColorPalette.findIndex((c) => c.color === color);\n if (selectedColorIndex !== -1) {\n this.defaultColorPalette[selectedColorIndex].selected = true;\n this.currentSelection = color;\n } else {\n this.customColor$.next(color);\n }\n }\n }\n}\n\nexport class NamedAvatarColor {\n name: string;\n color: string;\n selected? = false;\n}\n","
\n \n {{ \"loading\" | i18n }}\n
\n
\n
\n
\n \n {{ \"name\" | i18n }}\n \n \n \n {{ \"email\" | i18n }}\n \n \n
\n
\n
\n \n \n \n \n Customize\n \n
\n \n \n
\n
\n \n
\n\n","import { ViewChild, ViewContainerRef, Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { FormControl, FormGroup } from \"@angular/forms\";\nimport { Subject, takeUntil } from \"rxjs\";\n\nimport { ModalService } from \"@bitwarden/angular/services/modal.service\";\nimport { ApiService } from \"@bitwarden/common/abstractions/api.service\";\nimport { UpdateProfileRequest } from \"@bitwarden/common/auth/models/request/update-profile.request\";\nimport { ProfileResponse } from \"@bitwarden/common/models/response/profile.response\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\nimport { PlatformUtilsService } from \"@bitwarden/common/platform/abstractions/platform-utils.service\";\nimport { StateService } from \"@bitwarden/common/platform/abstractions/state.service\";\n\nimport { ChangeAvatarComponent } from \"./change-avatar.component\";\n\n@Component({\n selector: \"app-profile\",\n templateUrl: \"profile.component.html\",\n})\nexport class ProfileComponent implements OnInit, OnDestroy {\n loading = true;\n profile: ProfileResponse;\n fingerprintMaterial: string;\n\n @ViewChild(\"avatarModalTemplate\", { read: ViewContainerRef, static: true })\n avatarModalRef: ViewContainerRef;\n private destroy$ = new Subject();\n\n protected formGroup = new FormGroup({\n name: new FormControl(null),\n email: new FormControl(null),\n });\n\n constructor(\n private apiService: ApiService,\n private i18nService: I18nService,\n private platformUtilsService: PlatformUtilsService,\n private stateService: StateService,\n private modalService: ModalService,\n ) {}\n\n async ngOnInit() {\n this.profile = await this.apiService.getProfile();\n this.loading = false;\n this.fingerprintMaterial = await this.stateService.getUserId();\n this.formGroup.get(\"name\").setValue(this.profile.name);\n this.formGroup.get(\"email\").setValue(this.profile.email);\n\n this.formGroup\n .get(\"name\")\n .valueChanges.pipe(takeUntil(this.destroy$))\n .subscribe((name) => {\n this.profile.name = name;\n });\n }\n\n async ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n openChangeAvatar = async () => {\n const modalOpened = await this.modalService.openViewRef(\n ChangeAvatarComponent,\n this.avatarModalRef,\n (modal) => {\n modal.profile = this.profile;\n modal.changeColor.pipe(takeUntil(this.destroy$)).subscribe(() => {\n modalOpened[0].close();\n });\n },\n );\n };\n\n submit = async () => {\n const request = new UpdateProfileRequest(\n this.formGroup.get(\"name\").value,\n this.profile.masterPasswordHint,\n );\n await this.apiService.putProfile(request);\n this.platformUtilsService.showToast(\"success\", null, this.i18nService.t(\"accountUpdated\"));\n };\n}\n","
\n
\n \n
\n

{{ apiKeyTitle | i18n }}

\n \n ×\n \n
\n
\n

{{ apiKeyDescription | i18n }}

\n \n \n\n {{ apiKeyWarning | i18n }}\n \n

\n client_id:
\n {{ clientId }}\n

\n

\n client_secret:
\n {{ clientSecret }}\n

\n

\n scope:
\n {{ scope }}\n

\n

\n grant_type:
\n {{ grantType }}\n

\n \n
\n
\n \n \n {{ (isRotation ? \"rotateApiKey\" : \"viewApiKey\") | i18n }}\n \n \n
\n \n
\n
\n","import { Component } from \"@angular/core\";\n\nimport { UserVerificationService } from \"@bitwarden/common/auth/abstractions/user-verification/user-verification.service.abstraction\";\nimport { SecretVerificationRequest } from \"@bitwarden/common/auth/models/request/secret-verification.request\";\nimport { ApiKeyResponse } from \"@bitwarden/common/auth/models/response/api-key.response\";\nimport { Verification } from \"@bitwarden/common/auth/types/verification\";\nimport { LogService } from \"@bitwarden/common/platform/abstractions/log.service\";\n\n@Component({\n selector: \"app-api-key\",\n templateUrl: \"api-key.component.html\",\n})\nexport class ApiKeyComponent {\n keyType: string;\n isRotation: boolean;\n postKey: (entityId: string, request: SecretVerificationRequest) => Promise;\n entityId: string;\n scope: string;\n grantType: string;\n apiKeyTitle: string;\n apiKeyWarning: string;\n apiKeyDescription: string;\n\n masterPassword: Verification;\n formPromise: Promise;\n clientId: string;\n clientSecret: string;\n\n constructor(\n private userVerificationService: UserVerificationService,\n private logService: LogService,\n ) {}\n\n async submit() {\n try {\n this.formPromise = this.userVerificationService\n .buildRequest(this.masterPassword)\n .then((request) => this.postKey(this.entityId, request));\n const response = await this.formPromise;\n this.clientSecret = response.apiKey;\n this.clientId = `${this.keyType}.${this.entityId}`;\n } catch (e) {\n this.logService.error(e);\n }\n }\n}\n","import { TwoFactorProviderType } from \"../../enums/two-factor-provider-type\";\n\nimport { SecretVerificationRequest } from \"./secret-verification.request\";\n\nexport class TwoFactorProviderRequest extends SecretVerificationRequest {\n type: TwoFactorProviderType;\n}\n","import { Directive, EventEmitter, Output } from \"@angular/core\";\n\nimport { ApiService } from \"@bitwarden/common/abstractions/api.service\";\nimport { UserVerificationService } from \"@bitwarden/common/auth/abstractions/user-verification/user-verification.service.abstraction\";\nimport { TwoFactorProviderType } from \"@bitwarden/common/auth/enums/two-factor-provider-type\";\nimport { VerificationType } from \"@bitwarden/common/auth/enums/verification-type\";\nimport { SecretVerificationRequest } from \"@bitwarden/common/auth/models/request/secret-verification.request\";\nimport { TwoFactorProviderRequest } from \"@bitwarden/common/auth/models/request/two-factor-provider.request\";\nimport { AuthResponseBase } from \"@bitwarden/common/auth/types/auth-response\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\nimport { LogService } from \"@bitwarden/common/platform/abstractions/log.service\";\nimport { PlatformUtilsService } from \"@bitwarden/common/platform/abstractions/platform-utils.service\";\nimport { DialogService } from \"@bitwarden/components\";\n\n@Directive()\nexport abstract class TwoFactorBaseComponent {\n @Output() onUpdated = new EventEmitter();\n\n type: TwoFactorProviderType;\n organizationId: string;\n twoFactorProviderType = TwoFactorProviderType;\n enabled = false;\n authed = false;\n\n protected hashedSecret: string;\n protected verificationType: VerificationType;\n protected componentName = \"\";\n\n constructor(\n protected apiService: ApiService,\n protected i18nService: I18nService,\n protected platformUtilsService: PlatformUtilsService,\n protected logService: LogService,\n protected userVerificationService: UserVerificationService,\n protected dialogService: DialogService,\n ) {}\n\n protected auth(authResponse: AuthResponseBase) {\n this.hashedSecret = authResponse.secret;\n this.verificationType = authResponse.verificationType;\n this.authed = true;\n }\n\n protected async enable(enableFunction: () => Promise) {\n try {\n await enableFunction();\n this.onUpdated.emit(true);\n } catch (e) {\n this.logService.error(e);\n }\n }\n\n protected async disable(promise: Promise) {\n const confirmed = await this.dialogService.openSimpleDialog({\n title: { key: \"disable\" },\n content: { key: \"twoStepDisableDesc\" },\n type: \"warning\",\n });\n\n if (!confirmed) {\n return;\n }\n\n try {\n const request = await this.buildRequestModel(TwoFactorProviderRequest);\n request.type = this.type;\n if (this.organizationId != null) {\n promise = this.apiService.putTwoFactorOrganizationDisable(this.organizationId, request);\n } else {\n promise = this.apiService.putTwoFactorDisable(request);\n }\n await promise;\n this.enabled = false;\n this.platformUtilsService.showToast(\"success\", null, this.i18nService.t(\"twoStepDisabled\"));\n this.onUpdated.emit(false);\n } catch (e) {\n this.logService.error(e);\n }\n }\n\n protected async buildRequestModel(\n requestClass: new () => T,\n ) {\n return this.userVerificationService.buildRequest(\n {\n secret: this.hashedSecret,\n type: this.verificationType,\n },\n requestClass,\n true,\n );\n }\n}\n","import { SecretVerificationRequest } from \"./secret-verification.request\";\n\nexport class UpdateTwoFactorDuoRequest extends SecretVerificationRequest {\n integrationKey: string;\n secretKey: string;\n host: string;\n}\n","
\n
\n
\n
\n

\n {{ \"twoStepLogin\" | i18n }}\n Duo\n

\n \n ×\n \n
\n \n
\n \n \n {{ \"twoStepLoginProviderEnabled\" | i18n }}\n \n \"Duo\n {{ \"twoFactorDuoClientId\" | i18n }}: {{ clientId }}\n
\n {{ \"twoFactorDuoClientSecret\" | i18n }}: {{ clientSecret }}\n
\n {{ \"twoFactorDuoApiHostname\" | i18n }}: {{ host }}\n
\n \n \"Duo\n

{{ \"twoFactorDuoDesc\" | i18n }}

\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n","import { Component } from \"@angular/core\";\n\nimport { ApiService } from \"@bitwarden/common/abstractions/api.service\";\nimport { UserVerificationService } from \"@bitwarden/common/auth/abstractions/user-verification/user-verification.service.abstraction\";\nimport { TwoFactorProviderType } from \"@bitwarden/common/auth/enums/two-factor-provider-type\";\nimport { UpdateTwoFactorDuoRequest } from \"@bitwarden/common/auth/models/request/update-two-factor-duo.request\";\nimport { TwoFactorDuoResponse } from \"@bitwarden/common/auth/models/response/two-factor-duo.response\";\nimport { AuthResponse } from \"@bitwarden/common/auth/types/auth-response\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\nimport { LogService } from \"@bitwarden/common/platform/abstractions/log.service\";\nimport { PlatformUtilsService } from \"@bitwarden/common/platform/abstractions/platform-utils.service\";\nimport { DialogService } from \"@bitwarden/components\";\n\nimport { TwoFactorBaseComponent } from \"./two-factor-base.component\";\n\n@Component({\n selector: \"app-two-factor-duo\",\n templateUrl: \"two-factor-duo.component.html\",\n})\nexport class TwoFactorDuoComponent extends TwoFactorBaseComponent {\n type = TwoFactorProviderType.Duo;\n clientId: string;\n clientSecret: string;\n host: string;\n formPromise: Promise;\n\n override componentName = \"app-two-factor-duo\";\n\n constructor(\n apiService: ApiService,\n i18nService: I18nService,\n platformUtilsService: PlatformUtilsService,\n logService: LogService,\n userVerificationService: UserVerificationService,\n dialogService: DialogService,\n ) {\n super(\n apiService,\n i18nService,\n platformUtilsService,\n logService,\n userVerificationService,\n dialogService,\n );\n }\n\n auth(authResponse: AuthResponse) {\n super.auth(authResponse);\n this.processResponse(authResponse.response);\n }\n\n submit() {\n if (this.enabled) {\n return super.disable(this.formPromise);\n } else {\n return this.enable();\n }\n }\n\n protected async enable() {\n const request = await this.buildRequestModel(UpdateTwoFactorDuoRequest);\n request.integrationKey = this.clientId;\n request.secretKey = this.clientSecret;\n request.host = this.host;\n\n return super.enable(async () => {\n if (this.organizationId != null) {\n this.formPromise = this.apiService.putTwoFactorOrganizationDuo(\n this.organizationId,\n request,\n );\n } else {\n this.formPromise = this.apiService.putTwoFactorDuo(request);\n }\n const response = await this.formPromise;\n await this.processResponse(response);\n });\n }\n\n private processResponse(response: TwoFactorDuoResponse) {\n this.clientId = response.integrationKey;\n this.clientSecret = response.secretKey;\n this.host = response.host;\n this.enabled = response.enabled;\n }\n}\n","import { SecretVerificationRequest } from \"./secret-verification.request\";\n\nexport class UpdateTwoFactorAuthenticatorRequest extends SecretVerificationRequest {\n token: string;\n key: string;\n}\n","
\n
\n
\n
\n

\n {{ \"twoStepLogin\" | i18n }}\n {{ \"authenticatorAppTitle\" | i18n }}\n

\n \n ×\n \n
\n \n
\n \n \"Authenticator\n

{{ \"twoStepAuthenticatorDesc\" | i18n }}

\n

\n 1. {{ \"twoStepAuthenticatorDownloadApp\" | i18n }}\n

\n
\n \n \n

{{ \"twoStepLoginProviderEnabled\" | i18n }}

\n {{ \"twoStepAuthenticatorReaddDesc\" | i18n }}\n
\n \"Authenticator\n

{{ \"twoStepAuthenticatorNeedApp\" | i18n }}

\n
\n
    \n
  • \n {{ \"iosDevices\" | i18n }}:\n Authy\n
  • \n
  • \n {{ \"androidDevices\" | i18n }}:\n Authy\n
  • \n
  • \n {{ \"windowsDevices\" | i18n }}:\n Microsoft Authenticator\n
  • \n
\n

{{ \"twoStepAuthenticatorAppsRecommended\" | i18n }}

\n

\n 2. {{ \"twoStepAuthenticatorScanCode\" | i18n }}\n

\n
\n

\n
\n {{ key }}\n

\n \n \n \n \n
\n
\n \n \n
\n \n
\n
\n
\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { firstValueFrom, map } from \"rxjs\";\n\nimport { ApiService } from \"@bitwarden/common/abstractions/api.service\";\nimport { AccountService } from \"@bitwarden/common/auth/abstractions/account.service\";\nimport { UserVerificationService } from \"@bitwarden/common/auth/abstractions/user-verification/user-verification.service.abstraction\";\nimport { TwoFactorProviderType } from \"@bitwarden/common/auth/enums/two-factor-provider-type\";\nimport { UpdateTwoFactorAuthenticatorRequest } from \"@bitwarden/common/auth/models/request/update-two-factor-authenticator.request\";\nimport { TwoFactorAuthenticatorResponse } from \"@bitwarden/common/auth/models/response/two-factor-authenticator.response\";\nimport { AuthResponse } from \"@bitwarden/common/auth/types/auth-response\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\nimport { LogService } from \"@bitwarden/common/platform/abstractions/log.service\";\nimport { PlatformUtilsService } from \"@bitwarden/common/platform/abstractions/platform-utils.service\";\nimport { Utils } from \"@bitwarden/common/platform/misc/utils\";\nimport { DialogService } from \"@bitwarden/components\";\n\nimport { TwoFactorBaseComponent } from \"./two-factor-base.component\";\n\n// NOTE: There are additional options available but these are just the ones we are current using.\n// See: https://github.com/neocotic/qrious#examples\ninterface QRiousOptions {\n element: HTMLElement;\n value: string;\n size: number;\n}\n\ndeclare global {\n interface Window {\n QRious: new (options: QRiousOptions) => unknown;\n }\n}\n\n@Component({\n selector: \"app-two-factor-authenticator\",\n templateUrl: \"two-factor-authenticator.component.html\",\n})\nexport class TwoFactorAuthenticatorComponent\n extends TwoFactorBaseComponent\n implements OnInit, OnDestroy\n{\n type = TwoFactorProviderType.Authenticator;\n key: string;\n token: string;\n formPromise: Promise;\n\n override componentName = \"app-two-factor-authenticator\";\n private qrScript: HTMLScriptElement;\n\n constructor(\n apiService: ApiService,\n i18nService: I18nService,\n userVerificationService: UserVerificationService,\n platformUtilsService: PlatformUtilsService,\n logService: LogService,\n private accountService: AccountService,\n dialogService: DialogService,\n ) {\n super(\n apiService,\n i18nService,\n platformUtilsService,\n logService,\n userVerificationService,\n dialogService,\n );\n this.qrScript = window.document.createElement(\"script\");\n this.qrScript.src = \"scripts/qrious.min.js\";\n this.qrScript.async = true;\n }\n\n ngOnInit() {\n window.document.body.appendChild(this.qrScript);\n }\n\n ngOnDestroy() {\n window.document.body.removeChild(this.qrScript);\n }\n\n auth(authResponse: AuthResponse) {\n super.auth(authResponse);\n return this.processResponse(authResponse.response);\n }\n\n submit() {\n if (this.enabled) {\n return super.disable(this.formPromise);\n } else {\n return this.enable();\n }\n }\n\n protected async enable() {\n const request = await this.buildRequestModel(UpdateTwoFactorAuthenticatorRequest);\n request.token = this.token;\n request.key = this.key;\n\n return super.enable(async () => {\n this.formPromise = this.apiService.putTwoFactorAuthenticator(request);\n const response = await this.formPromise;\n await this.processResponse(response);\n });\n }\n\n private async processResponse(response: TwoFactorAuthenticatorResponse) {\n this.token = null;\n this.enabled = response.enabled;\n this.key = response.key;\n const email = await firstValueFrom(\n this.accountService.activeAccount$.pipe(map((a) => a?.email)),\n );\n window.setTimeout(() => {\n new window.QRious({\n element: document.getElementById(\"qr\"),\n value:\n \"otpauth://totp/Vaultwarden:\" +\n Utils.encodeRFC3986URIComponent(email) +\n \"?secret=\" +\n encodeURIComponent(this.key) +\n \"&issuer=Vaultwarden\",\n size: 160,\n });\n }, 100);\n }\n}\n","import { SecretVerificationRequest } from \"./secret-verification.request\";\n\nexport class UpdateTwoFactorEmailRequest extends SecretVerificationRequest {\n token: string;\n email: string;\n}\n","
\n
\n
\n
\n

\n {{ \"twoStepLogin\" | i18n }}\n {{ \"emailTitle\" | i18n }}\n

\n \n ×\n \n
\n \n
\n \n \n {{ \"twoStepLoginProviderEnabled\" | i18n }}\n \n {{ \"email\" | i18n }}: {{ email }}\n \n \n

\n {{ \"twoFactorEmailDesc\" | i18n }}\n \"Email\n

\n
\n \n \n
\n
\n \n \n {{ \"sendEmail\" | i18n }}\n \n \n {{ \"verificationCodeEmailSent\" | i18n: sentEmail }}\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n","import { Component } from \"@angular/core\";\nimport { firstValueFrom, map } from \"rxjs\";\n\nimport { ApiService } from \"@bitwarden/common/abstractions/api.service\";\nimport { AccountService } from \"@bitwarden/common/auth/abstractions/account.service\";\nimport { UserVerificationService } from \"@bitwarden/common/auth/abstractions/user-verification/user-verification.service.abstraction\";\nimport { TwoFactorProviderType } from \"@bitwarden/common/auth/enums/two-factor-provider-type\";\nimport { TwoFactorEmailRequest } from \"@bitwarden/common/auth/models/request/two-factor-email.request\";\nimport { UpdateTwoFactorEmailRequest } from \"@bitwarden/common/auth/models/request/update-two-factor-email.request\";\nimport { TwoFactorEmailResponse } from \"@bitwarden/common/auth/models/response/two-factor-email.response\";\nimport { AuthResponse } from \"@bitwarden/common/auth/types/auth-response\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\nimport { LogService } from \"@bitwarden/common/platform/abstractions/log.service\";\nimport { PlatformUtilsService } from \"@bitwarden/common/platform/abstractions/platform-utils.service\";\nimport { DialogService } from \"@bitwarden/components\";\n\nimport { TwoFactorBaseComponent } from \"./two-factor-base.component\";\n\n@Component({\n selector: \"app-two-factor-email\",\n templateUrl: \"two-factor-email.component.html\",\n})\nexport class TwoFactorEmailComponent extends TwoFactorBaseComponent {\n type = TwoFactorProviderType.Email;\n email: string;\n token: string;\n sentEmail: string;\n formPromise: Promise;\n emailPromise: Promise;\n\n override componentName = \"app-two-factor-email\";\n\n constructor(\n apiService: ApiService,\n i18nService: I18nService,\n platformUtilsService: PlatformUtilsService,\n logService: LogService,\n userVerificationService: UserVerificationService,\n private accountService: AccountService,\n dialogService: DialogService,\n ) {\n super(\n apiService,\n i18nService,\n platformUtilsService,\n logService,\n userVerificationService,\n dialogService,\n );\n }\n\n auth(authResponse: AuthResponse) {\n super.auth(authResponse);\n return this.processResponse(authResponse.response);\n }\n\n submit() {\n if (this.enabled) {\n return super.disable(this.formPromise);\n } else {\n return this.enable();\n }\n }\n\n async sendEmail() {\n try {\n const request = await this.buildRequestModel(TwoFactorEmailRequest);\n request.email = this.email;\n this.emailPromise = this.apiService.postTwoFactorEmailSetup(request);\n await this.emailPromise;\n this.sentEmail = this.email;\n } catch (e) {\n this.logService.error(e);\n }\n }\n\n protected async enable() {\n const request = await this.buildRequestModel(UpdateTwoFactorEmailRequest);\n request.email = this.email;\n request.token = this.token;\n\n return super.enable(async () => {\n this.formPromise = this.apiService.putTwoFactorEmail(request);\n const response = await this.formPromise;\n await this.processResponse(response);\n });\n }\n\n private async processResponse(response: TwoFactorEmailResponse) {\n this.token = null;\n this.email = response.email;\n this.enabled = response.enabled;\n if (!this.enabled && (this.email == null || this.email === \"\")) {\n this.email = await firstValueFrom(\n this.accountService.activeAccount$.pipe(map((a) => a?.email)),\n );\n }\n }\n}\n","\n \n {{ \"twoStepLogin\" | i18n }}\n {{ \"recoveryCodeTitle\" | i18n }}\n \n \n \n

{{ \"twoFactorRecoveryYourCode\" | i18n }}:

\n {{ code }}\n
\n \n {{ \"twoFactorRecoveryNoCode\" | i18n }}\n \n
\n \n \n \n \n
\n","import { DIALOG_DATA, DialogConfig } from \"@angular/cdk/dialog\";\nimport { Component, Inject } from \"@angular/core\";\n\nimport { TwoFactorProviderType } from \"@bitwarden/common/auth/enums/two-factor-provider-type\";\nimport { TwoFactorRecoverResponse } from \"@bitwarden/common/auth/models/response/two-factor-recover.response\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\nimport { DialogService } from \"@bitwarden/components\";\n\n@Component({\n selector: \"app-two-factor-recovery\",\n templateUrl: \"two-factor-recovery.component.html\",\n})\nexport class TwoFactorRecoveryComponent {\n type = -1;\n code: string;\n authed: boolean;\n twoFactorProviderType = TwoFactorProviderType;\n\n constructor(\n @Inject(DIALOG_DATA) protected data: any,\n private i18nService: I18nService,\n ) {\n this.auth(data.response);\n }\n\n auth(authResponse: any) {\n this.authed = true;\n this.processResponse(authResponse.response);\n }\n\n print() {\n const w = window.open();\n w.document.write(\n '
' +\n \"

\" +\n this.i18nService.t(\"twoFactorRecoveryYourCode\") +\n \":

\" +\n \"\" +\n this.code +\n \"
\" +\n '

' +\n new Date() +\n \"

\",\n );\n w.onafterprint = () => w.close();\n w.print();\n }\n\n private formatString(s: string) {\n if (s == null) {\n return null;\n }\n return s\n .replace(/(.{4})/g, \"$1 \")\n .trim()\n .toUpperCase();\n }\n\n private processResponse(response: TwoFactorRecoverResponse) {\n this.code = this.formatString(response.code);\n }\n\n static open(dialogService: DialogService, config: DialogConfig) {\n return dialogService.open(TwoFactorRecoveryComponent, config);\n }\n}\n","import { DIALOG_DATA, DialogConfig, DialogRef } from \"@angular/cdk/dialog\";\nimport { Component, EventEmitter, Inject, Output } from \"@angular/core\";\nimport { FormControl, FormGroup } from \"@angular/forms\";\n\nimport { ApiService } from \"@bitwarden/common/abstractions/api.service\";\nimport { UserVerificationService } from \"@bitwarden/common/auth/abstractions/user-verification/user-verification.service.abstraction\";\nimport { TwoFactorProviderType } from \"@bitwarden/common/auth/enums/two-factor-provider-type\";\nimport { VerificationType } from \"@bitwarden/common/auth/enums/verification-type\";\nimport { SecretVerificationRequest } from \"@bitwarden/common/auth/models/request/secret-verification.request\";\nimport { AuthResponse } from \"@bitwarden/common/auth/types/auth-response\";\nimport { TwoFactorResponse } from \"@bitwarden/common/auth/types/two-factor-response\";\nimport { Verification } from \"@bitwarden/common/auth/types/verification\";\nimport { ErrorResponse } from \"@bitwarden/common/models/response/error.response\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\nimport { DialogService } from \"@bitwarden/components\";\n\ntype TwoFactorVerifyDialogData = {\n type: TwoFactorProviderType;\n organizationId: string;\n};\n\n@Component({\n selector: \"app-two-factor-verify\",\n templateUrl: \"two-factor-verify.component.html\",\n})\nexport class TwoFactorVerifyComponent {\n type: TwoFactorProviderType;\n organizationId: string;\n @Output() onAuthed = new EventEmitter>();\n\n formPromise: Promise;\n\n protected formGroup = new FormGroup({\n secret: new FormControl(null),\n });\n invalidSecret: boolean = false;\n\n constructor(\n @Inject(DIALOG_DATA) protected data: TwoFactorVerifyDialogData,\n private dialogRef: DialogRef,\n private apiService: ApiService,\n private i18nService: I18nService,\n private userVerificationService: UserVerificationService,\n ) {\n this.type = data.type;\n this.organizationId = data.organizationId;\n }\n\n submit = async () => {\n try {\n let hashedSecret: string;\n this.formPromise = this.userVerificationService\n .buildRequest(this.formGroup.value.secret)\n .then((request) => {\n hashedSecret =\n this.formGroup.value.secret.type === VerificationType.MasterPassword\n ? request.masterPasswordHash\n : request.otp;\n return this.apiCall(request);\n });\n\n const response = await this.formPromise;\n this.dialogRef.close({\n response: response,\n secret: hashedSecret,\n verificationType: this.formGroup.value.secret.type,\n });\n } catch (e) {\n if (e instanceof ErrorResponse && e.statusCode === 400) {\n this.invalidSecret = true;\n }\n throw e;\n }\n };\n\n get dialogTitle(): string {\n switch (this.type) {\n case -1 as TwoFactorProviderType:\n return this.i18nService.t(\"recoveryCodeTitle\");\n case TwoFactorProviderType.Duo:\n return \"Duo\";\n case TwoFactorProviderType.Email:\n return this.i18nService.t(\"emailTitle\");\n case TwoFactorProviderType.WebAuthn:\n return this.i18nService.t(\"webAuthnTitle\");\n case TwoFactorProviderType.Authenticator:\n return this.i18nService.t(\"authenticatorAppTitle\");\n case TwoFactorProviderType.Yubikey:\n return \"Yubikey\";\n }\n }\n\n private apiCall(request: SecretVerificationRequest): Promise {\n switch (this.type) {\n case -1 as TwoFactorProviderType:\n return this.apiService.getTwoFactorRecover(request);\n case TwoFactorProviderType.Duo:\n case TwoFactorProviderType.OrganizationDuo:\n if (this.organizationId != null) {\n return this.apiService.getTwoFactorOrganizationDuo(this.organizationId, request);\n } else {\n return this.apiService.getTwoFactorDuo(request);\n }\n case TwoFactorProviderType.Email:\n return this.apiService.getTwoFactorEmail(request);\n case TwoFactorProviderType.WebAuthn:\n return this.apiService.getTwoFactorWebAuthn(request);\n case TwoFactorProviderType.Authenticator:\n return this.apiService.getTwoFactorAuthenticator(request);\n case TwoFactorProviderType.Yubikey:\n return this.apiService.getTwoFactorYubiKey(request);\n }\n }\n\n static open(dialogService: DialogService, config: DialogConfig) {\n return dialogService.open>(TwoFactorVerifyComponent, config);\n }\n}\n","
\n \n \n {{ \"twoStepLogin\" | i18n }}\n {{ dialogTitle }}\n \n \n \n \n \n \n \n \n \n
\n","import { SecretVerificationRequest } from \"./secret-verification.request\";\n\nexport class UpdateTwoFactorWebAuthnDeleteRequest extends SecretVerificationRequest {\n id: number;\n}\n","import { SecretVerificationRequest } from \"./secret-verification.request\";\n\nexport class UpdateTwoFactorWebAuthnRequest extends SecretVerificationRequest {\n deviceResponse: PublicKeyCredential;\n name: string;\n id: number;\n}\n","
\n
\n
\n
\n

\n {{ \"twoStepLogin\" | i18n }}\n {{ \"webAuthnTitle\" | i18n }}\n

\n \n ×\n \n
\n \n
\n \n {{ \"twoStepLoginProviderEnabled\" | i18n }}\n \n \n

{{ \"twoFactorWebAuthnWarning\" | i18n }}

\n
    \n
  • {{ \"twoFactorWebAuthnSupportWeb\" | i18n }}
  • \n
\n
\n \"FIDO2\n
    \n \n \n {{ \"webAuthnkeyX\" | i18n: i + 1 }}\n {{ k.name }}\n \n \n {{ \"webAuthnMigrated\" | i18n }}\n \n \n 1 && k.configured\">\n \n -\n {{ \"remove\" | i18n }}\n \n \n
\n
\n

{{ \"twoFactorWebAuthnAdd\" | i18n }}:

\n
    \n
  1. {{ \"twoFactorU2fGiveName\" | i18n }}
  2. \n
  3. {{ \"twoFactorU2fPlugInReadKey\" | i18n }}
  4. \n
  5. {{ \"twoFactorU2fTouchButton\" | i18n }}
  6. \n
  7. {{ \"twoFactorU2fSaveForm\" | i18n }}
  8. \n
\n
\n
\n \n \n
\n
\n \n {{ \"readKey\" | i18n }}\n \n \n \n \n \n \n \n {{ \"twoFactorU2fWaiting\" | i18n }}...\n \n \n \n {{ \"twoFactorU2fClickSave\" | i18n }}\n \n \n \n {{ \"twoFactorU2fProblemReadingTryAgain\" | i18n }}\n \n \n
\n
\n \n \n {{ \"save\" | i18n }}\n \n \n \n {{ \"disableAllKeys\" | i18n }}\n \n \n
\n \n
\n
\n
\n","import { Component, NgZone } from \"@angular/core\";\n\nimport { ApiService } from \"@bitwarden/common/abstractions/api.service\";\nimport { UserVerificationService } from \"@bitwarden/common/auth/abstractions/user-verification/user-verification.service.abstraction\";\nimport { TwoFactorProviderType } from \"@bitwarden/common/auth/enums/two-factor-provider-type\";\nimport { SecretVerificationRequest } from \"@bitwarden/common/auth/models/request/secret-verification.request\";\nimport { UpdateTwoFactorWebAuthnDeleteRequest } from \"@bitwarden/common/auth/models/request/update-two-factor-web-authn-delete.request\";\nimport { UpdateTwoFactorWebAuthnRequest } from \"@bitwarden/common/auth/models/request/update-two-factor-web-authn.request\";\nimport {\n ChallengeResponse,\n TwoFactorWebAuthnResponse,\n} from \"@bitwarden/common/auth/models/response/two-factor-web-authn.response\";\nimport { AuthResponse } from \"@bitwarden/common/auth/types/auth-response\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\nimport { LogService } from \"@bitwarden/common/platform/abstractions/log.service\";\nimport { PlatformUtilsService } from \"@bitwarden/common/platform/abstractions/platform-utils.service\";\nimport { DialogService } from \"@bitwarden/components\";\n\nimport { TwoFactorBaseComponent } from \"./two-factor-base.component\";\n\ninterface Key {\n id: number;\n name: string;\n configured: boolean;\n migrated?: boolean;\n removePromise: Promise | null;\n}\n\n@Component({\n selector: \"app-two-factor-webauthn\",\n templateUrl: \"two-factor-webauthn.component.html\",\n})\nexport class TwoFactorWebAuthnComponent extends TwoFactorBaseComponent {\n type = TwoFactorProviderType.WebAuthn;\n name: string;\n keys: Key[];\n keyIdAvailable: number = null;\n keysConfiguredCount = 0;\n webAuthnError: boolean;\n webAuthnListening: boolean;\n webAuthnResponse: PublicKeyCredential;\n challengePromise: Promise;\n formPromise: Promise;\n\n override componentName = \"app-two-factor-webauthn\";\n\n constructor(\n apiService: ApiService,\n i18nService: I18nService,\n platformUtilsService: PlatformUtilsService,\n private ngZone: NgZone,\n logService: LogService,\n userVerificationService: UserVerificationService,\n dialogService: DialogService,\n ) {\n super(\n apiService,\n i18nService,\n platformUtilsService,\n logService,\n userVerificationService,\n dialogService,\n );\n }\n\n auth(authResponse: AuthResponse) {\n super.auth(authResponse);\n this.processResponse(authResponse.response);\n }\n\n async submit() {\n if (this.webAuthnResponse == null || this.keyIdAvailable == null) {\n // Should never happen.\n return Promise.reject();\n }\n const request = await this.buildRequestModel(UpdateTwoFactorWebAuthnRequest);\n request.deviceResponse = this.webAuthnResponse;\n request.id = this.keyIdAvailable;\n request.name = this.name;\n\n return super.enable(async () => {\n this.formPromise = this.apiService.putTwoFactorWebAuthn(request);\n const response = await this.formPromise;\n await this.processResponse(response);\n });\n }\n\n disable() {\n return super.disable(this.formPromise);\n }\n\n async remove(key: Key) {\n if (this.keysConfiguredCount <= 1 || key.removePromise != null) {\n return;\n }\n const name = key.name != null ? key.name : this.i18nService.t(\"webAuthnkeyX\", key.id as any);\n\n const confirmed = await this.dialogService.openSimpleDialog({\n title: name,\n content: { key: \"removeU2fConfirmation\" },\n type: \"warning\",\n });\n\n if (!confirmed) {\n return;\n }\n const request = await this.buildRequestModel(UpdateTwoFactorWebAuthnDeleteRequest);\n request.id = key.id;\n try {\n key.removePromise = this.apiService.deleteTwoFactorWebAuthn(request);\n const response = await key.removePromise;\n key.removePromise = null;\n await this.processResponse(response);\n } catch (e) {\n this.logService.error(e);\n }\n }\n\n async readKey() {\n if (this.keyIdAvailable == null) {\n return;\n }\n const request = await this.buildRequestModel(SecretVerificationRequest);\n try {\n this.challengePromise = this.apiService.getTwoFactorWebAuthnChallenge(request);\n const challenge = await this.challengePromise;\n this.readDevice(challenge);\n } catch (e) {\n this.logService.error(e);\n }\n }\n\n private readDevice(webAuthnChallenge: ChallengeResponse) {\n // eslint-disable-next-line\n console.log(\"listening for key...\");\n this.resetWebAuthn(true);\n\n navigator.credentials\n .create({\n publicKey: webAuthnChallenge,\n })\n .then((data: PublicKeyCredential) => {\n this.ngZone.run(() => {\n this.webAuthnListening = false;\n this.webAuthnResponse = data;\n });\n })\n .catch((err) => {\n // eslint-disable-next-line\n console.error(err);\n this.resetWebAuthn(false);\n // TODO: Should we display the actual error?\n this.webAuthnError = true;\n });\n }\n\n private resetWebAuthn(listening = false) {\n this.webAuthnResponse = null;\n this.webAuthnError = false;\n this.webAuthnListening = listening;\n }\n\n private processResponse(response: TwoFactorWebAuthnResponse) {\n this.resetWebAuthn();\n this.keys = [];\n this.keyIdAvailable = null;\n this.name = null;\n this.keysConfiguredCount = 0;\n for (let i = 1; i <= 5; i++) {\n if (response.keys != null) {\n const key = response.keys.filter((k) => k.id === i);\n if (key.length > 0) {\n this.keysConfiguredCount++;\n this.keys.push({\n id: i,\n name: key[0].name,\n configured: true,\n migrated: key[0].migrated,\n removePromise: null,\n });\n continue;\n }\n }\n this.keys.push({ id: i, name: null, configured: false, removePromise: null });\n if (this.keyIdAvailable == null) {\n this.keyIdAvailable = i;\n }\n }\n this.enabled = response.enabled;\n }\n}\n","import { SecretVerificationRequest } from \"./secret-verification.request\";\n\nexport class UpdateTwoFactorYubioOtpRequest extends SecretVerificationRequest {\n key1: string;\n key2: string;\n key3: string;\n key4: string;\n key5: string;\n nfc: boolean;\n}\n","
\n
\n
\n
\n

\n {{ \"twoStepLogin\" | i18n }}\n YubiKey\n

\n \n ×\n \n
\n \n
\n \n {{ \"twoStepLoginProviderEnabled\" | i18n }}\n \n \n

{{ \"twoFactorYubikeyWarning\" | i18n }}

\n
    \n
  • {{ \"twoFactorYubikeySupportUsb\" | i18n }}
  • \n
  • {{ \"twoFactorYubikeySupportMobile\" | i18n }}
  • \n
\n
\n \"YubiKey\n

{{ \"twoFactorYubikeyAdd\" | i18n }}:

\n
    \n
  1. {{ \"twoFactorYubikeyPlugIn\" | i18n }}
  2. \n
  3. {{ \"twoFactorYubikeySelectKey\" | i18n }}
  4. \n
  5. {{ \"twoFactorYubikeyTouchButton\" | i18n }}
  6. \n
  7. {{ \"twoFactorYubikeySaveForm\" | i18n }}
  8. \n
\n
\n
\n
\n \n \n
\n {{ k.existingKey }}\n \n \n \n
\n
\n
\n {{ \"nfcSupport\" | i18n }}\n
\n \n \n
\n {{ \"twoFactorYubikeySupportsNfcDesc\" | i18n }}\n
\n
\n \n \n \n {{ \"disableAllKeys\" | i18n }}\n \n \n
\n \n
\n
\n
\n","import { Component } from \"@angular/core\";\n\nimport { ApiService } from \"@bitwarden/common/abstractions/api.service\";\nimport { UserVerificationService } from \"@bitwarden/common/auth/abstractions/user-verification/user-verification.service.abstraction\";\nimport { TwoFactorProviderType } from \"@bitwarden/common/auth/enums/two-factor-provider-type\";\nimport { UpdateTwoFactorYubioOtpRequest } from \"@bitwarden/common/auth/models/request/update-two-factor-yubio-otp.request\";\nimport { TwoFactorYubiKeyResponse } from \"@bitwarden/common/auth/models/response/two-factor-yubi-key.response\";\nimport { AuthResponse } from \"@bitwarden/common/auth/types/auth-response\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\nimport { LogService } from \"@bitwarden/common/platform/abstractions/log.service\";\nimport { PlatformUtilsService } from \"@bitwarden/common/platform/abstractions/platform-utils.service\";\nimport { DialogService } from \"@bitwarden/components\";\n\nimport { TwoFactorBaseComponent } from \"./two-factor-base.component\";\n\ninterface Key {\n key: string;\n existingKey: string;\n}\n\n@Component({\n selector: \"app-two-factor-yubikey\",\n templateUrl: \"two-factor-yubikey.component.html\",\n})\nexport class TwoFactorYubiKeyComponent extends TwoFactorBaseComponent {\n type = TwoFactorProviderType.Yubikey;\n keys: Key[];\n nfc = false;\n\n formPromise: Promise;\n disablePromise: Promise;\n\n override componentName = \"app-two-factor-yubikey\";\n\n constructor(\n apiService: ApiService,\n i18nService: I18nService,\n platformUtilsService: PlatformUtilsService,\n logService: LogService,\n userVerificationService: UserVerificationService,\n dialogService: DialogService,\n ) {\n super(\n apiService,\n i18nService,\n platformUtilsService,\n logService,\n userVerificationService,\n dialogService,\n );\n }\n\n auth(authResponse: AuthResponse) {\n super.auth(authResponse);\n this.processResponse(authResponse.response);\n }\n\n async submit() {\n const request = await this.buildRequestModel(UpdateTwoFactorYubioOtpRequest);\n request.key1 = this.keys != null && this.keys.length > 0 ? this.keys[0].key : null;\n request.key2 = this.keys != null && this.keys.length > 1 ? this.keys[1].key : null;\n request.key3 = this.keys != null && this.keys.length > 2 ? this.keys[2].key : null;\n request.key4 = this.keys != null && this.keys.length > 3 ? this.keys[3].key : null;\n request.key5 = this.keys != null && this.keys.length > 4 ? this.keys[4].key : null;\n request.nfc = this.nfc;\n\n return super.enable(async () => {\n this.formPromise = this.apiService.putTwoFactorYubiKey(request);\n const response = await this.formPromise;\n await this.processResponse(response);\n this.platformUtilsService.showToast(\"success\", null, this.i18nService.t(\"yubikeysUpdated\"));\n });\n }\n\n disable() {\n return super.disable(this.disablePromise);\n }\n\n remove(key: Key) {\n key.existingKey = null;\n key.key = null;\n }\n\n private processResponse(response: TwoFactorYubiKeyResponse) {\n this.enabled = response.enabled;\n this.keys = [\n { key: response.key1, existingKey: this.padRight(response.key1) },\n { key: response.key2, existingKey: this.padRight(response.key2) },\n { key: response.key3, existingKey: this.padRight(response.key3) },\n { key: response.key4, existingKey: this.padRight(response.key4) },\n { key: response.key5, existingKey: this.padRight(response.key5) },\n ];\n this.nfc = response.nfc || !response.enabled;\n }\n\n private padRight(str: string, character = \"•\", size = 44) {\n if (str == null || character == null || str.length >= size) {\n return str;\n }\n const max = (size - str.length) / character.length;\n for (let i = 0; i < max; i++) {\n str += character;\n }\n return str;\n }\n}\n","\n\n\n
\n

{{ \"twoStepLogin\" | i18n }}

\n

{{ \"twoStepLoginEnforcement\" | i18n }}

\n
\n\n

{{ \"twoStepLoginDesc\" | i18n }}

\n \n

\n \n {{ \"twoStepLoginEnterpriseDescStart\" | i18n }}\n {{ \"twoStepLoginPolicy\" | i18n }}.\n
\n {{ \"twoStepLoginOrganizationDuoDesc\" | i18n }}\n
\n
\n

{{ \"twoStepLoginOrganizationSsoDesc\" | i18n }}

\n
\n \n {{ \"twoStepLoginTeamsDesc\" | i18n }}\n
\n {{ \"twoStepLoginOrganizationDuoDesc\" | i18n }}\n
\n

\n \n \n

{{ \"twoStepLoginRecoveryWarning\" | i18n }}

\n \n
\n

\n {{ \"providers\" | i18n }}\n \n \n {{ \"loading\" | i18n }}\n \n

\n \n {{ \"twoStepLoginPolicyUserWarning\" | i18n }}\n \n
    \n
  • \n
    \n \n
    \n
    \n

    \n {{ p.name }}\n \n \n {{ \"enabled\" | i18n }}\n \n \n

    \n {{ p.description }}\n
    \n
    \n \n {{ \"manage\" | i18n }}\n \n
    \n
  • \n
\n
\n\n\n\n\n\n\n","import { Component, OnDestroy, OnInit, Type, ViewChild, ViewContainerRef } from \"@angular/core\";\nimport { firstValueFrom, lastValueFrom, Observable, Subject, takeUntil } from \"rxjs\";\n\nimport { ModalRef } from \"@bitwarden/angular/components/modal/modal.ref\";\nimport { ModalService } from \"@bitwarden/angular/services/modal.service\";\nimport { ApiService } from \"@bitwarden/common/abstractions/api.service\";\nimport { PolicyService } from \"@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction\";\nimport { PolicyType } from \"@bitwarden/common/admin-console/enums\";\nimport { Organization } from \"@bitwarden/common/admin-console/models/domain/organization\";\nimport { TwoFactorProviderType } from \"@bitwarden/common/auth/enums/two-factor-provider-type\";\nimport { TwoFactorAuthenticatorResponse } from \"@bitwarden/common/auth/models/response/two-factor-authenticator.response\";\nimport { TwoFactorDuoResponse } from \"@bitwarden/common/auth/models/response/two-factor-duo.response\";\nimport { TwoFactorEmailResponse } from \"@bitwarden/common/auth/models/response/two-factor-email.response\";\nimport { TwoFactorWebAuthnResponse } from \"@bitwarden/common/auth/models/response/two-factor-web-authn.response\";\nimport { TwoFactorYubiKeyResponse } from \"@bitwarden/common/auth/models/response/two-factor-yubi-key.response\";\nimport { TwoFactorProviders } from \"@bitwarden/common/auth/services/two-factor.service\";\nimport { AuthResponse } from \"@bitwarden/common/auth/types/auth-response\";\nimport { BillingAccountProfileStateService } from \"@bitwarden/common/billing/abstractions/account/billing-account-profile-state.service\";\nimport { ProductType } from \"@bitwarden/common/enums\";\nimport { MessagingService } from \"@bitwarden/common/platform/abstractions/messaging.service\";\nimport { DialogService } from \"@bitwarden/components\";\n\nimport { TwoFactorAuthenticatorComponent } from \"./two-factor-authenticator.component\";\nimport { TwoFactorDuoComponent } from \"./two-factor-duo.component\";\nimport { TwoFactorEmailComponent } from \"./two-factor-email.component\";\nimport { TwoFactorRecoveryComponent } from \"./two-factor-recovery.component\";\nimport { TwoFactorVerifyComponent } from \"./two-factor-verify.component\";\nimport { TwoFactorWebAuthnComponent } from \"./two-factor-webauthn.component\";\nimport { TwoFactorYubiKeyComponent } from \"./two-factor-yubikey.component\";\n\n@Component({\n selector: \"app-two-factor-setup\",\n templateUrl: \"two-factor-setup.component.html\",\n})\nexport class TwoFactorSetupComponent implements OnInit, OnDestroy {\n @ViewChild(\"authenticatorTemplate\", { read: ViewContainerRef, static: true })\n authenticatorModalRef: ViewContainerRef;\n @ViewChild(\"yubikeyTemplate\", { read: ViewContainerRef, static: true })\n yubikeyModalRef: ViewContainerRef;\n @ViewChild(\"duoTemplate\", { read: ViewContainerRef, static: true }) duoModalRef: ViewContainerRef;\n @ViewChild(\"emailTemplate\", { read: ViewContainerRef, static: true })\n emailModalRef: ViewContainerRef;\n @ViewChild(\"webAuthnTemplate\", { read: ViewContainerRef, static: true })\n webAuthnModalRef: ViewContainerRef;\n\n organizationId: string;\n organization: Organization;\n providers: any[] = [];\n canAccessPremium$: Observable;\n showPolicyWarning = false;\n loading = true;\n modal: ModalRef;\n formPromise: Promise;\n\n tabbedHeader = true;\n\n protected destroy$ = new Subject();\n private twoFactorAuthPolicyAppliesToActiveUser: boolean;\n\n constructor(\n protected dialogService: DialogService,\n protected apiService: ApiService,\n protected modalService: ModalService,\n protected messagingService: MessagingService,\n protected policyService: PolicyService,\n billingAccountProfileStateService: BillingAccountProfileStateService,\n ) {\n this.canAccessPremium$ = billingAccountProfileStateService.hasPremiumFromAnySource$;\n }\n\n async ngOnInit() {\n for (const key in TwoFactorProviders) {\n // eslint-disable-next-line\n if (!TwoFactorProviders.hasOwnProperty(key)) {\n continue;\n }\n\n const p = (TwoFactorProviders as any)[key];\n if (this.filterProvider(p.type)) {\n continue;\n }\n\n this.providers.push({\n type: p.type,\n name: p.name,\n description: p.description,\n enabled: false,\n premium: p.premium,\n sort: p.sort,\n });\n }\n\n this.providers.sort((a: any, b: any) => a.sort - b.sort);\n\n this.policyService\n .policyAppliesToActiveUser$(PolicyType.TwoFactorAuthentication)\n .pipe(takeUntil(this.destroy$))\n .subscribe((policyAppliesToActiveUser) => {\n this.twoFactorAuthPolicyAppliesToActiveUser = policyAppliesToActiveUser;\n });\n\n await this.load();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n async load() {\n this.loading = true;\n const providerList = await this.getTwoFactorProviders();\n providerList.data.forEach((p) => {\n this.providers.forEach((p2) => {\n if (p.type === p2.type) {\n p2.enabled = p.enabled;\n }\n });\n });\n this.evaluatePolicies();\n this.loading = false;\n }\n\n async callTwoFactorVerifyDialog(type?: TwoFactorProviderType) {\n const twoFactorVerifyDialogRef = TwoFactorVerifyComponent.open(this.dialogService, {\n data: { type: type, organizationId: this.organizationId },\n });\n return await lastValueFrom(twoFactorVerifyDialogRef.closed);\n }\n\n async manage(type: TwoFactorProviderType) {\n switch (type) {\n case TwoFactorProviderType.Authenticator: {\n const result: AuthResponse =\n await this.callTwoFactorVerifyDialog(type);\n if (!result) {\n return;\n }\n const authComp = await this.openModal(\n this.authenticatorModalRef,\n TwoFactorAuthenticatorComponent,\n );\n await authComp.auth(result);\n authComp.onUpdated.pipe(takeUntil(this.destroy$)).subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.Authenticator);\n });\n break;\n }\n case TwoFactorProviderType.Yubikey: {\n const result: AuthResponse =\n await this.callTwoFactorVerifyDialog(type);\n if (!result) {\n return;\n }\n const yubiComp = await this.openModal(this.yubikeyModalRef, TwoFactorYubiKeyComponent);\n yubiComp.auth(result);\n yubiComp.onUpdated.pipe(takeUntil(this.destroy$)).subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.Yubikey);\n });\n break;\n }\n case TwoFactorProviderType.Duo: {\n const result: AuthResponse =\n await this.callTwoFactorVerifyDialog(type);\n if (!result) {\n return;\n }\n const duoComp = await this.openModal(this.duoModalRef, TwoFactorDuoComponent);\n duoComp.auth(result);\n duoComp.onUpdated.pipe(takeUntil(this.destroy$)).subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.Duo);\n });\n break;\n }\n case TwoFactorProviderType.Email: {\n const result: AuthResponse =\n await this.callTwoFactorVerifyDialog(type);\n if (!result) {\n return;\n }\n const emailComp = await this.openModal(this.emailModalRef, TwoFactorEmailComponent);\n await emailComp.auth(result);\n emailComp.onUpdated.pipe(takeUntil(this.destroy$)).subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.Email);\n });\n break;\n }\n case TwoFactorProviderType.WebAuthn: {\n const result: AuthResponse =\n await this.callTwoFactorVerifyDialog(type);\n if (!result) {\n return;\n }\n const webAuthnComp = await this.openModal(\n this.webAuthnModalRef,\n TwoFactorWebAuthnComponent,\n );\n webAuthnComp.auth(result);\n webAuthnComp.onUpdated.pipe(takeUntil(this.destroy$)).subscribe((enabled: boolean) => {\n this.updateStatus(enabled, TwoFactorProviderType.WebAuthn);\n });\n break;\n }\n default:\n break;\n }\n }\n\n async recoveryCode() {\n const result = await this.callTwoFactorVerifyDialog(-1 as TwoFactorProviderType);\n if (result) {\n const recoverComp = TwoFactorRecoveryComponent.open(this.dialogService, { data: result });\n await lastValueFrom(recoverComp.closed);\n }\n }\n\n async premiumRequired() {\n if (!(await firstValueFrom(this.canAccessPremium$))) {\n this.messagingService.send(\"premiumRequired\");\n return;\n }\n }\n\n protected getTwoFactorProviders() {\n return this.apiService.getTwoFactorProviders();\n }\n\n protected filterProvider(type: TwoFactorProviderType) {\n return type === TwoFactorProviderType.OrganizationDuo;\n }\n\n protected async openModal(ref: ViewContainerRef, type: Type): Promise {\n const [modal, childComponent] = await this.modalService.openViewRef(type, ref);\n this.modal = modal;\n\n return childComponent;\n }\n\n protected updateStatus(enabled: boolean, type: TwoFactorProviderType) {\n if (!enabled && this.modal != null) {\n this.modal.close();\n }\n this.providers.forEach((p) => {\n if (p.type === type) {\n p.enabled = enabled;\n }\n });\n this.evaluatePolicies();\n }\n\n private evaluatePolicies() {\n if (this.organizationId == null && this.providers.filter((p) => p.enabled).length === 1) {\n this.showPolicyWarning = this.twoFactorAuthPolicyAppliesToActiveUser;\n } else {\n this.showPolicyWarning = false;\n }\n }\n\n get isEnterpriseOrg() {\n return this.organization?.planProductType === ProductType.Enterprise;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { SharedModule } from \"../../../../shared/shared.module\";\n\nimport { UserVerificationPromptComponent } from \"./user-verification-prompt.component\";\nimport { UserVerificationComponent } from \"./user-verification.component\";\n\n@NgModule({\n imports: [SharedModule, FormsModule, ReactiveFormsModule],\n declarations: [UserVerificationComponent, UserVerificationPromptComponent],\n exports: [UserVerificationComponent, UserVerificationPromptComponent],\n})\nexport class UserVerificationModule {}\n","import { Directive } from \"@angular/core\";\nimport { FormBuilder } from \"@angular/forms\";\n\nimport { UserVerificationService } from \"@bitwarden/common/auth/abstractions/user-verification/user-verification.service.abstraction\";\nimport { Verification } from \"@bitwarden/common/auth/types/verification\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\nimport { PlatformUtilsService } from \"@bitwarden/common/platform/abstractions/platform-utils.service\";\n\nimport { ModalRef } from \"../../components/modal/modal.ref\";\n\nexport interface UserVerificationPromptParams {\n confirmDescription: string;\n confirmButtonText: string;\n modalTitle: string;\n}\n\n/**\n * Used to verify the user's identity (using their master password or email-based OTP for Key Connector users). You can customize all of the text in the modal.\n * @deprecated Jan 24, 2024: Use new libs/auth UserVerificationDialogComponent instead.\n */\n@Directive()\nexport class UserVerificationPromptComponent {\n confirmDescription = this.config.confirmDescription;\n confirmButtonText = this.config.confirmButtonText;\n modalTitle = this.config.modalTitle;\n\n formGroup = this.formBuilder.group({\n secret: this.formBuilder.control(null),\n });\n\n protected invalidSecret = false;\n\n constructor(\n private modalRef: ModalRef,\n protected config: UserVerificationPromptParams,\n protected userVerificationService: UserVerificationService,\n private formBuilder: FormBuilder,\n private platformUtilsService: PlatformUtilsService,\n private i18nService: I18nService,\n ) {}\n\n get secret() {\n return this.formGroup.controls.secret;\n }\n\n submit = async () => {\n this.formGroup.markAllAsTouched();\n\n if (this.formGroup.invalid) {\n return;\n }\n\n try {\n //Incorrect secret will throw an invalid password error.\n await this.userVerificationService.verifyUser(this.secret.value);\n this.invalidSecret = false;\n } catch (e) {\n this.invalidSecret = true;\n this.platformUtilsService.showToast(\"error\", this.i18nService.t(\"error\"), e.message);\n return;\n }\n\n this.close(true);\n };\n\n close(success: boolean) {\n this.modalRef.close(success);\n }\n}\n","import { DialogConfig, DialogRef, DIALOG_DATA } from \"@angular/cdk/dialog\";\nimport { Component, Inject } from \"@angular/core\";\nimport { FormBuilder } from \"@angular/forms\";\n\nimport {\n UserVerificationPromptComponent as BaseUserVerificationPrompt,\n UserVerificationPromptParams,\n} from \"@bitwarden/angular/auth/components/user-verification-prompt.component\";\nimport { UserVerificationService } from \"@bitwarden/common/auth/abstractions/user-verification/user-verification.service.abstraction\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\nimport { PlatformUtilsService } from \"@bitwarden/common/platform/abstractions/platform-utils.service\";\nimport { DialogService } from \"@bitwarden/components\";\n\n/**\n * @deprecated Jan 24, 2024: Use new libs/auth UserVerificationDialogComponent instead.\n */\n@Component({\n templateUrl: \"user-verification-prompt.component.html\",\n})\nexport class UserVerificationPromptComponent extends BaseUserVerificationPrompt {\n constructor(\n @Inject(DIALOG_DATA) data: UserVerificationPromptParams,\n private dialogRef: DialogRef,\n userVerificationService: UserVerificationService,\n formBuilder: FormBuilder,\n platformUtilsService: PlatformUtilsService,\n i18nService: I18nService,\n ) {\n super(null, data, userVerificationService, formBuilder, platformUtilsService, i18nService);\n }\n\n override close(success: boolean) {\n this.dialogRef.close(success);\n }\n}\n\n/**\n * Strongly typed helper to open a UserVerificationPrompt\n * @param dialogService Instance of the dialog service that will be used to open the dialog\n * @param config Configuration for the dialog\n */\nexport const openUserVerificationPrompt = (\n dialogService: DialogService,\n config: DialogConfig,\n) => {\n return dialogService.open(\n UserVerificationPromptComponent,\n config,\n );\n};\n","
\n \n {{ modalTitle | i18n }}\n \n

{{ confirmDescription | i18n }}

\n \n
\n \n \n \n \n
\n
\n","import { Directive, EventEmitter, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\nimport { ControlValueAccessor, FormControl, Validators } from \"@angular/forms\";\nimport { Subject, takeUntil } from \"rxjs\";\n\nimport { UserVerificationService } from \"@bitwarden/common/auth/abstractions/user-verification/user-verification.service.abstraction\";\nimport { VerificationType } from \"@bitwarden/common/auth/enums/verification-type\";\nimport { Verification } from \"@bitwarden/common/auth/types/verification\";\nimport { CryptoService } from \"@bitwarden/common/platform/abstractions/crypto.service\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\nimport { Utils } from \"@bitwarden/common/platform/misc/utils\";\n\n/**\n * Used for general-purpose user verification throughout the app.\n * Collects the user's master password, or if they are not using a password, prompts for an OTP via email.\n * This is exposed to the parent component via the ControlValueAccessor interface (e.g. bind it to a FormControl).\n * Use UserVerificationService to verify the user's input.\n *\n * @deprecated Jan 24, 2024: Use new libs/auth UserVerificationDialogComponent or UserVerificationFormInputComponent instead.\n * Each client specific component should eventually be converted over to use one of these new components.\n */\n@Directive({\n selector: \"app-user-verification\",\n})\n// eslint-disable-next-line rxjs-angular/prefer-takeuntil\nexport class UserVerificationComponent implements ControlValueAccessor, OnInit, OnDestroy {\n private _invalidSecret = false;\n @Input()\n get invalidSecret() {\n return this._invalidSecret;\n }\n set invalidSecret(value: boolean) {\n this._invalidSecret = value;\n this.invalidSecretChange.emit(value);\n\n // ISSUE: This is pretty hacky but unfortunately there is no way of knowing if the parent\n // control has been marked as touched, see: https://github.com/angular/angular/issues/10887\n // When that functionality has been added we should also look into forwarding reactive form\n // controls errors so that we don't need a separate input/output `invalidSecret`.\n if (value) {\n this.secret.markAsTouched();\n }\n this.secret.updateValueAndValidity({ emitEvent: false });\n }\n @Output() invalidSecretChange = new EventEmitter();\n\n hasMasterPassword = true;\n disableRequestOTP = false;\n sentCode = false;\n\n secret = new FormControl(\"\", [\n Validators.required,\n () => {\n if (this.invalidSecret) {\n return {\n invalidSecret: {\n message: this.hasMasterPassword\n ? this.i18nService.t(\"incorrectPassword\")\n : this.i18nService.t(\"incorrectCode\"),\n },\n };\n }\n },\n ]);\n\n private onChange: (value: Verification) => void;\n private destroy$ = new Subject();\n\n constructor(\n private cryptoService: CryptoService,\n private userVerificationService: UserVerificationService,\n private i18nService: I18nService,\n ) {}\n\n async ngOnInit() {\n this.hasMasterPassword = await this.userVerificationService.hasMasterPasswordAndMasterKeyHash();\n this.processChanges(this.secret.value);\n\n this.secret.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe((secret: string) => this.processChanges(secret));\n }\n\n requestOTP = async () => {\n if (!this.hasMasterPassword) {\n this.disableRequestOTP = true;\n try {\n await this.userVerificationService.requestOTP();\n this.sentCode = true;\n } finally {\n this.disableRequestOTP = false;\n }\n }\n };\n\n writeValue(obj: any): void {\n this.secret.setValue(obj);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n // Not implemented\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disableRequestOTP = isDisabled;\n if (isDisabled) {\n this.secret.disable();\n } else {\n this.secret.enable();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n protected processChanges(secret: string) {\n this.invalidSecret = false;\n\n if (this.onChange == null) {\n return;\n }\n\n this.onChange({\n type: this.hasMasterPassword ? VerificationType.MasterPassword : VerificationType.OTP,\n secret: Utils.isNullOrWhitespace(secret) ? null : secret,\n });\n }\n}\n","\n \n {{ \"masterPass\" | i18n }}\n \n \n {{ \"confirmIdentity\" | i18n }}\n \n\n\n
\n \n \n \n \n {{ \"codeSent\" | i18n }}\n \n
\n\n \n {{ \"verificationCode\" | i18n }}\n \n {{ \"confirmIdentity\" | i18n }}\n \n
\n","import { animate, style, transition, trigger } from \"@angular/animations\";\nimport { Component } from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { UserVerificationComponent as BaseComponent } from \"@bitwarden/angular/auth/components/user-verification.component\";\n\n/**\n * @deprecated Jan 24, 2024: Use new libs/auth UserVerificationDialogComponent or UserVerificationFormInputComponent instead.\n * Each client specific component should eventually be converted over to use one of these new components.\n */\n@Component({\n selector: \"app-user-verification\",\n templateUrl: \"user-verification.component.html\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: UserVerificationComponent,\n },\n ],\n animations: [\n trigger(\"sent\", [\n transition(\":enter\", [style({ opacity: 0 }), animate(\"100ms\", style({ opacity: 1 }))]),\n ]),\n ],\n})\nexport class UserVerificationComponent extends BaseComponent {}\n","import { DIALOG_DATA, DialogConfig, DialogRef } from \"@angular/cdk/dialog\";\nimport { Component, Inject, ViewChild } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { firstValueFrom } from \"rxjs\";\n\nimport { ApiService } from \"@bitwarden/common/abstractions/api.service\";\nimport { OrganizationApiServiceAbstraction } from \"@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction\";\nimport { PaymentMethodWarningsServiceAbstraction as PaymentMethodWarningService } from \"@bitwarden/common/billing/abstractions/payment-method-warnings-service.abstraction\";\nimport { PaymentMethodType } from \"@bitwarden/common/billing/enums\";\nimport { PaymentRequest } from \"@bitwarden/common/billing/models/request/payment.request\";\nimport { FeatureFlag } from \"@bitwarden/common/enums/feature-flag.enum\";\nimport { ConfigService } from \"@bitwarden/common/platform/abstractions/config/config.service\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\nimport { DialogService, ToastService } from \"@bitwarden/components\";\n\nimport { PaymentComponent } from \"./payment.component\";\nimport { TaxInfoComponent } from \"./tax-info.component\";\n\nexport interface AdjustPaymentDialogData {\n organizationId: string;\n currentType: PaymentMethodType;\n}\n\nexport enum AdjustPaymentDialogResult {\n Adjusted = \"adjusted\",\n Cancelled = \"cancelled\",\n}\n\n@Component({\n templateUrl: \"adjust-payment-dialog.component.html\",\n})\nexport class AdjustPaymentDialogComponent {\n @ViewChild(PaymentComponent, { static: true }) paymentComponent: PaymentComponent;\n @ViewChild(TaxInfoComponent, { static: true }) taxInfoComponent: TaxInfoComponent;\n\n organizationId: string;\n currentType: PaymentMethodType;\n paymentMethodType = PaymentMethodType;\n\n protected DialogResult = AdjustPaymentDialogResult;\n protected formGroup = new FormGroup({});\n\n constructor(\n private dialogRef: DialogRef,\n @Inject(DIALOG_DATA) protected data: AdjustPaymentDialogData,\n private apiService: ApiService,\n private i18nService: I18nService,\n private organizationApiService: OrganizationApiServiceAbstraction,\n private paymentMethodWarningService: PaymentMethodWarningService,\n private configService: ConfigService,\n private toastService: ToastService,\n ) {\n this.organizationId = data.organizationId;\n this.currentType = data.currentType;\n }\n\n submit = async () => {\n const request = new PaymentRequest();\n const response = this.paymentComponent.createPaymentToken().then((result) => {\n request.paymentToken = result[0];\n request.paymentMethodType = result[1];\n request.postalCode = this.taxInfoComponent.taxInfo.postalCode;\n request.country = this.taxInfoComponent.taxInfo.country;\n if (this.organizationId == null) {\n return this.apiService.postAccountPayment(request);\n } else {\n request.taxId = this.taxInfoComponent.taxInfo.taxId;\n request.state = this.taxInfoComponent.taxInfo.state;\n request.line1 = this.taxInfoComponent.taxInfo.line1;\n request.line2 = this.taxInfoComponent.taxInfo.line2;\n request.city = this.taxInfoComponent.taxInfo.city;\n request.state = this.taxInfoComponent.taxInfo.state;\n return this.organizationApiService.updatePayment(this.organizationId, request);\n }\n });\n await response;\n const showPaymentMethodWarningBanners = await firstValueFrom(\n this.configService.getFeatureFlag$(FeatureFlag.ShowPaymentMethodWarningBanners),\n );\n if (this.organizationId && showPaymentMethodWarningBanners) {\n await this.paymentMethodWarningService.removeSubscriptionRisk(this.organizationId);\n }\n this.toastService.showToast({\n variant: \"success\",\n title: null,\n message: this.i18nService.t(\"updatedPaymentMethod\"),\n });\n this.dialogRef.close(AdjustPaymentDialogResult.Adjusted);\n };\n\n changeCountry() {\n if (this.taxInfoComponent.taxInfo.country === \"US\") {\n this.paymentComponent.hideBank = !this.organizationId;\n } else {\n this.paymentComponent.hideBank = true;\n if (this.paymentComponent.method === PaymentMethodType.BankAccount) {\n this.paymentComponent.method = PaymentMethodType.Card;\n this.paymentComponent.changeMethod();\n }\n }\n }\n}\n\n/**\n * Strongly typed helper to open a AdjustPaymentDialog\n * @param dialogService Instance of the dialog service that will be used to open the dialog\n * @param config Configuration for the dialog\n */\nexport function openAdjustPaymentDialog(\n dialogService: DialogService,\n config: DialogConfig,\n) {\n return dialogService.open(AdjustPaymentDialogComponent, config);\n}\n","
\n \n \n \n \n \n \n \n \n {{ \"cancel\" | i18n }}\n \n \n \n\n","export class StorageRequest {\n storageGbAdjustment: number;\n}\n","import { DIALOG_DATA, DialogConfig, DialogRef } from \"@angular/cdk/dialog\";\nimport { Component, Inject, ViewChild } from \"@angular/core\";\nimport { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\nimport { ApiService } from \"@bitwarden/common/abstractions/api.service\";\nimport { OrganizationApiServiceAbstraction } from \"@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction\";\nimport { PaymentResponse } from \"@bitwarden/common/billing/models/response/payment.response\";\nimport { StorageRequest } from \"@bitwarden/common/models/request/storage.request\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\nimport { LogService } from \"@bitwarden/common/platform/abstractions/log.service\";\nimport { PlatformUtilsService } from \"@bitwarden/common/platform/abstractions/platform-utils.service\";\nimport { DialogService } from \"@bitwarden/components\";\n\nimport { PaymentComponent } from \"./payment.component\";\n\nexport interface AdjustStorageDialogData {\n storageGbPrice: number;\n add: boolean;\n organizationId?: string;\n interval?: string;\n}\n\nexport enum AdjustStorageDialogResult {\n Adjusted = \"adjusted\",\n Cancelled = \"cancelled\",\n}\n\n@Component({\n templateUrl: \"adjust-storage.component.html\",\n})\nexport class AdjustStorageComponent {\n storageGbPrice: number;\n add: boolean;\n organizationId: string;\n interval: string;\n\n @ViewChild(PaymentComponent, { static: true }) paymentComponent: PaymentComponent;\n\n protected DialogResult = AdjustStorageDialogResult;\n protected formGroup = new FormGroup({\n storageAdjustment: new FormControl(0, [\n Validators.required,\n Validators.min(0),\n Validators.max(99),\n ]),\n });\n\n constructor(\n private dialogRef: DialogRef,\n @Inject(DIALOG_DATA) protected data: AdjustStorageDialogData,\n private apiService: ApiService,\n private i18nService: I18nService,\n private platformUtilsService: PlatformUtilsService,\n private router: Router,\n private activatedRoute: ActivatedRoute,\n private logService: LogService,\n private organizationApiService: OrganizationApiServiceAbstraction,\n ) {\n this.storageGbPrice = data.storageGbPrice;\n this.add = data.add;\n this.organizationId = data.organizationId;\n this.interval = data.interval || \"year\";\n }\n\n submit = async () => {\n const request = new StorageRequest();\n request.storageGbAdjustment = this.formGroup.value.storageAdjustment;\n if (!this.add) {\n request.storageGbAdjustment *= -1;\n }\n\n let paymentFailed = false;\n const action = async () => {\n let response: Promise;\n if (this.organizationId == null) {\n response = this.apiService.postAccountStorage(request);\n } else {\n response = this.organizationApiService.updateStorage(this.organizationId, request);\n }\n const result = await response;\n if (result != null && result.paymentIntentClientSecret != null) {\n try {\n await this.paymentComponent.handleStripeCardPayment(\n result.paymentIntentClientSecret,\n null,\n );\n } catch {\n paymentFailed = true;\n }\n }\n };\n await action();\n this.dialogRef.close(AdjustStorageDialogResult.Adjusted);\n if (paymentFailed) {\n this.platformUtilsService.showToast(\n \"warning\",\n null,\n this.i18nService.t(\"couldNotChargeCardPayInvoice\"),\n { timeout: 10000 },\n );\n // FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.router.navigate([\"../billing\"], { relativeTo: this.activatedRoute });\n } else {\n this.platformUtilsService.showToast(\n \"success\",\n null,\n this.i18nService.t(\"adjustedStorage\", request.storageGbAdjustment.toString()),\n );\n }\n };\n\n get adjustedStorageTotal(): number {\n return this.storageGbPrice * this.formGroup.value.storageAdjustment;\n }\n}\n\n/**\n * Strongly typed helper to open an AdjustStorageDialog\n * @param dialogService Instance of the dialog service that will be used to open the dialog\n * @param config Configuration for the dialog\n */\nexport function openAdjustStorageDialog(\n dialogService: DialogService,\n config: DialogConfig,\n) {\n return dialogService.open(AdjustStorageComponent, config);\n}\n","
\n \n \n

{{ (add ? \"storageAddNote\" : \"storageRemoveNote\") | i18n }}

\n
\n \n {{ (add ? \"gbStorageAdd\" : \"gbStorageRemove\") | i18n }}\n \n \n {{ \"total\" | i18n }}:\n {{ formGroup.get(\"storageAdjustment\").value || 0 }} GB ×\n {{ storageGbPrice | currency: \"$\" }} = {{ adjustedStorageTotal | currency: \"$\" }} /{{\n interval | i18n\n }}\n \n \n
\n
\n \n \n \n {{ \"cancel\" | i18n }}\n \n \n
\n
\n\n","export class VerifyBankRequest {\n amount1: number;\n amount2: number;\n}\n","export class BitPayInvoiceRequest {\n userId: string;\n organizationId: string;\n providerId: string;\n credit: boolean;\n amount: number;\n returnUrl: string;\n name: string;\n email: string;\n}\n","import { DIALOG_DATA, DialogConfig, DialogRef } from \"@angular/cdk/dialog\";\nimport { Component, ElementRef, Inject, OnInit, ViewChild } from \"@angular/core\";\nimport { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { firstValueFrom, map } from \"rxjs\";\n\nimport { ApiService } from \"@bitwarden/common/abstractions/api.service\";\nimport { OrganizationService } from \"@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction\";\nimport { AccountService } from \"@bitwarden/common/auth/abstractions/account.service\";\nimport { PaymentMethodType } from \"@bitwarden/common/billing/enums\";\nimport { BitPayInvoiceRequest } from \"@bitwarden/common/billing/models/request/bit-pay-invoice.request\";\nimport { ConfigService } from \"@bitwarden/common/platform/abstractions/config/config.service\";\nimport { LogService } from \"@bitwarden/common/platform/abstractions/log.service\";\nimport { PlatformUtilsService } from \"@bitwarden/common/platform/abstractions/platform-utils.service\";\nimport { DialogService } from \"@bitwarden/components\";\n\nexport interface AddCreditDialogData {\n organizationId: string;\n}\n\nexport enum AddCreditDialogResult {\n Added = \"added\",\n Cancelled = \"cancelled\",\n}\n\nexport type PayPalConfig = {\n businessId?: string;\n buttonAction?: string;\n};\n\n@Component({\n templateUrl: \"add-credit-dialog.component.html\",\n})\nexport class AddCreditDialogComponent implements OnInit {\n @ViewChild(\"ppButtonForm\", { read: ElementRef, static: true }) ppButtonFormRef: ElementRef;\n\n paymentMethodType = PaymentMethodType;\n ppButtonFormAction: string;\n ppButtonBusinessId: string;\n ppButtonCustomField: string;\n ppLoading = false;\n subject: string;\n returnUrl: string;\n organizationId: string;\n\n private userId: string;\n private name: string;\n private email: string;\n private region: string;\n\n protected DialogResult = AddCreditDialogResult;\n protected formGroup = new FormGroup({\n method: new FormControl(PaymentMethodType.PayPal),\n creditAmount: new FormControl(null, [Validators.required]),\n });\n\n constructor(\n private dialogRef: DialogRef,\n @Inject(DIALOG_DATA) protected data: AddCreditDialogData,\n private accountService: AccountService,\n private apiService: ApiService,\n private platformUtilsService: PlatformUtilsService,\n private organizationService: OrganizationService,\n private logService: LogService,\n private configService: ConfigService,\n ) {\n this.organizationId = data.organizationId;\n const payPalConfig = process.env.PAYPAL_CONFIG as PayPalConfig;\n this.ppButtonFormAction = payPalConfig.buttonAction;\n this.ppButtonBusinessId = payPalConfig.businessId;\n }\n\n async ngOnInit() {\n if (this.organizationId != null) {\n if (this.creditAmount == null) {\n this.creditAmount = \"20.00\";\n }\n this.ppButtonCustomField = \"organization_id:\" + this.organizationId;\n const org = await this.organizationService.get(this.organizationId);\n if (org != null) {\n this.subject = org.name;\n this.name = org.name;\n }\n } else {\n if (this.creditAmount == null) {\n this.creditAmount = \"10.00\";\n }\n const [userId, email] = await firstValueFrom(\n this.accountService.activeAccount$.pipe(map((a) => [a?.id, a?.email])),\n );\n this.userId = userId;\n this.subject = email;\n this.email = this.subject;\n this.ppButtonCustomField = \"user_id:\" + this.userId;\n }\n this.region = await firstValueFrom(this.configService.cloudRegion$);\n this.ppButtonCustomField += \",account_credit:1\";\n this.ppButtonCustomField += `,region:${this.region}`;\n this.returnUrl = window.location.href;\n }\n\n get creditAmount() {\n return this.formGroup.value.creditAmount;\n }\n set creditAmount(value: string) {\n this.formGroup.get(\"creditAmount\").setValue(value);\n }\n\n get method() {\n return this.formGroup.value.method;\n }\n\n submit = async () => {\n if (this.creditAmount == null || this.creditAmount === \"\") {\n return;\n }\n\n if (this.method === PaymentMethodType.PayPal) {\n this.ppButtonFormRef.nativeElement.submit();\n this.ppLoading = true;\n return;\n }\n if (this.method === PaymentMethodType.BitPay) {\n const req = new BitPayInvoiceRequest();\n req.email = this.email;\n req.name = this.name;\n req.credit = true;\n req.amount = this.creditAmountNumber;\n req.organizationId = this.organizationId;\n req.userId = this.userId;\n req.returnUrl = this.returnUrl;\n const bitPayUrl: string = await this.apiService.postBitPayInvoice(req);\n this.platformUtilsService.launchUri(bitPayUrl);\n return;\n }\n this.dialogRef.close(AddCreditDialogResult.Added);\n };\n\n formatAmount() {\n try {\n if (this.creditAmount != null && this.creditAmount !== \"\") {\n const floatAmount = Math.abs(parseFloat(this.creditAmount));\n if (floatAmount > 0) {\n this.creditAmount = parseFloat((Math.round(floatAmount * 100) / 100).toString())\n .toFixed(2)\n .toString();\n return;\n }\n }\n } catch (e) {\n this.logService.error(e);\n }\n this.creditAmount = \"\";\n }\n\n get creditAmountNumber(): number {\n if (this.creditAmount != null && this.creditAmount !== \"\") {\n try {\n return parseFloat(this.creditAmount);\n } catch (e) {\n this.logService.error(e);\n }\n }\n return null;\n }\n}\n\n/**\n * Strongly typed helper to open a AddCreditDialog\n * @param dialogService Instance of the dialog service that will be used to open the dialog\n * @param config Configuration for the dialog\n */\nexport function openAddCreditDialog(\n dialogService: DialogService,\n config: DialogConfig,\n) {\n return dialogService.open(AddCreditDialogComponent, config);\n}\n","
\n \n \n

{{ \"creditDelayed\" | i18n }}

\n
\n \n \n PayPal\n \n \n Bitcoin\n \n \n
\n
\n \n {{ \"amount\" | i18n }}\n \n $USD\n \n
\n
\n \n \n \n {{ \"cancel\" | i18n }}\n \n \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n","\n \n \n {{ \"refresh\" | i18n }}\n \n\n\n\n
\n \n

{{ \"paymentMethod\" | i18n }}

\n
\n\n \n \n {{ \"loading\" | i18n }}\n \n \n

{{ (isCreditBalance ? \"accountCredit\" : \"accountBalance\") | i18n }}

\n

\n {{ creditOrBalance | currency: \"$\" }}\n

\n

{{ \"creditAppliedDesc\" | i18n }}

\n \n

{{ \"paymentMethod\" | i18n }}

\n

{{ \"noPaymentMethod\" | i18n }}

\n \n \n

{{ \"verifyBankAccountDesc\" | i18n }} {{ \"verifyBankAccountFailureWarning\" | i18n }}

\n \n \n {{ \"amountX\" | i18n: \"1\" }}\n \n $0.\n \n \n {{ \"amountX\" | i18n: \"2\" }}\n \n $0.\n \n \n \n {{ \"verifyBankAccount\" | i18n }}\n \n \n \n

\n \n {{ paymentSource.description }}\n

\n
\n \n

{{ \"paymentChargedWithUnpaidSubscription\" | i18n }}

\n \n

{{ \"taxInformation\" | i18n }}

\n

{{ \"taxInformationDesc\" | i18n }}

\n
\n \n {{ \"loading\" | i18n }}\n
\n \n \n \n \n {{ \"save\" | i18n }}\n \n \n
\n
\n
\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\nimport { FormBuilder, FormControl, Validators } from \"@angular/forms\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { lastValueFrom } from \"rxjs\";\n\nimport { ApiService } from \"@bitwarden/common/abstractions/api.service\";\nimport { OrganizationApiServiceAbstraction } from \"@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction\";\nimport { PaymentMethodType } from \"@bitwarden/common/billing/enums\";\nimport { BillingPaymentResponse } from \"@bitwarden/common/billing/models/response/billing-payment.response\";\nimport { OrganizationSubscriptionResponse } from \"@bitwarden/common/billing/models/response/organization-subscription.response\";\nimport { SubscriptionResponse } from \"@bitwarden/common/billing/models/response/subscription.response\";\nimport { VerifyBankRequest } from \"@bitwarden/common/models/request/verify-bank.request\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\nimport { LogService } from \"@bitwarden/common/platform/abstractions/log.service\";\nimport { PlatformUtilsService } from \"@bitwarden/common/platform/abstractions/platform-utils.service\";\nimport { DialogService } from \"@bitwarden/components\";\n\nimport { AddCreditDialogResult, openAddCreditDialog } from \"./add-credit-dialog.component\";\nimport {\n AdjustPaymentDialogResult,\n openAdjustPaymentDialog,\n} from \"./adjust-payment-dialog.component\";\nimport { TaxInfoComponent } from \"./tax-info.component\";\n\n@Component({\n templateUrl: \"payment-method.component.html\",\n})\n// eslint-disable-next-line rxjs-angular/prefer-takeuntil\nexport class PaymentMethodComponent implements OnInit {\n @ViewChild(TaxInfoComponent) taxInfo: TaxInfoComponent;\n\n loading = false;\n firstLoaded = false;\n billing: BillingPaymentResponse;\n org: OrganizationSubscriptionResponse;\n sub: SubscriptionResponse;\n paymentMethodType = PaymentMethodType;\n organizationId: string;\n isUnpaid = false;\n\n verifyBankPromise: Promise;\n taxFormPromise: Promise;\n\n verifyBankForm = this.formBuilder.group({\n amount1: new FormControl(null, [\n Validators.required,\n Validators.max(99),\n Validators.min(0),\n ]),\n amount2: new FormControl(null, [\n Validators.required,\n Validators.max(99),\n Validators.min(0),\n ]),\n });\n\n constructor(\n protected apiService: ApiService,\n protected organizationApiService: OrganizationApiServiceAbstraction,\n protected i18nService: I18nService,\n protected platformUtilsService: PlatformUtilsService,\n private router: Router,\n private logService: LogService,\n private route: ActivatedRoute,\n private formBuilder: FormBuilder,\n private dialogService: DialogService,\n ) {}\n\n async ngOnInit() {\n // eslint-disable-next-line rxjs-angular/prefer-takeuntil, rxjs/no-async-subscribe\n this.route.params.subscribe(async (params) => {\n if (params.organizationId) {\n this.organizationId = params.organizationId;\n } else if (this.platformUtilsService.isSelfHost()) {\n // FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.router.navigate([\"/settings/subscription\"]);\n return;\n }\n\n await this.load();\n this.firstLoaded = true;\n });\n }\n\n async load() {\n if (this.loading) {\n return;\n }\n this.loading = true;\n\n if (this.forOrganization) {\n const billingPromise = this.organizationApiService.getBilling(this.organizationId);\n const organizationSubscriptionPromise = this.organizationApiService.getSubscription(\n this.organizationId,\n );\n\n [this.billing, this.org] = await Promise.all([\n billingPromise,\n organizationSubscriptionPromise,\n ]);\n } else {\n const billingPromise = this.apiService.getUserBillingPayment();\n const subPromise = this.apiService.getUserSubscription();\n\n [this.billing, this.sub] = await Promise.all([billingPromise, subPromise]);\n }\n\n this.isUnpaid = this.subscription?.status === \"unpaid\" ?? false;\n\n this.loading = false;\n }\n\n addCredit = async () => {\n const dialogRef = openAddCreditDialog(this.dialogService, {\n data: {\n organizationId: this.organizationId,\n },\n });\n const result = await lastValueFrom(dialogRef.closed);\n if (result === AddCreditDialogResult.Added) {\n await this.load();\n }\n };\n\n changePayment = async () => {\n const dialogRef = openAdjustPaymentDialog(this.dialogService, {\n data: {\n organizationId: this.organizationId,\n currentType: this.paymentSource !== null ? this.paymentSource.type : null,\n },\n });\n const result = await lastValueFrom(dialogRef.closed);\n if (result === AdjustPaymentDialogResult.Adjusted) {\n await this.load();\n }\n };\n\n async verifyBank() {\n if (this.loading || !this.forOrganization) {\n return;\n }\n\n try {\n const request = new VerifyBankRequest();\n request.amount1 = this.verifyBankForm.value.amount1;\n request.amount2 = this.verifyBankForm.value.amount2;\n this.verifyBankPromise = this.organizationApiService.verifyBank(this.organizationId, request);\n await this.verifyBankPromise;\n this.platformUtilsService.showToast(\n \"success\",\n null,\n this.i18nService.t(\"verifiedBankAccount\"),\n );\n // FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.load();\n } catch (e) {\n this.logService.error(e);\n }\n }\n\n async submitTaxInfo() {\n this.taxFormPromise = this.taxInfo.submitTaxInfo();\n await this.taxFormPromise;\n this.platformUtilsService.showToast(\"success\", null, this.i18nService.t(\"taxInfoUpdated\"));\n }\n\n get isCreditBalance() {\n return this.billing == null || this.billing.balance <= 0;\n }\n\n get creditOrBalance() {\n return Math.abs(this.billing != null ? this.billing.balance : 0);\n }\n\n get paymentSource() {\n return this.billing != null ? this.billing.paymentSource : null;\n }\n\n get forOrganization() {\n return this.organizationId != null;\n }\n\n get headerClass() {\n return this.forOrganization ? [\"page-header\"] : [\"tabbed-header\"];\n }\n\n get paymentSourceClasses() {\n if (this.paymentSource == null) {\n return [];\n }\n switch (this.paymentSource.type) {\n case PaymentMethodType.Card:\n return [\"bwi-credit-card\"];\n case PaymentMethodType.BankAccount:\n return [\"bwi-bank\"];\n case PaymentMethodType.Check:\n return [\"bwi-money\"];\n case PaymentMethodType.PayPal:\n return [\"bwi-paypal text-primary\"];\n default:\n return [];\n }\n }\n\n get subscription() {\n return this.sub?.subscription ?? this.org?.subscription ?? null;\n }\n}\n","import { NgModule } from \"@angular/core\";\n\nimport { HeaderModule } from \"../../layouts/header/header.module\";\nimport { SharedModule } from \"../../shared\";\n\nimport { AddCreditDialogComponent } from \"./add-credit-dialog.component\";\nimport { AdjustPaymentDialogComponent } from \"./adjust-payment-dialog.component\";\nimport { AdjustStorageComponent } from \"./adjust-storage.component\";\nimport { BillingHistoryComponent } from \"./billing-history.component\";\nimport { OffboardingSurveyComponent } from \"./offboarding-survey.component\";\nimport { PaymentMethodComponent } from \"./payment-method.component\";\nimport { PaymentComponent } from \"./payment.component\";\nimport { SecretsManagerSubscribeComponent } from \"./sm-subscribe.component\";\nimport { TaxInfoComponent } from \"./tax-info.component\";\nimport { UpdateLicenseDialogComponent } from \"./update-license-dialog.component\";\nimport { UpdateLicenseComponent } from \"./update-license.component\";\n\n@NgModule({\n imports: [SharedModule, PaymentComponent, TaxInfoComponent, HeaderModule],\n declarations: [\n AddCreditDialogComponent,\n AdjustPaymentDialogComponent,\n AdjustStorageComponent,\n BillingHistoryComponent,\n PaymentMethodComponent,\n SecretsManagerSubscribeComponent,\n UpdateLicenseComponent,\n UpdateLicenseDialogComponent,\n OffboardingSurveyComponent,\n ],\n exports: [\n SharedModule,\n PaymentComponent,\n TaxInfoComponent,\n AdjustStorageComponent,\n BillingHistoryComponent,\n SecretsManagerSubscribeComponent,\n UpdateLicenseComponent,\n UpdateLicenseDialogComponent,\n OffboardingSurveyComponent,\n ],\n})\nexport class BillingSharedModule {}\n","import { NgModule } from \"@angular/core\";\n\nimport { BannerModule } from \"@bitwarden/components\";\n\nimport { SharedModule } from \"../../../shared\";\n\nimport { PaymentMethodWarningsComponent } from \"./payment-method-warnings.component\";\n\n@NgModule({\n imports: [BannerModule, SharedModule],\n declarations: [PaymentMethodWarningsComponent],\n exports: [PaymentMethodWarningsComponent],\n})\nexport class PaymentMethodWarningsModule {}\n","\n \n {{ \"maintainYourSubscription\" | i18n: warning.organizationName }}\n {{ \"addAPaymentMethod\" | i18n }}.\n \n\n","import { Component } from \"@angular/core\";\nimport { map, Observable } from \"rxjs\";\n\nimport { PaymentMethodWarningsServiceAbstraction as PaymentMethodWarningService } from \"@bitwarden/common/billing/abstractions/payment-method-warnings-service.abstraction\";\n\ntype Warning = {\n organizationId: string;\n organizationName: string;\n};\n\n@Component({\n selector: \"app-payment-method-warnings\",\n templateUrl: \"payment-method-warnings.component.html\",\n})\nexport class PaymentMethodWarningsComponent {\n constructor(private paymentMethodWarningService: PaymentMethodWarningService) {}\n\n protected warnings$: Observable =\n this.paymentMethodWarningService.paymentMethodWarnings$.pipe(\n map((warnings) =>\n Object.entries(warnings ?? [])\n .filter(([_, warning]) => warning.risksSubscriptionFailure && !warning.acknowledged)\n .map(([organizationId, { organizationName }]) => ({\n organizationId,\n organizationName,\n })),\n ),\n );\n\n protected async closeWarning(organizationId: string): Promise {\n await this.paymentMethodWarningService.acknowledge(organizationId);\n }\n}\n","
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n\n \n {{ \"verifyBankAccountInitialDesc\" | i18n }} {{ \"verifyBankAccountFailureWarning\" | i18n }}\n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n\n
\n
\n {{ \"paypalClickSubmit\" | i18n }}\n
\n
\n\n \n {{ \"makeSureEnoughCredit\" | i18n }}\n \n\n","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { Subject, takeUntil } from \"rxjs\";\n\nimport { AbstractThemingService } from \"@bitwarden/angular/platform/services/theming/theming.service.abstraction\";\nimport { ApiService } from \"@bitwarden/common/abstractions/api.service\";\nimport { PaymentMethodType } from \"@bitwarden/common/billing/enums\";\nimport { LogService } from \"@bitwarden/common/platform/abstractions/log.service\";\n\nimport { SharedModule } from \"../../shared\";\n\n@Component({\n selector: \"app-payment\",\n templateUrl: \"payment.component.html\",\n standalone: true,\n imports: [SharedModule],\n})\nexport class PaymentComponent implements OnInit, OnDestroy {\n @Input() showMethods = true;\n @Input() showOptions = true;\n @Input() method = PaymentMethodType.Card;\n @Input() hideBank = false;\n @Input() hidePaypal = false;\n @Input() hideCredit = false;\n @Input() trialFlow = false;\n\n private destroy$ = new Subject();\n\n bank: any = {\n routing_number: null,\n account_number: null,\n account_holder_name: null,\n account_holder_type: \"\",\n currency: \"USD\",\n country: \"US\",\n };\n\n paymentMethodType = PaymentMethodType;\n\n private btScript: HTMLScriptElement;\n private btInstance: any = null;\n private stripeScript: HTMLScriptElement;\n private stripe: any = null;\n private stripeElements: any = null;\n private stripeCardNumberElement: any = null;\n private stripeCardExpiryElement: any = null;\n private stripeCardCvcElement: any = null;\n private StripeElementStyle: any;\n private StripeElementClasses: any;\n\n constructor(\n private apiService: ApiService,\n private logService: LogService,\n private themingService: AbstractThemingService,\n ) {\n this.stripeScript = window.document.createElement(\"script\");\n this.stripeScript.src = \"https://js.stripe.com/v3/?advancedFraudSignals=false\";\n this.stripeScript.async = true;\n this.stripeScript.onload = () => {\n this.stripe = (window as any).Stripe(process.env.STRIPE_KEY);\n this.stripeElements = this.stripe.elements();\n this.setStripeElement();\n };\n this.btScript = window.document.createElement(\"script\");\n this.btScript.src = `scripts/dropin.js?cache=${process.env.CACHE_TAG}`;\n this.btScript.async = true;\n this.StripeElementStyle = {\n base: {\n color: null,\n fontFamily:\n '\"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif, ' +\n '\"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"',\n fontSize: \"14px\",\n fontSmoothing: \"antialiased\",\n \"::placeholder\": {\n color: null,\n },\n },\n invalid: {\n color: null,\n },\n };\n this.StripeElementClasses = {\n focus: \"is-focused\",\n empty: \"is-empty\",\n invalid: \"is-invalid\",\n };\n }\n\n async ngOnInit() {\n if (!this.showOptions) {\n this.hidePaypal = this.method !== PaymentMethodType.PayPal;\n this.hideBank = this.method !== PaymentMethodType.BankAccount;\n this.hideCredit = this.method !== PaymentMethodType.Credit;\n }\n this.subscribeToTheme();\n window.document.head.appendChild(this.stripeScript);\n if (!this.hidePaypal) {\n window.document.head.appendChild(this.btScript);\n }\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n window.document.head.removeChild(this.stripeScript);\n window.setTimeout(() => {\n Array.from(window.document.querySelectorAll(\"iframe\")).forEach((el) => {\n if (el.src != null && el.src.indexOf(\"stripe\") > -1) {\n try {\n window.document.body.removeChild(el);\n } catch (e) {\n this.logService.error(e);\n }\n }\n });\n }, 500);\n if (!this.hidePaypal) {\n window.document.head.removeChild(this.btScript);\n window.setTimeout(() => {\n Array.from(window.document.head.querySelectorAll(\"script\")).forEach((el) => {\n if (el.src != null && el.src.indexOf(\"paypal\") > -1) {\n try {\n window.document.head.removeChild(el);\n } catch (e) {\n this.logService.error(e);\n }\n }\n });\n const btStylesheet = window.document.head.querySelector(\"#braintree-dropin-stylesheet\");\n if (btStylesheet != null) {\n try {\n window.document.head.removeChild(btStylesheet);\n } catch (e) {\n this.logService.error(e);\n }\n }\n }, 500);\n }\n }\n\n changeMethod() {\n this.btInstance = null;\n\n if (this.method === PaymentMethodType.PayPal) {\n window.setTimeout(() => {\n (window as any).braintree.dropin.create(\n {\n authorization: process.env.BRAINTREE_KEY,\n container: \"#bt-dropin-container\",\n paymentOptionPriority: [\"paypal\"],\n paypal: {\n flow: \"vault\",\n buttonStyle: {\n label: \"pay\",\n size: \"medium\",\n shape: \"pill\",\n color: \"blue\",\n tagline: \"false\",\n },\n },\n },\n (createErr: any, instance: any) => {\n if (createErr != null) {\n // eslint-disable-next-line\n console.error(createErr);\n return;\n }\n this.btInstance = instance;\n },\n );\n }, 250);\n } else {\n this.setStripeElement();\n }\n }\n\n createPaymentToken(): Promise<[string, PaymentMethodType]> {\n return new Promise((resolve, reject) => {\n if (this.method === PaymentMethodType.Credit) {\n resolve([null, this.method]);\n } else if (this.method === PaymentMethodType.PayPal) {\n this.btInstance\n .requestPaymentMethod()\n .then((payload: any) => {\n resolve([payload.nonce, this.method]);\n })\n .catch((err: any) => {\n reject(err.message);\n });\n } else if (\n this.method === PaymentMethodType.Card ||\n this.method === PaymentMethodType.BankAccount\n ) {\n if (this.method === PaymentMethodType.Card) {\n // FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.apiService\n .postSetupPayment()\n .then((clientSecret) =>\n this.stripe.handleCardSetup(clientSecret, this.stripeCardNumberElement),\n )\n .then((result: any) => {\n if (result.error) {\n reject(result.error.message);\n } else if (result.setupIntent && result.setupIntent.status === \"succeeded\") {\n resolve([result.setupIntent.payment_method, this.method]);\n } else {\n reject();\n }\n });\n } else {\n this.stripe.createToken(\"bank_account\", this.bank).then((result: any) => {\n if (result.error) {\n reject(result.error.message);\n } else if (result.token && result.token.id != null) {\n resolve([result.token.id, this.method]);\n } else {\n reject();\n }\n });\n }\n }\n });\n }\n\n handleStripeCardPayment(clientSecret: string, successCallback: () => Promise): Promise {\n return new Promise((resolve, reject) => {\n if (this.showMethods && this.stripeCardNumberElement == null) {\n reject();\n return;\n }\n const handleCardPayment = () =>\n this.showMethods\n ? this.stripe.handleCardSetup(clientSecret, this.stripeCardNumberElement)\n : this.stripe.handleCardSetup(clientSecret);\n return handleCardPayment().then(async (result: any) => {\n if (result.error) {\n reject(result.error.message);\n } else if (result.paymentIntent && result.paymentIntent.status === \"succeeded\") {\n if (successCallback != null) {\n await successCallback();\n }\n resolve();\n } else {\n reject();\n }\n });\n });\n }\n\n private setStripeElement() {\n window.setTimeout(() => {\n if (this.showMethods && this.method === PaymentMethodType.Card) {\n if (this.stripeCardNumberElement == null) {\n this.stripeCardNumberElement = this.stripeElements.create(\"cardNumber\", {\n style: this.StripeElementStyle,\n classes: this.StripeElementClasses,\n placeholder: \"\",\n });\n }\n if (this.stripeCardExpiryElement == null) {\n this.stripeCardExpiryElement = this.stripeElements.create(\"cardExpiry\", {\n style: this.StripeElementStyle,\n classes: this.StripeElementClasses,\n });\n }\n if (this.stripeCardCvcElement == null) {\n this.stripeCardCvcElement = this.stripeElements.create(\"cardCvc\", {\n style: this.StripeElementStyle,\n classes: this.StripeElementClasses,\n placeholder: \"\",\n });\n }\n this.stripeCardNumberElement.mount(\"#stripe-card-number-element\");\n this.stripeCardExpiryElement.mount(\"#stripe-card-expiry-element\");\n this.stripeCardCvcElement.mount(\"#stripe-card-cvc-element\");\n }\n }, 50);\n }\n\n private subscribeToTheme() {\n this.themingService.theme$.pipe(takeUntil(this.destroy$)).subscribe(() => {\n const style = getComputedStyle(document.documentElement);\n this.StripeElementStyle.base.color = `rgb(${style.getPropertyValue(\"--color-text-main\")})`;\n this.StripeElementStyle.base[\"::placeholder\"].color = `rgb(${style.getPropertyValue(\n \"--color-text-muted\",\n )})`;\n this.StripeElementStyle.invalid.color = `rgb(${style.getPropertyValue(\"--color-text-main\")})`;\n this.StripeElementStyle.invalid.borderColor = `rgb(${style.getPropertyValue(\n \"--color-danger-600\",\n )})`;\n });\n }\n}\n","import { svgIcon } from \"@bitwarden/components\";\n\nexport const SecretsManagerLogo = svgIcon`\n \n`;\n","
\n

{{ \"moreFromBitwarden\" | i18n }}

\n
\n
\n \n
\n
\n \n

{{ \"secretsManagerForPlan\" | i18n: planName }}

\n
\n {{ \"secretsManagerForPlanDesc\" | i18n }}\n
    \n
  • {{ \"limitedUsers\" | i18n: maxUsers }}
  • \n
  • {{ \"unlimitedSecrets\" | i18n }}
  • \n
  • \n {{ \"projectsIncluded\" | i18n: maxProjects }}\n
  • \n \n
  • {{ \"unlimitedProjects\" | i18n }}
  • \n
    \n
  • {{ \"machineAccountsIncluded\" | i18n: serviceAccountsIncluded }}
  • \n
  • \n {{\n \"additionalMachineAccountCost\" | i18n: (monthlyCostPerServiceAccount | currency: \"$\")\n }}\n
  • \n
\n
\n\n
\n \n {{ \"costPerUser\" | i18n: (monthlyCostPerUser | currency: \"$\") }} /{{ \"month\" | i18n }}\n \n \n {{ \"freeForever\" | i18n }}\n \n
\n\n \n \n {{ \"subscribeToSecretsManager\" | i18n }}\n {{ \"addSecretsManagerUpgradeDesc\" | i18n }}\n \n\n \n
\n \n {{ \"userSeats\" | i18n }}\n \n {{ \"userSeatsHowManyDesc\" | i18n }}\n \n
\n
\n \n {{ \"additionalMachineAccounts\" | i18n }}\n \n \n {{ \"includedMachineAccounts\" | i18n: serviceAccountsIncluded }}\n {{\n \"addAdditionalMachineAccounts\" | i18n: (monthlyCostPerServiceAccount | currency: \"$\")\n }}\n \n \n
\n\n \n
\n
\n\n","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\nimport { Subject, startWith, takeUntil } from \"rxjs\";\n\nimport { ControlsOf } from \"@bitwarden/angular/types/controls-of\";\nimport { BillingCustomerDiscount } from \"@bitwarden/common/billing/models/response/organization-subscription.response\";\nimport { PlanResponse } from \"@bitwarden/common/billing/models/response/plan.response\";\nimport { ProductType } from \"@bitwarden/common/enums\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\n\nimport { SecretsManagerLogo } from \"../../layouts/secrets-manager-logo\";\n\nexport interface SecretsManagerSubscription {\n enabled: boolean;\n userSeats: number;\n additionalServiceAccounts: number;\n}\n\nexport const secretsManagerSubscribeFormFactory = (\n formBuilder: FormBuilder,\n): FormGroup> =>\n formBuilder.group({\n enabled: [false],\n userSeats: [1, [Validators.required, Validators.min(1), Validators.max(100000)]],\n additionalServiceAccounts: [\n 0,\n [Validators.required, Validators.min(0), Validators.max(100000)],\n ],\n });\n\n@Component({\n selector: \"sm-subscribe\",\n templateUrl: \"sm-subscribe.component.html\",\n})\nexport class SecretsManagerSubscribeComponent implements OnInit, OnDestroy {\n @Input() formGroup: FormGroup>;\n @Input() upgradeOrganization: boolean;\n @Input() showSubmitButton = false;\n @Input() selectedPlan: PlanResponse;\n @Input() customerDiscount: BillingCustomerDiscount;\n\n logo = SecretsManagerLogo;\n productTypes = ProductType;\n\n private destroy$ = new Subject();\n\n constructor(private i18nService: I18nService) {}\n\n ngOnInit() {\n this.formGroup.controls.enabled.valueChanges\n .pipe(startWith(this.formGroup.value.enabled), takeUntil(this.destroy$))\n .subscribe((enabled) => {\n if (enabled) {\n this.formGroup.controls.userSeats.enable();\n this.formGroup.controls.additionalServiceAccounts.enable();\n } else {\n this.formGroup.controls.userSeats.disable();\n this.formGroup.controls.additionalServiceAccounts.disable();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n discountPrice = (price: number) => {\n const discount =\n !!this.customerDiscount && this.customerDiscount.active\n ? price * (this.customerDiscount.percentOff / 100)\n : 0;\n\n return price - discount;\n };\n\n get product() {\n return this.selectedPlan.product;\n }\n\n get planName() {\n switch (this.product) {\n case ProductType.Free:\n return this.i18nService.t(\"free2PersonOrganization\");\n case ProductType.Teams:\n case ProductType.TeamsStarter:\n return this.i18nService.t(\"planNameTeams\");\n case ProductType.Enterprise:\n return this.i18nService.t(\"planNameEnterprise\");\n }\n }\n\n get serviceAccountsIncluded() {\n return this.selectedPlan.SecretsManager.baseServiceAccount;\n }\n\n get monthlyCostPerServiceAccount() {\n return this.selectedPlan.isAnnual\n ? this.discountPrice(this.selectedPlan.SecretsManager.additionalPricePerServiceAccount) / 12\n : this.discountPrice(this.selectedPlan.SecretsManager.additionalPricePerServiceAccount);\n }\n\n get maxUsers() {\n return this.selectedPlan.SecretsManager.maxSeats;\n }\n\n get maxProjects() {\n return this.selectedPlan.SecretsManager.maxProjects;\n }\n\n get monthlyCostPerUser() {\n return this.selectedPlan.isAnnual\n ? this.discountPrice(this.selectedPlan.SecretsManager.seatPrice) / 12\n : this.discountPrice(this.selectedPlan.SecretsManager.seatPrice);\n }\n}\n","
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { ActivatedRoute } from \"@angular/router\";\n\nimport { ApiService } from \"@bitwarden/common/abstractions/api.service\";\nimport { OrganizationApiServiceAbstraction } from \"@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction\";\nimport { ExpandedTaxInfoUpdateRequest } from \"@bitwarden/common/billing/models/request/expanded-tax-info-update.request\";\nimport { TaxInfoUpdateRequest } from \"@bitwarden/common/billing/models/request/tax-info-update.request\";\nimport { TaxInfoResponse } from \"@bitwarden/common/billing/models/response/tax-info.response\";\nimport { TaxRateResponse } from \"@bitwarden/common/billing/models/response/tax-rate.response\";\nimport { LogService } from \"@bitwarden/common/platform/abstractions/log.service\";\n\nimport { SharedModule } from \"../../shared\";\n\ntype TaxInfoView = Omit & {\n includeTaxId: boolean;\n [key: string]: unknown;\n};\n\n@Component({\n selector: \"app-tax-info\",\n templateUrl: \"tax-info.component.html\",\n standalone: true,\n imports: [SharedModule],\n})\n// eslint-disable-next-line rxjs-angular/prefer-takeuntil\nexport class TaxInfoComponent {\n @Input() trialFlow = false;\n @Output() onCountryChanged = new EventEmitter();\n\n loading = true;\n organizationId: string;\n providerId: string;\n taxInfo: TaxInfoView = {\n taxId: null,\n line1: null,\n line2: null,\n city: null,\n state: null,\n postalCode: null,\n country: \"US\",\n includeTaxId: false,\n };\n\n taxRates: TaxRateResponse[];\n\n private pristine: TaxInfoView = {\n taxId: null,\n line1: null,\n line2: null,\n city: null,\n state: null,\n postalCode: null,\n country: \"US\",\n includeTaxId: false,\n };\n\n constructor(\n private apiService: ApiService,\n private route: ActivatedRoute,\n private logService: LogService,\n private organizationApiService: OrganizationApiServiceAbstraction,\n ) {}\n\n async ngOnInit() {\n // Provider setup\n // eslint-disable-next-line rxjs-angular/prefer-takeuntil, rxjs/no-async-subscribe\n this.route.queryParams.subscribe((params) => {\n this.providerId = params.providerId;\n });\n\n // eslint-disable-next-line rxjs-angular/prefer-takeuntil, rxjs/no-async-subscribe\n this.route.parent.parent.params.subscribe(async (params) => {\n this.organizationId = params.organizationId;\n if (this.organizationId) {\n try {\n const taxInfo = await this.organizationApiService.getTaxInfo(this.organizationId);\n if (taxInfo) {\n this.taxInfo.taxId = taxInfo.taxId;\n this.taxInfo.state = taxInfo.state;\n this.taxInfo.line1 = taxInfo.line1;\n this.taxInfo.line2 = taxInfo.line2;\n this.taxInfo.city = taxInfo.city;\n this.taxInfo.state = taxInfo.state;\n this.taxInfo.postalCode = taxInfo.postalCode;\n this.taxInfo.country = taxInfo.country || \"US\";\n this.taxInfo.includeTaxId =\n this.countrySupportsTax(this.taxInfo.country) &&\n (!!taxInfo.taxId ||\n !!taxInfo.line1 ||\n !!taxInfo.line2 ||\n !!taxInfo.city ||\n !!taxInfo.state);\n }\n } catch (e) {\n this.logService.error(e);\n }\n } else {\n try {\n const taxInfo = await this.apiService.getTaxInfo();\n if (taxInfo) {\n this.taxInfo.postalCode = taxInfo.postalCode;\n this.taxInfo.country = taxInfo.country || \"US\";\n }\n } catch (e) {\n this.logService.error(e);\n }\n }\n this.pristine = Object.assign({}, this.taxInfo);\n // If not the default (US) then trigger onCountryChanged\n if (this.taxInfo.country !== \"US\") {\n this.onCountryChanged.emit();\n }\n });\n\n try {\n const taxRates = await this.apiService.getTaxRates();\n if (taxRates) {\n this.taxRates = taxRates.data;\n }\n } catch (e) {\n this.logService.error(e);\n } finally {\n this.loading = false;\n }\n }\n\n get taxRate() {\n if (this.taxRates != null) {\n const localTaxRate = this.taxRates.find(\n (x) => x.country === this.taxInfo.country && x.postalCode === this.taxInfo.postalCode,\n );\n return localTaxRate?.rate ?? null;\n }\n }\n\n get showTaxIdCheckbox() {\n return (\n (this.organizationId || this.providerId) &&\n this.taxInfo.country !== \"US\" &&\n this.countrySupportsTax(this.taxInfo.country)\n );\n }\n\n get showTaxIdFields() {\n return (\n (this.organizationId || this.providerId) &&\n this.taxInfo.includeTaxId &&\n this.countrySupportsTax(this.taxInfo.country)\n );\n }\n\n getTaxInfoRequest(): TaxInfoUpdateRequest {\n if (this.organizationId || this.providerId) {\n const request = new ExpandedTaxInfoUpdateRequest();\n request.country = this.taxInfo.country;\n request.postalCode = this.taxInfo.postalCode;\n\n if (this.taxInfo.includeTaxId) {\n request.taxId = this.taxInfo.taxId;\n request.line1 = this.taxInfo.line1;\n request.line2 = this.taxInfo.line2;\n request.city = this.taxInfo.city;\n request.state = this.taxInfo.state;\n } else {\n request.taxId = null;\n request.line1 = null;\n request.line2 = null;\n request.city = null;\n request.state = null;\n }\n return request;\n } else {\n const request = new TaxInfoUpdateRequest();\n request.postalCode = this.taxInfo.postalCode;\n request.country = this.taxInfo.country;\n return request;\n }\n }\n\n submitTaxInfo(): Promise {\n if (!this.hasChanged()) {\n return new Promise((resolve) => {\n resolve();\n });\n }\n const request = this.getTaxInfoRequest();\n return this.organizationId\n ? this.organizationApiService.updateTaxInfo(\n this.organizationId,\n request as ExpandedTaxInfoUpdateRequest,\n )\n : this.apiService.putTaxInfo(request);\n }\n\n changeCountry() {\n if (!this.countrySupportsTax(this.taxInfo.country)) {\n this.taxInfo.includeTaxId = false;\n this.taxInfo.taxId = null;\n this.taxInfo.line1 = null;\n this.taxInfo.line2 = null;\n this.taxInfo.city = null;\n this.taxInfo.state = null;\n }\n this.onCountryChanged.emit();\n }\n\n countrySupportsTax(countryCode: string) {\n return this.taxSupportedCountryCodes.includes(countryCode);\n }\n\n private hasChanged(): boolean {\n for (const key in this.taxInfo) {\n // eslint-disable-next-line\n if (this.pristine.hasOwnProperty(key) && this.pristine[key] !== this.taxInfo[key]) {\n return true;\n }\n }\n return false;\n }\n\n private taxSupportedCountryCodes: string[] = [\n \"CN\",\n \"FR\",\n \"DE\",\n \"CA\",\n \"GB\",\n \"AU\",\n \"IN\",\n \"AD\",\n \"AR\",\n \"AT\",\n \"BE\",\n \"BO\",\n \"BR\",\n \"BG\",\n \"CL\",\n \"CO\",\n \"CR\",\n \"HR\",\n \"CY\",\n \"CZ\",\n \"DK\",\n \"DO\",\n \"EC\",\n \"EG\",\n \"SV\",\n \"EE\",\n \"FI\",\n \"GE\",\n \"GR\",\n \"HK\",\n \"HU\",\n \"IS\",\n \"ID\",\n \"IQ\",\n \"IE\",\n \"IL\",\n \"IT\",\n \"JP\",\n \"KE\",\n \"KR\",\n \"LV\",\n \"LI\",\n \"LT\",\n \"LU\",\n \"MY\",\n \"MT\",\n \"MX\",\n \"NL\",\n \"NZ\",\n \"NO\",\n \"PE\",\n \"PH\",\n \"PL\",\n \"PT\",\n \"RO\",\n \"RU\",\n \"SA\",\n \"RS\",\n \"SG\",\n \"SK\",\n \"SI\",\n \"ZA\",\n \"ES\",\n \"SE\",\n \"CH\",\n \"TW\",\n \"TH\",\n \"TR\",\n \"UA\",\n \"AE\",\n \"UY\",\n \"VE\",\n \"VN\",\n ];\n}\n","import { Directive, OnInit } from \"@angular/core\";\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\nimport { Subject, firstValueFrom } from \"rxjs\";\nimport { first, switchMap, takeUntil } from \"rxjs/operators\";\n\nimport { AuthService } from \"@bitwarden/common/auth/abstractions/auth.service\";\nimport { AuthenticationStatus } from \"@bitwarden/common/auth/enums/authentication-status\";\nimport { I18nService } from \"@bitwarden/common/platform/abstractions/i18n.service\";\nimport { PlatformUtilsService } from \"@bitwarden/common/platform/abstractions/platform-utils.service\";\n\n@Directive()\nexport abstract class BaseAcceptComponent implements OnInit {\n loading = true;\n authed = false;\n email: string;\n actionPromise: Promise;\n\n protected requiredParameters: string[] = [];\n protected failedShortMessage = \"inviteAcceptFailedShort\";\n protected failedMessage = \"inviteAcceptFailed\";\n\n private destroy$ = new Subject();\n\n constructor(\n protected router: Router,\n protected platformUtilService: PlatformUtilsService,\n protected i18nService: I18nService,\n protected route: ActivatedRoute,\n protected authService: AuthService,\n ) {}\n\n abstract authedHandler(qParams: Params): Promise;\n abstract unauthedHandler(qParams: Params): Promise;\n\n ngOnInit() {\n this.route.queryParams\n .pipe(\n first(),\n switchMap(async (qParams) => {\n let error = this.requiredParameters.some(\n (e) => qParams?.[e] == null || qParams[e] === \"\",\n );\n let errorMessage: string = null;\n if (!error) {\n this.email = qParams.email;\n\n const status = await firstValueFrom(this.authService.activeAccountStatus$);\n if (status !== AuthenticationStatus.LoggedOut) {\n try {\n await this.authedHandler(qParams);\n } catch (e) {\n error = true;\n errorMessage = e.message;\n }\n } else {\n await this.unauthedHandler(qParams);\n }\n }\n\n if (error) {\n const message =\n errorMessage != null\n ? this.i18nService.t(this.failedShortMessage, errorMessage)\n : this.i18nService.t(this.failedMessage);\n this.platformUtilService.showToast(\"error\", null, message, { timeout: 10000 });\n // FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.router.navigate([\"/\"]);\n }\n\n this.loading = false;\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n}\n","import { Component, Input, OnDestroy } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\n\nimport { AvatarService } from \"@bitwarden/common/auth/abstractions/avatar.service\";\n\nimport { SharedModule } from \"../shared\";\n\ntype SizeTypes = \"xlarge\" | \"large\" | \"default\" | \"small\" | \"xsmall\";\n@Component({\n selector: \"dynamic-avatar\",\n standalone: true,\n imports: [SharedModule],\n template: `\n \n \n `,\n})\nexport class DynamicAvatarComponent implements OnDestroy {\n @Input() border = false;\n @Input() id: string;\n @Input() text: string;\n @Input() title: string;\n @Input() size: SizeTypes = \"default\";\n private destroy$ = new Subject();\n\n color$ = this.avatarService.avatarColor$;\n\n constructor(private avatarService: AvatarService) {\n if (this.text) {\n this.text = this.text.toUpperCase();\n }\n }\n\n async ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { NgModule } from \"@angular/core\";\n\nimport { SharedModule } from \"../../../app/shared\";\n\nimport { EnvironmentSelectorComponent } from \"./environment-selector.component\";\n\n@NgModule({\n imports: [SharedModule],\n declarations: [EnvironmentSelectorComponent],\n exports: [EnvironmentSelectorComponent],\n})\nexport class EnvironmentSelectorModule {}\n","import { Observable } from \"rxjs\";\n\nimport { OrganizationDomainResponse } from \"./responses/organization-domain.response\";\n\nexport abstract class OrgDomainServiceAbstraction {\n orgDomains$: Observable;\n\n get: (orgDomainId: string) => OrganizationDomainResponse;\n\n copyDnsTxt: (dnsTxt: string) => void;\n}\n\n// Note: this separate class is designed to hold methods that are not\n// meant to be used in components (e.g., data write methods)\nexport abstract class OrgDomainInternalServiceAbstraction extends OrgDomainServiceAbstraction {\n upsert: (orgDomains: OrganizationDomainResponse[]) => void;\n replace: (orgDomains: OrganizationDomainResponse[]) => void;\n clearCache: () => void;\n delete: (orgDomainIds: string[]) => void;\n}\n","export enum SsoType {\n None = 0,\n OpenIdConnect = 1,\n Saml2 = 2,\n}\n\nexport enum MemberDecryptionType {\n MasterPassword = 0,\n KeyConnector = 1,\n TrustedDeviceEncryption = 2,\n}\n\nexport enum OpenIdConnectRedirectBehavior {\n RedirectGet = 0,\n FormPost = 1,\n}\n\nexport enum Saml2BindingType {\n HttpRedirect = 1,\n HttpPost = 2,\n}\n\nexport enum Saml2NameIdFormat {\n NotConfigured = 0,\n Unspecified = 1,\n EmailAddress = 2,\n X509SubjectName = 3,\n WindowsDomainQualifiedName = 4,\n KerberosPrincipalName = 5,\n EntityIdentifier = 6,\n Persistent = 7,\n Transient = 8,\n}\n\nexport enum Saml2SigningBehavior {\n IfIdpWantAuthnRequestsSigned = 0,\n Always = 1,\n Never = 3,\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\n\nexport class ApiKeyResponse extends BaseResponse {\n apiKey: string;\n revisionDate: Date;\n\n constructor(response: any) {\n super(response);\n this.apiKey = this.getResponseProperty(\"ApiKey\");\n this.revisionDate = new Date(this.getResponseProperty(\"RevisionDate\"));\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\nimport {\n MemberDecryptionType,\n OpenIdConnectRedirectBehavior,\n Saml2BindingType,\n Saml2NameIdFormat,\n Saml2SigningBehavior,\n SsoType,\n} from \"../../enums/sso\";\nimport { SsoConfigView } from \"../view/sso-config.view\";\n\nexport class SsoConfigApi extends BaseResponse {\n static fromView(view: SsoConfigView, api = new SsoConfigApi()) {\n api.configType = view.configType;\n api.memberDecryptionType = view.memberDecryptionType;\n\n api.keyConnectorUrl = view.keyConnectorUrl;\n\n if (api.configType === SsoType.OpenIdConnect) {\n api.authority = view.openId.authority;\n api.clientId = view.openId.clientId;\n api.clientSecret = view.openId.clientSecret;\n api.metadataAddress = view.openId.metadataAddress;\n api.redirectBehavior = view.openId.redirectBehavior;\n api.getClaimsFromUserInfoEndpoint = view.openId.getClaimsFromUserInfoEndpoint;\n api.additionalScopes = view.openId.additionalScopes;\n api.additionalUserIdClaimTypes = view.openId.additionalUserIdClaimTypes;\n api.additionalEmailClaimTypes = view.openId.additionalEmailClaimTypes;\n api.additionalNameClaimTypes = view.openId.additionalNameClaimTypes;\n api.acrValues = view.openId.acrValues;\n api.expectedReturnAcrValue = view.openId.expectedReturnAcrValue;\n } else if (api.configType === SsoType.Saml2) {\n api.spUniqueEntityId = view.saml.spUniqueEntityId;\n api.spNameIdFormat = view.saml.spNameIdFormat;\n api.spOutboundSigningAlgorithm = view.saml.spOutboundSigningAlgorithm;\n api.spSigningBehavior = view.saml.spSigningBehavior;\n api.spMinIncomingSigningAlgorithm = view.saml.spMinIncomingSigningAlgorithm;\n api.spWantAssertionsSigned = view.saml.spWantAssertionsSigned;\n api.spValidateCertificates = view.saml.spValidateCertificates;\n\n api.idpEntityId = view.saml.idpEntityId;\n api.idpBindingType = view.saml.idpBindingType;\n api.idpSingleSignOnServiceUrl = view.saml.idpSingleSignOnServiceUrl;\n api.idpSingleLogoutServiceUrl = view.saml.idpSingleLogoutServiceUrl;\n api.idpX509PublicCert = view.saml.idpX509PublicCert;\n api.idpOutboundSigningAlgorithm = view.saml.idpOutboundSigningAlgorithm;\n api.idpAllowUnsolicitedAuthnResponse = view.saml.idpAllowUnsolicitedAuthnResponse;\n api.idpWantAuthnRequestsSigned = view.saml.idpWantAuthnRequestsSigned;\n\n // Value is inverted in the api model (disable instead of allow)\n api.idpDisableOutboundLogoutRequests = !view.saml.idpAllowOutboundLogoutRequests;\n }\n\n return api;\n }\n configType: SsoType;\n memberDecryptionType: MemberDecryptionType;\n\n keyConnectorUrl: string;\n\n // OpenId\n authority: string;\n clientId: string;\n clientSecret: string;\n metadataAddress: string;\n redirectBehavior: OpenIdConnectRedirectBehavior;\n getClaimsFromUserInfoEndpoint: boolean;\n additionalScopes: string;\n additionalUserIdClaimTypes: string;\n additionalEmailClaimTypes: string;\n additionalNameClaimTypes: string;\n acrValues: string;\n expectedReturnAcrValue: string;\n\n // SAML\n spUniqueEntityId: boolean;\n spNameIdFormat: Saml2NameIdFormat;\n spOutboundSigningAlgorithm: string;\n spSigningBehavior: Saml2SigningBehavior;\n spMinIncomingSigningAlgorithm: string;\n spWantAssertionsSigned: boolean;\n spValidateCertificates: boolean;\n\n idpEntityId: string;\n idpBindingType: Saml2BindingType;\n idpSingleSignOnServiceUrl: string;\n idpSingleLogoutServiceUrl: string;\n idpX509PublicCert: string;\n idpOutboundSigningAlgorithm: string;\n idpAllowUnsolicitedAuthnResponse: boolean;\n idpDisableOutboundLogoutRequests: boolean;\n idpWantAuthnRequestsSigned: boolean;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n\n this.configType = this.getResponseProperty(\"ConfigType\");\n this.memberDecryptionType = this.getResponseProperty(\"MemberDecryptionType\");\n\n this.keyConnectorUrl = this.getResponseProperty(\"KeyConnectorUrl\");\n\n this.authority = this.getResponseProperty(\"Authority\");\n this.clientId = this.getResponseProperty(\"ClientId\");\n this.clientSecret = this.getResponseProperty(\"ClientSecret\");\n this.metadataAddress = this.getResponseProperty(\"MetadataAddress\");\n this.redirectBehavior = this.getResponseProperty(\"RedirectBehavior\");\n this.getClaimsFromUserInfoEndpoint = this.getResponseProperty(\"GetClaimsFromUserInfoEndpoint\");\n this.additionalScopes = this.getResponseProperty(\"AdditionalScopes\");\n this.additionalUserIdClaimTypes = this.getResponseProperty(\"AdditionalUserIdClaimTypes\");\n this.additionalEmailClaimTypes = this.getResponseProperty(\"AdditionalEmailClaimTypes\");\n this.additionalNameClaimTypes = this.getResponseProperty(\"AdditionalNameClaimTypes\");\n this.acrValues = this.getResponseProperty(\"AcrValues\");\n this.expectedReturnAcrValue = this.getResponseProperty(\"ExpectedReturnAcrValue\");\n\n this.spUniqueEntityId = this.getResponseProperty(\"SpUniqueEntityId\");\n this.spNameIdFormat = this.getResponseProperty(\"SpNameIdFormat\");\n this.spOutboundSigningAlgorithm = this.getResponseProperty(\"SpOutboundSigningAlgorithm\");\n this.spSigningBehavior = this.getResponseProperty(\"SpSigningBehavior\");\n this.spMinIncomingSigningAlgorithm = this.getResponseProperty(\"SpMinIncomingSigningAlgorithm\");\n this.spWantAssertionsSigned = this.getResponseProperty(\"SpWantAssertionsSigned\");\n this.spValidateCertificates = this.getResponseProperty(\"SpValidateCertificates\");\n\n this.idpEntityId = this.getResponseProperty(\"IdpEntityId\");\n this.idpBindingType = this.getResponseProperty(\"IdpBindingType\");\n this.idpSingleSignOnServiceUrl = this.getResponseProperty(\"IdpSingleSignOnServiceUrl\");\n this.idpSingleLogoutServiceUrl = this.getResponseProperty(\"IdpSingleLogoutServiceUrl\");\n this.idpX509PublicCert = this.getResponseProperty(\"IdpX509PublicCert\");\n this.idpOutboundSigningAlgorithm = this.getResponseProperty(\"IdpOutboundSigningAlgorithm\");\n this.idpAllowUnsolicitedAuthnResponse = this.getResponseProperty(\n \"IdpAllowUnsolicitedAuthnResponse\",\n );\n this.idpDisableOutboundLogoutRequests = this.getResponseProperty(\n \"IdpDisableOutboundLogoutRequests\",\n );\n this.idpWantAuthnRequestsSigned = this.getResponseProperty(\"IdpWantAuthnRequestsSigned\");\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\nimport { SsoConfigApi } from \"../api/sso-config.api\";\n\nexport class OrganizationSsoResponse extends BaseResponse {\n enabled: boolean;\n identifier: string;\n data: SsoConfigApi;\n urls: SsoUrls;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty(\"Enabled\");\n this.identifier = this.getResponseProperty(\"Identifier\");\n this.data =\n this.getResponseProperty(\"Data\") != null\n ? new SsoConfigApi(this.getResponseProperty(\"Data\"))\n : null;\n this.urls = new SsoUrls(this.getResponseProperty(\"Urls\"));\n }\n}\n\nclass SsoUrls extends BaseResponse {\n callbackPath: string;\n signedOutCallbackPath: string;\n spEntityId: string;\n spEntityIdStatic: string;\n spMetadataUrl: string;\n spAcsUrl: string;\n\n constructor(response: any) {\n super(response);\n this.callbackPath = this.getResponseProperty(\"CallbackPath\");\n this.signedOutCallbackPath = this.getResponseProperty(\"SignedOutCallbackPath\");\n this.spEntityId = this.getResponseProperty(\"SpEntityId\");\n this.spEntityIdStatic = this.getResponseProperty(\"SpEntityIdStatic\");\n this.spMetadataUrl = this.getResponseProperty(\"SpMetadataUrl\");\n this.spAcsUrl = this.getResponseProperty(\"SpAcsUrl\");\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\nimport { PaymentMethodType, TransactionType } from \"../../enums\";\n\nexport class BillingResponse extends BaseResponse {\n balance: number;\n paymentSource: BillingSourceResponse;\n invoices: BillingInvoiceResponse[] = [];\n transactions: BillingTransactionResponse[] = [];\n\n constructor(response: any) {\n super(response);\n this.balance = this.getResponseProperty(\"Balance\");\n const paymentSource = this.getResponseProperty(\"PaymentSource\");\n const transactions = this.getResponseProperty(\"Transactions\");\n const invoices = this.getResponseProperty(\"Invoices\");\n this.paymentSource = paymentSource == null ? null : new BillingSourceResponse(paymentSource);\n if (transactions != null) {\n this.transactions = transactions.map((t: any) => new BillingTransactionResponse(t));\n }\n if (invoices != null) {\n this.invoices = invoices.map((i: any) => new BillingInvoiceResponse(i));\n }\n }\n\n get hasNoHistory() {\n return this.invoices.length == 0 && this.transactions.length == 0;\n }\n}\n\nexport class BillingSourceResponse extends BaseResponse {\n type: PaymentMethodType;\n cardBrand: string;\n description: string;\n needsVerification: boolean;\n\n constructor(response: any) {\n super(response);\n this.type = this.getResponseProperty(\"Type\");\n this.cardBrand = this.getResponseProperty(\"CardBrand\");\n this.description = this.getResponseProperty(\"Description\");\n this.needsVerification = this.getResponseProperty(\"NeedsVerification\");\n }\n}\n\nexport class BillingInvoiceResponse extends BaseResponse {\n url: string;\n pdfUrl: string;\n number: string;\n paid: boolean;\n date: string;\n amount: number;\n\n constructor(response: any) {\n super(response);\n this.url = this.getResponseProperty(\"Url\");\n this.pdfUrl = this.getResponseProperty(\"PdfUrl\");\n this.number = this.getResponseProperty(\"Number\");\n this.paid = this.getResponseProperty(\"Paid\");\n this.date = this.getResponseProperty(\"Date\");\n this.amount = this.getResponseProperty(\"Amount\");\n }\n}\n\nexport class BillingTransactionResponse extends BaseResponse {\n createdDate: string;\n amount: number;\n refunded: boolean;\n partiallyRefunded: boolean;\n refundedAmount: number;\n type: TransactionType;\n paymentMethodType: PaymentMethodType;\n details: string;\n\n constructor(response: any) {\n super(response);\n this.createdDate = this.getResponseProperty(\"CreatedDate\");\n this.amount = this.getResponseProperty(\"Amount\");\n this.refunded = this.getResponseProperty(\"Refunded\");\n this.partiallyRefunded = this.getResponseProperty(\"PartiallyRefunded\");\n this.refundedAmount = this.getResponseProperty(\"RefundedAmount\");\n this.type = this.getResponseProperty(\"Type\");\n this.paymentMethodType = this.getResponseProperty(\"PaymentMethodType\");\n this.details = this.getResponseProperty(\"Details\");\n }\n}\n","import { ProductType } from \"../../../enums\";\nimport { BaseResponse } from \"../../../models/response/base.response\";\nimport { PlanType } from \"../../enums\";\n\nexport class PlanResponse extends BaseResponse {\n type: PlanType;\n product: ProductType;\n name: string;\n isAnnual: boolean;\n nameLocalizationKey: string;\n descriptionLocalizationKey: string;\n canBeUsedByBusiness: boolean;\n trialPeriodDays: number;\n hasSelfHost: boolean;\n hasPolicies: boolean;\n hasGroups: boolean;\n hasDirectory: boolean;\n hasEvents: boolean;\n hasTotp: boolean;\n has2fa: boolean;\n hasApi: boolean;\n hasSso: boolean;\n hasResetPassword: boolean;\n usersGetPremium: boolean;\n upgradeSortOrder: number;\n displaySortOrder: number;\n legacyYear: number;\n disabled: boolean;\n PasswordManager: PasswordManagerPlanFeaturesResponse;\n SecretsManager: SecretsManagerPlanFeaturesResponse;\n\n constructor(response: any) {\n super(response);\n this.type = this.getResponseProperty(\"Type\");\n this.product = this.getResponseProperty(\"Product\");\n this.name = this.getResponseProperty(\"Name\");\n this.isAnnual = this.getResponseProperty(\"IsAnnual\");\n this.nameLocalizationKey = this.getResponseProperty(\"NameLocalizationKey\");\n this.descriptionLocalizationKey = this.getResponseProperty(\"DescriptionLocalizationKey\");\n this.canBeUsedByBusiness = this.getResponseProperty(\"CanBeUsedByBusiness\");\n this.trialPeriodDays = this.getResponseProperty(\"TrialPeriodDays\");\n this.hasSelfHost = this.getResponseProperty(\"HasSelfHost\");\n this.hasPolicies = this.getResponseProperty(\"HasPolicies\");\n this.hasGroups = this.getResponseProperty(\"HasGroups\");\n this.hasDirectory = this.getResponseProperty(\"HasDirectory\");\n this.hasEvents = this.getResponseProperty(\"HasEvents\");\n this.hasTotp = this.getResponseProperty(\"HasTotp\");\n this.has2fa = this.getResponseProperty(\"Has2fa\");\n this.hasApi = this.getResponseProperty(\"HasApi\");\n this.hasSso = this.getResponseProperty(\"HasSso\");\n this.hasResetPassword = this.getResponseProperty(\"HasResetPassword\");\n this.usersGetPremium = this.getResponseProperty(\"UsersGetPremium\");\n this.upgradeSortOrder = this.getResponseProperty(\"UpgradeSortOrder\");\n this.displaySortOrder = this.getResponseProperty(\"DisplaySortOrder\");\n this.legacyYear = this.getResponseProperty(\"LegacyYear\");\n this.disabled = this.getResponseProperty(\"Disabled\");\n const passwordManager = this.getResponseProperty(\"PasswordManager\");\n const secretsManager = this.getResponseProperty(\"SecretsManager\");\n this.PasswordManager =\n passwordManager == null ? null : new PasswordManagerPlanFeaturesResponse(passwordManager);\n this.SecretsManager =\n secretsManager == null ? null : new SecretsManagerPlanFeaturesResponse(secretsManager);\n }\n}\n\nexport class SecretsManagerPlanFeaturesResponse extends BaseResponse {\n // Seats\n stripeSeatPlanId: string;\n baseSeats: number;\n basePrice: number;\n seatPrice: number;\n hasAdditionalSeatsOption: boolean;\n maxAdditionalSeats: number;\n maxSeats: number;\n\n // Service accounts\n stripeServiceAccountPlanId: string;\n additionalPricePerServiceAccount: number;\n baseServiceAccount: number;\n maxServiceAccount: number;\n hasAdditionalServiceAccountOption: boolean;\n maxAdditionalServiceAccounts: number;\n\n // Features\n maxProjects: number;\n\n constructor(response: any) {\n super(response);\n this.stripeSeatPlanId = this.getResponseProperty(\"StripeSeatPlanId\");\n this.baseSeats = this.getResponseProperty(\"BaseSeats\");\n this.basePrice = this.getResponseProperty(\"BasePrice\");\n this.seatPrice = this.getResponseProperty(\"SeatPrice\");\n this.hasAdditionalSeatsOption = this.getResponseProperty(\"HasAdditionalSeatsOption\");\n this.maxAdditionalSeats = this.getResponseProperty(\"MaxAdditionalSeats\");\n this.maxSeats = this.getResponseProperty(\"MaxSeats\");\n this.stripeServiceAccountPlanId = this.getResponseProperty(\"StripeServiceAccountPlanId\");\n this.additionalPricePerServiceAccount = this.getResponseProperty(\n \"AdditionalPricePerServiceAccount\",\n );\n this.baseServiceAccount = this.getResponseProperty(\"BaseServiceAccount\");\n this.maxServiceAccount = this.getResponseProperty(\"MaxServiceAccount\");\n this.hasAdditionalServiceAccountOption = this.getResponseProperty(\n \"HasAdditionalServiceAccountOption\",\n );\n this.maxAdditionalServiceAccounts = this.getResponseProperty(\"MaxAdditionalServiceAccounts\");\n this.maxProjects = this.getResponseProperty(\"MaxProjects\");\n }\n}\n\nexport class PasswordManagerPlanFeaturesResponse extends BaseResponse {\n // Seats\n stripePlanId: string;\n stripeSeatPlanId: string;\n stripePremiumAccessPlanId: string;\n basePrice: number;\n seatPrice: number;\n premiumAccessOptionPrice: number;\n baseSeats: number;\n maxAdditionalSeats: number;\n maxSeats: number;\n hasPremiumAccessOption: boolean;\n\n // Storage\n additionalStoragePricePerGb: number;\n stripeStoragePlanId: string;\n baseStorageGb: number;\n hasAdditionalStorageOption: boolean;\n maxAdditionalStorage: number;\n hasAdditionalSeatsOption: boolean;\n\n // Feature\n maxCollections: number;\n\n constructor(response: any) {\n super(response);\n this.stripePlanId = this.getResponseProperty(\"StripePlanId\");\n this.stripeSeatPlanId = this.getResponseProperty(\"StripeSeatPlanId\");\n this.stripeStoragePlanId = this.getResponseProperty(\"StripeStoragePlanId\");\n this.stripePremiumAccessPlanId = this.getResponseProperty(\"StripePremiumAccessPlanId\");\n this.basePrice = this.getResponseProperty(\"BasePrice\");\n this.seatPrice = this.getResponseProperty(\"SeatPrice\");\n this.baseSeats = this.getResponseProperty(\"BaseSeats\");\n this.maxAdditionalSeats = this.getResponseProperty(\"MaxAdditionalSeats\");\n this.premiumAccessOptionPrice = this.getResponseProperty(\"PremiumAccessOptionPrice\");\n this.maxSeats = this.getResponseProperty(\"MaxSeats\");\n this.additionalStoragePricePerGb = this.getResponseProperty(\"AdditionalStoragePricePerGb\");\n this.hasAdditionalSeatsOption = this.getResponseProperty(\"HasAdditionalSeatsOption\");\n this.baseStorageGb = this.getResponseProperty(\"BaseStorageGb\");\n this.maxCollections = this.getResponseProperty(\"MaxCollections\");\n this.hasAdditionalStorageOption = this.getResponseProperty(\"HasAdditionalStorageOption\");\n this.maxAdditionalStorage = this.getResponseProperty(\"MaxAdditionalStorage\");\n this.hasPremiumAccessOption = this.getResponseProperty(\"HasPremiumAccessOption\");\n }\n}\n","import { PlanType } from \"../../../billing/enums\";\nimport { PlanResponse } from \"../../../billing/models/response/plan.response\";\nimport { BaseResponse } from \"../../../models/response/base.response\";\n\nexport class OrganizationResponse extends BaseResponse {\n id: string;\n name: string;\n businessName: string;\n businessAddress1: string;\n businessAddress2: string;\n businessAddress3: string;\n businessCountry: string;\n businessTaxNumber: string;\n billingEmail: string;\n plan: PlanResponse;\n planType: PlanType;\n seats: number;\n maxAutoscaleSeats: number;\n maxCollections: number;\n maxStorageGb: number;\n useGroups: boolean;\n useDirectory: boolean;\n useEvents: boolean;\n useTotp: boolean;\n use2fa: boolean;\n useApi: boolean;\n useResetPassword: boolean;\n useSecretsManager: boolean;\n hasPublicAndPrivateKeys: boolean;\n usePasswordManager: boolean;\n smSeats?: number;\n smServiceAccounts?: number;\n maxAutoscaleSmSeats?: number;\n maxAutoscaleSmServiceAccounts?: number;\n limitCollectionCreationDeletion: boolean;\n allowAdminAccessToAllCollectionItems: boolean;\n flexibleCollections: boolean;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.name = this.getResponseProperty(\"Name\");\n this.businessName = this.getResponseProperty(\"BusinessName\");\n this.businessAddress1 = this.getResponseProperty(\"BusinessAddress1\");\n this.businessAddress2 = this.getResponseProperty(\"BusinessAddress2\");\n this.businessAddress3 = this.getResponseProperty(\"BusinessAddress3\");\n this.businessCountry = this.getResponseProperty(\"BusinessCountry\");\n this.businessTaxNumber = this.getResponseProperty(\"BusinessTaxNumber\");\n this.billingEmail = this.getResponseProperty(\"BillingEmail\");\n\n const plan = this.getResponseProperty(\"Plan\");\n this.plan = plan == null ? null : new PlanResponse(plan);\n\n this.planType = this.getResponseProperty(\"PlanType\");\n this.seats = this.getResponseProperty(\"Seats\");\n this.maxAutoscaleSeats = this.getResponseProperty(\"MaxAutoscaleSeats\");\n this.maxCollections = this.getResponseProperty(\"MaxCollections\");\n this.maxStorageGb = this.getResponseProperty(\"MaxStorageGb\");\n this.useGroups = this.getResponseProperty(\"UseGroups\");\n this.useDirectory = this.getResponseProperty(\"UseDirectory\");\n this.useEvents = this.getResponseProperty(\"UseEvents\");\n this.useTotp = this.getResponseProperty(\"UseTotp\");\n this.use2fa = this.getResponseProperty(\"Use2fa\");\n this.useApi = this.getResponseProperty(\"UseApi\");\n this.useResetPassword = this.getResponseProperty(\"UseResetPassword\");\n this.useSecretsManager = this.getResponseProperty(\"UseSecretsManager\");\n this.hasPublicAndPrivateKeys = this.getResponseProperty(\"HasPublicAndPrivateKeys\");\n this.usePasswordManager = this.getResponseProperty(\"UsePasswordManager\");\n this.smSeats = this.getResponseProperty(\"SmSeats\");\n this.smServiceAccounts = this.getResponseProperty(\"SmServiceAccounts\");\n this.maxAutoscaleSmSeats = this.getResponseProperty(\"MaxAutoscaleSmSeats\");\n this.maxAutoscaleSmServiceAccounts = this.getResponseProperty(\"MaxAutoscaleSmServiceAccounts\");\n this.limitCollectionCreationDeletion = this.getResponseProperty(\n \"LimitCollectionCreationDeletion\",\n );\n this.allowAdminAccessToAllCollectionItems = this.getResponseProperty(\n \"AllowAdminAccessToAllCollectionItems\",\n );\n this.flexibleCollections = this.getResponseProperty(\"FlexibleCollections\");\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\n\nexport class SubscriptionResponse extends BaseResponse {\n storageName: string;\n storageGb: number;\n maxStorageGb: number;\n subscription: BillingSubscriptionResponse;\n upcomingInvoice: BillingSubscriptionUpcomingInvoiceResponse;\n license: any;\n expiration: string;\n\n constructor(response: any) {\n super(response);\n this.storageName = this.getResponseProperty(\"StorageName\");\n this.storageGb = this.getResponseProperty(\"StorageGb\");\n this.maxStorageGb = this.getResponseProperty(\"MaxStorageGb\");\n this.license = this.getResponseProperty(\"License\");\n this.expiration = this.getResponseProperty(\"Expiration\");\n const subscription = this.getResponseProperty(\"Subscription\");\n const upcomingInvoice = this.getResponseProperty(\"UpcomingInvoice\");\n this.subscription = subscription == null ? null : new BillingSubscriptionResponse(subscription);\n this.upcomingInvoice =\n upcomingInvoice == null\n ? null\n : new BillingSubscriptionUpcomingInvoiceResponse(upcomingInvoice);\n }\n}\n\nexport class BillingSubscriptionResponse extends BaseResponse {\n trialStartDate: string;\n trialEndDate: string;\n periodStartDate: string;\n periodEndDate: string;\n cancelledDate: string;\n cancelAtEndDate: boolean;\n status: string;\n cancelled: boolean;\n items: BillingSubscriptionItemResponse[] = [];\n collectionMethod: string;\n suspensionDate?: string;\n unpaidPeriodEndDate?: string;\n gracePeriod?: number;\n\n constructor(response: any) {\n super(response);\n this.trialStartDate = this.getResponseProperty(\"TrialStartDate\");\n this.trialEndDate = this.getResponseProperty(\"TrialEndDate\");\n this.periodStartDate = this.getResponseProperty(\"PeriodStartDate\");\n this.periodEndDate = this.getResponseProperty(\"PeriodEndDate\");\n this.cancelledDate = this.getResponseProperty(\"CancelledDate\");\n this.cancelAtEndDate = this.getResponseProperty(\"CancelAtEndDate\");\n this.status = this.getResponseProperty(\"Status\");\n this.cancelled = this.getResponseProperty(\"Cancelled\");\n const items = this.getResponseProperty(\"Items\");\n if (items != null) {\n this.items = items.map((i: any) => new BillingSubscriptionItemResponse(i));\n }\n this.collectionMethod = this.getResponseProperty(\"CollectionMethod\");\n this.suspensionDate = this.getResponseProperty(\"SuspensionDate\");\n this.unpaidPeriodEndDate = this.getResponseProperty(\"unpaidPeriodEndDate\");\n this.gracePeriod = this.getResponseProperty(\"GracePeriod\");\n }\n}\n\nexport class BillingSubscriptionItemResponse extends BaseResponse {\n productId: string;\n name: string;\n amount: number;\n quantity: number;\n interval: string;\n sponsoredSubscriptionItem: boolean;\n addonSubscriptionItem: boolean;\n productName: string;\n\n constructor(response: any) {\n super(response);\n this.productId = this.getResponseProperty(\"ProductId\");\n this.name = this.getResponseProperty(\"Name\");\n this.amount = this.getResponseProperty(\"Amount\");\n this.quantity = this.getResponseProperty(\"Quantity\");\n this.interval = this.getResponseProperty(\"Interval\");\n this.sponsoredSubscriptionItem = this.getResponseProperty(\"SponsoredSubscriptionItem\");\n this.addonSubscriptionItem = this.getResponseProperty(\"AddonSubscriptionItem\");\n }\n}\n\nexport class BillingSubscriptionUpcomingInvoiceResponse extends BaseResponse {\n date: string;\n amount?: number;\n\n constructor(response: any) {\n super(response);\n this.date = this.getResponseProperty(\"Date\");\n this.amount = this.getResponseProperty(\"Amount\");\n }\n}\n","import { OrganizationResponse } from \"../../../admin-console/models/response/organization.response\";\nimport { BaseResponse } from \"../../../models/response/base.response\";\n\nimport {\n BillingSubscriptionResponse,\n BillingSubscriptionUpcomingInvoiceResponse,\n} from \"./subscription.response\";\n\nexport class OrganizationSubscriptionResponse extends OrganizationResponse {\n storageName: string;\n storageGb: number;\n subscription: BillingSubscriptionResponse;\n upcomingInvoice: BillingSubscriptionUpcomingInvoiceResponse;\n customerDiscount: BillingCustomerDiscount;\n expiration: string;\n expirationWithoutGracePeriod: string;\n\n constructor(response: any) {\n super(response);\n this.storageName = this.getResponseProperty(\"StorageName\");\n this.storageGb = this.getResponseProperty(\"StorageGb\");\n const subscription = this.getResponseProperty(\"Subscription\");\n this.subscription = subscription == null ? null : new BillingSubscriptionResponse(subscription);\n const upcomingInvoice = this.getResponseProperty(\"UpcomingInvoice\");\n this.upcomingInvoice =\n upcomingInvoice == null\n ? null\n : new BillingSubscriptionUpcomingInvoiceResponse(upcomingInvoice);\n const customerDiscount = this.getResponseProperty(\"CustomerDiscount\");\n this.customerDiscount =\n customerDiscount == null ? null : new BillingCustomerDiscount(customerDiscount);\n this.expiration = this.getResponseProperty(\"Expiration\");\n this.expirationWithoutGracePeriod = this.getResponseProperty(\"ExpirationWithoutGracePeriod\");\n }\n}\n\nexport class BillingCustomerDiscount extends BaseResponse {\n id: string;\n active: boolean;\n percentOff?: number;\n appliesTo: string[];\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.active = this.getResponseProperty(\"Active\");\n this.percentOff = this.getResponseProperty(\"PercentOff\");\n this.appliesTo = this.getResponseProperty(\"AppliesTo\");\n }\n}\n","import { ProductType } from \"../../../enums\";\nimport { BaseResponse } from \"../../../models/response/base.response\";\nimport { OrganizationUserStatusType, OrganizationUserType, ProviderType } from \"../../enums\";\nimport { PermissionsApi } from \"../api/permissions.api\";\n\nexport class ProfileOrganizationResponse extends BaseResponse {\n id: string;\n name: string;\n usePolicies: boolean;\n useGroups: boolean;\n useDirectory: boolean;\n useEvents: boolean;\n useTotp: boolean;\n use2fa: boolean;\n useApi: boolean;\n useSso: boolean;\n useKeyConnector: boolean;\n useScim: boolean;\n useCustomPermissions: boolean;\n useResetPassword: boolean;\n useSecretsManager: boolean;\n usePasswordManager: boolean;\n useActivateAutofillPolicy: boolean;\n selfHost: boolean;\n usersGetPremium: boolean;\n seats: number;\n maxCollections: number;\n maxStorageGb?: number;\n key: string;\n hasPublicAndPrivateKeys: boolean;\n status: OrganizationUserStatusType;\n type: OrganizationUserType;\n enabled: boolean;\n ssoBound: boolean;\n identifier: string;\n permissions: PermissionsApi;\n resetPasswordEnrolled: boolean;\n userId: string;\n providerId: string;\n providerName: string;\n providerType?: ProviderType;\n familySponsorshipFriendlyName: string;\n familySponsorshipAvailable: boolean;\n planProductType: ProductType;\n keyConnectorEnabled: boolean;\n keyConnectorUrl: string;\n familySponsorshipLastSyncDate?: Date;\n familySponsorshipValidUntil?: Date;\n familySponsorshipToDelete?: boolean;\n accessSecretsManager: boolean;\n limitCollectionCreationDeletion: boolean;\n allowAdminAccessToAllCollectionItems: boolean;\n flexibleCollections: boolean;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.name = this.getResponseProperty(\"Name\");\n this.usePolicies = this.getResponseProperty(\"UsePolicies\");\n this.useGroups = this.getResponseProperty(\"UseGroups\");\n this.useDirectory = this.getResponseProperty(\"UseDirectory\");\n this.useEvents = this.getResponseProperty(\"UseEvents\");\n this.useTotp = this.getResponseProperty(\"UseTotp\");\n this.use2fa = this.getResponseProperty(\"Use2fa\");\n this.useApi = this.getResponseProperty(\"UseApi\");\n this.useSso = this.getResponseProperty(\"UseSso\");\n this.useKeyConnector = this.getResponseProperty(\"UseKeyConnector\") ?? false;\n this.useScim = this.getResponseProperty(\"UseScim\") ?? false;\n this.useCustomPermissions = this.getResponseProperty(\"UseCustomPermissions\") ?? false;\n this.useResetPassword = this.getResponseProperty(\"UseResetPassword\");\n this.useSecretsManager = this.getResponseProperty(\"UseSecretsManager\");\n this.usePasswordManager = this.getResponseProperty(\"UsePasswordManager\");\n this.useActivateAutofillPolicy = this.getResponseProperty(\"UseActivateAutofillPolicy\");\n this.selfHost = this.getResponseProperty(\"SelfHost\");\n this.usersGetPremium = this.getResponseProperty(\"UsersGetPremium\");\n this.seats = this.getResponseProperty(\"Seats\");\n this.maxCollections = this.getResponseProperty(\"MaxCollections\");\n this.maxStorageGb = this.getResponseProperty(\"MaxStorageGb\");\n this.key = this.getResponseProperty(\"Key\");\n this.hasPublicAndPrivateKeys = this.getResponseProperty(\"HasPublicAndPrivateKeys\");\n this.status = this.getResponseProperty(\"Status\");\n this.type = this.getResponseProperty(\"Type\");\n this.enabled = this.getResponseProperty(\"Enabled\");\n this.ssoBound = this.getResponseProperty(\"SsoBound\");\n this.identifier = this.getResponseProperty(\"Identifier\");\n this.permissions = new PermissionsApi(this.getResponseProperty(\"permissions\"));\n this.resetPasswordEnrolled = this.getResponseProperty(\"ResetPasswordEnrolled\");\n this.userId = this.getResponseProperty(\"UserId\");\n this.providerId = this.getResponseProperty(\"ProviderId\");\n this.providerName = this.getResponseProperty(\"ProviderName\");\n this.providerType = this.getResponseProperty(\"ProviderType\");\n this.familySponsorshipFriendlyName = this.getResponseProperty(\"FamilySponsorshipFriendlyName\");\n this.familySponsorshipAvailable = this.getResponseProperty(\"FamilySponsorshipAvailable\");\n this.planProductType = this.getResponseProperty(\"PlanProductType\");\n this.keyConnectorEnabled = this.getResponseProperty(\"KeyConnectorEnabled\") ?? false;\n this.keyConnectorUrl = this.getResponseProperty(\"KeyConnectorUrl\");\n const familySponsorshipLastSyncDateString = this.getResponseProperty(\n \"FamilySponsorshipLastSyncDate\",\n );\n if (familySponsorshipLastSyncDateString) {\n this.familySponsorshipLastSyncDate = new Date(familySponsorshipLastSyncDateString);\n }\n const familySponsorshipValidUntilString = this.getResponseProperty(\n \"FamilySponsorshipValidUntil\",\n );\n if (familySponsorshipValidUntilString) {\n this.familySponsorshipValidUntil = new Date(familySponsorshipValidUntilString);\n }\n this.familySponsorshipToDelete = this.getResponseProperty(\"FamilySponsorshipToDelete\");\n this.accessSecretsManager = this.getResponseProperty(\"AccessSecretsManager\");\n this.limitCollectionCreationDeletion = this.getResponseProperty(\n \"LimitCollectionCreationDeletion\",\n );\n this.allowAdminAccessToAllCollectionItems = this.getResponseProperty(\n \"AllowAdminAccessToAllCollectionItems\",\n );\n this.flexibleCollections = this.getResponseProperty(\"FlexibleCollections\");\n }\n}\n","import { ProfileOrganizationResponse } from \"./profile-organization.response\";\n\nexport class ProfileProviderOrganizationResponse extends ProfileOrganizationResponse {\n constructor(response: any) {\n super(response);\n this.keyConnectorEnabled = false;\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\nimport { ProviderStatusType, ProviderUserStatusType, ProviderUserType } from \"../../enums\";\nimport { PermissionsApi } from \"../api/permissions.api\";\n\nexport class ProfileProviderResponse extends BaseResponse {\n id: string;\n name: string;\n key: string;\n status: ProviderUserStatusType;\n type: ProviderUserType;\n enabled: boolean;\n permissions: PermissionsApi;\n userId: string;\n useEvents: boolean;\n providerStatus: ProviderStatusType;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.name = this.getResponseProperty(\"Name\");\n this.key = this.getResponseProperty(\"Key\");\n this.status = this.getResponseProperty(\"Status\");\n this.type = this.getResponseProperty(\"Type\");\n this.enabled = this.getResponseProperty(\"Enabled\");\n this.permissions = new PermissionsApi(this.getResponseProperty(\"permissions\"));\n this.userId = this.getResponseProperty(\"UserId\");\n this.useEvents = this.getResponseProperty(\"UseEvents\");\n this.providerStatus = this.getResponseProperty(\"ProviderStatus\");\n }\n}\n","import { ProfileOrganizationResponse } from \"../../admin-console/models/response/profile-organization.response\";\nimport { ProfileProviderOrganizationResponse } from \"../../admin-console/models/response/profile-provider-organization.response\";\nimport { ProfileProviderResponse } from \"../../admin-console/models/response/profile-provider.response\";\nimport { UserId } from \"../../types/guid\";\n\nimport { BaseResponse } from \"./base.response\";\n\nexport class ProfileResponse extends BaseResponse {\n id: UserId;\n name: string;\n email: string;\n emailVerified: boolean;\n masterPasswordHint: string;\n premiumPersonally: boolean;\n premiumFromOrganization: boolean;\n culture: string;\n twoFactorEnabled: boolean;\n key: string;\n avatarColor: string;\n creationDate: string;\n privateKey: string;\n securityStamp: string;\n forcePasswordReset: boolean;\n usesKeyConnector: boolean;\n organizations: ProfileOrganizationResponse[] = [];\n providers: ProfileProviderResponse[] = [];\n providerOrganizations: ProfileProviderOrganizationResponse[] = [];\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.name = this.getResponseProperty(\"Name\");\n this.email = this.getResponseProperty(\"Email\");\n this.emailVerified = this.getResponseProperty(\"EmailVerified\");\n this.masterPasswordHint = this.getResponseProperty(\"MasterPasswordHint\");\n this.premiumPersonally = this.getResponseProperty(\"Premium\");\n this.premiumFromOrganization = this.getResponseProperty(\"PremiumFromOrganization\");\n this.culture = this.getResponseProperty(\"Culture\");\n this.twoFactorEnabled = this.getResponseProperty(\"TwoFactorEnabled\");\n this.key = this.getResponseProperty(\"Key\");\n this.avatarColor = this.getResponseProperty(\"AvatarColor\");\n this.creationDate = this.getResponseProperty(\"CreationDate\");\n this.privateKey = this.getResponseProperty(\"PrivateKey\");\n this.securityStamp = this.getResponseProperty(\"SecurityStamp\");\n this.forcePasswordReset = this.getResponseProperty(\"ForcePasswordReset\") ?? false;\n this.usesKeyConnector = this.getResponseProperty(\"UsesKeyConnector\") ?? false;\n\n const organizations = this.getResponseProperty(\"Organizations\");\n if (organizations != null) {\n this.organizations = organizations.map((o: any) => new ProfileOrganizationResponse(o));\n }\n const providers = this.getResponseProperty(\"Providers\");\n if (providers != null) {\n this.providers = providers.map((o: any) => new ProfileProviderResponse(o));\n }\n const providerOrganizations = this.getResponseProperty(\"ProviderOrganizations\");\n if (providerOrganizations != null) {\n this.providerOrganizations = providerOrganizations.map(\n (o: any) => new ProfileProviderOrganizationResponse(o),\n );\n }\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\nimport { ProfileResponse } from \"../../../models/response/profile.response\";\n\nexport class PaymentResponse extends BaseResponse {\n userProfile: ProfileResponse;\n paymentIntentClientSecret: string;\n success: boolean;\n\n constructor(response: any) {\n super(response);\n const userProfile = this.getResponseProperty(\"UserProfile\");\n if (userProfile != null) {\n this.userProfile = new ProfileResponse(userProfile);\n }\n this.paymentIntentClientSecret = this.getResponseProperty(\"PaymentIntentClientSecret\");\n this.success = this.getResponseProperty(\"Success\");\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\n\nexport class TaxInfoResponse extends BaseResponse {\n taxId: string;\n taxIdType: string;\n line1: string;\n line2: string;\n city: string;\n state: string;\n country: string;\n postalCode: string;\n\n constructor(response: any) {\n super(response);\n this.taxId = this.getResponseProperty(\"TaxIdNumber\");\n if (!this.taxId) {\n this.taxId = this.getResponseProperty(\"TaxId\");\n }\n this.taxIdType = this.getResponseProperty(\"TaxIdType\");\n this.line1 = this.getResponseProperty(\"Line1\");\n this.line2 = this.getResponseProperty(\"Line2\");\n this.city = this.getResponseProperty(\"City\");\n this.state = this.getResponseProperty(\"State\");\n this.postalCode = this.getResponseProperty(\"PostalCode\");\n this.country = this.getResponseProperty(\"Country\");\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\nimport { OrganizationApiKeyType } from \"../../enums\";\n\nexport class OrganizationApiKeyInformationResponse extends BaseResponse {\n keyType: OrganizationApiKeyType;\n\n constructor(response: any) {\n super(response);\n this.keyType = this.getResponseProperty(\"KeyType\");\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\n\nexport class OrganizationAutoEnrollStatusResponse extends BaseResponse {\n id: string;\n resetPasswordEnabled: boolean;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.resetPasswordEnabled = this.getResponseProperty(\"ResetPasswordEnabled\");\n }\n}\n","import { BaseResponse } from \"./base.response\";\n\nexport class KeysResponse extends BaseResponse {\n privateKey: string;\n publicKey: string;\n\n constructor(response: any) {\n super(response);\n this.privateKey = this.getResponseProperty(\"PrivateKey\");\n this.publicKey = this.getResponseProperty(\"PublicKey\");\n }\n}\n","import { KeysResponse } from \"../../../models/response/keys.response\";\n\nexport class OrganizationKeysResponse extends KeysResponse {\n constructor(response: any) {\n super(response);\n }\n}\n","import { Jsonify } from \"type-fest\";\n\nimport { ProductType } from \"../../../enums\";\nimport { OrganizationUserStatusType, OrganizationUserType, ProviderType } from \"../../enums\";\nimport { PermissionsApi } from \"../api/permissions.api\";\nimport { ProfileOrganizationResponse } from \"../response/profile-organization.response\";\n\nexport class OrganizationData {\n id: string;\n name: string;\n status: OrganizationUserStatusType;\n type: OrganizationUserType;\n enabled: boolean;\n usePolicies: boolean;\n useGroups: boolean;\n useDirectory: boolean;\n useEvents: boolean;\n useTotp: boolean;\n use2fa: boolean;\n useApi: boolean;\n useSso: boolean;\n useKeyConnector: boolean;\n useScim: boolean;\n useCustomPermissions: boolean;\n useResetPassword: boolean;\n useSecretsManager: boolean;\n usePasswordManager: boolean;\n useActivateAutofillPolicy: boolean;\n selfHost: boolean;\n usersGetPremium: boolean;\n seats: number;\n maxCollections: number;\n maxStorageGb?: number;\n ssoBound: boolean;\n identifier: string;\n permissions: PermissionsApi;\n resetPasswordEnrolled: boolean;\n userId: string;\n hasPublicAndPrivateKeys: boolean;\n providerId: string;\n providerName: string;\n providerType?: ProviderType;\n isProviderUser: boolean;\n isMember: boolean;\n familySponsorshipFriendlyName: string;\n familySponsorshipAvailable: boolean;\n planProductType: ProductType;\n keyConnectorEnabled: boolean;\n keyConnectorUrl: string;\n familySponsorshipLastSyncDate?: Date;\n familySponsorshipValidUntil?: Date;\n familySponsorshipToDelete?: boolean;\n accessSecretsManager: boolean;\n limitCollectionCreationDeletion: boolean;\n allowAdminAccessToAllCollectionItems: boolean;\n flexibleCollections: boolean;\n\n constructor(\n response?: ProfileOrganizationResponse,\n options?: {\n isMember: boolean;\n isProviderUser: boolean;\n },\n ) {\n if (response == null) {\n return;\n }\n\n this.id = response.id;\n this.name = response.name;\n this.status = response.status;\n this.type = response.type;\n this.enabled = response.enabled;\n this.usePolicies = response.usePolicies;\n this.useGroups = response.useGroups;\n this.useDirectory = response.useDirectory;\n this.useEvents = response.useEvents;\n this.useTotp = response.useTotp;\n this.use2fa = response.use2fa;\n this.useApi = response.useApi;\n this.useSso = response.useSso;\n this.useKeyConnector = response.useKeyConnector;\n this.useScim = response.useScim;\n this.useCustomPermissions = response.useCustomPermissions;\n this.useResetPassword = response.useResetPassword;\n this.useSecretsManager = response.useSecretsManager;\n this.usePasswordManager = response.usePasswordManager;\n this.useActivateAutofillPolicy = response.useActivateAutofillPolicy;\n this.selfHost = response.selfHost;\n this.usersGetPremium = response.usersGetPremium;\n this.seats = response.seats;\n this.maxCollections = response.maxCollections;\n this.maxStorageGb = response.maxStorageGb;\n this.ssoBound = response.ssoBound;\n this.identifier = response.identifier;\n this.permissions = response.permissions;\n this.resetPasswordEnrolled = response.resetPasswordEnrolled;\n this.userId = response.userId;\n this.hasPublicAndPrivateKeys = response.hasPublicAndPrivateKeys;\n this.providerId = response.providerId;\n this.providerName = response.providerName;\n this.providerType = response.providerType;\n this.familySponsorshipFriendlyName = response.familySponsorshipFriendlyName;\n this.familySponsorshipAvailable = response.familySponsorshipAvailable;\n this.planProductType = response.planProductType;\n this.keyConnectorEnabled = response.keyConnectorEnabled;\n this.keyConnectorUrl = response.keyConnectorUrl;\n this.familySponsorshipLastSyncDate = response.familySponsorshipLastSyncDate;\n this.familySponsorshipValidUntil = response.familySponsorshipValidUntil;\n this.familySponsorshipToDelete = response.familySponsorshipToDelete;\n this.accessSecretsManager = response.accessSecretsManager;\n this.limitCollectionCreationDeletion = response.limitCollectionCreationDeletion;\n this.allowAdminAccessToAllCollectionItems = response.allowAdminAccessToAllCollectionItems;\n this.flexibleCollections = response.flexibleCollections;\n\n this.isMember = options.isMember;\n this.isProviderUser = options.isProviderUser;\n }\n\n static fromJSON(obj: Jsonify) {\n return Object.assign(new OrganizationData(), obj, {\n familySponsorshipLastSyncDate:\n obj.familySponsorshipLastSyncDate != null\n ? new Date(obj.familySponsorshipLastSyncDate)\n : obj.familySponsorshipLastSyncDate,\n familySponsorshipValidUntil:\n obj.familySponsorshipValidUntil != null\n ? new Date(obj.familySponsorshipValidUntil)\n : obj.familySponsorshipValidUntil,\n });\n }\n}\n","import { map, Observable, firstValueFrom } from \"rxjs\";\nimport { Jsonify } from \"type-fest\";\n\nimport { ORGANIZATIONS_DISK, StateProvider, UserKeyDefinition } from \"../../../platform/state\";\nimport { UserId } from \"../../../types/guid\";\nimport { InternalOrganizationServiceAbstraction } from \"../../abstractions/organization/organization.service.abstraction\";\nimport { OrganizationData } from \"../../models/data/organization.data\";\nimport { Organization } from \"../../models/domain/organization\";\n\n/**\n * The `KeyDefinition` for accessing organization lists in application state.\n * @todo Ideally this wouldn't require a `fromJSON()` call, but `OrganizationData`\n * has some properties that contain functions. This should probably get\n * cleaned up.\n */\nexport const ORGANIZATIONS = UserKeyDefinition.record(\n ORGANIZATIONS_DISK,\n \"organizations\",\n {\n deserializer: (obj: Jsonify) => OrganizationData.fromJSON(obj),\n clearOn: [\"logout\"],\n },\n);\n\n/**\n * Filter out organizations from an observable that __do not__ offer a\n * families-for-enterprise sponsorship to members.\n * @returns a function that can be used in `Observable` pipes,\n * like `organizationService.organizations$`\n */\nfunction mapToExcludeOrganizationsWithoutFamilySponsorshipSupport() {\n return map((orgs) => orgs.filter((o) => o.canManageSponsorships));\n}\n\n/**\n * Filter out organizations from an observable that the organization user\n * __is not__ a direct member of. This will exclude organizations only\n * accessible as a provider.\n * @returns a function that can be used in `Observable` pipes,\n * like `organizationService.organizations$`\n */\nfunction mapToExcludeProviderOrganizations() {\n return map((orgs) => orgs.filter((o) => o.isMember));\n}\n\n/**\n * Map an observable stream of organizations down to a boolean indicating\n * if any organizations exist (`orgs.length > 0`).\n * @returns a function that can be used in `Observable` pipes,\n * like `organizationService.organizations$`\n */\nfunction mapToBooleanHasAnyOrganizations() {\n return map((orgs) => orgs.length > 0);\n}\n\n/**\n * Map an observable stream of organizations down to a single organization.\n * @param `organizationId` The ID of the organization you'd like to subscribe to\n * @returns a function that can be used in `Observable` pipes,\n * like `organizationService.organizations$`\n */\nfunction mapToSingleOrganization(organizationId: string) {\n return map((orgs) => orgs?.find((o) => o.id === organizationId));\n}\n\nexport class OrganizationService implements InternalOrganizationServiceAbstraction {\n organizations$ = this.getOrganizationsFromState$();\n memberOrganizations$ = this.organizations$.pipe(mapToExcludeProviderOrganizations());\n\n constructor(private stateProvider: StateProvider) {}\n\n get$(id: string): Observable {\n return this.organizations$.pipe(mapToSingleOrganization(id));\n }\n\n getAll$(userId?: UserId): Observable {\n return this.getOrganizationsFromState$(userId);\n }\n\n async getAll(userId?: string): Promise {\n return await firstValueFrom(this.getOrganizationsFromState$(userId as UserId));\n }\n\n canManageSponsorships$ = this.organizations$.pipe(\n mapToExcludeOrganizationsWithoutFamilySponsorshipSupport(),\n mapToBooleanHasAnyOrganizations(),\n );\n\n async hasOrganizations(): Promise {\n return await firstValueFrom(this.organizations$.pipe(mapToBooleanHasAnyOrganizations()));\n }\n\n async upsert(organization: OrganizationData, userId?: UserId): Promise {\n await this.stateFor(userId).update((existingOrganizations) => {\n const organizations = existingOrganizations ?? {};\n organizations[organization.id] = organization;\n return organizations;\n });\n }\n\n async get(id: string): Promise {\n return await firstValueFrom(this.organizations$.pipe(mapToSingleOrganization(id)));\n }\n\n /**\n * @deprecated For the CLI only\n * @param id id of the organization\n */\n async getFromState(id: string): Promise {\n return await firstValueFrom(this.organizations$.pipe(mapToSingleOrganization(id)));\n }\n\n async replace(organizations: { [id: string]: OrganizationData }, userId?: UserId): Promise {\n await this.stateFor(userId).update(() => organizations);\n }\n\n // Ideally this method would be renamed to organizations$() and the\n // $organizations observable as it stands would be removed. This will\n // require updates to callers, and so this method exists as a temporary\n // workaround until we have time & a plan to update callers.\n //\n // It can be thought of as \"organizations$ but with a userId option\".\n private getOrganizationsFromState$(userId?: UserId): Observable {\n return this.stateFor(userId).state$.pipe(this.mapOrganizationRecordToArray());\n }\n\n /**\n * Accepts a record of `OrganizationData`, which is how we store the\n * organization list as a JSON object on disk, to an array of\n * `Organization`, which is how the data is published to callers of the\n * service.\n * @returns a function that can be used to pipe organization data from\n * stored state to an exposed object easily consumable by others.\n */\n private mapOrganizationRecordToArray() {\n return map, Organization[]>((orgs) =>\n Object.values(orgs ?? {})?.map((o) => new Organization(o)),\n );\n }\n\n /**\n * Fetches the organization list from on disk state for the specified user.\n * @param userId the user ID to fetch the organization list for. Defaults to\n * the currently active user.\n * @returns an observable of organization state as it is stored on disk.\n */\n private stateFor(userId?: UserId) {\n return userId\n ? this.stateProvider.getUser(userId, ORGANIZATIONS)\n : this.stateProvider.getActive(ORGANIZATIONS);\n }\n}\n","import { BaseResponse } from \"../../../../models/response/base.response\";\n\nexport class OrganizationDomainSsoDetailsResponse extends BaseResponse {\n id: string;\n organizationIdentifier: string;\n ssoAvailable: boolean;\n domainName: string;\n verifiedDate?: Date;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"id\");\n this.organizationIdentifier = this.getResponseProperty(\"organizationIdentifier\");\n this.ssoAvailable = this.getResponseProperty(\"ssoAvailable\");\n this.domainName = this.getResponseProperty(\"domainName\");\n this.verifiedDate = this.getResponseProperty(\"verifiedDate\");\n }\n}\n","import { BaseResponse } from \"../../../../models/response/base.response\";\n\nexport class OrganizationDomainResponse extends BaseResponse {\n id: string;\n organizationId: string;\n txt: string;\n domainName: string;\n creationDate: string;\n nextRunDate: string;\n jobRunCount: number;\n verifiedDate?: string;\n lastCheckedDate?: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"id\");\n this.organizationId = this.getResponseProperty(\"organizationId\");\n this.txt = this.getResponseProperty(\"txt\");\n this.domainName = this.getResponseProperty(\"domainName\");\n this.creationDate = this.getResponseProperty(\"creationDate\");\n this.nextRunDate = this.getResponseProperty(\"nextRunDate\");\n this.jobRunCount = this.getResponseProperty(\"jobRunCount\");\n this.verifiedDate = this.getResponseProperty(\"verifiedDate\");\n this.lastCheckedDate = this.getResponseProperty(\"lastCheckedDate\");\n }\n}\n","export class OrganizationDomainSsoDetailsRequest {\n constructor(public email: string) {}\n}\n","import { map } from \"rxjs\";\nimport { Jsonify } from \"type-fest\";\n\nimport {\n ORGANIZATION_MANAGEMENT_PREFERENCES_DISK,\n StateProvider,\n UserKeyDefinition,\n} from \"../../../platform/state\";\nimport {\n OrganizationManagementPreference,\n OrganizationManagementPreferencesService,\n} from \"../../abstractions/organization-management-preferences/organization-management-preferences.service\";\n\n/**\n * This helper function can be used to quickly create `KeyDefinitions` that\n * target the `ORGANIZATION_MANAGEMENT_PREFERENCES_DISK` `StateDefinition`\n * and that have the default deserializer and `clearOn` options. Any\n * contenders for options to add to this service will likely use these same\n * options.\n */\nfunction buildKeyDefinition(key: string): UserKeyDefinition {\n return new UserKeyDefinition(ORGANIZATION_MANAGEMENT_PREFERENCES_DISK, key, {\n deserializer: (obj: Jsonify) => obj as T,\n clearOn: [\"logout\"],\n });\n}\n\nexport const AUTO_CONFIRM_FINGERPRINTS = buildKeyDefinition(\"autoConfirmFingerPrints\");\n\nexport class DefaultOrganizationManagementPreferencesService\n implements OrganizationManagementPreferencesService\n{\n constructor(private stateProvider: StateProvider) {}\n\n autoConfirmFingerPrints = this.buildOrganizationManagementPreference(\n AUTO_CONFIRM_FINGERPRINTS,\n false,\n );\n\n /**\n * Returns an `OrganizationManagementPreference` object for the provided\n * `KeyDefinition`. This object can then be used by callers to subscribe to\n * a given key, or set its value in state.\n */\n private buildOrganizationManagementPreference(\n keyDefinition: UserKeyDefinition,\n defaultValue: T,\n ) {\n return new OrganizationManagementPreference(\n this.getKeyFromState(keyDefinition).state$.pipe(map((x) => x ?? defaultValue)),\n this.setKeyInStateFn(keyDefinition),\n );\n }\n\n /**\n * Returns the full `ActiveUserState` value for a given `keyDefinition`\n * The returned value can then be called for subscription || set operations\n */\n private getKeyFromState(keyDefinition: UserKeyDefinition) {\n return this.stateProvider.getActive(keyDefinition);\n }\n\n /**\n * Returns a function that can be called to set the given `keyDefinition` in state\n */\n private setKeyInStateFn(keyDefinition: UserKeyDefinition) {\n return async (value: T) => {\n await this.getKeyFromState(keyDefinition).update(() => value);\n };\n }\n}\n","import { BaseResponse } from \"../../../../models/response/base.response\";\nimport { KdfType } from \"../../../../platform/enums\";\nimport { OrganizationUserStatusType, OrganizationUserType } from \"../../../enums\";\nimport { PermissionsApi } from \"../../../models/api/permissions.api\";\nimport { SelectionReadOnlyResponse } from \"../../../models/response/selection-read-only.response\";\n\nexport class OrganizationUserResponse extends BaseResponse {\n id: string;\n userId: string;\n type: OrganizationUserType;\n status: OrganizationUserStatusType;\n externalId: string;\n /**\n * @deprecated\n * To be removed after Flexible Collections.\n **/\n accessAll: boolean;\n accessSecretsManager: boolean;\n permissions: PermissionsApi;\n resetPasswordEnrolled: boolean;\n hasMasterPassword: boolean;\n collections: SelectionReadOnlyResponse[] = [];\n groups: string[] = [];\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.userId = this.getResponseProperty(\"UserId\");\n this.type = this.getResponseProperty(\"Type\");\n this.status = this.getResponseProperty(\"Status\");\n this.permissions = new PermissionsApi(this.getResponseProperty(\"Permissions\"));\n this.externalId = this.getResponseProperty(\"ExternalId\");\n this.accessAll = this.getResponseProperty(\"AccessAll\");\n this.accessSecretsManager = this.getResponseProperty(\"AccessSecretsManager\");\n this.resetPasswordEnrolled = this.getResponseProperty(\"ResetPasswordEnrolled\");\n this.hasMasterPassword = this.getResponseProperty(\"HasMasterPassword\");\n\n const collections = this.getResponseProperty(\"Collections\");\n if (collections != null) {\n this.collections = collections.map((c: any) => new SelectionReadOnlyResponse(c));\n }\n const groups = this.getResponseProperty(\"Groups\");\n if (groups != null) {\n this.groups = groups;\n }\n }\n}\n\nexport class OrganizationUserUserDetailsResponse extends OrganizationUserResponse {\n name: string;\n email: string;\n avatarColor: string;\n twoFactorEnabled: boolean;\n usesKeyConnector: boolean;\n\n constructor(response: any) {\n super(response);\n this.name = this.getResponseProperty(\"Name\");\n this.email = this.getResponseProperty(\"Email\");\n this.avatarColor = this.getResponseProperty(\"AvatarColor\");\n this.twoFactorEnabled = this.getResponseProperty(\"TwoFactorEnabled\");\n this.usesKeyConnector = this.getResponseProperty(\"UsesKeyConnector\") ?? false;\n }\n}\n\nexport class OrganizationUserDetailsResponse extends OrganizationUserResponse {\n constructor(response: any) {\n super(response);\n }\n}\n\nexport class OrganizationUserResetPasswordDetailsResponse extends BaseResponse {\n organizationUserId: string;\n kdf: KdfType;\n kdfIterations: number;\n kdfMemory?: number;\n kdfParallelism?: number;\n resetPasswordKey: string;\n encryptedPrivateKey: string;\n\n constructor(response: any) {\n super(response);\n this.organizationUserId = this.getResponseProperty(\"OrganizationUserId\");\n this.kdf = this.getResponseProperty(\"Kdf\");\n this.kdfIterations = this.getResponseProperty(\"KdfIterations\");\n this.kdfMemory = this.getResponseProperty(\"KdfMemory\");\n this.kdfParallelism = this.getResponseProperty(\"KdfParallelism\");\n this.resetPasswordKey = this.getResponseProperty(\"ResetPasswordKey\");\n this.encryptedPrivateKey = this.getResponseProperty(\"EncryptedPrivateKey\");\n }\n}\n","import { BaseResponse } from \"../../../../models/response/base.response\";\n\nexport class OrganizationUserBulkResponse extends BaseResponse {\n id: string;\n error: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.error = this.getResponseProperty(\"Error\");\n }\n}\n","import { BaseResponse } from \"../../../../models/response/base.response\";\n\nexport class OrganizationUserBulkPublicKeyResponse extends BaseResponse {\n id: string;\n userId: string;\n key: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.userId = this.getResponseProperty(\"UserId\");\n this.key = this.getResponseProperty(\"Key\");\n }\n}\n","export class OrganizationUserBulkRequest {\n ids: string[];\n\n constructor(ids: string[]) {\n this.ids = ids == null ? [] : ids;\n }\n}\n","import Domain from \"../../../platform/models/domain/domain-base\";\n\nexport class ResetPasswordPolicyOptions extends Domain {\n autoEnrollEnabled = false;\n}\n","import { combineLatest, firstValueFrom, map, Observable, of } from \"rxjs\";\n\nimport { UserKeyDefinition, POLICIES_DISK, StateProvider } from \"../../../platform/state\";\nimport { PolicyId, UserId } from \"../../../types/guid\";\nimport { OrganizationService } from \"../../abstractions/organization/organization.service.abstraction\";\nimport { InternalPolicyService as InternalPolicyServiceAbstraction } from \"../../abstractions/policy/policy.service.abstraction\";\nimport { OrganizationUserStatusType, PolicyType } from \"../../enums\";\nimport { PolicyData } from \"../../models/data/policy.data\";\nimport { MasterPasswordPolicyOptions } from \"../../models/domain/master-password-policy-options\";\nimport { Organization } from \"../../models/domain/organization\";\nimport { Policy } from \"../../models/domain/policy\";\nimport { ResetPasswordPolicyOptions } from \"../../models/domain/reset-password-policy-options\";\n\nconst policyRecordToArray = (policiesMap: { [id: string]: PolicyData }) =>\n Object.values(policiesMap || {}).map((f) => new Policy(f));\n\nexport const POLICIES = UserKeyDefinition.record(POLICIES_DISK, \"policies\", {\n deserializer: (policyData) => policyData,\n clearOn: [\"logout\"],\n});\n\nexport class PolicyService implements InternalPolicyServiceAbstraction {\n private activeUserPolicyState = this.stateProvider.getActive(POLICIES);\n private activeUserPolicies$ = this.activeUserPolicyState.state$.pipe(\n map((policyData) => policyRecordToArray(policyData)),\n );\n\n policies$ = this.activeUserPolicies$;\n\n constructor(\n private stateProvider: StateProvider,\n private organizationService: OrganizationService,\n ) {}\n\n get$(policyType: PolicyType) {\n const filteredPolicies$ = this.activeUserPolicies$.pipe(\n map((policies) => policies.filter((p) => p.type === policyType)),\n );\n\n return combineLatest([filteredPolicies$, this.organizationService.organizations$]).pipe(\n map(\n ([policies, organizations]) =>\n this.enforcedPolicyFilter(policies, organizations)?.at(0) ?? null,\n ),\n );\n }\n\n getAll$(policyType: PolicyType, userId?: UserId) {\n const filteredPolicies$ = this.stateProvider.getUserState$(POLICIES, userId).pipe(\n map((policyData) => policyRecordToArray(policyData)),\n map((policies) => policies.filter((p) => p.type === policyType)),\n );\n\n return combineLatest([filteredPolicies$, this.organizationService.getAll$(userId)]).pipe(\n map(([policies, organizations]) => this.enforcedPolicyFilter(policies, organizations)),\n );\n }\n\n async getAll(policyType: PolicyType) {\n return await firstValueFrom(\n this.policies$.pipe(map((policies) => policies.filter((p) => p.type === policyType))),\n );\n }\n\n policyAppliesToActiveUser$(policyType: PolicyType) {\n return this.get$(policyType).pipe(map((policy) => policy != null));\n }\n\n async policyAppliesToUser(policyType: PolicyType) {\n return await firstValueFrom(this.policyAppliesToActiveUser$(policyType));\n }\n\n private enforcedPolicyFilter(policies: Policy[], organizations: Organization[]) {\n const orgDict = Object.fromEntries(organizations.map((o) => [o.id, o]));\n return policies.filter((policy) => {\n const organization = orgDict[policy.organizationId];\n\n // This shouldn't happen, i.e. the user should only have policies for orgs they are a member of\n // But if it does, err on the side of enforcing the policy\n if (organization == null) {\n return true;\n }\n\n return (\n policy.enabled &&\n organization.status >= OrganizationUserStatusType.Accepted &&\n organization.usePolicies &&\n !this.isExemptFromPolicy(policy.type, organization)\n );\n });\n }\n\n masterPasswordPolicyOptions$(policies?: Policy[]): Observable {\n const observable = policies ? of(policies) : this.policies$;\n return observable.pipe(\n map((obsPolicies) => {\n let enforcedOptions: MasterPasswordPolicyOptions = null;\n const filteredPolicies = obsPolicies.filter((p) => p.type === PolicyType.MasterPassword);\n\n if (filteredPolicies == null || filteredPolicies.length === 0) {\n return enforcedOptions;\n }\n\n filteredPolicies.forEach((currentPolicy) => {\n if (!currentPolicy.enabled || currentPolicy.data == null) {\n return;\n }\n\n if (enforcedOptions == null) {\n enforcedOptions = new MasterPasswordPolicyOptions();\n }\n\n if (\n currentPolicy.data.minComplexity != null &&\n currentPolicy.data.minComplexity > enforcedOptions.minComplexity\n ) {\n enforcedOptions.minComplexity = currentPolicy.data.minComplexity;\n }\n\n if (\n currentPolicy.data.minLength != null &&\n currentPolicy.data.minLength > enforcedOptions.minLength\n ) {\n enforcedOptions.minLength = currentPolicy.data.minLength;\n }\n\n if (currentPolicy.data.requireUpper) {\n enforcedOptions.requireUpper = true;\n }\n\n if (currentPolicy.data.requireLower) {\n enforcedOptions.requireLower = true;\n }\n\n if (currentPolicy.data.requireNumbers) {\n enforcedOptions.requireNumbers = true;\n }\n\n if (currentPolicy.data.requireSpecial) {\n enforcedOptions.requireSpecial = true;\n }\n\n if (currentPolicy.data.enforceOnLogin) {\n enforcedOptions.enforceOnLogin = true;\n }\n });\n\n return enforcedOptions;\n }),\n );\n }\n\n evaluateMasterPassword(\n passwordStrength: number,\n newPassword: string,\n enforcedPolicyOptions: MasterPasswordPolicyOptions,\n ): boolean {\n if (enforcedPolicyOptions == null) {\n return true;\n }\n\n if (\n enforcedPolicyOptions.minComplexity > 0 &&\n enforcedPolicyOptions.minComplexity > passwordStrength\n ) {\n return false;\n }\n\n if (\n enforcedPolicyOptions.minLength > 0 &&\n enforcedPolicyOptions.minLength > newPassword.length\n ) {\n return false;\n }\n\n if (enforcedPolicyOptions.requireUpper && newPassword.toLocaleLowerCase() === newPassword) {\n return false;\n }\n\n if (enforcedPolicyOptions.requireLower && newPassword.toLocaleUpperCase() === newPassword) {\n return false;\n }\n\n if (enforcedPolicyOptions.requireNumbers && !/[0-9]/.test(newPassword)) {\n return false;\n }\n\n // eslint-disable-next-line\n if (enforcedPolicyOptions.requireSpecial && !/[!@#$%\\^&*]/g.test(newPassword)) {\n return false;\n }\n\n return true;\n }\n\n getResetPasswordPolicyOptions(\n policies: Policy[],\n orgId: string,\n ): [ResetPasswordPolicyOptions, boolean] {\n const resetPasswordPolicyOptions = new ResetPasswordPolicyOptions();\n\n if (policies == null || orgId == null) {\n return [resetPasswordPolicyOptions, false];\n }\n\n const policy = policies.find(\n (p) => p.organizationId === orgId && p.type === PolicyType.ResetPassword && p.enabled,\n );\n resetPasswordPolicyOptions.autoEnrollEnabled = policy?.data?.autoEnrollEnabled ?? false;\n\n return [resetPasswordPolicyOptions, policy?.enabled ?? false];\n }\n\n async upsert(policy: PolicyData): Promise {\n await this.activeUserPolicyState.update((policies) => {\n policies ??= {};\n policies[policy.id] = policy;\n return policies;\n });\n }\n\n async replace(policies: { [id: string]: PolicyData }): Promise {\n await this.activeUserPolicyState.update(() => policies);\n }\n\n /**\n * Determines whether an orgUser is exempt from a specific policy because of their role\n * Generally orgUsers who can manage policies are exempt from them, but some policies are stricter\n */\n private isExemptFromPolicy(policyType: PolicyType, organization: Organization) {\n switch (policyType) {\n case PolicyType.MaximumVaultTimeout:\n // Max Vault Timeout applies to everyone except owners\n return organization.isOwner;\n case PolicyType.PasswordGenerator:\n // password generation policy applies to everyone\n return false;\n default:\n return organization.canManagePolicies;\n }\n }\n}\n","import { BaseResponse } from \"../../../../models/response/base.response\";\nimport { ProviderType } from \"../../../enums\";\n\nexport class ProviderResponse extends BaseResponse {\n id: string;\n name: string;\n businessName: string;\n billingEmail: string;\n creationDate: Date;\n type: ProviderType;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.name = this.getResponseProperty(\"Name\");\n this.businessName = this.getResponseProperty(\"BusinessName\");\n this.billingEmail = this.getResponseProperty(\"BillingEmail\");\n this.creationDate = this.getResponseProperty(\"CreationDate\");\n this.type = this.getResponseProperty(\"Type\");\n }\n}\n","import { ProviderStatusType, ProviderUserStatusType, ProviderUserType } from \"../../enums\";\nimport { ProviderData } from \"../data/provider.data\";\n\nexport class Provider {\n id: string;\n name: string;\n status: ProviderUserStatusType;\n type: ProviderUserType;\n enabled: boolean;\n userId: string;\n useEvents: boolean;\n providerStatus: ProviderStatusType;\n\n constructor(obj?: ProviderData) {\n if (obj == null) {\n return;\n }\n\n this.id = obj.id;\n this.name = obj.name;\n this.status = obj.status;\n this.type = obj.type;\n this.enabled = obj.enabled;\n this.userId = obj.userId;\n this.useEvents = obj.useEvents;\n this.providerStatus = obj.providerStatus;\n }\n\n get canAccess() {\n if (this.isProviderAdmin) {\n return true;\n }\n return this.enabled && this.status === ProviderUserStatusType.Confirmed;\n }\n\n get canCreateOrganizations() {\n return this.enabled && this.isProviderAdmin;\n }\n\n get canManageUsers() {\n return this.isProviderAdmin;\n }\n\n get canAccessEventLogs() {\n return this.isProviderAdmin;\n }\n\n get isProviderAdmin() {\n return this.type === ProviderUserType.ProviderAdmin;\n }\n}\n","import { firstValueFrom, map, Observable, of, switchMap, take } from \"rxjs\";\n\nimport { PROVIDERS_DISK, StateProvider, UserKeyDefinition } from \"../../platform/state\";\nimport { UserId } from \"../../types/guid\";\nimport { ProviderService as ProviderServiceAbstraction } from \"../abstractions/provider.service\";\nimport { ProviderData } from \"../models/data/provider.data\";\nimport { Provider } from \"../models/domain/provider\";\n\nexport const PROVIDERS = UserKeyDefinition.record(PROVIDERS_DISK, \"providers\", {\n deserializer: (obj: ProviderData) => obj,\n clearOn: [\"logout\"],\n});\n\nfunction mapToSingleProvider(providerId: string) {\n return map((providers) => providers?.find((p) => p.id === providerId));\n}\n\nexport class ProviderService implements ProviderServiceAbstraction {\n constructor(private stateProvider: StateProvider) {}\n\n private providers$(userId?: UserId): Observable {\n // FIXME: Can be replaced with `getUserStateOrDefault$` if we weren't trying to pick this.\n return (\n userId != null\n ? this.stateProvider.getUser(userId, PROVIDERS).state$\n : this.stateProvider.activeUserId$.pipe(\n take(1),\n switchMap((userId) =>\n userId != null ? this.stateProvider.getUser(userId, PROVIDERS).state$ : of(null),\n ),\n )\n ).pipe(this.mapProviderRecordToArray());\n }\n\n private mapProviderRecordToArray() {\n return map, Provider[]>((providers) =>\n Object.values(providers ?? {})?.map((o) => new Provider(o)),\n );\n }\n\n get$(id: string): Observable {\n return this.providers$().pipe(mapToSingleProvider(id));\n }\n\n async get(id: string): Promise {\n return await firstValueFrom(this.providers$().pipe(mapToSingleProvider(id)));\n }\n\n async getAll(): Promise {\n return await firstValueFrom(this.providers$());\n }\n\n async save(providers: { [id: string]: ProviderData }, userId?: UserId) {\n await this.stateProvider.setUserState(PROVIDERS, providers, userId);\n }\n}\n","import { SecretVerificationRequest } from \"../../models/request/secret-verification.request\";\nimport { VerifyOTPRequest } from \"../../models/request/verify-otp.request\";\nimport { MasterPasswordPolicyResponse } from \"../../models/response/master-password-policy.response\";\n\nexport abstract class UserVerificationApiServiceAbstraction {\n postAccountVerifyOTP: (request: VerifyOTPRequest) => Promise;\n postAccountRequestOTP: () => Promise;\n postAccountVerifyPassword: (\n request: SecretVerificationRequest,\n ) => Promise;\n}\n","import { CredentialAssertionOptionsResponse } from \"../../services/webauthn-login/response/credential-assertion-options.response\";\n\nexport class WebAuthnLoginApiServiceAbstraction {\n getCredentialAssertionOptions: () => Promise;\n}\n","import { combineLatestWith, map, distinctUntilChanged, shareReplay, combineLatest } from \"rxjs\";\n\nimport {\n AccountInfo,\n InternalAccountService,\n accountInfoEqual,\n} from \"../../auth/abstractions/account.service\";\nimport { LogService } from \"../../platform/abstractions/log.service\";\nimport { MessagingService } from \"../../platform/abstractions/messaging.service\";\nimport { Utils } from \"../../platform/misc/utils\";\nimport {\n ACCOUNT_DISK,\n GlobalState,\n GlobalStateProvider,\n KeyDefinition,\n} from \"../../platform/state\";\nimport { UserId } from \"../../types/guid\";\n\nexport const ACCOUNT_ACCOUNTS = KeyDefinition.record(\n ACCOUNT_DISK,\n \"accounts\",\n {\n deserializer: (accountInfo) => accountInfo,\n },\n);\n\nexport const ACCOUNT_ACTIVE_ACCOUNT_ID = new KeyDefinition(ACCOUNT_DISK, \"activeAccountId\", {\n deserializer: (id: UserId) => id,\n});\n\nexport const ACCOUNT_ACTIVITY = KeyDefinition.record(ACCOUNT_DISK, \"activity\", {\n deserializer: (activity) => new Date(activity),\n});\n\nconst LOGGED_OUT_INFO: AccountInfo = {\n email: \"\",\n emailVerified: false,\n name: undefined,\n};\n\nexport class AccountServiceImplementation implements InternalAccountService {\n private accountsState: GlobalState>;\n private activeAccountIdState: GlobalState;\n\n accounts$;\n activeAccount$;\n accountActivity$;\n sortedUserIds$;\n nextUpAccount$;\n\n constructor(\n private messagingService: MessagingService,\n private logService: LogService,\n private globalStateProvider: GlobalStateProvider,\n ) {\n this.accountsState = this.globalStateProvider.get(ACCOUNT_ACCOUNTS);\n this.activeAccountIdState = this.globalStateProvider.get(ACCOUNT_ACTIVE_ACCOUNT_ID);\n\n this.accounts$ = this.accountsState.state$.pipe(\n map((accounts) => (accounts == null ? {} : accounts)),\n );\n this.activeAccount$ = this.activeAccountIdState.state$.pipe(\n combineLatestWith(this.accounts$),\n map(([id, accounts]) => (id ? { id, ...accounts[id] } : undefined)),\n distinctUntilChanged((a, b) => a?.id === b?.id && accountInfoEqual(a, b)),\n shareReplay({ bufferSize: 1, refCount: false }),\n );\n this.accountActivity$ = this.globalStateProvider\n .get(ACCOUNT_ACTIVITY)\n .state$.pipe(map((activity) => activity ?? {}));\n this.sortedUserIds$ = this.accountActivity$.pipe(\n map((activity) => {\n return Object.entries(activity)\n .map(([userId, lastActive]: [UserId, Date]) => ({ userId, lastActive }))\n .sort((a, b) => b.lastActive.getTime() - a.lastActive.getTime()) // later dates first\n .map((a) => a.userId);\n }),\n );\n this.nextUpAccount$ = combineLatest([\n this.accounts$,\n this.activeAccount$,\n this.sortedUserIds$,\n ]).pipe(\n map(([accounts, activeAccount, sortedUserIds]) => {\n const nextId = sortedUserIds.find((id) => id !== activeAccount?.id && accounts[id] != null);\n return nextId ? { id: nextId, ...accounts[nextId] } : null;\n }),\n );\n }\n\n async addAccount(userId: UserId, accountData: AccountInfo): Promise {\n if (!Utils.isGuid(userId)) {\n throw new Error(\"userId is required\");\n }\n\n await this.accountsState.update((accounts) => {\n accounts ||= {};\n accounts[userId] = accountData;\n return accounts;\n });\n await this.setAccountActivity(userId, new Date());\n }\n\n async setAccountName(userId: UserId, name: string): Promise {\n await this.setAccountInfo(userId, { name });\n }\n\n async setAccountEmail(userId: UserId, email: string): Promise {\n await this.setAccountInfo(userId, { email });\n }\n\n async setAccountEmailVerified(userId: UserId, emailVerified: boolean): Promise {\n await this.setAccountInfo(userId, { emailVerified });\n }\n\n async clean(userId: UserId) {\n await this.setAccountInfo(userId, LOGGED_OUT_INFO);\n await this.removeAccountActivity(userId);\n }\n\n async switchAccount(userId: UserId): Promise {\n let updateActivity = false;\n await this.activeAccountIdState.update(\n (_, accounts) => {\n if (userId == null) {\n // indicates no account is active\n return null;\n }\n\n if (accounts?.[userId] == null) {\n throw new Error(\"Account does not exist\");\n }\n updateActivity = true;\n return userId;\n },\n {\n combineLatestWith: this.accounts$,\n shouldUpdate: (id) => {\n // update only if userId changes\n return id !== userId;\n },\n },\n );\n\n if (updateActivity) {\n await this.setAccountActivity(userId, new Date());\n }\n }\n\n async setAccountActivity(userId: UserId, lastActivity: Date): Promise {\n if (!Utils.isGuid(userId)) {\n // only store for valid userIds\n return;\n }\n\n await this.globalStateProvider.get(ACCOUNT_ACTIVITY).update(\n (activity) => {\n activity ||= {};\n activity[userId] = lastActivity;\n return activity;\n },\n {\n shouldUpdate: (oldActivity) => oldActivity?.[userId]?.getTime() !== lastActivity?.getTime(),\n },\n );\n }\n\n async removeAccountActivity(userId: UserId): Promise {\n await this.globalStateProvider.get(ACCOUNT_ACTIVITY).update(\n (activity) => {\n if (activity == null) {\n return activity;\n }\n delete activity[userId];\n return activity;\n },\n { shouldUpdate: (oldActivity) => oldActivity?.[userId] != null },\n );\n }\n\n // TODO: update to use our own account status settings. Requires inverting direction of state service accounts flow\n async delete(): Promise {\n try {\n this.messagingService?.send(\"logout\");\n } catch (e) {\n this.logService.error(e);\n throw e;\n }\n }\n\n private async setAccountInfo(userId: UserId, update: Partial): Promise {\n function newAccountInfo(oldAccountInfo: AccountInfo): AccountInfo {\n return { ...oldAccountInfo, ...update };\n }\n await this.accountsState.update(\n (accounts) => {\n accounts[userId] = newAccountInfo(accounts[userId]);\n return accounts;\n },\n {\n // Avoid unnecessary updates\n // TODO: Faster comparison, maybe include a hash on the objects?\n shouldUpdate: (accounts) => {\n if (accounts?.[userId] == null) {\n throw new Error(\"Account does not exist\");\n }\n\n return !accountInfoEqual(accounts[userId], newAccountInfo(accounts[userId]));\n },\n },\n );\n }\n}\n","import { NotificationType } from \"../../enums\";\n\nimport { BaseResponse } from \"./base.response\";\n\nexport class NotificationResponse extends BaseResponse {\n contextId: string;\n type: NotificationType;\n payload: any;\n\n constructor(response: any) {\n super(response);\n this.contextId = this.getResponseProperty(\"ContextId\");\n this.type = this.getResponseProperty(\"Type\");\n\n const payload = this.getResponseProperty(\"Payload\");\n switch (this.type) {\n case NotificationType.SyncCipherCreate:\n case NotificationType.SyncCipherDelete:\n case NotificationType.SyncCipherUpdate:\n case NotificationType.SyncLoginDelete:\n this.payload = new SyncCipherNotification(payload);\n break;\n case NotificationType.SyncFolderCreate:\n case NotificationType.SyncFolderDelete:\n case NotificationType.SyncFolderUpdate:\n this.payload = new SyncFolderNotification(payload);\n break;\n case NotificationType.SyncVault:\n case NotificationType.SyncCiphers:\n case NotificationType.SyncOrganizations:\n case NotificationType.SyncOrgKeys:\n case NotificationType.SyncSettings:\n case NotificationType.LogOut:\n this.payload = new UserNotification(payload);\n break;\n case NotificationType.SyncSendCreate:\n case NotificationType.SyncSendUpdate:\n case NotificationType.SyncSendDelete:\n this.payload = new SyncSendNotification(payload);\n break;\n case NotificationType.AuthRequest:\n case NotificationType.AuthRequestResponse:\n this.payload = new AuthRequestPushNotification(payload);\n break;\n default:\n break;\n }\n }\n}\n\nexport class SyncCipherNotification extends BaseResponse {\n id: string;\n userId: string;\n organizationId: string;\n collectionIds: string[];\n revisionDate: Date;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.userId = this.getResponseProperty(\"UserId\");\n this.organizationId = this.getResponseProperty(\"OrganizationId\");\n this.collectionIds = this.getResponseProperty(\"CollectionIds\");\n this.revisionDate = new Date(this.getResponseProperty(\"RevisionDate\"));\n }\n}\n\nexport class SyncFolderNotification extends BaseResponse {\n id: string;\n userId: string;\n revisionDate: Date;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.userId = this.getResponseProperty(\"UserId\");\n this.revisionDate = new Date(this.getResponseProperty(\"RevisionDate\"));\n }\n}\n\nexport class UserNotification extends BaseResponse {\n userId: string;\n date: Date;\n\n constructor(response: any) {\n super(response);\n this.userId = this.getResponseProperty(\"UserId\");\n this.date = new Date(this.getResponseProperty(\"Date\"));\n }\n}\n\nexport class SyncSendNotification extends BaseResponse {\n id: string;\n userId: string;\n revisionDate: Date;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.userId = this.getResponseProperty(\"UserId\");\n this.revisionDate = new Date(this.getResponseProperty(\"RevisionDate\"));\n }\n}\n\nexport class AuthRequestPushNotification extends BaseResponse {\n id: string;\n userId: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.userId = this.getResponseProperty(\"UserId\");\n }\n}\n","export class UpdateAvatarRequest {\n avatarColor: string;\n\n constructor(avatarColor: string) {\n this.avatarColor = avatarColor;\n }\n}\n","import { Observable } from \"rxjs\";\n\nimport { ApiService } from \"../../abstractions/api.service\";\nimport { UpdateAvatarRequest } from \"../../models/request/update-avatar.request\";\nimport { AVATAR_DISK, StateProvider, UserKeyDefinition } from \"../../platform/state\";\nimport { UserId } from \"../../types/guid\";\nimport { AvatarService as AvatarServiceAbstraction } from \"../abstractions/avatar.service\";\n\nconst AVATAR_COLOR = new UserKeyDefinition(AVATAR_DISK, \"avatarColor\", {\n deserializer: (value) => value,\n clearOn: [],\n});\n\nexport class AvatarService implements AvatarServiceAbstraction {\n avatarColor$: Observable;\n\n constructor(\n private apiService: ApiService,\n private stateProvider: StateProvider,\n ) {\n this.avatarColor$ = this.stateProvider.getActive(AVATAR_COLOR).state$;\n }\n\n async setAvatarColor(color: string): Promise {\n const { avatarColor } = await this.apiService.putAvatar(new UpdateAvatarRequest(color));\n\n await this.stateProvider.setUserState(AVATAR_COLOR, avatarColor);\n }\n\n async setSyncAvatarColor(userId: UserId, color: string): Promise {\n await this.stateProvider.getUser(userId, AVATAR_COLOR).update(() => color);\n }\n\n getUserAvatarColor$(userId: UserId): Observable {\n return this.stateProvider.getUser(userId, AVATAR_COLOR).state$;\n }\n}\n","import { SecretVerificationRequest } from \"./secret-verification.request\";\n\nexport class UpdateDevicesTrustRequest extends SecretVerificationRequest {\n currentDevice: DeviceKeysUpdateRequest;\n otherDevices: OtherDeviceKeysUpdateRequest[];\n}\n\nexport class DeviceKeysUpdateRequest {\n encryptedPublicKey: string;\n encryptedUserKey: string;\n}\n\nexport class OtherDeviceKeysUpdateRequest extends DeviceKeysUpdateRequest {\n id: string;\n}\n","import { firstValueFrom, map, Observable } from \"rxjs\";\n\nimport { UserDecryptionOptionsServiceAbstraction } from \"@bitwarden/auth/common\";\n\nimport { AppIdService } from \"../../platform/abstractions/app-id.service\";\nimport { CryptoFunctionService } from \"../../platform/abstractions/crypto-function.service\";\nimport { CryptoService } from \"../../platform/abstractions/crypto.service\";\nimport { EncryptService } from \"../../platform/abstractions/encrypt.service\";\nimport { I18nService } from \"../../platform/abstractions/i18n.service\";\nimport { KeyGenerationService } from \"../../platform/abstractions/key-generation.service\";\nimport { LogService } from \"../../platform/abstractions/log.service\";\nimport { PlatformUtilsService } from \"../../platform/abstractions/platform-utils.service\";\nimport { AbstractStorageService } from \"../../platform/abstractions/storage.service\";\nimport { StorageLocation } from \"../../platform/enums\";\nimport { EncString } from \"../../platform/models/domain/enc-string\";\nimport { StorageOptions } from \"../../platform/models/domain/storage-options\";\nimport { SymmetricCryptoKey } from \"../../platform/models/domain/symmetric-crypto-key\";\nimport { DEVICE_TRUST_DISK_LOCAL, StateProvider, UserKeyDefinition } from \"../../platform/state\";\nimport { UserId } from \"../../types/guid\";\nimport { UserKey, DeviceKey } from \"../../types/key\";\nimport { DeviceTrustServiceAbstraction } from \"../abstractions/device-trust.service.abstraction\";\nimport { DeviceResponse } from \"../abstractions/devices/responses/device.response\";\nimport { DevicesApiServiceAbstraction } from \"../abstractions/devices-api.service.abstraction\";\nimport { SecretVerificationRequest } from \"../models/request/secret-verification.request\";\nimport {\n DeviceKeysUpdateRequest,\n UpdateDevicesTrustRequest,\n} from \"../models/request/update-devices-trust.request\";\n\n/** Uses disk storage so that the device key can persist after log out and tab removal. */\nexport const DEVICE_KEY = new UserKeyDefinition(DEVICE_TRUST_DISK_LOCAL, \"deviceKey\", {\n deserializer: (deviceKey) => SymmetricCryptoKey.fromJSON(deviceKey) as DeviceKey,\n clearOn: [], // Device key is needed to log back into device, so we can't clear it automatically during lock or logout\n});\n\n/** Uses disk storage so that the shouldTrustDevice bool can persist across login. */\nexport const SHOULD_TRUST_DEVICE = new UserKeyDefinition(\n DEVICE_TRUST_DISK_LOCAL,\n \"shouldTrustDevice\",\n {\n deserializer: (shouldTrustDevice) => shouldTrustDevice,\n clearOn: [], // Need to preserve the user setting, so we can't clear it automatically during lock or logout\n },\n);\n\nexport class DeviceTrustService implements DeviceTrustServiceAbstraction {\n private readonly platformSupportsSecureStorage =\n this.platformUtilsService.supportsSecureStorage();\n private readonly deviceKeySecureStorageKey: string = \"_deviceKey\";\n\n supportsDeviceTrust$: Observable;\n\n constructor(\n private keyGenerationService: KeyGenerationService,\n private cryptoFunctionService: CryptoFunctionService,\n private cryptoService: CryptoService,\n private encryptService: EncryptService,\n private appIdService: AppIdService,\n private devicesApiService: DevicesApiServiceAbstraction,\n private i18nService: I18nService,\n private platformUtilsService: PlatformUtilsService,\n private stateProvider: StateProvider,\n private secureStorageService: AbstractStorageService,\n private userDecryptionOptionsService: UserDecryptionOptionsServiceAbstraction,\n private logService: LogService,\n ) {\n this.supportsDeviceTrust$ = this.userDecryptionOptionsService.userDecryptionOptions$.pipe(\n map((options) => options?.trustedDeviceOption != null ?? false),\n );\n }\n\n /**\n * @description Retrieves the users choice to trust the device which can only happen after decryption\n * Note: this value should only be used once and then reset\n */\n async getShouldTrustDevice(userId: UserId): Promise {\n if (!userId) {\n throw new Error(\"UserId is required. Cannot get should trust device.\");\n }\n\n const shouldTrustDevice = await firstValueFrom(\n this.stateProvider.getUserState$(SHOULD_TRUST_DEVICE, userId),\n );\n\n return shouldTrustDevice;\n }\n\n async setShouldTrustDevice(userId: UserId, value: boolean): Promise {\n if (!userId) {\n throw new Error(\"UserId is required. Cannot set should trust device.\");\n }\n\n await this.stateProvider.setUserState(SHOULD_TRUST_DEVICE, value, userId);\n }\n\n async trustDeviceIfRequired(userId: UserId): Promise {\n if (!userId) {\n throw new Error(\"UserId is required. Cannot trust device if required.\");\n }\n\n const shouldTrustDevice = await this.getShouldTrustDevice(userId);\n if (shouldTrustDevice) {\n await this.trustDevice(userId);\n // reset the trust choice\n await this.setShouldTrustDevice(userId, false);\n }\n }\n\n async trustDevice(userId: UserId): Promise {\n if (!userId) {\n throw new Error(\"UserId is required. Cannot trust device.\");\n }\n\n // Attempt to get user key\n const userKey: UserKey = await this.cryptoService.getUserKey(userId);\n\n // If user key is not found, throw error\n if (!userKey) {\n throw new Error(\"User symmetric key not found\");\n }\n\n // Generate deviceKey\n const deviceKey = await this.makeDeviceKey();\n\n // Generate asymmetric RSA key pair: devicePrivateKey, devicePublicKey\n const [devicePublicKey, devicePrivateKey] =\n await this.cryptoFunctionService.rsaGenerateKeyPair(2048);\n\n const [\n devicePublicKeyEncryptedUserKey,\n userKeyEncryptedDevicePublicKey,\n deviceKeyEncryptedDevicePrivateKey,\n ] = await Promise.all([\n // Encrypt user key with the DevicePublicKey\n this.cryptoService.rsaEncrypt(userKey.key, devicePublicKey),\n\n // Encrypt devicePublicKey with user key\n this.encryptService.encrypt(devicePublicKey, userKey),\n\n // Encrypt devicePrivateKey with deviceKey\n this.encryptService.encrypt(devicePrivateKey, deviceKey),\n ]);\n\n // Send encrypted keys to server\n const deviceIdentifier = await this.appIdService.getAppId();\n const deviceResponse = await this.devicesApiService.updateTrustedDeviceKeys(\n deviceIdentifier,\n devicePublicKeyEncryptedUserKey.encryptedString,\n userKeyEncryptedDevicePublicKey.encryptedString,\n deviceKeyEncryptedDevicePrivateKey.encryptedString,\n );\n\n // store device key in local/secure storage if enc keys posted to server successfully\n await this.setDeviceKey(userId, deviceKey);\n\n this.platformUtilsService.showToast(\"success\", null, this.i18nService.t(\"deviceTrusted\"));\n\n return deviceResponse;\n }\n\n async rotateDevicesTrust(\n userId: UserId,\n newUserKey: UserKey,\n masterPasswordHash: string,\n ): Promise {\n if (!userId) {\n throw new Error(\"UserId is required. Cannot rotate device's trust.\");\n }\n\n const currentDeviceKey = await this.getDeviceKey(userId);\n if (currentDeviceKey == null) {\n // If the current device doesn't have a device key available to it, then we can't\n // rotate any trust at all, so early return.\n return;\n }\n\n // At this point of rotating their keys, they should still have their old user key in state\n const oldUserKey = await firstValueFrom(this.cryptoService.userKey$(userId));\n\n const deviceIdentifier = await this.appIdService.getAppId();\n const secretVerificationRequest = new SecretVerificationRequest();\n secretVerificationRequest.masterPasswordHash = masterPasswordHash;\n\n // Get the keys that are used in rotating a devices keys from the server\n const currentDeviceKeys = await this.devicesApiService.getDeviceKeys(\n deviceIdentifier,\n secretVerificationRequest,\n );\n\n // Decrypt the existing device public key with the old user key\n const decryptedDevicePublicKey = await this.encryptService.decryptToBytes(\n currentDeviceKeys.encryptedPublicKey,\n oldUserKey,\n );\n\n // Encrypt the brand new user key with the now-decrypted public key for the device\n const encryptedNewUserKey = await this.cryptoService.rsaEncrypt(\n newUserKey.key,\n decryptedDevicePublicKey,\n );\n\n // Re-encrypt the device public key with the new user key\n const encryptedDevicePublicKey = await this.encryptService.encrypt(\n decryptedDevicePublicKey,\n newUserKey,\n );\n\n const currentDeviceUpdateRequest = new DeviceKeysUpdateRequest();\n currentDeviceUpdateRequest.encryptedUserKey = encryptedNewUserKey.encryptedString;\n currentDeviceUpdateRequest.encryptedPublicKey = encryptedDevicePublicKey.encryptedString;\n\n // TODO: For device management, allow this method to take an array of device ids that can be looped over and individually rotated\n // then it can be added to trustRequest.otherDevices.\n\n const trustRequest = new UpdateDevicesTrustRequest();\n trustRequest.masterPasswordHash = masterPasswordHash;\n trustRequest.currentDevice = currentDeviceUpdateRequest;\n trustRequest.otherDevices = [];\n\n await this.devicesApiService.updateTrust(trustRequest, deviceIdentifier);\n }\n\n async getDeviceKey(userId: UserId): Promise {\n if (!userId) {\n throw new Error(\"UserId is required. Cannot get device key.\");\n }\n\n try {\n if (this.platformSupportsSecureStorage) {\n const deviceKeyB64 = await this.secureStorageService.get<\n ReturnType\n >(`${userId}${this.deviceKeySecureStorageKey}`, this.getSecureStorageOptions(userId));\n\n const deviceKey = SymmetricCryptoKey.fromJSON(deviceKeyB64) as DeviceKey;\n\n return deviceKey;\n }\n\n const deviceKey = await firstValueFrom(this.stateProvider.getUserState$(DEVICE_KEY, userId));\n\n return deviceKey;\n } catch (e) {\n this.logService.error(\"Failed to get device key\", e);\n }\n }\n\n private async setDeviceKey(userId: UserId, deviceKey: DeviceKey | null): Promise {\n if (!userId) {\n throw new Error(\"UserId is required. Cannot set device key.\");\n }\n\n try {\n if (this.platformSupportsSecureStorage) {\n await this.secureStorageService.save(\n `${userId}${this.deviceKeySecureStorageKey}`,\n deviceKey,\n this.getSecureStorageOptions(userId),\n );\n return;\n }\n\n await this.stateProvider.setUserState(DEVICE_KEY, deviceKey?.toJSON(), userId);\n } catch (e) {\n this.logService.error(\"Failed to set device key\", e);\n }\n }\n\n private async makeDeviceKey(): Promise {\n // Create 512-bit device key\n const deviceKey = (await this.keyGenerationService.createKey(512)) as DeviceKey;\n\n return deviceKey;\n }\n\n async decryptUserKeyWithDeviceKey(\n userId: UserId,\n encryptedDevicePrivateKey: EncString,\n encryptedUserKey: EncString,\n deviceKey: DeviceKey,\n ): Promise {\n if (!userId) {\n throw new Error(\"UserId is required. Cannot decrypt user key with device key.\");\n }\n\n if (!deviceKey) {\n // User doesn't have a device key anymore so device is untrusted\n return null;\n }\n\n try {\n // attempt to decrypt encryptedDevicePrivateKey with device key\n const devicePrivateKey = await this.encryptService.decryptToBytes(\n encryptedDevicePrivateKey,\n deviceKey,\n );\n\n // Attempt to decrypt encryptedUserDataKey with devicePrivateKey\n const userKey = await this.cryptoService.rsaDecrypt(\n encryptedUserKey.encryptedString,\n devicePrivateKey,\n );\n\n return new SymmetricCryptoKey(userKey) as UserKey;\n } catch (e) {\n // If either decryption effort fails, we want to remove the device key\n this.logService.error(\"Failed to decrypt using device key. Removing device key.\");\n await this.setDeviceKey(userId, null);\n\n return null;\n }\n }\n\n private getSecureStorageOptions(userId: UserId): StorageOptions {\n return {\n storageLocation: StorageLocation.Disk,\n useSecureStorage: true,\n userId: userId,\n };\n }\n}\n","import { DeviceType } from \"../../../../enums\";\nimport { View } from \"../../../../models/view/view\";\nimport { DeviceResponse } from \"../responses/device.response\";\n\nexport class DeviceView implements View {\n id: string;\n userId: string;\n name: string;\n identifier: string;\n type: DeviceType;\n creationDate: string;\n revisionDate: string;\n\n constructor(deviceResponse: DeviceResponse) {\n Object.assign(this, deviceResponse);\n }\n}\n","import { DeviceType } from \"../../../../enums\";\nimport { BaseResponse } from \"../../../../models/response/base.response\";\n\nexport class DeviceResponse extends BaseResponse {\n id: string;\n userId: string;\n name: string;\n identifier: string;\n type: DeviceType;\n creationDate: string;\n revisionDate: string;\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.userId = this.getResponseProperty(\"UserId\");\n this.name = this.getResponseProperty(\"Name\");\n this.identifier = this.getResponseProperty(\"Identifier\");\n this.type = this.getResponseProperty(\"Type\");\n this.creationDate = this.getResponseProperty(\"CreationDate\");\n this.revisionDate = this.getResponseProperty(\"RevisionDate\");\n }\n}\n","import { Jsonify } from \"type-fest\";\n\nimport { DeviceType } from \"../../../enums\";\nimport { BaseResponse } from \"../../../models/response/base.response\";\nimport { EncString } from \"../../../platform/models/domain/enc-string\";\n\nexport class ProtectedDeviceResponse extends BaseResponse {\n constructor(response: Jsonify) {\n super(response);\n this.id = this.getResponseProperty(\"id\");\n this.name = this.getResponseProperty(\"name\");\n this.identifier = this.getResponseProperty(\"identifier\");\n this.type = this.getResponseProperty(\"type\");\n this.creationDate = new Date(this.getResponseProperty(\"creationDate\"));\n if (response.encryptedUserKey) {\n this.encryptedUserKey = new EncString(this.getResponseProperty(\"encryptedUserKey\"));\n }\n if (response.encryptedPublicKey) {\n this.encryptedPublicKey = new EncString(this.getResponseProperty(\"encryptedPublicKey\"));\n }\n }\n\n id: string;\n name: string;\n type: DeviceType;\n identifier: string;\n creationDate: Date;\n /**\n * Intended to be the users symmetric key that is encrypted in some form, the current way to encrypt this is with\n * the devices public key.\n */\n encryptedUserKey: EncString;\n /**\n * Intended to be the public key that was generated for a device upon trust and encrypted. Currenly encrypted using\n * a users symmetric key so that when trusted and unlocked a user can decrypt the public key for all their devices.\n * This enabled a user to rotate the keys for all of their devices.\n */\n encryptedPublicKey: EncString;\n}\n","export class TrustedDeviceKeysRequest {\n constructor(\n public encryptedUserKey: string,\n public encryptedPublicKey: string,\n public encryptedPrivateKey: string,\n ) {}\n}\n","import { firstValueFrom } from \"rxjs\";\n\nimport { KdfType } from \"../../platform/enums/kdf-type.enum\";\nimport { KDF_CONFIG_DISK, StateProvider, UserKeyDefinition } from \"../../platform/state\";\nimport { UserId } from \"../../types/guid\";\nimport { KdfConfigService as KdfConfigServiceAbstraction } from \"../abstractions/kdf-config.service\";\nimport { Argon2KdfConfig, KdfConfig, PBKDF2KdfConfig } from \"../models/domain/kdf-config\";\n\nexport const KDF_CONFIG = new UserKeyDefinition(KDF_CONFIG_DISK, \"kdfConfig\", {\n deserializer: (kdfConfig: KdfConfig) => {\n if (kdfConfig == null) {\n return null;\n }\n return kdfConfig.kdfType === KdfType.PBKDF2_SHA256\n ? PBKDF2KdfConfig.fromJSON(kdfConfig)\n : Argon2KdfConfig.fromJSON(kdfConfig);\n },\n clearOn: [\"logout\"],\n});\n\nexport class KdfConfigService implements KdfConfigServiceAbstraction {\n constructor(private stateProvider: StateProvider) {}\n async setKdfConfig(userId: UserId, kdfConfig: KdfConfig) {\n if (!userId) {\n throw new Error(\"userId cannot be null\");\n }\n if (kdfConfig === null) {\n throw new Error(\"kdfConfig cannot be null\");\n }\n await this.stateProvider.setUserState(KDF_CONFIG, kdfConfig, userId);\n }\n\n async getKdfConfig(): Promise {\n const userId = await firstValueFrom(this.stateProvider.activeUserId$);\n const state = await firstValueFrom(this.stateProvider.getUser(userId, KDF_CONFIG).state$);\n if (state === null) {\n throw new Error(\"KdfConfig for active user account state is null\");\n }\n return state;\n }\n}\n","export class KeyConnectorUserKeyRequest {\n key: string;\n\n constructor(key: string) {\n this.key = key;\n }\n}\n","import { KeysRequest } from \"../../../models/request/keys.request\";\nimport { KdfType } from \"../../../platform/enums\";\nimport { KdfConfig } from \"../domain/kdf-config\";\n\nexport class SetKeyConnectorKeyRequest {\n key: string;\n keys: KeysRequest;\n kdf: KdfType;\n kdfIterations: number;\n kdfMemory?: number;\n kdfParallelism?: number;\n orgIdentifier: string;\n\n constructor(key: string, kdfConfig: KdfConfig, orgIdentifier: string, keys: KeysRequest) {\n this.key = key;\n this.kdf = kdfConfig.kdfType;\n this.kdfIterations = kdfConfig.iterations;\n if (kdfConfig.kdfType === KdfType.Argon2id) {\n this.kdfMemory = kdfConfig.memory;\n this.kdfParallelism = kdfConfig.parallelism;\n }\n this.orgIdentifier = orgIdentifier;\n this.keys = keys;\n }\n}\n","import { firstValueFrom } from \"rxjs\";\n\nimport { LogoutReason } from \"@bitwarden/auth/common\";\n\nimport { ApiService } from \"../../abstractions/api.service\";\nimport { OrganizationService } from \"../../admin-console/abstractions/organization/organization.service.abstraction\";\nimport { OrganizationUserType } from \"../../admin-console/enums\";\nimport { KeysRequest } from \"../../models/request/keys.request\";\nimport { CryptoService } from \"../../platform/abstractions/crypto.service\";\nimport { KeyGenerationService } from \"../../platform/abstractions/key-generation.service\";\nimport { LogService } from \"../../platform/abstractions/log.service\";\nimport { KdfType } from \"../../platform/enums/kdf-type.enum\";\nimport { Utils } from \"../../platform/misc/utils\";\nimport { SymmetricCryptoKey } from \"../../platform/models/domain/symmetric-crypto-key\";\nimport {\n ActiveUserState,\n KEY_CONNECTOR_DISK,\n StateProvider,\n UserKeyDefinition,\n} from \"../../platform/state\";\nimport { UserId } from \"../../types/guid\";\nimport { MasterKey } from \"../../types/key\";\nimport { AccountService } from \"../abstractions/account.service\";\nimport { KeyConnectorService as KeyConnectorServiceAbstraction } from \"../abstractions/key-connector.service\";\nimport { InternalMasterPasswordServiceAbstraction } from \"../abstractions/master-password.service.abstraction\";\nimport { TokenService } from \"../abstractions/token.service\";\nimport { Argon2KdfConfig, KdfConfig, PBKDF2KdfConfig } from \"../models/domain/kdf-config\";\nimport { KeyConnectorUserKeyRequest } from \"../models/request/key-connector-user-key.request\";\nimport { SetKeyConnectorKeyRequest } from \"../models/request/set-key-connector-key.request\";\nimport { IdentityTokenResponse } from \"../models/response/identity-token.response\";\n\nexport const USES_KEY_CONNECTOR = new UserKeyDefinition(\n KEY_CONNECTOR_DISK,\n \"usesKeyConnector\",\n {\n deserializer: (usesKeyConnector) => usesKeyConnector,\n clearOn: [\"logout\"],\n },\n);\n\nexport const CONVERT_ACCOUNT_TO_KEY_CONNECTOR = new UserKeyDefinition(\n KEY_CONNECTOR_DISK,\n \"convertAccountToKeyConnector\",\n {\n deserializer: (convertAccountToKeyConnector) => convertAccountToKeyConnector,\n clearOn: [\"logout\"],\n },\n);\n\nexport class KeyConnectorService implements KeyConnectorServiceAbstraction {\n private usesKeyConnectorState: ActiveUserState;\n private convertAccountToKeyConnectorState: ActiveUserState;\n constructor(\n private accountService: AccountService,\n private masterPasswordService: InternalMasterPasswordServiceAbstraction,\n private cryptoService: CryptoService,\n private apiService: ApiService,\n private tokenService: TokenService,\n private logService: LogService,\n private organizationService: OrganizationService,\n private keyGenerationService: KeyGenerationService,\n private logoutCallback: (logoutReason: LogoutReason, userId?: string) => Promise,\n private stateProvider: StateProvider,\n ) {\n this.usesKeyConnectorState = this.stateProvider.getActive(USES_KEY_CONNECTOR);\n this.convertAccountToKeyConnectorState = this.stateProvider.getActive(\n CONVERT_ACCOUNT_TO_KEY_CONNECTOR,\n );\n }\n\n async setUsesKeyConnector(usesKeyConnector: boolean) {\n await this.usesKeyConnectorState.update(() => usesKeyConnector);\n }\n\n getUsesKeyConnector(): Promise {\n return firstValueFrom(this.usesKeyConnectorState.state$);\n }\n\n async userNeedsMigration() {\n const loggedInUsingSso = await this.tokenService.getIsExternal();\n const requiredByOrganization = (await this.getManagingOrganization()) != null;\n const userIsNotUsingKeyConnector = !(await this.getUsesKeyConnector());\n\n return loggedInUsingSso && requiredByOrganization && userIsNotUsingKeyConnector;\n }\n\n async migrateUser() {\n const organization = await this.getManagingOrganization();\n const userId = (await firstValueFrom(this.accountService.activeAccount$))?.id;\n const masterKey = await firstValueFrom(this.masterPasswordService.masterKey$(userId));\n const keyConnectorRequest = new KeyConnectorUserKeyRequest(masterKey.encKeyB64);\n\n try {\n await this.apiService.postUserKeyToKeyConnector(\n organization.keyConnectorUrl,\n keyConnectorRequest,\n );\n } catch (e) {\n this.handleKeyConnectorError(e);\n }\n\n await this.apiService.postConvertToKeyConnector();\n }\n\n // TODO: UserKey should be renamed to MasterKey and typed accordingly\n async setMasterKeyFromUrl(url: string, userId: UserId) {\n try {\n const masterKeyResponse = await this.apiService.getMasterKeyFromKeyConnector(url);\n const keyArr = Utils.fromB64ToArray(masterKeyResponse.key);\n const masterKey = new SymmetricCryptoKey(keyArr) as MasterKey;\n await this.masterPasswordService.setMasterKey(masterKey, userId);\n } catch (e) {\n this.handleKeyConnectorError(e);\n }\n }\n\n async getManagingOrganization() {\n const orgs = await this.organizationService.getAll();\n return orgs.find(\n (o) =>\n o.keyConnectorEnabled &&\n o.type !== OrganizationUserType.Admin &&\n o.type !== OrganizationUserType.Owner &&\n !o.isProviderUser,\n );\n }\n\n async convertNewSsoUserToKeyConnector(\n tokenResponse: IdentityTokenResponse,\n orgId: string,\n userId: UserId,\n ) {\n // TODO: Remove after tokenResponse.keyConnectorUrl is deprecated in 2023.10 release (https://bitwarden.atlassian.net/browse/PM-3537)\n const {\n kdf,\n kdfIterations,\n kdfMemory,\n kdfParallelism,\n keyConnectorUrl: legacyKeyConnectorUrl,\n userDecryptionOptions,\n } = tokenResponse;\n const password = await this.keyGenerationService.createKey(512);\n const kdfConfig: KdfConfig =\n kdf === KdfType.PBKDF2_SHA256\n ? new PBKDF2KdfConfig(kdfIterations)\n : new Argon2KdfConfig(kdfIterations, kdfMemory, kdfParallelism);\n\n const masterKey = await this.cryptoService.makeMasterKey(\n password.keyB64,\n await this.tokenService.getEmail(),\n kdfConfig,\n );\n const keyConnectorRequest = new KeyConnectorUserKeyRequest(masterKey.encKeyB64);\n await this.masterPasswordService.setMasterKey(masterKey, userId);\n\n const userKey = await this.cryptoService.makeUserKey(masterKey);\n await this.cryptoService.setUserKey(userKey[0], userId);\n await this.cryptoService.setMasterKeyEncryptedUserKey(userKey[1].encryptedString, userId);\n\n const [pubKey, privKey] = await this.cryptoService.makeKeyPair(userKey[0]);\n\n try {\n const keyConnectorUrl =\n legacyKeyConnectorUrl ?? userDecryptionOptions?.keyConnectorOption?.keyConnectorUrl;\n await this.apiService.postUserKeyToKeyConnector(keyConnectorUrl, keyConnectorRequest);\n } catch (e) {\n this.handleKeyConnectorError(e);\n }\n\n const keys = new KeysRequest(pubKey, privKey.encryptedString);\n const setPasswordRequest = new SetKeyConnectorKeyRequest(\n userKey[1].encryptedString,\n kdfConfig,\n orgId,\n keys,\n );\n await this.apiService.postSetKeyConnectorKey(setPasswordRequest);\n }\n\n async setConvertAccountRequired(status: boolean) {\n await this.convertAccountToKeyConnectorState.update(() => status);\n }\n\n getConvertAccountRequired(): Promise {\n return firstValueFrom(this.convertAccountToKeyConnectorState.state$);\n }\n\n async removeConvertAccountRequired() {\n await this.setConvertAccountRequired(null);\n }\n\n private handleKeyConnectorError(e: any) {\n this.logService.error(e);\n if (this.logoutCallback != null) {\n // FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.logoutCallback(\"keyConnectorError\");\n }\n throw new Error(\"Key Connector error\");\n }\n}\n","import { firstValueFrom, map, Observable } from \"rxjs\";\n\nimport { EncryptService } from \"../../../platform/abstractions/encrypt.service\";\nimport { KeyGenerationService } from \"../../../platform/abstractions/key-generation.service\";\nimport { StateService } from \"../../../platform/abstractions/state.service\";\nimport { EncryptionType } from \"../../../platform/enums\";\nimport { EncryptedString, EncString } from \"../../../platform/models/domain/enc-string\";\nimport { SymmetricCryptoKey } from \"../../../platform/models/domain/symmetric-crypto-key\";\nimport {\n MASTER_PASSWORD_DISK,\n MASTER_PASSWORD_MEMORY,\n StateProvider,\n UserKeyDefinition,\n} from \"../../../platform/state\";\nimport { UserId } from \"../../../types/guid\";\nimport { MasterKey, UserKey } from \"../../../types/key\";\nimport { InternalMasterPasswordServiceAbstraction } from \"../../abstractions/master-password.service.abstraction\";\nimport { ForceSetPasswordReason } from \"../../models/domain/force-set-password-reason\";\n\n/** Memory since master key shouldn't be available on lock */\nconst MASTER_KEY = new UserKeyDefinition(MASTER_PASSWORD_MEMORY, \"masterKey\", {\n deserializer: (masterKey) => SymmetricCryptoKey.fromJSON(masterKey) as MasterKey,\n clearOn: [\"lock\", \"logout\"],\n});\n\n/** Disk since master key hash is used for unlock */\nconst MASTER_KEY_HASH = new UserKeyDefinition(MASTER_PASSWORD_DISK, \"masterKeyHash\", {\n deserializer: (masterKeyHash) => masterKeyHash,\n clearOn: [\"logout\"],\n});\n\n/** Disk to persist through lock */\nconst MASTER_KEY_ENCRYPTED_USER_KEY = new UserKeyDefinition(\n MASTER_PASSWORD_DISK,\n \"masterKeyEncryptedUserKey\",\n {\n deserializer: (key) => key,\n clearOn: [\"logout\"],\n },\n);\n\n/** Disk to persist through lock and account switches */\nconst FORCE_SET_PASSWORD_REASON = new UserKeyDefinition(\n MASTER_PASSWORD_DISK,\n \"forceSetPasswordReason\",\n {\n deserializer: (reason) => reason,\n clearOn: [\"logout\"],\n },\n);\n\nexport class MasterPasswordService implements InternalMasterPasswordServiceAbstraction {\n constructor(\n private stateProvider: StateProvider,\n private stateService: StateService,\n private keyGenerationService: KeyGenerationService,\n private encryptService: EncryptService,\n ) {}\n\n masterKey$(userId: UserId): Observable {\n if (userId == null) {\n throw new Error(\"User ID is required.\");\n }\n return this.stateProvider.getUser(userId, MASTER_KEY).state$;\n }\n\n masterKeyHash$(userId: UserId): Observable {\n if (userId == null) {\n throw new Error(\"User ID is required.\");\n }\n return this.stateProvider.getUser(userId, MASTER_KEY_HASH).state$;\n }\n\n forceSetPasswordReason$(userId: UserId): Observable {\n if (userId == null) {\n throw new Error(\"User ID is required.\");\n }\n return this.stateProvider\n .getUser(userId, FORCE_SET_PASSWORD_REASON)\n .state$.pipe(map((reason) => reason ?? ForceSetPasswordReason.None));\n }\n\n // TODO: Remove this method and decrypt directly in the service instead\n async getMasterKeyEncryptedUserKey(userId: UserId): Promise {\n if (userId == null) {\n throw new Error(\"User ID is required.\");\n }\n const key = await firstValueFrom(\n this.stateProvider.getUser(userId, MASTER_KEY_ENCRYPTED_USER_KEY).state$,\n );\n return EncString.fromJSON(key);\n }\n\n async setMasterKey(masterKey: MasterKey, userId: UserId): Promise {\n if (masterKey == null) {\n throw new Error(\"Master key is required.\");\n }\n if (userId == null) {\n throw new Error(\"User ID is required.\");\n }\n await this.stateProvider.getUser(userId, MASTER_KEY).update((_) => masterKey);\n }\n\n async clearMasterKey(userId: UserId): Promise {\n if (userId == null) {\n throw new Error(\"User ID is required.\");\n }\n await this.stateProvider.getUser(userId, MASTER_KEY).update((_) => null);\n }\n\n async setMasterKeyHash(masterKeyHash: string, userId: UserId): Promise {\n if (masterKeyHash == null) {\n throw new Error(\"Master key hash is required.\");\n }\n if (userId == null) {\n throw new Error(\"User ID is required.\");\n }\n await this.stateProvider.getUser(userId, MASTER_KEY_HASH).update((_) => masterKeyHash);\n }\n\n async clearMasterKeyHash(userId: UserId): Promise {\n if (userId == null) {\n throw new Error(\"User ID is required.\");\n }\n await this.stateProvider.getUser(userId, MASTER_KEY_HASH).update((_) => null);\n }\n\n async setMasterKeyEncryptedUserKey(encryptedKey: EncString, userId: UserId): Promise {\n if (encryptedKey == null) {\n throw new Error(\"Encrypted Key is required.\");\n }\n if (userId == null) {\n throw new Error(\"User ID is required.\");\n }\n await this.stateProvider\n .getUser(userId, MASTER_KEY_ENCRYPTED_USER_KEY)\n .update((_) => encryptedKey.toJSON() as EncryptedString);\n }\n\n async setForceSetPasswordReason(reason: ForceSetPasswordReason, userId: UserId): Promise {\n if (reason == null) {\n throw new Error(\"Reason is required.\");\n }\n if (userId == null) {\n throw new Error(\"User ID is required.\");\n }\n await this.stateProvider.getUser(userId, FORCE_SET_PASSWORD_REASON).update((_) => reason);\n }\n\n async decryptUserKeyWithMasterKey(\n masterKey: MasterKey,\n userKey?: EncString,\n userId?: UserId,\n ): Promise {\n userId ??= await firstValueFrom(this.stateProvider.activeUserId$);\n userKey ??= await this.getMasterKeyEncryptedUserKey(userId);\n masterKey ??= await firstValueFrom(this.masterKey$(userId));\n\n if (masterKey == null) {\n throw new Error(\"No master key found.\");\n }\n\n // Try one more way to get the user key if it still wasn't found.\n if (userKey == null) {\n const deprecatedKey = await this.stateService.getEncryptedCryptoSymmetricKey({\n userId: userId,\n });\n\n if (deprecatedKey == null) {\n throw new Error(\"No encrypted user key found.\");\n }\n\n userKey = new EncString(deprecatedKey);\n }\n\n let decUserKey: Uint8Array;\n\n if (userKey.encryptionType === EncryptionType.AesCbc256_B64) {\n decUserKey = await this.encryptService.decryptToBytes(userKey, masterKey);\n } else if (userKey.encryptionType === EncryptionType.AesCbc256_HmacSha256_B64) {\n const newKey = await this.keyGenerationService.stretchKey(masterKey);\n decUserKey = await this.encryptService.decryptToBytes(userKey, newKey);\n } else {\n throw new Error(\"Unsupported encryption type.\");\n }\n\n if (decUserKey == null) {\n return null;\n }\n\n return new SymmetricCryptoKey(decUserKey) as UserKey;\n }\n}\n","import { firstValueFrom } from \"rxjs\";\n\nimport {\n ActiveUserState,\n GlobalState,\n KeyDefinition,\n SSO_DISK,\n StateProvider,\n UserKeyDefinition,\n} from \"../../platform/state\";\nimport { SsoLoginServiceAbstraction } from \"../abstractions/sso-login.service.abstraction\";\n\n/**\n * Uses disk storage so that the code verifier can be persisted across sso redirects.\n */\nconst CODE_VERIFIER = new KeyDefinition(SSO_DISK, \"ssoCodeVerifier\", {\n deserializer: (codeVerifier) => codeVerifier,\n});\n\n/**\n * Uses disk storage so that the sso state can be persisted across sso redirects.\n */\nconst SSO_STATE = new KeyDefinition(SSO_DISK, \"ssoState\", {\n deserializer: (state) => state,\n});\n\n/**\n * Uses disk storage so that the organization sso identifier can be persisted across sso redirects.\n */\nconst USER_ORGANIZATION_SSO_IDENTIFIER = new UserKeyDefinition(\n SSO_DISK,\n \"organizationSsoIdentifier\",\n {\n deserializer: (organizationIdentifier) => organizationIdentifier,\n clearOn: [\"logout\"], // Used for login, so not needed past logout\n },\n);\n\n/**\n * Uses disk storage so that the organization sso identifier can be persisted across sso redirects.\n */\nconst GLOBAL_ORGANIZATION_SSO_IDENTIFIER = new KeyDefinition(\n SSO_DISK,\n \"organizationSsoIdentifier\",\n {\n deserializer: (organizationIdentifier) => organizationIdentifier,\n },\n);\n\n/**\n * Uses disk storage so that the user's email can be persisted across sso redirects.\n */\nconst SSO_EMAIL = new KeyDefinition(SSO_DISK, \"ssoEmail\", {\n deserializer: (state) => state,\n});\n\nexport class SsoLoginService implements SsoLoginServiceAbstraction {\n private codeVerifierState: GlobalState;\n private ssoState: GlobalState;\n private orgSsoIdentifierState: GlobalState;\n private ssoEmailState: GlobalState;\n private activeUserOrgSsoIdentifierState: ActiveUserState;\n\n constructor(private stateProvider: StateProvider) {\n this.codeVerifierState = this.stateProvider.getGlobal(CODE_VERIFIER);\n this.ssoState = this.stateProvider.getGlobal(SSO_STATE);\n this.orgSsoIdentifierState = this.stateProvider.getGlobal(GLOBAL_ORGANIZATION_SSO_IDENTIFIER);\n this.ssoEmailState = this.stateProvider.getGlobal(SSO_EMAIL);\n this.activeUserOrgSsoIdentifierState = this.stateProvider.getActive(\n USER_ORGANIZATION_SSO_IDENTIFIER,\n );\n }\n\n getCodeVerifier(): Promise {\n return firstValueFrom(this.codeVerifierState.state$);\n }\n\n async setCodeVerifier(codeVerifier: string): Promise {\n await this.codeVerifierState.update((_) => codeVerifier);\n }\n\n getSsoState(): Promise {\n return firstValueFrom(this.ssoState.state$);\n }\n\n async setSsoState(ssoState: string): Promise {\n await this.ssoState.update((_) => ssoState);\n }\n\n getOrganizationSsoIdentifier(): Promise {\n return firstValueFrom(this.orgSsoIdentifierState.state$);\n }\n\n async setOrganizationSsoIdentifier(organizationIdentifier: string): Promise {\n await this.orgSsoIdentifierState.update((_) => organizationIdentifier);\n }\n\n getSsoEmail(): Promise {\n return firstValueFrom(this.ssoEmailState.state$);\n }\n\n async setSsoEmail(email: string): Promise {\n await this.ssoEmailState.update((_) => email);\n }\n\n getActiveUserOrganizationSsoIdentifier(): Promise {\n return firstValueFrom(this.activeUserOrgSsoIdentifierState.state$);\n }\n\n async setActiveUserOrganizationSsoIdentifier(organizationIdentifier: string): Promise {\n await this.activeUserOrgSsoIdentifierState.update((_) => organizationIdentifier);\n }\n}\n","import {\n KeyDefinition,\n TOKEN_DISK,\n TOKEN_DISK_LOCAL,\n TOKEN_MEMORY,\n UserKeyDefinition,\n} from \"../../platform/state\";\n\n// Note: all tokens / API key information must be cleared on logout.\n// because we are using secure storage, we must manually call to clean up our tokens.\n// See stateService.deAuthenticateAccount for where we call clearTokens(...)\n\nexport const ACCESS_TOKEN_DISK = new UserKeyDefinition(TOKEN_DISK, \"accessToken\", {\n deserializer: (accessToken) => accessToken,\n clearOn: [], // Manually handled\n});\n\nexport const ACCESS_TOKEN_MEMORY = new UserKeyDefinition(TOKEN_MEMORY, \"accessToken\", {\n deserializer: (accessToken) => accessToken,\n clearOn: [], // Manually handled\n});\n\nexport const REFRESH_TOKEN_DISK = new UserKeyDefinition(TOKEN_DISK, \"refreshToken\", {\n deserializer: (refreshToken) => refreshToken,\n clearOn: [], // Manually handled\n});\n\nexport const REFRESH_TOKEN_MEMORY = new UserKeyDefinition(TOKEN_MEMORY, \"refreshToken\", {\n deserializer: (refreshToken) => refreshToken,\n clearOn: [], // Manually handled\n});\n\nexport const EMAIL_TWO_FACTOR_TOKEN_RECORD_DISK_LOCAL = KeyDefinition.record(\n TOKEN_DISK_LOCAL,\n \"emailTwoFactorTokenRecord\",\n {\n deserializer: (emailTwoFactorTokenRecord) => emailTwoFactorTokenRecord,\n },\n);\n\nexport const API_KEY_CLIENT_ID_DISK = new UserKeyDefinition(TOKEN_DISK, \"apiKeyClientId\", {\n deserializer: (apiKeyClientId) => apiKeyClientId,\n clearOn: [], // Manually handled\n});\n\nexport const API_KEY_CLIENT_ID_MEMORY = new UserKeyDefinition(\n TOKEN_MEMORY,\n \"apiKeyClientId\",\n {\n deserializer: (apiKeyClientId) => apiKeyClientId,\n clearOn: [], // Manually handled\n },\n);\n\nexport const API_KEY_CLIENT_SECRET_DISK = new UserKeyDefinition(\n TOKEN_DISK,\n \"apiKeyClientSecret\",\n {\n deserializer: (apiKeyClientSecret) => apiKeyClientSecret,\n clearOn: [], // Manually handled\n },\n);\n\nexport const API_KEY_CLIENT_SECRET_MEMORY = new UserKeyDefinition(\n TOKEN_MEMORY,\n \"apiKeyClientSecret\",\n {\n deserializer: (apiKeyClientSecret) => apiKeyClientSecret,\n clearOn: [], // Manually handled\n },\n);\n\nexport const SECURITY_STAMP_MEMORY = new UserKeyDefinition(TOKEN_MEMORY, \"securityStamp\", {\n deserializer: (securityStamp) => securityStamp,\n clearOn: [\"logout\"],\n});\n","import { Observable, combineLatest, firstValueFrom, map } from \"rxjs\";\nimport { Opaque } from \"type-fest\";\n\nimport { LogoutReason, decodeJwtTokenToJson } from \"@bitwarden/auth/common\";\n\nimport { VaultTimeoutAction } from \"../../enums/vault-timeout-action.enum\";\nimport { EncryptService } from \"../../platform/abstractions/encrypt.service\";\nimport { KeyGenerationService } from \"../../platform/abstractions/key-generation.service\";\nimport { LogService } from \"../../platform/abstractions/log.service\";\nimport { AbstractStorageService } from \"../../platform/abstractions/storage.service\";\nimport { StorageLocation } from \"../../platform/enums\";\nimport { EncString, EncryptedString } from \"../../platform/models/domain/enc-string\";\nimport { StorageOptions } from \"../../platform/models/domain/storage-options\";\nimport { SymmetricCryptoKey } from \"../../platform/models/domain/symmetric-crypto-key\";\nimport {\n GlobalState,\n GlobalStateProvider,\n SingleUserStateProvider,\n UserKeyDefinition,\n} from \"../../platform/state\";\nimport { UserId } from \"../../types/guid\";\nimport { VaultTimeout, VaultTimeoutStringType } from \"../../types/vault-timeout.type\";\nimport { TokenService as TokenServiceAbstraction } from \"../abstractions/token.service\";\n\nimport { ACCOUNT_ACTIVE_ACCOUNT_ID } from \"./account.service\";\nimport {\n ACCESS_TOKEN_DISK,\n ACCESS_TOKEN_MEMORY,\n API_KEY_CLIENT_ID_DISK,\n API_KEY_CLIENT_ID_MEMORY,\n API_KEY_CLIENT_SECRET_DISK,\n API_KEY_CLIENT_SECRET_MEMORY,\n EMAIL_TWO_FACTOR_TOKEN_RECORD_DISK_LOCAL,\n REFRESH_TOKEN_DISK,\n REFRESH_TOKEN_MEMORY,\n SECURITY_STAMP_MEMORY,\n} from \"./token.state\";\n\nexport enum TokenStorageLocation {\n Disk = \"disk\",\n SecureStorage = \"secureStorage\",\n Memory = \"memory\",\n}\n\n/**\n * Type representing the structure of a standard Bitwarden decoded access token.\n * src: https://datatracker.ietf.org/doc/html/rfc7519#section-4.1\n * Note: all claims are technically optional so we must verify their existence before using them.\n * Note 2: NumericDate is a number representing a date in seconds since the Unix epoch.\n */\nexport type DecodedAccessToken = {\n /** Issuer - the issuer of the token, typically the URL of the authentication server */\n iss?: string;\n\n /** Not Before - a timestamp defining when the token starts being valid */\n nbf?: number;\n\n /** Issued At - a timestamp of when the token was issued */\n iat?: number;\n\n /** Expiration Time - a NumericDate timestamp of when the token will expire */\n exp?: number;\n\n /** Scope - the scope of the access request, such as the permissions the token grants */\n scope?: string[];\n\n /** Authentication Method Reference - the methods used in the authentication */\n amr?: string[];\n\n /** Client ID - the identifier for the client that requested the token */\n client_id?: string;\n\n /** Subject - the unique identifier for the user */\n sub?: string;\n\n /** Authentication Time - a timestamp of when the user authentication occurred */\n auth_time?: number;\n\n /** Identity Provider - the system or service that authenticated the user */\n idp?: string;\n\n /** Premium - a boolean flag indicating whether the account is premium */\n premium?: boolean;\n\n /** Email - the user's email address */\n email?: string;\n\n /** Email Verified - a boolean flag indicating whether the user's email address has been verified */\n email_verified?: boolean;\n\n /**\n * Security Stamp - a unique identifier which invalidates the access token if it changes in the db\n * (typically after critical account changes like a password change)\n */\n sstamp?: string;\n\n /** Name - the name of the user */\n name?: string;\n\n /** Organization Owners - a list of organization owner identifiers */\n orgowner?: string[];\n\n /** Device - the identifier of the device used */\n device?: string;\n\n /** JWT ID - a unique identifier for the JWT */\n jti?: string;\n};\n\n/**\n * A symmetric key for encrypting the access token before the token is stored on disk.\n * This key should be stored in secure storage.\n * */\nexport type AccessTokenKey = Opaque;\n\nexport class TokenService implements TokenServiceAbstraction {\n private readonly accessTokenKeySecureStorageKey: string = \"_accessTokenKey\";\n\n private readonly refreshTokenSecureStorageKey: string = \"_refreshToken\";\n\n private emailTwoFactorTokenRecordGlobalState: GlobalState>;\n\n private activeUserIdGlobalState: GlobalState;\n\n constructor(\n // Note: we cannot use ActiveStateProvider because if we ever want to inject\n // this service into the AccountService, we will make a circular dependency\n private singleUserStateProvider: SingleUserStateProvider,\n private globalStateProvider: GlobalStateProvider,\n private readonly platformSupportsSecureStorage: boolean,\n private secureStorageService: AbstractStorageService,\n private keyGenerationService: KeyGenerationService,\n private encryptService: EncryptService,\n private logService: LogService,\n private logoutCallback: (logoutReason: LogoutReason, userId?: string) => Promise,\n ) {\n this.initializeState();\n }\n\n hasAccessToken$(userId: UserId): Observable {\n // FIXME Once once vault timeout action is observable, we can use it to determine storage location\n // and avoid the need to check both disk and memory.\n return combineLatest([\n this.singleUserStateProvider.get(userId, ACCESS_TOKEN_DISK).state$,\n this.singleUserStateProvider.get(userId, ACCESS_TOKEN_MEMORY).state$,\n ]).pipe(map(([disk, memory]) => Boolean(disk || memory)));\n }\n\n private initializeState(): void {\n this.emailTwoFactorTokenRecordGlobalState = this.globalStateProvider.get(\n EMAIL_TWO_FACTOR_TOKEN_RECORD_DISK_LOCAL,\n );\n\n this.activeUserIdGlobalState = this.globalStateProvider.get(ACCOUNT_ACTIVE_ACCOUNT_ID);\n }\n\n async setTokens(\n accessToken: string,\n vaultTimeoutAction: VaultTimeoutAction,\n vaultTimeout: VaultTimeout,\n refreshToken?: string,\n clientIdClientSecret?: [string, string],\n ): Promise {\n if (!accessToken) {\n throw new Error(\"Access token is required.\");\n }\n\n // Can't check for falsey b/c 0 is a valid value\n if (vaultTimeout == null) {\n throw new Error(\"Vault Timeout is required.\");\n }\n\n if (vaultTimeoutAction == null) {\n throw new Error(\"Vault Timeout Action is required.\");\n }\n\n // get user id the access token\n const userId: UserId = await this.getUserIdFromAccessToken(accessToken);\n\n if (!userId) {\n throw new Error(\"User id not found. Cannot set tokens.\");\n }\n\n await this._setAccessToken(accessToken, vaultTimeoutAction, vaultTimeout, userId);\n\n if (refreshToken) {\n await this.setRefreshToken(refreshToken, vaultTimeoutAction, vaultTimeout, userId);\n }\n\n if (clientIdClientSecret != null) {\n await this.setClientId(clientIdClientSecret[0], vaultTimeoutAction, vaultTimeout, userId);\n await this.setClientSecret(clientIdClientSecret[1], vaultTimeoutAction, vaultTimeout, userId);\n }\n }\n\n private async getAccessTokenKey(userId: UserId): Promise {\n const accessTokenKeyB64 = await this.secureStorageService.get<\n ReturnType\n >(`${userId}${this.accessTokenKeySecureStorageKey}`, this.getSecureStorageOptions(userId));\n\n if (!accessTokenKeyB64) {\n return null;\n }\n\n const accessTokenKey = SymmetricCryptoKey.fromJSON(accessTokenKeyB64) as AccessTokenKey;\n return accessTokenKey;\n }\n\n private async createAndSaveAccessTokenKey(userId: UserId): Promise {\n const newAccessTokenKey = (await this.keyGenerationService.createKey(512)) as AccessTokenKey;\n\n await this.secureStorageService.save(\n `${userId}${this.accessTokenKeySecureStorageKey}`,\n newAccessTokenKey,\n this.getSecureStorageOptions(userId),\n );\n\n // We are having intermittent issues with access token keys not saving into secure storage on windows 10/11.\n // So, let's add a check to ensure we can read the value after writing it.\n const accessTokenKey = await this.getAccessTokenKey(userId);\n\n if (!accessTokenKey) {\n throw new Error(\"New Access token key unable to be retrieved from secure storage.\");\n }\n\n return newAccessTokenKey;\n }\n\n private async clearAccessTokenKey(userId: UserId): Promise {\n await this.secureStorageService.remove(\n `${userId}${this.accessTokenKeySecureStorageKey}`,\n this.getSecureStorageOptions(userId),\n );\n }\n\n private async getOrCreateAccessTokenKey(userId: UserId): Promise {\n if (!this.platformSupportsSecureStorage) {\n throw new Error(\"Platform does not support secure storage. Cannot obtain access token key.\");\n }\n\n if (!userId) {\n throw new Error(\"User id not found. Cannot obtain access token key.\");\n }\n\n // First see if we have an accessTokenKey in secure storage and return it if we do\n // Note: retrieving/saving data from/to secure storage on linux will throw if the\n // distro doesn't have a secure storage provider\n let accessTokenKey: AccessTokenKey = await this.getAccessTokenKey(userId);\n\n if (!accessTokenKey) {\n // Otherwise, create a new one and save it to secure storage, then return it\n accessTokenKey = await this.createAndSaveAccessTokenKey(userId);\n }\n\n return accessTokenKey;\n }\n\n private async encryptAccessToken(accessToken: string, userId: UserId): Promise {\n const accessTokenKey = await this.getOrCreateAccessTokenKey(userId);\n\n return await this.encryptService.encrypt(accessToken, accessTokenKey);\n }\n\n private async decryptAccessToken(\n accessTokenKey: AccessTokenKey,\n encryptedAccessToken: EncString,\n ): Promise {\n if (!accessTokenKey) {\n throw new Error(\n \"decryptAccessToken: Access token key required. Cannot decrypt access token.\",\n );\n }\n\n const decryptedAccessToken = await this.encryptService.decryptToUtf8(\n encryptedAccessToken,\n accessTokenKey,\n );\n\n return decryptedAccessToken;\n }\n\n /**\n * Internal helper for set access token which always requires user id.\n * This is useful because setTokens always will have a user id from the access token whereas\n * the public setAccessToken method does not.\n */\n private async _setAccessToken(\n accessToken: string,\n vaultTimeoutAction: VaultTimeoutAction,\n vaultTimeout: VaultTimeout,\n userId: UserId,\n ): Promise {\n const storageLocation = await this.determineStorageLocation(\n vaultTimeoutAction,\n vaultTimeout,\n true,\n );\n\n switch (storageLocation) {\n case TokenStorageLocation.SecureStorage: {\n // Secure storage implementations have variable length limitations (Windows), so we cannot\n // store the access token directly. Instead, we encrypt with accessTokenKey and store that\n // in secure storage.\n\n try {\n const encryptedAccessToken: EncString = await this.encryptAccessToken(\n accessToken,\n userId,\n );\n\n // Save the encrypted access token to disk\n await this.singleUserStateProvider\n .get(userId, ACCESS_TOKEN_DISK)\n .update((_) => encryptedAccessToken.encryptedString);\n\n // TODO: PM-6408\n // 2024-02-20: Remove access token from memory so that we migrate to encrypt the access token over time.\n // Remove this call to remove the access token from memory after 3 months.\n await this.singleUserStateProvider.get(userId, ACCESS_TOKEN_MEMORY).update((_) => null);\n } catch (error) {\n this.logService.error(\n `SetAccessToken: storing encrypted access token in secure storage failed. Falling back to disk storage.`,\n error,\n );\n\n // Fall back to disk storage for unecrypted access token\n await this.singleUserStateProvider\n .get(userId, ACCESS_TOKEN_DISK)\n .update((_) => accessToken);\n }\n\n return;\n }\n case TokenStorageLocation.Disk:\n // Access token stored on disk unencrypted as platform does not support secure storage\n await this.singleUserStateProvider\n .get(userId, ACCESS_TOKEN_DISK)\n .update((_) => accessToken);\n return;\n case TokenStorageLocation.Memory:\n // Access token stored in memory due to vault timeout settings\n await this.singleUserStateProvider\n .get(userId, ACCESS_TOKEN_MEMORY)\n .update((_) => accessToken);\n return;\n }\n }\n\n async setAccessToken(\n accessToken: string,\n vaultTimeoutAction: VaultTimeoutAction,\n vaultTimeout: VaultTimeout,\n ): Promise {\n if (!accessToken) {\n throw new Error(\"Access token is required.\");\n }\n const userId: UserId = await this.getUserIdFromAccessToken(accessToken);\n\n // If we don't have a user id, we can't save the value\n if (!userId) {\n throw new Error(\"User id not found. Cannot save access token.\");\n }\n\n // Can't check for falsey b/c 0 is a valid value\n if (vaultTimeout == null) {\n throw new Error(\"Vault Timeout is required.\");\n }\n\n if (vaultTimeoutAction == null) {\n throw new Error(\"Vault Timeout Action is required.\");\n }\n\n await this._setAccessToken(accessToken, vaultTimeoutAction, vaultTimeout, userId);\n }\n\n async clearAccessToken(userId?: UserId): Promise {\n userId ??= await firstValueFrom(this.activeUserIdGlobalState.state$);\n\n // If we don't have a user id, we can't clear the value\n if (!userId) {\n throw new Error(\"User id not found. Cannot clear access token.\");\n }\n\n // TODO: re-eval this implementation once we get shared key definitions for vault timeout and vault timeout action data.\n // we can't determine storage location w/out vaultTimeoutAction and vaultTimeout\n // but we can simply clear all locations to avoid the need to require those parameters.\n\n if (this.platformSupportsSecureStorage) {\n // Always clear the access token key when clearing the access token\n // The next set of the access token will create a new access token key\n await this.clearAccessTokenKey(userId);\n }\n\n // Platform doesn't support secure storage, so use state provider implementation\n await this.singleUserStateProvider.get(userId, ACCESS_TOKEN_DISK).update((_) => null);\n await this.singleUserStateProvider.get(userId, ACCESS_TOKEN_MEMORY).update((_) => null);\n }\n\n async getAccessToken(userId?: UserId): Promise {\n userId ??= await firstValueFrom(this.activeUserIdGlobalState.state$);\n\n if (!userId) {\n return null;\n }\n\n // Try to get the access token from memory\n const accessTokenMemory = await this.getStateValueByUserIdAndKeyDef(\n userId,\n ACCESS_TOKEN_MEMORY,\n );\n if (accessTokenMemory != null) {\n return accessTokenMemory;\n }\n\n // If memory is null, read from disk\n const accessTokenDisk = await this.getStateValueByUserIdAndKeyDef(userId, ACCESS_TOKEN_DISK);\n if (!accessTokenDisk) {\n return null;\n }\n\n if (this.platformSupportsSecureStorage) {\n let accessTokenKey: AccessTokenKey;\n try {\n accessTokenKey = await this.getAccessTokenKey(userId);\n } catch (error) {\n if (EncString.isSerializedEncString(accessTokenDisk)) {\n this.logService.error(\n \"Access token key retrieval failed. Unable to decrypt encrypted access token. Logging user out.\",\n error,\n );\n await this.logoutCallback(\"accessTokenUnableToBeDecrypted\", userId);\n return null;\n }\n\n // If the access token key is not found, but the access token is unencrypted then\n // this indicates that this is the pre-migration state where the access token\n // was stored unencrypted on disk. We can return the access token as is.\n // Note: this is likely to only be hit for linux users who don't\n // have a secure storage provider configured.\n return accessTokenDisk;\n }\n\n if (!accessTokenKey) {\n if (EncString.isSerializedEncString(accessTokenDisk)) {\n // The access token is encrypted but we don't have the key to decrypt it for\n // whatever reason so we have to log the user out.\n this.logService.error(\n \"Access token key not found to decrypt encrypted access token. Logging user out.\",\n );\n\n await this.logoutCallback(\"accessTokenUnableToBeDecrypted\", userId);\n\n return null;\n }\n\n // We know this is an unencrypted access token\n return accessTokenDisk;\n }\n\n try {\n const encryptedAccessTokenEncString = new EncString(accessTokenDisk as EncryptedString);\n\n const decryptedAccessToken = await this.decryptAccessToken(\n accessTokenKey,\n encryptedAccessTokenEncString,\n );\n return decryptedAccessToken;\n } catch (error) {\n // If an error occurs during decryption, logout and then return null.\n // We don't try to recover here since we'd like to know\n // if access token and key are getting out of sync.\n this.logService.error(`Failed to decrypt access token`, error);\n\n await this.logoutCallback(\"accessTokenUnableToBeDecrypted\", userId);\n\n return null;\n }\n }\n return accessTokenDisk;\n }\n\n // Private because we only ever set the refresh token when also setting the access token\n // and we need the user id from the access token to save to secure storage\n private async setRefreshToken(\n refreshToken: string,\n vaultTimeoutAction: VaultTimeoutAction,\n vaultTimeout: VaultTimeout,\n userId: UserId,\n ): Promise {\n // If we don't have a user id, we can't save the value\n if (!userId) {\n throw new Error(\"User id not found. Cannot save refresh token.\");\n }\n\n // Can't check for falsey b/c 0 is a valid value\n if (vaultTimeout == null) {\n throw new Error(\"Vault Timeout is required.\");\n }\n\n if (vaultTimeoutAction == null) {\n throw new Error(\"Vault Timeout Action is required.\");\n }\n\n const storageLocation = await this.determineStorageLocation(\n vaultTimeoutAction,\n vaultTimeout,\n true,\n );\n\n switch (storageLocation) {\n case TokenStorageLocation.SecureStorage: {\n try {\n await this.saveStringToSecureStorage(\n userId,\n this.refreshTokenSecureStorageKey,\n refreshToken,\n );\n\n // Check if the refresh token was able to be saved to secure storage by reading it\n // immediately after setting it. This is needed due to intermittent silent failures on Windows 10/11.\n const refreshTokenSecureStorage = await this.getStringFromSecureStorage(\n userId,\n this.refreshTokenSecureStorageKey,\n );\n\n // Only throw if the refresh token was not saved to secure storage\n // If we only check for a nullish value out of secure storage without considering the input value,\n // then we would end up falling back to disk storage if the input value was null.\n if (refreshToken !== null && !refreshTokenSecureStorage) {\n throw new Error(\"Refresh token failed to save to secure storage.\");\n }\n\n // TODO: PM-6408\n // 2024-02-20: Remove refresh token from memory and disk so that we migrate to secure storage over time.\n // Remove these 2 calls to remove the refresh token from memory and disk after 3 months.\n await this.singleUserStateProvider.get(userId, REFRESH_TOKEN_DISK).update((_) => null);\n await this.singleUserStateProvider.get(userId, REFRESH_TOKEN_MEMORY).update((_) => null);\n } catch (error) {\n // This case could be hit for both Linux users who don't have secure storage configured\n // or for Windows users who have intermittent issues with secure storage.\n this.logService.error(\n `SetRefreshToken: storing refresh token in secure storage failed. Falling back to disk storage.`,\n error,\n );\n\n // Fall back to disk storage for refresh token\n await this.singleUserStateProvider\n .get(userId, REFRESH_TOKEN_DISK)\n .update((_) => refreshToken);\n }\n\n return;\n }\n case TokenStorageLocation.Disk:\n await this.singleUserStateProvider\n .get(userId, REFRESH_TOKEN_DISK)\n .update((_) => refreshToken);\n return;\n\n case TokenStorageLocation.Memory:\n await this.singleUserStateProvider\n .get(userId, REFRESH_TOKEN_MEMORY)\n .update((_) => refreshToken);\n return;\n }\n }\n\n async getRefreshToken(userId?: UserId): Promise {\n userId ??= await firstValueFrom(this.activeUserIdGlobalState.state$);\n\n if (!userId) {\n return null;\n }\n\n // pre-secure storage migration:\n // Always read memory first b/c faster\n const refreshTokenMemory = await this.getStateValueByUserIdAndKeyDef(\n userId,\n REFRESH_TOKEN_MEMORY,\n );\n\n if (refreshTokenMemory != null) {\n return refreshTokenMemory;\n }\n\n // if memory is null, read from disk and then secure storage\n const refreshTokenDisk = await this.getStateValueByUserIdAndKeyDef(userId, REFRESH_TOKEN_DISK);\n\n if (refreshTokenDisk != null) {\n // This handles the scenario pre-secure storage migration where the refresh token was stored on disk.\n return refreshTokenDisk;\n }\n\n if (this.platformSupportsSecureStorage) {\n try {\n const refreshTokenSecureStorage = await this.getStringFromSecureStorage(\n userId,\n this.refreshTokenSecureStorageKey,\n );\n\n if (refreshTokenSecureStorage != null) {\n return refreshTokenSecureStorage;\n }\n\n this.logService.error(\n \"Refresh token not found in secure storage. Access token will fail to refresh upon expiration or manual refresh.\",\n );\n } catch (error) {\n // This case will be hit for Linux users who don't have secure storage configured.\n\n this.logService.error(`Failed to retrieve refresh token from secure storage`, error);\n\n await this.logoutCallback(\"refreshTokenSecureStorageRetrievalFailure\", userId);\n }\n }\n\n return null;\n }\n\n private async clearRefreshToken(userId: UserId): Promise {\n // If we don't have a user id, we can't clear the value\n if (!userId) {\n throw new Error(\"User id not found. Cannot clear refresh token.\");\n }\n\n // TODO: re-eval this once we get shared key definitions for vault timeout and vault timeout action data.\n // we can't determine storage location w/out vaultTimeoutAction and vaultTimeout\n // but we can simply clear all locations to avoid the need to require those parameters\n\n if (this.platformSupportsSecureStorage) {\n await this.secureStorageService.remove(\n `${userId}${this.refreshTokenSecureStorageKey}`,\n this.getSecureStorageOptions(userId),\n );\n }\n\n // Platform doesn't support secure storage, so use state provider implementation\n await this.singleUserStateProvider.get(userId, REFRESH_TOKEN_MEMORY).update((_) => null);\n await this.singleUserStateProvider.get(userId, REFRESH_TOKEN_DISK).update((_) => null);\n }\n\n async setClientId(\n clientId: string,\n vaultTimeoutAction: VaultTimeoutAction,\n vaultTimeout: VaultTimeout,\n userId?: UserId,\n ): Promise {\n userId ??= await firstValueFrom(this.activeUserIdGlobalState.state$);\n\n // If we don't have a user id, we can't save the value\n if (!userId) {\n throw new Error(\"User id not found. Cannot save client id.\");\n }\n\n // Can't check for falsey b/c 0 is a valid value\n if (vaultTimeout == null) {\n throw new Error(\"Vault Timeout is required.\");\n }\n\n if (vaultTimeoutAction == null) {\n throw new Error(\"Vault Timeout Action is required.\");\n }\n\n const storageLocation = await this.determineStorageLocation(\n vaultTimeoutAction,\n vaultTimeout,\n false, // don't use secure storage for client id\n );\n\n if (storageLocation === TokenStorageLocation.Disk) {\n await this.singleUserStateProvider\n .get(userId, API_KEY_CLIENT_ID_DISK)\n .update((_) => clientId);\n } else if (storageLocation === TokenStorageLocation.Memory) {\n await this.singleUserStateProvider\n .get(userId, API_KEY_CLIENT_ID_MEMORY)\n .update((_) => clientId);\n }\n }\n\n async getClientId(userId?: UserId): Promise {\n userId ??= await firstValueFrom(this.activeUserIdGlobalState.state$);\n\n if (!userId) {\n return undefined;\n }\n\n // Always read memory first b/c faster\n const apiKeyClientIdMemory = await this.getStateValueByUserIdAndKeyDef(\n userId,\n API_KEY_CLIENT_ID_MEMORY,\n );\n\n if (apiKeyClientIdMemory != null) {\n return apiKeyClientIdMemory;\n }\n\n // if memory is null, read from disk\n return await this.getStateValueByUserIdAndKeyDef(userId, API_KEY_CLIENT_ID_DISK);\n }\n\n private async clearClientId(userId?: UserId): Promise {\n userId ??= await firstValueFrom(this.activeUserIdGlobalState.state$);\n\n // If we don't have a user id, we can't clear the value\n if (!userId) {\n throw new Error(\"User id not found. Cannot clear client id.\");\n }\n\n // TODO: re-eval this once we get shared key definitions for vault timeout and vault timeout action data.\n // we can't determine storage location w/out vaultTimeoutAction and vaultTimeout\n // but we can simply clear both locations to avoid the need to require those parameters\n\n // Platform doesn't support secure storage, so use state provider implementation\n await this.singleUserStateProvider.get(userId, API_KEY_CLIENT_ID_MEMORY).update((_) => null);\n await this.singleUserStateProvider.get(userId, API_KEY_CLIENT_ID_DISK).update((_) => null);\n }\n\n async setClientSecret(\n clientSecret: string,\n vaultTimeoutAction: VaultTimeoutAction,\n vaultTimeout: VaultTimeout,\n userId?: UserId,\n ): Promise {\n userId ??= await firstValueFrom(this.activeUserIdGlobalState.state$);\n\n if (!userId) {\n throw new Error(\"User id not found. Cannot save client secret.\");\n }\n\n // Can't check for falsey b/c 0 is a valid value\n if (vaultTimeout == null) {\n throw new Error(\"Vault Timeout is required.\");\n }\n\n if (vaultTimeoutAction == null) {\n throw new Error(\"Vault Timeout Action is required.\");\n }\n\n const storageLocation = await this.determineStorageLocation(\n vaultTimeoutAction,\n vaultTimeout,\n false, // don't use secure storage for client secret\n );\n\n if (storageLocation === TokenStorageLocation.Disk) {\n await this.singleUserStateProvider\n .get(userId, API_KEY_CLIENT_SECRET_DISK)\n .update((_) => clientSecret);\n } else if (storageLocation === TokenStorageLocation.Memory) {\n await this.singleUserStateProvider\n .get(userId, API_KEY_CLIENT_SECRET_MEMORY)\n .update((_) => clientSecret);\n }\n }\n\n async getClientSecret(userId?: UserId): Promise {\n userId ??= await firstValueFrom(this.activeUserIdGlobalState.state$);\n\n if (!userId) {\n return undefined;\n }\n\n // Always read memory first b/c faster\n const apiKeyClientSecretMemory = await this.getStateValueByUserIdAndKeyDef(\n userId,\n API_KEY_CLIENT_SECRET_MEMORY,\n );\n\n if (apiKeyClientSecretMemory != null) {\n return apiKeyClientSecretMemory;\n }\n\n // if memory is null, read from disk\n return await this.getStateValueByUserIdAndKeyDef(userId, API_KEY_CLIENT_SECRET_DISK);\n }\n\n private async clearClientSecret(userId?: UserId): Promise {\n userId ??= await firstValueFrom(this.activeUserIdGlobalState.state$);\n\n // If we don't have a user id, we can't clear the value\n if (!userId) {\n throw new Error(\"User id not found. Cannot clear client secret.\");\n }\n\n // TODO: re-eval this once we get shared key definitions for vault timeout and vault timeout action data.\n // we can't determine storage location w/out vaultTimeoutAction and vaultTimeout\n // but we can simply clear both locations to avoid the need to require those parameters\n\n // Platform doesn't support secure storage, so use state provider implementation\n await this.singleUserStateProvider\n .get(userId, API_KEY_CLIENT_SECRET_MEMORY)\n .update((_) => null);\n await this.singleUserStateProvider.get(userId, API_KEY_CLIENT_SECRET_DISK).update((_) => null);\n }\n\n async setTwoFactorToken(email: string, twoFactorToken: string): Promise {\n await this.emailTwoFactorTokenRecordGlobalState.update((emailTwoFactorTokenRecord) => {\n emailTwoFactorTokenRecord ??= {};\n\n emailTwoFactorTokenRecord[email] = twoFactorToken;\n return emailTwoFactorTokenRecord;\n });\n }\n\n async getTwoFactorToken(email: string): Promise {\n const emailTwoFactorTokenRecord: Record = await firstValueFrom(\n this.emailTwoFactorTokenRecordGlobalState.state$,\n );\n\n if (!emailTwoFactorTokenRecord) {\n return null;\n }\n\n return emailTwoFactorTokenRecord[email];\n }\n\n async clearTwoFactorToken(email: string): Promise {\n await this.emailTwoFactorTokenRecordGlobalState.update((emailTwoFactorTokenRecord) => {\n emailTwoFactorTokenRecord ??= {};\n delete emailTwoFactorTokenRecord[email];\n return emailTwoFactorTokenRecord;\n });\n }\n\n // TODO: stop accepting optional userIds\n async clearTokens(userId?: UserId): Promise {\n userId ??= await firstValueFrom(this.activeUserIdGlobalState.state$);\n\n if (!userId) {\n throw new Error(\"User id not found. Cannot clear tokens.\");\n }\n\n await Promise.all([\n this.clearAccessToken(userId),\n this.clearRefreshToken(userId),\n this.clearClientId(userId),\n this.clearClientSecret(userId),\n ]);\n }\n\n // jwthelper methods\n // ref https://github.com/auth0/angular-jwt/blob/master/src/angularJwt/services/jwt.js\n\n async decodeAccessToken(token?: string): Promise {\n token = token ?? (await this.getAccessToken());\n\n if (token == null) {\n throw new Error(\"Access token not found.\");\n }\n\n return decodeJwtTokenToJson(token) as DecodedAccessToken;\n }\n\n // TODO: PM-6678- tech debt - consider consolidating the return types of all these access\n // token data retrieval methods to return null if something goes wrong instead of throwing an error.\n\n async getTokenExpirationDate(): Promise {\n let decoded: DecodedAccessToken;\n try {\n decoded = await this.decodeAccessToken();\n } catch (error) {\n throw new Error(\"Failed to decode access token: \" + error.message);\n }\n\n // per RFC, exp claim is optional but if it exists, it should be a number\n if (!decoded || typeof decoded.exp !== \"number\") {\n return null;\n }\n\n // The 0 in Date(0) is the key; it sets the date to the epoch\n const expirationDate = new Date(0);\n expirationDate.setUTCSeconds(decoded.exp);\n return expirationDate;\n }\n\n async tokenSecondsRemaining(offsetSeconds = 0): Promise {\n const date = await this.getTokenExpirationDate();\n if (date == null) {\n return 0;\n }\n\n const msRemaining = date.valueOf() - (new Date().valueOf() + offsetSeconds * 1000);\n return Math.round(msRemaining / 1000);\n }\n\n async tokenNeedsRefresh(minutes = 5): Promise {\n const sRemaining = await this.tokenSecondsRemaining();\n return sRemaining < 60 * minutes;\n }\n\n async getUserId(): Promise {\n let decoded: DecodedAccessToken;\n try {\n decoded = await this.decodeAccessToken();\n } catch (error) {\n throw new Error(\"Failed to decode access token: \" + error.message);\n }\n\n if (!decoded || typeof decoded.sub !== \"string\") {\n throw new Error(\"No user id found\");\n }\n\n return decoded.sub as UserId;\n }\n\n private async getUserIdFromAccessToken(accessToken: string): Promise {\n let decoded: DecodedAccessToken;\n try {\n decoded = await this.decodeAccessToken(accessToken);\n } catch (error) {\n throw new Error(\"Failed to decode access token: \" + error.message);\n }\n\n if (!decoded || typeof decoded.sub !== \"string\") {\n throw new Error(\"No user id found\");\n }\n\n return decoded.sub as UserId;\n }\n\n async getEmail(): Promise {\n let decoded: DecodedAccessToken;\n try {\n decoded = await this.decodeAccessToken();\n } catch (error) {\n throw new Error(\"Failed to decode access token: \" + error.message);\n }\n\n if (!decoded || typeof decoded.email !== \"string\") {\n throw new Error(\"No email found\");\n }\n\n return decoded.email;\n }\n\n async getEmailVerified(): Promise {\n let decoded: DecodedAccessToken;\n try {\n decoded = await this.decodeAccessToken();\n } catch (error) {\n throw new Error(\"Failed to decode access token: \" + error.message);\n }\n\n if (!decoded || typeof decoded.email_verified !== \"boolean\") {\n throw new Error(\"No email verification found\");\n }\n\n return decoded.email_verified;\n }\n\n async getName(): Promise {\n let decoded: DecodedAccessToken;\n try {\n decoded = await this.decodeAccessToken();\n } catch (error) {\n throw new Error(\"Failed to decode access token: \" + error.message);\n }\n\n if (!decoded || typeof decoded.name !== \"string\") {\n return null;\n }\n\n return decoded.name;\n }\n\n async getIssuer(): Promise {\n let decoded: DecodedAccessToken;\n try {\n decoded = await this.decodeAccessToken();\n } catch (error) {\n throw new Error(\"Failed to decode access token: \" + error.message);\n }\n\n if (!decoded || typeof decoded.iss !== \"string\") {\n throw new Error(\"No issuer found\");\n }\n\n return decoded.iss;\n }\n\n async getIsExternal(): Promise {\n let decoded: DecodedAccessToken;\n try {\n decoded = await this.decodeAccessToken();\n } catch (error) {\n throw new Error(\"Failed to decode access token: \" + error.message);\n }\n\n return Array.isArray(decoded.amr) && decoded.amr.includes(\"external\");\n }\n\n async getSecurityStamp(userId?: UserId): Promise {\n userId ??= await firstValueFrom(this.activeUserIdGlobalState.state$);\n\n if (!userId) {\n throw new Error(\"User id not found. Cannot get security stamp.\");\n }\n\n const securityStamp = await this.getStateValueByUserIdAndKeyDef(userId, SECURITY_STAMP_MEMORY);\n\n return securityStamp;\n }\n\n async setSecurityStamp(securityStamp: string, userId?: UserId): Promise {\n userId ??= await firstValueFrom(this.activeUserIdGlobalState.state$);\n\n if (!userId) {\n throw new Error(\"User id not found. Cannot set security stamp.\");\n }\n\n await this.singleUserStateProvider\n .get(userId, SECURITY_STAMP_MEMORY)\n .update((_) => securityStamp);\n }\n\n private async getStateValueByUserIdAndKeyDef(\n userId: UserId,\n storageLocation: UserKeyDefinition,\n ): Promise {\n // read from single user state provider\n return await firstValueFrom(this.singleUserStateProvider.get(userId, storageLocation).state$);\n }\n\n private async determineStorageLocation(\n vaultTimeoutAction: VaultTimeoutAction,\n vaultTimeout: VaultTimeout,\n useSecureStorage: boolean,\n ): Promise {\n if (vaultTimeoutAction == null) {\n throw new Error(\n \"TokenService - determineStorageLocation: We expect the vault timeout action to always exist at this point.\",\n );\n }\n\n if (vaultTimeout == null) {\n throw new Error(\n \"TokenService - determineStorageLocation: We expect the vault timeout to always exist at this point.\",\n );\n }\n\n if (\n vaultTimeoutAction === VaultTimeoutAction.LogOut &&\n vaultTimeout !== VaultTimeoutStringType.Never\n ) {\n return TokenStorageLocation.Memory;\n } else {\n if (useSecureStorage && this.platformSupportsSecureStorage) {\n return TokenStorageLocation.SecureStorage;\n }\n\n return TokenStorageLocation.Disk;\n }\n }\n\n private async saveStringToSecureStorage(\n userId: UserId,\n storageKey: string,\n value: string,\n ): Promise {\n await this.secureStorageService.save(\n `${userId}${storageKey}`,\n value,\n this.getSecureStorageOptions(userId),\n );\n }\n\n private async getStringFromSecureStorage(\n userId: UserId,\n storageKey: string,\n ): Promise {\n // If we have a user ID, read from secure storage.\n return await this.secureStorageService.get(\n `${userId}${storageKey}`,\n this.getSecureStorageOptions(userId),\n );\n }\n\n private getSecureStorageOptions(userId: UserId): StorageOptions {\n return {\n storageLocation: StorageLocation.Disk,\n useSecureStorage: true,\n userId: userId,\n };\n }\n}\n","export class VerifyOTPRequest {\n OTP: string;\n\n constructor(OTP: string) {\n this.OTP = OTP;\n }\n}\n","import { PrfKey } from \"../../../../types/key\";\nimport { WebAuthnLoginAssertionResponseRequest } from \"../../../services/webauthn-login/request/webauthn-login-assertion-response.request\";\n\nexport class WebAuthnLoginCredentialAssertionView {\n constructor(\n readonly token: string,\n readonly deviceResponse: WebAuthnLoginAssertionResponseRequest,\n readonly prfKey?: PrfKey,\n ) {}\n}\n","export const TYPE_CHECK = {\n FUNCTION: \"function\",\n NUMBER: \"number\",\n STRING: \"string\",\n} as const;\n\nexport const EVENTS = {\n CHANGE: \"change\",\n INPUT: \"input\",\n KEYDOWN: \"keydown\",\n KEYPRESS: \"keypress\",\n KEYUP: \"keyup\",\n BLUR: \"blur\",\n CLICK: \"click\",\n FOCUS: \"focus\",\n SCROLL: \"scroll\",\n RESIZE: \"resize\",\n DOMCONTENTLOADED: \"DOMContentLoaded\",\n LOAD: \"load\",\n MESSAGE: \"message\",\n VISIBILITYCHANGE: \"visibilitychange\",\n FOCUSOUT: \"focusout\",\n} as const;\n\nexport const ClearClipboardDelay = {\n Never: null as null,\n TenSeconds: 10,\n TwentySeconds: 20,\n ThirtySeconds: 30,\n OneMinute: 60,\n TwoMinutes: 120,\n FiveMinutes: 300,\n} as const;\n\n/* Context Menu item Ids */\nexport const AUTOFILL_CARD_ID = \"autofill-card\";\nexport const AUTOFILL_ID = \"autofill\";\nexport const SHOW_AUTOFILL_BUTTON = \"show-autofill-button\";\nexport const AUTOFILL_IDENTITY_ID = \"autofill-identity\";\nexport const COPY_IDENTIFIER_ID = \"copy-identifier\";\nexport const COPY_PASSWORD_ID = \"copy-password\";\nexport const COPY_USERNAME_ID = \"copy-username\";\nexport const COPY_VERIFICATION_CODE_ID = \"copy-totp\";\nexport const CREATE_CARD_ID = \"create-card\";\nexport const CREATE_IDENTITY_ID = \"create-identity\";\nexport const CREATE_LOGIN_ID = \"create-login\";\nexport const GENERATE_PASSWORD_ID = \"generate-password\";\nexport const NOOP_COMMAND_SUFFIX = \"noop\";\nexport const ROOT_ID = \"root\";\nexport const SEPARATOR_ID = \"separator\";\n\nexport const NOTIFICATION_BAR_LIFESPAN_MS = 150000; // 150 seconds\n\nexport const AutofillOverlayVisibility = {\n Off: 0,\n OnButtonClick: 1,\n OnFieldFocus: 2,\n} as const;\n","import { map, Observable } from \"rxjs\";\n\nimport { PolicyService } from \"../../admin-console/abstractions/policy/policy.service.abstraction\";\nimport { PolicyType } from \"../../admin-console/enums\";\nimport {\n AUTOFILL_SETTINGS_DISK,\n AUTOFILL_SETTINGS_DISK_LOCAL,\n ActiveUserState,\n GlobalState,\n KeyDefinition,\n StateProvider,\n UserKeyDefinition,\n} from \"../../platform/state\";\nimport { ClearClipboardDelay, AutofillOverlayVisibility } from \"../constants\";\nimport { ClearClipboardDelaySetting, InlineMenuVisibilitySetting } from \"../types\";\n\nconst AUTOFILL_ON_PAGE_LOAD = new UserKeyDefinition(AUTOFILL_SETTINGS_DISK, \"autofillOnPageLoad\", {\n deserializer: (value: boolean) => value ?? false,\n clearOn: [],\n});\n\nconst AUTOFILL_ON_PAGE_LOAD_DEFAULT = new UserKeyDefinition(\n AUTOFILL_SETTINGS_DISK,\n \"autofillOnPageLoadDefault\",\n {\n deserializer: (value: boolean) => value ?? false,\n clearOn: [],\n },\n);\n\nconst AUTOFILL_ON_PAGE_LOAD_CALLOUT_DISMISSED = new UserKeyDefinition(\n AUTOFILL_SETTINGS_DISK,\n \"autofillOnPageLoadCalloutIsDismissed\",\n {\n deserializer: (value: boolean) => value ?? false,\n clearOn: [],\n },\n);\n\nconst AUTOFILL_ON_PAGE_LOAD_POLICY_TOAST_HAS_DISPLAYED = new UserKeyDefinition(\n AUTOFILL_SETTINGS_DISK,\n \"autofillOnPageLoadPolicyToastHasDisplayed\",\n {\n deserializer: (value: boolean) => value ?? false,\n clearOn: [],\n },\n);\n\nconst AUTO_COPY_TOTP = new UserKeyDefinition(AUTOFILL_SETTINGS_DISK, \"autoCopyTotp\", {\n deserializer: (value: boolean) => value ?? true,\n clearOn: [],\n});\n\nconst INLINE_MENU_VISIBILITY = new KeyDefinition(\n AUTOFILL_SETTINGS_DISK_LOCAL,\n \"inlineMenuVisibility\",\n {\n deserializer: (value: InlineMenuVisibilitySetting) => value ?? AutofillOverlayVisibility.Off,\n },\n);\n\nconst ENABLE_CONTEXT_MENU = new KeyDefinition(AUTOFILL_SETTINGS_DISK, \"enableContextMenu\", {\n deserializer: (value: boolean) => value ?? true,\n});\n\nconst CLEAR_CLIPBOARD_DELAY = new UserKeyDefinition(\n AUTOFILL_SETTINGS_DISK_LOCAL,\n \"clearClipboardDelay\",\n {\n deserializer: (value: ClearClipboardDelaySetting) => value ?? ClearClipboardDelay.Never,\n clearOn: [],\n },\n);\n\nexport abstract class AutofillSettingsServiceAbstraction {\n autofillOnPageLoad$: Observable;\n setAutofillOnPageLoad: (newValue: boolean) => Promise;\n autofillOnPageLoadDefault$: Observable;\n setAutofillOnPageLoadDefault: (newValue: boolean) => Promise;\n autofillOnPageLoadCalloutIsDismissed$: Observable;\n setAutofillOnPageLoadCalloutIsDismissed: (newValue: boolean) => Promise;\n activateAutofillOnPageLoadFromPolicy$: Observable;\n setAutofillOnPageLoadPolicyToastHasDisplayed: (newValue: boolean) => Promise;\n autofillOnPageLoadPolicyToastHasDisplayed$: Observable;\n autoCopyTotp$: Observable;\n setAutoCopyTotp: (newValue: boolean) => Promise;\n inlineMenuVisibility$: Observable;\n setInlineMenuVisibility: (newValue: InlineMenuVisibilitySetting) => Promise;\n enableContextMenu$: Observable;\n setEnableContextMenu: (newValue: boolean) => Promise;\n clearClipboardDelay$: Observable;\n setClearClipboardDelay: (newValue: ClearClipboardDelaySetting) => Promise;\n}\n\nexport class AutofillSettingsService implements AutofillSettingsServiceAbstraction {\n private autofillOnPageLoadState: ActiveUserState;\n readonly autofillOnPageLoad$: Observable;\n\n private autofillOnPageLoadDefaultState: ActiveUserState;\n readonly autofillOnPageLoadDefault$: Observable;\n\n private autofillOnPageLoadCalloutIsDismissedState: ActiveUserState;\n readonly autofillOnPageLoadCalloutIsDismissed$: Observable;\n\n readonly activateAutofillOnPageLoadFromPolicy$: Observable;\n\n private autofillOnPageLoadPolicyToastHasDisplayedState: ActiveUserState;\n readonly autofillOnPageLoadPolicyToastHasDisplayed$: Observable;\n\n private autoCopyTotpState: ActiveUserState;\n readonly autoCopyTotp$: Observable;\n\n private inlineMenuVisibilityState: GlobalState;\n readonly inlineMenuVisibility$: Observable;\n\n private enableContextMenuState: GlobalState;\n readonly enableContextMenu$: Observable;\n\n private clearClipboardDelayState: ActiveUserState;\n readonly clearClipboardDelay$: Observable;\n\n constructor(\n private stateProvider: StateProvider,\n private policyService: PolicyService,\n ) {\n this.autofillOnPageLoadState = this.stateProvider.getActive(AUTOFILL_ON_PAGE_LOAD);\n this.autofillOnPageLoad$ = this.autofillOnPageLoadState.state$.pipe(map((x) => x ?? false));\n\n this.autofillOnPageLoadDefaultState = this.stateProvider.getActive(\n AUTOFILL_ON_PAGE_LOAD_DEFAULT,\n );\n this.autofillOnPageLoadDefault$ = this.autofillOnPageLoadDefaultState.state$.pipe(\n map((x) => x ?? true),\n );\n\n this.autofillOnPageLoadCalloutIsDismissedState = this.stateProvider.getActive(\n AUTOFILL_ON_PAGE_LOAD_CALLOUT_DISMISSED,\n );\n this.autofillOnPageLoadCalloutIsDismissed$ =\n this.autofillOnPageLoadCalloutIsDismissedState.state$.pipe(map((x) => x ?? false));\n\n this.activateAutofillOnPageLoadFromPolicy$ = this.policyService.policyAppliesToActiveUser$(\n PolicyType.ActivateAutofill,\n );\n\n this.autofillOnPageLoadPolicyToastHasDisplayedState = this.stateProvider.getActive(\n AUTOFILL_ON_PAGE_LOAD_POLICY_TOAST_HAS_DISPLAYED,\n );\n this.autofillOnPageLoadPolicyToastHasDisplayed$ = this.autofillOnPageLoadState.state$.pipe(\n map((x) => x ?? false),\n );\n\n this.autoCopyTotpState = this.stateProvider.getActive(AUTO_COPY_TOTP);\n this.autoCopyTotp$ = this.autoCopyTotpState.state$.pipe(map((x) => x ?? true));\n\n this.inlineMenuVisibilityState = this.stateProvider.getGlobal(INLINE_MENU_VISIBILITY);\n this.inlineMenuVisibility$ = this.inlineMenuVisibilityState.state$.pipe(\n map((x) => x ?? AutofillOverlayVisibility.Off),\n );\n\n this.enableContextMenuState = this.stateProvider.getGlobal(ENABLE_CONTEXT_MENU);\n this.enableContextMenu$ = this.enableContextMenuState.state$.pipe(map((x) => x ?? true));\n\n this.clearClipboardDelayState = this.stateProvider.getActive(CLEAR_CLIPBOARD_DELAY);\n this.clearClipboardDelay$ = this.clearClipboardDelayState.state$.pipe(\n map((x) => x ?? ClearClipboardDelay.Never),\n );\n }\n\n async setAutofillOnPageLoad(newValue: boolean): Promise {\n await this.autofillOnPageLoadState.update(() => newValue);\n }\n\n async setAutofillOnPageLoadDefault(newValue: boolean): Promise {\n await this.autofillOnPageLoadDefaultState.update(() => newValue);\n }\n\n async setAutofillOnPageLoadCalloutIsDismissed(newValue: boolean): Promise {\n await this.autofillOnPageLoadCalloutIsDismissedState.update(() => newValue);\n }\n\n async setAutofillOnPageLoadPolicyToastHasDisplayed(newValue: boolean): Promise {\n await this.autofillOnPageLoadPolicyToastHasDisplayedState.update(() => newValue);\n }\n\n async setAutoCopyTotp(newValue: boolean): Promise {\n await this.autoCopyTotpState.update(() => newValue);\n }\n\n async setInlineMenuVisibility(newValue: InlineMenuVisibilitySetting): Promise {\n await this.inlineMenuVisibilityState.update(() => newValue);\n }\n\n async setEnableContextMenu(newValue: boolean): Promise {\n await this.enableContextMenuState.update(() => newValue);\n }\n\n async setClearClipboardDelay(newValue: ClearClipboardDelaySetting): Promise {\n await this.clearClipboardDelayState.update(() => newValue);\n }\n}\n","import { map, Observable } from \"rxjs\";\n\nimport {\n BADGE_SETTINGS_DISK,\n ActiveUserState,\n StateProvider,\n UserKeyDefinition,\n} from \"../../platform/state\";\n\nconst ENABLE_BADGE_COUNTER = new UserKeyDefinition(BADGE_SETTINGS_DISK, \"enableBadgeCounter\", {\n deserializer: (value: boolean) => value ?? true,\n clearOn: [],\n});\n\nexport abstract class BadgeSettingsServiceAbstraction {\n enableBadgeCounter$: Observable;\n setEnableBadgeCounter: (newValue: boolean) => Promise;\n}\n\nexport class BadgeSettingsService implements BadgeSettingsServiceAbstraction {\n private enableBadgeCounterState: ActiveUserState;\n readonly enableBadgeCounter$: Observable;\n\n constructor(private stateProvider: StateProvider) {\n this.enableBadgeCounterState = this.stateProvider.getActive(ENABLE_BADGE_COUNTER);\n this.enableBadgeCounter$ = this.enableBadgeCounterState.state$.pipe(map((x) => x ?? true));\n }\n\n async setEnableBadgeCounter(newValue: boolean): Promise {\n await this.enableBadgeCounterState.update(() => newValue);\n }\n}\n","import { map, Observable, of, switchMap } from \"rxjs\";\n\nimport {\n ActiveUserState,\n BILLING_DISK,\n StateProvider,\n UserKeyDefinition,\n} from \"../../../platform/state\";\nimport {\n BillingAccountProfile,\n BillingAccountProfileStateService,\n} from \"../../abstractions/account/billing-account-profile-state.service\";\n\nexport const BILLING_ACCOUNT_PROFILE_KEY_DEFINITION = new UserKeyDefinition(\n BILLING_DISK,\n \"accountProfile\",\n {\n deserializer: (billingAccountProfile) => billingAccountProfile,\n clearOn: [\"logout\"],\n },\n);\n\nexport class DefaultBillingAccountProfileStateService implements BillingAccountProfileStateService {\n private billingAccountProfileState: ActiveUserState;\n\n hasPremiumFromAnyOrganization$: Observable;\n hasPremiumPersonally$: Observable;\n hasPremiumFromAnySource$: Observable;\n\n constructor(stateProvider: StateProvider) {\n this.billingAccountProfileState = stateProvider.getActive(\n BILLING_ACCOUNT_PROFILE_KEY_DEFINITION,\n );\n\n // Setup an observable that will always track the currently active user\n // but will fallback to emitting null when there is no active user.\n const billingAccountProfileOrNull = stateProvider.activeUserId$.pipe(\n switchMap((userId) =>\n userId != null\n ? stateProvider.getUser(userId, BILLING_ACCOUNT_PROFILE_KEY_DEFINITION).state$\n : of(null),\n ),\n );\n\n this.hasPremiumFromAnyOrganization$ = billingAccountProfileOrNull.pipe(\n map((billingAccountProfile) => !!billingAccountProfile?.hasPremiumFromAnyOrganization),\n );\n\n this.hasPremiumPersonally$ = billingAccountProfileOrNull.pipe(\n map((billingAccountProfile) => !!billingAccountProfile?.hasPremiumPersonally),\n );\n\n this.hasPremiumFromAnySource$ = billingAccountProfileOrNull.pipe(\n map(\n (billingAccountProfile) =>\n billingAccountProfile?.hasPremiumFromAnyOrganization === true ||\n billingAccountProfile?.hasPremiumPersonally === true,\n ),\n );\n }\n\n async setHasPremium(\n hasPremiumPersonally: boolean,\n hasPremiumFromAnyOrganization: boolean,\n ): Promise {\n await this.billingAccountProfileState.update((billingAccountProfile) => {\n return {\n hasPremiumPersonally: hasPremiumPersonally,\n hasPremiumFromAnyOrganization: hasPremiumFromAnyOrganization,\n };\n });\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\n\nexport class OrganizationBillingMetadataResponse extends BaseResponse {\n isOnSecretsManagerStandalone: boolean;\n\n constructor(response: any) {\n super(response);\n this.isOnSecretsManagerStandalone = this.getResponseProperty(\"IsOnSecretsManagerStandalone\");\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\n\nexport class OrganizationBillingStatusResponse extends BaseResponse {\n organizationId: string;\n organizationName: string;\n risksSubscriptionFailure: boolean;\n\n constructor(response: any) {\n super(response);\n\n this.organizationId = this.getResponseProperty(\"OrganizationId\");\n this.organizationName = this.getResponseProperty(\"OrganizationName\");\n this.risksSubscriptionFailure = this.getResponseProperty(\"RisksSubscriptionFailure\");\n }\n}\n","import { PaymentMethodType } from \"@bitwarden/common/billing/enums\";\nimport { BaseResponse } from \"@bitwarden/common/models/response/base.response\";\n\nexport class MaskedPaymentMethodResponse extends BaseResponse {\n type: PaymentMethodType;\n description: string;\n needsVerification: boolean;\n\n constructor(response: any) {\n super(response);\n this.type = this.getResponseProperty(\"Type\");\n this.description = this.getResponseProperty(\"Description\");\n this.needsVerification = this.getResponseProperty(\"NeedsVerification\");\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\n\nimport { MaskedPaymentMethodResponse } from \"./masked-payment-method.response\";\nimport { TaxInfoResponse } from \"./tax-info.response\";\n\nexport class PaymentInformationResponse extends BaseResponse {\n accountCredit: number;\n paymentMethod?: MaskedPaymentMethodResponse;\n taxInformation?: TaxInfoResponse;\n\n constructor(response: any) {\n super(response);\n this.accountCredit = this.getResponseProperty(\"AccountCredit\");\n\n const paymentMethod = this.getResponseProperty(\"PaymentMethod\");\n if (paymentMethod) {\n this.paymentMethod = new MaskedPaymentMethodResponse(paymentMethod);\n }\n\n const taxInformation = this.getResponseProperty(\"TaxInformation\");\n if (taxInformation) {\n this.taxInformation = new TaxInfoResponse(taxInformation);\n }\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\n\nexport class ProviderSubscriptionResponse extends BaseResponse {\n status: string;\n currentPeriodEndDate: Date;\n discountPercentage?: number | null;\n plans: Plans[] = [];\n\n constructor(response: any) {\n super(response);\n this.status = this.getResponseProperty(\"status\");\n this.currentPeriodEndDate = new Date(this.getResponseProperty(\"currentPeriodEndDate\"));\n this.discountPercentage = this.getResponseProperty(\"discountPercentage\");\n const plans = this.getResponseProperty(\"plans\");\n if (plans != null) {\n this.plans = plans.map((i: any) => new Plans(i));\n }\n }\n}\n\nexport class Plans extends BaseResponse {\n planName: string;\n seatMinimum: number;\n assignedSeats: number;\n purchasedSeats: number;\n cost: number;\n cadence: string;\n\n constructor(response: any) {\n super(response);\n this.planName = this.getResponseProperty(\"PlanName\");\n this.seatMinimum = this.getResponseProperty(\"SeatMinimum\");\n this.assignedSeats = this.getResponseProperty(\"AssignedSeats\");\n this.purchasedSeats = this.getResponseProperty(\"PurchasedSeats\");\n this.cost = this.getResponseProperty(\"Cost\");\n this.cadence = this.getResponseProperty(\"Cadence\");\n }\n}\n","import { BILLING_DISK, UserKeyDefinition } from \"../../platform/state\";\nimport { PaymentMethodWarning } from \"../models/domain/payment-method-warning\";\n\nexport const PAYMENT_METHOD_WARNINGS_KEY = UserKeyDefinition.record(\n BILLING_DISK,\n \"paymentMethodWarnings\",\n {\n deserializer: (warnings) => ({\n ...warnings,\n savedAt: new Date(warnings.savedAt),\n }),\n clearOn: [\"logout\"],\n },\n);\n","import { UserId } from \"../../../types/guid\";\nimport { ServerConfigResponse } from \"../../models/response/server-config.response\";\n\nexport abstract class ConfigApiServiceAbstraction {\n /**\n * Fetches the server configuration for the given user. If no user is provided, the configuration will not contain user-specific context.\n */\n abstract get(userId: UserId | undefined): Promise;\n}\n","import { FileUploadType } from \"../../enums\";\nimport { EncArrayBuffer } from \"../../models/domain/enc-array-buffer\";\nimport { EncString } from \"../../models/domain/enc-string\";\n\nexport abstract class FileUploadService {\n abstract upload(\n uploadData: { url: string; fileUploadType: FileUploadType },\n fileName: EncString,\n encryptedFileData: EncArrayBuffer,\n fileUploadMethods: FileUploadApiMethods,\n ): Promise;\n}\n\nexport type FileUploadApiMethods = {\n postDirect: (fileData: FormData) => Promise;\n renewFileUploadUrl: () => Promise;\n rollback: () => Promise;\n};\n","import { KdfConfig } from \"../../auth/models/domain/kdf-config\";\nimport { CsprngArray } from \"../../types/csprng\";\nimport { SymmetricCryptoKey } from \"../models/domain/symmetric-crypto-key\";\n\nexport abstract class KeyGenerationService {\n /**\n * Generates a key of the given length suitable for use in AES encryption\n * @param bitLength Length of key.\n * 256 bits = 32 bytes\n * 512 bits = 64 bytes\n * @returns Generated key.\n */\n abstract createKey(bitLength: 256 | 512): Promise;\n /**\n * Generates key material from CSPRNG and derives a 64 byte key from it.\n * Uses HKDF, see {@link https://datatracker.ietf.org/doc/html/rfc5869 RFC 5869}\n * for details.\n * @param bitLength Length of key material.\n * @param purpose Purpose for the key derivation function.\n * Different purposes results in different keys, even with the same material.\n * @param salt Optional. If not provided will be generated from CSPRNG.\n * @returns An object containing the salt, key material, and derived key.\n */\n abstract createKeyWithPurpose(\n bitLength: 128 | 192 | 256 | 512,\n purpose: string,\n salt?: string,\n ): Promise<{ salt: string; material: CsprngArray; derivedKey: SymmetricCryptoKey }>;\n /**\n * Derives a 64 byte key from key material.\n * @remark The key material should be generated from {@link createKey}, or {@link createKeyWithPurpose}.\n * Uses HKDF, see {@link https://datatracker.ietf.org/doc/html/rfc5869 RFC 5869} for details.\n * @param material key material.\n * @param salt Salt for the key derivation function.\n * @param purpose Purpose for the key derivation function.\n * Different purposes results in different keys, even with the same material.\n * @returns 64 byte derived key.\n */\n abstract deriveKeyFromMaterial(\n material: CsprngArray,\n salt: string,\n purpose: string,\n ): Promise;\n /**\n * Derives a 32 byte key from a password using a key derivation function.\n * @param password Password to derive the key from.\n * @param salt Salt for the key derivation function.\n * @param kdfConfig Configuration for the key derivation function.\n * @returns 32 byte derived key.\n */\n abstract deriveKeyFromPassword(\n password: string | Uint8Array,\n salt: string | Uint8Array,\n kdfConfig: KdfConfig,\n ): Promise;\n\n /**\n * Derives a 64 byte key from a 32 byte key using a key derivation function.\n * @param key 32 byte key.\n * @returns 64 byte derived key.\n */\n abstract stretchKey(key: SymmetricCryptoKey): Promise;\n}\n","import { Observable } from \"rxjs\";\n\nimport { StorageOptions } from \"../models/domain/storage-options\";\n\nexport type StorageUpdateType = \"save\" | \"remove\";\nexport type StorageUpdate = {\n key: string;\n updateType: StorageUpdateType;\n};\n\nexport interface ObservableStorageService {\n /**\n * Provides an {@link Observable} that represents a stream of updates that\n * have happened in this storage service or in the storage this service provides\n * an interface to.\n */\n get updates$(): Observable;\n}\n\nexport abstract class AbstractStorageService {\n abstract get valuesRequireDeserialization(): boolean;\n abstract get(key: string, options?: StorageOptions): Promise;\n abstract has(key: string, options?: StorageOptions): Promise;\n abstract save(key: string, obj: T, options?: StorageOptions): Promise;\n abstract remove(key: string, options?: StorageOptions): Promise;\n}\n","import { Account } from \"../models/domain/account\";\n\nexport class AccountFactory {\n private accountConstructor: new (init: Partial) => T;\n\n constructor(accountConstructor: new (init: Partial) => T) {\n this.accountConstructor = accountConstructor;\n }\n\n create(args: Partial) {\n return new this.accountConstructor(args);\n }\n}\n","import { GlobalState } from \"../models/domain/global-state\";\n\nexport class GlobalStateFactory {\n private globalStateConstructor: new (init: Partial) => T;\n\n constructor(globalStateConstructor: new (init: Partial) => T) {\n this.globalStateConstructor = globalStateConstructor;\n }\n\n create(args?: Partial) {\n return new this.globalStateConstructor(args);\n }\n}\n","import { Account } from \"../models/domain/account\";\nimport { GlobalState } from \"../models/domain/global-state\";\n\nimport { AccountFactory } from \"./account-factory\";\nimport { GlobalStateFactory } from \"./global-state-factory\";\n\nexport class StateFactory<\n TGlobal extends GlobalState = GlobalState,\n TAccount extends Account = Account,\n> {\n private globalStateFactory: GlobalStateFactory;\n private accountFactory: AccountFactory;\n\n constructor(\n globalStateConstructor: new (init: Partial) => TGlobal,\n accountConstructor: new (init: Partial) => TAccount,\n ) {\n this.globalStateFactory = new GlobalStateFactory(globalStateConstructor);\n this.accountFactory = new AccountFactory(accountConstructor);\n }\n\n createGlobal(args: Partial): TGlobal {\n return this.globalStateFactory.create(args);\n }\n\n createAccount(args: Partial): TAccount {\n return this.accountFactory.create(args);\n }\n}\n","import { EMPTY, Observable, filter } from \"rxjs\";\n\nimport { Message, CommandDefinition } from \"./types\";\n\n/**\n * A class that allows for listening to messages coming through the application,\n * allows for listening of all messages or just the messages you care about.\n *\n * @note Consider NOT using messaging at all if you can. State Providers offer an observable stream of\n * data that is persisted. This can serve messages that might have been used to notify of settings changes\n * or vault data changes and those observables should be preferred over messaging.\n */\nexport class MessageListener {\n constructor(private readonly messageStream: Observable>>) {}\n\n /**\n * A stream of all messages sent through the application. It does not contain type information for the\n * other properties on the messages. You are encouraged to instead subscribe to an individual message\n * through {@link messages$}.\n */\n allMessages$ = this.messageStream;\n\n /**\n * Creates an observable stream filtered to just the command given via the {@link CommandDefinition} and typed\n * to the generic contained in the CommandDefinition. Be careful using this method unless all your messages are being\n * sent through `MessageSender.send`, if that isn't the case you should have lower confidence in the message\n * payload being the expected type.\n *\n * @param commandDefinition The CommandDefinition containing the information about the message type you care about.\n */\n messages$>(\n commandDefinition: CommandDefinition,\n ): Observable {\n return this.allMessages$.pipe(\n filter((msg) => msg?.command === commandDefinition.command),\n ) as Observable;\n }\n\n /**\n * A helper property for returning a MessageListener that will never emit any messages and will immediately complete.\n */\n static readonly EMPTY = new MessageListener(EMPTY);\n}\n","import { map } from \"rxjs\";\n\nimport { CommandDefinition } from \"./types\";\n\nexport const getCommand = (\n commandDefinition: CommandDefinition> | string,\n) => {\n if (typeof commandDefinition === \"string\") {\n return commandDefinition;\n } else {\n return commandDefinition.command;\n }\n};\n\nexport const EXTERNAL_SOURCE_TAG = Symbol(\"externalSource\");\n\nexport const isExternalMessage = (message: Record) => {\n return message?.[EXTERNAL_SOURCE_TAG] === true;\n};\n\nexport const tagAsExternal = >() => {\n return map((message: T) => {\n return Object.assign(message, { [EXTERNAL_SOURCE_TAG]: true });\n });\n};\n","import { Subject } from \"rxjs\";\n\nimport { getCommand } from \"./internal\";\nimport { MessageSender } from \"./message.sender\";\nimport { Message, CommandDefinition } from \"./types\";\n\nexport class SubjectMessageSender implements MessageSender {\n constructor(private readonly messagesSubject: Subject>>) {}\n\n send>(\n commandDefinition: string | CommandDefinition,\n payload: Record | T = {},\n ): void {\n const command = getCommand(commandDefinition);\n this.messagesSubject.next(Object.assign(payload ?? {}, { command: command }));\n }\n}\n","export class GlobalState {\n enableBrowserIntegration?: boolean;\n enableBrowserIntegrationFingerprint?: boolean;\n enableDuckDuckGoBrowserIntegration?: boolean;\n}\n","import { Observable, filter, firstValueFrom, tap } from \"rxjs\";\n\nimport { AppIdService as AppIdServiceAbstraction } from \"../abstractions/app-id.service\";\nimport { Utils } from \"../misc/utils\";\nimport { APPLICATION_ID_DISK, GlobalStateProvider, KeyDefinition } from \"../state\";\n\nexport const APP_ID_KEY = new KeyDefinition(APPLICATION_ID_DISK, \"appId\", {\n deserializer: (value: string) => value,\n});\nexport const ANONYMOUS_APP_ID_KEY = new KeyDefinition(APPLICATION_ID_DISK, \"anonymousAppId\", {\n deserializer: (value: string) => value,\n});\n\nexport class AppIdService implements AppIdServiceAbstraction {\n appId$: Observable;\n anonymousAppId$: Observable;\n\n constructor(globalStateProvider: GlobalStateProvider) {\n const appIdState = globalStateProvider.get(APP_ID_KEY);\n const anonymousAppIdState = globalStateProvider.get(ANONYMOUS_APP_ID_KEY);\n this.appId$ = appIdState.state$.pipe(\n tap(async (appId) => {\n if (!appId) {\n await appIdState.update(() => Utils.newGuid());\n }\n }),\n filter((appId) => !!appId),\n );\n this.anonymousAppId$ = anonymousAppIdState.state$.pipe(\n tap(async (appId) => {\n if (!appId) {\n await anonymousAppIdState.update(() => Utils.newGuid());\n }\n }),\n filter((appId) => !!appId),\n );\n }\n\n async getAppId(): Promise {\n return await firstValueFrom(this.appId$);\n }\n\n async getAnonymousAppId(): Promise {\n return await firstValueFrom(this.anonymousAppId$);\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\nimport { Region } from \"../../abstractions/environment.service\";\n\nexport class ServerConfigResponse extends BaseResponse {\n version: string;\n gitHash: string;\n server: ThirdPartyServerConfigResponse;\n environment: EnvironmentServerConfigResponse;\n featureStates: { [key: string]: string } = {};\n\n constructor(response: any) {\n super(response);\n\n if (response == null) {\n return;\n }\n\n this.version = this.getResponseProperty(\"Version\");\n this.gitHash = this.getResponseProperty(\"GitHash\");\n this.server = new ThirdPartyServerConfigResponse(this.getResponseProperty(\"Server\"));\n this.environment = new EnvironmentServerConfigResponse(this.getResponseProperty(\"Environment\"));\n this.featureStates = this.getResponseProperty(\"FeatureStates\");\n }\n}\n\nexport class EnvironmentServerConfigResponse extends BaseResponse {\n cloudRegion: Region;\n vault: string;\n api: string;\n identity: string;\n notifications: string;\n sso: string;\n\n constructor(data: any = null) {\n super(data);\n\n if (data == null) {\n return;\n }\n\n this.cloudRegion = this.getResponseProperty(\"CloudRegion\");\n this.vault = this.getResponseProperty(\"Vault\");\n this.api = this.getResponseProperty(\"Api\");\n this.identity = this.getResponseProperty(\"Identity\");\n this.notifications = this.getResponseProperty(\"Notifications\");\n this.sso = this.getResponseProperty(\"Sso\");\n }\n}\n\nexport class ThirdPartyServerConfigResponse extends BaseResponse {\n name: string;\n url: string;\n\n constructor(data: any = null) {\n super(data);\n\n if (data == null) {\n return;\n }\n\n this.name = this.getResponseProperty(\"Name\");\n this.url = this.getResponseProperty(\"Url\");\n }\n}\n","import { Jsonify } from \"type-fest\";\n\nimport { AllowedFeatureFlagTypes } from \"../../../enums/feature-flag.enum\";\nimport {\n ServerConfigData,\n ThirdPartyServerConfigData,\n EnvironmentServerConfigData,\n} from \"../../models/data/server-config.data\";\n\nconst dayInMilliseconds = 24 * 3600 * 1000;\n\nexport class ServerConfig {\n version: string;\n gitHash: string;\n server?: ThirdPartyServerConfigData;\n environment?: EnvironmentServerConfigData;\n utcDate: Date;\n featureStates: { [key: string]: AllowedFeatureFlagTypes } = {};\n\n constructor(serverConfigData: ServerConfigData) {\n this.version = serverConfigData.version;\n this.gitHash = serverConfigData.gitHash;\n this.server = serverConfigData.server;\n this.utcDate = new Date(serverConfigData.utcDate);\n this.environment = serverConfigData.environment;\n this.featureStates = serverConfigData.featureStates;\n\n if (this.server?.name == null && this.server?.url == null) {\n this.server = null;\n }\n }\n\n private getAgeInMilliseconds(): number {\n return new Date().getTime() - this.utcDate?.getTime();\n }\n\n isValid(): boolean {\n return this.getAgeInMilliseconds() <= dayInMilliseconds;\n }\n\n static fromJSON(obj: Jsonify): ServerConfig {\n if (obj == null) {\n return null;\n }\n\n return new ServerConfig(obj);\n }\n}\n","import { Jsonify } from \"type-fest\";\n\nimport { AllowedFeatureFlagTypes } from \"../../../enums/feature-flag.enum\";\nimport { Region } from \"../../abstractions/environment.service\";\nimport {\n ServerConfigResponse,\n ThirdPartyServerConfigResponse,\n EnvironmentServerConfigResponse,\n} from \"../response/server-config.response\";\n\nexport class ServerConfigData {\n version: string;\n gitHash: string;\n server?: ThirdPartyServerConfigData;\n environment?: EnvironmentServerConfigData;\n utcDate: string;\n featureStates: { [key: string]: AllowedFeatureFlagTypes } = {};\n\n constructor(serverConfigResponse: Partial) {\n this.version = serverConfigResponse?.version;\n this.gitHash = serverConfigResponse?.gitHash;\n this.server = serverConfigResponse?.server\n ? new ThirdPartyServerConfigData(serverConfigResponse.server)\n : null;\n this.utcDate = new Date().toISOString();\n this.environment = serverConfigResponse?.environment\n ? new EnvironmentServerConfigData(serverConfigResponse.environment)\n : null;\n this.featureStates = serverConfigResponse?.featureStates;\n }\n\n static fromJSON(obj: Jsonify): ServerConfigData {\n return Object.assign(new ServerConfigData({}), obj, {\n server: obj?.server ? ThirdPartyServerConfigData.fromJSON(obj.server) : null,\n environment: obj?.environment ? EnvironmentServerConfigData.fromJSON(obj.environment) : null,\n });\n }\n}\n\nexport class ThirdPartyServerConfigData {\n name: string;\n url: string;\n\n constructor(response: Partial) {\n this.name = response.name;\n this.url = response.url;\n }\n\n static fromJSON(obj: Jsonify): ThirdPartyServerConfigData {\n return Object.assign(new ThirdPartyServerConfigData({}), obj);\n }\n}\n\nexport class EnvironmentServerConfigData {\n cloudRegion: Region;\n vault: string;\n api: string;\n identity: string;\n notifications: string;\n sso: string;\n\n constructor(response: Partial) {\n this.cloudRegion = response.cloudRegion;\n this.vault = response.vault;\n this.api = response.api;\n this.identity = response.identity;\n this.notifications = response.notifications;\n this.sso = response.sso;\n }\n\n static fromJSON(obj: Jsonify): EnvironmentServerConfigData {\n return Object.assign(new EnvironmentServerConfigData({}), obj);\n }\n}\n","import {\n combineLatest,\n firstValueFrom,\n map,\n mergeWith,\n NEVER,\n Observable,\n of,\n shareReplay,\n Subject,\n switchMap,\n tap,\n} from \"rxjs\";\nimport { SemVer } from \"semver\";\n\nimport {\n DefaultFeatureFlagValue,\n FeatureFlag,\n FeatureFlagValueType,\n} from \"../../../enums/feature-flag.enum\";\nimport { UserId } from \"../../../types/guid\";\nimport { ConfigApiServiceAbstraction } from \"../../abstractions/config/config-api.service.abstraction\";\nimport { ConfigService } from \"../../abstractions/config/config.service\";\nimport { ServerConfig } from \"../../abstractions/config/server-config\";\nimport { EnvironmentService, Region } from \"../../abstractions/environment.service\";\nimport { LogService } from \"../../abstractions/log.service\";\nimport { devFlagEnabled, devFlagValue } from \"../../misc/flags\";\nimport { ServerConfigData } from \"../../models/data/server-config.data\";\nimport { CONFIG_DISK, KeyDefinition, StateProvider, UserKeyDefinition } from \"../../state\";\n\nexport const RETRIEVAL_INTERVAL = devFlagEnabled(\"configRetrievalIntervalMs\")\n ? (devFlagValue(\"configRetrievalIntervalMs\") as number)\n : 3_600_000; // 1 hour\n\nexport type ApiUrl = string;\n\nexport const USER_SERVER_CONFIG = new UserKeyDefinition(CONFIG_DISK, \"serverConfig\", {\n deserializer: (data) => (data == null ? null : ServerConfig.fromJSON(data)),\n clearOn: [\"logout\"],\n});\n\nexport const GLOBAL_SERVER_CONFIGURATIONS = KeyDefinition.record(\n CONFIG_DISK,\n \"byServer\",\n {\n deserializer: (data) => (data == null ? null : ServerConfig.fromJSON(data)),\n },\n);\n\n// FIXME: currently we are limited to api requests for active users. Update to accept a UserId and APIUrl once ApiService supports it.\nexport class DefaultConfigService implements ConfigService {\n private failedFetchFallbackSubject = new Subject();\n\n serverConfig$: Observable;\n\n cloudRegion$: Observable;\n\n constructor(\n private configApiService: ConfigApiServiceAbstraction,\n private environmentService: EnvironmentService,\n private logService: LogService,\n private stateProvider: StateProvider,\n ) {\n const apiUrl$ = this.environmentService.environment$.pipe(\n map((environment) => environment.getApiUrl()),\n );\n\n this.serverConfig$ = combineLatest([this.stateProvider.activeUserId$, apiUrl$]).pipe(\n switchMap(([userId, apiUrl]) => {\n const config$ =\n userId == null ? this.globalConfigFor$(apiUrl) : this.userConfigFor$(userId);\n return config$.pipe(map((config) => [config, userId, apiUrl] as const));\n }),\n tap(async (rec) => {\n const [existingConfig, userId, apiUrl] = rec;\n // Grab new config if older retrieval interval\n if (!existingConfig || this.olderThanRetrievalInterval(existingConfig.utcDate)) {\n await this.renewConfig(existingConfig, userId, apiUrl);\n }\n }),\n switchMap(([existingConfig]) => {\n // If we needed to fetch, stop this emit, we'll get a new one after update\n // This is split up with the above tap because we need to return an observable from a failed promise,\n // which isn't very doable since promises are converted to observables in switchMap\n if (!existingConfig || this.olderThanRetrievalInterval(existingConfig.utcDate)) {\n return NEVER;\n }\n return of(existingConfig);\n }),\n // If fetch fails, we'll emit on this subject to fallback to the existing config\n mergeWith(this.failedFetchFallbackSubject),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n this.cloudRegion$ = this.serverConfig$.pipe(\n map((config) => config?.environment?.cloudRegion ?? Region.US),\n );\n }\n\n getFeatureFlag$(key: Flag) {\n return this.serverConfig$.pipe(\n map((serverConfig) => {\n if (serverConfig?.featureStates == null || serverConfig.featureStates[key] == null) {\n return DefaultFeatureFlagValue[key];\n }\n\n return serverConfig.featureStates[key] as FeatureFlagValueType;\n }),\n );\n }\n\n async getFeatureFlag(key: Flag) {\n return await firstValueFrom(this.getFeatureFlag$(key));\n }\n\n checkServerMeetsVersionRequirement$(minimumRequiredServerVersion: SemVer) {\n return this.serverConfig$.pipe(\n map((serverConfig) => {\n if (serverConfig == null) {\n return false;\n }\n const serverVersion = new SemVer(serverConfig.version);\n return serverVersion.compare(minimumRequiredServerVersion) >= 0;\n }),\n );\n }\n\n async ensureConfigFetched() {\n // Triggering a retrieval for the given user ensures that the config is less than RETRIEVAL_INTERVAL old\n await firstValueFrom(this.serverConfig$);\n }\n\n private olderThanRetrievalInterval(date: Date) {\n return new Date().getTime() - date.getTime() > RETRIEVAL_INTERVAL;\n }\n\n // Updates the on-disk configuration with a newly retrieved configuration\n private async renewConfig(\n existingConfig: ServerConfig,\n userId: UserId,\n apiUrl: string,\n ): Promise {\n try {\n const response = await this.configApiService.get(userId);\n const newConfig = new ServerConfig(new ServerConfigData(response));\n\n // Update the environment region\n if (\n newConfig?.environment?.cloudRegion != null &&\n existingConfig?.environment?.cloudRegion != newConfig.environment.cloudRegion\n ) {\n // Null userId sets global, otherwise sets to the given user\n await this.environmentService.setCloudRegion(userId, newConfig?.environment?.cloudRegion);\n }\n\n if (userId == null) {\n // update global state with new pulled config\n await this.stateProvider.getGlobal(GLOBAL_SERVER_CONFIGURATIONS).update((configs) => {\n return { ...configs, [apiUrl]: newConfig };\n });\n } else {\n // update state with new pulled config\n await this.stateProvider.setUserState(USER_SERVER_CONFIG, newConfig, userId);\n }\n } catch (e) {\n // mutate error to be handled by catchError\n this.logService.error(\n `Unable to fetch ServerConfig from ${apiUrl}: ${(e as Error)?.message}`,\n );\n // Emit the existing config\n this.failedFetchFallbackSubject.next(existingConfig);\n }\n }\n\n private globalConfigFor$(apiUrl: string): Observable {\n return this.stateProvider\n .getGlobal(GLOBAL_SERVER_CONFIGURATIONS)\n .state$.pipe(map((configs) => configs?.[apiUrl]));\n }\n\n private userConfigFor$(userId: UserId): Observable {\n return this.stateProvider.getUser(userId, USER_SERVER_CONFIG).state$;\n }\n}\n","import { EncryptService } from \"../../../platform/abstractions/encrypt.service\";\nimport { EncString } from \"../../../platform/models/domain/enc-string\";\nimport { SymmetricCryptoKey } from \"../../../platform/models/domain/symmetric-crypto-key\";\nimport { OrgKey, UserPrivateKey } from \"../../../types/key\";\nimport { EncryptedOrganizationKeyData } from \"../data/encrypted-organization-key.data\";\n\nexport abstract class BaseEncryptedOrganizationKey {\n abstract get encryptedOrganizationKey(): EncString;\n\n static fromData(data: EncryptedOrganizationKeyData) {\n switch (data.type) {\n case \"organization\":\n return new EncryptedOrganizationKey(data.key);\n\n case \"provider\":\n return new ProviderEncryptedOrganizationKey(data.key, data.providerId);\n\n default:\n return null;\n }\n }\n\n static isProviderEncrypted(\n key: EncryptedOrganizationKey | ProviderEncryptedOrganizationKey,\n ): key is ProviderEncryptedOrganizationKey {\n return key.toData().type === \"provider\";\n }\n}\n\nexport class EncryptedOrganizationKey implements BaseEncryptedOrganizationKey {\n constructor(private key: string) {}\n\n async decrypt(encryptService: EncryptService, privateKey: UserPrivateKey) {\n const decValue = await encryptService.rsaDecrypt(this.encryptedOrganizationKey, privateKey);\n return new SymmetricCryptoKey(decValue) as OrgKey;\n }\n\n get encryptedOrganizationKey() {\n return new EncString(this.key);\n }\n\n toData(): EncryptedOrganizationKeyData {\n return {\n type: \"organization\",\n key: this.key,\n };\n }\n}\n\nexport class ProviderEncryptedOrganizationKey implements BaseEncryptedOrganizationKey {\n constructor(\n private key: string,\n private providerId: string,\n ) {}\n\n async decrypt(encryptService: EncryptService, providerKeys: Record) {\n const decValue = await encryptService.decryptToBytes(\n new EncString(this.key),\n providerKeys[this.providerId],\n );\n return new SymmetricCryptoKey(decValue) as OrgKey;\n }\n\n get encryptedOrganizationKey() {\n return new EncString(this.key);\n }\n\n toData(): EncryptedOrganizationKeyData {\n return {\n type: \"provider\",\n key: this.key,\n providerId: this.providerId,\n };\n }\n}\n","import { VaultTimeoutAction } from \"../../enums/vault-timeout-action.enum\";\nimport { UserKeyDefinition, VAULT_TIMEOUT_SETTINGS_DISK_LOCAL } from \"../../platform/state\";\nimport { VaultTimeout } from \"../../types/vault-timeout.type\";\n\n/**\n * Settings use disk storage and local storage on web so settings can persist after logout\n * in order for us to know if the user's chose to never lock their vault or not.\n * When the user has never lock selected, we have to set the user key in memory\n * from the user auto unlock key stored on disk on client bootstrap.\n */\nexport const VAULT_TIMEOUT_ACTION = new UserKeyDefinition(\n VAULT_TIMEOUT_SETTINGS_DISK_LOCAL,\n \"vaultTimeoutAction\",\n {\n deserializer: (vaultTimeoutAction) => vaultTimeoutAction,\n clearOn: [], // persisted on logout\n },\n);\n\nexport const VAULT_TIMEOUT = new UserKeyDefinition(\n VAULT_TIMEOUT_SETTINGS_DISK_LOCAL,\n \"vaultTimeout\",\n {\n deserializer: (vaultTimeout) => vaultTimeout,\n clearOn: [], // persisted on logout\n },\n);\n","import { EncryptedOrganizationKeyData } from \"../../../admin-console/models/data/encrypted-organization-key.data\";\nimport { OrganizationId } from \"../../../types/guid\";\nimport { CRYPTO_DISK, UserKeyDefinition } from \"../../state\";\n\nexport const USER_ENCRYPTED_ORGANIZATION_KEYS = UserKeyDefinition.record<\n EncryptedOrganizationKeyData,\n OrganizationId\n>(CRYPTO_DISK, \"organizationKeys\", {\n deserializer: (obj) => obj,\n clearOn: [\"logout\"],\n});\n","import { ProviderId } from \"../../../types/guid\";\nimport { EncryptedString } from \"../../models/domain/enc-string\";\nimport { CRYPTO_DISK, UserKeyDefinition } from \"../../state\";\n\nexport const USER_ENCRYPTED_PROVIDER_KEYS = UserKeyDefinition.record(\n CRYPTO_DISK,\n \"providerKeys\",\n {\n deserializer: (obj) => obj,\n clearOn: [\"logout\"],\n },\n);\n","import { UserKey } from \"../../../types/key\";\nimport { EncryptedString } from \"../../models/domain/enc-string\";\nimport { SymmetricCryptoKey } from \"../../models/domain/symmetric-crypto-key\";\nimport { CRYPTO_DISK, CRYPTO_MEMORY, UserKeyDefinition } from \"../../state\";\n\nexport const USER_EVER_HAD_USER_KEY = new UserKeyDefinition(\n CRYPTO_DISK,\n \"everHadUserKey\",\n {\n deserializer: (obj) => obj,\n clearOn: [\"logout\"],\n },\n);\n\nexport const USER_ENCRYPTED_PRIVATE_KEY = new UserKeyDefinition(\n CRYPTO_DISK,\n \"privateKey\",\n {\n deserializer: (obj) => obj,\n clearOn: [\"logout\"],\n },\n);\n\nexport const USER_KEY = new UserKeyDefinition(CRYPTO_MEMORY, \"userKey\", {\n deserializer: (obj) => SymmetricCryptoKey.fromJSON(obj) as UserKey,\n clearOn: [\"logout\", \"lock\"],\n});\n","import { SymmetricCryptoKey } from \"../../../platform/models/domain/symmetric-crypto-key\";\n\nexport class EncryptedObject {\n iv: Uint8Array;\n data: Uint8Array;\n mac: Uint8Array;\n key: SymmetricCryptoKey;\n}\n","import { Utils } from \"../../../platform/misc/utils\";\nimport { CryptoFunctionService } from \"../../abstractions/crypto-function.service\";\nimport { EncryptService } from \"../../abstractions/encrypt.service\";\nimport { LogService } from \"../../abstractions/log.service\";\nimport { EncryptionType } from \"../../enums\";\nimport { Decryptable } from \"../../interfaces/decryptable.interface\";\nimport { Encrypted } from \"../../interfaces/encrypted\";\nimport { InitializerMetadata } from \"../../interfaces/initializer-metadata.interface\";\nimport { EncArrayBuffer } from \"../../models/domain/enc-array-buffer\";\nimport { EncString } from \"../../models/domain/enc-string\";\nimport { EncryptedObject } from \"../../models/domain/encrypted-object\";\nimport { SymmetricCryptoKey } from \"../../models/domain/symmetric-crypto-key\";\n\nexport class EncryptServiceImplementation implements EncryptService {\n constructor(\n protected cryptoFunctionService: CryptoFunctionService,\n protected logService: LogService,\n protected logMacFailures: boolean,\n ) {}\n\n async encrypt(plainValue: string | Uint8Array, key: SymmetricCryptoKey): Promise {\n if (key == null) {\n throw new Error(\"No encryption key provided.\");\n }\n\n if (plainValue == null) {\n return Promise.resolve(null);\n }\n\n let plainBuf: Uint8Array;\n if (typeof plainValue === \"string\") {\n plainBuf = Utils.fromUtf8ToArray(plainValue);\n } else {\n plainBuf = plainValue;\n }\n\n const encObj = await this.aesEncrypt(plainBuf, key);\n const iv = Utils.fromBufferToB64(encObj.iv);\n const data = Utils.fromBufferToB64(encObj.data);\n const mac = encObj.mac != null ? Utils.fromBufferToB64(encObj.mac) : null;\n return new EncString(encObj.key.encType, data, iv, mac);\n }\n\n async encryptToBytes(plainValue: Uint8Array, key: SymmetricCryptoKey): Promise {\n if (key == null) {\n throw new Error(\"No encryption key provided.\");\n }\n\n const encValue = await this.aesEncrypt(plainValue, key);\n let macLen = 0;\n if (encValue.mac != null) {\n macLen = encValue.mac.byteLength;\n }\n\n const encBytes = new Uint8Array(1 + encValue.iv.byteLength + macLen + encValue.data.byteLength);\n encBytes.set([encValue.key.encType]);\n encBytes.set(new Uint8Array(encValue.iv), 1);\n if (encValue.mac != null) {\n encBytes.set(new Uint8Array(encValue.mac), 1 + encValue.iv.byteLength);\n }\n\n encBytes.set(new Uint8Array(encValue.data), 1 + encValue.iv.byteLength + macLen);\n return new EncArrayBuffer(encBytes);\n }\n\n async decryptToUtf8(encString: EncString, key: SymmetricCryptoKey): Promise {\n if (key == null) {\n throw new Error(\"No key provided for decryption.\");\n }\n\n key = this.resolveLegacyKey(key, encString);\n\n if (key.macKey != null && encString?.mac == null) {\n this.logService.error(\"mac required.\");\n return null;\n }\n\n if (key.encType !== encString.encryptionType) {\n this.logService.error(\"encType unavailable.\");\n return null;\n }\n\n const fastParams = this.cryptoFunctionService.aesDecryptFastParameters(\n encString.data,\n encString.iv,\n encString.mac,\n key,\n );\n if (fastParams.macKey != null && fastParams.mac != null) {\n const computedMac = await this.cryptoFunctionService.hmacFast(\n fastParams.macData,\n fastParams.macKey,\n \"sha256\",\n );\n const macsEqual = await this.cryptoFunctionService.compareFast(fastParams.mac, computedMac);\n if (!macsEqual) {\n this.logMacFailed(\"mac failed.\");\n return null;\n }\n }\n\n return await this.cryptoFunctionService.aesDecryptFast(fastParams, \"cbc\");\n }\n\n async decryptToBytes(encThing: Encrypted, key: SymmetricCryptoKey): Promise {\n if (key == null) {\n throw new Error(\"No encryption key provided.\");\n }\n\n if (encThing == null) {\n throw new Error(\"Nothing provided for decryption.\");\n }\n\n key = this.resolveLegacyKey(key, encThing);\n\n if (key.macKey != null && encThing.macBytes == null) {\n return null;\n }\n\n if (key.encType !== encThing.encryptionType) {\n return null;\n }\n\n if (key.macKey != null && encThing.macBytes != null) {\n const macData = new Uint8Array(encThing.ivBytes.byteLength + encThing.dataBytes.byteLength);\n macData.set(new Uint8Array(encThing.ivBytes), 0);\n macData.set(new Uint8Array(encThing.dataBytes), encThing.ivBytes.byteLength);\n const computedMac = await this.cryptoFunctionService.hmac(macData, key.macKey, \"sha256\");\n if (computedMac === null) {\n return null;\n }\n\n const macsMatch = await this.cryptoFunctionService.compare(encThing.macBytes, computedMac);\n if (!macsMatch) {\n this.logMacFailed(\"mac failed.\");\n return null;\n }\n }\n\n const result = await this.cryptoFunctionService.aesDecrypt(\n encThing.dataBytes,\n encThing.ivBytes,\n key.encKey,\n \"cbc\",\n );\n\n return result ?? null;\n }\n\n async rsaEncrypt(data: Uint8Array, publicKey: Uint8Array): Promise {\n if (data == null) {\n throw new Error(\"No data provided for encryption.\");\n }\n\n if (publicKey == null) {\n throw new Error(\"No public key provided for encryption.\");\n }\n const encrypted = await this.cryptoFunctionService.rsaEncrypt(data, publicKey, \"sha1\");\n return new EncString(EncryptionType.Rsa2048_OaepSha1_B64, Utils.fromBufferToB64(encrypted));\n }\n\n async rsaDecrypt(data: EncString, privateKey: Uint8Array): Promise {\n if (data == null) {\n throw new Error(\"No data provided for decryption.\");\n }\n\n let algorithm: \"sha1\" | \"sha256\";\n switch (data.encryptionType) {\n case EncryptionType.Rsa2048_OaepSha1_B64:\n case EncryptionType.Rsa2048_OaepSha1_HmacSha256_B64:\n algorithm = \"sha1\";\n break;\n case EncryptionType.Rsa2048_OaepSha256_B64:\n case EncryptionType.Rsa2048_OaepSha256_HmacSha256_B64:\n algorithm = \"sha256\";\n break;\n default:\n throw new Error(\"Invalid encryption type.\");\n }\n\n if (privateKey == null) {\n throw new Error(\"No private key provided for decryption.\");\n }\n\n return this.cryptoFunctionService.rsaDecrypt(data.dataBytes, privateKey, algorithm);\n }\n\n async decryptItems(\n items: Decryptable[],\n key: SymmetricCryptoKey,\n ): Promise {\n if (items == null || items.length < 1) {\n return [];\n }\n\n // don't use promise.all because this task is not io bound\n const results = [];\n for (let i = 0; i < items.length; i++) {\n results.push(await items[i].decrypt(key));\n }\n return results;\n }\n\n async hash(value: string | Uint8Array, algorithm: \"sha1\" | \"sha256\" | \"sha512\"): Promise {\n const hashArray = await this.cryptoFunctionService.hash(value, algorithm);\n return Utils.fromBufferToB64(hashArray);\n }\n\n private async aesEncrypt(data: Uint8Array, key: SymmetricCryptoKey): Promise {\n const obj = new EncryptedObject();\n obj.key = key;\n obj.iv = await this.cryptoFunctionService.randomBytes(16);\n obj.data = await this.cryptoFunctionService.aesEncrypt(data, obj.iv, obj.key.encKey);\n\n if (obj.key.macKey != null) {\n const macData = new Uint8Array(obj.iv.byteLength + obj.data.byteLength);\n macData.set(new Uint8Array(obj.iv), 0);\n macData.set(new Uint8Array(obj.data), obj.iv.byteLength);\n obj.mac = await this.cryptoFunctionService.hmac(macData, obj.key.macKey, \"sha256\");\n }\n\n return obj;\n }\n\n private logMacFailed(msg: string) {\n if (this.logMacFailures) {\n this.logService.error(msg);\n }\n }\n\n /**\n * Transform into new key for the old encrypt-then-mac scheme if required, otherwise return the current key unchanged\n * @param encThing The encrypted object (e.g. encString or encArrayBuffer) that you want to decrypt\n */\n resolveLegacyKey(key: SymmetricCryptoKey, encThing: Encrypted): SymmetricCryptoKey {\n if (\n encThing.encryptionType === EncryptionType.AesCbc128_HmacSha256_B64 &&\n key.encType === EncryptionType.AesCbc256_B64\n ) {\n return new SymmetricCryptoKey(key.key, EncryptionType.AesCbc128_HmacSha256_B64);\n }\n\n return key;\n }\n}\n","import { Jsonify } from \"type-fest\";\n\nimport { Cipher } from \"../../../vault/models/domain/cipher\";\nimport { CipherView } from \"../../../vault/models/view/cipher.view\";\nimport { InitializerMetadata } from \"../../interfaces/initializer-metadata.interface\";\n\nimport { InitializerKey } from \"./initializer-key\";\n\n/**\n * Internal reference of classes so we can reconstruct objects properly.\n * Each entry should be keyed using the Decryptable.initializerKey property\n */\nconst classInitializers: Record any> = {\n [InitializerKey.Cipher]: Cipher.fromJSON,\n [InitializerKey.CipherView]: CipherView.fromJSON,\n};\n\nexport function getClassInitializer(\n className: InitializerKey,\n): (obj: Jsonify) => T {\n return classInitializers[className];\n}\n","import { defaultIfEmpty, filter, firstValueFrom, fromEvent, map, Subject, takeUntil } from \"rxjs\";\nimport { Jsonify } from \"type-fest\";\n\nimport { Utils } from \"../../../platform/misc/utils\";\nimport { Decryptable } from \"../../interfaces/decryptable.interface\";\nimport { InitializerMetadata } from \"../../interfaces/initializer-metadata.interface\";\nimport { SymmetricCryptoKey } from \"../../models/domain/symmetric-crypto-key\";\n\nimport { EncryptServiceImplementation } from \"./encrypt.service.implementation\";\nimport { getClassInitializer } from \"./get-class-initializer\";\n\n// TTL (time to live) is not strictly required but avoids tying up memory resources if inactive\nconst workerTTL = 3 * 60000; // 3 minutes\n\nexport class MultithreadEncryptServiceImplementation extends EncryptServiceImplementation {\n private worker: Worker;\n private timeout: any;\n\n private clear$ = new Subject();\n\n /**\n * Sends items to a web worker to decrypt them.\n * This utilises multithreading to decrypt items faster without interrupting other operations (e.g. updating UI).\n */\n async decryptItems(\n items: Decryptable[],\n key: SymmetricCryptoKey,\n ): Promise {\n if (items == null || items.length < 1) {\n return [];\n }\n\n this.logService.info(\"Starting decryption using multithreading\");\n\n this.worker ??= new Worker(\n new URL(\n /* webpackChunkName: 'encrypt-worker' */\n \"@bitwarden/common/platform/services/cryptography/encrypt.worker.ts\",\n import.meta.url,\n ),\n );\n\n this.restartTimeout();\n\n const request = {\n id: Utils.newGuid(),\n items: items,\n key: key,\n };\n\n this.worker.postMessage(JSON.stringify(request));\n\n return await firstValueFrom(\n fromEvent(this.worker, \"message\").pipe(\n filter((response: MessageEvent) => response.data?.id === request.id),\n map((response) => JSON.parse(response.data.items)),\n map((items) =>\n items.map((jsonItem: Jsonify) => {\n const initializer = getClassInitializer(jsonItem.initializerKey);\n return initializer(jsonItem);\n }),\n ),\n takeUntil(this.clear$),\n defaultIfEmpty([]),\n ),\n );\n }\n\n private clear() {\n this.clear$.next();\n this.worker?.terminate();\n this.worker = null;\n this.clearTimeout();\n }\n\n private restartTimeout() {\n this.clearTimeout();\n this.timeout = setTimeout(() => this.clear(), workerTTL);\n }\n\n private clearTimeout() {\n if (this.timeout != null) {\n clearTimeout(this.timeout);\n }\n }\n}\n","import { distinctUntilChanged, firstValueFrom, map, Observable, switchMap } from \"rxjs\";\nimport { Jsonify } from \"type-fest\";\n\nimport { AccountService } from \"../../auth/abstractions/account.service\";\nimport { UserId } from \"../../types/guid\";\nimport {\n EnvironmentService,\n Environment,\n Region,\n RegionConfig,\n Urls,\n CloudRegion,\n} from \"../abstractions/environment.service\";\nimport { Utils } from \"../misc/utils\";\nimport {\n ENVIRONMENT_DISK,\n ENVIRONMENT_MEMORY,\n GlobalState,\n KeyDefinition,\n StateProvider,\n UserKeyDefinition,\n} from \"../state\";\n\nexport class EnvironmentUrls {\n base: string = null;\n api: string = null;\n identity: string = null;\n icons: string = null;\n notifications: string = null;\n events: string = null;\n webVault: string = null;\n keyConnector: string = null;\n}\n\nclass EnvironmentState {\n region: Region;\n urls: EnvironmentUrls;\n\n static fromJSON(obj: Jsonify): EnvironmentState {\n return Object.assign(new EnvironmentState(), obj);\n }\n}\n\nexport const GLOBAL_ENVIRONMENT_KEY = new KeyDefinition(\n ENVIRONMENT_DISK,\n \"environment\",\n {\n deserializer: EnvironmentState.fromJSON,\n },\n);\n\nexport const USER_ENVIRONMENT_KEY = new UserKeyDefinition(\n ENVIRONMENT_DISK,\n \"environment\",\n {\n deserializer: EnvironmentState.fromJSON,\n clearOn: [\"logout\"],\n },\n);\n\nexport const GLOBAL_CLOUD_REGION_KEY = new KeyDefinition(\n ENVIRONMENT_MEMORY,\n \"cloudRegion\",\n {\n deserializer: (b) => b,\n },\n);\n\nexport const USER_CLOUD_REGION_KEY = new UserKeyDefinition(\n ENVIRONMENT_MEMORY,\n \"cloudRegion\",\n {\n deserializer: (b) => b,\n clearOn: [\"logout\"],\n },\n);\n\n/**\n * The production regions available for selection.\n *\n * In the future we desire to load these urls from the config endpoint.\n */\nexport const PRODUCTION_REGIONS: RegionConfig[] = [\n {\n key: Region.US,\n domain: \"bitwarden.com\",\n urls: {\n base: null,\n api: \"https://api.bitwarden.com\",\n identity: \"https://identity.bitwarden.com\",\n icons: \"https://icons.bitwarden.net\",\n webVault: \"https://vault.bitwarden.com\",\n notifications: \"https://notifications.bitwarden.com\",\n events: \"https://events.bitwarden.com\",\n scim: \"https://scim.bitwarden.com\",\n },\n },\n {\n key: Region.EU,\n domain: \"bitwarden.eu\",\n urls: {\n base: null,\n api: \"https://api.bitwarden.eu\",\n identity: \"https://identity.bitwarden.eu\",\n icons: \"https://icons.bitwarden.eu\",\n webVault: \"https://vault.bitwarden.eu\",\n notifications: \"https://notifications.bitwarden.eu\",\n events: \"https://events.bitwarden.eu\",\n scim: \"https://scim.bitwarden.eu\",\n },\n },\n];\n\n/**\n * The default region when starting the app.\n */\nconst DEFAULT_REGION = Region.US;\n\n/**\n * The default region configuration.\n */\nconst DEFAULT_REGION_CONFIG = PRODUCTION_REGIONS.find((r) => r.key === DEFAULT_REGION);\n\nexport class DefaultEnvironmentService implements EnvironmentService {\n private globalState: GlobalState;\n private globalCloudRegionState: GlobalState;\n\n // We intentionally don't want the helper on account service, we want the null back if there is no active user\n private activeAccountId$: Observable = this.accountService.activeAccount$.pipe(\n map((a) => a?.id),\n );\n\n environment$: Observable;\n cloudWebVaultUrl$: Observable;\n\n constructor(\n private stateProvider: StateProvider,\n private accountService: AccountService,\n ) {\n this.globalState = this.stateProvider.getGlobal(GLOBAL_ENVIRONMENT_KEY);\n this.globalCloudRegionState = this.stateProvider.getGlobal(GLOBAL_CLOUD_REGION_KEY);\n\n const account$ = this.activeAccountId$.pipe(\n // Use == here to not trigger on undefined -> null transition\n distinctUntilChanged((oldUserId: UserId, newUserId: UserId) => oldUserId == newUserId),\n );\n\n this.environment$ = account$.pipe(\n switchMap((userId) => {\n const t = userId\n ? this.stateProvider.getUser(userId, USER_ENVIRONMENT_KEY).state$\n : this.stateProvider.getGlobal(GLOBAL_ENVIRONMENT_KEY).state$;\n return t;\n }),\n map((state) => {\n return this.buildEnvironment(state?.region, state?.urls);\n }),\n );\n this.cloudWebVaultUrl$ = account$.pipe(\n switchMap((userId) => {\n const t = userId\n ? this.stateProvider.getUser(userId, USER_CLOUD_REGION_KEY).state$\n : this.stateProvider.getGlobal(GLOBAL_CLOUD_REGION_KEY).state$;\n return t;\n }),\n map((region) => {\n if (region != null) {\n const config = this.getRegionConfig(region);\n\n if (config != null) {\n return config.urls.webVault;\n }\n }\n return DEFAULT_REGION_CONFIG.urls.webVault;\n }),\n );\n }\n\n availableRegions(): RegionConfig[] {\n const additionalRegions = (process.env.ADDITIONAL_REGIONS as unknown as RegionConfig[]) ?? [];\n return PRODUCTION_REGIONS.concat(additionalRegions);\n }\n\n /**\n * Get the region configuration for the given region.\n */\n private getRegionConfig(region: Region): RegionConfig | undefined {\n return this.availableRegions().find((r) => r.key === region);\n }\n\n async setEnvironment(region: Region, urls?: Urls): Promise {\n // Unknown regions are treated as self-hosted\n if (this.getRegionConfig(region) == null) {\n region = Region.SelfHosted;\n }\n\n // If self-hosted ensure urls are valid else fallback to default region\n if (region == Region.SelfHosted && isEmpty(urls)) {\n region = DEFAULT_REGION;\n }\n\n if (region != Region.SelfHosted) {\n await this.globalState.update(() => ({\n region: region,\n urls: null,\n }));\n\n return null;\n } else {\n // Clean the urls\n urls.base = formatUrl(urls.base);\n urls.webVault = formatUrl(urls.webVault);\n urls.api = formatUrl(urls.api);\n urls.identity = formatUrl(urls.identity);\n urls.icons = formatUrl(urls.icons);\n urls.notifications = formatUrl(urls.notifications);\n urls.events = formatUrl(urls.events);\n urls.keyConnector = formatUrl(urls.keyConnector);\n urls.scim = null;\n\n await this.globalState.update(() => ({\n region: region,\n urls: {\n base: urls.base,\n api: urls.api,\n identity: urls.identity,\n webVault: urls.webVault,\n icons: urls.icons,\n notifications: urls.notifications,\n events: urls.events,\n keyConnector: urls.keyConnector,\n },\n }));\n\n return urls;\n }\n }\n\n /**\n * Helper for building the environment from state. Performs some general sanitization to avoid invalid regions and urls.\n */\n protected buildEnvironment(region: Region, urls: Urls) {\n // Unknown regions are treated as self-hosted\n if (this.getRegionConfig(region) == null) {\n region = Region.SelfHosted;\n }\n\n // If self-hosted ensure urls are valid else fallback to default region\n if (region == Region.SelfHosted && isEmpty(urls)) {\n region = DEFAULT_REGION;\n }\n\n // Load urls from region config\n if (region != Region.SelfHosted) {\n const regionConfig = this.getRegionConfig(region);\n if (regionConfig != null) {\n return new CloudEnvironment(regionConfig);\n }\n }\n\n return new SelfHostedEnvironment(urls);\n }\n\n async setCloudRegion(userId: UserId, region: CloudRegion) {\n if (userId == null) {\n await this.globalCloudRegionState.update(() => region);\n } else {\n await this.stateProvider.getUser(userId, USER_CLOUD_REGION_KEY).update(() => region);\n }\n }\n\n async getEnvironment(userId?: UserId) {\n if (userId == null) {\n return await firstValueFrom(this.environment$);\n }\n\n const state = await this.getEnvironmentState(userId);\n return this.buildEnvironment(state.region, state.urls);\n }\n\n private async getEnvironmentState(userId: UserId | null) {\n // Previous rules dictated that we only get from user scoped state if there is an active user.\n const activeUserId = await firstValueFrom(this.activeAccountId$);\n return activeUserId == null\n ? await firstValueFrom(this.globalState.state$)\n : await firstValueFrom(\n this.stateProvider.getUser(userId ?? activeUserId, USER_ENVIRONMENT_KEY).state$,\n );\n }\n\n async seedUserEnvironment(userId: UserId) {\n const global = await firstValueFrom(this.globalState.state$);\n await this.stateProvider.getUser(userId, USER_ENVIRONMENT_KEY).update(() => global);\n }\n}\n\nfunction formatUrl(url: string): string {\n if (url == null || url === \"\") {\n return null;\n }\n\n url = url.replace(/\\/+$/g, \"\");\n if (!url.startsWith(\"http://\") && !url.startsWith(\"https://\")) {\n url = \"https://\" + url;\n }\n\n return url.trim();\n}\n\nfunction isEmpty(u?: Urls): boolean {\n if (u == null) {\n return true;\n }\n\n return (\n u.base == null &&\n u.webVault == null &&\n u.api == null &&\n u.identity == null &&\n u.icons == null &&\n u.notifications == null &&\n u.events == null\n );\n}\n\nabstract class UrlEnvironment implements Environment {\n constructor(\n protected region: Region,\n protected urls: Urls,\n ) {\n // Scim is always null for self-hosted\n if (region == Region.SelfHosted) {\n this.urls.scim = null;\n }\n }\n\n abstract getHostname(): string;\n\n getRegion() {\n return this.region;\n }\n\n getUrls() {\n return {\n base: this.urls.base,\n webVault: this.urls.webVault,\n api: this.urls.api,\n identity: this.urls.identity,\n icons: this.urls.icons,\n notifications: this.urls.notifications,\n events: this.urls.events,\n keyConnector: this.urls.keyConnector,\n scim: this.urls.scim,\n };\n }\n\n hasBaseUrl() {\n return this.urls.base != null;\n }\n\n getWebVaultUrl() {\n return this.getUrl(\"webVault\", \"\");\n }\n\n getApiUrl() {\n return this.getUrl(\"api\", \"/api\");\n }\n\n getEventsUrl() {\n return this.getUrl(\"events\", \"/events\");\n }\n\n getIconsUrl() {\n return this.getUrl(\"icons\", \"/icons\");\n }\n\n getIdentityUrl() {\n return this.getUrl(\"identity\", \"/identity\");\n }\n\n getKeyConnectorUrl() {\n return this.urls.keyConnector;\n }\n\n getNotificationsUrl() {\n return this.getUrl(\"notifications\", \"/notifications\");\n }\n\n getScimUrl() {\n if (this.urls.scim != null) {\n return this.urls.scim + \"/v2\";\n }\n\n return this.getWebVaultUrl() === \"https://vault.bitwarden.com\"\n ? \"https://scim.bitwarden.com/v2\"\n : this.getWebVaultUrl() + \"/scim/v2\";\n }\n\n getSendUrl() {\n return this.getWebVaultUrl() === \"https://vault.bitwarden.com\"\n ? \"https://send.bitwarden.com/#\"\n : this.getWebVaultUrl() + \"/#/send/\";\n }\n\n /**\n * Presume that if the region is not self-hosted, it is cloud.\n */\n isCloud(): boolean {\n return this.region !== Region.SelfHosted;\n }\n\n /**\n * Helper for getting an URL.\n *\n * @param key Key of the URL to get from URLs\n * @param baseSuffix Suffix to append to the base URL if the url is not set\n * @returns\n */\n private getUrl(key: keyof Urls, baseSuffix: string) {\n if (this.urls[key] != null) {\n return this.urls[key];\n }\n\n if (this.urls.base) {\n return this.urls.base + baseSuffix;\n }\n\n return DEFAULT_REGION_CONFIG.urls[key];\n }\n}\n\n/**\n * Denote a cloud environment.\n */\nexport class CloudEnvironment extends UrlEnvironment {\n constructor(private config: RegionConfig) {\n super(config.key, config.urls);\n }\n\n /**\n * Cloud always returns nice urls, i.e. bitwarden.com instead of vault.bitwarden.com.\n */\n getHostname() {\n return this.config.domain;\n }\n}\n\nexport class SelfHostedEnvironment extends UrlEnvironment {\n constructor(urls: Urls) {\n super(Region.SelfHosted, urls);\n }\n\n getHostname() {\n return Utils.getHost(this.getWebVaultUrl());\n }\n}\n","import { LogService } from \"../../abstractions/log.service\";\nimport { Utils } from \"../../misc/utils\";\nimport { EncArrayBuffer } from \"../../models/domain/enc-array-buffer\";\n\nconst MAX_SINGLE_BLOB_UPLOAD_SIZE = 256 * 1024 * 1024; // 256 MiB\nconst MAX_BLOCKS_PER_BLOB = 50000;\n\nexport class AzureFileUploadService {\n constructor(private logService: LogService) {}\n\n async upload(url: string, data: EncArrayBuffer, renewalCallback: () => Promise) {\n if (data.buffer.byteLength <= MAX_SINGLE_BLOB_UPLOAD_SIZE) {\n return await this.azureUploadBlob(url, data);\n } else {\n return await this.azureUploadBlocks(url, data, renewalCallback);\n }\n }\n private async azureUploadBlob(url: string, data: EncArrayBuffer) {\n const urlObject = Utils.getUrl(url);\n const headers = new Headers({\n \"x-ms-date\": new Date().toUTCString(),\n \"x-ms-version\": urlObject.searchParams.get(\"sv\"),\n \"Content-Length\": data.buffer.byteLength.toString(),\n \"x-ms-blob-type\": \"BlockBlob\",\n });\n\n const request = new Request(url, {\n body: data.buffer,\n cache: \"no-store\",\n method: \"PUT\",\n headers: headers,\n });\n\n const blobResponse = await fetch(request);\n\n if (blobResponse.status !== 201) {\n throw new Error(`Failed to create Azure blob: ${blobResponse.status}`);\n }\n }\n private async azureUploadBlocks(\n url: string,\n data: EncArrayBuffer,\n renewalCallback: () => Promise,\n ) {\n const baseUrl = Utils.getUrl(url);\n const blockSize = this.getMaxBlockSize(baseUrl.searchParams.get(\"sv\"));\n let blockIndex = 0;\n const numBlocks = Math.ceil(data.buffer.byteLength / blockSize);\n const blocksStaged: string[] = [];\n\n if (numBlocks > MAX_BLOCKS_PER_BLOB) {\n throw new Error(\n `Cannot upload file, exceeds maximum size of ${blockSize * MAX_BLOCKS_PER_BLOB}`,\n );\n }\n\n // eslint-disable-next-line\n try {\n while (blockIndex < numBlocks) {\n url = await this.renewUrlIfNecessary(url, renewalCallback);\n const blockUrl = Utils.getUrl(url);\n const blockId = this.encodedBlockId(blockIndex);\n blockUrl.searchParams.append(\"comp\", \"block\");\n blockUrl.searchParams.append(\"blockid\", blockId);\n const start = blockIndex * blockSize;\n const blockData = data.buffer.slice(start, start + blockSize);\n const blockHeaders = new Headers({\n \"x-ms-date\": new Date().toUTCString(),\n \"x-ms-version\": blockUrl.searchParams.get(\"sv\"),\n \"Content-Length\": blockData.byteLength.toString(),\n });\n\n const blockRequest = new Request(blockUrl.toString(), {\n body: blockData,\n cache: \"no-store\",\n method: \"PUT\",\n headers: blockHeaders,\n });\n\n const blockResponse = await fetch(blockRequest);\n\n if (blockResponse.status !== 201) {\n const message = `Unsuccessful block PUT. Received status ${blockResponse.status}`;\n this.logService.error(message + \"\\n\" + (await blockResponse.json()));\n throw new Error(message);\n }\n\n blocksStaged.push(blockId);\n blockIndex++;\n }\n\n url = await this.renewUrlIfNecessary(url, renewalCallback);\n const blockListUrl = Utils.getUrl(url);\n const blockListXml = this.blockListXml(blocksStaged);\n blockListUrl.searchParams.append(\"comp\", \"blocklist\");\n const headers = new Headers({\n \"x-ms-date\": new Date().toUTCString(),\n \"x-ms-version\": blockListUrl.searchParams.get(\"sv\"),\n \"Content-Length\": blockListXml.length.toString(),\n });\n\n const request = new Request(blockListUrl.toString(), {\n body: blockListXml,\n cache: \"no-store\",\n method: \"PUT\",\n headers: headers,\n });\n\n const response = await fetch(request);\n\n if (response.status !== 201) {\n const message = `Unsuccessful block list PUT. Received status ${response.status}`;\n this.logService.error(message + \"\\n\" + (await response.json()));\n throw new Error(message);\n }\n } catch (e) {\n throw e;\n }\n }\n\n private async renewUrlIfNecessary(\n url: string,\n renewalCallback: () => Promise,\n ): Promise {\n const urlObject = Utils.getUrl(url);\n const expiry = new Date(urlObject.searchParams.get(\"se\") ?? \"\");\n\n if (isNaN(expiry.getTime())) {\n expiry.setTime(Date.now() + 3600000);\n }\n\n if (expiry.getTime() < Date.now() + 1000) {\n return await renewalCallback();\n }\n return url;\n }\n\n private encodedBlockId(blockIndex: number) {\n // Encoded blockId max size is 64, so pre-encoding max size is 48\n const utfBlockId = (\n \"000000000000000000000000000000000000000000000000\" + blockIndex.toString()\n ).slice(-48);\n return Utils.fromUtf8ToB64(utfBlockId);\n }\n\n private blockListXml(blockIdList: string[]) {\n let xml = '';\n blockIdList.forEach((blockId) => {\n xml += `${blockId}`;\n });\n xml += \"\";\n return xml;\n }\n\n private getMaxBlockSize(version: string) {\n if (Version.compare(version, \"2019-12-12\") >= 0) {\n return 4000 * 1024 * 1024; // 4000 MiB\n } else if (Version.compare(version, \"2016-05-31\") >= 0) {\n return 100 * 1024 * 1024; // 100 MiB\n } else {\n return 4 * 1024 * 1024; // 4 MiB\n }\n }\n}\n\nclass Version {\n /**\n * Compares two Azure Versions against each other\n * @param a Version to compare\n * @param b Version to compare\n * @returns a number less than zero if b is newer than a, 0 if equal,\n * and greater than zero if a is newer than b\n */\n static compare(a: Required | string, b: Required | string) {\n if (typeof a === \"string\") {\n a = new Version(a);\n }\n\n if (typeof b === \"string\") {\n b = new Version(b);\n }\n\n return a.year !== b.year\n ? a.year - b.year\n : a.month !== b.month\n ? a.month - b.month\n : a.day !== b.day\n ? a.day - b.day\n : 0;\n }\n year = 0;\n month = 0;\n day = 0;\n\n constructor(version: string) {\n try {\n const parts = version.split(\"-\").map((v) => Number.parseInt(v, 10));\n this.year = parts[0];\n this.month = parts[1];\n this.day = parts[2];\n } catch {\n // Ignore error\n }\n }\n /**\n * Compares two Azure Versions against each other\n * @param compareTo Version to compare against\n * @returns a number less than zero if compareTo is newer, 0 if equal,\n * and greater than zero if this is greater than compareTo\n */\n compare(compareTo: Required | string) {\n return Version.compare(this, compareTo);\n }\n}\n","import { Utils } from \"../../misc/utils\";\nimport { EncArrayBuffer } from \"../../models/domain/enc-array-buffer\";\n\nexport class BitwardenFileUploadService {\n async upload(\n encryptedFileName: string,\n encryptedFileData: EncArrayBuffer,\n apiCall: (fd: FormData) => Promise,\n ) {\n const fd = new FormData();\n try {\n const blob = new Blob([encryptedFileData.buffer], { type: \"application/octet-stream\" });\n fd.append(\"data\", blob, encryptedFileName);\n } catch (e) {\n if (Utils.isNode && !Utils.isBrowser) {\n fd.append(\n \"data\",\n Buffer.from(encryptedFileData.buffer) as any,\n {\n filepath: encryptedFileName,\n contentType: \"application/octet-stream\",\n } as any,\n );\n } else {\n throw e;\n }\n }\n\n await apiCall(fd);\n }\n}\n","import { MigrationHelper } from \"./migration-helper\";\nimport { Direction, Migrator, VersionFrom, VersionTo } from \"./migrator\";\n\nexport class MigrationBuilder {\n /** Create a new MigrationBuilder with an empty buffer of migrations to perform.\n *\n * Add migrations to the buffer with {@link with} and {@link rollback}.\n * @returns A new MigrationBuilder.\n */\n static create(): MigrationBuilder<0> {\n return new MigrationBuilder([]);\n }\n\n private constructor(\n private migrations: readonly { migrator: Migrator; direction: Direction }[],\n ) {}\n\n /** Add a migrator to the MigrationBuilder. Types are updated such that the chained MigrationBuilder must currently be\n * at state version equal to the from version of the migrator. Return as MigrationBuilder where TTo is the to\n * version of the migrator, so that the next migrator can be chained.\n *\n * @param migrate A migrator class or a tuple of a migrator class, the from version, and the to version. A tuple is\n * required to instantiate version numbers unless a default constructor is defined.\n * @returns A new MigrationBuilder with the to version of the migrator as the current version.\n */\n with<\n TMigrator extends Migrator,\n TFrom extends VersionFrom & TCurrent,\n TTo extends VersionTo,\n >(\n ...migrate: [new () => TMigrator] | [new (from: TFrom, to: TTo) => TMigrator, TFrom, TTo]\n ): MigrationBuilder {\n return this.addMigrator(migrate, \"up\");\n }\n\n /** Add a migrator to rollback on the MigrationBuilder's list of migrations. As with {@link with}, types of\n * MigrationBuilder and Migrator must align. However, this time the migration is reversed so TCurrent of the\n * MigrationBuilder must be equal to the to version of the migrator. Return as MigrationBuilder where TFrom\n * is the from version of the migrator, so that the next migrator can be chained.\n *\n * @param migrate A migrator class or a tuple of a migrator class, the from version, and the to version. A tuple is\n * required to instantiate version numbers unless a default constructor is defined.\n * @returns A new MigrationBuilder with the from version of the migrator as the current version.\n */\n rollback<\n TMigrator extends Migrator,\n TFrom extends VersionFrom,\n TTo extends VersionTo & TCurrent,\n >(\n ...migrate: [new () => TMigrator] | [new (from: TFrom, to: TTo) => TMigrator, TTo, TFrom]\n ): MigrationBuilder {\n if (migrate.length === 3) {\n migrate = [migrate[0], migrate[2], migrate[1]];\n }\n return this.addMigrator(migrate, \"down\");\n }\n\n /** Execute the migrations as defined in the MigrationBuilder's migrator buffer */\n migrate(helper: MigrationHelper): Promise {\n return this.migrations.reduce(\n (promise, migrator) =>\n promise.then(async () => {\n await this.runMigrator(migrator.migrator, helper, migrator.direction);\n }),\n Promise.resolve(),\n );\n }\n\n private addMigrator<\n TMigrator extends Migrator,\n TFrom extends VersionFrom & TCurrent,\n TTo extends VersionTo,\n >(\n migrate: [new () => TMigrator] | [new (from: TFrom, to: TTo) => TMigrator, TFrom, TTo],\n direction: Direction = \"up\",\n ) {\n const newMigration =\n migrate.length === 1\n ? { migrator: new migrate[0](), direction }\n : { migrator: new migrate[0](migrate[1], migrate[2]), direction };\n\n return new MigrationBuilder([...this.migrations, newMigration]);\n }\n\n private async runMigrator(\n migrator: Migrator,\n helper: MigrationHelper,\n direction: Direction,\n ): Promise {\n const shouldMigrate = await migrator.shouldMigrate(helper, direction);\n helper.info(\n `Migrator ${migrator.constructor.name} (to version ${migrator.toVersion}) should migrate: ${shouldMigrate} - ${direction}`,\n );\n if (shouldMigrate) {\n const method = direction === \"up\" ? migrator.migrate : migrator.rollback;\n await method.bind(migrator)(helper);\n helper.info(\n `Migrator ${migrator.constructor.name} (to version ${migrator.toVersion}) migrated - ${direction}`,\n );\n await migrator.updateVersion(helper, direction);\n helper.info(\n `Migrator ${migrator.constructor.name} (to version ${migrator.toVersion}) updated version - ${direction}`,\n );\n }\n }\n}\n","import { NonNegativeInteger } from \"type-fest\";\n\nimport { MigrationHelper } from \"./migration-helper\";\n\nexport const IRREVERSIBLE = new Error(\"Irreversible migration\");\n\nexport type VersionFrom =\n T extends Migrator\n ? TFrom extends NonNegativeInteger\n ? TFrom\n : never\n : never;\nexport type VersionTo =\n T extends Migrator\n ? TTo extends NonNegativeInteger\n ? TTo\n : never\n : never;\nexport type Direction = \"up\" | \"down\";\n\nexport abstract class Migrator {\n constructor(\n public fromVersion: TFrom,\n public toVersion: TTo,\n ) {\n if (fromVersion == null || toVersion == null) {\n throw new Error(\"Invalid migration\");\n }\n if (fromVersion > toVersion) {\n throw new Error(\"Invalid migration\");\n }\n }\n\n shouldMigrate(helper: MigrationHelper, direction: Direction): Promise {\n const startVersion = direction === \"up\" ? this.fromVersion : this.toVersion;\n return Promise.resolve(helper.currentVersion === startVersion);\n }\n abstract migrate(helper: MigrationHelper): Promise;\n abstract rollback(helper: MigrationHelper): Promise;\n async updateVersion(helper: MigrationHelper, direction: Direction): Promise {\n const endVersion = direction === \"up\" ? this.toVersion : this.fromVersion;\n helper.currentVersion = endVersion;\n await helper.set(\"stateVersion\", endVersion);\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedAccountType = {\n profile?: {\n everHadUserKey?: boolean;\n };\n};\n\nconst USER_EVER_HAD_USER_KEY: KeyDefinitionLike = {\n key: \"everHadUserKey\",\n stateDefinition: {\n name: \"crypto\",\n },\n};\n\nexport class EverHadUserKeyMigrator extends Migrator<9, 10> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function migrateAccount(userId: string, account: ExpectedAccountType): Promise {\n const value = account?.profile?.everHadUserKey;\n await helper.setToUser(userId, USER_EVER_HAD_USER_KEY, value ?? false);\n if (value != null) {\n delete account.profile.everHadUserKey;\n }\n await helper.set(userId, account);\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n }\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function rollbackAccount(userId: string, account: ExpectedAccountType): Promise {\n const value = await helper.getFromUser(userId, USER_EVER_HAD_USER_KEY);\n if (account) {\n account.profile = Object.assign(account.profile ?? {}, {\n everHadUserKey: value,\n });\n await helper.set(userId, account);\n }\n await helper.setToUser(userId, USER_EVER_HAD_USER_KEY, null);\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype OrgKeyDataType = {\n type: \"organization\" | \"provider\";\n key: string;\n providerId?: string;\n};\n\ntype ExpectedAccountType = {\n keys?: {\n organizationKeys?: {\n encrypted?: Record;\n };\n };\n};\n\nconst USER_ENCRYPTED_ORGANIZATION_KEYS: KeyDefinitionLike = {\n key: \"organizationKeys\",\n stateDefinition: {\n name: \"crypto\",\n },\n};\n\nexport class OrganizationKeyMigrator extends Migrator<10, 11> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function migrateAccount(userId: string, account: ExpectedAccountType): Promise {\n const value = account?.keys?.organizationKeys?.encrypted;\n if (value != null) {\n await helper.setToUser(userId, USER_ENCRYPTED_ORGANIZATION_KEYS, value);\n delete account.keys.organizationKeys;\n await helper.set(userId, account);\n }\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n }\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function rollbackAccount(userId: string, account: ExpectedAccountType): Promise {\n const value = await helper.getFromUser>(\n userId,\n USER_ENCRYPTED_ORGANIZATION_KEYS,\n );\n if (account && value) {\n account.keys = Object.assign(account.keys ?? {}, {\n organizationKeys: {\n encrypted: value,\n },\n });\n await helper.set(userId, account);\n }\n await helper.setToUser(userId, USER_ENCRYPTED_ORGANIZATION_KEYS, null);\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n }\n}\n","import { KeyDefinitionLike, MigrationHelper, StateDefinitionLike } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype EnvironmentUrls = Record;\n\ntype ExpectedAccountType = {\n settings?: { region?: string; environmentUrls?: EnvironmentUrls };\n};\n\ntype ExpectedGlobalType = { region?: string; environmentUrls?: EnvironmentUrls };\n\nconst ENVIRONMENT_STATE: StateDefinitionLike = { name: \"environment\" };\n\nconst REGION_KEY: KeyDefinitionLike = { key: \"region\", stateDefinition: ENVIRONMENT_STATE };\nconst URLS_KEY: KeyDefinitionLike = { key: \"urls\", stateDefinition: ENVIRONMENT_STATE };\n\nexport class MoveEnvironmentStateToProviders extends Migrator<11, 12> {\n async migrate(helper: MigrationHelper): Promise {\n const legacyGlobal = await helper.get(\"global\");\n\n // Move global data\n if (legacyGlobal?.region != null) {\n await helper.setToGlobal(REGION_KEY, legacyGlobal.region);\n }\n\n if (legacyGlobal?.environmentUrls != null) {\n await helper.setToGlobal(URLS_KEY, legacyGlobal.environmentUrls);\n }\n\n const legacyAccounts = await helper.getAccounts();\n\n await Promise.all(\n legacyAccounts.map(async ({ userId, account }) => {\n // Move account data\n if (account?.settings?.region != null) {\n await helper.setToUser(userId, REGION_KEY, account.settings.region);\n }\n\n if (account?.settings?.environmentUrls != null) {\n await helper.setToUser(userId, URLS_KEY, account.settings.environmentUrls);\n }\n\n // Delete old account data\n delete account?.settings?.region;\n delete account?.settings?.environmentUrls;\n await helper.set(userId, account);\n }),\n );\n\n // Delete legacy global data\n delete legacyGlobal?.region;\n delete legacyGlobal?.environmentUrls;\n await helper.set(\"global\", legacyGlobal);\n }\n\n async rollback(helper: MigrationHelper): Promise {\n let legacyGlobal = await helper.get(\"global\");\n\n let updatedLegacyGlobal = false;\n\n const globalRegion = await helper.getFromGlobal(REGION_KEY);\n\n if (globalRegion) {\n if (!legacyGlobal) {\n legacyGlobal = {};\n }\n\n updatedLegacyGlobal = true;\n legacyGlobal.region = globalRegion;\n await helper.setToGlobal(REGION_KEY, null);\n }\n\n const globalUrls = await helper.getFromGlobal(URLS_KEY);\n\n if (globalUrls) {\n if (!legacyGlobal) {\n legacyGlobal = {};\n }\n\n updatedLegacyGlobal = true;\n legacyGlobal.environmentUrls = globalUrls;\n await helper.setToGlobal(URLS_KEY, null);\n }\n\n if (updatedLegacyGlobal) {\n await helper.set(\"global\", legacyGlobal);\n }\n\n async function rollbackUser(userId: string, account: ExpectedAccountType) {\n let updatedAccount = false;\n const userRegion = await helper.getFromUser(userId, REGION_KEY);\n\n if (userRegion) {\n if (!account) {\n account = {};\n }\n\n if (!account.settings) {\n account.settings = {};\n }\n\n updatedAccount = true;\n account.settings.region = userRegion;\n await helper.setToUser(userId, REGION_KEY, null);\n }\n\n const userUrls = await helper.getFromUser(userId, URLS_KEY);\n\n if (userUrls) {\n if (!account) {\n account = {};\n }\n\n if (!account.settings) {\n account.settings = {};\n }\n\n updatedAccount = true;\n account.settings.environmentUrls = userUrls;\n await helper.setToUser(userId, URLS_KEY, null);\n }\n\n if (updatedAccount) {\n await helper.set(userId, account);\n }\n }\n\n const accounts = await helper.getAccounts();\n\n await Promise.all(accounts.map(({ userId, account }) => rollbackUser(userId, account)));\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedAccountType = {\n keys?: {\n providerKeys?: {\n encrypted?: Record; // Record where EncryptedString is the ProviderKey encrypted by the UserKey.\n };\n };\n};\n\nconst USER_ENCRYPTED_PROVIDER_KEYS: KeyDefinitionLike = {\n key: \"providerKeys\",\n stateDefinition: {\n name: \"crypto\",\n },\n};\n\nexport class ProviderKeyMigrator extends Migrator<12, 13> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function migrateAccount(userId: string, account: ExpectedAccountType): Promise {\n const value = account?.keys?.providerKeys?.encrypted;\n if (value != null) {\n await helper.setToUser(userId, USER_ENCRYPTED_PROVIDER_KEYS, value);\n delete account.keys.providerKeys;\n await helper.set(userId, account);\n }\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n }\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function rollbackAccount(userId: string, account: ExpectedAccountType): Promise {\n const value = await helper.getFromUser>(\n userId,\n USER_ENCRYPTED_PROVIDER_KEYS,\n );\n if (account && value) {\n account.keys = Object.assign(account.keys ?? {}, {\n providerKeys: {\n encrypted: value,\n },\n });\n await helper.set(userId, account);\n }\n await helper.setToUser(userId, USER_ENCRYPTED_PROVIDER_KEYS, null);\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedAccountType = {\n settings?: {\n disableAutoBiometricsPrompt?: boolean;\n biometricUnlock?: boolean;\n dismissedBiometricRequirePasswordOnStartCallout?: boolean;\n };\n keys?: { biometricEncryptionClientKeyHalf?: string };\n};\n\n// Biometric text, no auto prompt text, fingerprint validated, and prompt cancelled are refreshed on every app start, so we don't need to migrate them\nexport const CLIENT_KEY_HALF: KeyDefinitionLike = {\n key: \"clientKeyHalf\",\n stateDefinition: { name: \"biometricSettings\" },\n};\n\nexport class MoveBiometricClientKeyHalfToStateProviders extends Migrator<13, 14> {\n async migrate(helper: MigrationHelper): Promise {\n const legacyAccounts = await helper.getAccounts();\n\n await Promise.all(\n legacyAccounts.map(async ({ userId, account }) => {\n // Move account data\n if (account?.keys?.biometricEncryptionClientKeyHalf != null) {\n await helper.setToUser(\n userId,\n CLIENT_KEY_HALF,\n account.keys.biometricEncryptionClientKeyHalf,\n );\n\n // Delete old account data\n delete account?.keys?.biometricEncryptionClientKeyHalf;\n await helper.set(userId, account);\n }\n }),\n );\n }\n\n async rollback(helper: MigrationHelper): Promise {\n async function rollbackUser(userId: string, account: ExpectedAccountType) {\n let updatedAccount = false;\n\n const userKeyHalf = await helper.getFromUser(userId, CLIENT_KEY_HALF);\n\n if (userKeyHalf) {\n account ??= {};\n account.keys ??= {};\n\n updatedAccount = true;\n account.keys.biometricEncryptionClientKeyHalf = userKeyHalf;\n await helper.setToUser(userId, CLIENT_KEY_HALF, null);\n }\n\n if (updatedAccount) {\n await helper.set(userId, account);\n }\n }\n\n const accounts = await helper.getAccounts();\n\n await Promise.all(accounts.map(({ userId, account }) => rollbackUser(userId, account)));\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype FolderDataType = {\n id: string;\n name: string;\n revisionDate: string;\n};\n\ntype ExpectedAccountType = {\n data?: {\n folders?: {\n encrypted?: Record;\n };\n };\n};\n\nconst USER_ENCRYPTED_FOLDERS: KeyDefinitionLike = {\n key: \"folders\",\n stateDefinition: {\n name: \"folder\",\n },\n};\n\nexport class FolderMigrator extends Migrator<14, 15> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function migrateAccount(userId: string, account: ExpectedAccountType): Promise {\n const value = account?.data?.folders?.encrypted;\n if (value != null) {\n await helper.setToUser(userId, USER_ENCRYPTED_FOLDERS, value);\n delete account.data.folders;\n await helper.set(userId, account);\n }\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function rollbackAccount(userId: string, account: ExpectedAccountType): Promise {\n const value = await helper.getFromUser(userId, USER_ENCRYPTED_FOLDERS);\n if (account) {\n account.data = Object.assign(account.data ?? {}, {\n folders: {\n encrypted: value,\n },\n });\n await helper.set(userId, account);\n }\n await helper.setToUser(userId, USER_ENCRYPTED_FOLDERS, null);\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedAccountType = {\n profile?: {\n lastSync?: string;\n };\n};\n\nconst LAST_SYNC_KEY: KeyDefinitionLike = {\n key: \"lastSync\",\n stateDefinition: {\n name: \"sync\",\n },\n};\n\nexport class LastSyncMigrator extends Migrator<15, 16> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function migrateAccount(userId: string, account: ExpectedAccountType): Promise {\n const value = account?.profile?.lastSync;\n await helper.setToUser(userId, LAST_SYNC_KEY, value ?? null);\n if (value != null) {\n delete account.profile.lastSync;\n await helper.set(userId, account);\n }\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n }\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n async function rollbackAccount(userId: string, account: ExpectedAccountType): Promise {\n const value = await helper.getFromUser(userId, LAST_SYNC_KEY);\n if (account) {\n account.profile = Object.assign(account.profile ?? {}, {\n lastSync: value,\n });\n await helper.set(userId, account);\n }\n await helper.setToUser(userId, LAST_SYNC_KEY, null);\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedGlobalType = {\n enablePasskeys?: boolean;\n};\n\nconst USER_ENABLE_PASSKEYS: KeyDefinitionLike = {\n key: \"enablePasskeys\",\n stateDefinition: {\n name: \"vaultSettings\",\n },\n};\n\nexport class EnablePasskeysMigrator extends Migrator<16, 17> {\n async migrate(helper: MigrationHelper): Promise {\n const global = await helper.get(\"global\");\n\n if (global?.enablePasskeys != null) {\n await helper.setToGlobal(USER_ENABLE_PASSKEYS, global.enablePasskeys);\n delete global?.enablePasskeys;\n await helper.set(\"global\", global);\n }\n }\n\n async rollback(helper: MigrationHelper): Promise {\n let global = await helper.get(\"global\");\n const globalEnablePasskeys = await helper.getFromGlobal(USER_ENABLE_PASSKEYS);\n\n if (globalEnablePasskeys != null) {\n global = Object.assign(global ?? {}, { enablePasskeys: globalEnablePasskeys });\n await helper.set(\"global\", global);\n await helper.setToGlobal(USER_ENABLE_PASSKEYS, undefined);\n }\n }\n}\n","import { StateDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\nconst AutofillOverlayVisibility = {\n Off: 0,\n OnButtonClick: 1,\n OnFieldFocus: 2,\n} as const;\n\ntype InlineMenuVisibilitySetting =\n (typeof AutofillOverlayVisibility)[keyof typeof AutofillOverlayVisibility];\n\ntype ExpectedAccountState = {\n settings?: {\n autoFillOnPageLoadDefault?: boolean;\n enableAutoFillOnPageLoad?: boolean;\n dismissedAutoFillOnPageLoadCallout?: boolean;\n disableAutoTotpCopy?: boolean;\n activateAutoFillOnPageLoadFromPolicy?: InlineMenuVisibilitySetting;\n };\n};\n\ntype ExpectedGlobalState = { autoFillOverlayVisibility?: InlineMenuVisibilitySetting };\n\nconst autofillSettingsStateDefinition: {\n stateDefinition: StateDefinitionLike;\n} = {\n stateDefinition: {\n name: \"autofillSettings\",\n },\n};\n\nexport class AutofillSettingsKeyMigrator extends Migrator<17, 18> {\n async migrate(helper: MigrationHelper): Promise {\n // global state (e.g. \"autoFillOverlayVisibility -> inlineMenuVisibility\")\n const globalState = await helper.get(\"global\");\n\n if (globalState?.autoFillOverlayVisibility != null) {\n await helper.setToGlobal(\n {\n stateDefinition: {\n name: \"autofillSettingsLocal\",\n },\n key: \"inlineMenuVisibility\",\n },\n globalState.autoFillOverlayVisibility,\n );\n\n // delete `autoFillOverlayVisibility` from state global\n delete globalState.autoFillOverlayVisibility;\n\n await helper.set(\"global\", globalState);\n }\n\n // account state (e.g. account settings -> state provider framework keys)\n const accounts = await helper.getAccounts();\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n\n // migrate account state\n async function migrateAccount(userId: string, account: ExpectedAccountState): Promise {\n let updateAccount = false;\n const accountSettings = account?.settings;\n\n if (accountSettings?.autoFillOnPageLoadDefault != null) {\n await helper.setToUser(\n userId,\n { ...autofillSettingsStateDefinition, key: \"autofillOnPageLoadDefault\" },\n accountSettings.autoFillOnPageLoadDefault,\n );\n delete account.settings.autoFillOnPageLoadDefault;\n updateAccount = true;\n }\n\n if (accountSettings?.enableAutoFillOnPageLoad != null) {\n await helper.setToUser(\n userId,\n { ...autofillSettingsStateDefinition, key: \"autofillOnPageLoad\" },\n accountSettings?.enableAutoFillOnPageLoad,\n );\n delete account.settings.enableAutoFillOnPageLoad;\n updateAccount = true;\n }\n\n if (accountSettings?.dismissedAutoFillOnPageLoadCallout != null) {\n await helper.setToUser(\n userId,\n { ...autofillSettingsStateDefinition, key: \"autofillOnPageLoadCalloutIsDismissed\" },\n accountSettings?.dismissedAutoFillOnPageLoadCallout,\n );\n delete account.settings.dismissedAutoFillOnPageLoadCallout;\n updateAccount = true;\n }\n\n if (accountSettings?.disableAutoTotpCopy != null) {\n await helper.setToUser(\n userId,\n { ...autofillSettingsStateDefinition, key: \"autoCopyTotp\" },\n // invert the value to match the new naming convention\n !accountSettings?.disableAutoTotpCopy,\n );\n delete account.settings.disableAutoTotpCopy;\n updateAccount = true;\n }\n\n if (accountSettings?.activateAutoFillOnPageLoadFromPolicy != null) {\n await helper.setToUser(\n userId,\n {\n stateDefinition: {\n name: \"autofillSettingsLocal\",\n },\n key: \"activateAutofillOnPageLoadFromPolicy\",\n },\n accountSettings?.activateAutoFillOnPageLoadFromPolicy,\n );\n delete account.settings.activateAutoFillOnPageLoadFromPolicy;\n updateAccount = true;\n }\n\n if (updateAccount) {\n // update the state account settings with the migrated values deleted\n await helper.set(userId, account);\n }\n }\n }\n\n async rollback(helper: MigrationHelper): Promise {\n // global state (e.g. \"inlineMenuVisibility -> autoFillOverlayVisibility\")\n const globalState = (await helper.get(\"global\")) || {};\n const inlineMenuVisibility: InlineMenuVisibilitySetting = await helper.getFromGlobal({\n stateDefinition: {\n name: \"autofillSettingsLocal\",\n },\n key: \"inlineMenuVisibility\",\n });\n\n if (inlineMenuVisibility) {\n await helper.set(\"global\", {\n ...globalState,\n autoFillOverlayVisibility: inlineMenuVisibility,\n });\n\n // remove the global state provider framework key for `inlineMenuVisibility`\n await helper.setToGlobal(\n {\n stateDefinition: {\n name: \"autofillSettingsLocal\",\n },\n key: \"inlineMenuVisibility\",\n },\n null,\n );\n }\n\n // account state (e.g. state provider framework keys -> account settings)\n const accounts = await helper.getAccounts();\n\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n\n // rollback account state\n async function rollbackAccount(userId: string, account: ExpectedAccountState): Promise {\n let updateAccount = false;\n let settings = account?.settings || {};\n\n const autoFillOnPageLoadDefault: boolean = await helper.getFromUser(userId, {\n ...autofillSettingsStateDefinition,\n key: \"autofillOnPageLoadDefault\",\n });\n\n const enableAutoFillOnPageLoad: boolean = await helper.getFromUser(userId, {\n ...autofillSettingsStateDefinition,\n key: \"autofillOnPageLoad\",\n });\n\n const dismissedAutoFillOnPageLoadCallout: boolean = await helper.getFromUser(userId, {\n ...autofillSettingsStateDefinition,\n key: \"autofillOnPageLoadCalloutIsDismissed\",\n });\n\n const autoCopyTotp: boolean = await helper.getFromUser(userId, {\n ...autofillSettingsStateDefinition,\n key: \"autoCopyTotp\",\n });\n\n const activateAutoFillOnPageLoadFromPolicy: InlineMenuVisibilitySetting =\n await helper.getFromUser(userId, {\n stateDefinition: {\n name: \"autofillSettingsLocal\",\n },\n key: \"activateAutofillOnPageLoadFromPolicy\",\n });\n\n // update new settings and remove the account state provider framework keys for the rolled back values\n if (autoFillOnPageLoadDefault != null) {\n settings = { ...settings, autoFillOnPageLoadDefault };\n\n await helper.setToUser(\n userId,\n { ...autofillSettingsStateDefinition, key: \"autofillOnPageLoadDefault\" },\n null,\n );\n\n updateAccount = true;\n }\n\n if (enableAutoFillOnPageLoad != null) {\n settings = { ...settings, enableAutoFillOnPageLoad };\n\n await helper.setToUser(\n userId,\n { ...autofillSettingsStateDefinition, key: \"autofillOnPageLoad\" },\n null,\n );\n\n updateAccount = true;\n }\n\n if (dismissedAutoFillOnPageLoadCallout != null) {\n settings = { ...settings, dismissedAutoFillOnPageLoadCallout };\n\n await helper.setToUser(\n userId,\n { ...autofillSettingsStateDefinition, key: \"autofillOnPageLoadCalloutIsDismissed\" },\n null,\n );\n\n updateAccount = true;\n }\n\n if (autoCopyTotp != null) {\n // invert the value to match the new naming convention\n settings = { ...settings, disableAutoTotpCopy: !autoCopyTotp };\n\n await helper.setToUser(\n userId,\n { ...autofillSettingsStateDefinition, key: \"autoCopyTotp\" },\n null,\n );\n\n updateAccount = true;\n }\n\n if (activateAutoFillOnPageLoadFromPolicy != null) {\n settings = { ...settings, activateAutoFillOnPageLoadFromPolicy };\n\n await helper.setToUser(\n userId,\n {\n stateDefinition: {\n name: \"autofillSettingsLocal\",\n },\n key: \"activateAutofillOnPageLoadFromPolicy\",\n },\n null,\n );\n\n updateAccount = true;\n }\n\n if (updateAccount) {\n // commit updated settings to state\n await helper.set(userId, {\n ...account,\n settings,\n });\n }\n }\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedAccountType = {\n settings?: {\n requirePasswordOnStart?: boolean;\n };\n};\n\n// Biometric text, no auto prompt text, fingerprint validated, and prompt cancelled are refreshed on every app start, so we don't need to migrate them\nexport const REQUIRE_PASSWORD_ON_START: KeyDefinitionLike = {\n key: \"requirePasswordOnStart\",\n stateDefinition: { name: \"biometricSettings\" },\n};\n\nexport class RequirePasswordOnStartMigrator extends Migrator<18, 19> {\n async migrate(helper: MigrationHelper): Promise {\n const legacyAccounts = await helper.getAccounts();\n\n await Promise.all(\n legacyAccounts.map(async ({ userId, account }) => {\n // Move account data\n if (account?.settings?.requirePasswordOnStart != null) {\n await helper.setToUser(\n userId,\n REQUIRE_PASSWORD_ON_START,\n account.settings.requirePasswordOnStart,\n );\n\n // Delete old account data\n delete account.settings.requirePasswordOnStart;\n await helper.set(userId, account);\n }\n }),\n );\n }\n\n async rollback(helper: MigrationHelper): Promise {\n async function rollbackUser(userId: string, account: ExpectedAccountType) {\n const requirePassword = await helper.getFromUser(userId, REQUIRE_PASSWORD_ON_START);\n\n if (requirePassword) {\n account ??= {};\n account.settings ??= {};\n\n account.settings.requirePasswordOnStart = requirePassword;\n await helper.setToUser(userId, REQUIRE_PASSWORD_ON_START, null);\n await helper.set(userId, account);\n }\n }\n\n const accounts = await helper.getAccounts();\n\n await Promise.all(accounts.map(({ userId, account }) => rollbackUser(userId, account)));\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedAccountType = {\n keys?: {\n privateKey?: {\n encrypted?: string; // EncryptedString\n };\n };\n};\n\nconst USER_ENCRYPTED_PRIVATE_KEY: KeyDefinitionLike = {\n key: \"privateKey\",\n stateDefinition: {\n name: \"crypto\",\n },\n};\n\nexport class PrivateKeyMigrator extends Migrator<19, 20> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function migrateAccount(userId: string, account: ExpectedAccountType): Promise {\n const value = account?.keys?.privateKey?.encrypted;\n if (value != null) {\n await helper.setToUser(userId, USER_ENCRYPTED_PRIVATE_KEY, value);\n delete account.keys.privateKey;\n await helper.set(userId, account);\n }\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n }\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function rollbackAccount(userId: string, account: ExpectedAccountType): Promise {\n const value = await helper.getFromUser>(\n userId,\n USER_ENCRYPTED_PRIVATE_KEY,\n );\n if (account && value) {\n account.keys = Object.assign(account.keys ?? {}, {\n privateKey: {\n encrypted: value,\n },\n });\n await helper.set(userId, account);\n }\n await helper.setToUser(userId, USER_ENCRYPTED_PRIVATE_KEY, null);\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype CollectionDataType = {\n id: string;\n organizationId: string;\n name: string;\n externalId: string;\n readOnly: boolean;\n manage: boolean;\n hidePasswords: boolean;\n};\n\ntype ExpectedAccountType = {\n data?: {\n collections?: {\n encrypted?: Record;\n };\n };\n};\n\nconst USER_ENCRYPTED_COLLECTIONS: KeyDefinitionLike = {\n key: \"collections\",\n stateDefinition: {\n name: \"collection\",\n },\n};\n\nexport class CollectionMigrator extends Migrator<20, 21> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n async function migrateAccount(userId: string, account: ExpectedAccountType): Promise {\n const value = account?.data?.collections?.encrypted;\n if (value != null) {\n await helper.setToUser(userId, USER_ENCRYPTED_COLLECTIONS, value);\n delete account.data.collections;\n await helper.set(userId, account);\n }\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n async function rollbackAccount(userId: string, account: ExpectedAccountType): Promise {\n const value = await helper.getFromUser(userId, USER_ENCRYPTED_COLLECTIONS);\n if (account) {\n account.data = Object.assign(account.data ?? {}, {\n collections: {\n encrypted: value,\n },\n });\n\n await helper.set(userId, account);\n }\n await helper.setToUser(userId, USER_ENCRYPTED_COLLECTIONS, null);\n }\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedAccountType = {\n settings?: {\n collapsedGroupings?: string[];\n };\n};\n\nconst COLLAPSED_GROUPINGS: KeyDefinitionLike = {\n key: \"collapsedGroupings\",\n stateDefinition: {\n name: \"vaultFilter\",\n },\n};\n\nexport class CollapsedGroupingsMigrator extends Migrator<21, 22> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function migrateAccount(userId: string, account: ExpectedAccountType): Promise {\n const value = account?.settings?.collapsedGroupings;\n if (value != null) {\n await helper.setToUser(userId, COLLAPSED_GROUPINGS, value);\n delete account.settings.collapsedGroupings;\n await helper.set(userId, account);\n }\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function rollbackAccount(userId: string, account: ExpectedAccountType): Promise {\n const value = await helper.getFromUser(userId, COLLAPSED_GROUPINGS);\n if (account) {\n account.settings = Object.assign(account.settings ?? {}, {\n collapsedGroupings: value,\n });\n await helper.set(userId, account);\n }\n await helper.setToUser(userId, COLLAPSED_GROUPINGS, null);\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedAccountType = {\n settings?: {\n disableAutoBiometricsPrompt?: boolean;\n dismissedBiometricRequirePasswordOnStartCallout?: boolean;\n };\n};\n\n// prompt cancelled is refreshed on every app start/quit/unlock, so we don't need to migrate it\n\nexport const DISMISSED_BIOMETRIC_REQUIRE_PASSWORD_ON_START_CALLOUT: KeyDefinitionLike = {\n key: \"dismissedBiometricRequirePasswordOnStartCallout\",\n stateDefinition: { name: \"biometricSettings\" },\n};\n\nexport const PROMPT_AUTOMATICALLY: KeyDefinitionLike = {\n key: \"promptAutomatically\",\n stateDefinition: { name: \"biometricSettings\" },\n};\n\nexport class MoveBiometricPromptsToStateProviders extends Migrator<22, 23> {\n async migrate(helper: MigrationHelper): Promise {\n const legacyAccounts = await helper.getAccounts();\n\n await Promise.all(\n legacyAccounts.map(async ({ userId, account }) => {\n if (account == null) {\n return;\n }\n // Move account data\n\n if (account?.settings?.dismissedBiometricRequirePasswordOnStartCallout != null) {\n await helper.setToUser(\n userId,\n DISMISSED_BIOMETRIC_REQUIRE_PASSWORD_ON_START_CALLOUT,\n account.settings.dismissedBiometricRequirePasswordOnStartCallout,\n );\n }\n\n if (account?.settings?.disableAutoBiometricsPrompt != null) {\n await helper.setToUser(\n userId,\n PROMPT_AUTOMATICALLY,\n !account.settings.disableAutoBiometricsPrompt,\n );\n }\n\n // Delete old account data\n delete account?.settings?.dismissedBiometricRequirePasswordOnStartCallout;\n delete account?.settings?.disableAutoBiometricsPrompt;\n await helper.set(userId, account);\n }),\n );\n }\n\n async rollback(helper: MigrationHelper): Promise {\n async function rollbackUser(userId: string, account: ExpectedAccountType) {\n let updatedAccount = false;\n\n const userDismissed = await helper.getFromUser(\n userId,\n DISMISSED_BIOMETRIC_REQUIRE_PASSWORD_ON_START_CALLOUT,\n );\n\n if (userDismissed) {\n account ??= {};\n account.settings ??= {};\n\n updatedAccount = true;\n account.settings.dismissedBiometricRequirePasswordOnStartCallout = userDismissed;\n await helper.setToUser(userId, DISMISSED_BIOMETRIC_REQUIRE_PASSWORD_ON_START_CALLOUT, null);\n }\n\n const userPromptAutomatically = await helper.getFromUser(\n userId,\n PROMPT_AUTOMATICALLY,\n );\n\n if (userPromptAutomatically != null) {\n account ??= {};\n account.settings ??= {};\n\n updatedAccount = true;\n account.settings.disableAutoBiometricsPrompt = !userPromptAutomatically;\n await helper.setToUser(userId, PROMPT_AUTOMATICALLY, null);\n }\n\n if (updatedAccount) {\n await helper.set(userId, account);\n }\n }\n\n const accounts = await helper.getAccounts();\n\n await Promise.all(accounts.map(({ userId, account }) => rollbackUser(userId, account)));\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedAccountType = {\n settings?: {\n smOnboardingTasks?: Record>;\n };\n};\n\nexport const SM_ONBOARDING_TASKS: KeyDefinitionLike = {\n key: \"tasks\",\n stateDefinition: { name: \"smOnboarding\" },\n};\n\nexport class SmOnboardingTasksMigrator extends Migrator<23, 24> {\n async migrate(helper: MigrationHelper): Promise {\n const legacyAccounts = await helper.getAccounts();\n\n await Promise.all(\n legacyAccounts.map(async ({ userId, account }) => {\n // Move account data\n if (account?.settings?.smOnboardingTasks != null) {\n await helper.setToUser(userId, SM_ONBOARDING_TASKS, account.settings.smOnboardingTasks);\n\n // Delete old account data\n delete account.settings.smOnboardingTasks;\n await helper.set(userId, account);\n }\n }),\n );\n }\n\n async rollback(helper: MigrationHelper): Promise {\n async function rollbackUser(userId: string, account: ExpectedAccountType) {\n const smOnboardingTasks = await helper.getFromUser>>(\n userId,\n SM_ONBOARDING_TASKS,\n );\n if (smOnboardingTasks) {\n account ??= {};\n account.settings ??= {};\n\n account.settings.smOnboardingTasks = smOnboardingTasks;\n await helper.setToUser(userId, SM_ONBOARDING_TASKS, null);\n await helper.set(userId, account);\n }\n }\n\n const accounts = await helper.getAccounts();\n\n await Promise.all(accounts.map(({ userId, account }) => rollbackUser(userId, account)));\n }\n}\n","import { StateDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\nconst ClearClipboardDelay = {\n Never: null as null,\n TenSeconds: 10,\n TwentySeconds: 20,\n ThirtySeconds: 30,\n OneMinute: 60,\n TwoMinutes: 120,\n FiveMinutes: 300,\n} as const;\n\ntype ClearClipboardDelaySetting = (typeof ClearClipboardDelay)[keyof typeof ClearClipboardDelay];\n\ntype ExpectedAccountState = {\n settings?: {\n clearClipboard?: ClearClipboardDelaySetting;\n };\n};\n\nconst autofillSettingsLocalStateDefinition: {\n stateDefinition: StateDefinitionLike;\n} = {\n stateDefinition: {\n name: \"autofillSettingsLocal\",\n },\n};\n\nexport class ClearClipboardDelayMigrator extends Migrator<24, 25> {\n async migrate(helper: MigrationHelper): Promise {\n // account state (e.g. account settings -> state provider framework keys)\n const accounts = await helper.getAccounts();\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n\n // migrate account state\n async function migrateAccount(userId: string, account: ExpectedAccountState): Promise {\n const accountSettings = account?.settings;\n\n if (accountSettings?.clearClipboard !== undefined) {\n await helper.setToUser(\n userId,\n { ...autofillSettingsLocalStateDefinition, key: \"clearClipboardDelay\" },\n accountSettings.clearClipboard,\n );\n delete account.settings.clearClipboard;\n\n // update the state account settings with the migrated values deleted\n await helper.set(userId, account);\n }\n }\n }\n\n async rollback(helper: MigrationHelper): Promise {\n // account state (e.g. state provider framework keys -> account settings)\n const accounts = await helper.getAccounts();\n\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n\n // rollback account state\n async function rollbackAccount(userId: string, account: ExpectedAccountState): Promise {\n let settings = account?.settings || {};\n\n const clearClipboardDelay: ClearClipboardDelaySetting = await helper.getFromUser(userId, {\n ...autofillSettingsLocalStateDefinition,\n key: \"clearClipboardDelay\",\n });\n\n // update new settings and remove the account state provider framework keys for the rolled back values\n if (clearClipboardDelay !== undefined) {\n settings = { ...settings, clearClipboard: clearClipboardDelay };\n\n await helper.setToUser(\n userId,\n { ...autofillSettingsLocalStateDefinition, key: \"clearClipboardDelay\" },\n null,\n );\n\n // commit updated settings to state\n await helper.set(userId, {\n ...account,\n settings,\n });\n }\n }\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedAccountType = {\n profile?: {\n lastSync?: string;\n };\n};\n\nconst LAST_SYNC_KEY: KeyDefinitionLike = {\n key: \"lastSync\",\n stateDefinition: {\n name: \"sync\",\n },\n};\n\nexport class RevertLastSyncMigrator extends Migrator<25, 26> {\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function rollbackAccount(userId: string, account: ExpectedAccountType): Promise {\n const value = account?.profile?.lastSync;\n await helper.setToUser(userId, LAST_SYNC_KEY, value ?? null);\n if (value != null) {\n delete account.profile.lastSync;\n await helper.set(userId, account);\n }\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n }\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n async function migrateAccount(userId: string, account: ExpectedAccountType): Promise {\n const value = await helper.getFromUser(userId, LAST_SYNC_KEY);\n if (account) {\n account.profile = Object.assign(account.profile ?? {}, {\n lastSync: value,\n });\n await helper.set(userId, account);\n }\n await helper.setToUser(userId, LAST_SYNC_KEY, null);\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedAccountState = {\n settings?: {\n disableBadgeCounter?: boolean;\n };\n};\n\nconst enableBadgeCounterKeyDefinition: KeyDefinitionLike = {\n stateDefinition: {\n name: \"badgeSettings\",\n },\n key: \"enableBadgeCounter\",\n};\n\nexport class BadgeSettingsMigrator extends Migrator<26, 27> {\n async migrate(helper: MigrationHelper): Promise {\n // account state (e.g. account settings -> state provider framework keys)\n const accounts = await helper.getAccounts();\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n\n // migrate account state\n async function migrateAccount(userId: string, account: ExpectedAccountState): Promise {\n const accountSettings = account?.settings;\n\n if (accountSettings?.disableBadgeCounter != undefined) {\n await helper.setToUser(\n userId,\n enableBadgeCounterKeyDefinition,\n !accountSettings.disableBadgeCounter,\n );\n delete account.settings.disableBadgeCounter;\n\n // update the state account settings with the migrated values deleted\n await helper.set(userId, account);\n }\n }\n }\n\n async rollback(helper: MigrationHelper): Promise {\n // account state (e.g. state provider framework keys -> account settings)\n const accounts = await helper.getAccounts();\n\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n\n // rollback account state\n async function rollbackAccount(userId: string, account: ExpectedAccountState): Promise {\n let settings = account?.settings || {};\n\n const enableBadgeCounter: boolean = await helper.getFromUser(\n userId,\n enableBadgeCounterKeyDefinition,\n );\n\n // update new settings and remove the account state provider framework keys for the rolled back values\n if (enableBadgeCounter != undefined) {\n settings = { ...settings, disableBadgeCounter: !enableBadgeCounter };\n\n await helper.setToUser(userId, enableBadgeCounterKeyDefinition, null);\n\n // commit updated settings to state\n await helper.set(userId, {\n ...account,\n settings,\n });\n }\n }\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedAccountType = {\n settings?: {\n biometricUnlock?: boolean;\n };\n};\n\nexport const BIOMETRIC_UNLOCK_ENABLED: KeyDefinitionLike = {\n key: \"biometricUnlockEnabled\",\n stateDefinition: { name: \"biometricSettings\" },\n};\n\nexport class MoveBiometricUnlockToStateProviders extends Migrator<27, 28> {\n async migrate(helper: MigrationHelper): Promise {\n const legacyAccounts = await helper.getAccounts();\n\n await Promise.all(\n legacyAccounts.map(async ({ userId, account }) => {\n if (account == null) {\n return;\n }\n // Move account data\n if (account?.settings?.biometricUnlock != null) {\n await helper.setToUser(\n userId,\n BIOMETRIC_UNLOCK_ENABLED,\n account.settings.biometricUnlock,\n );\n }\n\n // Delete old account data\n delete account?.settings?.biometricUnlock;\n await helper.set(userId, account);\n }),\n );\n }\n\n async rollback(helper: MigrationHelper): Promise {\n async function rollbackUser(userId: string, account: ExpectedAccountType) {\n const biometricUnlock = await helper.getFromUser(userId, BIOMETRIC_UNLOCK_ENABLED);\n\n if (biometricUnlock != null) {\n account ??= {};\n account.settings ??= {};\n\n account.settings.biometricUnlock = biometricUnlock;\n await helper.setToUser(userId, BIOMETRIC_UNLOCK_ENABLED, null);\n await helper.set(userId, account);\n }\n }\n\n const accounts = await helper.getAccounts();\n\n await Promise.all(accounts.map(({ userId, account }) => rollbackUser(userId, account)));\n }\n}\n","import { MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedGlobalState = {\n disableAddLoginNotification?: boolean;\n disableChangedPasswordNotification?: boolean;\n};\n\nexport class UserNotificationSettingsKeyMigrator extends Migrator<28, 29> {\n async migrate(helper: MigrationHelper): Promise {\n const globalState = await helper.get(\"global\");\n\n // disableAddLoginNotification -> enableAddedLoginPrompt\n if (globalState?.disableAddLoginNotification != null) {\n await helper.setToGlobal(\n {\n stateDefinition: {\n name: \"userNotificationSettings\",\n },\n key: \"enableAddedLoginPrompt\",\n },\n !globalState.disableAddLoginNotification,\n );\n\n // delete `disableAddLoginNotification` from state global\n delete globalState.disableAddLoginNotification;\n\n await helper.set(\"global\", globalState);\n }\n\n // disableChangedPasswordNotification -> enableChangedPasswordPrompt\n if (globalState?.disableChangedPasswordNotification != null) {\n await helper.setToGlobal(\n {\n stateDefinition: {\n name: \"userNotificationSettings\",\n },\n key: \"enableChangedPasswordPrompt\",\n },\n !globalState.disableChangedPasswordNotification,\n );\n\n // delete `disableChangedPasswordNotification` from state global\n delete globalState.disableChangedPasswordNotification;\n\n await helper.set(\"global\", globalState);\n }\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const globalState = (await helper.get(\"global\")) || {};\n\n const enableAddedLoginPrompt: boolean = await helper.getFromGlobal({\n stateDefinition: {\n name: \"userNotificationSettings\",\n },\n key: \"enableAddedLoginPrompt\",\n });\n\n const enableChangedPasswordPrompt: boolean = await helper.getFromGlobal({\n stateDefinition: {\n name: \"userNotificationSettings\",\n },\n key: \"enableChangedPasswordPrompt\",\n });\n\n // enableAddedLoginPrompt -> disableAddLoginNotification\n if (enableAddedLoginPrompt) {\n await helper.set(\"global\", {\n ...globalState,\n disableAddLoginNotification: !enableAddedLoginPrompt,\n });\n\n // remove the global state provider framework key for `enableAddedLoginPrompt`\n await helper.setToGlobal(\n {\n stateDefinition: {\n name: \"userNotificationSettings\",\n },\n key: \"enableAddedLoginPrompt\",\n },\n null,\n );\n }\n\n // enableChangedPasswordPrompt -> disableChangedPasswordNotification\n if (enableChangedPasswordPrompt) {\n await helper.set(\"global\", {\n ...globalState,\n disableChangedPasswordNotification: !enableChangedPasswordPrompt,\n });\n\n // remove the global state provider framework key for `enableChangedPasswordPrompt`\n await helper.setToGlobal(\n {\n stateDefinition: {\n name: \"userNotificationSettings\",\n },\n key: \"enableChangedPasswordPrompt\",\n },\n null,\n );\n }\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\nenum PolicyType {\n TwoFactorAuthentication = 0, // Requires users to have 2fa enabled\n MasterPassword = 1, // Sets minimum requirements for master password complexity\n PasswordGenerator = 2, // Sets minimum requirements/default type for generated passwords/passphrases\n SingleOrg = 3, // Allows users to only be apart of one organization\n RequireSso = 4, // Requires users to authenticate with SSO\n PersonalOwnership = 5, // Disables personal vault ownership for adding/cloning items\n DisableSend = 6, // Disables the ability to create and edit Bitwarden Sends\n SendOptions = 7, // Sets restrictions or defaults for Bitwarden Sends\n ResetPassword = 8, // Allows orgs to use reset password : also can enable auto-enrollment during invite flow\n MaximumVaultTimeout = 9, // Sets the maximum allowed vault timeout\n DisablePersonalVaultExport = 10, // Disable personal vault export\n ActivateAutofill = 11, // Activates autofill with page load on the browser extension\n}\n\ntype PolicyDataType = {\n id: string;\n organizationId: string;\n type: PolicyType;\n data: Record;\n enabled: boolean;\n};\n\ntype ExpectedAccountType = {\n data?: {\n policies?: {\n encrypted?: Record;\n };\n };\n};\n\nconst POLICIES_KEY: KeyDefinitionLike = {\n key: \"policies\",\n stateDefinition: {\n name: \"policies\",\n },\n};\n\nexport class PolicyMigrator extends Migrator<29, 30> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n async function migrateAccount(userId: string, account: ExpectedAccountType): Promise {\n const value = account?.data?.policies?.encrypted;\n if (value != null) {\n await helper.setToUser(userId, POLICIES_KEY, value);\n delete account.data.policies;\n await helper.set(userId, account);\n }\n }\n\n await Promise.all(accounts.map(({ userId, account }) => migrateAccount(userId, account)));\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n async function rollbackAccount(userId: string, account: ExpectedAccountType): Promise {\n const value = await helper.getFromUser(userId, POLICIES_KEY);\n if (account) {\n account.data = Object.assign(account.data ?? {}, {\n policies: {\n encrypted: value,\n },\n });\n\n await helper.set(userId, account);\n }\n await helper.setToUser(userId, POLICIES_KEY, null);\n }\n await Promise.all(accounts.map(({ userId, account }) => rollbackAccount(userId, account)));\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedGlobalState = {\n disableContextMenuItem?: boolean;\n};\n\nconst enableContextMenuKeyDefinition: KeyDefinitionLike = {\n stateDefinition: {\n name: \"autofillSettings\",\n },\n key: \"enableContextMenu\",\n};\n\nexport class EnableContextMenuMigrator extends Migrator<30, 31> {\n async migrate(helper: MigrationHelper): Promise {\n const globalState = await helper.get(\"global\");\n\n // disableContextMenuItem -> enableContextMenu\n if (globalState?.disableContextMenuItem != null) {\n await helper.setToGlobal(enableContextMenuKeyDefinition, !globalState.disableContextMenuItem);\n\n // delete `disableContextMenuItem` from state global\n delete globalState.disableContextMenuItem;\n\n await helper.set(\"global\", globalState);\n }\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const globalState = (await helper.get(\"global\")) || {};\n\n const enableContextMenu: boolean = await helper.getFromGlobal(enableContextMenuKeyDefinition);\n\n // enableContextMenu -> disableContextMenuItem\n if (enableContextMenu != null) {\n await helper.set(\"global\", {\n ...globalState,\n disableContextMenuItem: !enableContextMenu,\n });\n\n // remove the global state provider framework key for `enableContextMenu`\n await helper.setToGlobal(enableContextMenuKeyDefinition, null);\n }\n }\n}\n","import { MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedGlobal = {\n locale?: string;\n};\n\nexport const LOCALE_KEY = {\n key: \"locale\",\n stateDefinition: {\n name: \"translation\",\n },\n};\n\nexport class PreferredLanguageMigrator extends Migrator<31, 32> {\n async migrate(helper: MigrationHelper): Promise {\n // global state\n const global = await helper.get(\"global\");\n if (!global?.locale) {\n return;\n }\n\n await helper.setToGlobal(LOCALE_KEY, global.locale);\n delete global.locale;\n await helper.set(\"global\", global);\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const locale = await helper.getFromGlobal(LOCALE_KEY);\n\n if (!locale) {\n return;\n }\n const global = (await helper.get(\"global\")) ?? {};\n global.locale = locale;\n await helper.set(\"global\", global);\n await helper.setToGlobal(LOCALE_KEY, null);\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\nexport const APP_ID_STORAGE_KEY = \"appId\";\nexport const ANONYMOUS_APP_ID_STORAGE_KEY = \"anonymousAppId\";\n\nexport const APP_ID_KEY: KeyDefinitionLike = {\n key: APP_ID_STORAGE_KEY,\n stateDefinition: { name: \"applicationId\" },\n};\n\nexport const ANONYMOUS_APP_ID_KEY: KeyDefinitionLike = {\n key: ANONYMOUS_APP_ID_STORAGE_KEY,\n stateDefinition: { name: \"applicationId\" },\n};\n\nexport class AppIdMigrator extends Migrator<32, 33> {\n async migrate(helper: MigrationHelper): Promise {\n const appId = await helper.get(APP_ID_STORAGE_KEY);\n const anonymousAppId = await helper.get(ANONYMOUS_APP_ID_STORAGE_KEY);\n\n if (appId != null) {\n await helper.setToGlobal(APP_ID_KEY, appId);\n await helper.set(APP_ID_STORAGE_KEY, null);\n }\n\n if (anonymousAppId != null) {\n await helper.setToGlobal(ANONYMOUS_APP_ID_KEY, anonymousAppId);\n await helper.set(ANONYMOUS_APP_ID_STORAGE_KEY, null);\n }\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const appId = await helper.getFromGlobal(APP_ID_KEY);\n const anonymousAppId = await helper.getFromGlobal(ANONYMOUS_APP_ID_KEY);\n\n if (appId != null) {\n await helper.set(APP_ID_STORAGE_KEY, appId);\n await helper.setToGlobal(APP_ID_KEY, null);\n }\n if (anonymousAppId != null) {\n await helper.set(ANONYMOUS_APP_ID_STORAGE_KEY, anonymousAppId);\n await helper.setToGlobal(ANONYMOUS_APP_ID_KEY, null);\n }\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\nconst UriMatchStrategy = {\n Domain: 0,\n Host: 1,\n StartsWith: 2,\n Exact: 3,\n RegularExpression: 4,\n Never: 5,\n} as const;\n\ntype UriMatchStrategySetting = (typeof UriMatchStrategy)[keyof typeof UriMatchStrategy];\n\ntype ExpectedAccountState = {\n settings?: {\n defaultUriMatch?: UriMatchStrategySetting;\n settings?: {\n equivalentDomains?: string[][];\n };\n };\n};\n\ntype ExpectedGlobalState = {\n neverDomains?: { [key: string]: null };\n};\n\nconst defaultUriMatchStrategyDefinition: KeyDefinitionLike = {\n stateDefinition: {\n name: \"domainSettings\",\n },\n key: \"defaultUriMatchStrategy\",\n};\n\nconst equivalentDomainsDefinition: KeyDefinitionLike = {\n stateDefinition: {\n name: \"domainSettings\",\n },\n key: \"equivalentDomains\",\n};\n\nconst neverDomainsDefinition: KeyDefinitionLike = {\n stateDefinition: {\n name: \"domainSettings\",\n },\n key: \"neverDomains\",\n};\n\nexport class DomainSettingsMigrator extends Migrator<33, 34> {\n async migrate(helper: MigrationHelper): Promise {\n let updateAccount = false;\n\n // global state (\"neverDomains\")\n const globalState = await helper.get(\"global\");\n\n if (globalState?.neverDomains != null) {\n await helper.setToGlobal(neverDomainsDefinition, globalState.neverDomains);\n\n // delete `neverDomains` from state global\n delete globalState.neverDomains;\n\n await helper.set(\"global\", globalState);\n }\n\n // account state (\"defaultUriMatch\" and \"settings.equivalentDomains\")\n const accounts = await helper.getAccounts();\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n\n // migrate account state\n async function migrateAccount(userId: string, account: ExpectedAccountState): Promise {\n const accountSettings = account?.settings;\n\n if (accountSettings?.defaultUriMatch != undefined) {\n await helper.setToUser(\n userId,\n defaultUriMatchStrategyDefinition,\n accountSettings.defaultUriMatch,\n );\n delete account.settings.defaultUriMatch;\n\n updateAccount = true;\n }\n\n if (accountSettings?.settings?.equivalentDomains != undefined) {\n await helper.setToUser(\n userId,\n equivalentDomainsDefinition,\n accountSettings.settings.equivalentDomains,\n );\n delete account.settings.settings.equivalentDomains;\n delete account.settings.settings;\n\n updateAccount = true;\n }\n\n if (updateAccount) {\n // update the state account settings with the migrated values deleted\n await helper.set(userId, account);\n }\n }\n }\n\n async rollback(helper: MigrationHelper): Promise {\n let updateAccount = false;\n\n // global state (\"neverDomains\")\n const globalState = (await helper.get(\"global\")) || {};\n const neverDomains: { [key: string]: null } =\n await helper.getFromGlobal(neverDomainsDefinition);\n\n if (neverDomains != null) {\n await helper.set(\"global\", {\n ...globalState,\n neverDomains: neverDomains,\n });\n\n // remove the global state provider framework key for `neverDomains`\n await helper.setToGlobal(neverDomainsDefinition, null);\n }\n\n // account state (\"defaultUriMatchStrategy\" and \"equivalentDomains\")\n const accounts = await helper.getAccounts();\n\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n\n // rollback account state\n async function rollbackAccount(userId: string, account: ExpectedAccountState): Promise {\n let settings = account?.settings || {};\n\n const defaultUriMatchStrategy: UriMatchStrategySetting = await helper.getFromUser(\n userId,\n defaultUriMatchStrategyDefinition,\n );\n\n const equivalentDomains: string[][] = await helper.getFromUser(\n userId,\n equivalentDomainsDefinition,\n );\n\n // update new settings and remove the account state provider framework keys for the rolled back values\n if (defaultUriMatchStrategy != null) {\n settings = { ...settings, defaultUriMatch: defaultUriMatchStrategy };\n\n await helper.setToUser(userId, defaultUriMatchStrategyDefinition, null);\n\n updateAccount = true;\n }\n\n if (equivalentDomains != null) {\n settings = { ...settings, settings: { equivalentDomains } };\n\n await helper.setToUser(userId, equivalentDomainsDefinition, null);\n\n updateAccount = true;\n }\n\n // commit updated settings to state\n if (updateAccount) {\n await helper.set(userId, {\n ...account,\n settings,\n });\n }\n }\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedGlobal = { theme?: string };\n\nconst THEME_SELECTION: KeyDefinitionLike = {\n key: \"selection\",\n stateDefinition: { name: \"theming\" },\n};\n\nexport class MoveThemeToStateProviderMigrator extends Migrator<34, 35> {\n async migrate(helper: MigrationHelper): Promise {\n const legacyGlobalState = await helper.get(\"global\");\n const theme = legacyGlobalState?.theme;\n if (theme != null) {\n await helper.setToGlobal(THEME_SELECTION, theme);\n delete legacyGlobalState.theme;\n await helper.set(\"global\", legacyGlobalState);\n }\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const theme = await helper.getFromGlobal(THEME_SELECTION);\n if (theme != null) {\n const legacyGlobal = (await helper.get(\"global\")) ?? {};\n legacyGlobal.theme = theme;\n await helper.set(\"global\", legacyGlobal);\n await helper.removeFromGlobal(THEME_SELECTION);\n }\n }\n}\n","import { MigrationHelper, StateDefinitionLike } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedAccountState = {\n settings?: {\n dontShowCardsCurrentTab?: boolean;\n dontShowIdentitiesCurrentTab?: boolean;\n };\n};\n\nconst vaultSettingsStateDefinition: {\n stateDefinition: StateDefinitionLike;\n} = {\n stateDefinition: {\n name: \"vaultSettings\",\n },\n};\n\nexport class VaultSettingsKeyMigrator extends Migrator<35, 36> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n\n async function migrateAccount(userId: string, account: ExpectedAccountState): Promise {\n let updateAccount = false;\n const accountSettings = account?.settings;\n\n if (accountSettings?.dontShowCardsCurrentTab != null) {\n await helper.setToUser(\n userId,\n { ...vaultSettingsStateDefinition, key: \"showCardsCurrentTab\" },\n !accountSettings.dontShowCardsCurrentTab,\n );\n delete account.settings.dontShowCardsCurrentTab;\n updateAccount = true;\n }\n\n if (accountSettings?.dontShowIdentitiesCurrentTab != null) {\n await helper.setToUser(\n userId,\n { ...vaultSettingsStateDefinition, key: \"showIdentitiesCurrentTab\" },\n !accountSettings.dontShowIdentitiesCurrentTab,\n );\n delete account.settings.dontShowIdentitiesCurrentTab;\n updateAccount = true;\n }\n\n if (updateAccount) {\n await helper.set(userId, account);\n }\n }\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n\n async function rollbackAccount(userId: string, account: ExpectedAccountState): Promise {\n let updateAccount = false;\n let settings = account?.settings ?? {};\n\n const showCardsCurrentTab = await helper.getFromUser(userId, {\n ...vaultSettingsStateDefinition,\n key: \"showCardsCurrentTab\",\n });\n\n const showIdentitiesCurrentTab = await helper.getFromUser(userId, {\n ...vaultSettingsStateDefinition,\n key: \"showIdentitiesCurrentTab\",\n });\n\n if (showCardsCurrentTab != null) {\n // invert the value to match the new naming convention\n settings = { ...settings, dontShowCardsCurrentTab: !showCardsCurrentTab };\n\n await helper.setToUser(\n userId,\n { ...vaultSettingsStateDefinition, key: \"showCardsCurrentTab\" },\n null,\n );\n\n updateAccount = true;\n }\n\n if (showIdentitiesCurrentTab != null) {\n // invert the value to match the new naming convention\n settings = { ...settings, dontShowIdentitiesCurrentTab: !showIdentitiesCurrentTab };\n\n await helper.setToUser(\n userId,\n { ...vaultSettingsStateDefinition, key: \"showIdentitiesCurrentTab\" },\n null,\n );\n\n updateAccount = true;\n }\n\n if (updateAccount) {\n await helper.set(userId, { ...account, settings });\n }\n }\n }\n}\n","import { KeyDefinitionLike, MigrationHelper, StateDefinitionLike } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedAccountState = {\n settings?: { avatarColor?: string };\n};\n\nconst AVATAR_COLOR_STATE: StateDefinitionLike = { name: \"avatar\" };\n\nconst AVATAR_COLOR_KEY: KeyDefinitionLike = {\n key: \"avatarColor\",\n stateDefinition: AVATAR_COLOR_STATE,\n};\n\nexport class AvatarColorMigrator extends Migrator<36, 37> {\n async migrate(helper: MigrationHelper): Promise {\n const legacyAccounts = await helper.getAccounts();\n\n await Promise.all(\n legacyAccounts.map(async ({ userId, account }) => {\n // Move account avatarColor\n if (account?.settings?.avatarColor != null) {\n await helper.setToUser(userId, AVATAR_COLOR_KEY, account.settings.avatarColor);\n\n // Delete old account avatarColor property\n delete account?.settings?.avatarColor;\n await helper.set(userId, account);\n }\n }),\n );\n }\n\n async rollback(helper: MigrationHelper): Promise {\n async function rollbackUser(userId: string, account: ExpectedAccountState) {\n let updatedAccount = false;\n const userAvatarColor = await helper.getFromUser(userId, AVATAR_COLOR_KEY);\n\n if (userAvatarColor) {\n if (!account) {\n account = {};\n }\n\n updatedAccount = true;\n account.settings.avatarColor = userAvatarColor;\n await helper.setToUser(userId, AVATAR_COLOR_KEY, null);\n }\n\n if (updatedAccount) {\n await helper.set(userId, account);\n }\n }\n\n const accounts = await helper.getAccounts();\n\n await Promise.all(accounts.map(({ userId, account }) => rollbackUser(userId, account)));\n }\n}\n","import { KeyDefinitionLike, MigrationHelper, StateDefinitionLike } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\n// Types to represent data as it is stored in JSON\ntype ExpectedAccountType = {\n tokens?: {\n accessToken?: string;\n refreshToken?: string;\n };\n profile?: {\n apiKeyClientId?: string;\n email?: string;\n };\n keys?: {\n apiKeyClientSecret?: string;\n };\n};\n\ntype ExpectedGlobalType = {\n twoFactorToken?: string;\n};\n\nexport const EMAIL_TWO_FACTOR_TOKEN_RECORD_DISK_LOCAL: KeyDefinitionLike = {\n key: \"emailTwoFactorTokenRecord\",\n stateDefinition: {\n name: \"tokenDiskLocal\",\n },\n};\n\nconst TOKEN_STATE_DEF_LIKE: StateDefinitionLike = {\n name: \"token\",\n};\n\nexport const ACCESS_TOKEN_DISK: KeyDefinitionLike = {\n key: \"accessToken\", // matches KeyDefinition.key\n stateDefinition: TOKEN_STATE_DEF_LIKE,\n};\n\nexport const REFRESH_TOKEN_DISK: KeyDefinitionLike = {\n key: \"refreshToken\",\n stateDefinition: TOKEN_STATE_DEF_LIKE,\n};\n\nexport const API_KEY_CLIENT_ID_DISK: KeyDefinitionLike = {\n key: \"apiKeyClientId\",\n stateDefinition: TOKEN_STATE_DEF_LIKE,\n};\n\nexport const API_KEY_CLIENT_SECRET_DISK: KeyDefinitionLike = {\n key: \"apiKeyClientSecret\",\n stateDefinition: TOKEN_STATE_DEF_LIKE,\n};\n\nexport class TokenServiceStateProviderMigrator extends Migrator<37, 38> {\n async migrate(helper: MigrationHelper): Promise {\n // Move global data\n const globalData = await helper.get(\"global\");\n\n // Create new global record for 2FA token that we can accumulate data in\n const emailTwoFactorTokenRecord = {};\n\n const accounts = await helper.getAccounts();\n async function migrateAccount(\n userId: string,\n account: ExpectedAccountType | undefined,\n globalTwoFactorToken: string | undefined,\n emailTwoFactorTokenRecord: Record,\n ): Promise {\n let updatedAccount = false;\n\n // migrate 2FA token from global to user state\n // Due to the existing implmentation, n users on the same device share the same global state value for 2FA token.\n // So, we will just migrate it to all users to keep it valid for whichever was the user that set it previously.\n // Note: don't bother migrating 2FA Token if user account or email is undefined\n const email = account?.profile?.email;\n if (globalTwoFactorToken != undefined && account != undefined && email != undefined) {\n emailTwoFactorTokenRecord[email] = globalTwoFactorToken;\n // Note: don't set updatedAccount to true here as we aren't updating\n // the legacy user state, just migrating a global state to a new user state\n }\n\n // Migrate access token\n const existingAccessToken = account?.tokens?.accessToken;\n\n if (existingAccessToken != null) {\n // Only migrate data that exists\n if (helper.type !== \"web-disk-local\") {\n // only migrate access token to session storage - never local.\n await helper.setToUser(userId, ACCESS_TOKEN_DISK, existingAccessToken);\n }\n delete account.tokens.accessToken;\n updatedAccount = true;\n }\n\n // Migrate refresh token\n const existingRefreshToken = account?.tokens?.refreshToken;\n\n if (existingRefreshToken != null) {\n if (helper.type !== \"web-disk-local\") {\n // only migrate refresh token to session storage - never local.\n await helper.setToUser(userId, REFRESH_TOKEN_DISK, existingRefreshToken);\n }\n delete account.tokens.refreshToken;\n updatedAccount = true;\n }\n\n // Migrate API key client id\n const existingApiKeyClientId = account?.profile?.apiKeyClientId;\n\n if (existingApiKeyClientId != null) {\n if (helper.type !== \"web-disk-local\") {\n // only migrate client id to session storage - never local.\n await helper.setToUser(userId, API_KEY_CLIENT_ID_DISK, existingApiKeyClientId);\n }\n delete account.profile.apiKeyClientId;\n updatedAccount = true;\n }\n\n // Migrate API key client secret\n const existingApiKeyClientSecret = account?.keys?.apiKeyClientSecret;\n if (existingApiKeyClientSecret != null) {\n if (helper.type !== \"web-disk-local\") {\n // only migrate client secret to session storage - never local.\n await helper.setToUser(userId, API_KEY_CLIENT_SECRET_DISK, existingApiKeyClientSecret);\n }\n delete account.keys.apiKeyClientSecret;\n updatedAccount = true;\n }\n\n if (updatedAccount) {\n // Save the migrated account only if it was updated\n await helper.set(userId, account);\n }\n }\n\n await Promise.all([\n ...accounts.map(({ userId, account }) =>\n migrateAccount(userId, account, globalData?.twoFactorToken, emailTwoFactorTokenRecord),\n ),\n ]);\n\n // Save the global 2FA token record\n await helper.setToGlobal(EMAIL_TWO_FACTOR_TOKEN_RECORD_DISK_LOCAL, emailTwoFactorTokenRecord);\n\n // Delete global data\n delete globalData?.twoFactorToken;\n await helper.set(\"global\", globalData);\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n // Since we migrated the global 2FA token to all users, we need to rollback the 2FA token for all users\n // but we only need to set it to the global state once\n\n // Go through accounts and find the first user that has a non-null email and 2FA token\n let migratedTwoFactorToken: string | null = null;\n for (const { account } of accounts) {\n const email = account?.profile?.email;\n if (email == null) {\n continue;\n }\n const emailTwoFactorTokenRecord: Record = await helper.getFromGlobal(\n EMAIL_TWO_FACTOR_TOKEN_RECORD_DISK_LOCAL,\n );\n\n migratedTwoFactorToken = emailTwoFactorTokenRecord[email];\n\n if (migratedTwoFactorToken != null) {\n break;\n }\n }\n\n if (migratedTwoFactorToken != null) {\n let legacyGlobal = await helper.get(\"global\");\n if (!legacyGlobal) {\n legacyGlobal = {};\n }\n legacyGlobal.twoFactorToken = migratedTwoFactorToken;\n await helper.set(\"global\", legacyGlobal);\n }\n\n // delete global 2FA token record\n await helper.setToGlobal(EMAIL_TWO_FACTOR_TOKEN_RECORD_DISK_LOCAL, null);\n\n async function rollbackAccount(userId: string, account: ExpectedAccountType): Promise {\n let updatedLegacyAccount = false;\n\n // Rollback access token\n const migratedAccessToken = await helper.getFromUser(userId, ACCESS_TOKEN_DISK);\n\n if (account?.tokens && migratedAccessToken != null) {\n account.tokens.accessToken = migratedAccessToken;\n updatedLegacyAccount = true;\n }\n\n await helper.setToUser(userId, ACCESS_TOKEN_DISK, null);\n\n // Rollback refresh token\n const migratedRefreshToken = await helper.getFromUser(userId, REFRESH_TOKEN_DISK);\n\n if (account?.tokens && migratedRefreshToken != null) {\n account.tokens.refreshToken = migratedRefreshToken;\n updatedLegacyAccount = true;\n }\n\n await helper.setToUser(userId, REFRESH_TOKEN_DISK, null);\n\n // Rollback API key client id\n\n const migratedApiKeyClientId = await helper.getFromUser(\n userId,\n API_KEY_CLIENT_ID_DISK,\n );\n\n if (account?.profile && migratedApiKeyClientId != null) {\n account.profile.apiKeyClientId = migratedApiKeyClientId;\n updatedLegacyAccount = true;\n }\n\n await helper.setToUser(userId, API_KEY_CLIENT_ID_DISK, null);\n\n // Rollback API key client secret\n const migratedApiKeyClientSecret = await helper.getFromUser(\n userId,\n API_KEY_CLIENT_SECRET_DISK,\n );\n\n if (account?.keys && migratedApiKeyClientSecret != null) {\n account.keys.apiKeyClientSecret = migratedApiKeyClientSecret;\n updatedLegacyAccount = true;\n }\n\n await helper.setToUser(userId, API_KEY_CLIENT_SECRET_DISK, null);\n\n if (updatedLegacyAccount) {\n await helper.set(userId, account);\n }\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedAccountType = {\n profile?: {\n hasPremiumPersonally?: boolean;\n hasPremiumFromOrganization?: boolean;\n };\n};\n\ntype ExpectedBillingAccountProfileType = {\n hasPremiumPersonally: boolean;\n hasPremiumFromOrganization: boolean;\n};\n\nexport const BILLING_ACCOUNT_PROFILE_KEY_DEFINITION: KeyDefinitionLike = {\n key: \"accountProfile\",\n stateDefinition: {\n name: \"billing\",\n },\n};\n\nexport class MoveBillingAccountProfileMigrator extends Migrator<38, 39> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n const migrateAccount = async (userId: string, account: ExpectedAccountType): Promise => {\n const hasPremiumPersonally = account?.profile?.hasPremiumPersonally;\n const hasPremiumFromOrganization = account?.profile?.hasPremiumFromOrganization;\n\n if (hasPremiumPersonally != null || hasPremiumFromOrganization != null) {\n await helper.setToUser(userId, BILLING_ACCOUNT_PROFILE_KEY_DEFINITION, {\n hasPremiumPersonally: hasPremiumPersonally,\n hasPremiumFromOrganization: hasPremiumFromOrganization,\n });\n\n delete account?.profile?.hasPremiumPersonally;\n delete account?.profile?.hasPremiumFromOrganization;\n await helper.set(userId, account);\n }\n };\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n const rollbackAccount = async (userId: string, account: ExpectedAccountType): Promise => {\n const value = await helper.getFromUser(\n userId,\n BILLING_ACCOUNT_PROFILE_KEY_DEFINITION,\n );\n\n if (account && value) {\n account.profile = Object.assign(account.profile ?? {}, {\n hasPremiumPersonally: value?.hasPremiumPersonally,\n hasPremiumFromOrganization: value?.hasPremiumFromOrganization,\n });\n await helper.set(userId, account);\n }\n\n await helper.setToUser(userId, BILLING_ACCOUNT_PROFILE_KEY_DEFINITION, null);\n };\n\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n }\n}\n","import { MigrationHelper } from \"../migration-helper\";\nimport { Direction, IRREVERSIBLE, Migrator } from \"../migrator\";\n\ntype ExpectedAccountType = { profile?: { everBeenUnlocked?: boolean } };\n\nexport class RemoveEverBeenUnlockedMigrator extends Migrator<3, 4> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n async function removeEverBeenUnlocked(userId: string, account: ExpectedAccountType) {\n if (account?.profile?.everBeenUnlocked != null) {\n delete account.profile.everBeenUnlocked;\n return helper.set(userId, account);\n }\n }\n\n // FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n Promise.all(accounts.map(({ userId, account }) => removeEverBeenUnlocked(userId, account)));\n }\n\n rollback(helper: MigrationHelper): Promise {\n throw IRREVERSIBLE;\n }\n\n // Override is necessary because default implementation assumes `stateVersion` at the root, but for this version\n // it is nested inside a global object.\n override async updateVersion(helper: MigrationHelper, direction: Direction): Promise {\n const endVersion = direction === \"up\" ? this.toVersion : this.fromVersion;\n helper.currentVersion = endVersion;\n const global: { stateVersion: number } = (await helper.get(\"global\")) || ({} as any);\n await helper.set(\"global\", { ...global, stateVersion: endVersion });\n }\n}\n","import { Jsonify } from \"type-fest\";\n\nimport { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\n// Local declarations of `OrganizationData` and the types of it's properties.\n// Duplicated to remain frozen in time when migration occurs.\nenum OrganizationUserStatusType {\n Invited = 0,\n Accepted = 1,\n Confirmed = 2,\n Revoked = -1,\n}\n\nenum OrganizationUserType {\n Owner = 0,\n Admin = 1,\n User = 2,\n Manager = 3,\n Custom = 4,\n}\n\ntype PermissionsApi = {\n accessEventLogs: boolean;\n accessImportExport: boolean;\n accessReports: boolean;\n createNewCollections: boolean;\n editAnyCollection: boolean;\n deleteAnyCollection: boolean;\n editAssignedCollections: boolean;\n deleteAssignedCollections: boolean;\n manageCiphers: boolean;\n manageGroups: boolean;\n manageSso: boolean;\n managePolicies: boolean;\n manageUsers: boolean;\n manageResetPassword: boolean;\n manageScim: boolean;\n};\n\nenum ProviderType {\n Msp = 0,\n Reseller = 1,\n}\n\nenum ProductType {\n Free = 0,\n Families = 1,\n Teams = 2,\n Enterprise = 3,\n TeamsStarter = 4,\n}\n\ntype OrganizationData = {\n id: string;\n name: string;\n status: OrganizationUserStatusType;\n type: OrganizationUserType;\n enabled: boolean;\n usePolicies: boolean;\n useGroups: boolean;\n useDirectory: boolean;\n useEvents: boolean;\n useTotp: boolean;\n use2fa: boolean;\n useApi: boolean;\n useSso: boolean;\n useKeyConnector: boolean;\n useScim: boolean;\n useCustomPermissions: boolean;\n useResetPassword: boolean;\n useSecretsManager: boolean;\n usePasswordManager: boolean;\n useActivateAutofillPolicy: boolean;\n selfHost: boolean;\n usersGetPremium: boolean;\n seats: number;\n maxCollections: number;\n maxStorageGb?: number;\n ssoBound: boolean;\n identifier: string;\n permissions: PermissionsApi;\n resetPasswordEnrolled: boolean;\n userId: string;\n hasPublicAndPrivateKeys: boolean;\n providerId: string;\n providerName: string;\n providerType?: ProviderType;\n isProviderUser: boolean;\n isMember: boolean;\n familySponsorshipFriendlyName: string;\n familySponsorshipAvailable: boolean;\n planProductType: ProductType;\n keyConnectorEnabled: boolean;\n keyConnectorUrl: string;\n familySponsorshipLastSyncDate?: Date;\n familySponsorshipValidUntil?: Date;\n familySponsorshipToDelete?: boolean;\n accessSecretsManager: boolean;\n limitCollectionCreationDeletion: boolean;\n allowAdminAccessToAllCollectionItems: boolean;\n flexibleCollections: boolean;\n};\n\ntype ExpectedAccountType = {\n data?: {\n organizations?: Record>;\n };\n};\n\nconst USER_ORGANIZATIONS: KeyDefinitionLike = {\n key: \"organizations\",\n stateDefinition: {\n name: \"organizations\",\n },\n};\n\nexport class OrganizationMigrator extends Migrator<39, 40> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function migrateAccount(userId: string, account: ExpectedAccountType): Promise {\n const value = account?.data?.organizations;\n if (value != null) {\n await helper.setToUser(userId, USER_ORGANIZATIONS, value);\n delete account.data.organizations;\n await helper.set(userId, account);\n }\n }\n\n await Promise.all(accounts.map(({ userId, account }) => migrateAccount(userId, account)));\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function rollbackAccount(userId: string, account: ExpectedAccountType): Promise {\n const value = await helper.getFromUser(userId, USER_ORGANIZATIONS);\n if (account) {\n account.data = Object.assign(account.data ?? {}, {\n organizations: value,\n });\n await helper.set(userId, account);\n }\n await helper.setToUser(userId, USER_ORGANIZATIONS, null);\n }\n\n await Promise.all(accounts.map(({ userId, account }) => rollbackAccount(userId, account)));\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedAccountState = {\n data?: {\n eventCollection?: [];\n };\n};\n\nconst EVENT_COLLECTION: KeyDefinitionLike = {\n stateDefinition: {\n name: \"eventCollection\",\n },\n key: \"eventCollection\",\n};\n\nexport class EventCollectionMigrator extends Migrator<40, 41> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n async function migrateAccount(userId: string, account: ExpectedAccountState): Promise {\n const value = account?.data?.eventCollection;\n if (value != null) {\n await helper.setToUser(userId, EVENT_COLLECTION, value);\n delete account.data.eventCollection;\n await helper.set(userId, account);\n }\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n async function rollbackAccount(userId: string, account: ExpectedAccountState): Promise {\n const value = await helper.getFromUser(userId, EVENT_COLLECTION);\n if (account) {\n account.data = Object.assign(account.data ?? {}, {\n eventCollection: value,\n });\n\n await helper.set(userId, account);\n }\n await helper.setToUser(userId, EVENT_COLLECTION, null);\n }\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedGlobalState = {\n disableFavicon?: boolean;\n};\n\nconst ShowFaviconDefinition: KeyDefinitionLike = {\n stateDefinition: {\n name: \"domainSettings\",\n },\n key: \"showFavicons\",\n};\n\nexport class EnableFaviconMigrator extends Migrator<41, 42> {\n async migrate(helper: MigrationHelper): Promise {\n // global state (\"disableFavicon\" -> \"showFavicons\")\n const globalState = await helper.get(\"global\");\n\n if (globalState?.disableFavicon != null) {\n await helper.setToGlobal(ShowFaviconDefinition, !globalState.disableFavicon);\n\n // delete `disableFavicon` from state global\n delete globalState.disableFavicon;\n\n await helper.set(\"global\", globalState);\n }\n }\n\n async rollback(helper: MigrationHelper): Promise {\n // global state (\"showFavicons\" -> \"disableFavicon\")\n const globalState = (await helper.get(\"global\")) || {};\n const showFavicons: boolean = await helper.getFromGlobal(ShowFaviconDefinition);\n\n if (showFavicons != null) {\n await helper.set(\"global\", {\n ...globalState,\n disableFavicon: !showFavicons,\n });\n\n // remove the global state provider framework key for `showFavicons`\n await helper.setToGlobal(ShowFaviconDefinition, null);\n }\n }\n}\n","import { KeyDefinitionLike, MigrationHelper, StateDefinitionLike } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedAccountState = {\n settings?: { autoConfirmFingerPrints?: boolean };\n};\n\nconst ORGANIZATION_MANAGEMENT_PREFERENCES: StateDefinitionLike = {\n name: \"organizationManagementPreferences\",\n};\n\nconst AUTO_CONFIRM_FINGERPRINTS: KeyDefinitionLike = {\n key: \"autoConfirmFingerPrints\",\n stateDefinition: ORGANIZATION_MANAGEMENT_PREFERENCES,\n};\n\nexport class AutoConfirmFingerPrintsMigrator extends Migrator<42, 43> {\n async migrate(helper: MigrationHelper): Promise {\n const legacyAccounts = await helper.getAccounts();\n\n await Promise.all(\n legacyAccounts.map(async ({ userId, account }) => {\n if (account?.settings?.autoConfirmFingerPrints != null) {\n await helper.setToUser(\n userId,\n AUTO_CONFIRM_FINGERPRINTS,\n account.settings.autoConfirmFingerPrints,\n );\n delete account?.settings?.autoConfirmFingerPrints;\n await helper.set(userId, account);\n }\n }),\n );\n }\n\n async rollback(helper: MigrationHelper): Promise {\n async function rollbackUser(userId: string, account: ExpectedAccountState) {\n let updatedAccount = false;\n const autoConfirmFingerPrints = await helper.getFromUser(\n userId,\n AUTO_CONFIRM_FINGERPRINTS,\n );\n\n if (autoConfirmFingerPrints) {\n if (!account) {\n account = {};\n }\n\n updatedAccount = true;\n account.settings.autoConfirmFingerPrints = autoConfirmFingerPrints;\n await helper.setToUser(userId, AUTO_CONFIRM_FINGERPRINTS, null);\n }\n\n if (updatedAccount) {\n await helper.set(userId, account);\n }\n }\n\n const accounts = await helper.getAccounts();\n\n await Promise.all(accounts.map(({ userId, account }) => rollbackUser(userId, account)));\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype DecryptionOptionsType = {\n hasMasterPassword: boolean;\n trustedDeviceOption?: {\n hasAdminApproval: boolean;\n hasLoginApprovingDevice: boolean;\n hasManageResetPasswordPermission: boolean;\n };\n keyConnectorOption?: {\n keyConnectorUrl: string;\n };\n};\n\ntype ExpectedAccountType = {\n decryptionOptions?: DecryptionOptionsType;\n};\n\nconst USER_DECRYPTION_OPTIONS: KeyDefinitionLike = {\n key: \"decryptionOptions\",\n stateDefinition: {\n name: \"userDecryptionOptions\",\n },\n};\n\nexport class UserDecryptionOptionsMigrator extends Migrator<43, 44> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function migrateAccount(userId: string, account: ExpectedAccountType): Promise {\n const value = account?.decryptionOptions;\n if (value != null) {\n await helper.setToUser(userId, USER_DECRYPTION_OPTIONS, value);\n delete account.decryptionOptions;\n await helper.set(userId, account);\n }\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n }\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function rollbackAccount(userId: string, account: ExpectedAccountType): Promise {\n const value: DecryptionOptionsType = await helper.getFromUser(\n userId,\n USER_DECRYPTION_OPTIONS,\n );\n if (account) {\n account.decryptionOptions = Object.assign(account.decryptionOptions, value);\n await helper.set(userId, account);\n }\n await helper.setToUser(userId, USER_DECRYPTION_OPTIONS, null);\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n }\n}\n","import { KeyDefinitionLike, MigrationHelper, StateDefinitionLike } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\nconst ENVIRONMENT_STATE: StateDefinitionLike = { name: \"environment\" };\n\nconst ENVIRONMENT_REGION: KeyDefinitionLike = {\n key: \"region\",\n stateDefinition: ENVIRONMENT_STATE,\n};\n\nconst ENVIRONMENT_URLS: KeyDefinitionLike = {\n key: \"urls\",\n stateDefinition: ENVIRONMENT_STATE,\n};\n\nconst ENVIRONMENT_ENVIRONMENT: KeyDefinitionLike = {\n key: \"environment\",\n stateDefinition: ENVIRONMENT_STATE,\n};\n\nexport class MergeEnvironmentState extends Migrator<44, 45> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n async function migrateAccount(userId: string, account: unknown): Promise {\n const region = await helper.getFromUser(userId, ENVIRONMENT_REGION);\n const urls = await helper.getFromUser(userId, ENVIRONMENT_URLS);\n\n if (region == null && urls == null) {\n return;\n }\n\n await helper.setToUser(userId, ENVIRONMENT_ENVIRONMENT, {\n region,\n urls,\n });\n await helper.removeFromUser(userId, ENVIRONMENT_REGION);\n await helper.removeFromUser(userId, ENVIRONMENT_URLS);\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n\n const region = await helper.getFromGlobal(ENVIRONMENT_REGION);\n const urls = await helper.getFromGlobal(ENVIRONMENT_URLS);\n\n if (region == null && urls == null) {\n return;\n }\n\n await helper.setToGlobal(ENVIRONMENT_ENVIRONMENT, {\n region,\n urls,\n });\n await helper.removeFromGlobal(ENVIRONMENT_REGION);\n await helper.removeFromGlobal(ENVIRONMENT_URLS);\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n async function rollbackAccount(userId: string, account: unknown): Promise {\n const state = (await helper.getFromUser(userId, ENVIRONMENT_ENVIRONMENT)) as {\n region: string;\n urls: string;\n } | null;\n\n await helper.setToUser(userId, ENVIRONMENT_REGION, state?.region);\n await helper.setToUser(userId, ENVIRONMENT_URLS, state?.urls);\n await helper.removeFromUser(userId, ENVIRONMENT_ENVIRONMENT);\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n\n const state = (await helper.getFromGlobal(ENVIRONMENT_ENVIRONMENT)) as {\n region: string;\n urls: string;\n } | null;\n\n await helper.setToGlobal(ENVIRONMENT_REGION, state?.region);\n await helper.setToGlobal(ENVIRONMENT_URLS, state?.urls);\n await helper.removeFromGlobal(ENVIRONMENT_ENVIRONMENT);\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { IRREVERSIBLE, Migrator } from \"../migrator\";\n\nexport const PROMPT_CANCELLED: KeyDefinitionLike = {\n key: \"promptCancelled\",\n stateDefinition: { name: \"biometricSettings\" },\n};\n\nexport class DeleteBiometricPromptCancelledData extends Migrator<45, 46> {\n async migrate(helper: MigrationHelper): Promise {\n await Promise.all(\n (await helper.getAccounts()).map(async ({ userId }) => {\n if (helper.getFromUser(userId, PROMPT_CANCELLED) != null) {\n await helper.removeFromUser(userId, PROMPT_CANCELLED);\n }\n }),\n );\n }\n\n async rollback(helper: MigrationHelper): Promise {\n throw IRREVERSIBLE;\n }\n}\n","import { KeyDefinitionLike, MigrationHelper, StateDefinitionLike } from \"../migration-helper\";\nimport { IRREVERSIBLE, Migrator } from \"../migrator\";\n\ntype ExpectedGlobalType = {\n window?: object;\n enableTray?: boolean;\n enableMinimizeToTray?: boolean;\n enableCloseToTray?: boolean;\n enableStartToTray?: boolean;\n openAtLogin?: boolean;\n alwaysShowDock?: boolean;\n enableAlwaysOnTop?: boolean;\n};\n\ntype ExpectedAccountType = {\n settings?: {\n enableAlwaysOnTop?: boolean;\n };\n};\n\nconst DESKTOP_SETTINGS_STATE: StateDefinitionLike = { name: \"desktopSettings\" };\n\nconst WINDOW_KEY: KeyDefinitionLike = { key: \"window\", stateDefinition: DESKTOP_SETTINGS_STATE };\n\nconst CLOSE_TO_TRAY_KEY: KeyDefinitionLike = {\n key: \"closeToTray\",\n stateDefinition: DESKTOP_SETTINGS_STATE,\n};\nconst MINIMIZE_TO_TRAY_KEY: KeyDefinitionLike = {\n key: \"minimizeToTray\",\n stateDefinition: DESKTOP_SETTINGS_STATE,\n};\nconst START_TO_TRAY_KEY: KeyDefinitionLike = {\n key: \"startToTray\",\n stateDefinition: DESKTOP_SETTINGS_STATE,\n};\nconst TRAY_ENABLED_KEY: KeyDefinitionLike = {\n key: \"trayEnabled\",\n stateDefinition: DESKTOP_SETTINGS_STATE,\n};\nconst OPEN_AT_LOGIN_KEY: KeyDefinitionLike = {\n key: \"openAtLogin\",\n stateDefinition: DESKTOP_SETTINGS_STATE,\n};\nconst ALWAYS_SHOW_DOCK_KEY: KeyDefinitionLike = {\n key: \"alwaysShowDock\",\n stateDefinition: DESKTOP_SETTINGS_STATE,\n};\n\nconst ALWAYS_ON_TOP_KEY: KeyDefinitionLike = {\n key: \"alwaysOnTop\",\n stateDefinition: DESKTOP_SETTINGS_STATE,\n};\n\nexport class MoveDesktopSettingsMigrator extends Migrator<46, 47> {\n async migrate(helper: MigrationHelper): Promise {\n const legacyGlobal = await helper.get(\"global\");\n\n let updatedGlobal = false;\n if (legacyGlobal?.window !== undefined) {\n await helper.setToGlobal(WINDOW_KEY, legacyGlobal.window);\n updatedGlobal = true;\n delete legacyGlobal.window;\n }\n\n if (legacyGlobal?.enableCloseToTray != null) {\n await helper.setToGlobal(CLOSE_TO_TRAY_KEY, legacyGlobal.enableCloseToTray);\n updatedGlobal = true;\n delete legacyGlobal.enableCloseToTray;\n }\n\n if (legacyGlobal?.enableMinimizeToTray != null) {\n await helper.setToGlobal(MINIMIZE_TO_TRAY_KEY, legacyGlobal.enableMinimizeToTray);\n updatedGlobal = true;\n delete legacyGlobal.enableMinimizeToTray;\n }\n\n if (legacyGlobal?.enableStartToTray != null) {\n await helper.setToGlobal(START_TO_TRAY_KEY, legacyGlobal.enableStartToTray);\n updatedGlobal = true;\n delete legacyGlobal.enableStartToTray;\n }\n\n if (legacyGlobal?.enableTray != null) {\n await helper.setToGlobal(TRAY_ENABLED_KEY, legacyGlobal.enableTray);\n updatedGlobal = true;\n delete legacyGlobal.enableTray;\n }\n\n if (legacyGlobal?.openAtLogin != null) {\n await helper.setToGlobal(OPEN_AT_LOGIN_KEY, legacyGlobal.openAtLogin);\n updatedGlobal = true;\n delete legacyGlobal.openAtLogin;\n }\n\n if (legacyGlobal?.alwaysShowDock != null) {\n await helper.setToGlobal(ALWAYS_SHOW_DOCK_KEY, legacyGlobal.alwaysShowDock);\n updatedGlobal = true;\n delete legacyGlobal.alwaysShowDock;\n }\n\n if (legacyGlobal?.enableAlwaysOnTop != null) {\n await helper.setToGlobal(ALWAYS_ON_TOP_KEY, legacyGlobal.enableAlwaysOnTop);\n updatedGlobal = true;\n delete legacyGlobal.enableAlwaysOnTop;\n }\n\n if (updatedGlobal) {\n await helper.set(\"global\", legacyGlobal);\n }\n\n async function migrateAccount(userId: string, account: ExpectedAccountType) {\n // We only migrate the global setting for this, if we find it on the account object\n // just delete it.\n if (account?.settings?.enableAlwaysOnTop != null) {\n delete account.settings.enableAlwaysOnTop;\n await helper.set(userId, account);\n }\n }\n\n const accounts = await helper.getAccounts();\n await Promise.all(accounts.map(({ userId, account }) => migrateAccount(userId, account)));\n }\n\n rollback(helper: MigrationHelper): Promise {\n throw IRREVERSIBLE;\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedGlobal = {\n enableDuckDuckGoBrowserIntegration?: boolean;\n};\n\nexport const DDG_KEY: KeyDefinitionLike = {\n key: \"enableDuckDuckGoBrowserIntegration\",\n stateDefinition: {\n name: \"autofillSettings\",\n },\n};\n\nexport class MoveDdgToStateProviderMigrator extends Migrator<47, 48> {\n async migrate(helper: MigrationHelper): Promise {\n // global state\n const global = await helper.get(\"global\");\n if (global?.enableDuckDuckGoBrowserIntegration == null) {\n return;\n }\n\n await helper.setToGlobal(DDG_KEY, global.enableDuckDuckGoBrowserIntegration);\n delete global.enableDuckDuckGoBrowserIntegration;\n await helper.set(\"global\", global);\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const enableDdg = await helper.getFromGlobal(DDG_KEY);\n\n if (!enableDdg) {\n return;\n }\n\n const global = (await helper.get(\"global\")) ?? {};\n global.enableDuckDuckGoBrowserIntegration = enableDdg;\n await helper.set(\"global\", global);\n await helper.removeFromGlobal(DDG_KEY);\n }\n}\n","import { KeyDefinitionLike, MigrationHelper, StateDefinitionLike } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\nconst CONFIG_DISK: StateDefinitionLike = { name: \"config\" };\nexport const USER_SERVER_CONFIG: KeyDefinitionLike = {\n stateDefinition: CONFIG_DISK,\n key: \"serverConfig\",\n};\n\n// Note: no need to migrate global configs, they don't currently exist\n\ntype ExpectedAccountType = {\n settings?: {\n serverConfig?: unknown;\n };\n};\n\nexport class AccountServerConfigMigrator extends Migrator<48, 49> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n async function migrateAccount(userId: string, account: ExpectedAccountType): Promise {\n if (account?.settings?.serverConfig != null) {\n await helper.setToUser(userId, USER_SERVER_CONFIG, account.settings.serverConfig);\n delete account.settings.serverConfig;\n await helper.set(userId, account);\n }\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n async function rollbackAccount(userId: string, account: ExpectedAccountType): Promise {\n const serverConfig = await helper.getFromUser(userId, USER_SERVER_CONFIG);\n\n if (serverConfig) {\n account ??= {};\n account.settings ??= {};\n\n account.settings.serverConfig = serverConfig;\n await helper.setToUser(userId, USER_SERVER_CONFIG, null);\n await helper.set(userId, account);\n }\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n }\n}\n","import { MigrationHelper } from \"../migration-helper\";\nimport { Direction, Migrator } from \"../migrator\";\n\ntype ExpectedAccountType = { keys?: { organizationKeys?: { encrypted: Record } } };\ntype NewAccountType = {\n keys?: {\n organizationKeys?: { encrypted: Record };\n };\n};\n\nexport class AddKeyTypeToOrgKeysMigrator extends Migrator<4, 5> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n async function updateOrgKey(userId: string, account: ExpectedAccountType) {\n const encryptedOrgKeys = account?.keys?.organizationKeys?.encrypted;\n if (encryptedOrgKeys == null) {\n return;\n }\n\n const newOrgKeys: Record = {};\n\n Object.entries(encryptedOrgKeys).forEach(([orgId, encKey]) => {\n newOrgKeys[orgId] = {\n type: \"organization\",\n key: encKey,\n };\n });\n (account as any).keys.organizationKeys.encrypted = newOrgKeys;\n\n await helper.set(userId, account);\n }\n\n // FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n Promise.all(accounts.map(({ userId, account }) => updateOrgKey(userId, account)));\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n async function updateOrgKey(userId: string, account: NewAccountType) {\n const encryptedOrgKeys = account?.keys?.organizationKeys?.encrypted;\n if (encryptedOrgKeys == null) {\n return;\n }\n\n const newOrgKeys: Record = {};\n\n Object.entries(encryptedOrgKeys).forEach(([orgId, encKey]) => {\n newOrgKeys[orgId] = encKey.key;\n });\n (account as any).keys.organizationKeys.encrypted = newOrgKeys;\n\n await helper.set(userId, account);\n }\n\n // FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n Promise.all(accounts.map(async ({ userId, account }) => updateOrgKey(userId, account)));\n }\n\n // Override is necessary because default implementation assumes `stateVersion` at the root, but for this version\n // it is nested inside a global object.\n override async updateVersion(helper: MigrationHelper, direction: Direction): Promise {\n const endVersion = direction === \"up\" ? this.toVersion : this.fromVersion;\n helper.currentVersion = endVersion;\n const global: { stateVersion: number } = (await helper.get(\"global\")) || ({} as any);\n await helper.set(\"global\", { ...global, stateVersion: endVersion });\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedAccountType = {\n profile?: {\n usesKeyConnector?: boolean;\n convertAccountToKeyConnector?: boolean;\n };\n};\n\nconst usesKeyConnectorKeyDefinition: KeyDefinitionLike = {\n key: \"usesKeyConnector\",\n stateDefinition: {\n name: \"keyConnector\",\n },\n};\n\nconst convertAccountToKeyConnectorKeyDefinition: KeyDefinitionLike = {\n key: \"convertAccountToKeyConnector\",\n stateDefinition: {\n name: \"keyConnector\",\n },\n};\n\nexport class KeyConnectorMigrator extends Migrator<49, 50> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function migrateAccount(userId: string, account: ExpectedAccountType): Promise {\n const usesKeyConnector = account?.profile?.usesKeyConnector;\n const convertAccountToKeyConnector = account?.profile?.convertAccountToKeyConnector;\n if (usesKeyConnector == null && convertAccountToKeyConnector == null) {\n return;\n }\n if (usesKeyConnector != null) {\n await helper.setToUser(userId, usesKeyConnectorKeyDefinition, usesKeyConnector);\n delete account.profile.usesKeyConnector;\n }\n if (convertAccountToKeyConnector != null) {\n await helper.setToUser(\n userId,\n convertAccountToKeyConnectorKeyDefinition,\n convertAccountToKeyConnector,\n );\n delete account.profile.convertAccountToKeyConnector;\n }\n await helper.set(userId, account);\n }\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function rollbackAccount(userId: string, account: ExpectedAccountType): Promise {\n const usesKeyConnector: boolean = await helper.getFromUser(\n userId,\n usesKeyConnectorKeyDefinition,\n );\n const convertAccountToKeyConnector: boolean = await helper.getFromUser(\n userId,\n convertAccountToKeyConnectorKeyDefinition,\n );\n if (usesKeyConnector == null && convertAccountToKeyConnector == null) {\n return;\n }\n if (usesKeyConnector != null) {\n account.profile.usesKeyConnector = usesKeyConnector;\n await helper.setToUser(userId, usesKeyConnectorKeyDefinition, null);\n }\n if (convertAccountToKeyConnector != null) {\n account.profile.convertAccountToKeyConnector = convertAccountToKeyConnector;\n await helper.setToUser(userId, convertAccountToKeyConnectorKeyDefinition, null);\n }\n await helper.set(userId, account);\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n }\n}\n","import { KeyDefinitionLike, MigrationHelper, StateDefinitionLike } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedGlobalState = { rememberedEmail?: string };\n\nconst LOGIN_EMAIL_STATE: StateDefinitionLike = { name: \"loginEmail\" };\n\nconst STORED_EMAIL: KeyDefinitionLike = {\n key: \"storedEmail\",\n stateDefinition: LOGIN_EMAIL_STATE,\n};\n\nexport class RememberedEmailMigrator extends Migrator<50, 51> {\n async migrate(helper: MigrationHelper): Promise {\n const legacyGlobal = await helper.get(\"global\");\n\n // Move global data\n if (legacyGlobal?.rememberedEmail != null) {\n await helper.setToGlobal(STORED_EMAIL, legacyGlobal.rememberedEmail);\n }\n\n // Delete legacy global data\n delete legacyGlobal?.rememberedEmail;\n await helper.set(\"global\", legacyGlobal);\n }\n\n async rollback(helper: MigrationHelper): Promise {\n let legacyGlobal = await helper.get(\"global\");\n let updatedLegacyGlobal = false;\n const globalStoredEmail = await helper.getFromGlobal(STORED_EMAIL);\n\n if (globalStoredEmail) {\n if (!legacyGlobal) {\n legacyGlobal = {};\n }\n\n updatedLegacyGlobal = true;\n legacyGlobal.rememberedEmail = globalStoredEmail;\n await helper.setToGlobal(STORED_EMAIL, null);\n }\n\n if (updatedLegacyGlobal) {\n await helper.set(\"global\", legacyGlobal);\n }\n }\n}\n","import { MigrationHelper } from \"../migration-helper\";\nimport { IRREVERSIBLE, Migrator } from \"../migrator\";\n\ntype ExpectedGlobal = {\n installedVersion?: string;\n};\n\nexport class DeleteInstalledVersion extends Migrator<51, 52> {\n async migrate(helper: MigrationHelper): Promise {\n const legacyGlobal = await helper.get(\"global\");\n if (legacyGlobal?.installedVersion != null) {\n delete legacyGlobal.installedVersion;\n await helper.set(\"global\", legacyGlobal);\n }\n }\n rollback(helper: MigrationHelper): Promise {\n throw IRREVERSIBLE;\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\n// Types to represent data as it is stored in JSON\ntype DeviceKeyJsonType = {\n keyB64: string;\n};\n\ntype ExpectedAccountType = {\n keys?: {\n deviceKey?: DeviceKeyJsonType;\n };\n settings?: {\n trustDeviceChoiceForDecryption?: boolean;\n };\n};\n\nexport const DEVICE_KEY: KeyDefinitionLike = {\n key: \"deviceKey\", // matches KeyDefinition.key in DeviceTrustService\n stateDefinition: {\n name: \"deviceTrust\", // matches StateDefinition.name in StateDefinitions\n },\n};\n\nexport const SHOULD_TRUST_DEVICE: KeyDefinitionLike = {\n key: \"shouldTrustDevice\",\n stateDefinition: {\n name: \"deviceTrust\",\n },\n};\n\nexport class DeviceTrustServiceStateProviderMigrator extends Migrator<52, 53> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function migrateAccount(userId: string, account: ExpectedAccountType): Promise {\n let updatedAccount = false;\n\n // Migrate deviceKey\n const existingDeviceKey = account?.keys?.deviceKey;\n\n if (existingDeviceKey != null) {\n // Only migrate data that exists\n await helper.setToUser(userId, DEVICE_KEY, existingDeviceKey);\n delete account.keys.deviceKey;\n updatedAccount = true;\n }\n\n // Migrate shouldTrustDevice\n const existingShouldTrustDevice = account?.settings?.trustDeviceChoiceForDecryption;\n\n if (existingShouldTrustDevice != null) {\n await helper.setToUser(userId, SHOULD_TRUST_DEVICE, existingShouldTrustDevice);\n delete account.settings.trustDeviceChoiceForDecryption;\n updatedAccount = true;\n }\n\n if (updatedAccount) {\n // Save the migrated account\n await helper.set(userId, account);\n }\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function rollbackAccount(userId: string, account: ExpectedAccountType): Promise {\n // Rollback deviceKey\n const migratedDeviceKey: DeviceKeyJsonType = await helper.getFromUser(userId, DEVICE_KEY);\n\n if (account?.keys && migratedDeviceKey != null) {\n account.keys.deviceKey = migratedDeviceKey;\n await helper.set(userId, account);\n }\n\n await helper.setToUser(userId, DEVICE_KEY, null);\n\n // Rollback shouldTrustDevice\n const migratedShouldTrustDevice = await helper.getFromUser(\n userId,\n SHOULD_TRUST_DEVICE,\n );\n\n if (account?.settings && migratedShouldTrustDevice != null) {\n account.settings.trustDeviceChoiceForDecryption = migratedShouldTrustDevice;\n await helper.set(userId, account);\n }\n\n await helper.setToUser(userId, SHOULD_TRUST_DEVICE, null);\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\nexport enum SendType {\n Text = 0,\n File = 1,\n}\n\ntype SendData = {\n id: string;\n accessId: string;\n};\n\ntype ExpectedSendState = {\n data?: {\n sends?: {\n encrypted?: Record;\n };\n };\n};\n\nconst ENCRYPTED_SENDS: KeyDefinitionLike = {\n stateDefinition: {\n name: \"send\",\n },\n key: \"sends\",\n};\n\n/**\n * Only encrypted sends are stored on disk. Only the encrypted items need to be\n * migrated from the previous sends state data.\n */\nexport class SendMigrator extends Migrator<53, 54> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n async function migrateAccount(userId: string, account: ExpectedSendState): Promise {\n const value = account?.data?.sends?.encrypted;\n if (value != null) {\n await helper.setToUser(userId, ENCRYPTED_SENDS, value);\n delete account.data.sends;\n await helper.set(userId, account);\n }\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n async function rollbackAccount(userId: string, account: ExpectedSendState): Promise {\n const value = await helper.getFromUser(userId, ENCRYPTED_SENDS);\n if (account) {\n account.data = Object.assign(account.data ?? {}, {\n sends: {\n encrypted: value,\n },\n });\n\n await helper.set(userId, account);\n }\n await helper.setToUser(userId, ENCRYPTED_SENDS, null);\n }\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedAccountType = {\n keys?: {\n masterKeyEncryptedUserKey?: string;\n };\n profile?: {\n forceSetPasswordReason?: number;\n keyHash?: string;\n };\n};\n\nexport const FORCE_SET_PASSWORD_REASON_DEFINITION: KeyDefinitionLike = {\n key: \"forceSetPasswordReason\",\n stateDefinition: {\n name: \"masterPassword\",\n },\n};\n\nexport const MASTER_KEY_HASH_DEFINITION: KeyDefinitionLike = {\n key: \"masterKeyHash\",\n stateDefinition: {\n name: \"masterPassword\",\n },\n};\n\nexport const MASTER_KEY_ENCRYPTED_USER_KEY_DEFINITION: KeyDefinitionLike = {\n key: \"masterKeyEncryptedUserKey\",\n stateDefinition: {\n name: \"masterPassword\",\n },\n};\n\nexport class MoveMasterKeyStateToProviderMigrator extends Migrator<54, 55> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function migrateAccount(userId: string, account: ExpectedAccountType): Promise {\n const forceSetPasswordReason = account?.profile?.forceSetPasswordReason;\n if (forceSetPasswordReason != null) {\n await helper.setToUser(\n userId,\n FORCE_SET_PASSWORD_REASON_DEFINITION,\n forceSetPasswordReason,\n );\n\n delete account.profile.forceSetPasswordReason;\n await helper.set(userId, account);\n }\n\n const masterKeyHash = account?.profile?.keyHash;\n if (masterKeyHash != null) {\n await helper.setToUser(userId, MASTER_KEY_HASH_DEFINITION, masterKeyHash);\n\n delete account.profile.keyHash;\n await helper.set(userId, account);\n }\n\n const masterKeyEncryptedUserKey = account?.keys?.masterKeyEncryptedUserKey;\n if (masterKeyEncryptedUserKey != null) {\n await helper.setToUser(\n userId,\n MASTER_KEY_ENCRYPTED_USER_KEY_DEFINITION,\n masterKeyEncryptedUserKey,\n );\n\n delete account.keys.masterKeyEncryptedUserKey;\n await helper.set(userId, account);\n }\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n }\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function rollbackAccount(userId: string, account: ExpectedAccountType): Promise {\n const forceSetPasswordReason = await helper.getFromUser(\n userId,\n FORCE_SET_PASSWORD_REASON_DEFINITION,\n );\n const masterKeyHash = await helper.getFromUser(userId, MASTER_KEY_HASH_DEFINITION);\n const masterKeyEncryptedUserKey = await helper.getFromUser(\n userId,\n MASTER_KEY_ENCRYPTED_USER_KEY_DEFINITION,\n );\n if (account != null) {\n if (forceSetPasswordReason != null) {\n account.profile = Object.assign(account.profile ?? {}, {\n forceSetPasswordReason,\n });\n }\n if (masterKeyHash != null) {\n account.profile = Object.assign(account.profile ?? {}, {\n keyHash: masterKeyHash,\n });\n }\n if (masterKeyEncryptedUserKey != null) {\n account.keys = Object.assign(account.keys ?? {}, {\n masterKeyEncryptedUserKey,\n });\n }\n await helper.set(userId, account);\n }\n\n await helper.setToUser(userId, FORCE_SET_PASSWORD_REASON_DEFINITION, null);\n await helper.setToUser(userId, MASTER_KEY_HASH_DEFINITION, null);\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype AdminAuthRequestStorable = {\n id: string;\n privateKey: string;\n};\n\ntype ExpectedAccountType = {\n adminAuthRequest?: AdminAuthRequestStorable;\n settings?: {\n approveLoginRequests?: boolean;\n };\n};\n\nconst ADMIN_AUTH_REQUEST_KEY: KeyDefinitionLike = {\n stateDefinition: {\n name: \"authRequestLocal\",\n },\n key: \"adminAuthRequest\",\n};\n\nconst ACCEPT_AUTH_REQUESTS_KEY: KeyDefinitionLike = {\n stateDefinition: {\n name: \"authRequestLocal\",\n },\n key: \"acceptAuthRequests\",\n};\n\nexport class AuthRequestMigrator extends Migrator<55, 56> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n async function migrateAccount(userId: string, account: ExpectedAccountType): Promise {\n let updatedAccount = false;\n\n // Migrate admin auth request\n const existingAdminAuthRequest = account?.adminAuthRequest;\n\n if (existingAdminAuthRequest != null) {\n await helper.setToUser(userId, ADMIN_AUTH_REQUEST_KEY, existingAdminAuthRequest);\n delete account.adminAuthRequest;\n updatedAccount = true;\n }\n\n // Migrate approve login requests\n const existingApproveLoginRequests = account?.settings?.approveLoginRequests;\n\n if (existingApproveLoginRequests != null) {\n await helper.setToUser(userId, ACCEPT_AUTH_REQUESTS_KEY, existingApproveLoginRequests);\n delete account.settings.approveLoginRequests;\n updatedAccount = true;\n }\n\n if (updatedAccount) {\n // Save the migrated account\n await helper.set(userId, account);\n }\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n async function rollbackAccount(userId: string, account: ExpectedAccountType): Promise {\n let updatedAccount = false;\n // Rollback admin auth request\n const migratedAdminAuthRequest: AdminAuthRequestStorable = await helper.getFromUser(\n userId,\n ADMIN_AUTH_REQUEST_KEY,\n );\n\n if (migratedAdminAuthRequest != null) {\n account.adminAuthRequest = migratedAdminAuthRequest;\n updatedAccount = true;\n }\n\n await helper.setToUser(userId, ADMIN_AUTH_REQUEST_KEY, null);\n\n // Rollback approve login requests\n const migratedAcceptAuthRequest: boolean = await helper.getFromUser(\n userId,\n ACCEPT_AUTH_REQUESTS_KEY,\n );\n\n if (migratedAcceptAuthRequest != null) {\n account.settings = Object.assign(account.settings ?? {}, {\n approveLoginRequests: migratedAcceptAuthRequest,\n });\n updatedAccount = true;\n }\n\n await helper.setToUser(userId, ACCEPT_AUTH_REQUESTS_KEY, null);\n\n if (updatedAccount) {\n await helper.set(userId, account);\n }\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedAccountType = {\n data: {\n localData?: unknown;\n ciphers?: {\n encrypted: unknown;\n };\n };\n};\n\nexport const CIPHERS_DISK_LOCAL: KeyDefinitionLike = {\n key: \"localData\",\n stateDefinition: {\n name: \"ciphersLocal\",\n },\n};\n\nexport const CIPHERS_DISK: KeyDefinitionLike = {\n key: \"ciphers\",\n stateDefinition: {\n name: \"ciphers\",\n },\n};\n\nexport class CipherServiceMigrator extends Migrator<56, 57> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function migrateAccount(userId: string, account: ExpectedAccountType): Promise {\n let updatedAccount = false;\n\n //Migrate localData\n const localData = account?.data?.localData;\n if (localData != null) {\n await helper.setToUser(userId, CIPHERS_DISK_LOCAL, localData);\n delete account.data.localData;\n updatedAccount = true;\n }\n\n //Migrate ciphers\n const ciphers = account?.data?.ciphers?.encrypted;\n if (ciphers != null) {\n await helper.setToUser(userId, CIPHERS_DISK, ciphers);\n delete account.data.ciphers;\n updatedAccount = true;\n }\n\n if (updatedAccount) {\n await helper.set(userId, account);\n }\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function rollbackAccount(userId: string, account: ExpectedAccountType): Promise {\n //rollback localData\n const localData = await helper.getFromUser(userId, CIPHERS_DISK_LOCAL);\n\n if (account.data && localData != null) {\n account.data.localData = localData;\n await helper.set(userId, account);\n }\n await helper.setToUser(userId, CIPHERS_DISK_LOCAL, null);\n\n //rollback ciphers\n const ciphers = await helper.getFromUser(userId, CIPHERS_DISK);\n\n if (account.data && ciphers != null) {\n account.data.ciphers ||= { encrypted: null };\n account.data.ciphers.encrypted = ciphers;\n await helper.set(userId, account);\n }\n await helper.setToUser(userId, CIPHERS_DISK, null);\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { IRREVERSIBLE, Migrator } from \"../migrator\";\n\ntype ExpectedAccountType = NonNullable;\n\nexport const REFRESH_TOKEN_MIGRATED_TO_SECURE_STORAGE: KeyDefinitionLike = {\n key: \"refreshTokenMigratedToSecureStorage\", // matches KeyDefinition.key\n stateDefinition: {\n name: \"token\", // matches StateDefinition.name in StateDefinitions\n },\n};\n\nexport class RemoveRefreshTokenMigratedFlagMigrator extends Migrator<57, 58> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function migrateAccount(userId: string, account: ExpectedAccountType): Promise {\n const refreshTokenMigratedFlag = await helper.getFromUser(\n userId,\n REFRESH_TOKEN_MIGRATED_TO_SECURE_STORAGE,\n );\n\n if (refreshTokenMigratedFlag != null) {\n // Only delete the flag if it exists\n await helper.removeFromUser(userId, REFRESH_TOKEN_MIGRATED_TO_SECURE_STORAGE);\n }\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n }\n\n async rollback(helper: MigrationHelper): Promise {\n throw IRREVERSIBLE;\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\nenum KdfType {\n PBKDF2_SHA256 = 0,\n Argon2id = 1,\n}\n\nclass KdfConfig {\n iterations: number;\n kdfType: KdfType;\n memory?: number;\n parallelism?: number;\n}\n\ntype ExpectedAccountType = {\n profile?: {\n kdfIterations: number;\n kdfType: KdfType;\n kdfMemory?: number;\n kdfParallelism?: number;\n };\n};\n\nconst kdfConfigKeyDefinition: KeyDefinitionLike = {\n key: \"kdfConfig\",\n stateDefinition: {\n name: \"kdfConfig\",\n },\n};\n\nexport class KdfConfigMigrator extends Migrator<58, 59> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function migrateAccount(userId: string, account: ExpectedAccountType): Promise {\n const iterations = account?.profile?.kdfIterations;\n const kdfType = account?.profile?.kdfType;\n const memory = account?.profile?.kdfMemory;\n const parallelism = account?.profile?.kdfParallelism;\n\n const kdfConfig: KdfConfig = {\n iterations: iterations,\n kdfType: kdfType,\n memory: memory,\n parallelism: parallelism,\n };\n\n if (kdfConfig != null) {\n await helper.setToUser(userId, kdfConfigKeyDefinition, kdfConfig);\n delete account?.profile?.kdfIterations;\n delete account?.profile?.kdfType;\n delete account?.profile?.kdfMemory;\n delete account?.profile?.kdfParallelism;\n }\n\n await helper.set(userId, account);\n }\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n async function rollbackAccount(userId: string, account: ExpectedAccountType): Promise {\n const kdfConfig: KdfConfig = await helper.getFromUser(userId, kdfConfigKeyDefinition);\n\n if (kdfConfig != null) {\n account.profile.kdfIterations = kdfConfig.iterations;\n account.profile.kdfType = kdfConfig.kdfType;\n account.profile.kdfMemory = kdfConfig.memory;\n account.profile.kdfParallelism = kdfConfig.parallelism;\n await helper.setToUser(userId, kdfConfigKeyDefinition, null);\n }\n await helper.set(userId, account);\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n }\n}\n","import { MigrationHelper } from \"../migration-helper\";\nimport { Direction, IRREVERSIBLE, Migrator } from \"../migrator\";\n\ntype ExpectedAccountType = { keys?: { legacyEtmKey?: string } };\n\nexport class RemoveLegacyEtmKeyMigrator extends Migrator<5, 6> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n async function updateAccount(userId: string, account: ExpectedAccountType) {\n if (account?.keys?.legacyEtmKey) {\n delete account.keys.legacyEtmKey;\n await helper.set(userId, account);\n }\n }\n\n await Promise.all(accounts.map(({ userId, account }) => updateAccount(userId, account)));\n }\n\n async rollback(helper: MigrationHelper): Promise {\n throw IRREVERSIBLE;\n }\n\n // Override is necessary because default implementation assumes `stateVersion` at the root, but for this version\n // it is nested inside a global object.\n override async updateVersion(helper: MigrationHelper, direction: Direction): Promise {\n const endVersion = direction === \"up\" ? this.toVersion : this.fromVersion;\n helper.currentVersion = endVersion;\n const global: { stateVersion: number } = (await helper.get(\"global\")) || ({} as any);\n await helper.set(\"global\", { ...global, stateVersion: endVersion });\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\nexport const ACCOUNT_ACCOUNTS: KeyDefinitionLike = {\n stateDefinition: {\n name: \"account\",\n },\n key: \"accounts\",\n};\n\nexport const ACCOUNT_ACTIVE_ACCOUNT_ID: KeyDefinitionLike = {\n stateDefinition: {\n name: \"account\",\n },\n key: \"activeAccountId\",\n};\n\nexport const ACCOUNT_ACTIVITY: KeyDefinitionLike = {\n stateDefinition: {\n name: \"account\",\n },\n key: \"activity\",\n};\n\ntype ExpectedAccountType = {\n profile?: {\n email?: string;\n name?: string;\n emailVerified?: boolean;\n };\n};\n\nexport class KnownAccountsMigrator extends Migrator<59, 60> {\n async migrate(helper: MigrationHelper): Promise {\n await this.migrateAuthenticatedAccounts(helper);\n await this.migrateActiveAccountId(helper);\n await this.migrateAccountActivity(helper);\n }\n async rollback(helper: MigrationHelper): Promise {\n // authenticated account are removed, but the accounts record also contains logged out accounts. Best we can do is to add them all back\n const userIds = (await helper.getKnownUserIds()) ?? [];\n await helper.set(\"authenticatedAccounts\", userIds);\n await helper.removeFromGlobal(ACCOUNT_ACCOUNTS);\n\n // Active Account Id\n const activeAccountId = await helper.getFromGlobal(ACCOUNT_ACTIVE_ACCOUNT_ID);\n if (activeAccountId) {\n await helper.set(\"activeUserId\", activeAccountId);\n }\n await helper.removeFromGlobal(ACCOUNT_ACTIVE_ACCOUNT_ID);\n\n // Account Activity\n const accountActivity = await helper.getFromGlobal>(ACCOUNT_ACTIVITY);\n if (accountActivity) {\n const toStore = Object.entries(accountActivity).reduce(\n (agg, [userId, dateString]) => {\n agg[userId] = new Date(dateString).getTime();\n return agg;\n },\n {} as Record,\n );\n await helper.set(\"accountActivity\", toStore);\n }\n await helper.removeFromGlobal(ACCOUNT_ACTIVITY);\n }\n\n private async migrateAuthenticatedAccounts(helper: MigrationHelper) {\n const authenticatedAccounts = (await helper.get(\"authenticatedAccounts\")) ?? [];\n const accounts = await Promise.all(\n authenticatedAccounts.map(async (userId) => {\n const account = await helper.get(userId);\n return { userId, account };\n }),\n );\n const accountsToStore = accounts.reduce(\n (agg, { userId, account }) => {\n if (account?.profile) {\n agg[userId] = {\n email: account.profile.email ?? \"\",\n emailVerified: account.profile.emailVerified ?? false,\n name: account.profile.name,\n };\n }\n return agg;\n },\n {} as Record,\n );\n\n await helper.setToGlobal(ACCOUNT_ACCOUNTS, accountsToStore);\n await helper.remove(\"authenticatedAccounts\");\n }\n\n private async migrateAccountActivity(helper: MigrationHelper) {\n const stored = await helper.get>(\"accountActivity\");\n const accountActivity = Object.entries(stored ?? {}).reduce(\n (agg, [userId, dateMs]) => {\n agg[userId] = JSON.stringify(new Date(dateMs));\n return agg;\n },\n {} as Record,\n );\n await helper.setToGlobal(ACCOUNT_ACTIVITY, accountActivity);\n await helper.remove(\"accountActivity\");\n }\n\n private async migrateActiveAccountId(helper: MigrationHelper) {\n const activeAccountId = await helper.get(\"activeUserId\");\n await helper.setToGlobal(ACCOUNT_ACTIVE_ACCOUNT_ID, activeAccountId);\n await helper.remove(\"activeUserId\");\n }\n}\n","import { KeyDefinitionLike, MigrationHelper, StateDefinitionLike } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype ExpectedAccountState = {\n settings?: {\n pinKeyEncryptedUserKey?: string; // EncryptedString\n protectedPin?: string; // EncryptedString\n pinProtected?: {\n encrypted?: string;\n };\n };\n};\n\nexport const PIN_STATE: StateDefinitionLike = { name: \"pinUnlock\" };\n\nexport const PIN_KEY_ENCRYPTED_USER_KEY_PERSISTENT: KeyDefinitionLike = {\n stateDefinition: PIN_STATE,\n key: \"pinKeyEncryptedUserKeyPersistent\",\n};\n\nexport const USER_KEY_ENCRYPTED_PIN: KeyDefinitionLike = {\n stateDefinition: PIN_STATE,\n key: \"userKeyEncryptedPin\",\n};\n\nexport const OLD_PIN_KEY_ENCRYPTED_MASTER_KEY: KeyDefinitionLike = {\n stateDefinition: PIN_STATE,\n key: \"oldPinKeyEncryptedMasterKey\",\n};\n\nexport class PinStateMigrator extends Migrator<60, 61> {\n async migrate(helper: MigrationHelper): Promise {\n const legacyAccounts = await helper.getAccounts();\n let updatedAccount = false;\n\n async function migrateAccount(userId: string, account: ExpectedAccountState) {\n // Migrate pinKeyEncryptedUserKey (to `pinKeyEncryptedUserKeyPersistent`)\n if (account?.settings?.pinKeyEncryptedUserKey != null) {\n await helper.setToUser(\n userId,\n PIN_KEY_ENCRYPTED_USER_KEY_PERSISTENT,\n account.settings.pinKeyEncryptedUserKey,\n );\n delete account.settings.pinKeyEncryptedUserKey;\n updatedAccount = true;\n }\n\n // Migrate protectedPin (to `userKeyEncryptedPin`)\n if (account?.settings?.protectedPin != null) {\n await helper.setToUser(userId, USER_KEY_ENCRYPTED_PIN, account.settings.protectedPin);\n delete account.settings.protectedPin;\n updatedAccount = true;\n }\n\n // Migrate pinProtected (to `oldPinKeyEncryptedMasterKey`)\n if (account?.settings?.pinProtected?.encrypted != null) {\n await helper.setToUser(\n userId,\n OLD_PIN_KEY_ENCRYPTED_MASTER_KEY,\n account.settings.pinProtected.encrypted,\n );\n delete account.settings.pinProtected;\n updatedAccount = true;\n }\n\n if (updatedAccount) {\n await helper.set(userId, account);\n }\n }\n\n await Promise.all([\n ...legacyAccounts.map(({ userId, account }) => migrateAccount(userId, account)),\n ]);\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n async function rollbackAccount(userId: string, account: ExpectedAccountState) {\n let updatedAccount = false;\n\n const accountPinKeyEncryptedUserKeyPersistent = await helper.getFromUser(\n userId,\n PIN_KEY_ENCRYPTED_USER_KEY_PERSISTENT,\n );\n const accountUserKeyEncryptedPin = await helper.getFromUser(\n userId,\n USER_KEY_ENCRYPTED_PIN,\n );\n const accountOldPinKeyEncryptedMasterKey = await helper.getFromUser(\n userId,\n OLD_PIN_KEY_ENCRYPTED_MASTER_KEY,\n );\n\n if (!account) {\n account = {};\n }\n\n if (accountPinKeyEncryptedUserKeyPersistent != null) {\n account.settings.pinKeyEncryptedUserKey = accountPinKeyEncryptedUserKeyPersistent;\n await helper.setToUser(userId, PIN_KEY_ENCRYPTED_USER_KEY_PERSISTENT, null);\n updatedAccount = true;\n }\n\n if (accountUserKeyEncryptedPin != null) {\n account.settings.protectedPin = accountUserKeyEncryptedPin;\n await helper.setToUser(userId, USER_KEY_ENCRYPTED_PIN, null);\n updatedAccount = true;\n }\n\n if (accountOldPinKeyEncryptedMasterKey != null) {\n account.settings = Object.assign(account.settings ?? {}, {\n pinProtected: {\n encrypted: accountOldPinKeyEncryptedMasterKey,\n },\n });\n\n await helper.setToUser(userId, OLD_PIN_KEY_ENCRYPTED_MASTER_KEY, null);\n updatedAccount = true;\n }\n\n if (updatedAccount) {\n await helper.set(userId, account);\n }\n }\n\n await Promise.all(accounts.map(({ userId, account }) => rollbackAccount(userId, account)));\n }\n}\n","import { KeyDefinitionLike, MigrationHelper, StateDefinitionLike } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\n// Types to represent data as it is stored in JSON\ntype ExpectedAccountType = {\n settings?: {\n vaultTimeout?: number;\n vaultTimeoutAction?: string;\n };\n};\n\ntype ExpectedGlobalType = {\n vaultTimeout?: number;\n vaultTimeoutAction?: string;\n};\n\nconst VAULT_TIMEOUT_SETTINGS_STATE_DEF_LIKE: StateDefinitionLike = {\n name: \"vaultTimeoutSettings\",\n};\n\nexport const VAULT_TIMEOUT: KeyDefinitionLike = {\n key: \"vaultTimeout\", // matches KeyDefinition.key\n stateDefinition: VAULT_TIMEOUT_SETTINGS_STATE_DEF_LIKE,\n};\n\nexport const VAULT_TIMEOUT_ACTION: KeyDefinitionLike = {\n key: \"vaultTimeoutAction\", // matches KeyDefinition.key\n stateDefinition: VAULT_TIMEOUT_SETTINGS_STATE_DEF_LIKE,\n};\n\n// Migrations are supposed to be frozen so we have to copy the type here.\nexport type VaultTimeout =\n | number // 0 for immediately; otherwise positive numbers\n | \"never\" // null\n | \"onRestart\" // -1\n | \"onLocked\" // -2\n | \"onSleep\" // -3\n | \"onIdle\"; // -4\n\n// Define mapping of old values to new values for migration purposes\nconst vaultTimeoutTypeMigrateRecord: Record = {\n null: \"never\",\n \"-1\": \"onRestart\",\n \"-2\": \"onLocked\",\n \"-3\": \"onSleep\",\n \"-4\": \"onIdle\",\n};\n\n// define mapping of new values to old values for rollback purposes\nconst vaultTimeoutTypeRollbackRecord: Record = {\n never: null,\n onRestart: -1,\n onLocked: -2,\n onSleep: -3,\n onIdle: -4,\n};\n\nexport enum ClientType {\n Web = \"web\",\n Browser = \"browser\",\n Desktop = \"desktop\",\n Cli = \"cli\",\n}\n\nexport class VaultTimeoutSettingsServiceStateProviderMigrator extends Migrator<61, 62> {\n async migrate(helper: MigrationHelper): Promise {\n const globalData = await helper.get(\"global\");\n\n const accounts = await helper.getAccounts();\n async function migrateAccount(\n userId: string,\n account: ExpectedAccountType | undefined,\n ): Promise {\n let updatedAccount = false;\n\n // Migrate vault timeout\n let existingVaultTimeout = account?.settings?.vaultTimeout;\n\n if (helper.clientType === ClientType.Cli && existingVaultTimeout === undefined) {\n // The CLI does not set a vault timeout by default so we need to set it to null\n // so that the migration can migrate null to \"never\" as the CLI does not have a vault timeout.\n existingVaultTimeout = null;\n }\n\n if (existingVaultTimeout !== undefined) {\n // check undefined so that we allow null values (previously meant never timeout)\n // Only migrate data that exists\n\n if (existingVaultTimeout === null || existingVaultTimeout < 0) {\n // Map null or negative values to new string values\n const newVaultTimeout = vaultTimeoutTypeMigrateRecord[existingVaultTimeout];\n await helper.setToUser(userId, VAULT_TIMEOUT, newVaultTimeout);\n } else {\n // Persist positive numbers as is\n await helper.setToUser(userId, VAULT_TIMEOUT, existingVaultTimeout);\n }\n\n delete account?.settings?.vaultTimeout;\n updatedAccount = true;\n }\n\n // Migrate vault timeout action\n const existingVaultTimeoutAction = account?.settings?.vaultTimeoutAction;\n\n if (existingVaultTimeoutAction != null) {\n // Only migrate data that exists\n await helper.setToUser(userId, VAULT_TIMEOUT_ACTION, existingVaultTimeoutAction);\n\n delete account?.settings?.vaultTimeoutAction;\n updatedAccount = true;\n }\n\n // Note: we are explicitly not worrying about mapping over the global fallback vault timeout / action\n // into the new state provider framework. It was originally a fallback but hasn't been used for years\n // so this migration will clean up the global properties fully.\n\n if (updatedAccount) {\n // Save the migrated account only if it was updated\n await helper.set(userId, account);\n }\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n\n // Delete global data (works for browser extension and web; CLI doesn't have these as global settings).\n delete globalData?.vaultTimeout;\n delete globalData?.vaultTimeoutAction;\n await helper.set(\"global\", globalData);\n\n // Remove desktop only settings. These aren't found by the above global key removal b/c of\n // the different storage key format. This removal does not cause any issues on migrating for other clients.\n await helper.remove(\"global\\\\.vaultTimeout\");\n await helper.remove(\"global\\\\.vaultTimeoutAction\");\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n async function rollbackAccount(userId: string, account: ExpectedAccountType): Promise {\n let updatedLegacyAccount = false;\n\n // Rollback vault timeout\n const migratedVaultTimeout = await helper.getFromUser(userId, VAULT_TIMEOUT);\n\n if (account?.settings && migratedVaultTimeout != null) {\n if (typeof migratedVaultTimeout === \"string\") {\n // Map new string values back to old values\n account.settings.vaultTimeout = vaultTimeoutTypeRollbackRecord[migratedVaultTimeout];\n } else {\n // persist numbers as is\n account.settings.vaultTimeout = migratedVaultTimeout;\n }\n\n updatedLegacyAccount = true;\n }\n\n await helper.setToUser(userId, VAULT_TIMEOUT, null);\n\n // Rollback vault timeout action\n const migratedVaultTimeoutAction = await helper.getFromUser(\n userId,\n VAULT_TIMEOUT_ACTION,\n );\n\n if (account?.settings && migratedVaultTimeoutAction != null) {\n account.settings.vaultTimeoutAction = migratedVaultTimeoutAction;\n updatedLegacyAccount = true;\n }\n\n await helper.setToUser(userId, VAULT_TIMEOUT_ACTION, null);\n\n if (updatedLegacyAccount) {\n await helper.set(userId, account);\n }\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => rollbackAccount(userId, account))]);\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\n/** settings targeted by migrator */\nexport type AccountType = {\n settings?: {\n passwordGenerationOptions?: ExpectedOptions;\n };\n};\n\nexport type GeneratorType = \"password\" | \"passphrase\" | \"username\";\n\n/** username generation options prior to refactoring */\nexport type ExpectedOptions = {\n type?: GeneratorType;\n length?: number;\n minLength?: number;\n ambiguous?: boolean;\n uppercase?: boolean;\n minUppercase?: number;\n lowercase?: boolean;\n minLowercase?: number;\n number?: boolean;\n minNumber?: number;\n special?: boolean;\n minSpecial?: number;\n numWords?: number;\n wordSeparator?: string;\n capitalize?: boolean;\n includeNumber?: boolean;\n};\n\n/** username generation options after refactoring */\ntype ConvertedOptions = {\n generator: GeneratorNavigation;\n password: PasswordGenerationOptions;\n passphrase: PassphraseGenerationOptions;\n};\n\nexport const NAVIGATION: KeyDefinitionLike = {\n stateDefinition: {\n name: \"generator\",\n },\n key: \"generatorSettings\",\n};\n\nexport const PASSWORD: KeyDefinitionLike = {\n stateDefinition: {\n name: \"generator\",\n },\n key: \"passwordGeneratorSettings\",\n};\n\nexport const PASSPHRASE: KeyDefinitionLike = {\n stateDefinition: {\n name: \"generator\",\n },\n key: \"passphraseGeneratorSettings\",\n};\n\nexport type GeneratorNavigation = {\n type?: string;\n};\n\nexport type PassphraseGenerationOptions = {\n numWords?: number;\n wordSeparator?: string;\n capitalize?: boolean;\n includeNumber?: boolean;\n};\n\nexport type PasswordGenerationOptions = {\n length?: number;\n minLength?: number;\n ambiguous?: boolean;\n uppercase?: boolean;\n minUppercase?: number;\n lowercase?: boolean;\n minLowercase?: number;\n number?: boolean;\n minNumber?: number;\n special?: boolean;\n minSpecial?: number;\n};\n\nexport class PasswordOptionsMigrator extends Migrator<62, 63> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n async function migrateAccount(userId: string, account: AccountType) {\n const legacyOptions = account?.settings?.passwordGenerationOptions;\n\n if (legacyOptions) {\n const converted = convertSettings(legacyOptions);\n await storeSettings(helper, userId, converted);\n await deleteSettings(helper, userId, account);\n }\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n }\n\n async rollback(helper: MigrationHelper): Promise {\n // not supported\n }\n}\n\nfunction convertSettings(options: ExpectedOptions): ConvertedOptions {\n const password = {\n length: options.length,\n ambiguous: options.ambiguous,\n uppercase: options.uppercase,\n minUppercase: options.minUppercase,\n lowercase: options.lowercase,\n minLowercase: options.minLowercase,\n number: options.number,\n minNumber: options.minNumber,\n special: options.special,\n minSpecial: options.minSpecial,\n };\n\n const generator = {\n type: options.type,\n };\n\n const passphrase = {\n numWords: options.numWords,\n wordSeparator: options.wordSeparator,\n capitalize: options.capitalize,\n includeNumber: options.includeNumber,\n };\n\n return { generator, password, passphrase };\n}\n\nasync function storeSettings(helper: MigrationHelper, userId: string, converted: ConvertedOptions) {\n const existing = (await helper.getFromUser(userId, NAVIGATION)) ?? {};\n const updated = Object.assign(existing, converted.generator);\n\n await Promise.all([\n helper.setToUser(userId, NAVIGATION, updated),\n helper.setToUser(userId, PASSPHRASE, converted.passphrase),\n helper.setToUser(userId, PASSWORD, converted.password),\n ]);\n}\n\nasync function deleteSettings(helper: MigrationHelper, userId: string, account: AccountType) {\n delete account?.settings?.passwordGenerationOptions;\n await helper.set(userId, account);\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\n/** settings targeted by migrator */\nexport type AccountType = {\n data?: {\n passwordGenerationHistory?: {\n encrypted: EncryptedHistory;\n };\n };\n};\n\n/** the actual data stored in the history is opaque to the migrator */\nexport type EncryptedHistory = Array;\n\nexport const HISTORY: KeyDefinitionLike = {\n stateDefinition: {\n name: \"generator\",\n },\n key: \"localGeneratorHistoryBuffer\",\n};\n\nexport class GeneratorHistoryMigrator extends Migrator<63, 64> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n async function migrateAccount(userId: string, account: AccountType) {\n const data = account?.data?.passwordGenerationHistory;\n if (data && data.encrypted) {\n await helper.setToUser(userId, HISTORY, data.encrypted);\n delete account.data.passwordGenerationHistory;\n await helper.set(userId, account);\n }\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n }\n\n async rollback(helper: MigrationHelper): Promise {\n // not supported\n }\n}\n","import { KeyDefinitionLike, MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\n/** settings targeted by migrator */\nexport type AccountType = {\n settings?: {\n usernameGenerationOptions?: ExpectedOptions;\n };\n};\n\n/** username generation options prior to refactoring */\nexport type ExpectedOptions = {\n type?: \"word\" | \"subaddress\" | \"catchall\" | \"forwarded\";\n wordCapitalize?: boolean;\n wordIncludeNumber?: boolean;\n subaddressType?: \"random\" | \"website-name\";\n subaddressEmail?: string;\n catchallType?: \"random\" | \"website-name\";\n catchallDomain?: string;\n forwardedService?: string;\n forwardedAnonAddyApiToken?: string;\n forwardedAnonAddyDomain?: string;\n forwardedAnonAddyBaseUrl?: string;\n forwardedDuckDuckGoToken?: string;\n forwardedFirefoxApiToken?: string;\n forwardedFastmailApiToken?: string;\n forwardedForwardEmailApiToken?: string;\n forwardedForwardEmailDomain?: string;\n forwardedSimpleLoginApiKey?: string;\n forwardedSimpleLoginBaseUrl?: string;\n};\n\n/** username generation options after refactoring */\ntype ConvertedOptions = {\n generator: GeneratorNavigation;\n algorithms: {\n catchall: CatchallGenerationOptions;\n effUsername: EffUsernameGenerationOptions;\n subaddress: SubaddressGenerationOptions;\n };\n forwarders: {\n addyIo: SelfHostedApiOptions & EmailDomainOptions;\n duckDuckGo: ApiOptions;\n fastmail: ApiOptions;\n firefoxRelay: ApiOptions;\n forwardEmail: ApiOptions & EmailDomainOptions;\n simpleLogin: SelfHostedApiOptions;\n };\n};\n\nexport const NAVIGATION: KeyDefinitionLike = {\n stateDefinition: {\n name: \"generator\",\n },\n key: \"generatorSettings\",\n};\n\nexport const CATCHALL: KeyDefinitionLike = {\n stateDefinition: {\n name: \"generator\",\n },\n key: \"catchallGeneratorSettings\",\n};\n\nexport const EFF_USERNAME: KeyDefinitionLike = {\n stateDefinition: {\n name: \"generator\",\n },\n key: \"effUsernameGeneratorSettings\",\n};\n\nexport const SUBADDRESS: KeyDefinitionLike = {\n stateDefinition: {\n name: \"generator\",\n },\n key: \"subaddressGeneratorSettings\",\n};\n\nexport const ADDY_IO: KeyDefinitionLike = {\n stateDefinition: {\n name: \"generator\",\n },\n key: \"addyIoBuffer\",\n};\n\nexport const DUCK_DUCK_GO: KeyDefinitionLike = {\n stateDefinition: {\n name: \"generator\",\n },\n key: \"duckDuckGoBuffer\",\n};\n\nexport const FASTMAIL: KeyDefinitionLike = {\n stateDefinition: {\n name: \"generator\",\n },\n key: \"fastmailBuffer\",\n};\n\nexport const FIREFOX_RELAY: KeyDefinitionLike = {\n stateDefinition: {\n name: \"generator\",\n },\n key: \"firefoxRelayBuffer\",\n};\n\nexport const FORWARD_EMAIL: KeyDefinitionLike = {\n stateDefinition: {\n name: \"generator\",\n },\n key: \"forwardEmailBuffer\",\n};\n\nexport const SIMPLE_LOGIN: KeyDefinitionLike = {\n stateDefinition: {\n name: \"generator\",\n },\n key: \"simpleLoginBuffer\",\n};\n\nexport type GeneratorNavigation = {\n type?: string;\n username?: string;\n forwarder?: string;\n};\n\ntype UsernameGenerationMode = \"random\" | \"website-name\";\n\ntype CatchallGenerationOptions = {\n catchallType?: UsernameGenerationMode;\n catchallDomain?: string;\n};\n\ntype EffUsernameGenerationOptions = {\n wordCapitalize?: boolean;\n wordIncludeNumber?: boolean;\n};\n\ntype SubaddressGenerationOptions = {\n subaddressType?: UsernameGenerationMode;\n subaddressEmail?: string;\n};\n\ntype ApiOptions = {\n token?: string;\n};\n\ntype SelfHostedApiOptions = ApiOptions & {\n baseUrl: string;\n};\n\ntype EmailDomainOptions = {\n domain: string;\n};\n\nexport class ForwarderOptionsMigrator extends Migrator<64, 65> {\n async migrate(helper: MigrationHelper): Promise {\n const accounts = await helper.getAccounts();\n\n async function migrateAccount(userId: string, account: AccountType) {\n const legacyOptions = account?.settings?.usernameGenerationOptions;\n\n if (legacyOptions) {\n const converted = convertSettings(legacyOptions);\n await storeSettings(helper, userId, converted);\n await deleteSettings(helper, userId, account);\n }\n }\n\n await Promise.all([...accounts.map(({ userId, account }) => migrateAccount(userId, account))]);\n }\n\n async rollback(helper: MigrationHelper): Promise {\n // not supported\n }\n}\n\nfunction convertSettings(options: ExpectedOptions): ConvertedOptions {\n const forwarders = {\n addyIo: {\n baseUrl: options.forwardedAnonAddyBaseUrl,\n token: options.forwardedAnonAddyApiToken,\n domain: options.forwardedAnonAddyDomain,\n },\n duckDuckGo: {\n token: options.forwardedDuckDuckGoToken,\n },\n fastmail: {\n token: options.forwardedFastmailApiToken,\n },\n firefoxRelay: {\n token: options.forwardedFirefoxApiToken,\n },\n forwardEmail: {\n token: options.forwardedForwardEmailApiToken,\n domain: options.forwardedForwardEmailDomain,\n },\n simpleLogin: {\n token: options.forwardedSimpleLoginApiKey,\n baseUrl: options.forwardedSimpleLoginBaseUrl,\n },\n };\n\n const generator = {\n username: options.type,\n forwarder: options.forwardedService,\n };\n\n const algorithms = {\n effUsername: {\n wordCapitalize: options.wordCapitalize,\n wordIncludeNumber: options.wordIncludeNumber,\n },\n subaddress: {\n subaddressType: options.subaddressType,\n subaddressEmail: options.subaddressEmail,\n },\n catchall: {\n catchallType: options.catchallType,\n catchallDomain: options.catchallDomain,\n },\n };\n\n return { generator, algorithms, forwarders };\n}\n\nasync function storeSettings(helper: MigrationHelper, userId: string, converted: ConvertedOptions) {\n await Promise.all([\n helper.setToUser(userId, NAVIGATION, converted.generator),\n helper.setToUser(userId, CATCHALL, converted.algorithms.catchall),\n helper.setToUser(userId, EFF_USERNAME, converted.algorithms.effUsername),\n helper.setToUser(userId, SUBADDRESS, converted.algorithms.subaddress),\n helper.setToUser(userId, ADDY_IO, converted.forwarders.addyIo),\n helper.setToUser(userId, DUCK_DUCK_GO, converted.forwarders.duckDuckGo),\n helper.setToUser(userId, FASTMAIL, converted.forwarders.fastmail),\n helper.setToUser(userId, FIREFOX_RELAY, converted.forwarders.firefoxRelay),\n helper.setToUser(userId, FORWARD_EMAIL, converted.forwarders.forwardEmail),\n helper.setToUser(userId, SIMPLE_LOGIN, converted.forwarders.simpleLogin),\n ]);\n}\n\nasync function deleteSettings(helper: MigrationHelper, userId: string, account: AccountType) {\n delete account?.settings?.usernameGenerationOptions;\n await helper.set(userId, account);\n}\n","import { MigrationHelper } from \"../migration-helper\";\nimport { Direction, IRREVERSIBLE, Migrator } from \"../migrator\";\n\ntype ExpectedAccountType = { settings?: { disableAutoBiometricsPrompt?: boolean } };\n\nexport class MoveBiometricAutoPromptToAccount extends Migrator<6, 7> {\n async migrate(helper: MigrationHelper): Promise {\n const global = await helper.get<{ noAutoPromptBiometrics?: boolean }>(\"global\");\n const noAutoPromptBiometrics = global?.noAutoPromptBiometrics ?? false;\n\n const accounts = await helper.getAccounts();\n async function updateAccount(userId: string, account: ExpectedAccountType) {\n if (account == null) {\n return;\n }\n\n if (noAutoPromptBiometrics) {\n account.settings = Object.assign(account?.settings ?? {}, {\n disableAutoBiometricsPrompt: true,\n });\n await helper.set(userId, account);\n }\n }\n\n delete global.noAutoPromptBiometrics;\n\n await Promise.all([\n ...accounts.map(({ userId, account }) => updateAccount(userId, account)),\n helper.set(\"global\", global),\n ]);\n }\n\n async rollback(helper: MigrationHelper): Promise {\n throw IRREVERSIBLE;\n }\n\n // Override is necessary because default implementation assumes `stateVersion` at the root, but for this version\n // it is nested inside a global object.\n override async updateVersion(helper: MigrationHelper, direction: Direction): Promise {\n const endVersion = direction === \"up\" ? this.toVersion : this.fromVersion;\n helper.currentVersion = endVersion;\n const global: { stateVersion: number } = (await helper.get(\"global\")) || ({} as any);\n await helper.set(\"global\", { ...global, stateVersion: endVersion });\n }\n}\n","import { JsonObject } from \"type-fest\";\n\nimport { MigrationHelper } from \"../migration-helper\";\nimport { Direction, Migrator } from \"../migrator\";\n\nexport class MoveStateVersionMigrator extends Migrator<7, 8> {\n async migrate(helper: MigrationHelper): Promise {\n const global = await helper.get<{ stateVersion: number }>(\"global\");\n if (global.stateVersion) {\n await helper.set(\"stateVersion\", global.stateVersion);\n delete global.stateVersion;\n await helper.set(\"global\", global);\n } else {\n throw new Error(\"Migration failed, state version not found\");\n }\n }\n\n async rollback(helper: MigrationHelper): Promise {\n const version = await helper.get(\"stateVersion\");\n const global = await helper.get(\"global\");\n await helper.set(\"global\", { ...global, stateVersion: version });\n await helper.set(\"stateVersion\", undefined);\n }\n\n // Override is necessary because default implementation assumes `stateVersion` at the root, but this migration moves\n // it from a `global` object to root.This makes for unique rollback versioning.\n override async updateVersion(helper: MigrationHelper, direction: Direction): Promise {\n const endVersion = direction === \"up\" ? this.toVersion : this.fromVersion;\n helper.currentVersion = endVersion;\n if (direction === \"up\") {\n await helper.set(\"stateVersion\", endVersion);\n } else {\n const global: { stateVersion: number } = (await helper.get(\"global\")) || ({} as any);\n await helper.set(\"global\", { ...global, stateVersion: endVersion });\n }\n }\n}\n","import { MigrationHelper } from \"../migration-helper\";\nimport { Migrator } from \"../migrator\";\n\ntype NeverDomains = { [id: string]: unknown };\n\ntype ExpectedAccountType = {\n settings?: {\n neverDomains?: NeverDomains;\n disableAddLoginNotification?: boolean;\n disableChangedPasswordNotification?: boolean;\n disableContextMenuItem?: boolean;\n };\n};\n\ntype TargetGlobalState = {\n neverDomains?: NeverDomains;\n disableAddLoginNotification?: boolean;\n disableChangedPasswordNotification?: boolean;\n disableContextMenuItem?: boolean;\n};\n\nexport class MoveBrowserSettingsToGlobal extends Migrator<8, 9> {\n // Will first check if any of the accounts have a value from the given accountSelector\n // if they do have a value it will set that value into global state but if multiple\n // users have differing values it will prefer the false setting,\n // if all users have true then it will take true.\n tryAddSetting(\n accounts: { userId: string; account: ExpectedAccountType }[],\n accountSelector: (account: ExpectedAccountType) => boolean | undefined,\n globalSetter: (value: boolean | undefined) => void,\n ): void {\n const hasValue = accounts.some(({ account }) => {\n return accountSelector(account) !== undefined;\n });\n\n if (hasValue) {\n const value = !accounts.some(({ account }) => {\n return (accountSelector(account) ?? false) === false;\n });\n\n globalSetter(value);\n }\n }\n\n async migrate(helper: MigrationHelper): Promise {\n const global = await helper.get(\"global\");\n\n const accounts = await helper.getAccounts();\n\n const globalNeverDomainsValue = accounts.reduce((accumulator, { account }) => {\n const normalizedNeverDomains = account.settings?.neverDomains ?? {};\n for (const [id, value] of Object.entries(normalizedNeverDomains)) {\n accumulator ??= {};\n accumulator[id] = value;\n }\n return accumulator;\n }, undefined as NeverDomains);\n\n const targetGlobalState: TargetGlobalState = {};\n\n if (globalNeverDomainsValue != null) {\n targetGlobalState.neverDomains = globalNeverDomainsValue;\n }\n\n this.tryAddSetting(\n accounts,\n (a) => a.settings?.disableAddLoginNotification,\n (v) => (targetGlobalState.disableAddLoginNotification = v),\n );\n\n this.tryAddSetting(\n accounts,\n (a) => a.settings?.disableChangedPasswordNotification,\n (v) => (targetGlobalState.disableChangedPasswordNotification = v),\n );\n\n this.tryAddSetting(\n accounts,\n (a) => a.settings?.disableContextMenuItem,\n (v) => (targetGlobalState.disableContextMenuItem = v),\n );\n\n await helper.set(\"global\", {\n ...global,\n ...targetGlobalState,\n });\n\n await Promise.all(\n accounts.map(async ({ userId, account }) => {\n delete account.settings?.disableAddLoginNotification;\n delete account.settings?.disableChangedPasswordNotification;\n delete account.settings?.disableContextMenuItem;\n delete account.settings?.neverDomains;\n await helper.set(userId, account);\n }),\n );\n }\n\n rollback(helper: MigrationHelper): Promise {\n throw new Error(\"Method not implemented.\");\n }\n}\n","import { MinVersion, MIN_VERSION } from \"../migrate\";\nimport { MigrationHelper } from \"../migration-helper\";\nimport { IRREVERSIBLE, Migrator } from \"../migrator\";\n\nexport function minVersionError(current: number) {\n return `Your local data is too old to be migrated. Your current state version is ${current}, but minimum version is ${MIN_VERSION}.`;\n}\n\nexport class MinVersionMigrator extends Migrator<0, MinVersion> {\n constructor() {\n super(0, MIN_VERSION);\n }\n\n // Overrides the default implementation to catch any version that may be passed in.\n override shouldMigrate(helper: MigrationHelper): Promise {\n return Promise.resolve(helper.currentVersion < MIN_VERSION);\n }\n async migrate(helper: MigrationHelper): Promise {\n if (helper.currentVersion < MIN_VERSION) {\n throw new Error(minVersionError(helper.currentVersion));\n }\n }\n async rollback(helper: MigrationHelper): Promise {\n throw IRREVERSIBLE;\n }\n}\n","// eslint-disable-next-line import/no-restricted-paths -- Needed to print log messages\nimport { LogService } from \"../platform/abstractions/log.service\";\n// eslint-disable-next-line import/no-restricted-paths -- Needed to interface with storage locations\nimport { AbstractStorageService } from \"../platform/abstractions/storage.service\";\n\nimport { MigrationBuilder } from \"./migration-builder\";\nimport { EverHadUserKeyMigrator } from \"./migrations/10-move-ever-had-user-key-to-state-providers\";\nimport { OrganizationKeyMigrator } from \"./migrations/11-move-org-keys-to-state-providers\";\nimport { MoveEnvironmentStateToProviders } from \"./migrations/12-move-environment-state-to-providers\";\nimport { ProviderKeyMigrator } from \"./migrations/13-move-provider-keys-to-state-providers\";\nimport { MoveBiometricClientKeyHalfToStateProviders } from \"./migrations/14-move-biometric-client-key-half-state-to-providers\";\nimport { FolderMigrator } from \"./migrations/15-move-folder-state-to-state-provider\";\nimport { LastSyncMigrator } from \"./migrations/16-move-last-sync-to-state-provider\";\nimport { EnablePasskeysMigrator } from \"./migrations/17-move-enable-passkeys-to-state-providers\";\nimport { AutofillSettingsKeyMigrator } from \"./migrations/18-move-autofill-settings-to-state-providers\";\nimport { RequirePasswordOnStartMigrator } from \"./migrations/19-migrate-require-password-on-start\";\nimport { PrivateKeyMigrator } from \"./migrations/20-move-private-key-to-state-providers\";\nimport { CollectionMigrator } from \"./migrations/21-move-collections-state-to-state-provider\";\nimport { CollapsedGroupingsMigrator } from \"./migrations/22-move-collapsed-groupings-to-state-provider\";\nimport { MoveBiometricPromptsToStateProviders } from \"./migrations/23-move-biometric-prompts-to-state-providers\";\nimport { SmOnboardingTasksMigrator } from \"./migrations/24-move-sm-onboarding-key-to-state-providers\";\nimport { ClearClipboardDelayMigrator } from \"./migrations/25-move-clear-clipboard-to-autofill-settings-state-provider\";\nimport { RevertLastSyncMigrator } from \"./migrations/26-revert-move-last-sync-to-state-provider\";\nimport { BadgeSettingsMigrator } from \"./migrations/27-move-badge-settings-to-state-providers\";\nimport { MoveBiometricUnlockToStateProviders } from \"./migrations/28-move-biometric-unlock-to-state-providers\";\nimport { UserNotificationSettingsKeyMigrator } from \"./migrations/29-move-user-notification-settings-to-state-provider\";\nimport { PolicyMigrator } from \"./migrations/30-move-policy-state-to-state-provider\";\nimport { EnableContextMenuMigrator } from \"./migrations/31-move-enable-context-menu-to-autofill-settings-state-provider\";\nimport { PreferredLanguageMigrator } from \"./migrations/32-move-preferred-language\";\nimport { AppIdMigrator } from \"./migrations/33-move-app-id-to-state-providers\";\nimport { DomainSettingsMigrator } from \"./migrations/34-move-domain-settings-to-state-providers\";\nimport { MoveThemeToStateProviderMigrator } from \"./migrations/35-move-theme-to-state-providers\";\nimport { VaultSettingsKeyMigrator } from \"./migrations/36-move-show-card-and-identity-to-state-provider\";\nimport { AvatarColorMigrator } from \"./migrations/37-move-avatar-color-to-state-providers\";\nimport { TokenServiceStateProviderMigrator } from \"./migrations/38-migrate-token-svc-to-state-provider\";\nimport { MoveBillingAccountProfileMigrator } from \"./migrations/39-move-billing-account-profile-to-state-providers\";\nimport { RemoveEverBeenUnlockedMigrator } from \"./migrations/4-remove-ever-been-unlocked\";\nimport { OrganizationMigrator } from \"./migrations/40-move-organization-state-to-state-provider\";\nimport { EventCollectionMigrator } from \"./migrations/41-move-event-collection-to-state-provider\";\nimport { EnableFaviconMigrator } from \"./migrations/42-move-enable-favicon-to-domain-settings-state-provider\";\nimport { AutoConfirmFingerPrintsMigrator } from \"./migrations/43-move-auto-confirm-finger-prints-to-state-provider\";\nimport { UserDecryptionOptionsMigrator } from \"./migrations/44-move-user-decryption-options-to-state-provider\";\nimport { MergeEnvironmentState } from \"./migrations/45-merge-environment-state\";\nimport { DeleteBiometricPromptCancelledData } from \"./migrations/46-delete-orphaned-biometric-prompt-data\";\nimport { MoveDesktopSettingsMigrator } from \"./migrations/47-move-desktop-settings\";\nimport { MoveDdgToStateProviderMigrator } from \"./migrations/48-move-ddg-to-state-provider\";\nimport { AccountServerConfigMigrator } from \"./migrations/49-move-account-server-configs\";\nimport { AddKeyTypeToOrgKeysMigrator } from \"./migrations/5-add-key-type-to-org-keys\";\nimport { KeyConnectorMigrator } from \"./migrations/50-move-key-connector-to-state-provider\";\nimport { RememberedEmailMigrator } from \"./migrations/51-move-remembered-email-to-state-providers\";\nimport { DeleteInstalledVersion } from \"./migrations/52-delete-installed-version\";\nimport { DeviceTrustServiceStateProviderMigrator } from \"./migrations/53-migrate-device-trust-svc-to-state-providers\";\nimport { SendMigrator } from \"./migrations/54-move-encrypted-sends\";\nimport { MoveMasterKeyStateToProviderMigrator } from \"./migrations/55-move-master-key-state-to-provider\";\nimport { AuthRequestMigrator } from \"./migrations/56-move-auth-requests\";\nimport { CipherServiceMigrator } from \"./migrations/57-move-cipher-service-to-state-provider\";\nimport { RemoveRefreshTokenMigratedFlagMigrator } from \"./migrations/58-remove-refresh-token-migrated-state-provider-flag\";\nimport { KdfConfigMigrator } from \"./migrations/59-move-kdf-config-to-state-provider\";\nimport { RemoveLegacyEtmKeyMigrator } from \"./migrations/6-remove-legacy-etm-key\";\nimport { KnownAccountsMigrator } from \"./migrations/60-known-accounts\";\nimport { PinStateMigrator } from \"./migrations/61-move-pin-state-to-providers\";\nimport { VaultTimeoutSettingsServiceStateProviderMigrator } from \"./migrations/62-migrate-vault-timeout-settings-svc-to-state-provider\";\nimport { PasswordOptionsMigrator } from \"./migrations/63-migrate-password-settings\";\nimport { GeneratorHistoryMigrator } from \"./migrations/64-migrate-generator-history\";\nimport { ForwarderOptionsMigrator } from \"./migrations/65-migrate-forwarder-settings\";\nimport { MoveBiometricAutoPromptToAccount } from \"./migrations/7-move-biometric-auto-prompt-to-account\";\nimport { MoveStateVersionMigrator } from \"./migrations/8-move-state-version\";\nimport { MoveBrowserSettingsToGlobal } from \"./migrations/9-move-browser-settings-to-global\";\nimport { MinVersionMigrator } from \"./migrations/min-version\";\n\nexport const MIN_VERSION = 3;\nexport const CURRENT_VERSION = 65;\nexport type MinVersion = typeof MIN_VERSION;\n\nexport function createMigrationBuilder() {\n return MigrationBuilder.create()\n .with(MinVersionMigrator)\n .with(RemoveEverBeenUnlockedMigrator, 3, 4)\n .with(AddKeyTypeToOrgKeysMigrator, 4, 5)\n .with(RemoveLegacyEtmKeyMigrator, 5, 6)\n .with(MoveBiometricAutoPromptToAccount, 6, 7)\n .with(MoveStateVersionMigrator, 7, 8)\n .with(MoveBrowserSettingsToGlobal, 8, 9)\n .with(EverHadUserKeyMigrator, 9, 10)\n .with(OrganizationKeyMigrator, 10, 11)\n .with(MoveEnvironmentStateToProviders, 11, 12)\n .with(ProviderKeyMigrator, 12, 13)\n .with(MoveBiometricClientKeyHalfToStateProviders, 13, 14)\n .with(FolderMigrator, 14, 15)\n .with(LastSyncMigrator, 15, 16)\n .with(EnablePasskeysMigrator, 16, 17)\n .with(AutofillSettingsKeyMigrator, 17, 18)\n .with(RequirePasswordOnStartMigrator, 18, 19)\n .with(PrivateKeyMigrator, 19, 20)\n .with(CollectionMigrator, 20, 21)\n .with(CollapsedGroupingsMigrator, 21, 22)\n .with(MoveBiometricPromptsToStateProviders, 22, 23)\n .with(SmOnboardingTasksMigrator, 23, 24)\n .with(ClearClipboardDelayMigrator, 24, 25)\n .with(RevertLastSyncMigrator, 25, 26)\n .with(BadgeSettingsMigrator, 26, 27)\n .with(MoveBiometricUnlockToStateProviders, 27, 28)\n .with(UserNotificationSettingsKeyMigrator, 28, 29)\n .with(PolicyMigrator, 29, 30)\n .with(EnableContextMenuMigrator, 30, 31)\n .with(PreferredLanguageMigrator, 31, 32)\n .with(AppIdMigrator, 32, 33)\n .with(DomainSettingsMigrator, 33, 34)\n .with(MoveThemeToStateProviderMigrator, 34, 35)\n .with(VaultSettingsKeyMigrator, 35, 36)\n .with(AvatarColorMigrator, 36, 37)\n .with(TokenServiceStateProviderMigrator, 37, 38)\n .with(MoveBillingAccountProfileMigrator, 38, 39)\n .with(OrganizationMigrator, 39, 40)\n .with(EventCollectionMigrator, 40, 41)\n .with(EnableFaviconMigrator, 41, 42)\n .with(AutoConfirmFingerPrintsMigrator, 42, 43)\n .with(UserDecryptionOptionsMigrator, 43, 44)\n .with(MergeEnvironmentState, 44, 45)\n .with(DeleteBiometricPromptCancelledData, 45, 46)\n .with(MoveDesktopSettingsMigrator, 46, 47)\n .with(MoveDdgToStateProviderMigrator, 47, 48)\n .with(AccountServerConfigMigrator, 48, 49)\n .with(KeyConnectorMigrator, 49, 50)\n .with(RememberedEmailMigrator, 50, 51)\n .with(DeleteInstalledVersion, 51, 52)\n .with(DeviceTrustServiceStateProviderMigrator, 52, 53)\n .with(SendMigrator, 53, 54)\n .with(MoveMasterKeyStateToProviderMigrator, 54, 55)\n .with(AuthRequestMigrator, 55, 56)\n .with(CipherServiceMigrator, 56, 57)\n .with(RemoveRefreshTokenMigratedFlagMigrator, 57, 58)\n .with(KdfConfigMigrator, 58, 59)\n .with(KnownAccountsMigrator, 59, 60)\n .with(PinStateMigrator, 60, 61)\n .with(VaultTimeoutSettingsServiceStateProviderMigrator, 61, 62)\n .with(PasswordOptionsMigrator, 62, 63)\n .with(GeneratorHistoryMigrator, 63, 64)\n .with(ForwarderOptionsMigrator, 64, CURRENT_VERSION);\n}\n\nexport async function currentVersion(\n storageService: AbstractStorageService,\n logService: LogService,\n) {\n let state = await storageService.get(\"stateVersion\");\n if (state == null) {\n // Pre v8\n state = (await storageService.get<{ stateVersion: number }>(\"global\"))?.stateVersion;\n }\n if (state == null) {\n logService.info(\"No state version found, assuming empty state.\");\n return -1;\n }\n logService.info(`State version: ${state}`);\n return state;\n}\n\n/**\n * Waits for migrations to have a chance to run and will resolve the promise once they are.\n *\n * @param storageService Disk storage where the `stateVersion` will or is already saved in.\n * @param logService Log service\n */\nexport async function waitForMigrations(\n storageService: AbstractStorageService,\n logService: LogService,\n) {\n const isReady = async () => {\n const version = await currentVersion(storageService, logService);\n // The saved version is what we consider the latest\n // migrations should be complete, the state version\n // shouldn't become larger than `CURRENT_VERSION` in\n // any normal usage of the application but it is common\n // enough in dev scenarios where we want to consider that\n // ready as well and return true in that scenario.\n return version >= CURRENT_VERSION;\n };\n\n const wait = async (time: number) => {\n // Wait exponentially\n const nextTime = time * 2;\n if (nextTime > 8192) {\n // Don't wait longer than ~8 seconds in a single wait,\n // if the migrations still haven't happened. They aren't\n // likely to.\n return;\n }\n return new Promise((resolve) => {\n setTimeout(async () => {\n if (!(await isReady())) {\n logService.info(`Waiting for migrations to finish, waiting for ${nextTime}ms`);\n await wait(nextTime);\n }\n resolve();\n }, time);\n });\n };\n\n if (!(await isReady())) {\n // Wait for 2ms to start with\n await wait(2);\n }\n}\n","import { createMigrationBuilder } from \"../../state-migrations\";\nimport { MigrationBuilder } from \"../../state-migrations/migration-builder\";\n\nexport class MigrationBuilderService {\n private migrationBuilderCache: MigrationBuilder;\n\n build() {\n return (this.migrationBuilderCache ??= createMigrationBuilder());\n }\n}\n","// eslint-disable-next-line import/no-restricted-paths -- Needed to provide client type to migrations\nimport { ClientType } from \"../enums\";\n// eslint-disable-next-line import/no-restricted-paths -- Needed to print log messages\nimport { LogService } from \"../platform/abstractions/log.service\";\n// eslint-disable-next-line import/no-restricted-paths -- Needed to interface with storage locations\nimport { AbstractStorageService } from \"../platform/abstractions/storage.service\";\n\nexport type StateDefinitionLike = { name: string };\nexport type KeyDefinitionLike = {\n stateDefinition: StateDefinitionLike;\n key: string;\n};\n\nexport type MigrationHelperType = \"general\" | \"web-disk-local\";\n\nexport class MigrationHelper {\n constructor(\n public currentVersion: number,\n private storageService: AbstractStorageService,\n public logService: LogService,\n type: MigrationHelperType,\n public clientType: ClientType,\n ) {\n this.type = type;\n }\n\n /**\n * On some clients, migrations are ran multiple times without direct action from the migration writer.\n *\n * All clients will run through migrations at least once, this run is referred to as `\"general\"`. If a migration is\n * ran more than that single time, they will get a unique name if that the write can make conditional logic based on which\n * migration run this is.\n *\n * @remarks The preferrable way of writing migrations is ALWAYS to be defensive and reflect on the data you are given back. This\n * should really only be used when reflecting on the data given isn't enough.\n */\n type: MigrationHelperType;\n\n /**\n * Gets a value from the storage service at the given key.\n *\n * This is a brute force method to just get a value from the storage service. If you can use {@link getFromGlobal} or {@link getFromUser}, you should.\n * @param key location\n * @returns the value at the location\n */\n get(key: string): Promise {\n return this.storageService.get(key);\n }\n\n /**\n * Sets a value in the storage service at the given key.\n *\n * This is a brute force method to just set a value in the storage service. If you can use {@link setToGlobal} or {@link setToUser}, you should.\n * @param key location\n * @param value the value to set\n * @returns\n */\n set(key: string, value: T): Promise {\n this.logService.info(`Setting ${key}`);\n return this.storageService.save(key, value);\n }\n\n /**\n * Remove a value in the storage service at the given key.\n *\n * This is a brute force method to just remove a value in the storage service. If you can use {@link removeFromGlobal} or {@link removeFromUser}, you should.\n * @param key location\n * @returns void\n */\n remove(key: string): Promise {\n this.logService.info(`Removing ${key}`);\n return this.storageService.remove(key);\n }\n\n /**\n * Gets a globally scoped value from a location derived through the key definition\n *\n * This is for use with the state providers framework, DO NOT use for values stored with {@link StateService},\n * use {@link get} for those.\n * @param keyDefinition unique key definition\n * @returns value from store\n */\n getFromGlobal(keyDefinition: KeyDefinitionLike): Promise {\n return this.get(this.getGlobalKey(keyDefinition));\n }\n\n /**\n * Sets a globally scoped value to a location derived through the key definition\n *\n * This is for use with the state providers framework, DO NOT use for values stored with {@link StateService},\n * use {@link set} for those.\n * @param keyDefinition unique key definition\n * @param value value to store\n * @returns void\n */\n setToGlobal(keyDefinition: KeyDefinitionLike, value: T): Promise {\n return this.set(this.getGlobalKey(keyDefinition), value);\n }\n\n /**\n * Remove a globally scoped location derived through the key definition\n *\n * This is for use with the state providers framework, DO NOT use for values stored with {@link StateService},\n * use {@link remove} for those.\n * @param keyDefinition unique key definition\n * @returns void\n */\n removeFromGlobal(keyDefinition: KeyDefinitionLike): Promise {\n return this.remove(this.getGlobalKey(keyDefinition));\n }\n\n /**\n * Gets a user scoped value from a location derived through the user id and key definition\n *\n * This is for use with the state providers framework, DO NOT use for values stored with {@link StateService},\n * use {@link get} for those.\n * @param userId userId to use in the key\n * @param keyDefinition unique key definition\n * @returns value from store\n */\n getFromUser(userId: string, keyDefinition: KeyDefinitionLike): Promise {\n return this.get(this.getUserKey(userId, keyDefinition));\n }\n\n /**\n * Sets a user scoped value to a location derived through the user id and key definition\n *\n * This is for use with the state providers framework, DO NOT use for values stored with {@link StateService},\n * use {@link set} for those.\n * @param userId userId to use in the key\n * @param keyDefinition unique key definition\n * @param value value to store\n * @returns void\n */\n setToUser(userId: string, keyDefinition: KeyDefinitionLike, value: T): Promise {\n return this.set(this.getUserKey(userId, keyDefinition), value);\n }\n\n /**\n * Remove a user scoped location derived through the key definition\n *\n * This is for use with the state providers framework, DO NOT use for values stored with {@link StateService},\n * use {@link remove} for those.\n * @param keyDefinition unique key definition\n * @returns void\n */\n removeFromUser(userId: string, keyDefinition: KeyDefinitionLike): Promise {\n return this.remove(this.getUserKey(userId, keyDefinition));\n }\n\n info(message: string): void {\n this.logService.info(message);\n }\n\n /**\n * Helper method to read all Account objects stored by the State Service.\n *\n * This is useful from creating migrations off of this paradigm, but should not be used once a value is migrated to a state provider.\n *\n * @returns a list of all accounts that have been authenticated with state service, cast the expected type.\n */\n async getAccounts(): Promise<\n { userId: string; account: ExpectedAccountType }[]\n > {\n const userIds = await this.getKnownUserIds();\n return Promise.all(\n userIds.map(async (userId) => ({\n userId,\n account: await this.get(userId),\n })),\n );\n }\n\n /**\n * Helper method to read known users ids.\n */\n async getKnownUserIds(): Promise {\n if (this.currentVersion < 60) {\n return knownAccountUserIdsBuilderPre60(this.storageService);\n } else {\n return knownAccountUserIdsBuilder(this.storageService);\n }\n }\n\n /**\n * Builds a user storage key appropriate for the current version.\n *\n * @param userId userId to use in the key\n * @param keyDefinition state and key to use in the key\n * @returns\n */\n private getUserKey(userId: string, keyDefinition: KeyDefinitionLike): string {\n if (this.currentVersion < 9) {\n return userKeyBuilderPre9();\n } else {\n return userKeyBuilder(userId, keyDefinition);\n }\n }\n\n /**\n * Builds a global storage key appropriate for the current version.\n *\n * @param keyDefinition state and key to use in the key\n * @returns\n */\n private getGlobalKey(keyDefinition: KeyDefinitionLike): string {\n if (this.currentVersion < 9) {\n return globalKeyBuilderPre9();\n } else {\n return globalKeyBuilder(keyDefinition);\n }\n }\n}\n\n/**\n * When this is updated, rename this function to `userKeyBuilderXToY` where `X` is the version number it\n * became relevant, and `Y` prior to the version it was updated.\n *\n * Be sure to update the map in `MigrationHelper` to point to the appropriate function for the current version.\n * @param userId The userId of the user you want the key to be for.\n * @param keyDefinition the key definition of which data the key should point to.\n * @returns\n */\nfunction userKeyBuilder(userId: string, keyDefinition: KeyDefinitionLike): string {\n return `user_${userId}_${keyDefinition.stateDefinition.name}_${keyDefinition.key}`;\n}\n\nfunction userKeyBuilderPre9(): string {\n throw Error(\"No key builder should be used for versions prior to 9.\");\n}\n\n/**\n * When this is updated, rename this function to `globalKeyBuilderXToY` where `X` is the version number\n * it became relevant, and `Y` prior to the version it was updated.\n *\n * Be sure to update the map in `MigrationHelper` to point to the appropriate function for the current version.\n * @param keyDefinition the key definition of which data the key should point to.\n * @returns\n */\nfunction globalKeyBuilder(keyDefinition: KeyDefinitionLike): string {\n return `global_${keyDefinition.stateDefinition.name}_${keyDefinition.key}`;\n}\n\nfunction globalKeyBuilderPre9(): string {\n throw Error(\"No key builder should be used for versions prior to 9.\");\n}\n\nasync function knownAccountUserIdsBuilderPre60(\n storageService: AbstractStorageService,\n): Promise {\n return (await storageService.get(\"authenticatedAccounts\")) ?? [];\n}\n\nasync function knownAccountUserIdsBuilder(\n storageService: AbstractStorageService,\n): Promise {\n const accounts = await storageService.get>(\n globalKeyBuilder({ stateDefinition: { name: \"account\" }, key: \"accounts\" }),\n );\n return Object.keys(accounts ?? {});\n}\n","import { ClientType } from \"../../enums\";\nimport { waitForMigrations } from \"../../state-migrations\";\nimport { CURRENT_VERSION, currentVersion } from \"../../state-migrations/migrate\";\nimport { MigrationHelper } from \"../../state-migrations/migration-helper\";\nimport { LogService } from \"../abstractions/log.service\";\nimport { AbstractStorageService } from \"../abstractions/storage.service\";\n\nimport { MigrationBuilderService } from \"./migration-builder.service\";\n\nexport class MigrationRunner {\n constructor(\n protected diskStorage: AbstractStorageService,\n protected logService: LogService,\n protected migrationBuilderService: MigrationBuilderService,\n private clientType: ClientType,\n ) {}\n\n async run(): Promise {\n const migrationHelper = new MigrationHelper(\n await currentVersion(this.diskStorage, this.logService),\n this.diskStorage,\n this.logService,\n \"general\",\n this.clientType,\n );\n\n if (migrationHelper.currentVersion < 0) {\n // Cannot determine state, assuming empty so we don't repeatedly apply a migration.\n await this.diskStorage.save(\"stateVersion\", CURRENT_VERSION);\n return;\n }\n\n const migrationBuilder = this.migrationBuilderService.build();\n\n await migrationBuilder.migrate(migrationHelper);\n }\n\n async waitForCompletion(): Promise {\n await waitForMigrations(this.diskStorage, this.logService);\n }\n}\n","import { Jsonify } from \"type-fest\";\n\nimport { Account } from \"./account\";\nimport { GlobalState } from \"./global-state\";\n\nexport class State<\n TGlobalState extends GlobalState = GlobalState,\n TAccount extends Account = Account,\n> {\n accounts: { [userId: string]: TAccount } = {};\n globals: TGlobalState;\n\n constructor(globals: TGlobalState) {\n this.globals = globals;\n }\n\n // TODO, make Jsonify work. It currently doesn't because Globals doesn't implement Jsonify.\n static fromJSON(\n obj: any,\n accountDeserializer: (json: Jsonify) => TAccount,\n ): State {\n if (obj == null) {\n return null;\n }\n\n return Object.assign(new State(null), obj, {\n accounts: State.buildAccountMapFromJSON(obj?.accounts, accountDeserializer),\n });\n }\n\n private static buildAccountMapFromJSON(\n jsonAccounts: { [userId: string]: Jsonify },\n accountDeserializer: (json: Jsonify) => TAccount,\n ) {\n if (!jsonAccounts) {\n return {};\n }\n const accounts: { [userId: string]: TAccount } = {};\n for (const userId in jsonAccounts) {\n accounts[userId] = accountDeserializer(jsonAccounts[userId]);\n }\n return accounts;\n }\n}\n","import { firstValueFrom, map } from \"rxjs\";\nimport { Jsonify, JsonValue } from \"type-fest\";\n\nimport { AccountService } from \"../../auth/abstractions/account.service\";\nimport { TokenService } from \"../../auth/abstractions/token.service\";\nimport { BiometricKey } from \"../../auth/types/biometric-key\";\nimport { GeneratorOptions } from \"../../tools/generator/generator-options\";\nimport { GeneratedPasswordHistory, PasswordGeneratorOptions } from \"../../tools/generator/password\";\nimport { UsernameGeneratorOptions } from \"../../tools/generator/username\";\nimport { UserId } from \"../../types/guid\";\nimport { EnvironmentService } from \"../abstractions/environment.service\";\nimport { LogService } from \"../abstractions/log.service\";\nimport {\n InitOptions,\n StateService as StateServiceAbstraction,\n} from \"../abstractions/state.service\";\nimport { AbstractStorageService } from \"../abstractions/storage.service\";\nimport { HtmlStorageLocation, StorageLocation } from \"../enums\";\nimport { StateFactory } from \"../factories/state-factory\";\nimport { Utils } from \"../misc/utils\";\nimport { Account, AccountData, AccountSettings } from \"../models/domain/account\";\nimport { GlobalState } from \"../models/domain/global-state\";\nimport { State } from \"../models/domain/state\";\nimport { StorageOptions } from \"../models/domain/storage-options\";\n\nimport { MigrationRunner } from \"./migration-runner\";\n\nconst keys = {\n state: \"state\",\n stateVersion: \"stateVersion\",\n global: \"global\",\n tempAccountSettings: \"tempAccountSettings\", // used to hold account specific settings (i.e clear clipboard) between initial migration and first account authentication\n};\n\nconst partialKeys = {\n userAutoKey: \"_user_auto\",\n userBiometricKey: \"_user_biometric\",\n\n autoKey: \"_masterkey_auto\",\n biometricKey: \"_masterkey_biometric\",\n masterKey: \"_masterkey\",\n};\n\nconst DDG_SHARED_KEY = \"DuckDuckGoSharedKey\";\n\nexport class StateService<\n TGlobalState extends GlobalState = GlobalState,\n TAccount extends Account = Account,\n> implements StateServiceAbstraction\n{\n private hasBeenInited = false;\n protected isRecoveredSession = false;\n\n // default account serializer, must be overridden by child class\n protected accountDeserializer = Account.fromJSON as (json: Jsonify) => TAccount;\n\n constructor(\n protected storageService: AbstractStorageService,\n protected secureStorageService: AbstractStorageService,\n protected memoryStorageService: AbstractStorageService,\n protected logService: LogService,\n protected stateFactory: StateFactory,\n protected accountService: AccountService,\n protected environmentService: EnvironmentService,\n protected tokenService: TokenService,\n private migrationRunner: MigrationRunner,\n ) {}\n\n async init(initOptions: InitOptions = {}): Promise {\n // Deconstruct and apply defaults\n const { runMigrations = true } = initOptions;\n if (this.hasBeenInited) {\n return;\n }\n\n if (runMigrations) {\n await this.migrationRunner.run();\n } else {\n // It may have been requested to not run the migrations but we should defensively not\n // continue this method until migrations have a chance to be completed elsewhere.\n await this.migrationRunner.waitForCompletion();\n }\n\n await this.state().then(async (state) => {\n if (state == null) {\n await this.setState(new State(this.createGlobals()));\n } else {\n this.isRecoveredSession = true;\n }\n });\n await this.initAccountState();\n\n this.hasBeenInited = true;\n }\n\n async initAccountState() {\n if (this.isRecoveredSession) {\n return;\n }\n\n // Get all likely authenticated accounts\n const authenticatedAccounts = await firstValueFrom(\n this.accountService.accounts$.pipe(map((accounts) => Object.keys(accounts))),\n );\n\n await this.updateState(async (state) => {\n for (const i in authenticatedAccounts) {\n state = await this.syncAccountFromDisk(authenticatedAccounts[i]);\n }\n\n return state;\n });\n }\n\n async syncAccountFromDisk(userId: string): Promise> {\n if (userId == null) {\n return;\n }\n const diskAccount = await this.getAccountFromDisk({ userId: userId });\n const state = await this.updateState(async (state) => {\n if (state.accounts == null) {\n state.accounts = {};\n }\n state.accounts[userId] = this.createAccount();\n state.accounts[userId].profile = diskAccount.profile;\n return state;\n });\n\n return state;\n }\n\n async addAccount(account: TAccount) {\n await this.environmentService.seedUserEnvironment(account.profile.userId as UserId);\n await this.updateState(async (state) => {\n state.accounts[account.profile.userId] = account;\n return state;\n });\n await this.scaffoldNewAccountStorage(account);\n }\n\n async clean(options?: StorageOptions): Promise {\n options = this.reconcileOptions(options, await this.defaultInMemoryOptions());\n await this.deAuthenticateAccount(options.userId);\n\n await this.removeAccountFromDisk(options?.userId);\n await this.removeAccountFromMemory(options?.userId);\n }\n\n /**\n * user key when using the \"never\" option of vault timeout\n */\n async getUserKeyAutoUnlock(options?: StorageOptions): Promise {\n options = this.reconcileOptions(\n this.reconcileOptions(options, { keySuffix: \"auto\" }),\n await this.defaultSecureStorageOptions(),\n );\n if (options?.userId == null) {\n return null;\n }\n return await this.secureStorageService.get(\n `${options.userId}${partialKeys.userAutoKey}`,\n options,\n );\n }\n\n /**\n * user key when using the \"never\" option of vault timeout\n */\n async setUserKeyAutoUnlock(value: string, options?: StorageOptions): Promise {\n options = this.reconcileOptions(\n this.reconcileOptions(options, { keySuffix: \"auto\" }),\n await this.defaultSecureStorageOptions(),\n );\n if (options?.userId == null) {\n return;\n }\n await this.saveSecureStorageKey(partialKeys.userAutoKey, value, options);\n }\n\n /**\n * User's encrypted symmetric key when using biometrics\n */\n async getUserKeyBiometric(options?: StorageOptions): Promise {\n options = this.reconcileOptions(\n this.reconcileOptions(options, { keySuffix: \"biometric\" }),\n await this.defaultSecureStorageOptions(),\n );\n if (options?.userId == null) {\n return null;\n }\n return await this.secureStorageService.get(\n `${options.userId}${partialKeys.userBiometricKey}`,\n options,\n );\n }\n\n async hasUserKeyBiometric(options?: StorageOptions): Promise {\n options = this.reconcileOptions(\n this.reconcileOptions(options, { keySuffix: \"biometric\" }),\n await this.defaultSecureStorageOptions(),\n );\n if (options?.userId == null) {\n return false;\n }\n return await this.secureStorageService.has(\n `${options.userId}${partialKeys.userBiometricKey}`,\n options,\n );\n }\n\n async setUserKeyBiometric(value: BiometricKey, options?: StorageOptions): Promise {\n options = this.reconcileOptions(\n this.reconcileOptions(options, { keySuffix: \"biometric\" }),\n await this.defaultSecureStorageOptions(),\n );\n if (options?.userId == null) {\n return;\n }\n await this.saveSecureStorageKey(partialKeys.userBiometricKey, value, options);\n }\n\n /**\n * @deprecated Use UserKeyAuto instead\n */\n async setCryptoMasterKeyAuto(value: string, options?: StorageOptions): Promise {\n options = this.reconcileOptions(\n this.reconcileOptions(options, { keySuffix: \"auto\" }),\n await this.defaultSecureStorageOptions(),\n );\n if (options?.userId == null) {\n return;\n }\n await this.saveSecureStorageKey(partialKeys.autoKey, value, options);\n }\n\n /**\n * @deprecated I don't see where this is even used\n */\n async getCryptoMasterKeyB64(options?: StorageOptions): Promise {\n options = this.reconcileOptions(options, await this.defaultSecureStorageOptions());\n if (options?.userId == null) {\n return null;\n }\n return await this.secureStorageService.get(\n `${options?.userId}${partialKeys.masterKey}`,\n options,\n );\n }\n\n /**\n * @deprecated I don't see where this is even used\n */\n async setCryptoMasterKeyB64(value: string, options?: StorageOptions): Promise {\n options = this.reconcileOptions(options, await this.defaultSecureStorageOptions());\n if (options?.userId == null) {\n return;\n }\n await this.saveSecureStorageKey(partialKeys.masterKey, value, options);\n }\n\n /**\n * @deprecated Use UserKeyBiometric instead\n */\n async getCryptoMasterKeyBiometric(options?: StorageOptions): Promise {\n options = this.reconcileOptions(\n this.reconcileOptions(options, { keySuffix: \"biometric\" }),\n await this.defaultSecureStorageOptions(),\n );\n if (options?.userId == null) {\n return null;\n }\n return await this.secureStorageService.get(\n `${options.userId}${partialKeys.biometricKey}`,\n options,\n );\n }\n\n /**\n * @deprecated Use UserKeyBiometric instead\n */\n async hasCryptoMasterKeyBiometric(options?: StorageOptions): Promise {\n options = this.reconcileOptions(\n this.reconcileOptions(options, { keySuffix: \"biometric\" }),\n await this.defaultSecureStorageOptions(),\n );\n if (options?.userId == null) {\n return false;\n }\n return await this.secureStorageService.has(\n `${options.userId}${partialKeys.biometricKey}`,\n options,\n );\n }\n\n /**\n * @deprecated Use UserKeyBiometric instead\n */\n async setCryptoMasterKeyBiometric(value: BiometricKey, options?: StorageOptions): Promise {\n options = this.reconcileOptions(\n this.reconcileOptions(options, { keySuffix: \"biometric\" }),\n await this.defaultSecureStorageOptions(),\n );\n if (options?.userId == null) {\n return;\n }\n await this.saveSecureStorageKey(partialKeys.biometricKey, value, options);\n }\n\n @withPrototypeForArrayMembers(GeneratedPasswordHistory)\n async getDecryptedPasswordGenerationHistory(\n options?: StorageOptions,\n ): Promise {\n return (\n await this.getAccount(this.reconcileOptions(options, await this.defaultInMemoryOptions()))\n )?.data?.passwordGenerationHistory?.decrypted;\n }\n\n async setDecryptedPasswordGenerationHistory(\n value: GeneratedPasswordHistory[],\n options?: StorageOptions,\n ): Promise {\n const account = await this.getAccount(\n this.reconcileOptions(options, await this.defaultInMemoryOptions()),\n );\n account.data.passwordGenerationHistory.decrypted = value;\n await this.saveAccount(\n account,\n this.reconcileOptions(options, await this.defaultInMemoryOptions()),\n );\n }\n\n async getDuckDuckGoSharedKey(options?: StorageOptions): Promise {\n options = this.reconcileOptions(options, await this.defaultSecureStorageOptions());\n if (options?.userId == null) {\n return null;\n }\n return await this.secureStorageService.get(DDG_SHARED_KEY, options);\n }\n\n async setDuckDuckGoSharedKey(value: string, options?: StorageOptions): Promise {\n options = this.reconcileOptions(options, await this.defaultSecureStorageOptions());\n if (options?.userId == null) {\n return;\n }\n value == null\n ? await this.secureStorageService.remove(DDG_SHARED_KEY, options)\n : await this.secureStorageService.save(DDG_SHARED_KEY, value, options);\n }\n\n async getEnableBrowserIntegration(options?: StorageOptions): Promise {\n return (\n (await this.getGlobals(this.reconcileOptions(options, await this.defaultOnDiskOptions())))\n ?.enableBrowserIntegration ?? false\n );\n }\n\n async setEnableBrowserIntegration(value: boolean, options?: StorageOptions): Promise {\n const globals = await this.getGlobals(\n this.reconcileOptions(options, await this.defaultOnDiskOptions()),\n );\n globals.enableBrowserIntegration = value;\n await this.saveGlobals(\n globals,\n this.reconcileOptions(options, await this.defaultOnDiskOptions()),\n );\n }\n\n async getEnableBrowserIntegrationFingerprint(options?: StorageOptions): Promise {\n return (\n (await this.getGlobals(this.reconcileOptions(options, await this.defaultOnDiskOptions())))\n ?.enableBrowserIntegrationFingerprint ?? false\n );\n }\n\n async setEnableBrowserIntegrationFingerprint(\n value: boolean,\n options?: StorageOptions,\n ): Promise {\n const globals = await this.getGlobals(\n this.reconcileOptions(options, await this.defaultOnDiskOptions()),\n );\n globals.enableBrowserIntegrationFingerprint = value;\n await this.saveGlobals(\n globals,\n this.reconcileOptions(options, await this.defaultOnDiskOptions()),\n );\n }\n\n async setEnableDuckDuckGoBrowserIntegration(\n value: boolean,\n options?: StorageOptions,\n ): Promise {\n const globals = await this.getGlobals(\n this.reconcileOptions(options, await this.defaultOnDiskOptions()),\n );\n globals.enableDuckDuckGoBrowserIntegration = value;\n await this.saveGlobals(\n globals,\n this.reconcileOptions(options, await this.defaultOnDiskOptions()),\n );\n }\n\n /**\n * @deprecated Use UserKey instead\n */\n async getEncryptedCryptoSymmetricKey(options?: StorageOptions): Promise {\n return (\n await this.getAccount(this.reconcileOptions(options, await this.defaultOnDiskOptions()))\n )?.keys.cryptoSymmetricKey.encrypted;\n }\n\n @withPrototypeForArrayMembers(GeneratedPasswordHistory)\n async getEncryptedPasswordGenerationHistory(\n options?: StorageOptions,\n ): Promise {\n return (\n await this.getAccount(this.reconcileOptions(options, await this.defaultOnDiskOptions()))\n )?.data?.passwordGenerationHistory?.encrypted;\n }\n\n async setEncryptedPasswordGenerationHistory(\n value: GeneratedPasswordHistory[],\n options?: StorageOptions,\n ): Promise {\n const account = await this.getAccount(\n this.reconcileOptions(options, await this.defaultOnDiskOptions()),\n );\n account.data.passwordGenerationHistory.encrypted = value;\n await this.saveAccount(\n account,\n this.reconcileOptions(options, await this.defaultOnDiskOptions()),\n );\n }\n\n async getIsAuthenticated(options?: StorageOptions): Promise {\n return (\n (await this.tokenService.getAccessToken(options?.userId as UserId)) != null &&\n (await this.getUserId(options)) != null\n );\n }\n\n async getLastSync(options?: StorageOptions): Promise {\n return (\n await this.getAccount(this.reconcileOptions(options, await this.defaultOnDiskMemoryOptions()))\n )?.profile?.lastSync;\n }\n\n async setLastSync(value: string, options?: StorageOptions): Promise {\n const account = await this.getAccount(\n this.reconcileOptions(options, await this.defaultOnDiskMemoryOptions()),\n );\n account.profile.lastSync = value;\n await this.saveAccount(\n account,\n this.reconcileOptions(options, await this.defaultOnDiskMemoryOptions()),\n );\n }\n\n async getMinimizeOnCopyToClipboard(options?: StorageOptions): Promise {\n return (\n (await this.getAccount(this.reconcileOptions(options, await this.defaultOnDiskOptions())))\n ?.settings?.minimizeOnCopyToClipboard ?? false\n );\n }\n\n async setMinimizeOnCopyToClipboard(value: boolean, options?: StorageOptions): Promise {\n const account = await this.getAccount(\n this.reconcileOptions(options, await this.defaultOnDiskOptions()),\n );\n account.settings.minimizeOnCopyToClipboard = value;\n await this.saveAccount(\n account,\n this.reconcileOptions(options, await this.defaultOnDiskOptions()),\n );\n }\n\n async getPasswordGenerationOptions(options?: StorageOptions): Promise {\n return (\n await this.getAccount(this.reconcileOptions(options, await this.defaultOnDiskLocalOptions()))\n )?.settings?.passwordGenerationOptions;\n }\n\n async setPasswordGenerationOptions(\n value: PasswordGeneratorOptions,\n options?: StorageOptions,\n ): Promise {\n const account = await this.getAccount(\n this.reconcileOptions(options, await this.defaultOnDiskLocalOptions()),\n );\n account.settings.passwordGenerationOptions = value;\n await this.saveAccount(\n account,\n this.reconcileOptions(options, await this.defaultOnDiskLocalOptions()),\n );\n }\n\n async getUsernameGenerationOptions(options?: StorageOptions): Promise {\n return (\n await this.getAccount(this.reconcileOptions(options, await this.defaultOnDiskLocalOptions()))\n )?.settings?.usernameGenerationOptions;\n }\n\n async setUsernameGenerationOptions(\n value: UsernameGeneratorOptions,\n options?: StorageOptions,\n ): Promise {\n const account = await this.getAccount(\n this.reconcileOptions(options, await this.defaultOnDiskLocalOptions()),\n );\n account.settings.usernameGenerationOptions = value;\n await this.saveAccount(\n account,\n this.reconcileOptions(options, await this.defaultOnDiskLocalOptions()),\n );\n }\n\n async getGeneratorOptions(options?: StorageOptions): Promise {\n return (\n await this.getAccount(this.reconcileOptions(options, await this.defaultOnDiskLocalOptions()))\n )?.settings?.generatorOptions;\n }\n\n async setGeneratorOptions(value: GeneratorOptions, options?: StorageOptions): Promise {\n const account = await this.getAccount(\n this.reconcileOptions(options, await this.defaultOnDiskLocalOptions()),\n );\n account.settings.generatorOptions = value;\n await this.saveAccount(\n account,\n this.reconcileOptions(options, await this.defaultOnDiskLocalOptions()),\n );\n }\n\n async getUserId(options?: StorageOptions): Promise {\n return (\n await this.getAccount(this.reconcileOptions(options, await this.defaultOnDiskOptions()))\n )?.profile?.userId;\n }\n\n protected async getGlobals(options: StorageOptions): Promise {\n let globals: TGlobalState;\n if (this.useMemory(options.storageLocation)) {\n globals = await this.getGlobalsFromMemory();\n }\n\n if (this.useDisk && globals == null) {\n globals = await this.getGlobalsFromDisk(options);\n }\n\n if (globals == null) {\n globals = this.createGlobals();\n }\n\n return globals;\n }\n\n protected async saveGlobals(globals: TGlobalState, options: StorageOptions) {\n return this.useMemory(options.storageLocation)\n ? this.saveGlobalsToMemory(globals)\n : await this.saveGlobalsToDisk(globals, options);\n }\n\n protected async getGlobalsFromMemory(): Promise {\n return (await this.state()).globals;\n }\n\n protected async getGlobalsFromDisk(options: StorageOptions): Promise {\n return await this.storageService.get(keys.global, options);\n }\n\n protected async saveGlobalsToMemory(globals: TGlobalState): Promise {\n await this.updateState(async (state) => {\n state.globals = globals;\n return state;\n });\n }\n\n protected async saveGlobalsToDisk(globals: TGlobalState, options: StorageOptions): Promise {\n if (options.useSecureStorage) {\n await this.secureStorageService.save(keys.global, globals, options);\n } else {\n await this.storageService.save(keys.global, globals, options);\n }\n }\n\n protected async getAccount(options: StorageOptions): Promise {\n try {\n let account: TAccount;\n if (this.useMemory(options.storageLocation)) {\n account = await this.getAccountFromMemory(options);\n }\n\n if (this.useDisk(options.storageLocation) && account == null) {\n account = await this.getAccountFromDisk(options);\n }\n\n return account;\n } catch (e) {\n this.logService.error(e);\n }\n }\n\n protected async getAccountFromMemory(options: StorageOptions): Promise {\n const userId =\n options.userId ??\n (await firstValueFrom(\n this.accountService.activeAccount$.pipe(map((account) => account?.id)),\n ));\n\n return await this.state().then(async (state) => {\n if (state.accounts == null) {\n return null;\n }\n return state.accounts[userId];\n });\n }\n\n protected async getAccountFromDisk(options: StorageOptions): Promise {\n const userId =\n options.userId ??\n (await firstValueFrom(\n this.accountService.activeAccount$.pipe(map((account) => account?.id)),\n ));\n\n if (userId == null) {\n return null;\n }\n\n const account = options?.useSecureStorage\n ? (await this.secureStorageService.get(options.userId, options)) ??\n (await this.storageService.get(\n options.userId,\n this.reconcileOptions(options, { htmlStorageLocation: HtmlStorageLocation.Local }),\n ))\n : await this.storageService.get(options.userId, options);\n return account;\n }\n\n protected useMemory(storageLocation: StorageLocation) {\n return storageLocation === StorageLocation.Memory || storageLocation === StorageLocation.Both;\n }\n\n protected useDisk(storageLocation: StorageLocation) {\n return storageLocation === StorageLocation.Disk || storageLocation === StorageLocation.Both;\n }\n\n protected async saveAccount(\n account: TAccount,\n options: StorageOptions = {\n storageLocation: StorageLocation.Both,\n useSecureStorage: false,\n },\n ) {\n return this.useMemory(options.storageLocation)\n ? await this.saveAccountToMemory(account)\n : await this.saveAccountToDisk(account, options);\n }\n\n protected async saveAccountToDisk(account: TAccount, options: StorageOptions): Promise {\n const storageLocation = options.useSecureStorage\n ? this.secureStorageService\n : this.storageService;\n\n await storageLocation.save(`${options.userId}`, account, options);\n }\n\n protected async saveAccountToMemory(account: TAccount): Promise {\n if ((await this.getAccountFromMemory({ userId: account.profile.userId })) !== null) {\n await this.updateState((state) => {\n return new Promise((resolve) => {\n state.accounts[account.profile.userId] = account;\n resolve(state);\n });\n });\n }\n }\n\n protected async scaffoldNewAccountStorage(account: TAccount): Promise {\n // We don't want to manipulate the referenced in memory account\n const deepClone = JSON.parse(JSON.stringify(account));\n await this.scaffoldNewAccountLocalStorage(deepClone);\n await this.scaffoldNewAccountSessionStorage(deepClone);\n await this.scaffoldNewAccountMemoryStorage(deepClone);\n }\n\n // TODO: There is a tech debt item for splitting up these methods - only Web uses multiple storage locations in its storageService.\n // For now these methods exist with some redundancy to facilitate this special web requirement.\n protected async scaffoldNewAccountLocalStorage(account: TAccount): Promise {\n const storedAccount = await this.getAccount(\n this.reconcileOptions(\n { userId: account.profile.userId },\n await this.defaultOnDiskLocalOptions(),\n ),\n );\n if (storedAccount?.settings != null) {\n account.settings = storedAccount.settings;\n } else if (await this.storageService.has(keys.tempAccountSettings)) {\n account.settings = await this.storageService.get(keys.tempAccountSettings);\n await this.storageService.remove(keys.tempAccountSettings);\n }\n\n await this.saveAccount(\n account,\n this.reconcileOptions(\n { userId: account.profile.userId },\n await this.defaultOnDiskLocalOptions(),\n ),\n );\n }\n\n protected async scaffoldNewAccountMemoryStorage(account: TAccount): Promise {\n const storedAccount = await this.getAccount(\n this.reconcileOptions(\n { userId: account.profile.userId },\n await this.defaultOnDiskMemoryOptions(),\n ),\n );\n if (storedAccount?.settings != null) {\n account.settings = storedAccount.settings;\n }\n await this.storageService.save(\n account.profile.userId,\n account,\n await this.defaultOnDiskMemoryOptions(),\n );\n await this.saveAccount(\n account,\n this.reconcileOptions(\n { userId: account.profile.userId },\n await this.defaultOnDiskMemoryOptions(),\n ),\n );\n }\n\n protected async scaffoldNewAccountSessionStorage(account: TAccount): Promise {\n const storedAccount = await this.getAccount(\n this.reconcileOptions({ userId: account.profile.userId }, await this.defaultOnDiskOptions()),\n );\n if (storedAccount?.settings != null) {\n account.settings = storedAccount.settings;\n }\n await this.storageService.save(\n account.profile.userId,\n account,\n await this.defaultOnDiskMemoryOptions(),\n );\n await this.saveAccount(\n account,\n this.reconcileOptions({ userId: account.profile.userId }, await this.defaultOnDiskOptions()),\n );\n }\n\n protected reconcileOptions(\n requestedOptions: StorageOptions,\n defaultOptions: StorageOptions,\n ): StorageOptions {\n if (requestedOptions == null) {\n return defaultOptions;\n }\n requestedOptions.userId = requestedOptions?.userId ?? defaultOptions.userId;\n requestedOptions.storageLocation =\n requestedOptions?.storageLocation ?? defaultOptions.storageLocation;\n requestedOptions.useSecureStorage =\n requestedOptions?.useSecureStorage ?? defaultOptions.useSecureStorage;\n requestedOptions.htmlStorageLocation =\n requestedOptions?.htmlStorageLocation ?? defaultOptions.htmlStorageLocation;\n requestedOptions.keySuffix = requestedOptions?.keySuffix ?? defaultOptions.keySuffix;\n return requestedOptions;\n }\n\n protected async defaultInMemoryOptions(): Promise {\n const userId = await firstValueFrom(\n this.accountService.activeAccount$.pipe(map((account) => account?.id)),\n );\n\n return {\n storageLocation: StorageLocation.Memory,\n userId,\n };\n }\n\n protected async defaultOnDiskOptions(): Promise {\n const userId = await firstValueFrom(\n this.accountService.activeAccount$.pipe(map((account) => account?.id)),\n );\n\n return {\n storageLocation: StorageLocation.Disk,\n htmlStorageLocation: HtmlStorageLocation.Session,\n userId,\n useSecureStorage: false,\n };\n }\n\n protected async defaultOnDiskLocalOptions(): Promise {\n const userId = await firstValueFrom(\n this.accountService.activeAccount$.pipe(map((account) => account?.id)),\n );\n\n return {\n storageLocation: StorageLocation.Disk,\n htmlStorageLocation: HtmlStorageLocation.Local,\n userId,\n useSecureStorage: false,\n };\n }\n\n protected async defaultOnDiskMemoryOptions(): Promise {\n const userId = await firstValueFrom(\n this.accountService.activeAccount$.pipe(map((account) => account?.id)),\n );\n\n return {\n storageLocation: StorageLocation.Disk,\n htmlStorageLocation: HtmlStorageLocation.Memory,\n userId,\n useSecureStorage: false,\n };\n }\n\n protected async defaultSecureStorageOptions(): Promise {\n const userId = await firstValueFrom(\n this.accountService.activeAccount$.pipe(map((account) => account?.id)),\n );\n\n return {\n storageLocation: StorageLocation.Disk,\n useSecureStorage: true,\n userId,\n };\n }\n\n protected async getActiveUserIdFromStorage(): Promise {\n return await firstValueFrom(this.accountService.activeAccount$.pipe(map((a) => a?.id)));\n }\n\n protected async removeAccountFromLocalStorage(userId: string = null): Promise {\n userId ??= await firstValueFrom(\n this.accountService.activeAccount$.pipe(map((account) => account?.id)),\n );\n\n const storedAccount = await this.getAccount(\n this.reconcileOptions({ userId: userId }, await this.defaultOnDiskLocalOptions()),\n );\n await this.saveAccount(\n this.resetAccount(storedAccount),\n this.reconcileOptions({ userId: userId }, await this.defaultOnDiskLocalOptions()),\n );\n }\n\n protected async removeAccountFromSessionStorage(userId: string = null): Promise {\n userId ??= await firstValueFrom(\n this.accountService.activeAccount$.pipe(map((account) => account?.id)),\n );\n\n const storedAccount = await this.getAccount(\n this.reconcileOptions({ userId: userId }, await this.defaultOnDiskOptions()),\n );\n await this.saveAccount(\n this.resetAccount(storedAccount),\n this.reconcileOptions({ userId: userId }, await this.defaultOnDiskOptions()),\n );\n }\n\n protected async removeAccountFromSecureStorage(userId: string = null): Promise {\n userId ??= await firstValueFrom(\n this.accountService.activeAccount$.pipe(map((account) => account?.id)),\n );\n\n await this.setUserKeyAutoUnlock(null, { userId: userId });\n await this.setUserKeyBiometric(null, { userId: userId });\n await this.setCryptoMasterKeyAuto(null, { userId: userId });\n await this.setCryptoMasterKeyBiometric(null, { userId: userId });\n await this.setCryptoMasterKeyB64(null, { userId: userId });\n }\n\n protected async removeAccountFromMemory(userId: string = null): Promise {\n userId ??= await firstValueFrom(\n this.accountService.activeAccount$.pipe(map((account) => account?.id)),\n );\n\n await this.updateState(async (state) => {\n delete state.accounts[userId];\n return state;\n });\n }\n\n // settings persist even on reset, and are not affected by this method\n protected resetAccount(account: TAccount) {\n const persistentAccountInformation = {\n settings: account.settings,\n };\n return Object.assign(this.createAccount(), persistentAccountInformation);\n }\n\n async clearDecryptedData(userId: UserId): Promise {\n await this.updateState(async (state) => {\n if (userId != null && state?.accounts[userId]?.data != null) {\n state.accounts[userId].data = new AccountData();\n }\n\n return state;\n });\n }\n\n protected createAccount(init: Partial = null): TAccount {\n return this.stateFactory.createAccount(init);\n }\n\n protected createGlobals(init: Partial = null): TGlobalState {\n return this.stateFactory.createGlobal(init);\n }\n\n protected async deAuthenticateAccount(userId: string): Promise {\n // We must have a manual call to clear tokens as we can't leverage state provider to clean\n // up our data as we have secure storage in the mix.\n await this.tokenService.clearTokens(userId as UserId);\n }\n\n protected async removeAccountFromDisk(userId: string) {\n await this.removeAccountFromSessionStorage(userId);\n await this.removeAccountFromLocalStorage(userId);\n await this.removeAccountFromSecureStorage(userId);\n }\n\n protected async saveSecureStorageKey(\n key: string,\n value: T,\n options?: StorageOptions,\n ) {\n return value == null\n ? await this.secureStorageService.remove(`${options.userId}${key}`, options)\n : await this.secureStorageService.save(`${options.userId}${key}`, value, options);\n }\n\n protected async state(): Promise> {\n let state = await this.memoryStorageService.get>(keys.state);\n if (this.memoryStorageService.valuesRequireDeserialization) {\n state = State.fromJSON(state, this.accountDeserializer);\n }\n return state;\n }\n\n private async setState(\n state: State,\n ): Promise> {\n await this.memoryStorageService.save(keys.state, state);\n return state;\n }\n\n protected async updateState(\n stateUpdater: (state: State) => Promise>,\n ): Promise> {\n return await this.state().then(async (state) => {\n const updatedState = await stateUpdater(state);\n if (updatedState == null) {\n throw new Error(\"Attempted to update state to null value\");\n }\n\n return await this.setState(updatedState);\n });\n }\n}\n\nfunction withPrototypeForArrayMembers(\n memberConstructor: new (...args: any[]) => T,\n memberConverter: (input: any) => T = (i) => i,\n): (\n target: any,\n propertyKey: string | symbol,\n descriptor: PropertyDescriptor,\n) => { value: (...args: any[]) => Promise } {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const originalMethod = descriptor.value;\n\n return {\n value: function (...args: any[]) {\n const originalResult: Promise = originalMethod.apply(this, args);\n\n if (!Utils.isPromise(originalResult)) {\n throw new Error(\n `Error applying prototype to stored value -- result is not a promise for method ${String(\n propertyKey,\n )}`,\n );\n }\n\n return originalResult.then((result) => {\n if (result == null) {\n return null;\n } else if (!(result instanceof Array)) {\n throw new Error(\n `Attempted to retrieve non array type from state as an array for method ${String(\n propertyKey,\n )}`,\n );\n } else {\n return result.map((r) => {\n return r == null ||\n r.constructor.name === memberConstructor.prototype.constructor.name\n ? r\n : memberConverter(\n Object.create(memberConstructor.prototype, Object.getOwnPropertyDescriptors(r)),\n );\n });\n }\n });\n },\n };\n };\n}\n","import { AbstractStorageService, ObservableStorageService } from \"../abstractions/storage.service\";\n// eslint-disable-next-line import/no-restricted-paths\nimport { ClientLocations, StorageLocation } from \"../state/state-definition\";\n\nexport type PossibleLocation = StorageLocation | ClientLocations[keyof ClientLocations];\n\n/**\n * A provider for getting client specific computed storage locations and services.\n */\nexport class StorageServiceProvider {\n constructor(\n protected readonly diskStorageService: AbstractStorageService & ObservableStorageService,\n protected readonly memoryStorageService: AbstractStorageService & ObservableStorageService,\n ) {}\n\n /**\n * Computes the location and corresponding service for a given client.\n *\n * **NOTE** The default implementation does not respect client overrides and if clients\n * have special overrides they are responsible for implementing this service.\n * @param defaultLocation The default location to use if no client specific override is preferred.\n * @param overrides Client specific overrides\n * @returns The computed storage location and corresponding storage service to use to get/store state.\n * @throws If there is no configured storage service for the given inputs.\n */\n get(\n defaultLocation: PossibleLocation,\n overrides: Partial,\n ): [location: PossibleLocation, service: AbstractStorageService & ObservableStorageService] {\n switch (defaultLocation) {\n case \"disk\":\n return [defaultLocation, this.diskStorageService];\n case \"memory\":\n return [defaultLocation, this.memoryStorageService];\n default:\n throw new Error(`Unexpected location: ${defaultLocation}`);\n }\n }\n}\n","import { UserId } from \"../../types/guid\";\nimport { CryptoService } from \"../abstractions/crypto.service\";\nimport { KeySuffixOptions } from \"../enums\";\n\n// TODO: this is a half measure improvement which allows us to reduce some side effects today (cryptoService.getUserKey setting user key in memory if auto key exists)\n// but ideally, in the future, we would be able to put this logic into the cryptoService\n// after the vault timeout settings service is transitioned to state provider so that\n// the getUserKey logic can simply go to the correct location based on the vault timeout settings\n// similar to the TokenService (it would either go to secure storage for the auto user key or memory for the user key)\n\nexport class UserAutoUnlockKeyService {\n constructor(private cryptoService: CryptoService) {}\n\n /**\n * The presence of the user key in memory dictates whether the user's vault is locked or unlocked.\n * However, for users that have the auto unlock user key set, we need to set the user key in memory\n * on application bootstrap and on active account changes so that the user's vault loads unlocked.\n * @param userId - The user id to check for an auto user key.\n */\n async setUserKeyInMemoryIfAutoUserKeySet(userId: UserId): Promise {\n if (userId == null) {\n return;\n }\n\n const autoUserKey = await this.cryptoService.getUserKeyFromStorage(\n KeySuffixOptions.Auto,\n userId,\n );\n\n if (autoUserKey == null) {\n return;\n }\n\n await this.cryptoService.setUserKey(autoUserKey, userId);\n }\n}\n","export class DecryptParameters {\n encKey: T;\n data: T;\n iv: T;\n macKey: T;\n mac: T;\n macData: T;\n}\n","import { Observable } from \"rxjs\";\n\nimport { UserId } from \"../../types/guid\";\n\nimport { StateUpdateOptions } from \"./state-update-options\";\n\nexport type CombinedState = readonly [userId: UserId, state: T];\n\n/** A helper object for interacting with state that is scoped to a specific user. */\nexport interface UserState {\n /** Emits a stream of data. Emits null if the user does not have specified state. */\n readonly state$: Observable;\n\n /** Emits a stream of tuples, with the first element being a user id and the second element being the data for that user. */\n readonly combinedState$: Observable>;\n}\n\nexport const activeMarker: unique symbol = Symbol(\"active\");\nexport interface ActiveUserState extends UserState {\n readonly [activeMarker]: true;\n\n /**\n * Emits a stream of data. Emits null if the user does not have specified state.\n * Note: Will not emit if there is no active user.\n */\n readonly state$: Observable;\n\n /**\n * Updates backing stores for the active user.\n * @param configureState function that takes the current state and returns the new state\n * @param options Defaults to @see {module:state-update-options#DEFAULT_OPTIONS}\n * @param options.shouldUpdate A callback for determining if you want to update state. Defaults to () => true\n * @param options.combineLatestWith An observable that you want to combine with the current state for callbacks. Defaults to null\n * @param options.msTimeout A timeout for how long you are willing to wait for a `combineLatestWith` option to complete. Defaults to 1000ms. Only applies if `combineLatestWith` is set.\n\n * @returns A promise that must be awaited before your next action to ensure the update has been written to state.\n * Resolves to the new state. If `shouldUpdate` returns false, the promise will resolve to the current state.\n */\n readonly update: (\n configureState: (state: T, dependencies: TCombine) => T,\n options?: StateUpdateOptions,\n ) => Promise<[UserId, T]>;\n}\nexport interface SingleUserState extends UserState {\n readonly userId: UserId;\n\n /**\n * Updates backing stores for the active user.\n * @param configureState function that takes the current state and returns the new state\n * @param options Defaults to @see {module:state-update-options#DEFAULT_OPTIONS}\n * @param options.shouldUpdate A callback for determining if you want to update state. Defaults to () => true\n * @param options.combineLatestWith An observable that you want to combine with the current state for callbacks. Defaults to null\n * @param options.msTimeout A timeout for how long you are willing to wait for a `combineLatestWith` option to complete. Defaults to 1000ms. Only applies if `combineLatestWith` is set.\n\n * @returns A promise that must be awaited before your next action to ensure the update has been written to state.\n * Resolves to the new state. If `shouldUpdate` returns false, the promise will resolve to the current state.\n */\n readonly update: (\n configureState: (state: T, dependencies: TCombine) => T,\n options?: StateUpdateOptions,\n ) => Promise;\n}\n","import { Observable, map, switchMap, firstValueFrom, timeout, throwError, NEVER } from \"rxjs\";\n\nimport { UserId } from \"../../../types/guid\";\nimport { StateUpdateOptions } from \"../state-update-options\";\nimport { UserKeyDefinition } from \"../user-key-definition\";\nimport { ActiveUserState, CombinedState, activeMarker } from \"../user-state\";\nimport { SingleUserStateProvider } from \"../user-state.provider\";\n\nexport class DefaultActiveUserState implements ActiveUserState {\n [activeMarker]: true;\n combinedState$: Observable>;\n state$: Observable;\n\n constructor(\n protected keyDefinition: UserKeyDefinition,\n private activeUserId$: Observable,\n private singleUserStateProvider: SingleUserStateProvider,\n ) {\n this.combinedState$ = this.activeUserId$.pipe(\n switchMap((userId) =>\n userId != null\n ? this.singleUserStateProvider.get(userId, this.keyDefinition).combinedState$\n : NEVER,\n ),\n );\n\n // State should just be combined state without the user id\n this.state$ = this.combinedState$.pipe(map(([_userId, state]) => state));\n }\n\n async update(\n configureState: (state: T, dependency: TCombine) => T,\n options: StateUpdateOptions = {},\n ): Promise<[UserId, T]> {\n const userId = await firstValueFrom(\n this.activeUserId$.pipe(\n timeout({\n first: 1000,\n with: () =>\n throwError(\n () =>\n new Error(\n `Timeout while retrieving active user for key ${this.keyDefinition.fullName}.`,\n ),\n ),\n }),\n ),\n );\n if (userId == null) {\n throw new Error(\n `Error storing ${this.keyDefinition.fullName} for the active user: No active user at this time.`,\n );\n }\n\n return [\n userId,\n await this.singleUserStateProvider\n .get(userId, this.keyDefinition)\n .update(configureState, options),\n ];\n }\n}\n","import { Observable, ReplaySubject, Subject, concatMap, merge, share, timer } from \"rxjs\";\n\nimport { DerivedStateDependencies } from \"../../../types/state\";\nimport { DeriveDefinition } from \"../derive-definition\";\nimport { DerivedState } from \"../derived-state\";\n\n/**\n * Default derived state\n */\nexport class DefaultDerivedState\n implements DerivedState\n{\n private readonly storageKey: string;\n private forcedValueSubject = new Subject();\n\n state$: Observable;\n\n constructor(\n private parentState$: Observable,\n protected deriveDefinition: DeriveDefinition,\n private dependencies: TDeps,\n ) {\n this.storageKey = deriveDefinition.storageKey;\n\n const derivedState$ = this.parentState$.pipe(\n concatMap(async (state) => {\n let derivedStateOrPromise = this.deriveDefinition.derive(state, this.dependencies);\n if (derivedStateOrPromise instanceof Promise) {\n derivedStateOrPromise = await derivedStateOrPromise;\n }\n const derivedState = derivedStateOrPromise;\n return derivedState;\n }),\n );\n\n this.state$ = merge(this.forcedValueSubject, derivedState$).pipe(\n share({\n connector: () => {\n return new ReplaySubject(1);\n },\n resetOnRefCountZero: () => timer(this.deriveDefinition.cleanupDelayMs),\n }),\n );\n }\n\n async forceValue(value: TTo) {\n this.forcedValueSubject.next(value);\n return value;\n }\n}\n","import { Observable } from \"rxjs\";\n\nexport const DEFAULT_OPTIONS = {\n shouldUpdate: () => true,\n combineLatestWith: null as Observable,\n msTimeout: 1000,\n};\n\ntype DefinitelyTypedDefault = Omit<\n typeof DEFAULT_OPTIONS,\n \"shouldUpdate\" | \"combineLatestWith\"\n> & {\n shouldUpdate: (state: T, dependency: TCombine) => boolean;\n combineLatestWith?: Observable;\n};\n\nexport type StateUpdateOptions = Partial>;\n\nexport function populateOptionsWithDefault(\n options: StateUpdateOptions,\n): StateUpdateOptions {\n return {\n ...(DEFAULT_OPTIONS as StateUpdateOptions),\n ...options,\n };\n}\n","import { Jsonify } from \"type-fest\";\n\nimport { AbstractStorageService } from \"../../abstractions/storage.service\";\n\nexport async function getStoredValue(\n key: string,\n storage: AbstractStorageService,\n deserializer: (jsonValue: Jsonify) => T,\n) {\n if (storage.valuesRequireDeserialization) {\n const jsonValue = await storage.get>(key);\n const value = deserializer(jsonValue);\n return value;\n } else {\n const value = await storage.get(key);\n return value ?? null;\n }\n}\n","import {\n Observable,\n ReplaySubject,\n defer,\n filter,\n firstValueFrom,\n merge,\n share,\n switchMap,\n timeout,\n timer,\n} from \"rxjs\";\nimport { Jsonify } from \"type-fest\";\n\nimport { StorageKey } from \"../../../types/state\";\nimport {\n AbstractStorageService,\n ObservableStorageService,\n} from \"../../abstractions/storage.service\";\nimport { StateUpdateOptions, populateOptionsWithDefault } from \"../state-update-options\";\n\nimport { getStoredValue } from \"./util\";\n\n// The parts of a KeyDefinition this class cares about to make it work\ntype KeyDefinitionRequirements = {\n deserializer: (jsonState: Jsonify) => T;\n cleanupDelayMs: number;\n};\n\nexport abstract class StateBase> {\n private updatePromise: Promise;\n\n readonly state$: Observable;\n\n constructor(\n protected readonly key: StorageKey,\n protected readonly storageService: AbstractStorageService & ObservableStorageService,\n protected readonly keyDefinition: KeyDef,\n ) {\n const storageUpdate$ = storageService.updates$.pipe(\n filter((storageUpdate) => storageUpdate.key === key),\n switchMap(async (storageUpdate) => {\n if (storageUpdate.updateType === \"remove\") {\n return null;\n }\n\n return await getStoredValue(key, storageService, keyDefinition.deserializer);\n }),\n );\n\n this.state$ = merge(\n defer(() => getStoredValue(key, storageService, keyDefinition.deserializer)),\n storageUpdate$,\n ).pipe(\n share({\n connector: () => new ReplaySubject(1),\n resetOnRefCountZero: () => timer(keyDefinition.cleanupDelayMs),\n }),\n );\n }\n\n async update(\n configureState: (state: T, dependency: TCombine) => T,\n options: StateUpdateOptions = {},\n ): Promise {\n options = populateOptionsWithDefault(options);\n if (this.updatePromise != null) {\n await this.updatePromise;\n }\n\n try {\n this.updatePromise = this.internalUpdate(configureState, options);\n const newState = await this.updatePromise;\n return newState;\n } finally {\n this.updatePromise = null;\n }\n }\n\n private async internalUpdate(\n configureState: (state: T, dependency: TCombine) => T,\n options: StateUpdateOptions,\n ): Promise {\n const currentState = await this.getStateForUpdate();\n const combinedDependencies =\n options.combineLatestWith != null\n ? await firstValueFrom(options.combineLatestWith.pipe(timeout(options.msTimeout)))\n : null;\n\n if (!options.shouldUpdate(currentState, combinedDependencies)) {\n return currentState;\n }\n\n const newState = configureState(currentState, combinedDependencies);\n await this.doStorageSave(newState, currentState);\n return newState;\n }\n\n protected async doStorageSave(newState: T, oldState: T) {\n await this.storageService.save(this.key, newState);\n }\n\n /** For use in update methods, does not wait for update to complete before yielding state.\n * The expectation is that that await is already done\n */\n private async getStateForUpdate() {\n return await getStoredValue(this.key, this.storageService, this.keyDefinition.deserializer);\n }\n}\n","import {\n AbstractStorageService,\n ObservableStorageService,\n} from \"../../abstractions/storage.service\";\nimport { GlobalState } from \"../global-state\";\nimport { KeyDefinition, globalKeyBuilder } from \"../key-definition\";\n\nimport { StateBase } from \"./state-base\";\n\nexport class DefaultGlobalState\n extends StateBase>\n implements GlobalState\n{\n constructor(\n keyDefinition: KeyDefinition,\n chosenLocation: AbstractStorageService & ObservableStorageService,\n ) {\n super(globalKeyBuilder(keyDefinition), chosenLocation, keyDefinition);\n }\n}\n","import { Observable, combineLatest, of } from \"rxjs\";\n\nimport { UserId } from \"../../../types/guid\";\nimport {\n AbstractStorageService,\n ObservableStorageService,\n} from \"../../abstractions/storage.service\";\nimport { StateEventRegistrarService } from \"../state-event-registrar.service\";\nimport { UserKeyDefinition } from \"../user-key-definition\";\nimport { CombinedState, SingleUserState } from \"../user-state\";\n\nimport { StateBase } from \"./state-base\";\n\nexport class DefaultSingleUserState\n extends StateBase>\n implements SingleUserState\n{\n readonly combinedState$: Observable>;\n\n constructor(\n readonly userId: UserId,\n keyDefinition: UserKeyDefinition,\n chosenLocation: AbstractStorageService & ObservableStorageService,\n private stateEventRegistrarService: StateEventRegistrarService,\n ) {\n super(keyDefinition.buildKey(userId), chosenLocation, keyDefinition);\n this.combinedState$ = combineLatest([of(userId), this.state$]);\n }\n\n protected override async doStorageSave(newState: T, oldState: T): Promise {\n await super.doStorageSave(newState, oldState);\n if (newState != null && oldState == null) {\n await this.stateEventRegistrarService.registerEvents(this.keyDefinition);\n }\n }\n}\n","import { BillingSyncConfigApi } from \"../../../billing/models/api/billing-sync-config.api\";\nimport { BaseResponse } from \"../../../models/response/base.response\";\nimport { OrganizationConnectionType } from \"../../enums\";\nimport { ScimConfigApi } from \"../api/scim-config.api\";\n\n/**API response config types for OrganizationConnectionResponse */\nexport type OrganizationConnectionConfigApis = BillingSyncConfigApi | ScimConfigApi;\n\nexport class OrganizationConnectionResponse<\n TConfig extends OrganizationConnectionConfigApis,\n> extends BaseResponse {\n id: string;\n type: OrganizationConnectionType;\n organizationId: string;\n enabled: boolean;\n config: TConfig;\n\n constructor(response: any, configType: { new (response: any): TConfig }) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.type = this.getResponseProperty(\"Type\");\n this.organizationId = this.getResponseProperty(\"OrganizationId\");\n this.enabled = this.getResponseProperty(\"Enabled\");\n const rawConfig = this.getResponseProperty(\"Config\");\n this.config = rawConfig == null ? null : new configType(rawConfig);\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\nimport { CipherResponse } from \"../../../vault/models/response/cipher.response\";\nimport { CollectionResponse } from \"../../../vault/models/response/collection.response\";\n\nexport class OrganizationExportResponse extends BaseResponse {\n collections: CollectionResponse[];\n ciphers: CipherResponse[];\n\n constructor(response: any) {\n super(response);\n const collections = this.getResponseProperty(\"Collections\");\n if (collections != null) {\n this.collections = collections.map((c: any) => new CollectionResponse(c));\n }\n const ciphers = this.getResponseProperty(\"Ciphers\");\n if (ciphers != null) {\n this.ciphers = ciphers.map((c: any) => new CipherResponse(c));\n }\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\n\nexport class OrganizationSponsorshipSyncStatusResponse extends BaseResponse {\n lastSyncDate?: Date;\n\n constructor(response: any) {\n super(response);\n const lastSyncDate = this.getResponseProperty(\"LastSyncDate\");\n if (lastSyncDate) {\n this.lastSyncDate = new Date(lastSyncDate);\n }\n }\n}\n","import { BaseResponse } from \"../../../../models/response/base.response\";\n\nexport class ProviderOrganizationResponse extends BaseResponse {\n id: string;\n providerId: string;\n organizationId: string;\n key: string;\n settings: string;\n creationDate: string;\n revisionDate: string;\n userCount: number;\n seats?: number;\n plan?: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.providerId = this.getResponseProperty(\"ProviderId\");\n this.organizationId = this.getResponseProperty(\"OrganizationId\");\n this.key = this.getResponseProperty(\"Key\");\n this.settings = this.getResponseProperty(\"Settings\");\n this.creationDate = this.getResponseProperty(\"CreationDate\");\n this.revisionDate = this.getResponseProperty(\"RevisionDate\");\n this.userCount = this.getResponseProperty(\"UserCount\");\n this.seats = this.getResponseProperty(\"Seats\");\n this.plan = this.getResponseProperty(\"Plan\");\n }\n}\n\nexport class ProviderOrganizationOrganizationDetailsResponse extends ProviderOrganizationResponse {\n organizationName: string;\n\n constructor(response: any) {\n super(response);\n this.organizationName = this.getResponseProperty(\"OrganizationName\");\n }\n}\n","import { OrganizationUserBulkPublicKeyResponse } from \"../../../abstractions/organization-user/responses\";\n\nexport class ProviderUserBulkPublicKeyResponse extends OrganizationUserBulkPublicKeyResponse {}\n","import { BaseResponse } from \"../../../../models/response/base.response\";\n\nexport class ProviderUserBulkResponse extends BaseResponse {\n id: string;\n error: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.error = this.getResponseProperty(\"Error\");\n }\n}\n","import { BaseResponse } from \"../../../../models/response/base.response\";\nimport { ProviderUserStatusType, ProviderUserType } from \"../../../enums\";\nimport { PermissionsApi } from \"../../api/permissions.api\";\n\nexport class ProviderUserResponse extends BaseResponse {\n id: string;\n userId: string;\n type: ProviderUserType;\n status: ProviderUserStatusType;\n permissions: PermissionsApi;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.userId = this.getResponseProperty(\"UserId\");\n this.type = this.getResponseProperty(\"Type\");\n this.status = this.getResponseProperty(\"Status\");\n this.permissions = new PermissionsApi(this.getResponseProperty(\"Permissions\"));\n }\n}\n\nexport class ProviderUserUserDetailsResponse extends ProviderUserResponse {\n name: string;\n email: string;\n\n constructor(response: any) {\n super(response);\n this.name = this.getResponseProperty(\"Name\");\n this.email = this.getResponseProperty(\"Email\");\n }\n}\n","import { DeviceType } from \"../../../enums\";\nimport { BaseResponse } from \"../../../models/response/base.response\";\n\nconst RequestTimeOut = 60000 * 15; //15 Minutes\n\nexport class AuthRequestResponse extends BaseResponse {\n id: string;\n publicKey: string;\n requestDeviceType: DeviceType;\n requestIpAddress: string;\n key: string;\n masterPasswordHash: string;\n creationDate: string;\n requestApproved?: boolean;\n responseDate?: string;\n isAnswered: boolean;\n isExpired: boolean;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.publicKey = this.getResponseProperty(\"PublicKey\");\n this.requestDeviceType = this.getResponseProperty(\"RequestDeviceType\");\n this.requestIpAddress = this.getResponseProperty(\"RequestIpAddress\");\n this.key = this.getResponseProperty(\"Key\");\n this.masterPasswordHash = this.getResponseProperty(\"MasterPasswordHash\");\n this.creationDate = this.getResponseProperty(\"CreationDate\");\n this.requestApproved = this.getResponseProperty(\"RequestApproved\");\n this.responseDate = this.getResponseProperty(\"ResponseDate\");\n\n const requestDate = new Date(this.creationDate);\n const requestDateUTC = Date.UTC(\n requestDate.getUTCFullYear(),\n requestDate.getUTCMonth(),\n requestDate.getDate(),\n requestDate.getUTCHours(),\n requestDate.getUTCMinutes(),\n requestDate.getUTCSeconds(),\n requestDate.getUTCMilliseconds(),\n );\n\n const dateNow = new Date(Date.now());\n const dateNowUTC = Date.UTC(\n dateNow.getUTCFullYear(),\n dateNow.getUTCMonth(),\n dateNow.getDate(),\n dateNow.getUTCHours(),\n dateNow.getUTCMinutes(),\n dateNow.getUTCSeconds(),\n dateNow.getUTCMilliseconds(),\n );\n\n this.isExpired = dateNowUTC - requestDateUTC >= RequestTimeOut;\n this.isAnswered = this.requestApproved != null && this.responseDate != null;\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\n\nexport class DeviceVerificationResponse extends BaseResponse {\n isDeviceVerificationSectionEnabled: boolean;\n unknownDeviceVerificationEnabled: boolean;\n\n constructor(response: any) {\n super(response);\n this.isDeviceVerificationSectionEnabled = this.getResponseProperty(\n \"IsDeviceVerificationSectionEnabled\",\n );\n this.unknownDeviceVerificationEnabled = this.getResponseProperty(\n \"UnknownDeviceVerificationEnabled\",\n );\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\n\nexport class KeyConnectorUserKeyResponse extends BaseResponse {\n key: string;\n\n constructor(response: any) {\n super(response);\n this.key = this.getResponseProperty(\"Key\");\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\nimport { KdfType } from \"../../../platform/enums\";\n\nexport class PreloginResponse extends BaseResponse {\n kdf: KdfType;\n kdfIterations: number;\n kdfMemory?: number;\n kdfParallelism?: number;\n\n constructor(response: any) {\n super(response);\n this.kdf = this.getResponseProperty(\"Kdf\");\n this.kdfIterations = this.getResponseProperty(\"KdfIterations\");\n this.kdfMemory = this.getResponseProperty(\"KdfMemory\");\n this.kdfParallelism = this.getResponseProperty(\"KdfParallelism\");\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\n\nimport { ICaptchaProtectedResponse } from \"./captcha-protected.response\";\n\nexport class RegisterResponse extends BaseResponse implements ICaptchaProtectedResponse {\n captchaBypassToken: string;\n\n constructor(response: any) {\n super(response);\n this.captchaBypassToken = this.getResponseProperty(\"CaptchaBypassToken\");\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\n\nexport class SsoPreValidateResponse extends BaseResponse {\n token: string;\n\n constructor(response: any) {\n super(response);\n this.token = this.getResponseProperty(\"Token\");\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\n\nexport class TwoFactorAuthenticatorResponse extends BaseResponse {\n enabled: boolean;\n key: string;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty(\"Enabled\");\n this.key = this.getResponseProperty(\"Key\");\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\n\nexport class TwoFactorDuoResponse extends BaseResponse {\n enabled: boolean;\n host: string;\n secretKey: string;\n integrationKey: string;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty(\"Enabled\");\n this.host = this.getResponseProperty(\"Host\");\n this.secretKey = this.getResponseProperty(\"SecretKey\");\n this.integrationKey = this.getResponseProperty(\"IntegrationKey\");\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\n\nexport class TwoFactorEmailResponse extends BaseResponse {\n enabled: boolean;\n email: string;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty(\"Enabled\");\n this.email = this.getResponseProperty(\"Email\");\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\nimport { TwoFactorProviderType } from \"../../enums/two-factor-provider-type\";\n\nexport class TwoFactorProviderResponse extends BaseResponse {\n enabled: boolean;\n type: TwoFactorProviderType;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty(\"Enabled\");\n this.type = this.getResponseProperty(\"Type\");\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\n\nexport class TwoFactorRecoverResponse extends BaseResponse {\n code: string;\n\n constructor(response: any) {\n super(response);\n this.code = this.getResponseProperty(\"Code\");\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\n\nexport class TwoFactorYubiKeyResponse extends BaseResponse {\n enabled: boolean;\n key1: string;\n key2: string;\n key3: string;\n key4: string;\n key5: string;\n nfc: boolean;\n\n constructor(response: any) {\n super(response);\n this.enabled = this.getResponseProperty(\"Enabled\");\n this.key1 = this.getResponseProperty(\"Key1\");\n this.key2 = this.getResponseProperty(\"Key2\");\n this.key3 = this.getResponseProperty(\"Key3\");\n this.key4 = this.getResponseProperty(\"Key4\");\n this.key5 = this.getResponseProperty(\"Key5\");\n this.nfc = this.getResponseProperty(\"Nfc\");\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\n\nimport { BillingInvoiceResponse, BillingTransactionResponse } from \"./billing.response\";\n\nexport class BillingHistoryResponse extends BaseResponse {\n invoices: BillingInvoiceResponse[] = [];\n transactions: BillingTransactionResponse[] = [];\n\n constructor(response: any) {\n super(response);\n const transactions = this.getResponseProperty(\"Transactions\");\n const invoices = this.getResponseProperty(\"Invoices\");\n if (transactions != null) {\n this.transactions = transactions.map((t: any) => new BillingTransactionResponse(t));\n }\n if (invoices != null) {\n this.invoices = invoices.map((i: any) => new BillingInvoiceResponse(i));\n }\n }\n\n get hasNoHistory() {\n return this.invoices.length == 0 && this.transactions.length == 0;\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\n\nimport { BillingSourceResponse } from \"./billing.response\";\n\nexport class BillingPaymentResponse extends BaseResponse {\n balance: number;\n paymentSource: BillingSourceResponse;\n\n constructor(response: any) {\n super(response);\n this.balance = this.getResponseProperty(\"Balance\");\n const paymentSource = this.getResponseProperty(\"PaymentSource\");\n this.paymentSource = paymentSource == null ? null : new BillingSourceResponse(paymentSource);\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\n\nexport class TaxRateResponse extends BaseResponse {\n id: string;\n country: string;\n state: string;\n postalCode: string;\n rate: number;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.country = this.getResponseProperty(\"Country\");\n this.state = this.getResponseProperty(\"State\");\n this.postalCode = this.getResponseProperty(\"PostalCode\");\n this.rate = this.getResponseProperty(\"Rate\");\n }\n}\n","export class CollectionBulkDeleteRequest {\n ids: string[];\n\n constructor(ids: string[]) {\n this.ids = ids == null ? [] : ids;\n }\n}\n","import { BaseResponse } from \"./base.response\";\n\nexport class BreachAccountResponse extends BaseResponse {\n addedDate: string;\n breachDate: string;\n dataClasses: string[];\n description: string;\n domain: string;\n isActive: boolean;\n isVerified: boolean;\n logoPath: string;\n modifiedDate: string;\n name: string;\n pwnCount: number;\n title: string;\n\n constructor(response: any) {\n super(response);\n this.addedDate = this.getResponseProperty(\"AddedDate\");\n this.breachDate = this.getResponseProperty(\"BreachDate\");\n this.dataClasses = this.getResponseProperty(\"DataClasses\");\n this.description = this.getResponseProperty(\"Description\");\n this.domain = this.getResponseProperty(\"Domain\");\n this.isActive = this.getResponseProperty(\"IsActive\");\n this.isVerified = this.getResponseProperty(\"IsVerified\");\n this.logoPath = this.getResponseProperty(\"LogoPath\");\n this.modifiedDate = this.getResponseProperty(\"ModifiedDate\");\n this.name = this.getResponseProperty(\"Name\");\n this.pwnCount = this.getResponseProperty(\"PwnCount\");\n this.title = this.getResponseProperty(\"Title\");\n }\n}\n","import { BaseResponse } from \"./base.response\";\n\nexport class GlobalDomainResponse extends BaseResponse {\n type: number;\n domains: string[];\n excluded: boolean;\n\n constructor(response: any) {\n super(response);\n this.type = this.getResponseProperty(\"Type\");\n this.domains = this.getResponseProperty(\"Domains\");\n this.excluded = this.getResponseProperty(\"Excluded\");\n }\n}\n","import { BaseResponse } from \"./base.response\";\nimport { GlobalDomainResponse } from \"./global-domain.response\";\n\nexport class DomainsResponse extends BaseResponse {\n equivalentDomains: string[][];\n globalEquivalentDomains: GlobalDomainResponse[] = [];\n\n constructor(response: any) {\n super(response);\n this.equivalentDomains = this.getResponseProperty(\"EquivalentDomains\");\n const globalEquivalentDomains = this.getResponseProperty(\"GlobalEquivalentDomains\");\n if (globalEquivalentDomains != null) {\n this.globalEquivalentDomains = globalEquivalentDomains.map(\n (d: any) => new GlobalDomainResponse(d),\n );\n } else {\n this.globalEquivalentDomains = [];\n }\n }\n}\n","import { DeviceType, EventSystemUser, EventType } from \"../../enums\";\n\nimport { BaseResponse } from \"./base.response\";\n\nexport class EventResponse extends BaseResponse {\n type: EventType;\n userId: string;\n organizationId: string;\n providerId: string;\n cipherId: string;\n collectionId: string;\n groupId: string;\n policyId: string;\n organizationUserId: string;\n providerUserId: string;\n providerOrganizationId: string;\n actingUserId: string;\n date: string;\n deviceType: DeviceType;\n ipAddress: string;\n installationId: string;\n systemUser: EventSystemUser;\n domainName: string;\n secretId: string;\n serviceAccountId: string;\n\n constructor(response: any) {\n super(response);\n this.type = this.getResponseProperty(\"Type\");\n this.userId = this.getResponseProperty(\"UserId\");\n this.organizationId = this.getResponseProperty(\"OrganizationId\");\n this.providerId = this.getResponseProperty(\"ProviderId\");\n this.cipherId = this.getResponseProperty(\"CipherId\");\n this.collectionId = this.getResponseProperty(\"CollectionId\");\n this.groupId = this.getResponseProperty(\"GroupId\");\n this.policyId = this.getResponseProperty(\"PolicyId\");\n this.organizationUserId = this.getResponseProperty(\"OrganizationUserId\");\n this.providerUserId = this.getResponseProperty(\"ProviderUserId\");\n this.providerOrganizationId = this.getResponseProperty(\"ProviderOrganizationId\");\n this.actingUserId = this.getResponseProperty(\"ActingUserId\");\n this.date = this.getResponseProperty(\"Date\");\n this.deviceType = this.getResponseProperty(\"DeviceType\");\n this.ipAddress = this.getResponseProperty(\"IpAddress\");\n this.installationId = this.getResponseProperty(\"InstallationId\");\n this.systemUser = this.getResponseProperty(\"SystemUser\");\n this.domainName = this.getResponseProperty(\"DomainName\");\n this.secretId = this.getResponseProperty(\"SecretId\");\n this.serviceAccountId = this.getResponseProperty(\"ServiceAccountId\");\n }\n}\n","import { BaseResponse } from \"./base.response\";\n\nexport class UserKeyResponse extends BaseResponse {\n userId: string;\n publicKey: string;\n\n constructor(response: any) {\n super(response);\n this.userId = this.getResponseProperty(\"UserId\");\n this.publicKey = this.getResponseProperty(\"PublicKey\");\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\nimport { FileUploadType } from \"../../../platform/enums\";\n\nimport { CipherResponse } from \"./cipher.response\";\n\nexport class AttachmentUploadDataResponse extends BaseResponse {\n attachmentId: string;\n fileUploadType: FileUploadType;\n cipherResponse: CipherResponse;\n cipherMiniResponse: CipherResponse;\n url: string = null;\n constructor(response: any) {\n super(response);\n this.attachmentId = this.getResponseProperty(\"AttachmentId\");\n this.fileUploadType = this.getResponseProperty(\"FileUploadType\");\n const cipherResponse = this.getResponseProperty(\"CipherResponse\");\n const cipherMiniResponse = this.getResponseProperty(\"CipherMiniResponse\");\n this.cipherResponse = cipherResponse == null ? null : new CipherResponse(cipherResponse);\n this.cipherMiniResponse =\n cipherMiniResponse == null ? null : new CipherResponse(cipherMiniResponse);\n this.url = this.getResponseProperty(\"Url\");\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\n\nimport { CipherResponse } from \"./cipher.response\";\n\nexport class OptionalCipherResponse extends BaseResponse {\n unavailable: boolean;\n cipher?: CipherResponse;\n\n constructor(response: any) {\n super(response);\n this.unavailable = this.getResponseProperty(\"Unavailable\");\n this.cipher = new CipherResponse(this.getResponseProperty(\"Cipher\"));\n }\n}\n","import { BaseResponse } from \"../../../../models/response/base.response\";\n\nexport class SendFileApi extends BaseResponse {\n id: string;\n fileName: string;\n size: string;\n sizeName: string;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.id = this.getResponseProperty(\"Id\");\n this.fileName = this.getResponseProperty(\"FileName\");\n this.size = this.getResponseProperty(\"Size\");\n this.sizeName = this.getResponseProperty(\"SizeName\");\n }\n}\n","import { BaseResponse } from \"../../../../models/response/base.response\";\n\nexport class SendTextApi extends BaseResponse {\n text: string;\n hidden: boolean;\n\n constructor(data: any = null) {\n super(data);\n if (data == null) {\n return;\n }\n this.text = this.getResponseProperty(\"Text\");\n this.hidden = this.getResponseProperty(\"Hidden\") || false;\n }\n}\n","import { BaseResponse } from \"../../../../models/response/base.response\";\nimport { SendType } from \"../../enums/send-type\";\nimport { SendFileApi } from \"../api/send-file.api\";\nimport { SendTextApi } from \"../api/send-text.api\";\n\nexport class SendResponse extends BaseResponse {\n id: string;\n accessId: string;\n type: SendType;\n name: string;\n notes: string;\n file: SendFileApi;\n text: SendTextApi;\n key: string;\n maxAccessCount?: number;\n accessCount: number;\n revisionDate: string;\n expirationDate: string;\n deletionDate: string;\n password: string;\n disable: boolean;\n hideEmail: boolean;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.accessId = this.getResponseProperty(\"AccessId\");\n this.type = this.getResponseProperty(\"Type\");\n this.name = this.getResponseProperty(\"Name\");\n this.notes = this.getResponseProperty(\"Notes\");\n this.key = this.getResponseProperty(\"Key\");\n this.maxAccessCount = this.getResponseProperty(\"MaxAccessCount\");\n this.accessCount = this.getResponseProperty(\"AccessCount\");\n this.revisionDate = this.getResponseProperty(\"RevisionDate\");\n this.expirationDate = this.getResponseProperty(\"ExpirationDate\");\n this.deletionDate = this.getResponseProperty(\"DeletionDate\");\n this.password = this.getResponseProperty(\"Password\");\n this.disable = this.getResponseProperty(\"Disabled\") || false;\n this.hideEmail = this.getResponseProperty(\"HideEmail\") || false;\n\n const text = this.getResponseProperty(\"Text\");\n if (text != null) {\n this.text = new SendTextApi(text);\n }\n\n const file = this.getResponseProperty(\"File\");\n if (file != null) {\n this.file = new SendFileApi(file);\n }\n }\n}\n","import { BaseResponse } from \"../../../models/response/base.response\";\n\nexport class FolderResponse extends BaseResponse {\n id: string;\n name: string;\n revisionDate: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.name = this.getResponseProperty(\"Name\");\n this.revisionDate = this.getResponseProperty(\"RevisionDate\");\n }\n}\n","import { PolicyResponse } from \"../../../admin-console/models/response/policy.response\";\nimport { BaseResponse } from \"../../../models/response/base.response\";\nimport { DomainsResponse } from \"../../../models/response/domains.response\";\nimport { ProfileResponse } from \"../../../models/response/profile.response\";\nimport { SendResponse } from \"../../../tools/send/models/response/send.response\";\n\nimport { CipherResponse } from \"./cipher.response\";\nimport { CollectionDetailsResponse } from \"./collection.response\";\nimport { FolderResponse } from \"./folder.response\";\n\nexport class SyncResponse extends BaseResponse {\n profile?: ProfileResponse;\n folders: FolderResponse[] = [];\n collections: CollectionDetailsResponse[] = [];\n ciphers: CipherResponse[] = [];\n domains?: DomainsResponse;\n policies?: PolicyResponse[] = [];\n sends: SendResponse[] = [];\n\n constructor(response: any) {\n super(response);\n\n const profile = this.getResponseProperty(\"Profile\");\n if (profile != null) {\n this.profile = new ProfileResponse(profile);\n }\n\n const folders = this.getResponseProperty(\"Folders\");\n if (folders != null) {\n this.folders = folders.map((f: any) => new FolderResponse(f));\n }\n\n const collections = this.getResponseProperty(\"Collections\");\n if (collections != null) {\n this.collections = collections.map((c: any) => new CollectionDetailsResponse(c));\n }\n\n const ciphers = this.getResponseProperty(\"Ciphers\");\n if (ciphers != null) {\n this.ciphers = ciphers.map((c: any) => new CipherResponse(c));\n }\n\n const domains = this.getResponseProperty(\"Domains\");\n if (domains != null) {\n this.domains = new DomainsResponse(domains);\n }\n\n const policies = this.getResponseProperty(\"Policies\");\n if (policies != null) {\n this.policies = policies.map((p: any) => new PolicyResponse(p));\n }\n\n const sends = this.getResponseProperty(\"Sends\");\n if (sends != null) {\n this.sends = sends.map((s: any) => new SendResponse(s));\n }\n }\n}\n","import { ApiService } from \"../abstractions/api.service\";\nimport { AuditService as AuditServiceAbstraction } from \"../abstractions/audit.service\";\nimport { BreachAccountResponse } from \"../models/response/breach-account.response\";\nimport { ErrorResponse } from \"../models/response/error.response\";\nimport { CryptoFunctionService } from \"../platform/abstractions/crypto-function.service\";\nimport { throttle } from \"../platform/misc/throttle\";\nimport { Utils } from \"../platform/misc/utils\";\n\nconst PwnedPasswordsApi = \"https://api.pwnedpasswords.com/range/\";\n\nexport class AuditService implements AuditServiceAbstraction {\n constructor(\n private cryptoFunctionService: CryptoFunctionService,\n private apiService: ApiService,\n ) {}\n\n @throttle(100, () => \"passwordLeaked\")\n async passwordLeaked(password: string): Promise {\n const hashBytes = await this.cryptoFunctionService.hash(password, \"sha1\");\n const hash = Utils.fromBufferToHex(hashBytes).toUpperCase();\n const hashStart = hash.substr(0, 5);\n const hashEnding = hash.substr(5);\n\n const response = await this.apiService.nativeFetch(new Request(PwnedPasswordsApi + hashStart));\n const leakedHashes = await response.text();\n const match = leakedHashes.split(/\\r?\\n/).find((v) => {\n return v.split(\":\")[0] === hashEnding;\n });\n\n return match != null ? parseInt(match.split(\":\")[1], 10) : 0;\n }\n\n async breachedAccounts(username: string): Promise {\n try {\n return await this.apiService.getHibpBreach(username);\n } catch (e) {\n const error = e as ErrorResponse;\n if (error.statusCode === 404) {\n return [];\n }\n throw new Error();\n }\n }\n}\n","/**\n * Use as a Decorator on async functions, it will limit how many times the function can be\n * in-flight at a time.\n *\n * Calls beyond the limit will be queued, and run when one of the active calls finishes\n */\nexport function throttle(limit: number, throttleKey: (args: any[]) => string) {\n return (\n target: any,\n propertyKey: string | symbol,\n descriptor: TypedPropertyDescriptor<(...args: any[]) => Promise>,\n ) => {\n const originalMethod: () => Promise = descriptor.value;\n const allThrottles = new Map void)[]>>();\n\n const getThrottles = (obj: any) => {\n let throttles = allThrottles.get(obj);\n if (throttles != null) {\n return throttles;\n }\n throttles = new Map void)[]>();\n allThrottles.set(obj, throttles);\n return throttles;\n };\n\n return {\n value: function (...args: any[]) {\n const throttles = getThrottles(this);\n const argsThrottleKey = throttleKey(args);\n let queue = throttles.get(argsThrottleKey);\n if (queue == null) {\n queue = [];\n throttles.set(argsThrottleKey, queue);\n }\n\n return new Promise((resolve, reject) => {\n const exec = () => {\n const onFinally = () => {\n queue.splice(queue.indexOf(exec), 1);\n if (queue.length >= limit) {\n queue[limit - 1]();\n } else if (queue.length === 0) {\n throttles.delete(argsThrottleKey);\n if (throttles.size === 0) {\n allThrottles.delete(this);\n }\n }\n };\n originalMethod\n .apply(this, args)\n .then((val: any) => {\n onFinally();\n return val;\n })\n .catch((err: any) => {\n onFinally();\n throw err;\n })\n .then(resolve, reject);\n };\n queue.push(exec);\n if (queue.length <= limit) {\n exec();\n }\n });\n },\n };\n };\n}\n","import { Jsonify } from \"type-fest\";\n\nimport { EventType } from \"../../enums\";\n\nexport class EventData {\n type: EventType;\n cipherId: string;\n date: string;\n organizationId: string;\n\n static fromJSON(obj: Jsonify): EventData {\n return Object.assign(new EventData(), obj);\n }\n}\n","import { EventData } from \"../../models/data/event.data\";\nimport { EVENT_COLLECTION_DISK, UserKeyDefinition } from \"../../platform/state\";\n\nexport const EVENT_COLLECTION = UserKeyDefinition.array(\n EVENT_COLLECTION_DISK,\n \"events\",\n {\n deserializer: (s) => EventData.fromJSON(s),\n clearOn: [\"logout\"],\n },\n);\n","import { EventType } from \"../../enums\";\n\nexport class EventRequest {\n type: EventType;\n cipherId: string;\n date: string;\n organizationId: string;\n}\n","import * as lunr from \"lunr\";\nimport { Observable, firstValueFrom, map } from \"rxjs\";\nimport { Jsonify } from \"type-fest\";\n\nimport { SearchService as SearchServiceAbstraction } from \"../abstractions/search.service\";\nimport { UriMatchStrategy } from \"../models/domain/domain-service\";\nimport { I18nService } from \"../platform/abstractions/i18n.service\";\nimport { LogService } from \"../platform/abstractions/log.service\";\nimport {\n ActiveUserState,\n StateProvider,\n UserKeyDefinition,\n VAULT_SEARCH_MEMORY,\n} from \"../platform/state\";\nimport { SendView } from \"../tools/send/models/view/send.view\";\nimport { IndexedEntityId } from \"../types/guid\";\nimport { FieldType } from \"../vault/enums\";\nimport { CipherType } from \"../vault/enums/cipher-type\";\nimport { CipherView } from \"../vault/models/view/cipher.view\";\n\nexport type SerializedLunrIndex = {\n version: string;\n fields: string[];\n fieldVectors: [string, number[]];\n invertedIndex: any[];\n pipeline: string[];\n};\n\n/**\n * The `KeyDefinition` for accessing the search index in application state.\n * The key definition is configured to clear the index when the user locks the vault.\n */\nexport const LUNR_SEARCH_INDEX = new UserKeyDefinition(\n VAULT_SEARCH_MEMORY,\n \"searchIndex\",\n {\n deserializer: (obj: Jsonify) => obj,\n clearOn: [\"lock\", \"logout\"],\n },\n);\n\n/**\n * The `KeyDefinition` for accessing the ID of the entity currently indexed by Lunr search.\n * The key definition is configured to clear the indexed entity ID when the user locks the vault.\n */\nexport const LUNR_SEARCH_INDEXED_ENTITY_ID = new UserKeyDefinition(\n VAULT_SEARCH_MEMORY,\n \"searchIndexedEntityId\",\n {\n deserializer: (obj: Jsonify) => obj,\n clearOn: [\"lock\", \"logout\"],\n },\n);\n\n/**\n * The `KeyDefinition` for accessing the state of Lunr search indexing, indicating whether the Lunr search index is currently being built or updating.\n * The key definition is configured to clear the indexing state when the user locks the vault.\n */\nexport const LUNR_SEARCH_INDEXING = new UserKeyDefinition(\n VAULT_SEARCH_MEMORY,\n \"isIndexing\",\n {\n deserializer: (obj: Jsonify) => obj,\n clearOn: [\"lock\", \"logout\"],\n },\n);\n\nexport class SearchService implements SearchServiceAbstraction {\n private static registeredPipeline = false;\n\n private searchIndexState: ActiveUserState =\n this.stateProvider.getActive(LUNR_SEARCH_INDEX);\n private readonly index$: Observable = this.searchIndexState.state$.pipe(\n map((searchIndex) => (searchIndex ? lunr.Index.load(searchIndex) : null)),\n );\n\n private searchIndexEntityIdState: ActiveUserState = this.stateProvider.getActive(\n LUNR_SEARCH_INDEXED_ENTITY_ID,\n );\n readonly indexedEntityId$: Observable =\n this.searchIndexEntityIdState.state$.pipe(map((id) => id));\n\n private searchIsIndexingState: ActiveUserState =\n this.stateProvider.getActive(LUNR_SEARCH_INDEXING);\n private readonly searchIsIndexing$: Observable = this.searchIsIndexingState.state$.pipe(\n map((indexing) => indexing ?? false),\n );\n\n private readonly immediateSearchLocales: string[] = [\"zh-CN\", \"zh-TW\", \"ja\", \"ko\", \"vi\"];\n private readonly defaultSearchableMinLength: number = 2;\n private searchableMinLength: number = this.defaultSearchableMinLength;\n\n constructor(\n private logService: LogService,\n private i18nService: I18nService,\n private stateProvider: StateProvider,\n ) {\n this.i18nService.locale$.subscribe((locale) => {\n if (this.immediateSearchLocales.indexOf(locale) !== -1) {\n this.searchableMinLength = 1;\n } else {\n this.searchableMinLength = this.defaultSearchableMinLength;\n }\n });\n\n // Currently have to ensure this is only done a single time. Lunr allows you to register a function\n // multiple times but they will add a warning message to the console. The way they do that breaks when ran on a service worker.\n if (!SearchService.registeredPipeline) {\n SearchService.registeredPipeline = true;\n //register lunr pipeline function\n lunr.Pipeline.registerFunction(this.normalizeAccentsPipelineFunction, \"normalizeAccents\");\n }\n }\n\n async clearIndex(): Promise {\n await this.searchIndexEntityIdState.update(() => null);\n await this.searchIndexState.update(() => null);\n await this.searchIsIndexingState.update(() => null);\n }\n\n async isSearchable(query: string): Promise {\n query = SearchService.normalizeSearchQuery(query);\n const index = await this.getIndexForSearch();\n const notSearchable =\n query == null ||\n (index == null && query.length < this.searchableMinLength) ||\n (index != null && query.length < this.searchableMinLength && query.indexOf(\">\") !== 0);\n return !notSearchable;\n }\n\n async indexCiphers(ciphers: CipherView[], indexedEntityId?: string): Promise {\n if (await this.getIsIndexing()) {\n return;\n }\n\n await this.setIsIndexing(true);\n await this.setIndexedEntityIdForSearch(indexedEntityId as IndexedEntityId);\n const builder = new lunr.Builder();\n builder.pipeline.add(this.normalizeAccentsPipelineFunction);\n builder.ref(\"id\");\n builder.field(\"shortid\", { boost: 100, extractor: (c: CipherView) => c.id.substr(0, 8) });\n builder.field(\"name\", {\n boost: 10,\n });\n builder.field(\"subtitle\", {\n boost: 5,\n extractor: (c: CipherView) => {\n if (c.subTitle != null && c.type === CipherType.Card) {\n return c.subTitle.replace(/\\*/g, \"\");\n }\n return c.subTitle;\n },\n });\n builder.field(\"notes\");\n builder.field(\"login.username\", {\n extractor: (c: CipherView) =>\n c.type === CipherType.Login && c.login != null ? c.login.username : null,\n });\n builder.field(\"login.uris\", { boost: 2, extractor: (c: CipherView) => this.uriExtractor(c) });\n builder.field(\"fields\", { extractor: (c: CipherView) => this.fieldExtractor(c, false) });\n builder.field(\"fields_joined\", { extractor: (c: CipherView) => this.fieldExtractor(c, true) });\n builder.field(\"attachments\", {\n extractor: (c: CipherView) => this.attachmentExtractor(c, false),\n });\n builder.field(\"attachments_joined\", {\n extractor: (c: CipherView) => this.attachmentExtractor(c, true),\n });\n builder.field(\"organizationid\", { extractor: (c: CipherView) => c.organizationId });\n ciphers = ciphers || [];\n ciphers.forEach((c) => builder.add(c));\n const index = builder.build();\n\n await this.setIndexForSearch(index.toJSON() as SerializedLunrIndex);\n\n await this.setIsIndexing(false);\n\n this.logService.info(\"Finished search indexing\");\n }\n\n async searchCiphers(\n query: string,\n filter: ((cipher: CipherView) => boolean) | ((cipher: CipherView) => boolean)[] = null,\n ciphers: CipherView[],\n ): Promise {\n const results: CipherView[] = [];\n if (query != null) {\n query = SearchService.normalizeSearchQuery(query.trim().toLowerCase());\n }\n if (query === \"\") {\n query = null;\n }\n\n if (ciphers == null) {\n ciphers = [];\n }\n\n if (filter != null && Array.isArray(filter) && filter.length > 0) {\n ciphers = ciphers.filter((c) => filter.every((f) => f == null || f(c)));\n } else if (filter != null) {\n ciphers = ciphers.filter(filter as (cipher: CipherView) => boolean);\n }\n\n if (!(await this.isSearchable(query))) {\n return ciphers;\n }\n\n if (await this.getIsIndexing()) {\n await new Promise((r) => setTimeout(r, 250));\n if (await this.getIsIndexing()) {\n await new Promise((r) => setTimeout(r, 500));\n }\n }\n\n const index = await this.getIndexForSearch();\n if (index == null) {\n // Fall back to basic search if index is not available\n return this.searchCiphersBasic(ciphers, query);\n }\n\n const ciphersMap = new Map();\n ciphers.forEach((c) => ciphersMap.set(c.id, c));\n\n let searchResults: lunr.Index.Result[] = null;\n const isQueryString = query != null && query.length > 1 && query.indexOf(\">\") === 0;\n if (isQueryString) {\n try {\n searchResults = index.search(query.substr(1).trim());\n } catch (e) {\n this.logService.error(e);\n }\n } else {\n const soWild = lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING;\n searchResults = index.query((q) => {\n lunr.tokenizer(query).forEach((token) => {\n const t = token.toString();\n q.term(t, { fields: [\"name\"], wildcard: soWild });\n q.term(t, { fields: [\"subtitle\"], wildcard: soWild });\n q.term(t, { fields: [\"login.uris\"], wildcard: soWild });\n q.term(t, {});\n });\n });\n }\n\n if (searchResults != null) {\n searchResults.forEach((r) => {\n if (ciphersMap.has(r.ref)) {\n results.push(ciphersMap.get(r.ref));\n }\n });\n }\n return results;\n }\n\n searchCiphersBasic(ciphers: CipherView[], query: string, deleted = false) {\n query = SearchService.normalizeSearchQuery(query.trim().toLowerCase());\n return ciphers.filter((c) => {\n if (deleted !== c.isDeleted) {\n return false;\n }\n if (c.name != null && c.name.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n if (query.length >= 8 && c.id.startsWith(query)) {\n return true;\n }\n if (c.subTitle != null && c.subTitle.toLowerCase().indexOf(query) > -1) {\n return true;\n }\n if (\n c.login &&\n c.login.hasUris &&\n c.login.uris.some((loginUri) => loginUri?.uri?.toLowerCase().indexOf(query) > -1)\n ) {\n return true;\n }\n return false;\n });\n }\n\n searchSends(sends: SendView[], query: string) {\n query = SearchService.normalizeSearchQuery(query.trim().toLocaleLowerCase());\n if (query === null) {\n return sends;\n }\n const sendsMatched: SendView[] = [];\n const lowPriorityMatched: SendView[] = [];\n sends.forEach((s) => {\n if (s.name != null && s.name.toLowerCase().indexOf(query) > -1) {\n sendsMatched.push(s);\n } else if (\n query.length >= 8 &&\n (s.id.startsWith(query) ||\n s.accessId.toLocaleLowerCase().startsWith(query) ||\n (s.file?.id != null && s.file.id.startsWith(query)))\n ) {\n lowPriorityMatched.push(s);\n } else if (s.notes != null && s.notes.toLowerCase().indexOf(query) > -1) {\n lowPriorityMatched.push(s);\n } else if (s.text?.text != null && s.text.text.toLowerCase().indexOf(query) > -1) {\n lowPriorityMatched.push(s);\n } else if (s.file?.fileName != null && s.file.fileName.toLowerCase().indexOf(query) > -1) {\n lowPriorityMatched.push(s);\n }\n });\n return sendsMatched.concat(lowPriorityMatched);\n }\n\n async getIndexForSearch(): Promise {\n return await firstValueFrom(this.index$);\n }\n\n private async setIndexForSearch(index: SerializedLunrIndex): Promise {\n await this.searchIndexState.update(() => index);\n }\n\n private async setIndexedEntityIdForSearch(indexedEntityId: IndexedEntityId): Promise {\n await this.searchIndexEntityIdState.update(() => indexedEntityId);\n }\n\n private async setIsIndexing(indexing: boolean): Promise {\n await this.searchIsIndexingState.update(() => indexing);\n }\n\n private async getIsIndexing(): Promise {\n return await firstValueFrom(this.searchIsIndexing$);\n }\n\n private fieldExtractor(c: CipherView, joined: boolean) {\n if (!c.hasFields) {\n return null;\n }\n let fields: string[] = [];\n c.fields.forEach((f) => {\n if (f.name != null) {\n fields.push(f.name);\n }\n if (f.type === FieldType.Text && f.value != null) {\n fields.push(f.value);\n }\n });\n fields = fields.filter((f) => f.trim() !== \"\");\n if (fields.length === 0) {\n return null;\n }\n return joined ? fields.join(\" \") : fields;\n }\n\n private attachmentExtractor(c: CipherView, joined: boolean) {\n if (!c.hasAttachments) {\n return null;\n }\n let attachments: string[] = [];\n c.attachments.forEach((a) => {\n if (a != null && a.fileName != null) {\n if (joined && a.fileName.indexOf(\".\") > -1) {\n attachments.push(a.fileName.substr(0, a.fileName.lastIndexOf(\".\")));\n } else {\n attachments.push(a.fileName);\n }\n }\n });\n attachments = attachments.filter((f) => f.trim() !== \"\");\n if (attachments.length === 0) {\n return null;\n }\n return joined ? attachments.join(\" \") : attachments;\n }\n\n private uriExtractor(c: CipherView) {\n if (c.type !== CipherType.Login || c.login == null || !c.login.hasUris) {\n return null;\n }\n const uris: string[] = [];\n c.login.uris.forEach((u) => {\n if (u.uri == null || u.uri === \"\") {\n return;\n }\n if (u.hostname != null) {\n uris.push(u.hostname);\n return;\n }\n let uri = u.uri;\n if (u.match !== UriMatchStrategy.RegularExpression) {\n const protocolIndex = uri.indexOf(\"://\");\n if (protocolIndex > -1) {\n uri = uri.substr(protocolIndex + 3);\n }\n const queryIndex = uri.search(/\\?|&|#/);\n if (queryIndex > -1) {\n uri = uri.substring(0, queryIndex);\n }\n }\n uris.push(uri);\n });\n return uris.length > 0 ? uris : null;\n }\n\n private normalizeAccentsPipelineFunction(token: lunr.Token): any {\n const searchableFields = [\"name\", \"login.username\", \"subtitle\", \"notes\"];\n const fields = (token as any).metadata[\"fields\"];\n const checkFields = fields.every((i: any) => searchableFields.includes(i));\n\n if (checkFields) {\n return SearchService.normalizeSearchQuery(token.toString());\n }\n\n return token;\n }\n\n // Remove accents/diacritics characters from text. This regex is equivalent to the Diacritic unicode property escape, i.e. it will match all diacritic characters.\n static normalizeSearchQuery(query: string): string {\n return query?.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n }\n}\n","import { combineLatest, filter, firstValueFrom, map, switchMap, timeout } from \"rxjs\";\n\nimport { LogoutReason } from \"@bitwarden/auth/common\";\n\nimport { SearchService } from \"../../abstractions/search.service\";\nimport { VaultTimeoutSettingsService } from \"../../abstractions/vault-timeout/vault-timeout-settings.service\";\nimport { VaultTimeoutService as VaultTimeoutServiceAbstraction } from \"../../abstractions/vault-timeout/vault-timeout.service\";\nimport { AccountService } from \"../../auth/abstractions/account.service\";\nimport { AuthService } from \"../../auth/abstractions/auth.service\";\nimport { InternalMasterPasswordServiceAbstraction } from \"../../auth/abstractions/master-password.service.abstraction\";\nimport { AuthenticationStatus } from \"../../auth/enums/authentication-status\";\nimport { VaultTimeoutAction } from \"../../enums/vault-timeout-action.enum\";\nimport { MessagingService } from \"../../platform/abstractions/messaging.service\";\nimport { PlatformUtilsService } from \"../../platform/abstractions/platform-utils.service\";\nimport { StateService } from \"../../platform/abstractions/state.service\";\nimport { StateEventRunnerService } from \"../../platform/state\";\nimport { UserId } from \"../../types/guid\";\nimport { CipherService } from \"../../vault/abstractions/cipher.service\";\nimport { CollectionService } from \"../../vault/abstractions/collection.service\";\nimport { FolderService } from \"../../vault/abstractions/folder/folder.service.abstraction\";\n\nexport class VaultTimeoutService implements VaultTimeoutServiceAbstraction {\n private inited = false;\n\n constructor(\n private accountService: AccountService,\n private masterPasswordService: InternalMasterPasswordServiceAbstraction,\n private cipherService: CipherService,\n private folderService: FolderService,\n private collectionService: CollectionService,\n protected platformUtilsService: PlatformUtilsService,\n private messagingService: MessagingService,\n private searchService: SearchService,\n private stateService: StateService,\n private authService: AuthService,\n private vaultTimeoutSettingsService: VaultTimeoutSettingsService,\n private stateEventRunnerService: StateEventRunnerService,\n private lockedCallback: (userId?: string) => Promise = null,\n private loggedOutCallback: (\n logoutReason: LogoutReason,\n userId?: string,\n ) => Promise = null,\n ) {}\n\n async init(checkOnInterval: boolean) {\n if (this.inited) {\n return;\n }\n\n this.inited = true;\n if (checkOnInterval) {\n this.startCheck();\n }\n }\n\n startCheck() {\n // FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.checkVaultTimeout();\n setInterval(() => this.checkVaultTimeout(), 10 * 1000); // check every 10 seconds\n }\n\n async checkVaultTimeout(): Promise {\n // Get whether or not the view is open a single time so it can be compared for each user\n const isViewOpen = await this.platformUtilsService.isViewOpen();\n\n await firstValueFrom(\n combineLatest([\n this.accountService.activeAccount$,\n this.accountService.accountActivity$,\n ]).pipe(\n switchMap(async ([activeAccount, accountActivity]) => {\n const activeUserId = activeAccount?.id;\n for (const userIdString in accountActivity) {\n const userId = userIdString as UserId;\n if (\n userId != null &&\n (await this.shouldLock(userId, accountActivity[userId], activeUserId, isViewOpen))\n ) {\n await this.executeTimeoutAction(userId);\n }\n }\n }),\n ),\n );\n }\n\n async lock(userId?: UserId): Promise {\n const authed = await this.stateService.getIsAuthenticated({ userId: userId });\n if (!authed) {\n return;\n }\n\n const availableActions = await firstValueFrom(\n this.vaultTimeoutSettingsService.availableVaultTimeoutActions$(userId),\n );\n const supportsLock = availableActions.includes(VaultTimeoutAction.Lock);\n if (!supportsLock) {\n await this.logOut(userId);\n }\n\n const currentUserId = await firstValueFrom(\n this.accountService.activeAccount$.pipe(map((a) => a?.id)),\n );\n\n const lockingUserId = userId ?? currentUserId;\n\n // HACK: Start listening for the transition of the locking user from something to the locked state.\n // This is very much a hack to ensure that the authentication status to retrievable right after\n // it does its work. Particularly the `lockedCallback` and `\"locked\"` message. Instead\n // lockedCallback should be deprecated and people should subscribe and react to `authStatusFor$` themselves.\n const lockPromise = firstValueFrom(\n this.authService.authStatusFor$(lockingUserId).pipe(\n filter((authStatus) => authStatus === AuthenticationStatus.Locked),\n timeout({\n first: 5_000,\n with: () => {\n throw new Error(\"The lock process did not complete in a reasonable amount of time.\");\n },\n }),\n ),\n );\n\n if (userId == null || userId === currentUserId) {\n await this.searchService.clearIndex();\n await this.folderService.clearCache();\n await this.collectionService.clearActiveUserCache();\n }\n\n await this.masterPasswordService.clearMasterKey(lockingUserId);\n\n await this.stateService.setUserKeyAutoUnlock(null, { userId: lockingUserId });\n await this.stateService.setCryptoMasterKeyAuto(null, { userId: lockingUserId });\n\n await this.cipherService.clearCache(lockingUserId);\n\n await this.stateEventRunnerService.handleEvent(\"lock\", lockingUserId);\n\n // HACK: Sit here and wait for the the auth status to transition to `Locked`\n // to ensure the message and lockedCallback will get the correct status\n // if/when they call it.\n await lockPromise;\n\n this.messagingService.send(\"locked\", { userId: lockingUserId });\n\n if (this.lockedCallback != null) {\n await this.lockedCallback(userId);\n }\n }\n\n async logOut(userId?: string): Promise {\n if (this.loggedOutCallback != null) {\n await this.loggedOutCallback(\"vaultTimeout\", userId);\n }\n }\n\n private async shouldLock(\n userId: string,\n lastActive: Date,\n activeUserId: string,\n isViewOpen: boolean,\n ): Promise {\n if (isViewOpen && userId === activeUserId) {\n // We know a view is open and this is the currently active user\n // which means they are likely looking at their vault\n // and they should not lock.\n return false;\n }\n\n const authStatus = await this.authService.getAuthStatus(userId);\n if (\n authStatus === AuthenticationStatus.Locked ||\n authStatus === AuthenticationStatus.LoggedOut\n ) {\n return false;\n }\n\n const vaultTimeout = await firstValueFrom(\n this.vaultTimeoutSettingsService.getVaultTimeoutByUserId$(userId),\n );\n\n if (typeof vaultTimeout === \"string\") {\n return false;\n }\n\n if (lastActive == null) {\n return false;\n }\n\n const vaultTimeoutSeconds = vaultTimeout * 60;\n const diffSeconds = (new Date().getTime() - lastActive.getTime()) / 1000;\n return diffSeconds >= vaultTimeoutSeconds;\n }\n\n private async executeTimeoutAction(userId: UserId): Promise {\n const timeoutAction = await firstValueFrom(\n this.vaultTimeoutSettingsService.getVaultTimeoutActionByUserId$(userId),\n );\n timeoutAction === VaultTimeoutAction.LogOut\n ? await this.logOut(userId)\n : await this.lock(userId);\n }\n}\n","import { firstValueFrom, share, timer, ReplaySubject, Observable } from \"rxjs\";\n\n// FIXME: use index.ts imports once policy abstractions and models\n// implement ADR-0002\nimport { PolicyService } from \"../../admin-console/abstractions/policy/policy.service.abstraction\";\nimport { UserId } from \"../../types/guid\";\n\nimport { GeneratorStrategy, GeneratorService, PolicyEvaluator } from \"./abstractions\";\n\ntype DefaultGeneratorServiceTuning = {\n /* amount of time to keep the most recent policy after a subscription ends. Once the\n * cache expires, the ignoreQty and timeoutMs settings apply to the next lookup.\n */\n policyCacheMs: number;\n};\n\n/** {@link GeneratorServiceAbstraction} */\nexport class DefaultGeneratorService implements GeneratorService {\n /** Instantiates the generator service\n * @param strategy tailors the service to a specific generator type\n * (e.g. password, passphrase)\n * @param policy provides the policy to enforce\n */\n constructor(\n private strategy: GeneratorStrategy,\n private policy: PolicyService,\n tuning: Partial = {},\n ) {\n this.tuning = Object.assign(\n {\n // a minute\n policyCacheMs: 60000,\n },\n tuning,\n );\n }\n\n private tuning: DefaultGeneratorServiceTuning;\n private _evaluators$ = new Map>>();\n\n /** {@link GeneratorService.options$} */\n options$(userId: UserId) {\n return this.strategy.durableState(userId).state$;\n }\n\n /** {@link GeneratorService.defaults$} */\n defaults$(userId: UserId) {\n return this.strategy.defaults$(userId);\n }\n\n /** {@link GeneratorService.saveOptions} */\n async saveOptions(userId: UserId, options: Options): Promise {\n await this.strategy.durableState(userId).update(() => options);\n }\n\n /** {@link GeneratorService.evaluator$} */\n evaluator$(userId: UserId) {\n let evaluator$ = this._evaluators$.get(userId);\n\n if (!evaluator$) {\n evaluator$ = this.createEvaluator(userId);\n this._evaluators$.set(userId, evaluator$);\n }\n\n return evaluator$;\n }\n\n private createEvaluator(userId: UserId) {\n const evaluator$ = this.policy.getAll$(this.strategy.policy, userId).pipe(\n // create the evaluator from the policies\n this.strategy.toEvaluator(),\n\n // cache evaluator in a replay subject to amortize creation cost\n // and reduce GC pressure.\n share({\n connector: () => new ReplaySubject(1),\n resetOnRefCountZero: () => timer(this.tuning.policyCacheMs),\n }),\n );\n\n return evaluator$;\n }\n\n /** {@link GeneratorService.enforcePolicy} */\n async enforcePolicy(userId: UserId, options: Options): Promise {\n const policy = await firstValueFrom(this.evaluator$(userId));\n const evaluated = policy.applyPolicy(options);\n const sanitized = policy.sanitize(evaluated);\n return sanitized;\n }\n\n /** {@link GeneratorService.generate} */\n async generate(options: Options): Promise {\n return await this.strategy.generate(options);\n }\n}\n","import { Observable, combineLatest, concatMap, filter, map, of, concat, merge } from \"rxjs\";\n\nimport {\n StateProvider,\n SingleUserState,\n CombinedState,\n StateUpdateOptions,\n} from \"../../platform/state\";\n\nimport { BufferedKeyDefinition } from \"./buffered-key-definition\";\n\n/** Stateful storage that overwrites one state with a buffered state.\n * When a overwrite occurs, the input state is automatically deleted.\n * @remarks The buffered state can only overwrite non-nullish values. If the\n * buffer key contains `null` or `undefined`, it will do nothing.\n */\nexport class BufferedState implements SingleUserState {\n /**\n * Instantiate a buffered state\n * @param provider constructs the buffer.\n * @param key defines the buffer location.\n * @param output updates when a overwrite occurs\n * @param dependency$ provides data the buffer depends upon to evaluate and\n * transform its data. If this is omitted, then `true` is injected as\n * a dependency, which with a default output will trigger a overwrite immediately.\n *\n * @remarks `dependency$` enables overwrite control during dynamic circumstances,\n * such as when a overwrite should occur only if a user key is available.\n */\n constructor(\n provider: StateProvider,\n private key: BufferedKeyDefinition,\n private output: SingleUserState,\n dependency$: Observable = null,\n ) {\n this.bufferedState = provider.getUser(output.userId, key.toKeyDefinition());\n\n // overwrite the output value\n const hasValue$ = concat(of(null), this.bufferedState.state$).pipe(\n map((buffer) => (buffer ?? null) !== null),\n );\n const overwriteDependency$ = (dependency$ ?? of(true as unknown as Dependency)).pipe(\n map((dependency) => [key.shouldOverwrite(dependency), dependency] as const),\n );\n const overwrite$ = combineLatest([hasValue$, overwriteDependency$]).pipe(\n concatMap(async ([hasValue, [shouldOverwrite, dependency]]) => {\n if (hasValue && shouldOverwrite) {\n await this.overwriteOutput(dependency);\n }\n return [false, null] as const;\n }),\n );\n\n // drive overwrites only when there's a subscription;\n // the output state determines when emissions occur\n const output$ = this.output.state$.pipe(map((output) => [true, output] as const));\n this.state$ = merge(overwrite$, output$).pipe(\n filter(([emit]) => emit),\n map(([, output]) => output),\n );\n\n this.combinedState$ = this.state$.pipe(map((state) => [this.output.userId, state]));\n\n this.bufferedState$ = this.bufferedState.state$;\n }\n\n private bufferedState: SingleUserState;\n\n private async overwriteOutput(dependency: Dependency) {\n // take the latest value from the buffer\n let buffered: Input;\n await this.bufferedState.update((state) => {\n buffered = state ?? null;\n return null;\n });\n\n // update the output state\n const isValid = await this.key.isValid(buffered, dependency);\n if (isValid) {\n const output = await this.key.map(buffered, dependency);\n await this.output.update(() => output);\n }\n }\n\n /** {@link SingleUserState.userId} */\n get userId() {\n return this.output.userId;\n }\n\n /** Observes changes to the output state. This updates when the output\n * state updates, when the buffer is moved to the output, and when `BufferedState.buffer`\n * is invoked.\n */\n readonly state$: Observable;\n\n /** {@link SingleUserState.combinedState$} */\n readonly combinedState$: Observable>;\n\n /** Buffers a value state. The buffered state overwrites the output\n * state when a subscription occurs.\n * @param value the state to roll over. Setting this to `null` or `undefined`\n * has no effect.\n */\n async buffer(value: Input): Promise {\n const normalized = value ?? null;\n if (normalized !== null) {\n await this.bufferedState.update(() => normalized);\n }\n }\n\n /** The data presently being buffered. This emits the pending value each time\n * new buffer data is provided. It emits null when the buffer is empty.\n */\n readonly bufferedState$: Observable;\n\n /** Updates the output state.\n * @param configureState a callback that returns an updated output\n * state. The callback receives the state's present value as its\n * first argument and the dependencies listed in `options.combinedLatestWith`\n * as its second argument.\n * @param options configures how the update is applied. See {@link StateUpdateOptions}.\n */\n update(\n configureState: (state: Output, dependencies: TCombine) => Output,\n options: StateUpdateOptions = null,\n ): Promise {\n return this.output.update(configureState, options);\n }\n}\n","import { Jsonify } from \"type-fest\";\n\n/** A packing strategy that packs data into a string.\n */\nexport abstract class DataPacker {\n /**\n * Packs value into a string format.\n * @type {Data} is the type of data being protected.\n * @param value is packed into the string\n * @returns the packed string\n */\n abstract pack(value: Jsonify): string;\n\n /** Unpacks a string produced by pack.\n * @param packedValue is the string to unpack\n * @type {Data} is the type of data being protected.\n * @returns the data stored within the secret.\n * @throws when `packedValue` has an invalid format.\n */\n abstract unpack(packedValue: string): Jsonify;\n}\n","import { Jsonify } from \"type-fest\";\n\nimport { Utils } from \"../../platform/misc/utils\";\n\nimport { DataPacker as DataPackerAbstraction } from \"./data-packer.abstraction\";\n\nconst DATA_PACKING = Object.freeze({\n /** The character to use for padding. */\n padding: \"0\",\n\n /** The character dividing packed data. */\n divider: \"|\",\n\n /** A regular expression for detecting invalid padding. When the character\n * changes, this should be updated to include the new padding pattern.\n */\n hasInvalidPadding: /[^0]/,\n});\n\n/** A packing strategy that conceals the length of secret data by padding it\n * to a multiple of the frame size.\n * @example\n * // packed === \"24|e2Zvbzp0cnVlfQ==|0000\"\n * const packer = new SecretPacker(24);\n * const packed = packer.pack({ foo: true });\n */\nexport class PaddedDataPacker extends DataPackerAbstraction {\n /** Instantiates the padded data packer\n * @param frameSize The size of the dataframe used to pad encrypted values.\n */\n constructor(private readonly frameSize: number) {\n super();\n }\n\n /**\n * Packs value into a string format that conceals the length by obscuring it\n * with the frameSize.\n * @see {@link DataPackerAbstraction.unpack}\n */\n pack(value: Jsonify) {\n // encode the value\n const json = JSON.stringify(value);\n const b64 = Utils.fromUtf8ToB64(json);\n\n // calculate packing metadata\n const frameSize = JSON.stringify(this.frameSize);\n const separatorLength = 2 * DATA_PACKING.divider.length; // there are 2 separators\n const payloadLength = b64.length + frameSize.length + separatorLength;\n const paddingLength = this.frameSize - (payloadLength % this.frameSize);\n\n // pack the data, thereby concealing its length\n const padding = DATA_PACKING.padding.repeat(paddingLength);\n const packed = `${frameSize}|${b64}|${padding}`;\n\n return packed;\n }\n\n /** {@link DataPackerAbstraction.unpack} */\n unpack(secret: string): Jsonify {\n // frame size is stored before the JSON payload in base 10\n const frameEndIndex = secret.indexOf(DATA_PACKING.divider);\n if (frameEndIndex < 1) {\n throw new Error(\"missing frame size\");\n }\n const frameSize = parseInt(secret.slice(0, frameEndIndex), 10);\n const dataStartIndex = frameEndIndex + 1;\n\n // The decrypted string should be a multiple of the frame length\n if (secret.length % frameSize > 0) {\n throw new Error(\"invalid length\");\n }\n\n // encoded data terminates with the divider, followed by the padding character\n const dataEndIndex = secret.lastIndexOf(DATA_PACKING.divider);\n if (dataEndIndex == frameEndIndex) {\n throw new Error(\"missing json object\");\n }\n const paddingStartIndex = dataEndIndex + 1;\n\n // If the padding contains invalid padding characters then the padding could be used\n // as a side channel for arbitrary data.\n if (secret.slice(paddingStartIndex).match(DATA_PACKING.hasInvalidPadding)) {\n throw new Error(\"invalid padding\");\n }\n\n // remove frame size and padding\n const b64 = secret.slice(dataStartIndex, dataEndIndex);\n\n // unpack the stored data\n const json = Utils.fromB64ToUtf8(b64);\n const unpacked = JSON.parse(json);\n\n return unpacked;\n }\n}\n","import { Observable, map, concatMap, share, ReplaySubject, timer } from \"rxjs\";\n\nimport { EncString } from \"../../platform/models/domain/enc-string\";\nimport {\n SingleUserState,\n StateProvider,\n StateUpdateOptions,\n CombinedState,\n} from \"../../platform/state\";\nimport { UserId } from \"../../types/guid\";\n\nimport { ClassifiedFormat } from \"./classified-format\";\nimport { SecretKeyDefinition } from \"./secret-key-definition\";\nimport { UserEncryptor } from \"./user-encryptor.abstraction\";\n\nconst ONE_MINUTE = 1000 * 60;\n\n/** Stores account-specific secrets protected by a UserKeyEncryptor.\n *\n * @remarks This state store changes the structure of `Plaintext` during\n * storage, and requires user keys to operate. It is incompatible with sync,\n * which expects the disk storage format to be identical to the sync format.\n *\n * DO NOT USE THIS for synchronized data.\n */\nexport class SecretState\n implements SingleUserState\n{\n // The constructor is private to avoid creating a circular dependency when\n // wiring the derived and secret states together.\n private constructor(\n private readonly key: SecretKeyDefinition,\n private readonly encryptor: UserEncryptor,\n userId: UserId,\n provider: StateProvider,\n ) {\n // construct the backing store\n this.encryptedState = provider.getUser(userId, key.toEncryptedStateKey());\n\n // cache plaintext\n this.combinedState$ = this.encryptedState.combinedState$.pipe(\n concatMap(\n async ([userId, state]) => [userId, await this.declassifyAll(state)] as [UserId, Outer],\n ),\n share({\n connector: () => {\n return new ReplaySubject<[UserId, Outer]>(1);\n },\n resetOnRefCountZero: () => timer(key.options.cleanupDelayMs ?? ONE_MINUTE),\n }),\n );\n\n this.state$ = this.combinedState$.pipe(map(([, state]) => state));\n }\n\n private readonly encryptedState: SingleUserState[]>;\n\n /** {@link SingleUserState.userId} */\n get userId() {\n return this.encryptedState.userId;\n }\n\n /** Observes changes to the decrypted secret state. The observer\n * updates after the secret has been recorded to state storage.\n * @returns `undefined` when the account is locked.\n */\n readonly state$: Observable;\n\n /** {@link SingleUserState.combinedState$} */\n readonly combinedState$: Observable>;\n\n /** Creates a secret state bound to an account encryptor. The account must be unlocked\n * when this method is called.\n * @param userId: the user to which the secret state is bound.\n * @param key Converts between a declassified secret and its formal type.\n * @param provider constructs state objects.\n * @param encryptor protects `Secret` data.\n * @throws when `key.stateDefinition` is backed by memory storage.\n * @remarks Secrets are written to a secret store as a named tuple. Data classification is\n * determined by the encryptor's classifier. Secret-classification data is jsonified,\n * encrypted, and stored in a `secret` property. Disclosed-classification data is stored\n * in a `disclosed` property. Omitted-classification data is not stored.\n */\n static from(\n userId: UserId,\n key: SecretKeyDefinition,\n provider: StateProvider,\n encryptor: UserEncryptor,\n ) {\n const secretState = new SecretState(key, encryptor, userId, provider);\n return secretState;\n }\n\n private async declassifyItem({ id, secret, disclosed }: ClassifiedFormat) {\n const encrypted = EncString.fromJSON(secret);\n const decrypted = await this.encryptor.decrypt(encrypted, this.encryptedState.userId);\n\n const declassified = this.key.classifier.declassify(disclosed, decrypted);\n const result = [id, this.key.options.deserializer(declassified)] as const;\n\n return result;\n }\n\n private async declassifyAll(data: ClassifiedFormat[]) {\n // fail fast if there's no value\n if (data === null || data === undefined) {\n return null;\n }\n\n // decrypt each item\n const decryptTasks = data.map(async (item) => this.declassifyItem(item));\n\n // reconstruct expected type\n const results = await Promise.all(decryptTasks);\n const result = this.key.reconstruct(results);\n\n return result;\n }\n\n private async classifyItem([id, item]: [Id, Plaintext]) {\n const classified = this.key.classifier.classify(item);\n const encrypted = await this.encryptor.encrypt(classified.secret, this.encryptedState.userId);\n\n // the deserializer in the plaintextState's `derive` configuration always runs, but\n // `encryptedState` is not guaranteed to serialize the data, so it's necessary to\n // round-trip `encrypted` proactively.\n const serialized = {\n id,\n secret: JSON.parse(JSON.stringify(encrypted)),\n disclosed: classified.disclosed,\n } as ClassifiedFormat;\n\n return serialized;\n }\n\n private async classifyAll(data: Outer) {\n // fail fast if there's no value\n if (data === null || data === undefined) {\n return null;\n }\n\n // convert the object to a list format so that all encrypt and decrypt\n // operations are self-similar\n const desconstructed = this.key.deconstruct(data);\n\n // encrypt each value individually\n const classifyTasks = desconstructed.map(async (item) => this.classifyItem(item));\n const classified = await Promise.all(classifyTasks);\n\n return classified;\n }\n\n /** Updates the secret stored by this state.\n * @param configureState a callback that returns an updated decrypted\n * secret state. The callback receives the state's present value as its\n * first argument and the dependencies listed in `options.combinedLatestWith`\n * as its second argument.\n * @param options configures how the update is applied. See {@link StateUpdateOptions}.\n * @returns a promise that resolves with the updated value read from the state.\n * The round-trip encrypts, decrypts, and deserializes the data, producing a new\n * object.\n * @remarks `configureState` must return a JSON-serializable object.\n * If there are properties of your class which are not JSON-serializable,\n * they can be lost when the secret state updates its backing store.\n */\n async update(\n configureState: (state: Outer, dependencies: TCombine) => Outer,\n options: StateUpdateOptions = null,\n ): Promise {\n // read the backing store\n let latestClassified: ClassifiedFormat[];\n let latestCombined: TCombine;\n await this.encryptedState.update((c) => c, {\n shouldUpdate: (latest, combined) => {\n latestClassified = latest;\n latestCombined = combined;\n return false;\n },\n combineLatestWith: options?.combineLatestWith,\n });\n\n // exit early if there's no update to apply\n const latestDeclassified = await this.declassifyAll(latestClassified);\n const shouldUpdate = options?.shouldUpdate?.(latestDeclassified, latestCombined) ?? true;\n if (!shouldUpdate) {\n return latestDeclassified;\n }\n\n // apply the update\n const updatedDeclassified = configureState(latestDeclassified, latestCombined);\n const updatedClassified = await this.classifyAll(updatedDeclassified);\n await this.encryptedState.update(() => updatedClassified);\n\n return updatedDeclassified;\n }\n}\n","import { Jsonify } from \"type-fest\";\n\nimport { EncString } from \"../../platform/models/domain/enc-string\";\nimport { UserId } from \"../../types/guid\";\n\n/** A classification strategy that protects a type's secrets with\n * user-specific information. The specific kind of information is\n * determined by the classification strategy.\n */\nexport abstract class UserEncryptor {\n /** Protects secrets in `value` with a user-specific key.\n * @param secret the object to protect. This object is mutated during encryption.\n * @param userId identifies the user-specific information used to protect\n * the secret.\n * @returns a promise that resolves to a tuple. The tuple's first property contains\n * the encrypted secret and whose second property contains an object w/ disclosed\n * properties.\n * @throws If `value` is `null` or `undefined`, the promise rejects with an error.\n */\n abstract encrypt(secret: Jsonify, userId: UserId): Promise;\n\n /** Combines protected secrets and disclosed data into a type that can be\n * rehydrated into a domain object.\n * @param secret an encrypted JSON payload containing encrypted secrets.\n * @param userId identifies the user-specific information used to protect\n * the secret.\n * @returns a promise that resolves to the raw state. This state *is not* a\n * class. It contains only data that can be round-tripped through JSON,\n * and lacks members such as a prototype or bound functions.\n * @throws If `secret` or `disclosed` is `null` or `undefined`, the promise\n * rejects with an error.\n */\n abstract decrypt(secret: EncString, userId: UserId): Promise>;\n}\n","import { Jsonify } from \"type-fest\";\n\nimport { CryptoService } from \"../../platform/abstractions/crypto.service\";\nimport { EncryptService } from \"../../platform/abstractions/encrypt.service\";\nimport { EncString } from \"../../platform/models/domain/enc-string\";\nimport { UserId } from \"../../types/guid\";\n\nimport { DataPacker } from \"./data-packer.abstraction\";\nimport { UserEncryptor } from \"./user-encryptor.abstraction\";\n\n/** A classification strategy that protects a type's secrets by encrypting them\n * with a `UserKey`\n */\nexport class UserKeyEncryptor extends UserEncryptor {\n /** Instantiates the encryptor\n * @param encryptService protects properties of `Secret`.\n * @param keyService looks up the user key when protecting data.\n * @param dataPacker packs and unpacks data classified as secrets.\n */\n constructor(\n private readonly encryptService: EncryptService,\n private readonly keyService: CryptoService,\n private readonly dataPacker: DataPacker,\n ) {\n super();\n }\n\n /** {@link UserEncryptor.encrypt} */\n async encrypt(secret: Jsonify, userId: UserId): Promise {\n this.assertHasValue(\"secret\", secret);\n this.assertHasValue(\"userId\", userId);\n\n let packed = this.dataPacker.pack(secret);\n\n // encrypt the data and drop the key\n let key = await this.keyService.getUserKey(userId);\n const encrypted = await this.encryptService.encrypt(packed, key);\n packed = null;\n key = null;\n\n return encrypted;\n }\n\n /** {@link UserEncryptor.decrypt} */\n async decrypt(secret: EncString, userId: UserId): Promise> {\n this.assertHasValue(\"secret\", secret);\n this.assertHasValue(\"userId\", userId);\n\n // decrypt the data and drop the key\n let key = await this.keyService.getUserKey(userId);\n let decrypted = await this.encryptService.decryptToUtf8(secret, key);\n key = null;\n\n // reconstruct TFrom's data\n const unpacked = this.dataPacker.unpack(decrypted);\n decrypted = null;\n\n return unpacked;\n }\n\n private assertHasValue(name: string, value: any) {\n if (value === undefined || value === null) {\n throw new Error(`${name} cannot be null or undefined`);\n }\n }\n}\n","import { Observable } from \"rxjs\";\n\nimport { UserId } from \"../../../types/guid\";\nimport { GeneratedCredential, GeneratorCategory } from \"../history\";\n\n/** Tracks the history of password generations.\n * Each user gets their own store.\n */\nexport abstract class GeneratorHistoryService {\n /** Tracks a new credential. When an item with the same `credential` value\n * is found, this method does nothing. When the total number of items exceeds\n * {@link HistoryServiceOptions.maxTotal}, then the oldest items exceeding the total\n * are deleted.\n * @param userId identifies the user storing the credential.\n * @param credential stored by the history service.\n * @param date when the credential was generated. If this is omitted, then the generator\n * uses the date the credential was added to the store instead.\n * @returns a promise that completes with the added credential. If the credential\n * wasn't added, then the promise completes with `null`.\n * @remarks this service is not suitable for use with vault items/ciphers. It models only\n * a history of an individually generated credential, while a vault item's history\n * may contain several credentials that are better modelled as atomic versions of the\n * vault item itself.\n */\n track: (\n userId: UserId,\n credential: string,\n category: GeneratorCategory,\n date?: Date,\n ) => Promise;\n\n /** Removes a matching credential from the history service.\n * @param userId identifies the user taking the credential.\n * @param credential to match in the history service.\n * @returns A promise that completes with the credential read. If the credential wasn't found,\n * the promise completes with null.\n * @remarks this can be used to extract an entry when a credential is stored in the vault.\n */\n take: (userId: UserId, credential: string) => Promise;\n\n /** Deletes a user's credential history.\n * @param userId identifies the user taking the credential.\n * @returns A promise that completes when the history is cleared.\n */\n clear: (userId: UserId) => Promise;\n\n /** Lists all credentials for a user.\n * @param userId identifies the user listing the credential.\n * @remarks This field is eventually consistent with `track` and `take` operations.\n * It is not guaranteed to immediately reflect those changes.\n */\n credentials$: (userId: UserId) => Observable;\n}\n","import { CryptoService } from \"../../../platform/abstractions/crypto.service\";\nimport { EncryptService } from \"../../../platform/abstractions/encrypt.service\";\nimport { EncString } from \"../../../platform/models/domain/enc-string\";\nimport { UserId } from \"../../../types/guid\";\nimport { GeneratedPasswordHistory } from \"../password/generated-password-history\";\n\n/** Strategy that decrypts a password history */\nexport class LegacyPasswordHistoryDecryptor {\n constructor(\n private userId: UserId,\n private cryptoService: CryptoService,\n private encryptService: EncryptService,\n ) {}\n\n /** Decrypts a password history. */\n async decrypt(history: GeneratedPasswordHistory[]): Promise {\n const key = await this.cryptoService.getUserKey(this.userId);\n\n const promises = (history ?? []).map(async (item) => {\n const encrypted = new EncString(item.password);\n const decrypted = await this.encryptService.decryptToUtf8(encrypted, key);\n return new GeneratedPasswordHistory(decrypted, item.date);\n });\n\n const decrypted = await Promise.all(promises);\n\n return decrypted;\n }\n}\n","import { map } from \"rxjs\";\n\nimport { CryptoService } from \"../../../platform/abstractions/crypto.service\";\nimport { EncryptService } from \"../../../platform/abstractions/encrypt.service\";\nimport { SingleUserState, StateProvider } from \"../../../platform/state\";\nimport { UserId } from \"../../../types/guid\";\nimport { BufferedState } from \"../../state/buffered-state\";\nimport { PaddedDataPacker } from \"../../state/padded-data-packer\";\nimport { SecretState } from \"../../state/secret-state\";\nimport { UserKeyEncryptor } from \"../../state/user-key-encryptor\";\nimport { GeneratorHistoryService } from \"../abstractions/generator-history.abstraction\";\nimport { GENERATOR_HISTORY, GENERATOR_HISTORY_BUFFER } from \"../key-definitions\";\n\nimport { GeneratedCredential } from \"./generated-credential\";\nimport { LegacyPasswordHistoryDecryptor } from \"./legacy-password-history-decryptor\";\nimport { GeneratorCategory, HistoryServiceOptions } from \"./options\";\n\nconst OPTIONS_FRAME_SIZE = 2048;\n\n/** Tracks the history of password generations local to a device.\n * {@link GeneratorHistoryService}\n */\nexport class LocalGeneratorHistoryService extends GeneratorHistoryService {\n constructor(\n private readonly encryptService: EncryptService,\n private readonly keyService: CryptoService,\n private readonly stateProvider: StateProvider,\n private readonly options: HistoryServiceOptions = { maxTotal: 100 },\n ) {\n super();\n }\n\n private _credentialStates = new Map>();\n\n /** {@link GeneratorHistoryService.track} */\n track = async (userId: UserId, credential: string, category: GeneratorCategory, date?: Date) => {\n const state = this.getCredentialState(userId);\n let result: GeneratedCredential = null;\n\n await state.update(\n (credentials) => {\n credentials = credentials ?? [];\n\n // add the result\n result = new GeneratedCredential(credential, category, date ?? Date.now());\n credentials.unshift(result);\n\n // trim history\n const removeAt = Math.max(0, this.options.maxTotal);\n credentials.splice(removeAt, Infinity);\n\n return credentials;\n },\n {\n shouldUpdate: (credentials) =>\n !(credentials?.some((f) => f.credential === credential) ?? false),\n },\n );\n\n return result;\n };\n\n /** {@link GeneratorHistoryService.take} */\n take = async (userId: UserId, credential: string) => {\n const state = this.getCredentialState(userId);\n let credentialIndex: number;\n let result: GeneratedCredential = null;\n\n await state.update(\n (credentials) => {\n credentials = credentials ?? [];\n\n [result] = credentials.splice(credentialIndex, 1);\n return credentials;\n },\n {\n shouldUpdate: (credentials) => {\n credentialIndex = credentials?.findIndex((f) => f.credential === credential) ?? -1;\n return credentialIndex >= 0;\n },\n },\n );\n\n return result;\n };\n\n /** {@link GeneratorHistoryService.take} */\n clear = async (userId: UserId) => {\n const state = this.getCredentialState(userId);\n const result = (await state.update(() => null)) ?? [];\n return result;\n };\n\n /** {@link GeneratorHistoryService.credentials$} */\n credentials$ = (userId: UserId) => {\n return this.getCredentialState(userId).state$.pipe(map((credentials) => credentials ?? []));\n };\n\n private getCredentialState(userId: UserId) {\n let state = this._credentialStates.get(userId);\n\n if (!state) {\n state = this.createSecretState(userId);\n this._credentialStates.set(userId, state);\n }\n\n return state;\n }\n\n private createSecretState(userId: UserId): SingleUserState {\n // construct the encryptor\n const packer = new PaddedDataPacker(OPTIONS_FRAME_SIZE);\n const encryptor = new UserKeyEncryptor(this.encryptService, this.keyService, packer);\n\n // construct the durable state\n const state = SecretState.from<\n GeneratedCredential[],\n number,\n GeneratedCredential,\n Record,\n GeneratedCredential\n >(userId, GENERATOR_HISTORY, this.stateProvider, encryptor);\n\n // decryptor is just an algorithm, but it can't run until the key is available;\n // providing it via an observable makes running it early impossible\n const decryptor = new LegacyPasswordHistoryDecryptor(\n userId,\n this.keyService,\n this.encryptService,\n );\n const decryptor$ = this.keyService\n .getInMemoryUserKeyFor$(userId)\n .pipe(map((key) => key && decryptor));\n\n // move data from the old password history once decryptor is available\n const buffer = new BufferedState(\n this.stateProvider,\n GENERATOR_HISTORY_BUFFER,\n state,\n decryptor$,\n );\n\n return buffer;\n }\n}\n","import { GeneratorType } from \"../generator-type\";\nimport { ForwarderId } from \"../username/options\";\nimport { UsernameGeneratorType } from \"../username/options/generator-options\";\n\n/** Stores credential generator UI state. */\n\nexport type GeneratorNavigation = {\n /** The kind of credential being generated.\n * @remarks The legacy generator only supports \"password\" and \"passphrase\".\n * The componentized generator supports all values.\n */\n type?: GeneratorType;\n\n /** When `type === \"username\"`, this stores the username algorithm. */\n username?: UsernameGeneratorType;\n\n /** When `username === \"forwarded\"`, this stores the forwarder implementation. */\n forwarder?: ForwarderId | \"\";\n};\n/** The default options for password generation. */\n\nexport const DefaultGeneratorNavigation: Partial = Object.freeze({\n type: \"password\",\n username: \"word\",\n forwarder: \"\",\n});\n","import { PolicyEvaluator } from \"../abstractions\";\n\nimport { DefaultGeneratorNavigation, GeneratorNavigation } from \"./generator-navigation\";\nimport { GeneratorNavigationPolicy } from \"./generator-navigation-policy\";\n\n/** Enforces policy for generator navigation options.\n */\nexport class GeneratorNavigationEvaluator\n implements PolicyEvaluator\n{\n /** Instantiates the evaluator.\n * @param policy The policy applied by the evaluator. When this conflicts with\n * the defaults, the policy takes precedence.\n */\n constructor(readonly policy: GeneratorNavigationPolicy) {}\n\n /** {@link PolicyEvaluator.policyInEffect} */\n get policyInEffect(): boolean {\n return this.policy?.defaultType ? true : false;\n }\n\n /** Apply policy to the input options.\n * @param options The options to build from. These options are not altered.\n * @returns A new password generation request with policy applied.\n */\n applyPolicy(options: GeneratorNavigation): GeneratorNavigation {\n return options;\n }\n\n /** Ensures internal options consistency.\n * @param options The options to cascade. These options are not altered.\n * @returns A passphrase generation request with cascade applied.\n */\n sanitize(options: GeneratorNavigation): GeneratorNavigation {\n const defaultType = this.policyInEffect\n ? this.policy.defaultType\n : DefaultGeneratorNavigation.type;\n return {\n ...options,\n type: options.type ?? defaultType,\n };\n }\n}\n","import { PolicyType } from \"../../../admin-console/enums\";\n// FIXME: use index.ts imports once policy abstractions and models\n// implement ADR-0002\nimport { Policy } from \"../../../admin-console/models/domain/policy\";\nimport { GeneratorType } from \"../generator-type\";\n\n/** Policy settings affecting password generator navigation */\nexport type GeneratorNavigationPolicy = {\n /** The type of generator that should be shown by default when opening\n * the password generator.\n */\n defaultType?: GeneratorType;\n};\n\n/** Reduces a policy into an accumulator by preferring the password generator\n * type to other generator types.\n * @param acc the accumulator\n * @param policy the policy to reduce\n * @returns the resulting `GeneratorNavigationPolicy`\n */\nexport function preferPassword(\n acc: GeneratorNavigationPolicy,\n policy: Policy,\n): GeneratorNavigationPolicy {\n const isEnabled = policy.type === PolicyType.PasswordGenerator && policy.enabled;\n if (!isEnabled) {\n return acc;\n }\n\n const isOverridable = acc.defaultType !== \"password\" && policy.data.defaultType;\n const result = isOverridable ? { ...acc, defaultType: policy.data.defaultType } : acc;\n\n return result;\n}\n\n/** The default options for password generation policy. */\nexport const DisabledGeneratorNavigationPolicy: GeneratorNavigationPolicy = Object.freeze({\n defaultType: undefined,\n});\n","import { BehaviorSubject, Observable, firstValueFrom, map } from \"rxjs\";\n\nimport { PolicyService } from \"../../../admin-console/abstractions/policy/policy.service.abstraction\";\nimport { PolicyType } from \"../../../admin-console/enums\";\nimport { StateProvider } from \"../../../platform/state\";\nimport { UserId } from \"../../../types/guid\";\nimport { GeneratorNavigationService } from \"../abstractions/generator-navigation.service.abstraction\";\nimport { GENERATOR_SETTINGS } from \"../key-definitions\";\nimport { distinctIfShallowMatch, reduceCollection } from \"../rx-operators\";\n\nimport { DefaultGeneratorNavigation, GeneratorNavigation } from \"./generator-navigation\";\nimport { GeneratorNavigationEvaluator } from \"./generator-navigation-evaluator\";\nimport { DisabledGeneratorNavigationPolicy, preferPassword } from \"./generator-navigation-policy\";\n\nexport class DefaultGeneratorNavigationService implements GeneratorNavigationService {\n /** instantiates the password generator strategy.\n * @param stateProvider provides durable state\n * @param policy provides the policy to enforce\n */\n constructor(\n private readonly stateProvider: StateProvider,\n private readonly policy: PolicyService,\n ) {}\n\n /** An observable monitoring the options saved to disk.\n * The observable updates when the options are saved.\n * @param userId: Identifies the user making the request\n */\n options$(userId: UserId): Observable {\n return this.stateProvider.getUserState$(GENERATOR_SETTINGS, userId);\n }\n\n /** Gets the default options. */\n defaults$(userId: UserId): Observable {\n return new BehaviorSubject({ ...DefaultGeneratorNavigation });\n }\n\n /** An observable monitoring the options used to enforce policy.\n * The observable updates when the policy changes.\n * @param userId: Identifies the user making the request\n */\n evaluator$(userId: UserId) {\n const evaluator$ = this.policy.getAll$(PolicyType.PasswordGenerator, userId).pipe(\n reduceCollection(preferPassword, DisabledGeneratorNavigationPolicy),\n distinctIfShallowMatch(),\n map((policy) => new GeneratorNavigationEvaluator(policy)),\n );\n\n return evaluator$;\n }\n\n /** Enforces the policy on the given options\n * @param userId: Identifies the user making the request\n * @param options the options to enforce the policy on\n * @returns a new instance of the options with the policy enforced\n */\n async enforcePolicy(userId: UserId, options: GeneratorNavigation) {\n const evaluator = await firstValueFrom(this.evaluator$(userId));\n const applied = evaluator.applyPolicy(options);\n const sanitized = evaluator.sanitize(applied);\n return sanitized;\n }\n\n /** Saves the navigation options to disk.\n * @param userId: Identifies the user making the request\n * @param options the options to save\n * @returns a promise that resolves when the options are saved\n */\n async saveOptions(userId: UserId, options: GeneratorNavigation): Promise {\n await this.stateProvider.setUserState(GENERATOR_SETTINGS, options, userId);\n }\n}\n","import { PolicyType } from \"../../../admin-console/enums\";\n// FIXME: use index.ts imports once policy abstractions and models\n// implement ADR-0002\nimport { Policy } from \"../../../admin-console/models/domain/policy\";\n\n/** Policy options enforced during passphrase generation. */\nexport type PassphraseGeneratorPolicy = {\n minNumberWords: number;\n capitalize: boolean;\n includeNumber: boolean;\n};\n\n/** The default options for password generation policy. */\nexport const DisabledPassphraseGeneratorPolicy: PassphraseGeneratorPolicy = Object.freeze({\n minNumberWords: 0,\n capitalize: false,\n includeNumber: false,\n});\n\n/** Reduces a policy into an accumulator by accepting the most restrictive\n * values from each policy.\n * @param acc the accumulator\n * @param policy the policy to reduce\n * @returns the most restrictive values between the policy and accumulator.\n */\nexport function leastPrivilege(\n acc: PassphraseGeneratorPolicy,\n policy: Policy,\n): PassphraseGeneratorPolicy {\n if (policy.type !== PolicyType.PasswordGenerator) {\n return acc;\n }\n\n return {\n minNumberWords: Math.max(acc.minNumberWords, policy.data.minNumberWords ?? acc.minNumberWords),\n capitalize: policy.data.capitalize || acc.capitalize,\n includeNumber: policy.data.includeNumber || acc.includeNumber,\n };\n}\n","import { BehaviorSubject, map, pipe } from \"rxjs\";\n\nimport { GeneratorStrategy } from \"..\";\nimport { PolicyType } from \"../../../admin-console/enums\";\nimport { StateProvider } from \"../../../platform/state\";\nimport { UserId } from \"../../../types/guid\";\nimport { PasswordGenerationServiceAbstraction } from \"../abstractions/password-generation.service.abstraction\";\nimport { PASSPHRASE_SETTINGS } from \"../key-definitions\";\nimport { distinctIfShallowMatch, reduceCollection } from \"../rx-operators\";\n\nimport {\n PassphraseGenerationOptions,\n DefaultPassphraseGenerationOptions,\n} from \"./passphrase-generation-options\";\nimport { PassphraseGeneratorOptionsEvaluator } from \"./passphrase-generator-options-evaluator\";\nimport {\n DisabledPassphraseGeneratorPolicy,\n PassphraseGeneratorPolicy,\n leastPrivilege,\n} from \"./passphrase-generator-policy\";\n\n/** {@link GeneratorStrategy} */\nexport class PassphraseGeneratorStrategy\n implements GeneratorStrategy\n{\n /** instantiates the password generator strategy.\n * @param legacy generates the passphrase\n * @param stateProvider provides durable state\n */\n constructor(\n private legacy: PasswordGenerationServiceAbstraction,\n private stateProvider: StateProvider,\n ) {}\n\n /** {@link GeneratorStrategy.durableState} */\n durableState(id: UserId) {\n return this.stateProvider.getUser(id, PASSPHRASE_SETTINGS);\n }\n\n /** Gets the default options. */\n defaults$(_: UserId) {\n return new BehaviorSubject({ ...DefaultPassphraseGenerationOptions }).asObservable();\n }\n\n /** {@link GeneratorStrategy.policy} */\n get policy() {\n return PolicyType.PasswordGenerator;\n }\n\n /** {@link GeneratorStrategy.toEvaluator} */\n toEvaluator() {\n return pipe(\n reduceCollection(leastPrivilege, DisabledPassphraseGeneratorPolicy),\n distinctIfShallowMatch(),\n map((policy) => new PassphraseGeneratorOptionsEvaluator(policy)),\n );\n }\n\n /** {@link GeneratorStrategy.generate} */\n generate(options: PassphraseGenerationOptions): Promise {\n return this.legacy.generatePassphrase({ ...options, type: \"passphrase\" });\n }\n}\n","import {\n concatMap,\n zip,\n map,\n firstValueFrom,\n combineLatest,\n pairwise,\n of,\n concat,\n Observable,\n filter,\n timeout,\n} from \"rxjs\";\n\nimport { PolicyService } from \"../../admin-console/abstractions/policy/policy.service.abstraction\";\nimport { PasswordGeneratorPolicyOptions } from \"../../admin-console/models/domain/password-generator-policy-options\";\nimport { AccountService } from \"../../auth/abstractions/account.service\";\nimport { CryptoService } from \"../../platform/abstractions/crypto.service\";\nimport { EncryptService } from \"../../platform/abstractions/encrypt.service\";\nimport { StateProvider } from \"../../platform/state\";\n\nimport {\n GeneratorHistoryService,\n GeneratorService,\n GeneratorNavigationService,\n PolicyEvaluator,\n} from \"./abstractions\";\nimport { PasswordGenerationServiceAbstraction } from \"./abstractions/password-generation.service.abstraction\";\nimport { DefaultGeneratorService } from \"./default-generator.service\";\nimport { GeneratedCredential } from \"./history\";\nimport { LocalGeneratorHistoryService } from \"./history/local-generator-history.service\";\nimport { GeneratorNavigation } from \"./navigation\";\nimport { DefaultGeneratorNavigationService } from \"./navigation/default-generator-navigation.service\";\nimport { GeneratorNavigationPolicy } from \"./navigation/generator-navigation-policy\";\nimport {\n PassphraseGenerationOptions,\n PassphraseGeneratorPolicy,\n PassphraseGeneratorStrategy,\n} from \"./passphrase\";\nimport {\n GeneratedPasswordHistory,\n PasswordGenerationOptions,\n PasswordGenerationService,\n PasswordGeneratorOptions,\n PasswordGeneratorPolicy,\n PasswordGeneratorStrategy,\n} from \"./password\";\n\ntype MappedOptions = {\n generator: GeneratorNavigation;\n password: PasswordGenerationOptions;\n passphrase: PassphraseGenerationOptions;\n policyUpdated: boolean;\n};\n\nexport function legacyPasswordGenerationServiceFactory(\n encryptService: EncryptService,\n cryptoService: CryptoService,\n policyService: PolicyService,\n accountService: AccountService,\n stateProvider: StateProvider,\n): PasswordGenerationServiceAbstraction {\n // FIXME: Once the password generation service is replaced with this service\n // in the clients, factor out the deprecated service in its entirety.\n const deprecatedService = new PasswordGenerationService(cryptoService, null, null);\n\n const passwords = new DefaultGeneratorService(\n new PasswordGeneratorStrategy(deprecatedService, stateProvider),\n policyService,\n );\n\n const passphrases = new DefaultGeneratorService(\n new PassphraseGeneratorStrategy(deprecatedService, stateProvider),\n policyService,\n );\n\n const navigation = new DefaultGeneratorNavigationService(stateProvider, policyService);\n\n const history = new LocalGeneratorHistoryService(encryptService, cryptoService, stateProvider);\n\n return new LegacyPasswordGenerationService(\n accountService,\n navigation,\n passwords,\n passphrases,\n history,\n );\n}\n\n/** Adapts the generator 2.0 design to 1.0 angular services. */\nexport class LegacyPasswordGenerationService implements PasswordGenerationServiceAbstraction {\n constructor(\n private readonly accountService: AccountService,\n private readonly navigation: GeneratorNavigationService,\n private readonly passwords: GeneratorService<\n PasswordGenerationOptions,\n PasswordGeneratorPolicy\n >,\n private readonly passphrases: GeneratorService<\n PassphraseGenerationOptions,\n PassphraseGeneratorPolicy\n >,\n private readonly history: GeneratorHistoryService,\n ) {}\n\n generatePassword(options: PasswordGeneratorOptions) {\n if (options.type === \"password\") {\n return this.passwords.generate(options);\n } else {\n return this.passphrases.generate(options);\n }\n }\n\n generatePassphrase(options: PasswordGeneratorOptions) {\n return this.passphrases.generate(options);\n }\n\n private getRawOptions$() {\n // give the typechecker a nudge to avoid \"implicit any\" errors\n type RawOptionsIntermediateType = [\n PasswordGenerationOptions,\n PasswordGenerationOptions,\n [PolicyEvaluator, number],\n PassphraseGenerationOptions,\n PassphraseGenerationOptions,\n [PolicyEvaluator, number],\n GeneratorNavigation,\n GeneratorNavigation,\n [PolicyEvaluator, number],\n ];\n\n function withSequenceNumber(observable$: Observable) {\n return observable$.pipe(map((evaluator, i) => [evaluator, i] as const));\n }\n\n // initial array ensures that destructuring never fails; sequence numbers\n // set to `-1` so that the first update reflects that the policy changed from\n // \"unknown\" to \"whatever was provided by the service\". This needs to be called\n // each time the active user changes or the `concat` will block.\n function initial$() {\n const initial: RawOptionsIntermediateType = [\n null,\n null,\n [null, -1],\n null,\n null,\n [null, -1],\n null,\n null,\n [null, -1],\n ];\n\n return of(initial);\n }\n\n function intermediatePairsToRawOptions([previous, current]: [\n RawOptionsIntermediateType,\n RawOptionsIntermediateType,\n ]) {\n const [, , [, passwordPrevious], , , [, passphrasePrevious], , , [, generatorPrevious]] =\n previous;\n const [\n passwordOptions,\n passwordDefaults,\n [passwordEvaluator, passwordCurrent],\n passphraseOptions,\n passphraseDefaults,\n [passphraseEvaluator, passphraseCurrent],\n generatorOptions,\n generatorDefaults,\n [generatorEvaluator, generatorCurrent],\n ] = current;\n\n // when any of the sequence numbers change, the emission occurs as the result of\n // a policy update\n const policyEmitted =\n passwordPrevious < passwordCurrent ||\n passphrasePrevious < passphraseCurrent ||\n generatorPrevious < generatorCurrent;\n\n const result = [\n passwordOptions,\n passwordDefaults,\n passwordEvaluator,\n passphraseOptions,\n passphraseDefaults,\n passphraseEvaluator,\n generatorOptions,\n generatorDefaults,\n generatorEvaluator,\n policyEmitted,\n ] as const;\n\n return result;\n }\n\n // look upon my works, ye mighty, and despair!\n const rawOptions$ = this.accountService.activeAccount$.pipe(\n concatMap((activeUser) =>\n concat(\n initial$(),\n combineLatest([\n this.passwords.options$(activeUser.id),\n this.passwords.defaults$(activeUser.id),\n withSequenceNumber(this.passwords.evaluator$(activeUser.id)),\n this.passphrases.options$(activeUser.id),\n this.passphrases.defaults$(activeUser.id),\n withSequenceNumber(this.passphrases.evaluator$(activeUser.id)),\n this.navigation.options$(activeUser.id),\n this.navigation.defaults$(activeUser.id),\n withSequenceNumber(this.navigation.evaluator$(activeUser.id)),\n ]),\n ),\n ),\n pairwise(),\n map(intermediatePairsToRawOptions),\n );\n\n return rawOptions$;\n }\n\n getOptions$() {\n const options$ = this.getRawOptions$().pipe(\n map(\n ([\n passwordOptions,\n passwordDefaults,\n passwordEvaluator,\n passphraseOptions,\n passphraseDefaults,\n passphraseEvaluator,\n generatorOptions,\n generatorDefaults,\n generatorEvaluator,\n policyUpdated,\n ]) => {\n const passwordOptionsWithPolicy = passwordEvaluator.applyPolicy(\n passwordOptions ?? passwordDefaults,\n );\n const passphraseOptionsWithPolicy = passphraseEvaluator.applyPolicy(\n passphraseOptions ?? passphraseDefaults,\n );\n const generatorOptionsWithPolicy = generatorEvaluator.applyPolicy(\n generatorOptions ?? generatorDefaults,\n );\n\n const options = this.toPasswordGeneratorOptions({\n password: passwordEvaluator.sanitize(passwordOptionsWithPolicy),\n passphrase: passphraseEvaluator.sanitize(passphraseOptionsWithPolicy),\n generator: generatorEvaluator.sanitize(generatorOptionsWithPolicy),\n policyUpdated,\n });\n\n const policy = Object.assign(\n new PasswordGeneratorPolicyOptions(),\n passwordEvaluator.policy,\n passphraseEvaluator.policy,\n generatorEvaluator.policy,\n );\n\n return [options, policy] as [PasswordGeneratorOptions, PasswordGeneratorPolicyOptions];\n },\n ),\n );\n\n return options$;\n }\n\n async getOptions() {\n return await firstValueFrom(this.getOptions$());\n }\n\n async enforcePasswordGeneratorPoliciesOnOptions(options: PasswordGeneratorOptions) {\n const options$ = this.accountService.activeAccount$.pipe(\n concatMap((activeUser) =>\n zip(\n this.passwords.evaluator$(activeUser.id),\n this.passphrases.evaluator$(activeUser.id),\n this.navigation.evaluator$(activeUser.id),\n ),\n ),\n map(([passwordEvaluator, passphraseEvaluator, navigationEvaluator]) => {\n const policy = Object.assign(\n new PasswordGeneratorPolicyOptions(),\n passwordEvaluator.policy,\n passphraseEvaluator.policy,\n navigationEvaluator.policy,\n );\n\n const navigationApplied = navigationEvaluator.applyPolicy(options);\n const navigationSanitized = {\n ...options,\n ...navigationEvaluator.sanitize(navigationApplied),\n };\n if (options.type === \"password\") {\n const applied = passwordEvaluator.applyPolicy(navigationSanitized);\n const sanitized = passwordEvaluator.sanitize(applied);\n return [sanitized, policy];\n } else {\n const applied = passphraseEvaluator.applyPolicy(navigationSanitized);\n const sanitized = passphraseEvaluator.sanitize(applied);\n return [sanitized, policy];\n }\n }),\n );\n\n const [sanitized, policy] = await firstValueFrom(options$);\n return [\n // callers assume this function updates the options parameter\n Object.assign(options, sanitized),\n policy,\n ] as [PasswordGeneratorOptions, PasswordGeneratorPolicyOptions];\n }\n\n async saveOptions(options: PasswordGeneratorOptions) {\n const stored = this.toStoredOptions(options);\n const activeAccount = await firstValueFrom(this.accountService.activeAccount$);\n\n // generator settings needs to preserve whether password or passphrase is selected,\n // so `navigationOptions` is mutated.\n const navigationOptions$ = zip(\n this.navigation.options$(activeAccount.id),\n this.navigation.defaults$(activeAccount.id),\n ).pipe(map(([options, defaults]) => options ?? defaults));\n let navigationOptions = await firstValueFrom(navigationOptions$);\n navigationOptions = Object.assign(navigationOptions, stored.generator);\n await this.navigation.saveOptions(activeAccount.id, navigationOptions);\n\n // overwrite all other settings with latest values\n await this.passwords.saveOptions(activeAccount.id, stored.password);\n await this.passphrases.saveOptions(activeAccount.id, stored.passphrase);\n }\n\n private toStoredOptions(options: PasswordGeneratorOptions): MappedOptions {\n return {\n generator: {\n type: options.type,\n },\n password: {\n length: options.length,\n minLength: options.minLength,\n ambiguous: options.ambiguous,\n uppercase: options.uppercase,\n minUppercase: options.minUppercase,\n lowercase: options.lowercase,\n minLowercase: options.minLowercase,\n number: options.number,\n minNumber: options.minNumber,\n special: options.special,\n minSpecial: options.minSpecial,\n },\n passphrase: {\n numWords: options.numWords,\n wordSeparator: options.wordSeparator,\n capitalize: options.capitalize,\n includeNumber: options.includeNumber,\n },\n policyUpdated: false,\n };\n }\n\n private toPasswordGeneratorOptions(options: MappedOptions): PasswordGeneratorOptions {\n return {\n type: options.generator.type,\n length: options.password.length,\n minLength: options.password.minLength,\n ambiguous: options.password.ambiguous,\n uppercase: options.password.uppercase,\n minUppercase: options.password.minUppercase,\n lowercase: options.password.lowercase,\n minLowercase: options.password.minLowercase,\n number: options.password.number,\n minNumber: options.password.minNumber,\n special: options.password.special,\n minSpecial: options.password.minSpecial,\n numWords: options.passphrase.numWords,\n wordSeparator: options.passphrase.wordSeparator,\n capitalize: options.passphrase.capitalize,\n includeNumber: options.passphrase.includeNumber,\n policyUpdated: options.policyUpdated,\n };\n }\n\n getHistory() {\n const history = this.accountService.activeAccount$.pipe(\n concatMap((account) => this.history.credentials$(account.id)),\n timeout({\n // timeout after 1 second\n each: 1000,\n with() {\n return [];\n },\n }),\n map((history) => history.map(toGeneratedPasswordHistory)),\n );\n\n return firstValueFrom(history);\n }\n\n async addHistory(password: string) {\n const account = await firstValueFrom(this.accountService.activeAccount$);\n if (account?.id) {\n // legacy service doesn't distinguish credential types\n await this.history.track(account.id, password, \"password\");\n }\n }\n\n clear() {\n const history$ = this.accountService.activeAccount$.pipe(\n filter((account) => !!account?.id),\n concatMap((account) => this.history.clear(account.id)),\n timeout({\n // timeout after 1 second\n each: 1000,\n with() {\n return [];\n },\n }),\n map((history) => history.map(toGeneratedPasswordHistory)),\n );\n\n return firstValueFrom(history$);\n }\n}\n\nfunction toGeneratedPasswordHistory(value: GeneratedCredential) {\n return new GeneratedPasswordHistory(value.credential, value.generationDate.valueOf());\n}\n","import { Observable } from \"rxjs\";\n\nimport { PolicyType } from \"../../../admin-console/enums\";\n// FIXME: use index.ts imports once policy abstractions and models\n// implement ADR-0002\nimport { Policy as AdminPolicy } from \"../../../admin-console/models/domain/policy\";\nimport { SingleUserState } from \"../../../platform/state\";\nimport { UserId } from \"../../../types/guid\";\n\nimport { PolicyEvaluator } from \"./policy-evaluator.abstraction\";\n\n/** Tailors the generator service to generate a specific kind of credentials */\nexport abstract class GeneratorStrategy {\n /** Retrieve application state that persists across locks.\n * @param userId: identifies the user state to retrieve\n * @returns the strategy's durable user state\n */\n durableState: (userId: UserId) => SingleUserState;\n\n /** Gets the default options. */\n defaults$: (userId: UserId) => Observable;\n\n /** Identifies the policy enforced by the generator. */\n policy: PolicyType;\n\n /** Operator function that converts a policy collection observable to a single\n * policy evaluator observable.\n * @param policy The policy being evaluated.\n * @returns the policy evaluator. If `policy` is is `null` or `undefined`,\n * then the evaluator defaults to the application's limits.\n * @throws when the policy's type does not match the generator's policy type.\n */\n toEvaluator: () => (\n source: Observable,\n ) => Observable>;\n\n /** Generates credentials from the given options.\n * @param options The options used to generate the credentials.\n * @returns a promise that resolves to the generated credentials.\n */\n generate: (options: Options) => Promise;\n}\n","import { Observable, map, pipe } from \"rxjs\";\n\nimport { PolicyType } from \"../../../admin-console/enums\";\nimport { CryptoService } from \"../../../platform/abstractions/crypto.service\";\nimport { EncryptService } from \"../../../platform/abstractions/encrypt.service\";\nimport { SingleUserState, StateProvider, UserKeyDefinition } from \"../../../platform/state\";\nimport { UserId } from \"../../../types/guid\";\nimport { BufferedKeyDefinition } from \"../../state/buffered-key-definition\";\nimport { BufferedState } from \"../../state/buffered-state\";\nimport { PaddedDataPacker } from \"../../state/padded-data-packer\";\nimport { SecretClassifier } from \"../../state/secret-classifier\";\nimport { SecretKeyDefinition } from \"../../state/secret-key-definition\";\nimport { SecretState } from \"../../state/secret-state\";\nimport { UserKeyEncryptor } from \"../../state/user-key-encryptor\";\nimport { GeneratorStrategy } from \"../abstractions\";\nimport { DefaultPolicyEvaluator } from \"../default-policy-evaluator\";\nimport { NoPolicy } from \"../no-policy\";\n\nimport { ApiOptions } from \"./options/forwarder-options\";\n\nconst OPTIONS_FRAME_SIZE = 512;\n\n/** An email forwarding service configurable through an API. */\nexport abstract class ForwarderGeneratorStrategy<\n Options extends ApiOptions,\n> extends GeneratorStrategy {\n /** Initializes the generator strategy\n * @param encryptService protects sensitive forwarder options\n * @param keyService looks up the user key when protecting data.\n * @param stateProvider creates the durable state for options storage\n */\n constructor(\n private readonly encryptService: EncryptService,\n private readonly keyService: CryptoService,\n private stateProvider: StateProvider,\n ) {\n super();\n // Uses password generator since there aren't policies\n // specific to usernames.\n this.policy = PolicyType.PasswordGenerator;\n }\n\n private durableStates = new Map>();\n\n /** {@link GeneratorStrategy.durableState} */\n durableState = (userId: UserId) => {\n let state = this.durableStates.get(userId);\n\n if (!state) {\n state = this.createState(userId);\n\n this.durableStates.set(userId, state);\n }\n\n return state;\n };\n\n private createState(userId: UserId): SingleUserState {\n // construct the encryptor\n const packer = new PaddedDataPacker(OPTIONS_FRAME_SIZE);\n const encryptor = new UserKeyEncryptor(this.encryptService, this.keyService, packer);\n\n // always exclude request properties\n const classifier = SecretClassifier.allSecret().exclude(\"website\");\n\n // Derive the secret key definition\n const key = SecretKeyDefinition.value(this.key.stateDefinition, this.key.key, classifier, {\n deserializer: (d) => this.key.deserializer(d),\n cleanupDelayMs: this.key.cleanupDelayMs,\n clearOn: this.key.clearOn,\n });\n\n // the type parameter is explicit because type inference fails for `Omit`\n const secretState = SecretState.from<\n Options,\n void,\n Options,\n Record,\n Omit\n >(userId, key, this.stateProvider, encryptor);\n\n // rollover should occur once the user key is available for decryption\n const canDecrypt$ = this.keyService\n .getInMemoryUserKeyFor$(userId)\n .pipe(map((key) => key !== null));\n const rolloverState = new BufferedState(\n this.stateProvider,\n this.rolloverKey,\n secretState,\n canDecrypt$,\n );\n\n return rolloverState;\n }\n\n /** Gets the default options. */\n abstract defaults$: (userId: UserId) => Observable;\n\n /** Determine where forwarder configuration is stored */\n protected abstract readonly key: UserKeyDefinition;\n\n /** Determine where forwarder rollover configuration is stored */\n protected abstract readonly rolloverKey: BufferedKeyDefinition;\n\n /** {@link GeneratorStrategy.toEvaluator} */\n toEvaluator = () => {\n return pipe(map((_) => new DefaultPolicyEvaluator()));\n };\n}\n","import { ForwarderMetadata } from \"./forwarder-options\";\n\n/** Metadata about an email forwarding service.\n * @remarks This is used to populate the forwarder selection list\n * and to identify forwarding services in error messages.\n */\nexport const Forwarders = Object.freeze({\n /** For https://addy.io/ */\n AddyIo: Object.freeze({\n id: \"anonaddy\",\n name: \"Addy.io\",\n validForSelfHosted: true,\n } as ForwarderMetadata),\n\n /** For https://duckduckgo.com/email/ */\n DuckDuckGo: Object.freeze({\n id: \"duckduckgo\",\n name: \"DuckDuckGo\",\n validForSelfHosted: false,\n } as ForwarderMetadata),\n\n /** For https://www.fastmail.com. */\n Fastmail: Object.freeze({\n id: \"fastmail\",\n name: \"Fastmail\",\n validForSelfHosted: true,\n } as ForwarderMetadata),\n\n /** For https://relay.firefox.com/ */\n FirefoxRelay: Object.freeze({\n id: \"firefoxrelay\",\n name: \"Firefox Relay\",\n validForSelfHosted: false,\n } as ForwarderMetadata),\n\n /** For https://forwardemail.net/ */\n ForwardEmail: Object.freeze({\n id: \"forwardemail\",\n name: \"Forward Email\",\n validForSelfHosted: true,\n } as ForwarderMetadata),\n\n /** For https://simplelogin.io/ */\n SimpleLogin: Object.freeze({\n id: \"simplelogin\",\n name: \"SimpleLogin\",\n validForSelfHosted: true,\n } as ForwarderMetadata),\n});\n","import { BehaviorSubject } from \"rxjs\";\n\nimport { ApiService } from \"../../../../abstractions/api.service\";\nimport { CryptoService } from \"../../../../platform/abstractions/crypto.service\";\nimport { EncryptService } from \"../../../../platform/abstractions/encrypt.service\";\nimport { I18nService } from \"../../../../platform/abstractions/i18n.service\";\nimport { StateProvider } from \"../../../../platform/state\";\nimport { UserId } from \"../../../../types/guid\";\nimport { ADDY_IO_FORWARDER, ADDY_IO_BUFFER } from \"../../key-definitions\";\nimport { ForwarderGeneratorStrategy } from \"../forwarder-generator-strategy\";\nimport { Forwarders } from \"../options/constants\";\nimport { EmailDomainOptions, SelfHostedApiOptions } from \"../options/forwarder-options\";\n\nexport const DefaultAddyIoOptions: SelfHostedApiOptions & EmailDomainOptions = Object.freeze({\n website: null,\n baseUrl: \"https://app.addy.io\",\n token: \"\",\n domain: \"\",\n});\n\n/** Generates a forwarding address for addy.io (formerly anon addy) */\nexport class AddyIoForwarder extends ForwarderGeneratorStrategy<\n SelfHostedApiOptions & EmailDomainOptions\n> {\n /** Instantiates the forwarder\n * @param apiService used for ajax requests to the forwarding service\n * @param i18nService used to look up error strings\n * @param encryptService protects sensitive forwarder options\n * @param keyService looks up the user key when protecting data.\n * @param stateProvider creates the durable state for options storage\n */\n constructor(\n private apiService: ApiService,\n private i18nService: I18nService,\n encryptService: EncryptService,\n keyService: CryptoService,\n stateProvider: StateProvider,\n ) {\n super(encryptService, keyService, stateProvider);\n }\n\n /** {@link ForwarderGeneratorStrategy.key} */\n get key() {\n return ADDY_IO_FORWARDER;\n }\n\n /** {@link ForwarderGeneratorStrategy.rolloverKey} */\n get rolloverKey() {\n return ADDY_IO_BUFFER;\n }\n\n /** {@link ForwarderGeneratorStrategy.defaults$} */\n defaults$ = (userId: UserId) => {\n return new BehaviorSubject({ ...DefaultAddyIoOptions });\n };\n\n /** {@link ForwarderGeneratorStrategy.generate} */\n generate = async (options: SelfHostedApiOptions & EmailDomainOptions) => {\n if (!options.token || options.token === \"\") {\n const error = this.i18nService.t(\"forwaderInvalidToken\", Forwarders.AddyIo.name);\n throw error;\n }\n if (!options.domain || options.domain === \"\") {\n const error = this.i18nService.t(\"forwarderNoDomain\", Forwarders.AddyIo.name);\n throw error;\n }\n if (!options.baseUrl || options.baseUrl === \"\") {\n const error = this.i18nService.t(\"forwarderNoUrl\", Forwarders.AddyIo.name);\n throw error;\n }\n\n let descriptionId = \"forwarderGeneratedByWithWebsite\";\n if (!options.website || options.website === \"\") {\n descriptionId = \"forwarderGeneratedBy\";\n }\n const description = this.i18nService.t(descriptionId, options.website ?? \"\");\n\n const url = options.baseUrl + \"/api/v1/aliases\";\n const request = new Request(url, {\n redirect: \"manual\",\n cache: \"no-store\",\n method: \"POST\",\n headers: new Headers({\n Authorization: \"Bearer \" + options.token,\n \"Content-Type\": \"application/json\",\n \"X-Requested-With\": \"XMLHttpRequest\",\n }),\n body: JSON.stringify({\n domain: options.domain,\n description,\n }),\n });\n\n const response = await this.apiService.nativeFetch(request);\n if (response.status === 200 || response.status === 201) {\n const json = await response.json();\n return json?.data?.email;\n } else if (response.status === 401) {\n const error = this.i18nService.t(\"forwaderInvalidToken\", Forwarders.AddyIo.name);\n throw error;\n } else if (response?.statusText) {\n const error = this.i18nService.t(\n \"forwarderError\",\n Forwarders.AddyIo.name,\n response.statusText,\n );\n throw error;\n } else {\n const error = this.i18nService.t(\"forwarderUnknownError\", Forwarders.AddyIo.name);\n throw error;\n }\n };\n}\n\nexport const DefaultOptions = Object.freeze({\n website: null,\n baseUrl: \"https://app.addy.io\",\n domain: \"\",\n token: \"\",\n});\n","import { BehaviorSubject } from \"rxjs\";\n\nimport { ApiService } from \"../../../../abstractions/api.service\";\nimport { CryptoService } from \"../../../../platform/abstractions/crypto.service\";\nimport { EncryptService } from \"../../../../platform/abstractions/encrypt.service\";\nimport { I18nService } from \"../../../../platform/abstractions/i18n.service\";\nimport { StateProvider } from \"../../../../platform/state\";\nimport { UserId } from \"../../../../types/guid\";\nimport { DUCK_DUCK_GO_FORWARDER, DUCK_DUCK_GO_BUFFER } from \"../../key-definitions\";\nimport { ForwarderGeneratorStrategy } from \"../forwarder-generator-strategy\";\nimport { Forwarders } from \"../options/constants\";\nimport { ApiOptions } from \"../options/forwarder-options\";\n\nexport const DefaultDuckDuckGoOptions: ApiOptions = Object.freeze({\n website: null,\n token: \"\",\n});\n\n/** Generates a forwarding address for DuckDuckGo */\nexport class DuckDuckGoForwarder extends ForwarderGeneratorStrategy {\n /** Instantiates the forwarder\n * @param apiService used for ajax requests to the forwarding service\n * @param i18nService used to look up error strings\n * @param encryptService protects sensitive forwarder options\n * @param keyService looks up the user key when protecting data.\n * @param stateProvider creates the durable state for options storage\n */\n constructor(\n private apiService: ApiService,\n private i18nService: I18nService,\n encryptService: EncryptService,\n keyService: CryptoService,\n stateProvider: StateProvider,\n ) {\n super(encryptService, keyService, stateProvider);\n }\n\n /** {@link ForwarderGeneratorStrategy.key} */\n get key() {\n return DUCK_DUCK_GO_FORWARDER;\n }\n\n /** {@link ForwarderGeneratorStrategy.rolloverKey} */\n get rolloverKey() {\n return DUCK_DUCK_GO_BUFFER;\n }\n\n /** {@link ForwarderGeneratorStrategy.defaults$} */\n defaults$ = (userId: UserId) => {\n return new BehaviorSubject({ ...DefaultDuckDuckGoOptions });\n };\n\n /** {@link ForwarderGeneratorStrategy.generate} */\n generate = async (options: ApiOptions): Promise => {\n if (!options.token || options.token === \"\") {\n const error = this.i18nService.t(\"forwaderInvalidToken\", Forwarders.DuckDuckGo.name);\n throw error;\n }\n\n const url = \"https://quack.duckduckgo.com/api/email/addresses\";\n const request = new Request(url, {\n redirect: \"manual\",\n cache: \"no-store\",\n method: \"POST\",\n headers: new Headers({\n Authorization: \"Bearer \" + options.token,\n \"Content-Type\": \"application/json\",\n }),\n });\n\n const response = await this.apiService.nativeFetch(request);\n if (response.status === 200 || response.status === 201) {\n const json = await response.json();\n if (json.address) {\n return `${json.address}@duck.com`;\n } else {\n const error = this.i18nService.t(\"forwarderUnknownError\", Forwarders.DuckDuckGo.name);\n throw error;\n }\n } else if (response.status === 401) {\n const error = this.i18nService.t(\"forwaderInvalidToken\", Forwarders.DuckDuckGo.name);\n throw error;\n } else {\n const error = this.i18nService.t(\"forwarderUnknownError\", Forwarders.DuckDuckGo.name);\n throw error;\n }\n };\n}\n\nexport const DefaultOptions = Object.freeze({\n website: null,\n token: \"\",\n});\n","import { BehaviorSubject } from \"rxjs\";\n\nimport { ApiService } from \"../../../../abstractions/api.service\";\nimport { CryptoService } from \"../../../../platform/abstractions/crypto.service\";\nimport { EncryptService } from \"../../../../platform/abstractions/encrypt.service\";\nimport { I18nService } from \"../../../../platform/abstractions/i18n.service\";\nimport { StateProvider } from \"../../../../platform/state\";\nimport { UserId } from \"../../../../types/guid\";\nimport { FASTMAIL_FORWARDER, FASTMAIL_BUFFER } from \"../../key-definitions\";\nimport { ForwarderGeneratorStrategy } from \"../forwarder-generator-strategy\";\nimport { Forwarders } from \"../options/constants\";\nimport { EmailPrefixOptions, ApiOptions } from \"../options/forwarder-options\";\n\nexport const DefaultFastmailOptions: ApiOptions & EmailPrefixOptions = Object.freeze({\n website: \"\",\n domain: \"\",\n prefix: \"\",\n token: \"\",\n});\n\n/** Generates a forwarding address for Fastmail */\nexport class FastmailForwarder extends ForwarderGeneratorStrategy {\n /** Instantiates the forwarder\n * @param apiService used for ajax requests to the forwarding service\n * @param i18nService used to look up error strings\n * @param encryptService protects sensitive forwarder options\n * @param keyService looks up the user key when protecting data.\n * @param stateProvider creates the durable state for options storage\n */\n constructor(\n private apiService: ApiService,\n private i18nService: I18nService,\n encryptService: EncryptService,\n keyService: CryptoService,\n stateProvider: StateProvider,\n ) {\n super(encryptService, keyService, stateProvider);\n }\n\n /** {@link ForwarderGeneratorStrategy.key} */\n get key() {\n return FASTMAIL_FORWARDER;\n }\n\n /** {@link ForwarderGeneratorStrategy.defaults$} */\n defaults$ = (userId: UserId) => {\n return new BehaviorSubject({ ...DefaultFastmailOptions });\n };\n\n /** {@link ForwarderGeneratorStrategy.rolloverKey} */\n get rolloverKey() {\n return FASTMAIL_BUFFER;\n }\n\n /** {@link ForwarderGeneratorStrategy.generate} */\n generate = async (options: ApiOptions & EmailPrefixOptions) => {\n if (!options.token || options.token === \"\") {\n const error = this.i18nService.t(\"forwaderInvalidToken\", Forwarders.Fastmail.name);\n throw error;\n }\n\n const accountId = await this.getAccountId(options);\n if (!accountId || accountId === \"\") {\n const error = this.i18nService.t(\"forwarderNoAccountId\", Forwarders.Fastmail.name);\n throw error;\n }\n\n const body = JSON.stringify({\n using: [\"https://www.fastmail.com/dev/maskedemail\", \"urn:ietf:params:jmap:core\"],\n methodCalls: [\n [\n \"MaskedEmail/set\",\n {\n accountId: accountId,\n create: {\n \"new-masked-email\": {\n state: \"enabled\",\n description: \"\",\n forDomain: options.website,\n emailPrefix: options.prefix,\n },\n },\n },\n \"0\",\n ],\n ],\n });\n\n const requestInit: RequestInit = {\n redirect: \"manual\",\n cache: \"no-store\",\n method: \"POST\",\n headers: new Headers({\n Authorization: \"Bearer \" + options.token,\n \"Content-Type\": \"application/json\",\n }),\n body,\n };\n\n const url = \"https://api.fastmail.com/jmap/api/\";\n const request = new Request(url, requestInit);\n\n const response = await this.apiService.nativeFetch(request);\n if (response.status === 200) {\n const json = await response.json();\n if (\n json.methodResponses != null &&\n json.methodResponses.length > 0 &&\n json.methodResponses[0].length > 0\n ) {\n if (json.methodResponses[0][0] === \"MaskedEmail/set\") {\n if (json.methodResponses[0][1]?.created?.[\"new-masked-email\"] != null) {\n return json.methodResponses[0][1]?.created?.[\"new-masked-email\"]?.email;\n }\n if (json.methodResponses[0][1]?.notCreated?.[\"new-masked-email\"] != null) {\n const errorDescription =\n json.methodResponses[0][1]?.notCreated?.[\"new-masked-email\"]?.description;\n const error = this.i18nService.t(\n \"forwarderError\",\n Forwarders.Fastmail.name,\n errorDescription,\n );\n throw error;\n }\n } else if (json.methodResponses[0][0] === \"error\") {\n const errorDescription = json.methodResponses[0][1]?.description;\n const error = this.i18nService.t(\n \"forwarderError\",\n Forwarders.Fastmail.name,\n errorDescription,\n );\n throw error;\n }\n }\n } else if (response.status === 401 || response.status === 403) {\n const error = this.i18nService.t(\"forwaderInvalidToken\", Forwarders.Fastmail.name);\n throw error;\n }\n\n const error = this.i18nService.t(\"forwarderUnknownError\", Forwarders.Fastmail.name);\n throw error;\n };\n\n private async getAccountId(options: ApiOptions): Promise {\n const requestInit: RequestInit = {\n cache: \"no-store\",\n method: \"GET\",\n headers: new Headers({\n Authorization: \"Bearer \" + options.token,\n }),\n };\n const url = \"https://api.fastmail.com/.well-known/jmap\";\n const request = new Request(url, requestInit);\n const response = await this.apiService.nativeFetch(request);\n if (response.status === 200) {\n const json = await response.json();\n if (json.primaryAccounts != null) {\n return json.primaryAccounts[\"https://www.fastmail.com/dev/maskedemail\"];\n }\n }\n return null;\n }\n}\n\nexport const DefaultOptions = Object.freeze({\n website: null,\n domain: \"\",\n prefix: \"\",\n token: \"\",\n});\n","import { BehaviorSubject } from \"rxjs\";\n\nimport { ApiService } from \"../../../../abstractions/api.service\";\nimport { CryptoService } from \"../../../../platform/abstractions/crypto.service\";\nimport { EncryptService } from \"../../../../platform/abstractions/encrypt.service\";\nimport { I18nService } from \"../../../../platform/abstractions/i18n.service\";\nimport { StateProvider } from \"../../../../platform/state\";\nimport { UserId } from \"../../../../types/guid\";\nimport { FIREFOX_RELAY_FORWARDER, FIREFOX_RELAY_BUFFER } from \"../../key-definitions\";\nimport { ForwarderGeneratorStrategy } from \"../forwarder-generator-strategy\";\nimport { Forwarders } from \"../options/constants\";\nimport { ApiOptions } from \"../options/forwarder-options\";\n\nexport const DefaultFirefoxRelayOptions: ApiOptions = Object.freeze({\n website: null,\n token: \"\",\n});\n\n/** Generates a forwarding address for Firefox Relay */\nexport class FirefoxRelayForwarder extends ForwarderGeneratorStrategy {\n /** Instantiates the forwarder\n * @param apiService used for ajax requests to the forwarding service\n * @param i18nService used to look up error strings\n * @param encryptService protects sensitive forwarder options\n * @param keyService looks up the user key when protecting data.\n * @param stateProvider creates the durable state for options storage\n */\n constructor(\n private apiService: ApiService,\n private i18nService: I18nService,\n encryptService: EncryptService,\n keyService: CryptoService,\n stateProvider: StateProvider,\n ) {\n super(encryptService, keyService, stateProvider);\n }\n\n /** {@link ForwarderGeneratorStrategy.key} */\n get key() {\n return FIREFOX_RELAY_FORWARDER;\n }\n\n /** {@link ForwarderGeneratorStrategy.rolloverKey} */\n get rolloverKey() {\n return FIREFOX_RELAY_BUFFER;\n }\n\n /** {@link ForwarderGeneratorStrategy.defaults$} */\n defaults$ = (userId: UserId) => {\n return new BehaviorSubject({ ...DefaultFirefoxRelayOptions });\n };\n\n /** {@link ForwarderGeneratorStrategy.generate} */\n generate = async (options: ApiOptions) => {\n if (!options.token || options.token === \"\") {\n const error = this.i18nService.t(\"forwaderInvalidToken\", Forwarders.FirefoxRelay.name);\n throw error;\n }\n\n const url = \"https://relay.firefox.com/api/v1/relayaddresses/\";\n\n let descriptionId = \"forwarderGeneratedByWithWebsite\";\n if (!options.website || options.website === \"\") {\n descriptionId = \"forwarderGeneratedBy\";\n }\n const description = this.i18nService.t(descriptionId, options.website ?? \"\");\n\n const request = new Request(url, {\n redirect: \"manual\",\n cache: \"no-store\",\n method: \"POST\",\n headers: new Headers({\n Authorization: \"Token \" + options.token,\n \"Content-Type\": \"application/json\",\n }),\n body: JSON.stringify({\n enabled: true,\n generated_for: options.website,\n description,\n }),\n });\n\n const response = await this.apiService.nativeFetch(request);\n if (response.status === 401) {\n const error = this.i18nService.t(\"forwaderInvalidToken\", Forwarders.FirefoxRelay.name);\n throw error;\n } else if (response.status === 200 || response.status === 201) {\n const json = await response.json();\n return json.full_address;\n } else {\n const error = this.i18nService.t(\"forwarderUnknownError\", Forwarders.FirefoxRelay.name);\n throw error;\n }\n };\n}\n\nexport const DefaultOptions = Object.freeze({\n website: null,\n token: \"\",\n});\n","import { BehaviorSubject } from \"rxjs\";\n\nimport { ApiService } from \"../../../../abstractions/api.service\";\nimport { CryptoService } from \"../../../../platform/abstractions/crypto.service\";\nimport { EncryptService } from \"../../../../platform/abstractions/encrypt.service\";\nimport { I18nService } from \"../../../../platform/abstractions/i18n.service\";\nimport { Utils } from \"../../../../platform/misc/utils\";\nimport { StateProvider } from \"../../../../platform/state\";\nimport { UserId } from \"../../../../types/guid\";\nimport { FORWARD_EMAIL_FORWARDER, FORWARD_EMAIL_BUFFER } from \"../../key-definitions\";\nimport { ForwarderGeneratorStrategy } from \"../forwarder-generator-strategy\";\nimport { Forwarders } from \"../options/constants\";\nimport { EmailDomainOptions, ApiOptions } from \"../options/forwarder-options\";\n\nexport const DefaultForwardEmailOptions: ApiOptions & EmailDomainOptions = Object.freeze({\n website: null,\n token: \"\",\n domain: \"\",\n});\n\n/** Generates a forwarding address for Forward Email */\nexport class ForwardEmailForwarder extends ForwarderGeneratorStrategy<\n ApiOptions & EmailDomainOptions\n> {\n /** Instantiates the forwarder\n * @param apiService used for ajax requests to the forwarding service\n * @param i18nService used to look up error strings\n * @param encryptService protects sensitive forwarder options\n * @param keyService looks up the user key when protecting data.\n * @param stateProvider creates the durable state for options storage\n */\n constructor(\n private apiService: ApiService,\n private i18nService: I18nService,\n encryptService: EncryptService,\n keyService: CryptoService,\n stateProvider: StateProvider,\n ) {\n super(encryptService, keyService, stateProvider);\n }\n\n /** {@link ForwarderGeneratorStrategy.key} */\n get key() {\n return FORWARD_EMAIL_FORWARDER;\n }\n\n /** {@link ForwarderGeneratorStrategy.defaults$} */\n defaults$ = (userId: UserId) => {\n return new BehaviorSubject({ ...DefaultForwardEmailOptions });\n };\n\n /** {@link ForwarderGeneratorStrategy.rolloverKey} */\n get rolloverKey() {\n return FORWARD_EMAIL_BUFFER;\n }\n\n /** {@link ForwarderGeneratorStrategy.generate} */\n generate = async (options: ApiOptions & EmailDomainOptions) => {\n if (!options.token || options.token === \"\") {\n const error = this.i18nService.t(\"forwaderInvalidToken\", Forwarders.ForwardEmail.name);\n throw error;\n }\n if (!options.domain || options.domain === \"\") {\n const error = this.i18nService.t(\"forwarderNoDomain\", Forwarders.ForwardEmail.name);\n throw error;\n }\n\n const url = `https://api.forwardemail.net/v1/domains/${options.domain}/aliases`;\n\n let descriptionId = \"forwarderGeneratedByWithWebsite\";\n if (!options.website || options.website === \"\") {\n descriptionId = \"forwarderGeneratedBy\";\n }\n const description = this.i18nService.t(descriptionId, options.website ?? \"\");\n\n const request = new Request(url, {\n redirect: \"manual\",\n cache: \"no-store\",\n method: \"POST\",\n headers: new Headers({\n Authorization: \"Basic \" + Utils.fromUtf8ToB64(options.token + \":\"),\n \"Content-Type\": \"application/json\",\n }),\n body: JSON.stringify({\n labels: options.website,\n description,\n }),\n });\n\n const response = await this.apiService.nativeFetch(request);\n const json = await response.json();\n\n if (response.status === 401) {\n const messageKey =\n \"message\" in json ? \"forwaderInvalidTokenWithMessage\" : \"forwaderInvalidToken\";\n const error = this.i18nService.t(messageKey, Forwarders.ForwardEmail.name, json.message);\n throw error;\n } else if (response.status === 200 || response.status === 201) {\n const { name, domain } = await response.json();\n const domainPart = domain?.name || options.domain;\n return `${name}@${domainPart}`;\n } else if (json?.message) {\n const error = this.i18nService.t(\n \"forwarderError\",\n Forwarders.ForwardEmail.name,\n json.message,\n );\n throw error;\n } else if (json?.error) {\n const error = this.i18nService.t(\"forwarderError\", Forwarders.ForwardEmail.name, json.error);\n throw error;\n } else {\n const error = this.i18nService.t(\"forwarderUnknownError\", Forwarders.ForwardEmail.name);\n throw error;\n }\n };\n}\n\nexport const DefaultOptions = Object.freeze({\n website: null,\n token: \"\",\n domain: \"\",\n});\n","import { BehaviorSubject } from \"rxjs\";\n\nimport { ApiService } from \"../../../../abstractions/api.service\";\nimport { CryptoService } from \"../../../../platform/abstractions/crypto.service\";\nimport { EncryptService } from \"../../../../platform/abstractions/encrypt.service\";\nimport { I18nService } from \"../../../../platform/abstractions/i18n.service\";\nimport { StateProvider } from \"../../../../platform/state\";\nimport { UserId } from \"../../../../types/guid\";\nimport { SIMPLE_LOGIN_FORWARDER, SIMPLE_LOGIN_BUFFER } from \"../../key-definitions\";\nimport { ForwarderGeneratorStrategy } from \"../forwarder-generator-strategy\";\nimport { Forwarders } from \"../options/constants\";\nimport { SelfHostedApiOptions } from \"../options/forwarder-options\";\n\nexport const DefaultSimpleLoginOptions: SelfHostedApiOptions = Object.freeze({\n website: null,\n baseUrl: \"https://app.simplelogin.io\",\n token: \"\",\n});\n\n/** Generates a forwarding address for Simple Login */\nexport class SimpleLoginForwarder extends ForwarderGeneratorStrategy {\n /** Instantiates the forwarder\n * @param apiService used for ajax requests to the forwarding service\n * @param i18nService used to look up error strings\n * @param encryptService protects sensitive forwarder options\n * @param keyService looks up the user key when protecting data.\n * @param stateProvider creates the durable state for options storage\n */\n constructor(\n private apiService: ApiService,\n private i18nService: I18nService,\n encryptService: EncryptService,\n keyService: CryptoService,\n stateProvider: StateProvider,\n ) {\n super(encryptService, keyService, stateProvider);\n }\n\n /** {@link ForwarderGeneratorStrategy.key} */\n get key() {\n return SIMPLE_LOGIN_FORWARDER;\n }\n\n /** {@link ForwarderGeneratorStrategy.rolloverKey} */\n get rolloverKey() {\n return SIMPLE_LOGIN_BUFFER;\n }\n\n /** {@link ForwarderGeneratorStrategy.defaults$} */\n defaults$ = (userId: UserId) => {\n return new BehaviorSubject({ ...DefaultSimpleLoginOptions });\n };\n\n /** {@link ForwarderGeneratorStrategy.generate} */\n generate = async (options: SelfHostedApiOptions) => {\n if (!options.token || options.token === \"\") {\n const error = this.i18nService.t(\"forwaderInvalidToken\", Forwarders.SimpleLogin.name);\n throw error;\n }\n if (!options.baseUrl || options.baseUrl === \"\") {\n const error = this.i18nService.t(\"forwarderNoUrl\", Forwarders.SimpleLogin.name);\n throw error;\n }\n\n let url = options.baseUrl + \"/api/alias/random/new\";\n let noteId = \"forwarderGeneratedBy\";\n if (options.website && options.website !== \"\") {\n url += \"?hostname=\" + options.website;\n noteId = \"forwarderGeneratedByWithWebsite\";\n }\n const note = this.i18nService.t(noteId, options.website ?? \"\");\n\n const request = new Request(url, {\n redirect: \"manual\",\n cache: \"no-store\",\n method: \"POST\",\n headers: new Headers({\n Authentication: options.token,\n \"Content-Type\": \"application/json\",\n }),\n body: JSON.stringify({ note }),\n });\n\n const response = await this.apiService.nativeFetch(request);\n if (response.status === 401) {\n const error = this.i18nService.t(\"forwaderInvalidToken\", Forwarders.SimpleLogin.name);\n throw error;\n }\n\n const json = await response.json();\n if (response.status === 200 || response.status === 201) {\n return json.alias;\n } else if (json?.error) {\n const error = this.i18nService.t(\"forwarderError\", Forwarders.SimpleLogin.name, json.error);\n throw error;\n } else {\n const error = this.i18nService.t(\"forwarderUnknownError\", Forwarders.SimpleLogin.name);\n throw error;\n }\n };\n}\n\nexport const DefaultOptions = Object.freeze({\n website: null,\n baseUrl: \"https://app.simplelogin.io\",\n token: \"\",\n});\n","import { zip, firstValueFrom, map, concatMap, combineLatest } from \"rxjs\";\n\nimport { ApiService } from \"../../abstractions/api.service\";\nimport { PolicyService } from \"../../admin-console/abstractions/policy/policy.service.abstraction\";\nimport { AccountService } from \"../../auth/abstractions/account.service\";\nimport { CryptoService } from \"../../platform/abstractions/crypto.service\";\nimport { EncryptService } from \"../../platform/abstractions/encrypt.service\";\nimport { I18nService } from \"../../platform/abstractions/i18n.service\";\nimport { StateProvider } from \"../../platform/state\";\n\nimport { GeneratorService, GeneratorNavigationService } from \"./abstractions\";\nimport { UsernameGenerationServiceAbstraction } from \"./abstractions/username-generation.service.abstraction\";\nimport { DefaultGeneratorService } from \"./default-generator.service\";\nimport { DefaultGeneratorNavigationService } from \"./navigation/default-generator-navigation.service\";\nimport { GeneratorNavigation } from \"./navigation/generator-navigation\";\nimport { NoPolicy } from \"./no-policy\";\nimport {\n CatchallGeneratorStrategy,\n SubaddressGeneratorStrategy,\n EffUsernameGeneratorStrategy,\n} from \"./username\";\nimport { CatchallGenerationOptions } from \"./username/catchall-generator-options\";\nimport { EffUsernameGenerationOptions } from \"./username/eff-username-generator-options\";\nimport { AddyIoForwarder } from \"./username/forwarders/addy-io\";\nimport { DuckDuckGoForwarder } from \"./username/forwarders/duck-duck-go\";\nimport { FastmailForwarder } from \"./username/forwarders/fastmail\";\nimport { FirefoxRelayForwarder } from \"./username/forwarders/firefox-relay\";\nimport { ForwardEmailForwarder } from \"./username/forwarders/forward-email\";\nimport { SimpleLoginForwarder } from \"./username/forwarders/simple-login\";\nimport { Forwarders } from \"./username/options/constants\";\nimport {\n ApiOptions,\n EmailDomainOptions,\n EmailPrefixOptions,\n RequestOptions,\n SelfHostedApiOptions,\n} from \"./username/options/forwarder-options\";\nimport { SubaddressGenerationOptions } from \"./username/subaddress-generator-options\";\nimport { UsernameGeneratorOptions } from \"./username/username-generation-options\";\nimport { UsernameGenerationService } from \"./username/username-generation.service\";\n\ntype MappedOptions = {\n generator: GeneratorNavigation;\n algorithms: {\n catchall: CatchallGenerationOptions;\n effUsername: EffUsernameGenerationOptions;\n subaddress: SubaddressGenerationOptions;\n };\n forwarders: {\n addyIo: SelfHostedApiOptions & EmailDomainOptions & RequestOptions;\n duckDuckGo: ApiOptions & RequestOptions;\n fastmail: ApiOptions & EmailPrefixOptions & RequestOptions;\n firefoxRelay: ApiOptions & RequestOptions;\n forwardEmail: ApiOptions & EmailDomainOptions & RequestOptions;\n simpleLogin: SelfHostedApiOptions & RequestOptions;\n };\n};\n\nexport function legacyUsernameGenerationServiceFactory(\n apiService: ApiService,\n i18nService: I18nService,\n cryptoService: CryptoService,\n encryptService: EncryptService,\n policyService: PolicyService,\n accountService: AccountService,\n stateProvider: StateProvider,\n): UsernameGenerationServiceAbstraction {\n // FIXME: Once the username generation service is replaced with this service\n // in the clients, factor out the deprecated service in its entirety.\n const deprecatedService = new UsernameGenerationService(cryptoService, null, null);\n\n const effUsername = new DefaultGeneratorService(\n new EffUsernameGeneratorStrategy(deprecatedService, stateProvider),\n policyService,\n );\n\n const subaddress = new DefaultGeneratorService(\n new SubaddressGeneratorStrategy(deprecatedService, stateProvider),\n policyService,\n );\n\n const catchall = new DefaultGeneratorService(\n new CatchallGeneratorStrategy(deprecatedService, stateProvider),\n policyService,\n );\n\n const addyIo = new DefaultGeneratorService(\n new AddyIoForwarder(apiService, i18nService, encryptService, cryptoService, stateProvider),\n policyService,\n );\n\n const duckDuckGo = new DefaultGeneratorService(\n new DuckDuckGoForwarder(apiService, i18nService, encryptService, cryptoService, stateProvider),\n policyService,\n );\n\n const fastmail = new DefaultGeneratorService(\n new FastmailForwarder(apiService, i18nService, encryptService, cryptoService, stateProvider),\n policyService,\n );\n\n const firefoxRelay = new DefaultGeneratorService(\n new FirefoxRelayForwarder(\n apiService,\n i18nService,\n encryptService,\n cryptoService,\n stateProvider,\n ),\n policyService,\n );\n\n const forwardEmail = new DefaultGeneratorService(\n new ForwardEmailForwarder(\n apiService,\n i18nService,\n encryptService,\n cryptoService,\n stateProvider,\n ),\n policyService,\n );\n\n const simpleLogin = new DefaultGeneratorService(\n new SimpleLoginForwarder(apiService, i18nService, encryptService, cryptoService, stateProvider),\n policyService,\n );\n\n const navigation = new DefaultGeneratorNavigationService(stateProvider, policyService);\n\n return new LegacyUsernameGenerationService(\n accountService,\n navigation,\n catchall,\n effUsername,\n subaddress,\n addyIo,\n duckDuckGo,\n fastmail,\n firefoxRelay,\n forwardEmail,\n simpleLogin,\n );\n}\n\n/** Adapts the generator 2.0 design to 1.0 angular services. */\nexport class LegacyUsernameGenerationService implements UsernameGenerationServiceAbstraction {\n constructor(\n private readonly accountService: AccountService,\n private readonly navigation: GeneratorNavigationService,\n private readonly catchall: GeneratorService,\n private readonly effUsername: GeneratorService,\n private readonly subaddress: GeneratorService,\n private readonly addyIo: GeneratorService,\n private readonly duckDuckGo: GeneratorService,\n private readonly fastmail: GeneratorService,\n private readonly firefoxRelay: GeneratorService,\n private readonly forwardEmail: GeneratorService,\n private readonly simpleLogin: GeneratorService,\n ) {}\n\n generateUsername(options: UsernameGeneratorOptions) {\n if (options.type === \"catchall\") {\n return this.generateCatchall(options);\n } else if (options.type === \"subaddress\") {\n return this.generateSubaddress(options);\n } else if (options.type === \"forwarded\") {\n return this.generateForwarded(options);\n } else {\n return this.generateWord(options);\n }\n }\n\n generateWord(options: UsernameGeneratorOptions) {\n return this.effUsername.generate(options);\n }\n\n generateSubaddress(options: UsernameGeneratorOptions) {\n return this.subaddress.generate(options);\n }\n\n generateCatchall(options: UsernameGeneratorOptions) {\n return this.catchall.generate(options);\n }\n\n generateForwarded(options: UsernameGeneratorOptions) {\n if (!options.forwardedService) {\n return null;\n }\n\n const stored = this.toStoredOptions(options);\n switch (options.forwardedService) {\n case Forwarders.AddyIo.id:\n return this.addyIo.generate(stored.forwarders.addyIo);\n case Forwarders.DuckDuckGo.id:\n return this.duckDuckGo.generate(stored.forwarders.duckDuckGo);\n case Forwarders.Fastmail.id:\n return this.fastmail.generate(stored.forwarders.fastmail);\n case Forwarders.FirefoxRelay.id:\n return this.firefoxRelay.generate(stored.forwarders.firefoxRelay);\n case Forwarders.ForwardEmail.id:\n return this.forwardEmail.generate(stored.forwarders.forwardEmail);\n case Forwarders.SimpleLogin.id:\n return this.simpleLogin.generate(stored.forwarders.simpleLogin);\n }\n }\n\n getOptions$() {\n // look upon my works, ye mighty, and despair!\n const options$ = this.accountService.activeAccount$.pipe(\n concatMap((account) =>\n combineLatest([\n this.navigation.options$(account.id),\n this.navigation.defaults$(account.id),\n this.catchall.options$(account.id),\n this.catchall.defaults$(account.id),\n this.effUsername.options$(account.id),\n this.effUsername.defaults$(account.id),\n this.subaddress.options$(account.id),\n this.subaddress.defaults$(account.id),\n this.addyIo.options$(account.id),\n this.addyIo.defaults$(account.id),\n this.duckDuckGo.options$(account.id),\n this.duckDuckGo.defaults$(account.id),\n this.fastmail.options$(account.id),\n this.fastmail.defaults$(account.id),\n this.firefoxRelay.options$(account.id),\n this.firefoxRelay.defaults$(account.id),\n this.forwardEmail.options$(account.id),\n this.forwardEmail.defaults$(account.id),\n this.simpleLogin.options$(account.id),\n this.simpleLogin.defaults$(account.id),\n ]),\n ),\n map(\n ([\n generatorOptions,\n generatorDefaults,\n catchallOptions,\n catchallDefaults,\n effUsernameOptions,\n effUsernameDefaults,\n subaddressOptions,\n subaddressDefaults,\n addyIoOptions,\n addyIoDefaults,\n duckDuckGoOptions,\n duckDuckGoDefaults,\n fastmailOptions,\n fastmailDefaults,\n firefoxRelayOptions,\n firefoxRelayDefaults,\n forwardEmailOptions,\n forwardEmailDefaults,\n simpleLoginOptions,\n simpleLoginDefaults,\n ]) =>\n this.toUsernameOptions({\n generator: generatorOptions ?? generatorDefaults,\n algorithms: {\n catchall: catchallOptions ?? catchallDefaults,\n effUsername: effUsernameOptions ?? effUsernameDefaults,\n subaddress: subaddressOptions ?? subaddressDefaults,\n },\n forwarders: {\n addyIo: addyIoOptions ?? addyIoDefaults,\n duckDuckGo: duckDuckGoOptions ?? duckDuckGoDefaults,\n fastmail: fastmailOptions ?? fastmailDefaults,\n firefoxRelay: firefoxRelayOptions ?? firefoxRelayDefaults,\n forwardEmail: forwardEmailOptions ?? forwardEmailDefaults,\n simpleLogin: simpleLoginOptions ?? simpleLoginDefaults,\n },\n }),\n ),\n );\n\n return options$;\n }\n\n getOptions() {\n return firstValueFrom(this.getOptions$());\n }\n\n async saveOptions(options: UsernameGeneratorOptions) {\n const stored = this.toStoredOptions(options);\n const activeAccount = await firstValueFrom(this.accountService.activeAccount$);\n\n // generator settings needs to preserve whether password or passphrase is selected,\n // so `navigationOptions` is mutated.\n const navigationOptions$ = zip(\n this.navigation.options$(activeAccount.id),\n this.navigation.defaults$(activeAccount.id),\n ).pipe(map(([options, defaults]) => options ?? defaults));\n let navigationOptions = await firstValueFrom(navigationOptions$);\n navigationOptions = Object.assign(navigationOptions, stored.generator);\n await this.navigation.saveOptions(activeAccount.id, navigationOptions);\n\n // overwrite all other settings with latest values\n await Promise.all([\n this.catchall.saveOptions(activeAccount.id, stored.algorithms.catchall),\n this.effUsername.saveOptions(activeAccount.id, stored.algorithms.effUsername),\n this.subaddress.saveOptions(activeAccount.id, stored.algorithms.subaddress),\n this.addyIo.saveOptions(activeAccount.id, stored.forwarders.addyIo),\n this.duckDuckGo.saveOptions(activeAccount.id, stored.forwarders.duckDuckGo),\n this.fastmail.saveOptions(activeAccount.id, stored.forwarders.fastmail),\n this.firefoxRelay.saveOptions(activeAccount.id, stored.forwarders.firefoxRelay),\n this.forwardEmail.saveOptions(activeAccount.id, stored.forwarders.forwardEmail),\n this.simpleLogin.saveOptions(activeAccount.id, stored.forwarders.simpleLogin),\n ]);\n }\n\n private toStoredOptions(options: UsernameGeneratorOptions) {\n const forwarders = {\n addyIo: {\n baseUrl: options.forwardedAnonAddyBaseUrl,\n token: options.forwardedAnonAddyApiToken,\n domain: options.forwardedAnonAddyDomain,\n website: options.website,\n },\n duckDuckGo: {\n token: options.forwardedDuckDuckGoToken,\n website: options.website,\n },\n fastmail: {\n token: options.forwardedFastmailApiToken,\n website: options.website,\n },\n firefoxRelay: {\n token: options.forwardedFirefoxApiToken,\n website: options.website,\n },\n forwardEmail: {\n token: options.forwardedForwardEmailApiToken,\n domain: options.forwardedForwardEmailDomain,\n website: options.website,\n },\n simpleLogin: {\n token: options.forwardedSimpleLoginApiKey,\n baseUrl: options.forwardedSimpleLoginBaseUrl,\n website: options.website,\n },\n };\n\n const generator = {\n username: options.type,\n forwarder: options.forwardedService,\n };\n\n const algorithms = {\n effUsername: {\n wordCapitalize: options.wordCapitalize,\n wordIncludeNumber: options.wordIncludeNumber,\n website: options.website,\n },\n subaddress: {\n subaddressType: options.subaddressType,\n subaddressEmail: options.subaddressEmail,\n website: options.website,\n },\n catchall: {\n catchallType: options.catchallType,\n catchallDomain: options.catchallDomain,\n website: options.website,\n },\n };\n\n return { generator, algorithms, forwarders } as MappedOptions;\n }\n\n private toUsernameOptions(options: MappedOptions) {\n return {\n type: options.generator.username,\n wordCapitalize: options.algorithms.effUsername.wordCapitalize,\n wordIncludeNumber: options.algorithms.effUsername.wordIncludeNumber,\n subaddressType: options.algorithms.subaddress.subaddressType,\n subaddressEmail: options.algorithms.subaddress.subaddressEmail,\n catchallType: options.algorithms.catchall.catchallType,\n catchallDomain: options.algorithms.catchall.catchallDomain,\n forwardedService: options.generator.forwarder,\n forwardedAnonAddyApiToken: options.forwarders.addyIo.token,\n forwardedAnonAddyDomain: options.forwarders.addyIo.domain,\n forwardedAnonAddyBaseUrl: options.forwarders.addyIo.baseUrl,\n forwardedDuckDuckGoToken: options.forwarders.duckDuckGo.token,\n forwardedFirefoxApiToken: options.forwarders.firefoxRelay.token,\n forwardedFastmailApiToken: options.forwarders.fastmail.token,\n forwardedForwardEmailApiToken: options.forwarders.forwardEmail.token,\n forwardedForwardEmailDomain: options.forwarders.forwardEmail.domain,\n forwardedSimpleLoginApiKey: options.forwarders.simpleLogin.token,\n forwardedSimpleLoginBaseUrl: options.forwarders.simpleLogin.baseUrl,\n } as UsernameGeneratorOptions;\n }\n}\n","import { SendFileApi } from \"../api/send-file.api\";\n\nexport class SendFileData {\n id: string;\n fileName: string;\n size: string;\n sizeName: string;\n\n constructor(data?: SendFileApi) {\n if (data == null) {\n return;\n }\n\n this.id = data.id;\n this.fileName = data.fileName;\n this.size = data.size;\n this.sizeName = data.sizeName;\n }\n}\n","import { SendTextApi } from \"../api/send-text.api\";\n\nexport class SendTextData {\n text: string;\n hidden: boolean;\n\n constructor(data?: SendTextApi) {\n if (data == null) {\n return;\n }\n\n this.text = data.text;\n this.hidden = data.hidden;\n }\n}\n","import { SendType } from \"../../enums/send-type\";\nimport { SendResponse } from \"../response/send.response\";\n\nimport { SendFileData } from \"./send-file.data\";\nimport { SendTextData } from \"./send-text.data\";\n\nexport class SendData {\n id: string;\n accessId: string;\n type: SendType;\n name: string;\n notes: string;\n file: SendFileData;\n text: SendTextData;\n key: string;\n maxAccessCount?: number;\n accessCount: number;\n revisionDate: string;\n expirationDate: string;\n deletionDate: string;\n password: string;\n disabled: boolean;\n hideEmail: boolean;\n\n constructor(response?: SendResponse) {\n if (response == null) {\n return;\n }\n\n this.id = response.id;\n this.accessId = response.accessId;\n this.type = response.type;\n this.name = response.name;\n this.notes = response.notes;\n this.key = response.key;\n this.maxAccessCount = response.maxAccessCount;\n this.accessCount = response.accessCount;\n this.revisionDate = response.revisionDate;\n this.expirationDate = response.expirationDate;\n this.deletionDate = response.deletionDate;\n this.password = response.password;\n this.disabled = response.disable;\n this.hideEmail = response.hideEmail;\n\n switch (this.type) {\n case SendType.Text:\n this.text = new SendTextData(response.text);\n break;\n case SendType.File:\n this.file = new SendFileData(response.file);\n break;\n default:\n break;\n }\n }\n}\n","import { SendType } from \"../../enums/send-type\";\nimport { SendFileApi } from \"../api/send-file.api\";\nimport { SendTextApi } from \"../api/send-text.api\";\nimport { Send } from \"../domain/send\";\n\nexport class SendRequest {\n type: SendType;\n fileLength?: number;\n name: string;\n notes: string;\n key: string;\n maxAccessCount?: number;\n expirationDate: string;\n deletionDate: string;\n text: SendTextApi;\n file: SendFileApi;\n password: string;\n disabled: boolean;\n hideEmail: boolean;\n\n constructor(send: Send, fileLength?: number) {\n this.type = send.type;\n this.fileLength = fileLength;\n this.name = send.name ? send.name.encryptedString : null;\n this.notes = send.notes ? send.notes.encryptedString : null;\n this.maxAccessCount = send.maxAccessCount;\n this.expirationDate = send.expirationDate != null ? send.expirationDate.toISOString() : null;\n this.deletionDate = send.deletionDate != null ? send.deletionDate.toISOString() : null;\n this.key = send.key != null ? send.key.encryptedString : null;\n this.password = send.password;\n this.disabled = send.disabled;\n this.hideEmail = send.hideEmail;\n\n switch (this.type) {\n case SendType.Text:\n this.text = new SendTextApi();\n this.text.text = send.text.text != null ? send.text.text.encryptedString : null;\n this.text.hidden = send.text.hidden;\n break;\n case SendType.File:\n this.file = new SendFileApi();\n this.file.fileName = send.file.fileName != null ? send.file.fileName.encryptedString : null;\n break;\n default:\n break;\n }\n }\n}\n","import { BaseResponse } from \"../../../../models/response/base.response\";\nimport { SendType } from \"../../enums/send-type\";\nimport { SendFileApi } from \"../api/send-file.api\";\nimport { SendTextApi } from \"../api/send-text.api\";\n\nexport class SendAccessResponse extends BaseResponse {\n id: string;\n type: SendType;\n name: string;\n file: SendFileApi;\n text: SendTextApi;\n expirationDate: Date;\n creatorIdentifier: string;\n\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.type = this.getResponseProperty(\"Type\");\n this.name = this.getResponseProperty(\"Name\");\n\n const text = this.getResponseProperty(\"Text\");\n if (text != null) {\n this.text = new SendTextApi(text);\n }\n\n const file = this.getResponseProperty(\"File\");\n if (file != null) {\n this.file = new SendFileApi(file);\n }\n\n this.expirationDate = this.getResponseProperty(\"ExpirationDate\");\n this.creatorIdentifier = this.getResponseProperty(\"CreatorIdentifier\");\n }\n}\n","import { BaseResponse } from \"../../../../models/response/base.response\";\n\nexport class SendFileDownloadDataResponse extends BaseResponse {\n id: string = null;\n url: string = null;\n constructor(response: any) {\n super(response);\n this.id = this.getResponseProperty(\"Id\");\n this.url = this.getResponseProperty(\"Url\");\n }\n}\n","import { BaseResponse } from \"../../../../models/response/base.response\";\nimport { FileUploadType } from \"../../../../platform/enums\";\n\nimport { SendResponse } from \"./send.response\";\n\nexport class SendFileUploadDataResponse extends BaseResponse {\n fileUploadType: FileUploadType;\n sendResponse: SendResponse;\n url: string = null;\n constructor(response: any) {\n super(response);\n this.fileUploadType = this.getResponseProperty(\"FileUploadType\");\n const sendResponse = this.getResponseProperty(\"SendResponse\");\n this.sendResponse = sendResponse == null ? null : new SendResponse(sendResponse);\n this.url = this.getResponseProperty(\"Url\");\n }\n}\n","import { SEND_DISK, SEND_MEMORY, UserKeyDefinition } from \"../../../platform/state\";\nimport { SendData } from \"../models/data/send.data\";\nimport { SendView } from \"../models/view/send.view\";\n\n/** Encrypted send state stored on disk */\nexport const SEND_USER_ENCRYPTED = UserKeyDefinition.record(\n SEND_DISK,\n \"sendUserEncrypted\",\n {\n deserializer: (obj: SendData) => obj,\n clearOn: [\"logout\"],\n },\n);\n\n/** Decrypted send state stored in memory */\nexport const SEND_USER_DECRYPTED = new UserKeyDefinition(\n SEND_MEMORY,\n \"sendUserDecrypted\",\n {\n deserializer: (obj) => obj,\n clearOn: [\"lock\"],\n },\n);\n","import { Observable } from \"rxjs\";\n\nimport { SendData } from \"../models/data/send.data\";\nimport { SendView } from \"../models/view/send.view\";\n\nexport abstract class SendStateProvider {\n encryptedState$: Observable>;\n decryptedState$: Observable;\n\n getEncryptedSends: () => Promise<{ [id: string]: SendData }>;\n\n setEncryptedSends: (value: { [id: string]: SendData }) => Promise;\n\n getDecryptedSends: () => Promise;\n\n setDecryptedSends: (value: SendView[]) => Promise;\n}\n","import { Send } from \"../domain/send\";\n\nimport { SendRequest } from \"./send.request\";\n\nexport class SendWithIdRequest extends SendRequest {\n id: string;\n\n constructor(send: Send) {\n super(send);\n this.id = send.id;\n }\n}\n","import { EncArrayBuffer } from \"../../../platform/models/domain/enc-array-buffer\";\nimport { EncString } from \"../../../platform/models/domain/enc-string\";\nimport { SymmetricCryptoKey } from \"../../../platform/models/domain/symmetric-crypto-key\";\nimport { Cipher } from \"../../models/domain/cipher\";\nimport { CipherResponse } from \"../../models/response/cipher.response\";\n\nexport abstract class CipherFileUploadService {\n upload: (\n cipher: Cipher,\n encFileName: EncString,\n encData: EncArrayBuffer,\n admin: boolean,\n dataEncKey: [SymmetricCryptoKey, EncString],\n ) => Promise;\n}\n","const caches = new Map>>();\n\nconst getCache = (obj: any) => {\n let cache = caches.get(obj);\n if (cache != null) {\n return cache;\n }\n cache = new Map>();\n caches.set(obj, cache);\n return cache;\n};\n\nexport function clearCaches() {\n caches.clear();\n}\n\n/**\n * Use as a Decorator on async functions, it will prevent multiple 'active' calls as the same time\n *\n * If a promise was returned from a previous call to this function, that hasn't yet resolved it will\n * be returned, instead of calling the original function again\n *\n * Results are not cached, once the promise has returned, the next call will result in a fresh call\n *\n * Read more at https://github.com/bitwarden/jslib/pull/7\n */\nexport function sequentialize(cacheKey: (args: any[]) => string) {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const originalMethod: () => Promise = descriptor.value;\n\n return {\n value: function (...args: any[]) {\n const cache = getCache(this);\n const argsCacheKey = cacheKey(args);\n let response = cache.get(argsCacheKey);\n if (response != null) {\n return response;\n }\n\n const onFinally = () => {\n cache.delete(argsCacheKey);\n if (cache.size === 0) {\n caches.delete(this);\n }\n };\n response = originalMethod\n .apply(this, args)\n .then((val: any) => {\n onFinally();\n return val;\n })\n .catch((err: any) => {\n onFinally();\n throw err;\n });\n\n cache.set(argsCacheKey, response);\n return response;\n },\n };\n };\n}\n","import { CipherView } from \"../view/cipher.view\";\n\nconst CacheTTL = 3000;\n\nexport class SortedCiphersCache {\n private readonly sortedCiphersByUrl: Map = new Map();\n private readonly timeouts: Map = new Map();\n\n constructor(private readonly comparator: (a: CipherView, b: CipherView) => number) {}\n\n isCached(url: string) {\n return this.sortedCiphersByUrl.has(url);\n }\n\n addCiphers(url: string, ciphers: CipherView[]) {\n ciphers.sort(this.comparator);\n this.sortedCiphersByUrl.set(url, new Ciphers(ciphers));\n this.resetTimer(url);\n }\n\n getLastUsed(url: string) {\n this.resetTimer(url);\n return this.isCached(url) ? this.sortedCiphersByUrl.get(url).getLastUsed() : null;\n }\n\n getLastLaunched(url: string) {\n return this.isCached(url) ? this.sortedCiphersByUrl.get(url).getLastLaunched() : null;\n }\n\n getNext(url: string) {\n this.resetTimer(url);\n return this.isCached(url) ? this.sortedCiphersByUrl.get(url).getNext() : null;\n }\n\n updateLastUsedIndex(url: string) {\n if (this.isCached(url)) {\n this.sortedCiphersByUrl.get(url).updateLastUsedIndex();\n }\n }\n\n clear() {\n this.sortedCiphersByUrl.clear();\n this.timeouts.clear();\n }\n\n private resetTimer(url: string) {\n clearTimeout(this.timeouts.get(url));\n this.timeouts.set(\n url,\n setTimeout(() => {\n this.sortedCiphersByUrl.delete(url);\n this.timeouts.delete(url);\n }, CacheTTL),\n );\n }\n}\n\nclass Ciphers {\n lastUsedIndex = -1;\n\n constructor(private readonly ciphers: CipherView[]) {}\n\n getLastUsed() {\n this.lastUsedIndex = Math.max(this.lastUsedIndex, 0);\n return this.ciphers[this.lastUsedIndex];\n }\n\n getLastLaunched() {\n const usedCiphers = this.ciphers.filter((cipher) => cipher.localData?.lastLaunched);\n const sortedCiphers = usedCiphers.sort(\n (x, y) => y.localData.lastLaunched.valueOf() - x.localData.lastLaunched.valueOf(),\n );\n return sortedCiphers[0];\n }\n\n getNextIndex() {\n return (this.lastUsedIndex + 1) % this.ciphers.length;\n }\n\n getNext() {\n return this.ciphers[this.getNextIndex()];\n }\n\n updateLastUsedIndex() {\n this.lastUsedIndex = this.getNextIndex();\n }\n}\n","export class CipherBulkMoveRequest {\n ids: string[];\n folderId: string;\n\n constructor(ids: string[], folderId: string) {\n this.ids = ids == null ? [] : ids;\n this.folderId = folderId;\n }\n}\n","export class CipherBulkRestoreRequest {\n ids: string[];\n organizationId: string;\n\n constructor(ids: string[], organizationId?: string) {\n this.ids = ids == null ? [] : ids;\n this.organizationId = organizationId;\n }\n}\n","import { Cipher } from \"../domain/cipher\";\n\nimport { CipherWithIdRequest } from \"./cipher-with-id.request\";\n\nexport class CipherBulkShareRequest {\n ciphers: CipherWithIdRequest[];\n collectionIds: string[];\n\n constructor(ciphers: Cipher[], collectionIds: string[]) {\n if (ciphers != null) {\n this.ciphers = [];\n ciphers.forEach((c) => {\n this.ciphers.push(new CipherWithIdRequest(c));\n });\n }\n this.collectionIds = collectionIds;\n }\n}\n","import { CipherId, CollectionId, OrganizationId } from \"../../../types/guid\";\n\nexport class CipherBulkUpdateCollectionsRequest {\n organizationId: OrganizationId;\n cipherIds: CipherId[];\n collectionIds: CollectionId[];\n removeCollections: boolean;\n constructor(\n organizationId: OrganizationId,\n cipherIds: CipherId[],\n collectionIds: CollectionId[],\n removeCollections: boolean = false,\n ) {\n this.organizationId = organizationId;\n this.cipherIds = cipherIds;\n this.collectionIds = collectionIds;\n this.removeCollections = removeCollections;\n }\n}\n","import { Cipher } from \"../domain/cipher\";\n\nimport { CipherRequest } from \"./cipher.request\";\n\nexport class CipherCreateRequest {\n cipher: CipherRequest;\n collectionIds: string[];\n\n constructor(cipher: Cipher) {\n this.cipher = new CipherRequest(cipher);\n this.collectionIds = cipher.collectionIds;\n }\n}\n","import { Cipher } from \"../domain/cipher\";\n\nexport class CipherPartialRequest {\n folderId: string;\n favorite: boolean;\n\n constructor(cipher: Cipher) {\n this.folderId = cipher.folderId;\n this.favorite = cipher.favorite;\n }\n}\n","import { Cipher } from \"../domain/cipher\";\n\nimport { CipherRequest } from \"./cipher.request\";\n\nexport class CipherShareRequest {\n cipher: CipherRequest;\n collectionIds: string[];\n\n constructor(cipher: Cipher) {\n this.cipher = new CipherRequest(cipher);\n this.collectionIds = cipher.collectionIds;\n }\n}\n","import { Jsonify } from \"type-fest\";\n\nimport {\n CIPHERS_DISK,\n CIPHERS_DISK_LOCAL,\n CIPHERS_MEMORY,\n UserKeyDefinition,\n} from \"../../../platform/state\";\nimport { CipherId } from \"../../../types/guid\";\nimport { CipherData } from \"../../models/data/cipher.data\";\nimport { LocalData } from \"../../models/data/local.data\";\nimport { CipherView } from \"../../models/view/cipher.view\";\nimport { AddEditCipherInfo } from \"../../types/add-edit-cipher-info\";\n\nexport const ENCRYPTED_CIPHERS = UserKeyDefinition.record(CIPHERS_DISK, \"ciphers\", {\n deserializer: (obj: Jsonify) => CipherData.fromJSON(obj),\n clearOn: [\"logout\"],\n});\n\nexport const DECRYPTED_CIPHERS = UserKeyDefinition.record(\n CIPHERS_MEMORY,\n \"decryptedCiphers\",\n {\n deserializer: (cipher: Jsonify) => CipherView.fromJSON(cipher),\n clearOn: [\"logout\", \"lock\"],\n },\n);\n\nexport const LOCAL_DATA_KEY = new UserKeyDefinition>(\n CIPHERS_DISK_LOCAL,\n \"localData\",\n {\n deserializer: (localData) => localData,\n clearOn: [\"logout\"],\n },\n);\n\nexport const ADD_EDIT_CIPHER_INFO_KEY = new UserKeyDefinition(\n CIPHERS_MEMORY,\n \"addEditCipherInfo\",\n {\n deserializer: (addEditCipherInfo: AddEditCipherInfo) => {\n if (addEditCipherInfo == null) {\n return null;\n }\n\n const cipher =\n addEditCipherInfo?.cipher.toJSON != null\n ? addEditCipherInfo.cipher\n : CipherView.fromJSON(addEditCipherInfo?.cipher as Jsonify);\n\n return { cipher, collectionIds: addEditCipherInfo.collectionIds };\n },\n clearOn: [\"logout\", \"lock\"],\n },\n);\n","import { firstValueFrom, map, Observable, share, skipWhile, switchMap } from \"rxjs\";\nimport { SemVer } from \"semver\";\n\nimport { ApiService } from \"../../abstractions/api.service\";\nimport { SearchService } from \"../../abstractions/search.service\";\nimport { AutofillSettingsServiceAbstraction } from \"../../autofill/services/autofill-settings.service\";\nimport { DomainSettingsService } from \"../../autofill/services/domain-settings.service\";\nimport { UriMatchStrategySetting } from \"../../models/domain/domain-service\";\nimport { ErrorResponse } from \"../../models/response/error.response\";\nimport { ListResponse } from \"../../models/response/list.response\";\nimport { View } from \"../../models/view/view\";\nimport { ConfigService } from \"../../platform/abstractions/config/config.service\";\nimport { CryptoService } from \"../../platform/abstractions/crypto.service\";\nimport { EncryptService } from \"../../platform/abstractions/encrypt.service\";\nimport { I18nService } from \"../../platform/abstractions/i18n.service\";\nimport { StateService } from \"../../platform/abstractions/state.service\";\nimport { flagEnabled } from \"../../platform/misc/flags\";\nimport { sequentialize } from \"../../platform/misc/sequentialize\";\nimport { Utils } from \"../../platform/misc/utils\";\nimport Domain from \"../../platform/models/domain/domain-base\";\nimport { EncArrayBuffer } from \"../../platform/models/domain/enc-array-buffer\";\nimport { EncString } from \"../../platform/models/domain/enc-string\";\nimport { SymmetricCryptoKey } from \"../../platform/models/domain/symmetric-crypto-key\";\nimport {\n ActiveUserState,\n CIPHERS_MEMORY,\n DeriveDefinition,\n DerivedState,\n StateProvider,\n} from \"../../platform/state\";\nimport { CipherId, CollectionId, OrganizationId, UserId } from \"../../types/guid\";\nimport { OrgKey, UserKey } from \"../../types/key\";\nimport { CipherService as CipherServiceAbstraction } from \"../abstractions/cipher.service\";\nimport { CipherFileUploadService } from \"../abstractions/file-upload/cipher-file-upload.service\";\nimport { FieldType } from \"../enums\";\nimport { CipherType } from \"../enums/cipher-type\";\nimport { CipherData } from \"../models/data/cipher.data\";\nimport { LocalData } from \"../models/data/local.data\";\nimport { Attachment } from \"../models/domain/attachment\";\nimport { Card } from \"../models/domain/card\";\nimport { Cipher } from \"../models/domain/cipher\";\nimport { Fido2Credential } from \"../models/domain/fido2-credential\";\nimport { Field } from \"../models/domain/field\";\nimport { Identity } from \"../models/domain/identity\";\nimport { Login } from \"../models/domain/login\";\nimport { LoginUri } from \"../models/domain/login-uri\";\nimport { Password } from \"../models/domain/password\";\nimport { SecureNote } from \"../models/domain/secure-note\";\nimport { SortedCiphersCache } from \"../models/domain/sorted-ciphers-cache\";\nimport { CipherBulkDeleteRequest } from \"../models/request/cipher-bulk-delete.request\";\nimport { CipherBulkMoveRequest } from \"../models/request/cipher-bulk-move.request\";\nimport { CipherBulkRestoreRequest } from \"../models/request/cipher-bulk-restore.request\";\nimport { CipherBulkShareRequest } from \"../models/request/cipher-bulk-share.request\";\nimport { CipherBulkUpdateCollectionsRequest } from \"../models/request/cipher-bulk-update-collections.request\";\nimport { CipherCollectionsRequest } from \"../models/request/cipher-collections.request\";\nimport { CipherCreateRequest } from \"../models/request/cipher-create.request\";\nimport { CipherPartialRequest } from \"../models/request/cipher-partial.request\";\nimport { CipherShareRequest } from \"../models/request/cipher-share.request\";\nimport { CipherRequest } from \"../models/request/cipher.request\";\nimport { CipherResponse } from \"../models/response/cipher.response\";\nimport { AttachmentView } from \"../models/view/attachment.view\";\nimport { CipherView } from \"../models/view/cipher.view\";\nimport { FieldView } from \"../models/view/field.view\";\nimport { PasswordHistoryView } from \"../models/view/password-history.view\";\nimport { AddEditCipherInfo } from \"../types/add-edit-cipher-info\";\n\nimport {\n ADD_EDIT_CIPHER_INFO_KEY,\n DECRYPTED_CIPHERS,\n ENCRYPTED_CIPHERS,\n LOCAL_DATA_KEY,\n} from \"./key-state/ciphers.state\";\n\nconst CIPHER_KEY_ENC_MIN_SERVER_VER = new SemVer(\"2024.2.0\");\n\nexport class CipherService implements CipherServiceAbstraction {\n private sortedCiphersCache: SortedCiphersCache = new SortedCiphersCache(\n this.sortCiphersByLastUsed,\n );\n private ciphersExpectingUpdate: DerivedState;\n\n localData$: Observable>;\n ciphers$: Observable>;\n cipherViews$: Observable>;\n viewFor$(id: CipherId) {\n return this.cipherViews$.pipe(map((views) => views[id]));\n }\n addEditCipherInfo$: Observable;\n\n private localDataState: ActiveUserState>;\n private encryptedCiphersState: ActiveUserState>;\n private decryptedCiphersState: ActiveUserState>;\n private addEditCipherInfoState: ActiveUserState;\n\n constructor(\n private cryptoService: CryptoService,\n private domainSettingsService: DomainSettingsService,\n private apiService: ApiService,\n private i18nService: I18nService,\n private searchService: SearchService,\n private stateService: StateService,\n private autofillSettingsService: AutofillSettingsServiceAbstraction,\n private encryptService: EncryptService,\n private cipherFileUploadService: CipherFileUploadService,\n private configService: ConfigService,\n private stateProvider: StateProvider,\n ) {\n this.localDataState = this.stateProvider.getActive(LOCAL_DATA_KEY);\n this.encryptedCiphersState = this.stateProvider.getActive(ENCRYPTED_CIPHERS);\n this.decryptedCiphersState = this.stateProvider.getActive(DECRYPTED_CIPHERS);\n this.addEditCipherInfoState = this.stateProvider.getActive(ADD_EDIT_CIPHER_INFO_KEY);\n this.ciphersExpectingUpdate = this.stateProvider.getDerived(\n this.encryptedCiphersState.state$,\n new DeriveDefinition(CIPHERS_MEMORY, \"ciphersExpectingUpdate\", {\n derive: (_: Record) => false,\n deserializer: (value) => value,\n }),\n {},\n );\n\n this.localData$ = this.localDataState.state$.pipe(map((data) => data ?? {}));\n // First wait for ciphersExpectingUpdate to be false before emitting ciphers\n this.ciphers$ = this.ciphersExpectingUpdate.state$.pipe(\n skipWhile((expectingUpdate) => expectingUpdate),\n switchMap(() => this.encryptedCiphersState.state$),\n map((ciphers) => ciphers ?? {}),\n );\n this.cipherViews$ = this.decryptedCiphersState.state$.pipe(\n map((views) => views ?? {}),\n\n share({\n resetOnRefCountZero: true,\n }),\n );\n this.addEditCipherInfo$ = this.addEditCipherInfoState.state$;\n }\n\n async setDecryptedCipherCache(value: CipherView[], userId: UserId) {\n // Sometimes we might prematurely decrypt the vault and that will result in no ciphers\n // if we cache it then we may accidentally return it when it's not right, we'd rather try decryption again.\n // We still want to set null though, that is the indicator that the cache isn't valid and we should do decryption.\n if (value == null || value.length !== 0) {\n await this.setDecryptedCiphers(value, userId);\n }\n if (this.searchService != null) {\n if (value == null) {\n await this.searchService.clearIndex();\n } else {\n await this.searchService.indexCiphers(value);\n }\n }\n }\n\n private async setDecryptedCiphers(value: CipherView[], userId: UserId) {\n const cipherViews: { [id: string]: CipherView } = {};\n value?.forEach((c) => {\n cipherViews[c.id] = c;\n });\n await this.stateProvider.setUserState(DECRYPTED_CIPHERS, cipherViews, userId);\n }\n\n async clearCache(userId?: UserId): Promise {\n userId ??= await firstValueFrom(this.stateProvider.activeUserId$);\n await this.clearDecryptedCiphersState(userId);\n }\n\n async encrypt(\n model: CipherView,\n keyForEncryption?: SymmetricCryptoKey,\n keyForCipherKeyDecryption?: SymmetricCryptoKey,\n originalCipher: Cipher = null,\n ): Promise {\n if (model.id != null) {\n if (originalCipher == null) {\n originalCipher = await this.get(model.id);\n }\n if (originalCipher != null) {\n await this.updateModelfromExistingCipher(model, originalCipher);\n }\n this.adjustPasswordHistoryLength(model);\n }\n\n const cipher = new Cipher();\n cipher.id = model.id;\n cipher.folderId = model.folderId;\n cipher.favorite = model.favorite;\n cipher.organizationId = model.organizationId;\n cipher.type = model.type;\n cipher.collectionIds = model.collectionIds;\n cipher.revisionDate = model.revisionDate;\n cipher.reprompt = model.reprompt;\n cipher.edit = model.edit;\n\n if (await this.getCipherKeyEncryptionEnabled()) {\n cipher.key = originalCipher?.key ?? null;\n const userOrOrgKey = await this.getKeyForCipherKeyDecryption(cipher);\n // The keyForEncryption is only used for encrypting the cipher key, not the cipher itself, since cipher key encryption is enabled.\n // If the caller has provided a key for cipher key encryption, use it. Otherwise, use the user or org key.\n keyForEncryption ||= userOrOrgKey;\n // If the caller has provided a key for cipher key decryption, use it. Otherwise, use the user or org key.\n keyForCipherKeyDecryption ||= userOrOrgKey;\n return this.encryptCipherWithCipherKey(\n model,\n cipher,\n keyForEncryption,\n keyForCipherKeyDecryption,\n );\n } else {\n if (keyForEncryption == null && cipher.organizationId != null) {\n keyForEncryption = await this.cryptoService.getOrgKey(cipher.organizationId);\n if (keyForEncryption == null) {\n throw new Error(\"Cannot encrypt cipher for organization. No key.\");\n }\n }\n // We want to ensure that the cipher key is null if cipher key encryption is disabled\n // so that decryption uses the proper key.\n cipher.key = null;\n return this.encryptCipher(model, cipher, keyForEncryption);\n }\n }\n\n async encryptAttachments(\n attachmentsModel: AttachmentView[],\n key: SymmetricCryptoKey,\n ): Promise {\n if (attachmentsModel == null || attachmentsModel.length === 0) {\n return null;\n }\n\n const promises: Promise[] = [];\n const encAttachments: Attachment[] = [];\n attachmentsModel.forEach(async (model) => {\n const attachment = new Attachment();\n attachment.id = model.id;\n attachment.size = model.size;\n attachment.sizeName = model.sizeName;\n attachment.url = model.url;\n const promise = this.encryptObjProperty(\n model,\n attachment,\n {\n fileName: null,\n },\n key,\n ).then(async () => {\n if (model.key != null) {\n attachment.key = await this.cryptoService.encrypt(model.key.key, key);\n }\n encAttachments.push(attachment);\n });\n promises.push(promise);\n });\n\n await Promise.all(promises);\n return encAttachments;\n }\n\n async encryptFields(fieldsModel: FieldView[], key: SymmetricCryptoKey): Promise {\n if (!fieldsModel || !fieldsModel.length) {\n return null;\n }\n\n const self = this;\n const encFields: Field[] = [];\n await fieldsModel.reduce(async (promise, field) => {\n await promise;\n const encField = await self.encryptField(field, key);\n encFields.push(encField);\n }, Promise.resolve());\n\n return encFields;\n }\n\n async encryptField(fieldModel: FieldView, key: SymmetricCryptoKey): Promise {\n const field = new Field();\n field.type = fieldModel.type;\n field.linkedId = fieldModel.linkedId;\n // normalize boolean type field values\n if (fieldModel.type === FieldType.Boolean && fieldModel.value !== \"true\") {\n fieldModel.value = \"false\";\n }\n\n await this.encryptObjProperty(\n fieldModel,\n field,\n {\n name: null,\n value: null,\n },\n key,\n );\n\n return field;\n }\n\n async encryptPasswordHistories(\n phModels: PasswordHistoryView[],\n key: SymmetricCryptoKey,\n ): Promise {\n if (!phModels || !phModels.length) {\n return null;\n }\n\n const self = this;\n const encPhs: Password[] = [];\n await phModels.reduce(async (promise, ph) => {\n await promise;\n const encPh = await self.encryptPasswordHistory(ph, key);\n encPhs.push(encPh);\n }, Promise.resolve());\n\n return encPhs;\n }\n\n async encryptPasswordHistory(\n phModel: PasswordHistoryView,\n key: SymmetricCryptoKey,\n ): Promise {\n const ph = new Password();\n ph.lastUsedDate = phModel.lastUsedDate;\n\n await this.encryptObjProperty(\n phModel,\n ph,\n {\n password: null,\n },\n key,\n );\n\n return ph;\n }\n\n async get(id: string): Promise {\n const ciphers = await firstValueFrom(this.ciphers$);\n // eslint-disable-next-line\n if (ciphers == null || !ciphers.hasOwnProperty(id)) {\n return null;\n }\n\n const localData = await firstValueFrom(this.localData$);\n const cipherId = id as CipherId;\n\n return new Cipher(ciphers[cipherId], localData ? localData[cipherId] : null);\n }\n\n async getAll(): Promise {\n const localData = await firstValueFrom(this.localData$);\n const ciphers = await firstValueFrom(this.ciphers$);\n const response: Cipher[] = [];\n for (const id in ciphers) {\n // eslint-disable-next-line\n if (ciphers.hasOwnProperty(id)) {\n const cipherId = id as CipherId;\n response.push(new Cipher(ciphers[cipherId], localData ? localData[cipherId] : null));\n }\n }\n return response;\n }\n\n @sequentialize(() => \"getAllDecrypted\")\n async getAllDecrypted(): Promise {\n let decCiphers = await this.getDecryptedCiphers();\n if (decCiphers != null && decCiphers.length !== 0) {\n await this.reindexCiphers();\n return await this.getDecryptedCiphers();\n }\n\n const activeUserId = await firstValueFrom(this.stateProvider.activeUserId$);\n\n if (activeUserId == null) {\n return [];\n }\n\n decCiphers = await this.decryptCiphers(await this.getAll(), activeUserId);\n\n await this.setDecryptedCipherCache(decCiphers, activeUserId);\n return decCiphers;\n }\n\n private async getDecryptedCiphers() {\n return Object.values(await firstValueFrom(this.cipherViews$));\n }\n\n private async decryptCiphers(ciphers: Cipher[], userId: UserId) {\n const keys = await firstValueFrom(this.cryptoService.cipherDecryptionKeys$(userId, true));\n\n if (keys == null || (keys.userKey == null && Object.keys(keys.orgKeys).length === 0)) {\n // return early if there are no keys to decrypt with\n return;\n }\n\n // Group ciphers by orgId or under 'null' for the user's ciphers\n const grouped = ciphers.reduce(\n (agg, c) => {\n agg[c.organizationId] ??= [];\n agg[c.organizationId].push(c);\n return agg;\n },\n {} as Record,\n );\n\n const decCiphers = (\n await Promise.all(\n Object.entries(grouped).map(([orgId, groupedCiphers]) =>\n this.encryptService.decryptItems(\n groupedCiphers,\n keys.orgKeys[orgId as OrganizationId] ?? keys.userKey,\n ),\n ),\n )\n )\n .flat()\n .sort(this.getLocaleSortingFunction());\n\n return decCiphers;\n }\n\n private async reindexCiphers() {\n const userId = await this.stateService.getUserId();\n const reindexRequired =\n this.searchService != null &&\n ((await firstValueFrom(this.searchService.indexedEntityId$)) ?? userId) !== userId;\n if (reindexRequired) {\n await this.searchService.indexCiphers(await this.getDecryptedCiphers(), userId);\n }\n }\n\n async getAllDecryptedForGrouping(groupingId: string, folder = true): Promise {\n const ciphers = await this.getAllDecrypted();\n\n return ciphers.filter((cipher) => {\n if (cipher.isDeleted) {\n return false;\n }\n if (folder && cipher.folderId === groupingId) {\n return true;\n } else if (\n !folder &&\n cipher.collectionIds != null &&\n cipher.collectionIds.indexOf(groupingId) > -1\n ) {\n return true;\n }\n\n return false;\n });\n }\n\n async getAllDecryptedForUrl(\n url: string,\n includeOtherTypes?: CipherType[],\n defaultMatch: UriMatchStrategySetting = null,\n ): Promise {\n const ciphers = await this.getAllDecrypted();\n return await this.filterCiphersForUrl(ciphers, url, includeOtherTypes, defaultMatch);\n }\n\n async filterCiphersForUrl(\n ciphers: CipherView[],\n url: string,\n includeOtherTypes?: CipherType[],\n defaultMatch: UriMatchStrategySetting = null,\n ): Promise {\n if (url == null && includeOtherTypes == null) {\n return [];\n }\n\n const equivalentDomains = await firstValueFrom(\n this.domainSettingsService.getUrlEquivalentDomains(url),\n );\n defaultMatch ??= await firstValueFrom(this.domainSettingsService.defaultUriMatchStrategy$);\n\n return ciphers.filter((cipher) => {\n const cipherIsLogin = cipher.type === CipherType.Login && cipher.login !== null;\n\n if (cipher.deletedDate !== null) {\n return false;\n }\n\n if (\n Array.isArray(includeOtherTypes) &&\n includeOtherTypes.includes(cipher.type) &&\n !cipherIsLogin\n ) {\n return true;\n }\n\n if (cipherIsLogin) {\n return cipher.login.matchesUri(url, equivalentDomains, defaultMatch);\n }\n\n return false;\n });\n }\n\n async getAllFromApiForOrganization(organizationId: string): Promise {\n const response = await this.apiService.getCiphersOrganization(organizationId);\n return await this.decryptOrganizationCiphersResponse(response, organizationId);\n }\n\n async getManyFromApiForOrganization(organizationId: string): Promise {\n const response = await this.apiService.send(\n \"GET\",\n \"/ciphers/organization-details/assigned?organizationId=\" + organizationId,\n null,\n true,\n true,\n );\n return this.decryptOrganizationCiphersResponse(response, organizationId);\n }\n\n private async decryptOrganizationCiphersResponse(\n response: ListResponse,\n organizationId: string,\n ): Promise {\n if (response?.data == null || response.data.length < 1) {\n return [];\n }\n\n const ciphers = response.data.map((cr) => new Cipher(new CipherData(cr)));\n const key = await this.cryptoService.getOrgKey(organizationId);\n const decCiphers = await this.encryptService.decryptItems(ciphers, key);\n\n decCiphers.sort(this.getLocaleSortingFunction());\n return decCiphers;\n }\n\n async getLastUsedForUrl(url: string, autofillOnPageLoad = false): Promise {\n return this.getCipherForUrl(url, true, false, autofillOnPageLoad);\n }\n\n async getLastLaunchedForUrl(url: string, autofillOnPageLoad = false): Promise {\n return this.getCipherForUrl(url, false, true, autofillOnPageLoad);\n }\n\n async getNextCipherForUrl(url: string): Promise {\n return this.getCipherForUrl(url, false, false, false);\n }\n\n updateLastUsedIndexForUrl(url: string) {\n this.sortedCiphersCache.updateLastUsedIndex(url);\n }\n\n async updateLastUsedDate(id: string): Promise {\n const userId = await firstValueFrom(this.stateProvider.activeUserId$);\n let ciphersLocalData = await firstValueFrom(this.localData$);\n\n if (!ciphersLocalData) {\n ciphersLocalData = {};\n }\n\n const cipherId = id as CipherId;\n if (ciphersLocalData[cipherId]) {\n ciphersLocalData[cipherId].lastUsedDate = new Date().getTime();\n } else {\n ciphersLocalData[cipherId] = {\n lastUsedDate: new Date().getTime(),\n };\n }\n\n await this.localDataState.update(() => ciphersLocalData);\n\n const decryptedCipherCache = await this.getDecryptedCiphers();\n if (!decryptedCipherCache) {\n return;\n }\n\n for (let i = 0; i < decryptedCipherCache.length; i++) {\n const cached = decryptedCipherCache[i];\n if (cached.id === id) {\n cached.localData = ciphersLocalData[id as CipherId];\n break;\n }\n }\n await this.setDecryptedCiphers(decryptedCipherCache, userId);\n }\n\n async updateLastLaunchedDate(id: string): Promise {\n const userId = await firstValueFrom(this.stateProvider.activeUserId$);\n let ciphersLocalData = await firstValueFrom(this.localData$);\n\n if (!ciphersLocalData) {\n ciphersLocalData = {};\n }\n\n const cipherId = id as CipherId;\n if (ciphersLocalData[cipherId]) {\n ciphersLocalData[cipherId].lastLaunched = new Date().getTime();\n } else {\n ciphersLocalData[cipherId] = {\n lastUsedDate: new Date().getTime(),\n };\n }\n\n await this.localDataState.update(() => ciphersLocalData);\n\n const decryptedCipherCache = await this.getDecryptedCiphers();\n if (!decryptedCipherCache) {\n return;\n }\n\n for (let i = 0; i < decryptedCipherCache.length; i++) {\n const cached = decryptedCipherCache[i];\n if (cached.id === id) {\n cached.localData = ciphersLocalData[id as CipherId];\n break;\n }\n }\n await this.setDecryptedCiphers(decryptedCipherCache, userId);\n }\n\n async saveNeverDomain(domain: string): Promise {\n if (domain == null) {\n return;\n }\n\n let domains = await firstValueFrom(this.domainSettingsService.neverDomains$);\n if (!domains) {\n domains = {};\n }\n domains[domain] = null;\n await this.domainSettingsService.setNeverDomains(domains);\n }\n\n async createWithServer(cipher: Cipher, orgAdmin?: boolean): Promise {\n let response: CipherResponse;\n if (orgAdmin && cipher.organizationId != null) {\n const request = new CipherCreateRequest(cipher);\n response = await this.apiService.postCipherAdmin(request);\n } else if (cipher.collectionIds != null) {\n const request = new CipherCreateRequest(cipher);\n response = await this.apiService.postCipherCreate(request);\n } else {\n const request = new CipherRequest(cipher);\n response = await this.apiService.postCipher(request);\n }\n cipher.id = response.id;\n\n const data = new CipherData(response, cipher.collectionIds);\n const updated = await this.upsert(data);\n // No local data for new ciphers\n return new Cipher(updated[cipher.id as CipherId]);\n }\n\n async updateWithServer(\n cipher: Cipher,\n orgAdmin?: boolean,\n isNotClone?: boolean,\n ): Promise {\n let response: CipherResponse;\n if (orgAdmin && isNotClone) {\n const request = new CipherRequest(cipher);\n response = await this.apiService.putCipherAdmin(cipher.id, request);\n } else if (cipher.edit) {\n const request = new CipherRequest(cipher);\n response = await this.apiService.putCipher(cipher.id, request);\n } else {\n const request = new CipherPartialRequest(cipher);\n response = await this.apiService.putPartialCipher(cipher.id, request);\n }\n\n const data = new CipherData(response, cipher.collectionIds);\n const updated = await this.upsert(data);\n // updating with server does not change local data\n return new Cipher(updated[cipher.id as CipherId], cipher.localData);\n }\n\n async shareWithServer(\n cipher: CipherView,\n organizationId: string,\n collectionIds: string[],\n ): Promise {\n const attachmentPromises: Promise[] = [];\n if (cipher.attachments != null) {\n cipher.attachments.forEach((attachment) => {\n if (attachment.key == null) {\n attachmentPromises.push(\n this.shareAttachmentWithServer(attachment, cipher.id, organizationId),\n );\n }\n });\n }\n await Promise.all(attachmentPromises);\n\n cipher.organizationId = organizationId;\n cipher.collectionIds = collectionIds;\n const encCipher = await this.encryptSharedCipher(cipher);\n const request = new CipherShareRequest(encCipher);\n const response = await this.apiService.putShareCipher(cipher.id, request);\n const data = new CipherData(response, collectionIds);\n await this.upsert(data);\n }\n\n async shareManyWithServer(\n ciphers: CipherView[],\n organizationId: string,\n collectionIds: string[],\n ): Promise {\n const promises: Promise[] = [];\n const encCiphers: Cipher[] = [];\n for (const cipher of ciphers) {\n cipher.organizationId = organizationId;\n cipher.collectionIds = collectionIds;\n promises.push(\n this.encryptSharedCipher(cipher).then((c) => {\n encCiphers.push(c);\n }),\n );\n }\n await Promise.all(promises);\n const request = new CipherBulkShareRequest(encCiphers, collectionIds);\n try {\n await this.apiService.putShareCiphers(request);\n } catch (e) {\n for (const cipher of ciphers) {\n cipher.organizationId = null;\n cipher.collectionIds = null;\n }\n throw e;\n }\n await this.upsert(encCiphers.map((c) => c.toCipherData()));\n }\n\n saveAttachmentWithServer(cipher: Cipher, unencryptedFile: any, admin = false): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsArrayBuffer(unencryptedFile);\n reader.onload = async (evt: any) => {\n try {\n const cData = await this.saveAttachmentRawWithServer(\n cipher,\n unencryptedFile.name,\n evt.target.result,\n admin,\n );\n resolve(cData);\n } catch (e) {\n reject(e);\n }\n };\n reader.onerror = () => {\n reject(\"Error reading file.\");\n };\n });\n }\n\n async saveAttachmentRawWithServer(\n cipher: Cipher,\n filename: string,\n data: Uint8Array,\n admin = false,\n ): Promise {\n const encKey = await this.getKeyForCipherKeyDecryption(cipher);\n const cipherKeyEncryptionEnabled = await this.getCipherKeyEncryptionEnabled();\n\n const cipherEncKey =\n cipherKeyEncryptionEnabled && cipher.key != null\n ? (new SymmetricCryptoKey(\n await this.encryptService.decryptToBytes(cipher.key, encKey),\n ) as UserKey)\n : encKey;\n\n //if cipher key encryption is disabled but the item has an individual key,\n //then we rollback to using the user key as the main key of encryption of the item\n //in order to keep item and it's attachments with the same encryption level\n if (cipher.key != null && !cipherKeyEncryptionEnabled) {\n const model = await cipher.decrypt(await this.getKeyForCipherKeyDecryption(cipher));\n cipher = await this.encrypt(model);\n await this.updateWithServer(cipher);\n }\n\n const encFileName = await this.encryptService.encrypt(filename, cipherEncKey);\n\n const dataEncKey = await this.cryptoService.makeDataEncKey(cipherEncKey);\n const encData = await this.encryptService.encryptToBytes(new Uint8Array(data), dataEncKey[0]);\n\n const response = await this.cipherFileUploadService.upload(\n cipher,\n encFileName,\n encData,\n admin,\n dataEncKey,\n );\n\n const cData = new CipherData(response, cipher.collectionIds);\n if (!admin) {\n await this.upsert(cData);\n }\n return new Cipher(cData);\n }\n\n async saveCollectionsWithServer(cipher: Cipher): Promise {\n const request = new CipherCollectionsRequest(cipher.collectionIds);\n const response = await this.apiService.putCipherCollections(cipher.id, request);\n // The response will now check for an unavailable value. This value determines whether\n // the user still has Can Manage access to the item after updating.\n if (response.unavailable) {\n await this.delete(cipher.id);\n return;\n }\n const data = new CipherData(response.cipher);\n const updated = await this.upsert(data);\n return new Cipher(updated[cipher.id as CipherId], cipher.localData);\n }\n\n /**\n * Bulk update collections for many ciphers with the server\n * @param orgId\n * @param cipherIds\n * @param collectionIds\n * @param removeCollections - If true, the collectionIds will be removed from the ciphers, otherwise they will be added\n */\n async bulkUpdateCollectionsWithServer(\n orgId: OrganizationId,\n cipherIds: CipherId[],\n collectionIds: CollectionId[],\n removeCollections: boolean = false,\n ): Promise {\n const request = new CipherBulkUpdateCollectionsRequest(\n orgId,\n cipherIds,\n collectionIds,\n removeCollections,\n );\n\n await this.apiService.send(\"POST\", \"/ciphers/bulk-collections\", request, true, false);\n\n // Update the local state\n const ciphers = await firstValueFrom(this.ciphers$);\n\n for (const id of cipherIds) {\n const cipher = ciphers[id];\n if (cipher) {\n if (removeCollections) {\n cipher.collectionIds = cipher.collectionIds?.filter(\n (cid) => !collectionIds.includes(cid as CollectionId),\n );\n } else {\n // Append to the collectionIds if it's not already there\n cipher.collectionIds = [...new Set([...(cipher.collectionIds ?? []), ...collectionIds])];\n }\n }\n }\n\n await this.clearCache();\n await this.encryptedCiphersState.update(() => ciphers);\n }\n\n async upsert(cipher: CipherData | CipherData[]): Promise> {\n const ciphers = cipher instanceof CipherData ? [cipher] : cipher;\n return await this.updateEncryptedCipherState((current) => {\n ciphers.forEach((c) => (current[c.id as CipherId] = c));\n return current;\n });\n }\n\n async replace(ciphers: { [id: string]: CipherData }): Promise {\n await this.updateEncryptedCipherState(() => ciphers);\n }\n\n /**\n * Updates ciphers for the currently active user. Inactive users can only clear all ciphers, for now.\n * @param update update callback for encrypted cipher data\n * @returns\n */\n private async updateEncryptedCipherState(\n update: (current: Record) => Record,\n ): Promise> {\n const userId = await firstValueFrom(this.stateProvider.activeUserId$);\n // Store that we should wait for an update to return any ciphers\n await this.ciphersExpectingUpdate.forceValue(true);\n await this.clearDecryptedCiphersState(userId);\n const [, updatedCiphers] = await this.encryptedCiphersState.update((current) => {\n const result = update(current ?? {});\n return result;\n });\n return updatedCiphers;\n }\n\n async clear(userId?: UserId): Promise {\n userId ??= await firstValueFrom(this.stateProvider.activeUserId$);\n await this.clearEncryptedCiphersState(userId);\n await this.clearCache(userId);\n }\n\n async moveManyWithServer(ids: string[], folderId: string): Promise {\n await this.apiService.putMoveCiphers(new CipherBulkMoveRequest(ids, folderId));\n\n let ciphers = await firstValueFrom(this.ciphers$);\n if (ciphers == null) {\n ciphers = {};\n }\n\n ids.forEach((id) => {\n // eslint-disable-next-line\n if (ciphers.hasOwnProperty(id)) {\n ciphers[id as CipherId].folderId = folderId;\n }\n });\n\n await this.clearCache();\n await this.encryptedCiphersState.update(() => ciphers);\n }\n\n async delete(id: string | string[]): Promise {\n const ciphers = await firstValueFrom(this.ciphers$);\n if (ciphers == null) {\n return;\n }\n\n if (typeof id === \"string\") {\n const cipherId = id as CipherId;\n if (ciphers[cipherId] == null) {\n return;\n }\n delete ciphers[cipherId];\n } else {\n (id as CipherId[]).forEach((i) => {\n delete ciphers[i];\n });\n }\n\n await this.clearCache();\n await this.encryptedCiphersState.update(() => ciphers);\n }\n\n async deleteWithServer(id: string, asAdmin = false): Promise {\n if (asAdmin) {\n await this.apiService.deleteCipherAdmin(id);\n } else {\n await this.apiService.deleteCipher(id);\n }\n\n await this.delete(id);\n }\n\n async deleteManyWithServer(ids: string[], asAdmin = false): Promise {\n const request = new CipherBulkDeleteRequest(ids);\n if (asAdmin) {\n await this.apiService.deleteManyCiphersAdmin(request);\n } else {\n await this.apiService.deleteManyCiphers(request);\n }\n await this.delete(ids);\n }\n\n async deleteAttachment(id: string, attachmentId: string): Promise {\n let ciphers = await firstValueFrom(this.ciphers$);\n const cipherId = id as CipherId;\n // eslint-disable-next-line\n if (ciphers == null || !ciphers.hasOwnProperty(id) || ciphers[cipherId].attachments == null) {\n return;\n }\n\n for (let i = 0; i < ciphers[cipherId].attachments.length; i++) {\n if (ciphers[cipherId].attachments[i].id === attachmentId) {\n ciphers[cipherId].attachments.splice(i, 1);\n }\n }\n\n await this.clearCache();\n await this.encryptedCiphersState.update(() => {\n if (ciphers == null) {\n ciphers = {};\n }\n return ciphers;\n });\n }\n\n async deleteAttachmentWithServer(id: string, attachmentId: string): Promise {\n try {\n await this.apiService.deleteCipherAttachment(id, attachmentId);\n } catch (e) {\n return Promise.reject((e as ErrorResponse).getSingleMessage());\n }\n await this.deleteAttachment(id, attachmentId);\n }\n\n sortCiphersByLastUsed(a: CipherView, b: CipherView): number {\n const aLastUsed =\n a.localData && a.localData.lastUsedDate ? (a.localData.lastUsedDate as number) : null;\n const bLastUsed =\n b.localData && b.localData.lastUsedDate ? (b.localData.lastUsedDate as number) : null;\n\n const bothNotNull = aLastUsed != null && bLastUsed != null;\n if (bothNotNull && aLastUsed < bLastUsed) {\n return 1;\n }\n if (aLastUsed != null && bLastUsed == null) {\n return -1;\n }\n\n if (bothNotNull && aLastUsed > bLastUsed) {\n return -1;\n }\n if (bLastUsed != null && aLastUsed == null) {\n return 1;\n }\n\n return 0;\n }\n\n sortCiphersByLastUsedThenName(a: CipherView, b: CipherView): number {\n const result = this.sortCiphersByLastUsed(a, b);\n if (result !== 0) {\n return result;\n }\n\n return this.getLocaleSortingFunction()(a, b);\n }\n\n getLocaleSortingFunction(): (a: CipherView, b: CipherView) => number {\n return (a, b) => {\n let aName = a.name;\n let bName = b.name;\n\n if (aName == null && bName != null) {\n return -1;\n }\n if (aName != null && bName == null) {\n return 1;\n }\n if (aName == null && bName == null) {\n return 0;\n }\n\n const result = this.i18nService.collator\n ? this.i18nService.collator.compare(aName, bName)\n : aName.localeCompare(bName);\n\n if (result !== 0 || a.type !== CipherType.Login || b.type !== CipherType.Login) {\n return result;\n }\n\n if (a.login.username != null) {\n aName += a.login.username;\n }\n\n if (b.login.username != null) {\n bName += b.login.username;\n }\n\n return this.i18nService.collator\n ? this.i18nService.collator.compare(aName, bName)\n : aName.localeCompare(bName);\n };\n }\n\n async softDelete(id: string | string[]): Promise {\n let ciphers = await firstValueFrom(this.ciphers$);\n if (ciphers == null) {\n return;\n }\n\n const setDeletedDate = (cipherId: CipherId) => {\n if (ciphers[cipherId] == null) {\n return;\n }\n ciphers[cipherId].deletedDate = new Date().toISOString();\n };\n\n if (typeof id === \"string\") {\n setDeletedDate(id as CipherId);\n } else {\n (id as string[]).forEach(setDeletedDate);\n }\n\n await this.clearCache();\n await this.encryptedCiphersState.update(() => {\n if (ciphers == null) {\n ciphers = {};\n }\n return ciphers;\n });\n }\n\n async softDeleteWithServer(id: string, asAdmin = false): Promise {\n if (asAdmin) {\n await this.apiService.putDeleteCipherAdmin(id);\n } else {\n await this.apiService.putDeleteCipher(id);\n }\n\n await this.softDelete(id);\n }\n\n async softDeleteManyWithServer(ids: string[], asAdmin = false): Promise {\n const request = new CipherBulkDeleteRequest(ids);\n if (asAdmin) {\n await this.apiService.putDeleteManyCiphersAdmin(request);\n } else {\n await this.apiService.putDeleteManyCiphers(request);\n }\n\n await this.softDelete(ids);\n }\n\n async restore(\n cipher: { id: string; revisionDate: string } | { id: string; revisionDate: string }[],\n ) {\n let ciphers = await firstValueFrom(this.ciphers$);\n if (ciphers == null) {\n return;\n }\n\n const clearDeletedDate = (c: { id: string; revisionDate: string }) => {\n const cipherId = c.id as CipherId;\n if (ciphers[cipherId] == null) {\n return;\n }\n ciphers[cipherId].deletedDate = null;\n ciphers[cipherId].revisionDate = c.revisionDate;\n };\n\n if (cipher.constructor.name === Array.name) {\n (cipher as { id: string; revisionDate: string }[]).forEach(clearDeletedDate);\n } else {\n clearDeletedDate(cipher as { id: string; revisionDate: string });\n }\n\n await this.clearCache();\n await this.encryptedCiphersState.update(() => {\n if (ciphers == null) {\n ciphers = {};\n }\n return ciphers;\n });\n }\n\n async restoreWithServer(id: string, asAdmin = false): Promise {\n let response;\n if (asAdmin) {\n response = await this.apiService.putRestoreCipherAdmin(id);\n } else {\n response = await this.apiService.putRestoreCipher(id);\n }\n\n await this.restore({ id: id, revisionDate: response.revisionDate });\n }\n\n /**\n * No longer using an asAdmin Param. Org Vault bulkRestore will assess if an item is unassigned or editable\n * The Org Vault will pass those ids an array as well as the orgId when calling bulkRestore\n */\n async restoreManyWithServer(ids: string[], orgId: string = null): Promise {\n let response;\n\n if (orgId) {\n const request = new CipherBulkRestoreRequest(ids, orgId);\n response = await this.apiService.putRestoreManyCiphersAdmin(request);\n } else {\n const request = new CipherBulkRestoreRequest(ids);\n response = await this.apiService.putRestoreManyCiphers(request);\n }\n\n const restores: { id: string; revisionDate: string }[] = [];\n for (const cipher of response.data) {\n restores.push({ id: cipher.id, revisionDate: cipher.revisionDate });\n }\n await this.restore(restores);\n }\n\n async getKeyForCipherKeyDecryption(cipher: Cipher): Promise {\n return (\n (await this.cryptoService.getOrgKey(cipher.organizationId)) ||\n ((await this.cryptoService.getUserKeyWithLegacySupport()) as UserKey)\n );\n }\n\n async setAddEditCipherInfo(value: AddEditCipherInfo) {\n await this.addEditCipherInfoState.update(() => value, {\n shouldUpdate: (current) => !(current == null && value == null),\n });\n }\n\n // Helpers\n\n // In the case of a cipher that is being shared with an organization, we want to decrypt the\n // cipher key with the user's key and then re-encrypt it with the organization's key.\n private async encryptSharedCipher(model: CipherView): Promise {\n const keyForCipherKeyDecryption = await this.cryptoService.getUserKeyWithLegacySupport();\n return await this.encrypt(model, null, keyForCipherKeyDecryption);\n }\n\n private async updateModelfromExistingCipher(\n model: CipherView,\n originalCipher: Cipher,\n ): Promise {\n const existingCipher = await originalCipher.decrypt(\n await this.getKeyForCipherKeyDecryption(originalCipher),\n );\n model.passwordHistory = existingCipher.passwordHistory || [];\n if (model.type === CipherType.Login && existingCipher.type === CipherType.Login) {\n if (\n existingCipher.login.password != null &&\n existingCipher.login.password !== \"\" &&\n existingCipher.login.password !== model.login.password\n ) {\n const ph = new PasswordHistoryView();\n ph.password = existingCipher.login.password;\n ph.lastUsedDate = model.login.passwordRevisionDate = new Date();\n model.passwordHistory.splice(0, 0, ph);\n } else {\n model.login.passwordRevisionDate = existingCipher.login.passwordRevisionDate;\n }\n }\n if (existingCipher.hasFields) {\n const existingHiddenFields = existingCipher.fields.filter(\n (f) =>\n f.type === FieldType.Hidden &&\n f.name != null &&\n f.name !== \"\" &&\n f.value != null &&\n f.value !== \"\",\n );\n const hiddenFields =\n model.fields == null\n ? []\n : model.fields.filter(\n (f) => f.type === FieldType.Hidden && f.name != null && f.name !== \"\",\n );\n existingHiddenFields.forEach((ef) => {\n const matchedField = hiddenFields.find((f) => f.name === ef.name);\n if (matchedField == null || matchedField.value !== ef.value) {\n const ph = new PasswordHistoryView();\n ph.password = ef.name + \": \" + ef.value;\n ph.lastUsedDate = new Date();\n model.passwordHistory.splice(0, 0, ph);\n }\n });\n }\n }\n\n private adjustPasswordHistoryLength(model: CipherView) {\n if (model.passwordHistory != null && model.passwordHistory.length === 0) {\n model.passwordHistory = null;\n } else if (model.passwordHistory != null && model.passwordHistory.length > 5) {\n // only save last 5 history\n model.passwordHistory = model.passwordHistory.slice(0, 5);\n }\n }\n\n private async shareAttachmentWithServer(\n attachmentView: AttachmentView,\n cipherId: string,\n organizationId: string,\n ): Promise {\n const attachmentResponse = await this.apiService.nativeFetch(\n new Request(attachmentView.url, { cache: \"no-store\" }),\n );\n if (attachmentResponse.status !== 200) {\n throw Error(\"Failed to download attachment: \" + attachmentResponse.status.toString());\n }\n\n const encBuf = await EncArrayBuffer.fromResponse(attachmentResponse);\n const decBuf = await this.cryptoService.decryptFromBytes(encBuf, null);\n\n let encKey: UserKey | OrgKey;\n encKey = await this.cryptoService.getOrgKey(organizationId);\n encKey ||= (await this.cryptoService.getUserKeyWithLegacySupport()) as UserKey;\n\n const dataEncKey = await this.cryptoService.makeDataEncKey(encKey);\n\n const encFileName = await this.encryptService.encrypt(attachmentView.fileName, encKey);\n const encData = await this.encryptService.encryptToBytes(new Uint8Array(decBuf), dataEncKey[0]);\n\n const fd = new FormData();\n try {\n const blob = new Blob([encData.buffer], { type: \"application/octet-stream\" });\n fd.append(\"key\", dataEncKey[1].encryptedString);\n fd.append(\"data\", blob, encFileName.encryptedString);\n } catch (e) {\n if (Utils.isNode && !Utils.isBrowser) {\n fd.append(\"key\", dataEncKey[1].encryptedString);\n fd.append(\n \"data\",\n Buffer.from(encData.buffer) as any,\n {\n filepath: encFileName.encryptedString,\n contentType: \"application/octet-stream\",\n } as any,\n );\n } else {\n throw e;\n }\n }\n\n try {\n await this.apiService.postShareCipherAttachment(\n cipherId,\n attachmentView.id,\n fd,\n organizationId,\n );\n } catch (e) {\n throw new Error((e as ErrorResponse).getSingleMessage());\n }\n }\n\n private async encryptObjProperty(\n model: V,\n obj: D,\n map: any,\n key: SymmetricCryptoKey,\n ): Promise {\n const promises = [];\n const self = this;\n\n for (const prop in map) {\n // eslint-disable-next-line\n if (!map.hasOwnProperty(prop)) {\n continue;\n }\n\n (function (theProp, theObj) {\n const p = Promise.resolve()\n .then(() => {\n const modelProp = (model as any)[map[theProp] || theProp];\n if (modelProp && modelProp !== \"\") {\n return self.cryptoService.encrypt(modelProp, key);\n }\n return null;\n })\n .then((val: EncString) => {\n (theObj as any)[theProp] = val;\n });\n promises.push(p);\n })(prop, obj);\n }\n\n await Promise.all(promises);\n }\n\n private async encryptCipherData(cipher: Cipher, model: CipherView, key: SymmetricCryptoKey) {\n switch (cipher.type) {\n case CipherType.Login:\n cipher.login = new Login();\n cipher.login.passwordRevisionDate = model.login.passwordRevisionDate;\n cipher.login.autofillOnPageLoad = model.login.autofillOnPageLoad;\n await this.encryptObjProperty(\n model.login,\n cipher.login,\n {\n username: null,\n password: null,\n totp: null,\n },\n key,\n );\n\n if (model.login.uris != null) {\n cipher.login.uris = [];\n model.login.uris = model.login.uris.filter((u) => u.uri != null);\n for (let i = 0; i < model.login.uris.length; i++) {\n const loginUri = new LoginUri();\n loginUri.match = model.login.uris[i].match;\n await this.encryptObjProperty(\n model.login.uris[i],\n loginUri,\n {\n uri: null,\n },\n key,\n );\n const uriHash = await this.encryptService.hash(model.login.uris[i].uri, \"sha256\");\n loginUri.uriChecksum = await this.cryptoService.encrypt(uriHash, key);\n cipher.login.uris.push(loginUri);\n }\n }\n\n if (model.login.fido2Credentials != null) {\n cipher.login.fido2Credentials = await Promise.all(\n model.login.fido2Credentials.map(async (viewKey) => {\n const domainKey = new Fido2Credential();\n await this.encryptObjProperty(\n viewKey,\n domainKey,\n {\n credentialId: null,\n keyType: null,\n keyAlgorithm: null,\n keyCurve: null,\n keyValue: null,\n rpId: null,\n rpName: null,\n userHandle: null,\n userName: null,\n userDisplayName: null,\n origin: null,\n },\n key,\n );\n domainKey.counter = await this.cryptoService.encrypt(String(viewKey.counter), key);\n domainKey.discoverable = await this.cryptoService.encrypt(\n String(viewKey.discoverable),\n key,\n );\n domainKey.creationDate = viewKey.creationDate;\n return domainKey;\n }),\n );\n }\n return;\n case CipherType.SecureNote:\n cipher.secureNote = new SecureNote();\n cipher.secureNote.type = model.secureNote.type;\n return;\n case CipherType.Card:\n cipher.card = new Card();\n await this.encryptObjProperty(\n model.card,\n cipher.card,\n {\n cardholderName: null,\n brand: null,\n number: null,\n expMonth: null,\n expYear: null,\n code: null,\n },\n key,\n );\n return;\n case CipherType.Identity:\n cipher.identity = new Identity();\n await this.encryptObjProperty(\n model.identity,\n cipher.identity,\n {\n title: null,\n firstName: null,\n middleName: null,\n lastName: null,\n address1: null,\n address2: null,\n address3: null,\n city: null,\n state: null,\n postalCode: null,\n country: null,\n company: null,\n email: null,\n phone: null,\n ssn: null,\n username: null,\n passportNumber: null,\n licenseNumber: null,\n },\n key,\n );\n return;\n default:\n throw new Error(\"Unknown cipher type.\");\n }\n }\n\n private async getAutofillOnPageLoadDefault() {\n return await firstValueFrom(this.autofillSettingsService.autofillOnPageLoadDefault$);\n }\n\n private async getCipherForUrl(\n url: string,\n lastUsed: boolean,\n lastLaunched: boolean,\n autofillOnPageLoad: boolean,\n ): Promise {\n const cacheKey = autofillOnPageLoad ? \"autofillOnPageLoad-\" + url : url;\n\n if (!this.sortedCiphersCache.isCached(cacheKey)) {\n let ciphers = await this.getAllDecryptedForUrl(url);\n if (!ciphers) {\n return null;\n }\n\n if (autofillOnPageLoad) {\n const autofillOnPageLoadDefault = await this.getAutofillOnPageLoadDefault();\n\n ciphers = ciphers.filter(\n (cipher) =>\n cipher.login.autofillOnPageLoad ||\n (cipher.login.autofillOnPageLoad == null && autofillOnPageLoadDefault !== false),\n );\n if (ciphers.length === 0) {\n return null;\n }\n }\n\n this.sortedCiphersCache.addCiphers(cacheKey, ciphers);\n }\n\n if (lastLaunched) {\n return this.sortedCiphersCache.getLastLaunched(cacheKey);\n } else if (lastUsed) {\n return this.sortedCiphersCache.getLastUsed(cacheKey);\n } else {\n return this.sortedCiphersCache.getNext(cacheKey);\n }\n }\n\n private async clearEncryptedCiphersState(userId: UserId) {\n await this.stateProvider.setUserState(ENCRYPTED_CIPHERS, {}, userId);\n }\n\n private async clearDecryptedCiphersState(userId: UserId) {\n await this.setDecryptedCiphers(null, userId);\n this.clearSortedCiphers();\n }\n\n private clearSortedCiphers() {\n this.sortedCiphersCache.clear();\n }\n\n private async encryptCipher(\n model: CipherView,\n cipher: Cipher,\n key: SymmetricCryptoKey,\n ): Promise {\n await Promise.all([\n this.encryptObjProperty(\n model,\n cipher,\n {\n name: null,\n notes: null,\n },\n key,\n ),\n this.encryptCipherData(cipher, model, key),\n this.encryptFields(model.fields, key).then((fields) => {\n cipher.fields = fields;\n }),\n this.encryptPasswordHistories(model.passwordHistory, key).then((ph) => {\n cipher.passwordHistory = ph;\n }),\n this.encryptAttachments(model.attachments, key).then((attachments) => {\n cipher.attachments = attachments;\n }),\n ]);\n return cipher;\n }\n\n private async encryptCipherWithCipherKey(\n model: CipherView,\n cipher: Cipher,\n keyForCipherKeyEncryption: SymmetricCryptoKey,\n keyForCipherKeyDecryption: SymmetricCryptoKey,\n ): Promise {\n // First, we get the key for cipher key encryption, in its decrypted form\n let decryptedCipherKey: SymmetricCryptoKey;\n if (cipher.key == null) {\n decryptedCipherKey = await this.cryptoService.makeCipherKey();\n } else {\n decryptedCipherKey = new SymmetricCryptoKey(\n await this.encryptService.decryptToBytes(cipher.key, keyForCipherKeyDecryption),\n );\n }\n\n // Then, we have to encrypt the cipher key with the proper key.\n cipher.key = await this.encryptService.encrypt(\n decryptedCipherKey.key,\n keyForCipherKeyEncryption,\n );\n\n // Finally, we can encrypt the cipher with the decrypted cipher key.\n return this.encryptCipher(model, cipher, decryptedCipherKey);\n }\n\n private async getCipherKeyEncryptionEnabled(): Promise {\n return (\n flagEnabled(\"enableCipherKeyEncryption\") &&\n (await firstValueFrom(\n this.configService.checkServerMeetsVersionRequirement$(CIPHER_KEY_ENC_MIN_SERVER_VER),\n ))\n );\n }\n}\n","import { firstValueFrom, map, Observable } from \"rxjs\";\nimport { Jsonify } from \"type-fest\";\n\nimport { CryptoService } from \"../../platform/abstractions/crypto.service\";\nimport { I18nService } from \"../../platform/abstractions/i18n.service\";\nimport { Utils } from \"../../platform/misc/utils\";\nimport {\n ActiveUserState,\n StateProvider,\n COLLECTION_DATA,\n DeriveDefinition,\n DerivedState,\n UserKeyDefinition,\n} from \"../../platform/state\";\nimport { CollectionId, OrganizationId, UserId } from \"../../types/guid\";\nimport { CollectionService as CollectionServiceAbstraction } from \"../../vault/abstractions/collection.service\";\nimport { CollectionData } from \"../models/data/collection.data\";\nimport { Collection } from \"../models/domain/collection\";\nimport { TreeNode } from \"../models/domain/tree-node\";\nimport { CollectionView } from \"../models/view/collection.view\";\nimport { ServiceUtils } from \"../service-utils\";\n\nconst ENCRYPTED_COLLECTION_DATA_KEY = UserKeyDefinition.record(\n COLLECTION_DATA,\n \"collections\",\n {\n deserializer: (jsonData: Jsonify) => CollectionData.fromJSON(jsonData),\n clearOn: [\"logout\"],\n },\n);\n\nconst DECRYPTED_COLLECTION_DATA_KEY = DeriveDefinition.from<\n Record,\n CollectionView[],\n { collectionService: CollectionService }\n>(ENCRYPTED_COLLECTION_DATA_KEY, {\n deserializer: (obj) => obj.map((collection) => CollectionView.fromJSON(collection)),\n derive: async (collections: Record, { collectionService }) => {\n const data: Collection[] = [];\n for (const id in collections ?? {}) {\n const collectionId = id as CollectionId;\n data.push(new Collection(collections[collectionId]));\n }\n return await collectionService.decryptMany(data);\n },\n});\n\nconst NestingDelimiter = \"/\";\n\nexport class CollectionService implements CollectionServiceAbstraction {\n private encryptedCollectionDataState: ActiveUserState>;\n encryptedCollections$: Observable;\n private decryptedCollectionDataState: DerivedState;\n decryptedCollections$: Observable;\n\n decryptedCollectionViews$(ids: CollectionId[]): Observable {\n return this.decryptedCollections$.pipe(\n map((collections) => collections.filter((c) => ids.includes(c.id as CollectionId))),\n );\n }\n\n constructor(\n private cryptoService: CryptoService,\n private i18nService: I18nService,\n protected stateProvider: StateProvider,\n ) {\n this.encryptedCollectionDataState = this.stateProvider.getActive(ENCRYPTED_COLLECTION_DATA_KEY);\n this.encryptedCollections$ = this.encryptedCollectionDataState.state$.pipe(\n map((collections) => {\n const response: Collection[] = [];\n for (const id in collections ?? {}) {\n response.push(new Collection(collections[id as CollectionId]));\n }\n return response;\n }),\n );\n\n this.decryptedCollectionDataState = this.stateProvider.getDerived(\n this.encryptedCollectionDataState.state$,\n DECRYPTED_COLLECTION_DATA_KEY,\n { collectionService: this },\n );\n\n this.decryptedCollections$ = this.decryptedCollectionDataState.state$;\n }\n\n async clearActiveUserCache(): Promise {\n await this.decryptedCollectionDataState.forceValue(null);\n }\n\n async encrypt(model: CollectionView): Promise {\n if (model.organizationId == null) {\n throw new Error(\"Collection has no organization id.\");\n }\n const key = await this.cryptoService.getOrgKey(model.organizationId);\n if (key == null) {\n throw new Error(\"No key for this collection's organization.\");\n }\n const collection = new Collection();\n collection.id = model.id;\n collection.organizationId = model.organizationId;\n collection.readOnly = model.readOnly;\n collection.name = await this.cryptoService.encrypt(model.name, key);\n return collection;\n }\n\n async decryptMany(collections: Collection[]): Promise {\n if (collections == null) {\n return [];\n }\n const decCollections: CollectionView[] = [];\n\n const organizationKeys = await firstValueFrom(this.cryptoService.activeUserOrgKeys$);\n\n const promises: Promise[] = [];\n collections.forEach((collection) => {\n promises.push(\n collection\n .decrypt(organizationKeys[collection.organizationId as OrganizationId])\n .then((c) => decCollections.push(c)),\n );\n });\n await Promise.all(promises);\n return decCollections.sort(Utils.getSortFunction(this.i18nService, \"name\"));\n }\n\n async get(id: string): Promise {\n return (\n (await firstValueFrom(\n this.encryptedCollections$.pipe(map((cs) => cs.find((c) => c.id === id))),\n )) ?? null\n );\n }\n\n async getAll(): Promise {\n return await firstValueFrom(this.encryptedCollections$);\n }\n\n async getAllDecrypted(): Promise {\n return await firstValueFrom(this.decryptedCollections$);\n }\n\n async getAllNested(collections: CollectionView[] = null): Promise[]> {\n if (collections == null) {\n collections = await this.getAllDecrypted();\n }\n const nodes: TreeNode[] = [];\n collections.forEach((c) => {\n const collectionCopy = new CollectionView();\n collectionCopy.id = c.id;\n collectionCopy.organizationId = c.organizationId;\n const parts = c.name != null ? c.name.replace(/^\\/+|\\/+$/g, \"\").split(NestingDelimiter) : [];\n ServiceUtils.nestedTraverse(nodes, 0, parts, collectionCopy, null, NestingDelimiter);\n });\n return nodes;\n }\n\n /**\n * @deprecated August 30 2022: Moved to new Vault Filter Service\n * Remove when Desktop and Browser are updated\n */\n async getNested(id: string): Promise> {\n const collections = await this.getAllNested();\n return ServiceUtils.getTreeNodeObjectFromList(collections, id) as TreeNode;\n }\n\n async upsert(toUpdate: CollectionData | CollectionData[]): Promise {\n if (toUpdate == null) {\n return;\n }\n await this.encryptedCollectionDataState.update((collections) => {\n if (collections == null) {\n collections = {};\n }\n if (Array.isArray(toUpdate)) {\n toUpdate.forEach((c) => {\n collections[c.id] = c;\n });\n } else {\n collections[toUpdate.id] = toUpdate;\n }\n return collections;\n });\n }\n\n async replace(collections: Record): Promise {\n await this.encryptedCollectionDataState.update(() => collections);\n }\n\n async clear(userId?: UserId): Promise {\n if (userId == null) {\n await this.encryptedCollectionDataState.update(() => null);\n await this.decryptedCollectionDataState.forceValue(null);\n } else {\n await this.stateProvider.getUser(userId, ENCRYPTED_COLLECTION_DATA_KEY).update(() => null);\n }\n }\n\n async delete(id: CollectionId | CollectionId[]): Promise {\n await this.encryptedCollectionDataState.update((collections) => {\n if (collections == null) {\n collections = {};\n }\n if (typeof id === \"string\") {\n delete collections[id];\n } else {\n (id as CollectionId[]).forEach((i) => {\n delete collections[i];\n });\n }\n return collections;\n });\n }\n}\n","import { Jsonify } from \"type-fest\";\n\nimport { FolderResponse } from \"../response/folder.response\";\n\nexport class FolderData {\n id: string;\n name: string;\n revisionDate: string;\n\n constructor(response: Partial) {\n this.name = response?.name;\n this.id = response?.id;\n this.revisionDate = response?.revisionDate;\n }\n\n static fromJSON(obj: Jsonify) {\n return Object.assign(new FolderData({}), obj);\n }\n}\n","import { Jsonify } from \"type-fest\";\n\nimport { CryptoService } from \"../../../platform/abstractions/crypto.service\";\nimport { DeriveDefinition, FOLDER_DISK, UserKeyDefinition } from \"../../../platform/state\";\nimport { FolderService } from \"../../abstractions/folder/folder.service.abstraction\";\nimport { FolderData } from \"../../models/data/folder.data\";\nimport { Folder } from \"../../models/domain/folder\";\nimport { FolderView } from \"../../models/view/folder.view\";\n\nexport const FOLDER_ENCRYPTED_FOLDERS = UserKeyDefinition.record(\n FOLDER_DISK,\n \"folders\",\n {\n deserializer: (obj: Jsonify) => FolderData.fromJSON(obj),\n clearOn: [\"logout\"],\n },\n);\n\nexport const FOLDER_DECRYPTED_FOLDERS = DeriveDefinition.from<\n Record,\n FolderView[],\n { folderService: FolderService; cryptoService: CryptoService }\n>(FOLDER_ENCRYPTED_FOLDERS, {\n deserializer: (obj) => obj.map((f) => FolderView.fromJSON(f)),\n derive: async (from, { folderService, cryptoService }) => {\n const folders = Object.values(from || {}).map((f) => new Folder(f));\n\n if (await cryptoService.hasUserKey()) {\n return await folderService.decryptFolders(folders);\n } else {\n return [];\n }\n },\n});\n","import { ProviderStatusType, ProviderUserStatusType, ProviderUserType } from \"../../enums\";\nimport { ProfileProviderResponse } from \"../response/profile-provider.response\";\n\nexport class ProviderData {\n id: string;\n name: string;\n status: ProviderUserStatusType;\n type: ProviderUserType;\n enabled: boolean;\n userId: string;\n useEvents: boolean;\n providerStatus: ProviderStatusType;\n\n constructor(response: ProfileProviderResponse) {\n this.id = response.id;\n this.name = response.name;\n this.status = response.status;\n this.type = response.type;\n this.enabled = response.enabled;\n this.userId = response.userId;\n this.useEvents = response.useEvents;\n this.providerStatus = response.providerStatus;\n }\n}\n","import { firstValueFrom, map, of, switchMap } from \"rxjs\";\n\nimport { ApiService } from \"../../abstractions/api.service\";\nimport { AccountService } from \"../../auth/abstractions/account.service\";\nimport { AuthService } from \"../../auth/abstractions/auth.service\";\nimport { AuthenticationStatus } from \"../../auth/enums/authentication-status\";\nimport {\n SyncCipherNotification,\n SyncFolderNotification,\n SyncSendNotification,\n} from \"../../models/response/notification.response\";\nimport { SendData } from \"../../tools/send/models/data/send.data\";\nimport { SendApiService } from \"../../tools/send/services/send-api.service.abstraction\";\nimport { InternalSendService } from \"../../tools/send/services/send.service.abstraction\";\nimport { CipherService } from \"../../vault/abstractions/cipher.service\";\nimport { CollectionService } from \"../../vault/abstractions/collection.service\";\nimport { FolderApiServiceAbstraction } from \"../../vault/abstractions/folder/folder-api.service.abstraction\";\nimport { InternalFolderService } from \"../../vault/abstractions/folder/folder.service.abstraction\";\nimport { SyncService } from \"../../vault/abstractions/sync/sync.service.abstraction\";\nimport { CipherData } from \"../../vault/models/data/cipher.data\";\nimport { FolderData } from \"../../vault/models/data/folder.data\";\nimport { LogService } from \"../abstractions/log.service\";\nimport { StateService } from \"../abstractions/state.service\";\nimport { MessageSender } from \"../messaging\";\n\n/**\n * Core SyncService Logic EXCEPT for fullSync so that implementations can differ.\n */\nexport abstract class CoreSyncService implements SyncService {\n syncInProgress = false;\n\n constructor(\n protected readonly stateService: StateService,\n protected readonly folderService: InternalFolderService,\n protected readonly folderApiService: FolderApiServiceAbstraction,\n protected readonly messageSender: MessageSender,\n protected readonly logService: LogService,\n protected readonly cipherService: CipherService,\n protected readonly collectionService: CollectionService,\n protected readonly apiService: ApiService,\n protected readonly accountService: AccountService,\n protected readonly authService: AuthService,\n protected readonly sendService: InternalSendService,\n protected readonly sendApiService: SendApiService,\n ) {}\n\n abstract fullSync(forceSync: boolean, allowThrowOnError?: boolean): Promise;\n\n async getLastSync(): Promise {\n if ((await this.stateService.getUserId()) == null) {\n return null;\n }\n\n const lastSync = await this.stateService.getLastSync();\n if (lastSync) {\n return new Date(lastSync);\n }\n\n return null;\n }\n\n async setLastSync(date: Date, userId?: string): Promise {\n await this.stateService.setLastSync(date.toJSON(), { userId: userId });\n }\n\n async syncUpsertFolder(notification: SyncFolderNotification, isEdit: boolean): Promise {\n this.syncStarted();\n if (await this.stateService.getIsAuthenticated()) {\n try {\n const localFolder = await this.folderService.get(notification.id);\n if (\n (!isEdit && localFolder == null) ||\n (isEdit && localFolder != null && localFolder.revisionDate < notification.revisionDate)\n ) {\n const remoteFolder = await this.folderApiService.get(notification.id);\n if (remoteFolder != null) {\n await this.folderService.upsert(new FolderData(remoteFolder));\n this.messageSender.send(\"syncedUpsertedFolder\", { folderId: notification.id });\n return this.syncCompleted(true);\n }\n }\n } catch (e) {\n this.logService.error(e);\n }\n }\n return this.syncCompleted(false);\n }\n\n async syncDeleteFolder(notification: SyncFolderNotification): Promise {\n this.syncStarted();\n if (await this.stateService.getIsAuthenticated()) {\n await this.folderService.delete(notification.id);\n this.messageSender.send(\"syncedDeletedFolder\", { folderId: notification.id });\n this.syncCompleted(true);\n return true;\n }\n return this.syncCompleted(false);\n }\n\n async syncUpsertCipher(notification: SyncCipherNotification, isEdit: boolean): Promise {\n this.syncStarted();\n if (await this.stateService.getIsAuthenticated()) {\n try {\n let shouldUpdate = true;\n const localCipher = await this.cipherService.get(notification.id);\n if (localCipher != null && localCipher.revisionDate >= notification.revisionDate) {\n shouldUpdate = false;\n }\n\n let checkCollections = false;\n if (shouldUpdate) {\n if (isEdit) {\n shouldUpdate = localCipher != null;\n checkCollections = true;\n } else {\n if (notification.collectionIds == null || notification.organizationId == null) {\n shouldUpdate = localCipher == null;\n } else {\n shouldUpdate = false;\n checkCollections = true;\n }\n }\n }\n\n if (\n !shouldUpdate &&\n checkCollections &&\n notification.organizationId != null &&\n notification.collectionIds != null &&\n notification.collectionIds.length > 0\n ) {\n const collections = await this.collectionService.getAll();\n if (collections != null) {\n for (let i = 0; i < collections.length; i++) {\n if (notification.collectionIds.indexOf(collections[i].id) > -1) {\n shouldUpdate = true;\n break;\n }\n }\n }\n }\n\n if (shouldUpdate) {\n const remoteCipher = await this.apiService.getFullCipherDetails(notification.id);\n if (remoteCipher != null) {\n await this.cipherService.upsert(new CipherData(remoteCipher));\n this.messageSender.send(\"syncedUpsertedCipher\", { cipherId: notification.id });\n return this.syncCompleted(true);\n }\n }\n } catch (e) {\n if (e != null && e.statusCode === 404 && isEdit) {\n await this.cipherService.delete(notification.id);\n this.messageSender.send(\"syncedDeletedCipher\", { cipherId: notification.id });\n return this.syncCompleted(true);\n }\n }\n }\n return this.syncCompleted(false);\n }\n\n async syncDeleteCipher(notification: SyncCipherNotification): Promise {\n this.syncStarted();\n if (await this.stateService.getIsAuthenticated()) {\n await this.cipherService.delete(notification.id);\n this.messageSender.send(\"syncedDeletedCipher\", { cipherId: notification.id });\n return this.syncCompleted(true);\n }\n return this.syncCompleted(false);\n }\n\n async syncUpsertSend(notification: SyncSendNotification, isEdit: boolean): Promise {\n this.syncStarted();\n const [activeUserId, status] = await firstValueFrom(\n this.accountService.activeAccount$.pipe(\n switchMap((a) => {\n if (a == null) {\n of([null, AuthenticationStatus.LoggedOut]);\n }\n return this.authService.authStatusFor$(a.id).pipe(map((s) => [a.id, s]));\n }),\n ),\n );\n // Process only notifications for currently active user when user is not logged out\n // TODO: once send service allows data manipulation of non-active users, this should process any received notification\n if (activeUserId === notification.userId && status !== AuthenticationStatus.LoggedOut) {\n try {\n const localSend = await firstValueFrom(this.sendService.get$(notification.id));\n if (\n (!isEdit && localSend == null) ||\n (isEdit && localSend != null && localSend.revisionDate < notification.revisionDate)\n ) {\n const remoteSend = await this.sendApiService.getSend(notification.id);\n if (remoteSend != null) {\n await this.sendService.upsert(new SendData(remoteSend));\n this.messageSender.send(\"syncedUpsertedSend\", { sendId: notification.id });\n return this.syncCompleted(true);\n }\n }\n } catch (e) {\n this.logService.error(e);\n }\n }\n return this.syncCompleted(false);\n }\n\n async syncDeleteSend(notification: SyncSendNotification): Promise {\n this.syncStarted();\n if (await this.stateService.getIsAuthenticated()) {\n await this.sendService.delete(notification.id);\n this.messageSender.send(\"syncedDeletedSend\", { sendId: notification.id });\n this.syncCompleted(true);\n return true;\n }\n return this.syncCompleted(false);\n }\n\n // Helpers\n\n protected syncStarted() {\n this.syncInProgress = true;\n this.messageSender.send(\"syncStarted\");\n }\n\n protected syncCompleted(successfully: boolean): boolean {\n this.syncInProgress = false;\n this.messageSender.send(\"syncCompleted\", { successfully: successfully });\n return successfully;\n }\n}\n","import { firstValueFrom } from \"rxjs\";\n\nimport { LogoutReason, UserDecryptionOptionsServiceAbstraction } from \"@bitwarden/auth/common\";\n\nimport { ApiService } from \"../../../abstractions/api.service\";\nimport { InternalOrganizationServiceAbstraction } from \"../../../admin-console/abstractions/organization/organization.service.abstraction\";\nimport { InternalPolicyService } from \"../../../admin-console/abstractions/policy/policy.service.abstraction\";\nimport { ProviderService } from \"../../../admin-console/abstractions/provider.service\";\nimport { OrganizationUserType } from \"../../../admin-console/enums\";\nimport { OrganizationData } from \"../../../admin-console/models/data/organization.data\";\nimport { PolicyData } from \"../../../admin-console/models/data/policy.data\";\nimport { ProviderData } from \"../../../admin-console/models/data/provider.data\";\nimport { PolicyResponse } from \"../../../admin-console/models/response/policy.response\";\nimport { AccountService } from \"../../../auth/abstractions/account.service\";\nimport { AuthService } from \"../../../auth/abstractions/auth.service\";\nimport { AvatarService } from \"../../../auth/abstractions/avatar.service\";\nimport { KeyConnectorService } from \"../../../auth/abstractions/key-connector.service\";\nimport { InternalMasterPasswordServiceAbstraction } from \"../../../auth/abstractions/master-password.service.abstraction\";\nimport { TokenService } from \"../../../auth/abstractions/token.service\";\nimport { ForceSetPasswordReason } from \"../../../auth/models/domain/force-set-password-reason\";\nimport { DomainSettingsService } from \"../../../autofill/services/domain-settings.service\";\nimport { BillingAccountProfileStateService } from \"../../../billing/abstractions/account/billing-account-profile-state.service\";\nimport { DomainsResponse } from \"../../../models/response/domains.response\";\nimport { ProfileResponse } from \"../../../models/response/profile.response\";\nimport { CryptoService } from \"../../../platform/abstractions/crypto.service\";\nimport { LogService } from \"../../../platform/abstractions/log.service\";\nimport { StateService } from \"../../../platform/abstractions/state.service\";\nimport { MessageSender } from \"../../../platform/messaging\";\nimport { sequentialize } from \"../../../platform/misc/sequentialize\";\nimport { CoreSyncService } from \"../../../platform/sync/core-sync.service\";\nimport { SendData } from \"../../../tools/send/models/data/send.data\";\nimport { SendResponse } from \"../../../tools/send/models/response/send.response\";\nimport { SendApiService } from \"../../../tools/send/services/send-api.service.abstraction\";\nimport { InternalSendService } from \"../../../tools/send/services/send.service.abstraction\";\nimport { UserId } from \"../../../types/guid\";\nimport { CipherService } from \"../../../vault/abstractions/cipher.service\";\nimport { FolderApiServiceAbstraction } from \"../../../vault/abstractions/folder/folder-api.service.abstraction\";\nimport { InternalFolderService } from \"../../../vault/abstractions/folder/folder.service.abstraction\";\nimport { CipherData } from \"../../../vault/models/data/cipher.data\";\nimport { FolderData } from \"../../../vault/models/data/folder.data\";\nimport { CipherResponse } from \"../../../vault/models/response/cipher.response\";\nimport { FolderResponse } from \"../../../vault/models/response/folder.response\";\nimport { CollectionService } from \"../../abstractions/collection.service\";\nimport { CollectionData } from \"../../models/data/collection.data\";\nimport { CollectionDetailsResponse } from \"../../models/response/collection.response\";\n\nexport class SyncService extends CoreSyncService {\n constructor(\n private masterPasswordService: InternalMasterPasswordServiceAbstraction,\n accountService: AccountService,\n apiService: ApiService,\n private domainSettingsService: DomainSettingsService,\n folderService: InternalFolderService,\n cipherService: CipherService,\n private cryptoService: CryptoService,\n collectionService: CollectionService,\n messageSender: MessageSender,\n private policyService: InternalPolicyService,\n sendService: InternalSendService,\n logService: LogService,\n private keyConnectorService: KeyConnectorService,\n stateService: StateService,\n private providerService: ProviderService,\n folderApiService: FolderApiServiceAbstraction,\n private organizationService: InternalOrganizationServiceAbstraction,\n sendApiService: SendApiService,\n private userDecryptionOptionsService: UserDecryptionOptionsServiceAbstraction,\n private avatarService: AvatarService,\n private logoutCallback: (logoutReason: LogoutReason, userId?: UserId) => Promise,\n private billingAccountProfileStateService: BillingAccountProfileStateService,\n private tokenService: TokenService,\n authService: AuthService,\n ) {\n super(\n stateService,\n folderService,\n folderApiService,\n messageSender,\n logService,\n cipherService,\n collectionService,\n apiService,\n accountService,\n authService,\n sendService,\n sendApiService,\n );\n }\n\n @sequentialize(() => \"fullSync\")\n override async fullSync(forceSync: boolean, allowThrowOnError = false): Promise {\n this.syncStarted();\n const isAuthenticated = await this.stateService.getIsAuthenticated();\n if (!isAuthenticated) {\n return this.syncCompleted(false);\n }\n\n const now = new Date();\n let needsSync = false;\n try {\n needsSync = await this.needsSyncing(forceSync);\n } catch (e) {\n if (allowThrowOnError) {\n this.syncCompleted(false);\n throw e;\n }\n }\n\n if (!needsSync) {\n await this.setLastSync(now);\n return this.syncCompleted(false);\n }\n\n try {\n await this.apiService.refreshIdentityToken();\n const response = await this.apiService.getSync();\n\n await this.syncProfile(response.profile);\n await this.syncFolders(response.folders);\n await this.syncCollections(response.collections);\n await this.syncCiphers(response.ciphers);\n await this.syncSends(response.sends);\n await this.syncSettings(response.domains);\n await this.syncPolicies(response.policies);\n\n await this.setLastSync(now);\n return this.syncCompleted(true);\n } catch (e) {\n if (allowThrowOnError) {\n this.syncCompleted(false);\n throw e;\n } else {\n return this.syncCompleted(false);\n }\n }\n }\n\n private async needsSyncing(forceSync: boolean) {\n if (forceSync) {\n return true;\n }\n\n const lastSync = await this.getLastSync();\n if (lastSync == null || lastSync.getTime() === 0) {\n return true;\n }\n\n const response = await this.apiService.getAccountRevisionDate();\n if (response < 0 && this.logoutCallback) {\n // Account was deleted, log out now\n await this.logoutCallback(\"accountDeleted\");\n }\n\n if (new Date(response) <= lastSync) {\n return false;\n }\n return true;\n }\n\n private async syncProfile(response: ProfileResponse) {\n const stamp = await this.tokenService.getSecurityStamp(response.id);\n if (stamp != null && stamp !== response.securityStamp) {\n if (this.logoutCallback != null) {\n await this.logoutCallback(\"invalidSecurityStamp\");\n }\n\n throw new Error(\"Stamp has changed\");\n }\n\n await this.cryptoService.setMasterKeyEncryptedUserKey(response.key);\n await this.cryptoService.setPrivateKey(response.privateKey, response.id);\n await this.cryptoService.setProviderKeys(response.providers, response.id);\n await this.cryptoService.setOrgKeys(\n response.organizations,\n response.providerOrganizations,\n response.id,\n );\n await this.avatarService.setSyncAvatarColor(response.id, response.avatarColor);\n await this.tokenService.setSecurityStamp(response.securityStamp, response.id);\n await this.accountService.setAccountEmailVerified(response.id, response.emailVerified);\n\n await this.billingAccountProfileStateService.setHasPremium(\n response.premiumPersonally,\n response.premiumFromOrganization,\n );\n await this.keyConnectorService.setUsesKeyConnector(response.usesKeyConnector);\n\n await this.setForceSetPasswordReasonIfNeeded(response);\n\n const providers: { [id: string]: ProviderData } = {};\n response.providers.forEach((p) => {\n providers[p.id] = new ProviderData(p);\n });\n\n await this.providerService.save(providers);\n\n await this.syncProfileOrganizations(response);\n\n if (await this.keyConnectorService.userNeedsMigration()) {\n await this.keyConnectorService.setConvertAccountRequired(true);\n this.messageSender.send(\"convertAccountToKeyConnector\");\n } else {\n // FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.keyConnectorService.removeConvertAccountRequired();\n }\n }\n\n private async setForceSetPasswordReasonIfNeeded(profileResponse: ProfileResponse) {\n // The `forcePasswordReset` flag indicates an admin has reset the user's password and must be updated\n if (profileResponse.forcePasswordReset) {\n await this.masterPasswordService.setForceSetPasswordReason(\n ForceSetPasswordReason.AdminForcePasswordReset,\n profileResponse.id,\n );\n }\n\n const userDecryptionOptions = await firstValueFrom(\n this.userDecryptionOptionsService.userDecryptionOptionsById$(profileResponse.id),\n );\n\n if (userDecryptionOptions === null || userDecryptionOptions === undefined) {\n this.logService.error(\"Sync: Account decryption options are null or undefined.\");\n }\n\n // Even though TDE users should only be in a single org (per single org policy), check\n // through all orgs for the manageResetPassword permission. If they have it in any org,\n // they should be forced to set a password.\n let hasManageResetPasswordPermission = false;\n for (const org of profileResponse.organizations) {\n const isAdmin = org.type === OrganizationUserType.Admin;\n const isOwner = org.type === OrganizationUserType.Owner;\n\n // Note: apparently permissions only come down populated for custom roles.\n if (isAdmin || isOwner || (org.permissions && org.permissions.manageResetPassword)) {\n hasManageResetPasswordPermission = true;\n break;\n }\n }\n\n if (\n userDecryptionOptions.trustedDeviceOption !== undefined &&\n !userDecryptionOptions.hasMasterPassword &&\n hasManageResetPasswordPermission\n ) {\n // TDE user w/out MP went from having no password reset permission to having it.\n // Must set the force password reset reason so the auth guard will redirect to the set password page.\n const userId = (await firstValueFrom(this.accountService.activeAccount$))?.id;\n await this.masterPasswordService.setForceSetPasswordReason(\n ForceSetPasswordReason.TdeUserWithoutPasswordHasPasswordResetPermission,\n userId,\n );\n }\n }\n\n private async syncProfileOrganizations(response: ProfileResponse) {\n const organizations: { [id: string]: OrganizationData } = {};\n response.organizations.forEach((o) => {\n organizations[o.id] = new OrganizationData(o, {\n isMember: true,\n isProviderUser: false,\n });\n });\n\n response.providerOrganizations.forEach((o) => {\n if (organizations[o.id] == null) {\n organizations[o.id] = new OrganizationData(o, {\n isMember: false,\n isProviderUser: true,\n });\n } else {\n organizations[o.id].isProviderUser = true;\n }\n });\n\n await this.organizationService.replace(organizations);\n }\n\n private async syncFolders(response: FolderResponse[]) {\n const folders: { [id: string]: FolderData } = {};\n response.forEach((f) => {\n folders[f.id] = new FolderData(f);\n });\n return await this.folderService.replace(folders);\n }\n\n private async syncCollections(response: CollectionDetailsResponse[]) {\n const collections: { [id: string]: CollectionData } = {};\n response.forEach((c) => {\n collections[c.id] = new CollectionData(c);\n });\n return await this.collectionService.replace(collections);\n }\n\n private async syncCiphers(response: CipherResponse[]) {\n const ciphers: { [id: string]: CipherData } = {};\n response.forEach((c) => {\n ciphers[c.id] = new CipherData(c);\n });\n return await this.cipherService.replace(ciphers);\n }\n\n private async syncSends(response: SendResponse[]) {\n const sends: { [id: string]: SendData } = {};\n response.forEach((s) => {\n sends[s.id] = new SendData(s);\n });\n return await this.sendService.replace(sends);\n }\n\n private async syncSettings(response: DomainsResponse) {\n let eqDomains: string[][] = [];\n if (response != null && response.equivalentDomains != null) {\n eqDomains = eqDomains.concat(response.equivalentDomains);\n }\n\n if (response != null && response.globalEquivalentDomains != null) {\n response.globalEquivalentDomains.forEach((global) => {\n if (global.domains.length > 0) {\n eqDomains.push(global.domains);\n }\n });\n }\n\n return this.domainSettingsService.setEquivalentDomains(eqDomains);\n }\n\n private async syncPolicies(response: PolicyResponse[]) {\n const policies: { [id: string]: PolicyData } = {};\n if (response != null) {\n response.forEach((p) => {\n policies[p.id] = new PolicyData(p);\n });\n }\n return await this.policyService.replace(policies);\n }\n}\n","import { CryptoFunctionService } from \"../../platform/abstractions/crypto-function.service\";\nimport { LogService } from \"../../platform/abstractions/log.service\";\nimport { Utils } from \"../../platform/misc/utils\";\nimport { TotpService as TotpServiceAbstraction } from \"../abstractions/totp.service\";\n\nconst B32Chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\";\nconst SteamChars = \"23456789BCDFGHJKMNPQRTVWXY\";\n\nexport class TotpService implements TotpServiceAbstraction {\n constructor(\n private cryptoFunctionService: CryptoFunctionService,\n private logService: LogService,\n ) {}\n\n async getCode(key: string): Promise {\n if (key == null) {\n return null;\n }\n let period = 30;\n let alg: \"sha1\" | \"sha256\" | \"sha512\" = \"sha1\";\n let digits = 6;\n let keyB32 = key;\n const isOtpAuth = key.toLowerCase().indexOf(\"otpauth://\") === 0;\n const isSteamAuth = !isOtpAuth && key.toLowerCase().indexOf(\"steam://\") === 0;\n if (isOtpAuth) {\n const params = Utils.getQueryParams(key);\n if (params.has(\"digits\") && params.get(\"digits\") != null) {\n try {\n const digitParams = parseInt(params.get(\"digits\").trim(), null);\n if (digitParams > 10) {\n digits = 10;\n } else if (digitParams > 0) {\n digits = digitParams;\n }\n } catch {\n this.logService.error(\"Invalid digits param.\");\n }\n }\n if (params.has(\"period\") && params.get(\"period\") != null) {\n try {\n const periodParam = parseInt(params.get(\"period\").trim(), null);\n if (periodParam > 0) {\n period = periodParam;\n }\n } catch {\n this.logService.error(\"Invalid period param.\");\n }\n }\n if (params.has(\"secret\") && params.get(\"secret\") != null) {\n keyB32 = params.get(\"secret\");\n }\n if (params.has(\"algorithm\") && params.get(\"algorithm\") != null) {\n const algParam = params.get(\"algorithm\").toLowerCase();\n if (algParam === \"sha1\" || algParam === \"sha256\" || algParam === \"sha512\") {\n alg = algParam;\n }\n }\n } else if (isSteamAuth) {\n keyB32 = key.substr(\"steam://\".length);\n digits = 5;\n }\n\n const epoch = Math.round(new Date().getTime() / 1000.0);\n const timeHex = this.leftPad(this.decToHex(Math.floor(epoch / period)), 16, \"0\");\n const timeBytes = Utils.fromHexToArray(timeHex);\n const keyBytes = this.b32ToBytes(keyB32);\n\n if (!keyBytes.length || !timeBytes.length) {\n return null;\n }\n\n const hash = await this.sign(keyBytes, timeBytes, alg);\n if (hash.length === 0) {\n return null;\n }\n\n const offset = hash[hash.length - 1] & 0xf;\n const binary =\n ((hash[offset] & 0x7f) << 24) |\n ((hash[offset + 1] & 0xff) << 16) |\n ((hash[offset + 2] & 0xff) << 8) |\n (hash[offset + 3] & 0xff);\n\n let otp = \"\";\n if (isSteamAuth) {\n let fullCode = binary & 0x7fffffff;\n for (let i = 0; i < digits; i++) {\n otp += SteamChars[fullCode % SteamChars.length];\n fullCode = Math.trunc(fullCode / SteamChars.length);\n }\n } else {\n otp = (binary % Math.pow(10, digits)).toString();\n otp = this.leftPad(otp, digits, \"0\");\n }\n\n return otp;\n }\n\n getTimeInterval(key: string): number {\n let period = 30;\n if (key != null && key.toLowerCase().indexOf(\"otpauth://\") === 0) {\n const params = Utils.getQueryParams(key);\n if (params.has(\"period\") && params.get(\"period\") != null) {\n try {\n period = parseInt(params.get(\"period\").trim(), null);\n } catch {\n this.logService.error(\"Invalid period param.\");\n }\n }\n }\n return period;\n }\n\n // Helpers\n\n private leftPad(s: string, l: number, p: string): string {\n if (l + 1 >= s.length) {\n s = Array(l + 1 - s.length).join(p) + s;\n }\n return s;\n }\n\n private decToHex(d: number): string {\n return (d < 15.5 ? \"0\" : \"\") + Math.round(d).toString(16);\n }\n\n private b32ToHex(s: string): string {\n s = s.toUpperCase();\n let cleanedInput = \"\";\n\n for (let i = 0; i < s.length; i++) {\n if (B32Chars.indexOf(s[i]) < 0) {\n continue;\n }\n\n cleanedInput += s[i];\n }\n s = cleanedInput;\n\n let bits = \"\";\n let hex = \"\";\n for (let i = 0; i < s.length; i++) {\n const byteIndex = B32Chars.indexOf(s.charAt(i));\n if (byteIndex < 0) {\n continue;\n }\n bits += this.leftPad(byteIndex.toString(2), 5, \"0\");\n }\n for (let i = 0; i + 4 <= bits.length; i += 4) {\n const chunk = bits.substr(i, 4);\n hex = hex + parseInt(chunk, 2).toString(16);\n }\n return hex;\n }\n\n private b32ToBytes(s: string): Uint8Array {\n return Utils.fromHexToArray(this.b32ToHex(s));\n }\n\n private async sign(\n keyBytes: Uint8Array,\n timeBytes: Uint8Array,\n alg: \"sha1\" | \"sha256\" | \"sha512\",\n ) {\n const signature = await this.cryptoFunctionService.hmac(timeBytes, keyBytes, alg);\n return new Uint8Array(signature);\n }\n}\n","import { VAULT_SETTINGS_DISK, KeyDefinition, UserKeyDefinition } from \"../../../platform/state\";\n\nexport const USER_ENABLE_PASSKEYS = new KeyDefinition(\n VAULT_SETTINGS_DISK,\n \"enablePasskeys\",\n {\n deserializer: (obj) => obj,\n },\n);\n\nexport const SHOW_CARDS_CURRENT_TAB = new UserKeyDefinition(\n VAULT_SETTINGS_DISK,\n \"showCardsCurrentTab\",\n {\n deserializer: (obj) => obj,\n clearOn: [], // do not clear user settings\n },\n);\n\nexport const SHOW_IDENTITIES_CURRENT_TAB = new UserKeyDefinition(\n VAULT_SETTINGS_DISK,\n \"showIdentitiesCurrentTab\",\n {\n deserializer: (obj) => obj,\n clearOn: [], // do not clear user settings\n },\n);\n","import { ErrorHandler, Injectable, Injector, inject } from \"@angular/core\";\n\nimport { LogService } from \"@bitwarden/common/platform/abstractions/log.service\";\n\n@Injectable()\nexport class LoggingErrorHandler extends ErrorHandler {\n /**\n * When injecting services into an `ErrorHandler`, we must use the `Injector` manually to avoid circular dependency errors.\n *\n * https://stackoverflow.com/a/57115053\n */\n private injector = inject(Injector);\n\n override handleError(error: any): void {\n try {\n const logService = this.injector.get(LogService, null);\n logService.error(\"Unhandled error in angular\", error);\n } catch {\n super.handleError(error);\n }\n }\n}\n","import { Inject, Injectable } from \"@angular/core\";\nimport { fromEvent, map, merge, Observable, of, Subscription, switchMap } from \"rxjs\";\n\nimport { ThemeType } from \"@bitwarden/common/platform/enums\";\nimport { ThemeStateService } from \"@bitwarden/common/platform/theming/theme-state.service\";\n\nimport { SYSTEM_THEME_OBSERVABLE } from \"../../../services/injection-tokens\";\n\nimport { AbstractThemingService } from \"./theming.service.abstraction\";\n\n@Injectable()\nexport class AngularThemingService implements AbstractThemingService {\n /**\n * Creates a system theme observable based on watching the given window.\n * @param window The window that should be watched for system theme changes.\n * @returns An observable that will track the system theme.\n */\n static createSystemThemeFromWindow(window: Window): Observable {\n return merge(\n // This observable should always emit at least once, so go and get the current system theme designation\n of(\n window.matchMedia(\"(prefers-color-scheme: dark)\").matches\n ? ThemeType.Dark\n : ThemeType.Light,\n ),\n // Start listening to changes\n fromEvent(\n window.matchMedia(\"(prefers-color-scheme: dark)\"),\n \"change\",\n ).pipe(map((event) => (event.matches ? ThemeType.Dark : ThemeType.Light))),\n );\n }\n\n readonly theme$ = this.themeStateService.selectedTheme$.pipe(\n switchMap((configuredTheme) => {\n if (configuredTheme === ThemeType.System) {\n return this.systemTheme$;\n }\n\n return of(configuredTheme);\n }),\n );\n\n constructor(\n private themeStateService: ThemeStateService,\n @Inject(SYSTEM_THEME_OBSERVABLE)\n private systemTheme$: Observable,\n ) {}\n\n applyThemeChangesTo(document: Document): Subscription {\n return this.theme$.subscribe((theme) => {\n document.documentElement.classList.remove(\n \"theme_\" + ThemeType.Light,\n \"theme_\" + ThemeType.Dark,\n \"theme_\" + ThemeType.Nord,\n \"theme_\" + ThemeType.SolarizedDark,\n );\n document.documentElement.classList.add(\"theme_\" + theme);\n });\n }\n}\n","import { ErrorHandler, LOCALE_ID, NgModule } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\n\nimport {\n AuthRequestServiceAbstraction,\n AuthRequestService,\n PinServiceAbstraction,\n PinService,\n LoginStrategyServiceAbstraction,\n LoginStrategyService,\n LoginEmailServiceAbstraction,\n LoginEmailService,\n InternalUserDecryptionOptionsServiceAbstraction,\n UserDecryptionOptionsService,\n UserDecryptionOptionsServiceAbstraction,\n LogoutReason,\n} from \"@bitwarden/auth/common\";\nimport { ApiService as ApiServiceAbstraction } from \"@bitwarden/common/abstractions/api.service\";\nimport { AuditService as AuditServiceAbstraction } from \"@bitwarden/common/abstractions/audit.service\";\nimport { EventCollectionService as EventCollectionServiceAbstraction } from \"@bitwarden/common/abstractions/event/event-collection.service\";\nimport { EventUploadService as EventUploadServiceAbstraction } from \"@bitwarden/common/abstractions/event/event-upload.service\";\nimport { NotificationsService as NotificationsServiceAbstraction } from \"@bitwarden/common/abstractions/notifications.service\";\nimport { SearchService as SearchServiceAbstraction } from \"@bitwarden/common/abstractions/search.service\";\nimport { VaultTimeoutSettingsService as VaultTimeoutSettingsServiceAbstraction } from \"@bitwarden/common/abstractions/vault-timeout/vault-timeout-settings.service\";\nimport { VaultTimeoutService as VaultTimeoutServiceAbstraction } from \"@bitwarden/common/abstractions/vault-timeout/vault-timeout.service\";\nimport { OrganizationApiServiceAbstraction } from \"@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction\";\nimport {\n InternalOrganizationServiceAbstraction,\n OrganizationService as OrganizationServiceAbstraction,\n} from \"@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction\";\nimport { OrgDomainApiServiceAbstraction } from \"@bitwarden/common/admin-console/abstractions/organization-domain/org-domain-api.service.abstraction\";\nimport {\n OrgDomainInternalServiceAbstraction,\n OrgDomainServiceAbstraction,\n} from \"@bitwarden/common/admin-console/abstractions/organization-domain/org-domain.service.abstraction\";\nimport { OrganizationManagementPreferencesService } from \"@bitwarden/common/admin-console/abstractions/organization-management-preferences/organization-management-preferences.service\";\nimport { OrganizationUserService } from \"@bitwarden/common/admin-console/abstractions/organization-user/organization-user.service\";\nimport { PolicyApiServiceAbstraction } from \"@bitwarden/common/admin-console/abstractions/policy/policy-api.service.abstraction\";\nimport {\n InternalPolicyService,\n PolicyService as PolicyServiceAbstraction,\n} from \"@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction\";\nimport { ProviderApiServiceAbstraction } from \"@bitwarden/common/admin-console/abstractions/provider/provider-api.service.abstraction\";\nimport { ProviderService as ProviderServiceAbstraction } from \"@bitwarden/common/admin-console/abstractions/provider.service\";\nimport { OrganizationApiService } from \"@bitwarden/common/admin-console/services/organization/organization-api.service\";\nimport { OrganizationService } from \"@bitwarden/common/admin-console/services/organization/organization.service\";\nimport { OrgDomainApiService } from \"@bitwarden/common/admin-console/services/organization-domain/org-domain-api.service\";\nimport { OrgDomainService } from \"@bitwarden/common/admin-console/services/organization-domain/org-domain.service\";\nimport { DefaultOrganizationManagementPreferencesService } from \"@bitwarden/common/admin-console/services/organization-management-preferences/default-organization-management-preferences.service\";\nimport { OrganizationUserServiceImplementation } from \"@bitwarden/common/admin-console/services/organization-user/organization-user.service.implementation\";\nimport { PolicyApiService } from \"@bitwarden/common/admin-console/services/policy/policy-api.service\";\nimport { PolicyService } from \"@bitwarden/common/admin-console/services/policy/policy.service\";\nimport { ProviderApiService } from \"@bitwarden/common/admin-console/services/provider/provider-api.service\";\nimport { ProviderService } from \"@bitwarden/common/admin-console/services/provider.service\";\nimport { AccountApiService as AccountApiServiceAbstraction } from \"@bitwarden/common/auth/abstractions/account-api.service\";\nimport {\n AccountService as AccountServiceAbstraction,\n InternalAccountService,\n} from \"@bitwarden/common/auth/abstractions/account.service\";\nimport { AnonymousHubService as AnonymousHubServiceAbstraction } from \"@bitwarden/common/auth/abstractions/anonymous-hub.service\";\nimport { AuthService as AuthServiceAbstraction } from \"@bitwarden/common/auth/abstractions/auth.service\";\nimport { AvatarService as AvatarServiceAbstraction } from \"@bitwarden/common/auth/abstractions/avatar.service\";\nimport { DeviceTrustServiceAbstraction } from \"@bitwarden/common/auth/abstractions/device-trust.service.abstraction\";\nimport { DevicesServiceAbstraction } from \"@bitwarden/common/auth/abstractions/devices/devices.service.abstraction\";\nimport { DevicesApiServiceAbstraction } from \"@bitwarden/common/auth/abstractions/devices-api.service.abstraction\";\nimport { KdfConfigService as KdfConfigServiceAbstraction } from \"@bitwarden/common/auth/abstractions/kdf-config.service\";\nimport { KeyConnectorService as KeyConnectorServiceAbstraction } from \"@bitwarden/common/auth/abstractions/key-connector.service\";\nimport {\n InternalMasterPasswordServiceAbstraction,\n MasterPasswordServiceAbstraction,\n} from \"@bitwarden/common/auth/abstractions/master-password.service.abstraction\";\nimport { PasswordResetEnrollmentServiceAbstraction } from \"@bitwarden/common/auth/abstractions/password-reset-enrollment.service.abstraction\";\nimport { SsoLoginServiceAbstraction } from \"@bitwarden/common/auth/abstractions/sso-login.service.abstraction\";\nimport { TokenService as TokenServiceAbstraction } from \"@bitwarden/common/auth/abstractions/token.service\";\nimport { TwoFactorService as TwoFactorServiceAbstraction } from \"@bitwarden/common/auth/abstractions/two-factor.service\";\nimport { UserVerificationApiServiceAbstraction } from \"@bitwarden/common/auth/abstractions/user-verification/user-verification-api.service.abstraction\";\nimport { UserVerificationService as UserVerificationServiceAbstraction } from \"@bitwarden/common/auth/abstractions/user-verification/user-verification.service.abstraction\";\nimport { WebAuthnLoginApiServiceAbstraction } from \"@bitwarden/common/auth/abstractions/webauthn/webauthn-login-api.service.abstraction\";\nimport { WebAuthnLoginPrfCryptoServiceAbstraction } from \"@bitwarden/common/auth/abstractions/webauthn/webauthn-login-prf-crypto.service.abstraction\";\nimport { WebAuthnLoginServiceAbstraction } from \"@bitwarden/common/auth/abstractions/webauthn/webauthn-login.service.abstraction\";\nimport { AccountApiServiceImplementation } from \"@bitwarden/common/auth/services/account-api.service\";\nimport { AccountServiceImplementation } from \"@bitwarden/common/auth/services/account.service\";\nimport { AnonymousHubService } from \"@bitwarden/common/auth/services/anonymous-hub.service\";\nimport { AuthService } from \"@bitwarden/common/auth/services/auth.service\";\nimport { AvatarService } from \"@bitwarden/common/auth/services/avatar.service\";\nimport { DeviceTrustService } from \"@bitwarden/common/auth/services/device-trust.service.implementation\";\nimport { DevicesServiceImplementation } from \"@bitwarden/common/auth/services/devices/devices.service.implementation\";\nimport { DevicesApiServiceImplementation } from \"@bitwarden/common/auth/services/devices-api.service.implementation\";\nimport { KdfConfigService } from \"@bitwarden/common/auth/services/kdf-config.service\";\nimport { KeyConnectorService } from \"@bitwarden/common/auth/services/key-connector.service\";\nimport { MasterPasswordService } from \"@bitwarden/common/auth/services/master-password/master-password.service\";\nimport { PasswordResetEnrollmentServiceImplementation } from \"@bitwarden/common/auth/services/password-reset-enrollment.service.implementation\";\nimport { SsoLoginService } from \"@bitwarden/common/auth/services/sso-login.service\";\nimport { TokenService } from \"@bitwarden/common/auth/services/token.service\";\nimport { TwoFactorService } from \"@bitwarden/common/auth/services/two-factor.service\";\nimport { UserVerificationApiService } from \"@bitwarden/common/auth/services/user-verification/user-verification-api.service\";\nimport { UserVerificationService } from \"@bitwarden/common/auth/services/user-verification/user-verification.service\";\nimport { WebAuthnLoginApiService } from \"@bitwarden/common/auth/services/webauthn-login/webauthn-login-api.service\";\nimport { WebAuthnLoginPrfCryptoService } from \"@bitwarden/common/auth/services/webauthn-login/webauthn-login-prf-crypto.service\";\nimport { WebAuthnLoginService } from \"@bitwarden/common/auth/services/webauthn-login/webauthn-login.service\";\nimport {\n AutofillSettingsServiceAbstraction,\n AutofillSettingsService,\n} from \"@bitwarden/common/autofill/services/autofill-settings.service\";\nimport {\n BadgeSettingsServiceAbstraction,\n BadgeSettingsService,\n} from \"@bitwarden/common/autofill/services/badge-settings.service\";\nimport {\n DomainSettingsService,\n DefaultDomainSettingsService,\n} from \"@bitwarden/common/autofill/services/domain-settings.service\";\nimport {\n BillingApiServiceAbstraction,\n BraintreeServiceAbstraction,\n OrganizationBillingServiceAbstraction,\n PaymentMethodWarningsServiceAbstraction,\n StripeServiceAbstraction,\n} from \"@bitwarden/common/billing/abstractions\";\nimport { BillingAccountProfileStateService } from \"@bitwarden/common/billing/abstractions/account/billing-account-profile-state.service\";\nimport { DefaultBillingAccountProfileStateService } from \"@bitwarden/common/billing/services/account/billing-account-profile-state.service\";\nimport { BillingApiService } from \"@bitwarden/common/billing/services/billing-api.service\";\nimport { OrganizationBillingService } from \"@bitwarden/common/billing/services/organization-billing.service\";\nimport { PaymentMethodWarningsService } from \"@bitwarden/common/billing/services/payment-method-warnings.service\";\nimport { BraintreeService } from \"@bitwarden/common/billing/services/payment-processors/braintree.service\";\nimport { StripeService } from \"@bitwarden/common/billing/services/payment-processors/stripe.service\";\nimport { AppIdService as AppIdServiceAbstraction } from \"@bitwarden/common/platform/abstractions/app-id.service\";\nimport { BroadcasterService } from \"@bitwarden/common/platform/abstractions/broadcaster.service\";\nimport { ConfigApiServiceAbstraction } from \"@bitwarden/common/platform/abstractions/config/config-api.service.abstraction\";\nimport { ConfigService } from \"@bitwarden/common/platform/abstractions/config/config.service\";\nimport { CryptoFunctionService as CryptoFunctionServiceAbstraction } from \"@bitwarden/common/platform/abstractions/crypto-function.service\";\nimport { CryptoService as CryptoServiceAbstraction } from \"@bitwarden/common/platform/abstractions/crypto.service\";\nimport { EncryptService } from \"@bitwarden/common/platform/abstractions/encrypt.service\";\nimport { EnvironmentService } from \"@bitwarden/common/platform/abstractions/environment.service\";\nimport { FileUploadService as FileUploadServiceAbstraction } from \"@bitwarden/common/platform/abstractions/file-upload/file-upload.service\";\nimport { I18nService as I18nServiceAbstraction } from \"@bitwarden/common/platform/abstractions/i18n.service\";\nimport { KeyGenerationService as KeyGenerationServiceAbstraction } from \"@bitwarden/common/platform/abstractions/key-generation.service\";\nimport { LogService } from \"@bitwarden/common/platform/abstractions/log.service\";\nimport { MessagingService as MessagingServiceAbstraction } from \"@bitwarden/common/platform/abstractions/messaging.service\";\nimport { PlatformUtilsService as PlatformUtilsServiceAbstraction } from \"@bitwarden/common/platform/abstractions/platform-utils.service\";\nimport { StateService as StateServiceAbstraction } from \"@bitwarden/common/platform/abstractions/state.service\";\nimport { AbstractStorageService } from \"@bitwarden/common/platform/abstractions/storage.service\";\nimport { ValidationService as ValidationServiceAbstraction } from \"@bitwarden/common/platform/abstractions/validation.service\";\nimport {\n BiometricStateService,\n DefaultBiometricStateService,\n} from \"@bitwarden/common/platform/biometrics/biometric-state.service\";\nimport { StateFactory } from \"@bitwarden/common/platform/factories/state-factory\";\nimport { Message, MessageListener, MessageSender } from \"@bitwarden/common/platform/messaging\";\n// eslint-disable-next-line no-restricted-imports -- Used for dependency injection\nimport { SubjectMessageSender } from \"@bitwarden/common/platform/messaging/internal\";\nimport { devFlagEnabled, flagEnabled } from \"@bitwarden/common/platform/misc/flags\";\nimport { Account } from \"@bitwarden/common/platform/models/domain/account\";\nimport { GlobalState } from \"@bitwarden/common/platform/models/domain/global-state\";\nimport { AppIdService } from \"@bitwarden/common/platform/services/app-id.service\";\nimport { ConfigApiService } from \"@bitwarden/common/platform/services/config/config-api.service\";\nimport { DefaultConfigService } from \"@bitwarden/common/platform/services/config/default-config.service\";\nimport { ConsoleLogService } from \"@bitwarden/common/platform/services/console-log.service\";\nimport { CryptoService } from \"@bitwarden/common/platform/services/crypto.service\";\nimport { EncryptServiceImplementation } from \"@bitwarden/common/platform/services/cryptography/encrypt.service.implementation\";\nimport { MultithreadEncryptServiceImplementation } from \"@bitwarden/common/platform/services/cryptography/multithread-encrypt.service.implementation\";\nimport { DefaultBroadcasterService } from \"@bitwarden/common/platform/services/default-broadcaster.service\";\nimport { DefaultEnvironmentService } from \"@bitwarden/common/platform/services/default-environment.service\";\nimport { FileUploadService } from \"@bitwarden/common/platform/services/file-upload/file-upload.service\";\nimport { KeyGenerationService } from \"@bitwarden/common/platform/services/key-generation.service\";\nimport { MigrationBuilderService } from \"@bitwarden/common/platform/services/migration-builder.service\";\nimport { MigrationRunner } from \"@bitwarden/common/platform/services/migration-runner\";\nimport { NoopNotificationsService } from \"@bitwarden/common/platform/services/noop-notifications.service\";\nimport { StateService } from \"@bitwarden/common/platform/services/state.service\";\nimport { StorageServiceProvider } from \"@bitwarden/common/platform/services/storage-service.provider\";\nimport { UserAutoUnlockKeyService } from \"@bitwarden/common/platform/services/user-auto-unlock-key.service\";\nimport { ValidationService } from \"@bitwarden/common/platform/services/validation.service\";\nimport { WebCryptoFunctionService } from \"@bitwarden/common/platform/services/web-crypto-function.service\";\nimport {\n ActiveUserStateProvider,\n GlobalStateProvider,\n SingleUserStateProvider,\n StateProvider,\n DerivedStateProvider,\n} from \"@bitwarden/common/platform/state\";\n/* eslint-disable import/no-restricted-paths -- We need the implementations to inject, but generally these should not be accessed */\nimport { DefaultActiveUserStateProvider } from \"@bitwarden/common/platform/state/implementations/default-active-user-state.provider\";\nimport { DefaultDerivedStateProvider } from \"@bitwarden/common/platform/state/implementations/default-derived-state.provider\";\nimport { DefaultGlobalStateProvider } from \"@bitwarden/common/platform/state/implementations/default-global-state.provider\";\nimport { DefaultSingleUserStateProvider } from \"@bitwarden/common/platform/state/implementations/default-single-user-state.provider\";\nimport { DefaultStateProvider } from \"@bitwarden/common/platform/state/implementations/default-state.provider\";\nimport { StateEventRegistrarService } from \"@bitwarden/common/platform/state/state-event-registrar.service\";\nimport { StateEventRunnerService } from \"@bitwarden/common/platform/state/state-event-runner.service\";\n/* eslint-enable import/no-restricted-paths */\nimport {\n DefaultThemeStateService,\n ThemeStateService,\n} from \"@bitwarden/common/platform/theming/theme-state.service\";\nimport { ApiService } from \"@bitwarden/common/services/api.service\";\nimport { AuditService } from \"@bitwarden/common/services/audit.service\";\nimport { EventCollectionService } from \"@bitwarden/common/services/event/event-collection.service\";\nimport { EventUploadService } from \"@bitwarden/common/services/event/event-upload.service\";\nimport { NotificationsService } from \"@bitwarden/common/services/notifications.service\";\nimport { SearchService } from \"@bitwarden/common/services/search.service\";\nimport { VaultTimeoutSettingsService } from \"@bitwarden/common/services/vault-timeout/vault-timeout-settings.service\";\nimport { VaultTimeoutService } from \"@bitwarden/common/services/vault-timeout/vault-timeout.service\";\nimport {\n legacyPasswordGenerationServiceFactory,\n legacyUsernameGenerationServiceFactory,\n} from \"@bitwarden/common/tools/generator\";\nimport { PasswordGenerationServiceAbstraction } from \"@bitwarden/common/tools/generator/password\";\nimport { UsernameGenerationServiceAbstraction } from \"@bitwarden/common/tools/generator/username\";\nimport {\n PasswordStrengthService,\n PasswordStrengthServiceAbstraction,\n} from \"@bitwarden/common/tools/password-strength\";\nimport { SendApiService } from \"@bitwarden/common/tools/send/services/send-api.service\";\nimport { SendApiService as SendApiServiceAbstraction } from \"@bitwarden/common/tools/send/services/send-api.service.abstraction\";\nimport { SendStateProvider as SendStateProvider } from \"@bitwarden/common/tools/send/services/send-state.provider\";\nimport { SendStateProvider as SendStateProviderAbstraction } from \"@bitwarden/common/tools/send/services/send-state.provider.abstraction\";\nimport { SendService } from \"@bitwarden/common/tools/send/services/send.service\";\nimport {\n InternalSendService,\n SendService as SendServiceAbstraction,\n} from \"@bitwarden/common/tools/send/services/send.service.abstraction\";\nimport { CipherService as CipherServiceAbstraction } from \"@bitwarden/common/vault/abstractions/cipher.service\";\nimport { CollectionService as CollectionServiceAbstraction } from \"@bitwarden/common/vault/abstractions/collection.service\";\nimport { CipherFileUploadService as CipherFileUploadServiceAbstraction } from \"@bitwarden/common/vault/abstractions/file-upload/cipher-file-upload.service\";\nimport { FolderApiServiceAbstraction } from \"@bitwarden/common/vault/abstractions/folder/folder-api.service.abstraction\";\nimport {\n FolderService as FolderServiceAbstraction,\n InternalFolderService,\n} from \"@bitwarden/common/vault/abstractions/folder/folder.service.abstraction\";\nimport { SyncNotifierService as SyncNotifierServiceAbstraction } from \"@bitwarden/common/vault/abstractions/sync/sync-notifier.service.abstraction\";\nimport { SyncService as SyncServiceAbstraction } from \"@bitwarden/common/vault/abstractions/sync/sync.service.abstraction\";\nimport { TotpService as TotpServiceAbstraction } from \"@bitwarden/common/vault/abstractions/totp.service\";\nimport { VaultSettingsService as VaultSettingsServiceAbstraction } from \"@bitwarden/common/vault/abstractions/vault-settings/vault-settings.service\";\nimport { CipherService } from \"@bitwarden/common/vault/services/cipher.service\";\nimport { CollectionService } from \"@bitwarden/common/vault/services/collection.service\";\nimport { CipherFileUploadService } from \"@bitwarden/common/vault/services/file-upload/cipher-file-upload.service\";\nimport { FolderApiService } from \"@bitwarden/common/vault/services/folder/folder-api.service\";\nimport { FolderService } from \"@bitwarden/common/vault/services/folder/folder.service\";\nimport { SyncNotifierService } from \"@bitwarden/common/vault/services/sync/sync-notifier.service\";\nimport { SyncService } from \"@bitwarden/common/vault/services/sync/sync.service\";\nimport { TotpService } from \"@bitwarden/common/vault/services/totp.service\";\nimport { VaultSettingsService } from \"@bitwarden/common/vault/services/vault-settings/vault-settings.service\";\nimport { ToastService } from \"@bitwarden/components\";\nimport {\n ImportApiService,\n ImportApiServiceAbstraction,\n ImportService,\n ImportServiceAbstraction,\n} from \"@bitwarden/importer/core\";\nimport { PasswordRepromptService } from \"@bitwarden/vault\";\nimport {\n VaultExportService,\n VaultExportServiceAbstraction,\n OrganizationVaultExportService,\n OrganizationVaultExportServiceAbstraction,\n IndividualVaultExportService,\n IndividualVaultExportServiceAbstraction,\n} from \"@bitwarden/vault-export-core\";\n\nimport { AuthGuard } from \"../auth/guards/auth.guard\";\nimport { UnauthGuard } from \"../auth/guards/unauth.guard\";\nimport { FormValidationErrorsService as FormValidationErrorsServiceAbstraction } from \"../platform/abstractions/form-validation-errors.service\";\nimport { FormValidationErrorsService } from \"../platform/services/form-validation-errors.service\";\nimport { LoggingErrorHandler } from \"../platform/services/logging-error-handler\";\nimport { AngularThemingService } from \"../platform/services/theming/angular-theming.service\";\nimport { AbstractThemingService } from \"../platform/services/theming/theming.service.abstraction\";\nimport { safeProvider, SafeProvider } from \"../platform/utils/safe-provider\";\n\nimport {\n LOCALES_DIRECTORY,\n LOCKED_CALLBACK,\n LOGOUT_CALLBACK,\n LOG_MAC_FAILURES,\n MEMORY_STORAGE,\n OBSERVABLE_DISK_STORAGE,\n OBSERVABLE_MEMORY_STORAGE,\n SafeInjectionToken,\n SECURE_STORAGE,\n STATE_FACTORY,\n SUPPORTS_SECURE_STORAGE,\n SYSTEM_LANGUAGE,\n SYSTEM_THEME_OBSERVABLE,\n WINDOW,\n DEFAULT_VAULT_TIMEOUT,\n INTRAPROCESS_MESSAGING_SUBJECT,\n CLIENT_TYPE,\n REFRESH_ACCESS_TOKEN_ERROR_CALLBACK,\n} from \"./injection-tokens\";\nimport { ModalService } from \"./modal.service\";\n\n/**\n * Provider definitions used in the ngModule.\n * Add your provider definition here using the safeProvider function as a wrapper. This will give you type safety.\n * If you need help please ask for it, do NOT change the type of this array.\n */\nconst safeProviders: SafeProvider[] = [\n safeProvider(AuthGuard),\n safeProvider(UnauthGuard),\n safeProvider(ModalService),\n safeProvider(PasswordRepromptService),\n safeProvider({ provide: WINDOW, useValue: window }),\n safeProvider({\n provide: LOCALE_ID as SafeInjectionToken,\n useFactory: (i18nService: I18nServiceAbstraction) => i18nService.translationLocale,\n deps: [I18nServiceAbstraction],\n }),\n safeProvider({\n provide: SUPPORTS_SECURE_STORAGE,\n useFactory: (platformUtilsService: PlatformUtilsServiceAbstraction) =>\n platformUtilsService.supportsSecureStorage(),\n deps: [PlatformUtilsServiceAbstraction],\n }),\n safeProvider({\n provide: LOCALES_DIRECTORY,\n useValue: \"./locales\",\n }),\n safeProvider({\n provide: SYSTEM_LANGUAGE,\n useFactory: (window: Window) => window.navigator.language,\n deps: [WINDOW],\n }),\n safeProvider({\n provide: STATE_FACTORY,\n useValue: new StateFactory(GlobalState, Account),\n }),\n safeProvider({\n provide: LOGOUT_CALLBACK,\n useFactory:\n (messagingService: MessagingServiceAbstraction) =>\n async (logoutReason: LogoutReason, userId?: string) => {\n return Promise.resolve(\n messagingService.send(\"logout\", { logoutReason: logoutReason, userId: userId }),\n );\n },\n deps: [MessagingServiceAbstraction],\n }),\n safeProvider({\n provide: LOCKED_CALLBACK,\n useValue: null,\n }),\n safeProvider({\n provide: LOG_MAC_FAILURES,\n useValue: true,\n }),\n safeProvider({\n provide: SYSTEM_THEME_OBSERVABLE,\n useFactory: (window: Window) => AngularThemingService.createSystemThemeFromWindow(window),\n deps: [WINDOW],\n }),\n safeProvider({\n provide: ThemeStateService,\n useClass: DefaultThemeStateService,\n deps: [GlobalStateProvider],\n }),\n safeProvider({\n provide: AbstractThemingService,\n useClass: AngularThemingService,\n deps: [ThemeStateService, SYSTEM_THEME_OBSERVABLE],\n }),\n safeProvider({\n provide: AppIdServiceAbstraction,\n useClass: AppIdService,\n deps: [GlobalStateProvider],\n }),\n safeProvider({\n provide: AuditServiceAbstraction,\n useClass: AuditService,\n deps: [CryptoFunctionServiceAbstraction, ApiServiceAbstraction],\n }),\n safeProvider({\n provide: AuthServiceAbstraction,\n useClass: AuthService,\n deps: [\n AccountServiceAbstraction,\n MessagingServiceAbstraction,\n CryptoServiceAbstraction,\n ApiServiceAbstraction,\n StateServiceAbstraction,\n TokenServiceAbstraction,\n ],\n }),\n safeProvider({\n provide: LoginStrategyServiceAbstraction,\n useClass: LoginStrategyService,\n deps: [\n AccountServiceAbstraction,\n InternalMasterPasswordServiceAbstraction,\n CryptoServiceAbstraction,\n ApiServiceAbstraction,\n TokenServiceAbstraction,\n AppIdServiceAbstraction,\n PlatformUtilsServiceAbstraction,\n MessagingServiceAbstraction,\n LogService,\n KeyConnectorServiceAbstraction,\n EnvironmentService,\n StateServiceAbstraction,\n TwoFactorServiceAbstraction,\n I18nServiceAbstraction,\n EncryptService,\n PasswordStrengthServiceAbstraction,\n PolicyServiceAbstraction,\n DeviceTrustServiceAbstraction,\n AuthRequestServiceAbstraction,\n InternalUserDecryptionOptionsServiceAbstraction,\n GlobalStateProvider,\n BillingAccountProfileStateService,\n VaultTimeoutSettingsServiceAbstraction,\n KdfConfigServiceAbstraction,\n ],\n }),\n safeProvider({\n provide: FileUploadServiceAbstraction,\n useClass: FileUploadService,\n deps: [LogService],\n }),\n safeProvider({\n provide: CipherFileUploadServiceAbstraction,\n useClass: CipherFileUploadService,\n deps: [ApiServiceAbstraction, FileUploadServiceAbstraction],\n }),\n safeProvider({\n provide: CipherServiceAbstraction,\n useFactory: (\n cryptoService: CryptoServiceAbstraction,\n domainSettingsService: DomainSettingsService,\n apiService: ApiServiceAbstraction,\n i18nService: I18nServiceAbstraction,\n searchService: SearchServiceAbstraction,\n stateService: StateServiceAbstraction,\n autofillSettingsService: AutofillSettingsServiceAbstraction,\n encryptService: EncryptService,\n fileUploadService: CipherFileUploadServiceAbstraction,\n configService: ConfigService,\n stateProvider: StateProvider,\n ) =>\n new CipherService(\n cryptoService,\n domainSettingsService,\n apiService,\n i18nService,\n searchService,\n stateService,\n autofillSettingsService,\n encryptService,\n fileUploadService,\n configService,\n stateProvider,\n ),\n deps: [\n CryptoServiceAbstraction,\n DomainSettingsService,\n ApiServiceAbstraction,\n I18nServiceAbstraction,\n SearchServiceAbstraction,\n StateServiceAbstraction,\n AutofillSettingsServiceAbstraction,\n EncryptService,\n CipherFileUploadServiceAbstraction,\n ConfigService,\n StateProvider,\n ],\n }),\n safeProvider({\n provide: InternalFolderService,\n useClass: FolderService,\n deps: [\n CryptoServiceAbstraction,\n I18nServiceAbstraction,\n CipherServiceAbstraction,\n StateProvider,\n ],\n }),\n safeProvider({\n provide: FolderServiceAbstraction,\n useExisting: InternalFolderService,\n }),\n safeProvider({\n provide: FolderApiServiceAbstraction,\n useClass: FolderApiService,\n deps: [InternalFolderService, ApiServiceAbstraction],\n }),\n safeProvider({\n provide: AccountApiServiceAbstraction,\n useClass: AccountApiServiceImplementation,\n deps: [\n ApiServiceAbstraction,\n UserVerificationServiceAbstraction,\n LogService,\n InternalAccountService,\n ],\n }),\n safeProvider({\n provide: InternalAccountService,\n useClass: AccountServiceImplementation,\n deps: [MessagingServiceAbstraction, LogService, GlobalStateProvider],\n }),\n safeProvider({\n provide: AccountServiceAbstraction,\n useExisting: InternalAccountService,\n }),\n safeProvider({\n provide: AvatarServiceAbstraction,\n useClass: AvatarService,\n deps: [ApiServiceAbstraction, StateProvider],\n }),\n safeProvider({ provide: LogService, useFactory: () => new ConsoleLogService(false), deps: [] }),\n safeProvider({\n provide: CollectionServiceAbstraction,\n useClass: CollectionService,\n deps: [CryptoServiceAbstraction, I18nServiceAbstraction, StateProvider],\n }),\n safeProvider({\n provide: EnvironmentService,\n useClass: DefaultEnvironmentService,\n deps: [StateProvider, AccountServiceAbstraction],\n }),\n safeProvider({\n provide: InternalUserDecryptionOptionsServiceAbstraction,\n useClass: UserDecryptionOptionsService,\n deps: [StateProvider],\n }),\n safeProvider({\n provide: UserDecryptionOptionsServiceAbstraction,\n useExisting: InternalUserDecryptionOptionsServiceAbstraction,\n }),\n safeProvider({\n provide: TotpServiceAbstraction,\n useClass: TotpService,\n deps: [CryptoFunctionServiceAbstraction, LogService],\n }),\n safeProvider({\n provide: TokenServiceAbstraction,\n useClass: TokenService,\n deps: [\n SingleUserStateProvider,\n GlobalStateProvider,\n SUPPORTS_SECURE_STORAGE,\n SECURE_STORAGE,\n KeyGenerationServiceAbstraction,\n EncryptService,\n LogService,\n LOGOUT_CALLBACK,\n ],\n }),\n safeProvider({\n provide: KeyGenerationServiceAbstraction,\n useClass: KeyGenerationService,\n deps: [CryptoFunctionServiceAbstraction],\n }),\n safeProvider({\n provide: CryptoServiceAbstraction,\n useClass: CryptoService,\n deps: [\n PinServiceAbstraction,\n InternalMasterPasswordServiceAbstraction,\n KeyGenerationServiceAbstraction,\n CryptoFunctionServiceAbstraction,\n EncryptService,\n PlatformUtilsServiceAbstraction,\n LogService,\n StateServiceAbstraction,\n AccountServiceAbstraction,\n StateProvider,\n KdfConfigServiceAbstraction,\n ],\n }),\n safeProvider({\n provide: PasswordStrengthServiceAbstraction,\n useClass: PasswordStrengthService,\n deps: [],\n }),\n safeProvider({\n provide: PasswordGenerationServiceAbstraction,\n useFactory: legacyPasswordGenerationServiceFactory,\n deps: [\n EncryptService,\n CryptoServiceAbstraction,\n PolicyServiceAbstraction,\n AccountServiceAbstraction,\n StateProvider,\n ],\n }),\n safeProvider({\n provide: UsernameGenerationServiceAbstraction,\n useFactory: legacyUsernameGenerationServiceFactory,\n deps: [\n ApiServiceAbstraction,\n I18nServiceAbstraction,\n CryptoServiceAbstraction,\n EncryptService,\n PolicyServiceAbstraction,\n AccountServiceAbstraction,\n StateProvider,\n ],\n }),\n safeProvider({\n provide: REFRESH_ACCESS_TOKEN_ERROR_CALLBACK,\n useFactory: (toastService: ToastService, i18nService: I18nServiceAbstraction) => () => {\n toastService.showToast({\n variant: \"error\",\n title: i18nService.t(\"errorRefreshingAccessToken\"),\n message: i18nService.t(\"errorRefreshingAccessTokenDesc\"),\n });\n },\n deps: [ToastService, I18nServiceAbstraction],\n }),\n safeProvider({\n provide: ApiServiceAbstraction,\n useClass: ApiService,\n deps: [\n TokenServiceAbstraction,\n PlatformUtilsServiceAbstraction,\n EnvironmentService,\n AppIdServiceAbstraction,\n REFRESH_ACCESS_TOKEN_ERROR_CALLBACK,\n LogService,\n LOGOUT_CALLBACK,\n VaultTimeoutSettingsServiceAbstraction,\n ],\n }),\n safeProvider({\n provide: SendServiceAbstraction,\n useExisting: InternalSendService,\n }),\n safeProvider({\n provide: InternalSendService,\n useClass: SendService,\n deps: [\n CryptoServiceAbstraction,\n I18nServiceAbstraction,\n KeyGenerationServiceAbstraction,\n SendStateProviderAbstraction,\n EncryptService,\n ],\n }),\n safeProvider({\n provide: SendStateProviderAbstraction,\n useClass: SendStateProvider,\n deps: [StateProvider],\n }),\n safeProvider({\n provide: SendApiServiceAbstraction,\n useClass: SendApiService,\n deps: [ApiServiceAbstraction, FileUploadServiceAbstraction, InternalSendService],\n }),\n safeProvider({\n provide: SyncServiceAbstraction,\n useClass: SyncService,\n deps: [\n InternalMasterPasswordServiceAbstraction,\n AccountServiceAbstraction,\n ApiServiceAbstraction,\n DomainSettingsService,\n InternalFolderService,\n CipherServiceAbstraction,\n CryptoServiceAbstraction,\n CollectionServiceAbstraction,\n MessagingServiceAbstraction,\n InternalPolicyService,\n InternalSendService,\n LogService,\n KeyConnectorServiceAbstraction,\n StateServiceAbstraction,\n ProviderServiceAbstraction,\n FolderApiServiceAbstraction,\n InternalOrganizationServiceAbstraction,\n SendApiServiceAbstraction,\n UserDecryptionOptionsServiceAbstraction,\n AvatarServiceAbstraction,\n LOGOUT_CALLBACK,\n BillingAccountProfileStateService,\n TokenServiceAbstraction,\n AuthServiceAbstraction,\n ],\n }),\n safeProvider({\n provide: BroadcasterService,\n useClass: DefaultBroadcasterService,\n deps: [MessageListener],\n }),\n safeProvider({\n provide: VaultTimeoutSettingsServiceAbstraction,\n useClass: VaultTimeoutSettingsService,\n deps: [\n AccountServiceAbstraction,\n PinServiceAbstraction,\n UserDecryptionOptionsServiceAbstraction,\n CryptoServiceAbstraction,\n TokenServiceAbstraction,\n PolicyServiceAbstraction,\n BiometricStateService,\n StateProvider,\n LogService,\n DEFAULT_VAULT_TIMEOUT,\n ],\n }),\n safeProvider({\n provide: VaultTimeoutService,\n useClass: VaultTimeoutService,\n deps: [\n AccountServiceAbstraction,\n InternalMasterPasswordServiceAbstraction,\n CipherServiceAbstraction,\n FolderServiceAbstraction,\n CollectionServiceAbstraction,\n PlatformUtilsServiceAbstraction,\n MessagingServiceAbstraction,\n SearchServiceAbstraction,\n StateServiceAbstraction,\n AuthServiceAbstraction,\n VaultTimeoutSettingsServiceAbstraction,\n StateEventRunnerService,\n LOCKED_CALLBACK,\n LOGOUT_CALLBACK,\n ],\n }),\n safeProvider({\n provide: VaultTimeoutServiceAbstraction,\n useExisting: VaultTimeoutService,\n }),\n safeProvider({\n provide: SsoLoginServiceAbstraction,\n useClass: SsoLoginService,\n deps: [StateProvider],\n }),\n safeProvider({\n provide: StateServiceAbstraction,\n useClass: StateService,\n deps: [\n AbstractStorageService,\n SECURE_STORAGE,\n MEMORY_STORAGE,\n LogService,\n STATE_FACTORY,\n AccountServiceAbstraction,\n EnvironmentService,\n TokenServiceAbstraction,\n MigrationRunner,\n ],\n }),\n safeProvider({\n provide: ImportApiServiceAbstraction,\n useClass: ImportApiService,\n deps: [ApiServiceAbstraction],\n }),\n safeProvider({\n provide: ImportServiceAbstraction,\n useClass: ImportService,\n deps: [\n CipherServiceAbstraction,\n FolderServiceAbstraction,\n ImportApiServiceAbstraction,\n I18nServiceAbstraction,\n CollectionServiceAbstraction,\n CryptoServiceAbstraction,\n PinServiceAbstraction,\n ],\n }),\n safeProvider({\n provide: IndividualVaultExportServiceAbstraction,\n useClass: IndividualVaultExportService,\n deps: [\n FolderServiceAbstraction,\n CipherServiceAbstraction,\n PinServiceAbstraction,\n CryptoServiceAbstraction,\n CryptoFunctionServiceAbstraction,\n KdfConfigServiceAbstraction,\n ],\n }),\n safeProvider({\n provide: OrganizationVaultExportServiceAbstraction,\n useClass: OrganizationVaultExportService,\n deps: [\n CipherServiceAbstraction,\n ApiServiceAbstraction,\n PinServiceAbstraction,\n CryptoServiceAbstraction,\n CryptoFunctionServiceAbstraction,\n CollectionServiceAbstraction,\n KdfConfigServiceAbstraction,\n ],\n }),\n safeProvider({\n provide: VaultExportServiceAbstraction,\n useClass: VaultExportService,\n deps: [IndividualVaultExportServiceAbstraction, OrganizationVaultExportServiceAbstraction],\n }),\n safeProvider({\n provide: SearchServiceAbstraction,\n useClass: SearchService,\n deps: [LogService, I18nServiceAbstraction, StateProvider],\n }),\n safeProvider({\n provide: NotificationsServiceAbstraction,\n useClass: devFlagEnabled(\"noopNotifications\") ? NoopNotificationsService : NotificationsService,\n deps: [\n LogService,\n SyncServiceAbstraction,\n AppIdServiceAbstraction,\n ApiServiceAbstraction,\n EnvironmentService,\n LOGOUT_CALLBACK,\n StateServiceAbstraction,\n AuthServiceAbstraction,\n AuthRequestServiceAbstraction,\n MessagingServiceAbstraction,\n ],\n }),\n safeProvider({\n provide: CryptoFunctionServiceAbstraction,\n useClass: WebCryptoFunctionService,\n deps: [WINDOW],\n }),\n safeProvider({\n provide: EncryptService,\n useFactory: encryptServiceFactory,\n deps: [CryptoFunctionServiceAbstraction, LogService, LOG_MAC_FAILURES],\n }),\n safeProvider({\n provide: EventUploadServiceAbstraction,\n useClass: EventUploadService,\n deps: [ApiServiceAbstraction, StateProvider, LogService, AuthServiceAbstraction],\n }),\n safeProvider({\n provide: EventCollectionServiceAbstraction,\n useClass: EventCollectionService,\n deps: [\n CipherServiceAbstraction,\n StateProvider,\n OrganizationServiceAbstraction,\n EventUploadServiceAbstraction,\n AuthServiceAbstraction,\n ],\n }),\n safeProvider({\n provide: InternalPolicyService,\n useClass: PolicyService,\n deps: [StateProvider, OrganizationServiceAbstraction],\n }),\n safeProvider({\n provide: PolicyServiceAbstraction,\n useExisting: InternalPolicyService,\n }),\n safeProvider({\n provide: PolicyApiServiceAbstraction,\n useClass: PolicyApiService,\n deps: [InternalPolicyService, ApiServiceAbstraction],\n }),\n safeProvider({\n provide: InternalMasterPasswordServiceAbstraction,\n useClass: MasterPasswordService,\n deps: [StateProvider, StateServiceAbstraction, KeyGenerationServiceAbstraction, EncryptService],\n }),\n safeProvider({\n provide: MasterPasswordServiceAbstraction,\n useExisting: InternalMasterPasswordServiceAbstraction,\n }),\n safeProvider({\n provide: KeyConnectorServiceAbstraction,\n useClass: KeyConnectorService,\n deps: [\n AccountServiceAbstraction,\n InternalMasterPasswordServiceAbstraction,\n CryptoServiceAbstraction,\n ApiServiceAbstraction,\n TokenServiceAbstraction,\n LogService,\n OrganizationServiceAbstraction,\n KeyGenerationServiceAbstraction,\n LOGOUT_CALLBACK,\n StateProvider,\n ],\n }),\n safeProvider({\n provide: UserVerificationServiceAbstraction,\n useClass: UserVerificationService,\n deps: [\n CryptoServiceAbstraction,\n AccountServiceAbstraction,\n InternalMasterPasswordServiceAbstraction,\n I18nServiceAbstraction,\n UserVerificationApiServiceAbstraction,\n UserDecryptionOptionsServiceAbstraction,\n PinServiceAbstraction,\n LogService,\n VaultTimeoutSettingsServiceAbstraction,\n PlatformUtilsServiceAbstraction,\n KdfConfigServiceAbstraction,\n ],\n }),\n safeProvider({\n provide: InternalOrganizationServiceAbstraction,\n useClass: OrganizationService,\n deps: [StateProvider],\n }),\n safeProvider({\n provide: OrganizationServiceAbstraction,\n useExisting: InternalOrganizationServiceAbstraction,\n }),\n safeProvider({\n provide: OrganizationUserService,\n useClass: OrganizationUserServiceImplementation,\n deps: [ApiServiceAbstraction],\n }),\n safeProvider({\n provide: PasswordResetEnrollmentServiceAbstraction,\n useClass: PasswordResetEnrollmentServiceImplementation,\n deps: [\n OrganizationApiServiceAbstraction,\n AccountServiceAbstraction,\n CryptoServiceAbstraction,\n OrganizationUserService,\n I18nServiceAbstraction,\n ],\n }),\n safeProvider({\n provide: ProviderServiceAbstraction,\n useClass: ProviderService,\n deps: [StateProvider],\n }),\n safeProvider({\n provide: TwoFactorServiceAbstraction,\n useClass: TwoFactorService,\n deps: [I18nServiceAbstraction, PlatformUtilsServiceAbstraction, GlobalStateProvider],\n }),\n safeProvider({\n provide: FormValidationErrorsServiceAbstraction,\n useClass: FormValidationErrorsService,\n deps: [],\n }),\n safeProvider({\n provide: UserVerificationApiServiceAbstraction,\n useClass: UserVerificationApiService,\n deps: [ApiServiceAbstraction],\n }),\n safeProvider({\n provide: OrganizationApiServiceAbstraction,\n useClass: OrganizationApiService,\n // This is a slightly odd dependency tree for a specialized api service\n // it depends on SyncService so that new data can be retrieved through the sync\n // rather than updating the OrganizationService directly. Instead OrganizationService\n // subscribes to sync notifications and will update itself based on that.\n deps: [ApiServiceAbstraction, SyncServiceAbstraction],\n }),\n safeProvider({\n provide: SyncNotifierServiceAbstraction,\n useClass: SyncNotifierService,\n deps: [],\n }),\n safeProvider({\n provide: DefaultConfigService,\n useClass: DefaultConfigService,\n deps: [ConfigApiServiceAbstraction, EnvironmentService, LogService, StateProvider],\n }),\n safeProvider({\n provide: ConfigService,\n useExisting: DefaultConfigService,\n }),\n safeProvider({\n provide: ConfigApiServiceAbstraction,\n useClass: ConfigApiService,\n deps: [ApiServiceAbstraction, TokenServiceAbstraction],\n }),\n safeProvider({\n provide: AnonymousHubServiceAbstraction,\n useClass: AnonymousHubService,\n deps: [EnvironmentService, AuthRequestServiceAbstraction],\n }),\n safeProvider({\n provide: ValidationServiceAbstraction,\n useClass: ValidationService,\n deps: [I18nServiceAbstraction, PlatformUtilsServiceAbstraction],\n }),\n safeProvider({\n provide: LoginEmailServiceAbstraction,\n useClass: LoginEmailService,\n deps: [StateProvider],\n }),\n safeProvider({\n provide: OrgDomainInternalServiceAbstraction,\n useClass: OrgDomainService,\n deps: [PlatformUtilsServiceAbstraction, I18nServiceAbstraction],\n }),\n safeProvider({\n provide: OrgDomainServiceAbstraction,\n useExisting: OrgDomainInternalServiceAbstraction,\n }),\n safeProvider({\n provide: OrgDomainApiServiceAbstraction,\n useClass: OrgDomainApiService,\n deps: [OrgDomainInternalServiceAbstraction, ApiServiceAbstraction],\n }),\n safeProvider({\n provide: DevicesApiServiceAbstraction,\n useClass: DevicesApiServiceImplementation,\n deps: [ApiServiceAbstraction],\n }),\n safeProvider({\n provide: DevicesServiceAbstraction,\n useClass: DevicesServiceImplementation,\n deps: [DevicesApiServiceAbstraction],\n }),\n safeProvider({\n provide: DeviceTrustServiceAbstraction,\n useClass: DeviceTrustService,\n deps: [\n KeyGenerationServiceAbstraction,\n CryptoFunctionServiceAbstraction,\n CryptoServiceAbstraction,\n EncryptService,\n AppIdServiceAbstraction,\n DevicesApiServiceAbstraction,\n I18nServiceAbstraction,\n PlatformUtilsServiceAbstraction,\n StateProvider,\n SECURE_STORAGE,\n UserDecryptionOptionsServiceAbstraction,\n LogService,\n ],\n }),\n safeProvider({\n provide: AuthRequestServiceAbstraction,\n useClass: AuthRequestService,\n deps: [\n AppIdServiceAbstraction,\n AccountServiceAbstraction,\n InternalMasterPasswordServiceAbstraction,\n CryptoServiceAbstraction,\n ApiServiceAbstraction,\n StateProvider,\n ],\n }),\n safeProvider({\n provide: PinServiceAbstraction,\n useClass: PinService,\n deps: [\n AccountServiceAbstraction,\n CryptoFunctionServiceAbstraction,\n EncryptService,\n KdfConfigServiceAbstraction,\n KeyGenerationServiceAbstraction,\n LogService,\n MasterPasswordServiceAbstraction,\n StateProvider,\n StateServiceAbstraction,\n ],\n }),\n safeProvider({\n provide: WebAuthnLoginPrfCryptoServiceAbstraction,\n useClass: WebAuthnLoginPrfCryptoService,\n deps: [CryptoFunctionServiceAbstraction],\n }),\n safeProvider({\n provide: WebAuthnLoginApiServiceAbstraction,\n useClass: WebAuthnLoginApiService,\n deps: [ApiServiceAbstraction, EnvironmentService],\n }),\n safeProvider({\n provide: WebAuthnLoginServiceAbstraction,\n useClass: WebAuthnLoginService,\n deps: [\n WebAuthnLoginApiServiceAbstraction,\n LoginStrategyServiceAbstraction,\n WebAuthnLoginPrfCryptoServiceAbstraction,\n WINDOW,\n LogService,\n ],\n }),\n safeProvider({\n provide: StorageServiceProvider,\n useClass: StorageServiceProvider,\n deps: [OBSERVABLE_DISK_STORAGE, OBSERVABLE_MEMORY_STORAGE],\n }),\n safeProvider({\n provide: StateEventRegistrarService,\n useClass: StateEventRegistrarService,\n deps: [GlobalStateProvider, StorageServiceProvider],\n }),\n safeProvider({\n provide: StateEventRunnerService,\n useClass: StateEventRunnerService,\n deps: [GlobalStateProvider, StorageServiceProvider],\n }),\n safeProvider({\n provide: GlobalStateProvider,\n useClass: DefaultGlobalStateProvider,\n deps: [StorageServiceProvider],\n }),\n safeProvider({\n provide: ActiveUserStateProvider,\n useClass: DefaultActiveUserStateProvider,\n deps: [AccountServiceAbstraction, SingleUserStateProvider],\n }),\n safeProvider({\n provide: SingleUserStateProvider,\n useClass: DefaultSingleUserStateProvider,\n deps: [StorageServiceProvider, StateEventRegistrarService],\n }),\n safeProvider({\n provide: DerivedStateProvider,\n useClass: DefaultDerivedStateProvider,\n deps: [],\n }),\n safeProvider({\n provide: StateProvider,\n useClass: DefaultStateProvider,\n deps: [\n ActiveUserStateProvider,\n SingleUserStateProvider,\n GlobalStateProvider,\n DerivedStateProvider,\n ],\n }),\n safeProvider({\n provide: OrganizationBillingServiceAbstraction,\n useClass: OrganizationBillingService,\n deps: [\n ApiServiceAbstraction,\n CryptoServiceAbstraction,\n EncryptService,\n I18nServiceAbstraction,\n OrganizationApiServiceAbstraction,\n SyncServiceAbstraction,\n ],\n }),\n safeProvider({\n provide: AutofillSettingsServiceAbstraction,\n useClass: AutofillSettingsService,\n deps: [StateProvider, PolicyServiceAbstraction],\n }),\n safeProvider({\n provide: BadgeSettingsServiceAbstraction,\n useClass: BadgeSettingsService,\n deps: [StateProvider],\n }),\n safeProvider({\n provide: DomainSettingsService,\n useClass: DefaultDomainSettingsService,\n deps: [StateProvider],\n }),\n safeProvider({\n provide: BiometricStateService,\n useClass: DefaultBiometricStateService,\n deps: [StateProvider],\n }),\n safeProvider({\n provide: VaultSettingsServiceAbstraction,\n useClass: VaultSettingsService,\n deps: [StateProvider],\n }),\n safeProvider({\n provide: MigrationRunner,\n useClass: MigrationRunner,\n deps: [AbstractStorageService, LogService, MigrationBuilderService, CLIENT_TYPE],\n }),\n safeProvider({\n provide: MigrationBuilderService,\n useClass: MigrationBuilderService,\n deps: [],\n }),\n safeProvider({\n provide: BillingApiServiceAbstraction,\n useClass: BillingApiService,\n deps: [ApiServiceAbstraction],\n }),\n safeProvider({\n provide: PaymentMethodWarningsServiceAbstraction,\n useClass: PaymentMethodWarningsService,\n deps: [BillingApiServiceAbstraction, StateProvider],\n }),\n safeProvider({\n provide: BillingAccountProfileStateService,\n useClass: DefaultBillingAccountProfileStateService,\n deps: [StateProvider],\n }),\n safeProvider({\n provide: OrganizationManagementPreferencesService,\n useClass: DefaultOrganizationManagementPreferencesService,\n deps: [StateProvider],\n }),\n safeProvider({\n provide: UserAutoUnlockKeyService,\n useClass: UserAutoUnlockKeyService,\n deps: [CryptoServiceAbstraction],\n }),\n safeProvider({\n provide: ErrorHandler,\n useClass: LoggingErrorHandler,\n deps: [],\n }),\n safeProvider({\n provide: INTRAPROCESS_MESSAGING_SUBJECT,\n useFactory: () => new Subject>>(),\n deps: [],\n }),\n safeProvider({\n provide: MessageListener,\n useFactory: (subject: Subject>>) =>\n new MessageListener(subject.asObservable()),\n deps: [INTRAPROCESS_MESSAGING_SUBJECT],\n }),\n safeProvider({\n provide: MessageSender,\n useFactory: (subject: Subject>>) =>\n new SubjectMessageSender(subject),\n deps: [INTRAPROCESS_MESSAGING_SUBJECT],\n }),\n safeProvider({\n provide: ProviderApiServiceAbstraction,\n useClass: ProviderApiService,\n deps: [ApiServiceAbstraction],\n }),\n safeProvider({\n provide: KdfConfigServiceAbstraction,\n useClass: KdfConfigService,\n deps: [StateProvider],\n }),\n safeProvider({\n provide: BraintreeServiceAbstraction,\n useClass: BraintreeService,\n deps: [LogService],\n }),\n safeProvider({\n provide: StripeServiceAbstraction,\n useClass: StripeService,\n deps: [LogService],\n }),\n];\n\nfunction encryptServiceFactory(\n cryptoFunctionservice: CryptoFunctionServiceAbstraction,\n logService: LogService,\n logMacFailures: boolean,\n): EncryptService {\n return flagEnabled(\"multithreadDecryption\")\n ? new MultithreadEncryptServiceImplementation(cryptoFunctionservice, logService, logMacFailures)\n : new EncryptServiceImplementation(cryptoFunctionservice, logService, logMacFailures);\n}\n\n@NgModule({\n declarations: [],\n // Do not register your dependency here! Add it to the typesafeProviders array using the helper function\n providers: safeProviders,\n})\nexport class JslibServicesModule {}\n","import {\n Observable,\n combineLatest,\n distinctUntilChanged,\n firstValueFrom,\n map,\n of,\n shareReplay,\n switchMap,\n} from \"rxjs\";\n\nimport { ApiService } from \"../../abstractions/api.service\";\nimport { CryptoService } from \"../../platform/abstractions/crypto.service\";\nimport { StateService } from \"../../platform/abstractions/state.service\";\nimport { MessageSender } from \"../../platform/messaging\";\nimport { Utils } from \"../../platform/misc/utils\";\nimport { UserId } from \"../../types/guid\";\nimport { AccountService } from \"../abstractions/account.service\";\nimport { AuthService as AuthServiceAbstraction } from \"../abstractions/auth.service\";\nimport { TokenService } from \"../abstractions/token.service\";\nimport { AuthenticationStatus } from \"../enums/authentication-status\";\n\nexport class AuthService implements AuthServiceAbstraction {\n activeAccountStatus$: Observable;\n authStatuses$: Observable>;\n\n constructor(\n protected accountService: AccountService,\n protected messageSender: MessageSender,\n protected cryptoService: CryptoService,\n protected apiService: ApiService,\n protected stateService: StateService,\n private tokenService: TokenService,\n ) {\n this.activeAccountStatus$ = this.accountService.activeAccount$.pipe(\n map((account) => account?.id),\n switchMap((userId) => {\n return this.authStatusFor$(userId);\n }),\n );\n\n this.authStatuses$ = this.accountService.accounts$.pipe(\n map((accounts) => Object.keys(accounts) as UserId[]),\n switchMap((entries) => {\n if (entries.length === 0) {\n return of([] as { userId: UserId; status: AuthenticationStatus }[]);\n }\n return combineLatest(\n entries.map((userId) =>\n this.authStatusFor$(userId).pipe(map((status) => ({ userId, status }))),\n ),\n );\n }),\n map((statuses) => {\n return statuses.reduce(\n (acc, { userId, status }) => {\n acc[userId] = status;\n return acc;\n },\n {} as Record,\n );\n }),\n );\n }\n\n authStatusFor$(userId: UserId): Observable {\n if (!Utils.isGuid(userId)) {\n return of(AuthenticationStatus.LoggedOut);\n }\n\n return combineLatest([\n this.cryptoService.getInMemoryUserKeyFor$(userId),\n this.tokenService.hasAccessToken$(userId),\n ]).pipe(\n map(([userKey, hasAccessToken]) => {\n if (!hasAccessToken) {\n return AuthenticationStatus.LoggedOut;\n }\n\n if (!userKey) {\n return AuthenticationStatus.Locked;\n }\n\n return AuthenticationStatus.Unlocked;\n }),\n distinctUntilChanged(),\n shareReplay({ bufferSize: 1, refCount: false }),\n );\n }\n\n async getAuthStatus(userId?: string): Promise {\n userId ??= await firstValueFrom(this.accountService.activeAccount$.pipe(map((a) => a?.id)));\n return await firstValueFrom(this.authStatusFor$(userId as UserId));\n }\n\n logOut(callback: () => void) {\n callback();\n this.messageSender.send(\"loggedOut\");\n }\n}\n","import {\n FileUploadApiMethods,\n FileUploadService as FileUploadServiceAbstraction,\n} from \"../../abstractions/file-upload/file-upload.service\";\nimport { LogService } from \"../../abstractions/log.service\";\nimport { FileUploadType } from \"../../enums\";\nimport { EncArrayBuffer } from \"../../models/domain/enc-array-buffer\";\nimport { EncString } from \"../../models/domain/enc-string\";\n\nimport { AzureFileUploadService } from \"./azure-file-upload.service\";\nimport { BitwardenFileUploadService } from \"./bitwarden-file-upload.service\";\n\nexport class FileUploadService implements FileUploadServiceAbstraction {\n private azureFileUploadService: AzureFileUploadService;\n private bitwardenFileUploadService: BitwardenFileUploadService;\n\n constructor(protected logService: LogService) {\n this.azureFileUploadService = new AzureFileUploadService(logService);\n this.bitwardenFileUploadService = new BitwardenFileUploadService();\n }\n\n async upload(\n uploadData: { url: string; fileUploadType: FileUploadType },\n fileName: EncString,\n encryptedFileData: EncArrayBuffer,\n fileUploadMethods: FileUploadApiMethods,\n ) {\n try {\n switch (uploadData.fileUploadType) {\n case FileUploadType.Direct:\n await this.bitwardenFileUploadService.upload(\n fileName.encryptedString,\n encryptedFileData,\n (fd) => fileUploadMethods.postDirect(fd),\n );\n break;\n case FileUploadType.Azure: {\n await this.azureFileUploadService.upload(\n uploadData.url,\n encryptedFileData,\n fileUploadMethods.renewFileUploadUrl,\n );\n break;\n }\n default:\n throw new Error(\"Unknown file upload type\");\n }\n } catch (e) {\n await fileUploadMethods.rollback();\n throw e;\n }\n }\n}\n","import { ApiService } from \"../../../abstractions/api.service\";\nimport { ErrorResponse } from \"../../../models/response/error.response\";\nimport {\n FileUploadApiMethods,\n FileUploadService,\n} from \"../../../platform/abstractions/file-upload/file-upload.service\";\nimport { Utils } from \"../../../platform/misc/utils\";\nimport { EncArrayBuffer } from \"../../../platform/models/domain/enc-array-buffer\";\nimport { EncString } from \"../../../platform/models/domain/enc-string\";\nimport { SymmetricCryptoKey } from \"../../../platform/models/domain/symmetric-crypto-key\";\nimport { CipherFileUploadService as CipherFileUploadServiceAbstraction } from \"../../abstractions/file-upload/cipher-file-upload.service\";\nimport { Cipher } from \"../../models/domain/cipher\";\nimport { AttachmentRequest } from \"../../models/request/attachment.request\";\nimport { AttachmentUploadDataResponse } from \"../../models/response/attachment-upload-data.response\";\nimport { CipherResponse } from \"../../models/response/cipher.response\";\n\nexport class CipherFileUploadService implements CipherFileUploadServiceAbstraction {\n constructor(\n private apiService: ApiService,\n private fileUploadService: FileUploadService,\n ) {}\n\n async upload(\n cipher: Cipher,\n encFileName: EncString,\n encData: EncArrayBuffer,\n admin: boolean,\n dataEncKey: [SymmetricCryptoKey, EncString],\n ): Promise {\n const request: AttachmentRequest = {\n key: dataEncKey[1].encryptedString,\n fileName: encFileName.encryptedString,\n fileSize: encData.buffer.byteLength,\n adminRequest: admin,\n };\n\n let response: CipherResponse;\n try {\n const uploadDataResponse = await this.apiService.postCipherAttachment(cipher.id, request);\n response = admin ? uploadDataResponse.cipherMiniResponse : uploadDataResponse.cipherResponse;\n await this.fileUploadService.upload(\n uploadDataResponse,\n encFileName,\n encData,\n this.generateMethods(uploadDataResponse, response, request.adminRequest),\n );\n } catch (e) {\n if (\n (e instanceof ErrorResponse && (e as ErrorResponse).statusCode === 404) ||\n (e as ErrorResponse).statusCode === 405\n ) {\n response = await this.legacyServerAttachmentFileUpload(\n request.adminRequest,\n cipher.id,\n encFileName,\n encData,\n dataEncKey[1],\n );\n } else if (e instanceof ErrorResponse) {\n throw new Error((e as ErrorResponse).getSingleMessage());\n } else {\n throw e;\n }\n }\n return response;\n }\n\n private generateMethods(\n uploadData: AttachmentUploadDataResponse,\n response: CipherResponse,\n isAdmin: boolean,\n ): FileUploadApiMethods {\n return {\n postDirect: this.generatePostDirectCallback(uploadData, isAdmin),\n renewFileUploadUrl: this.generateRenewFileUploadUrlCallback(uploadData, response, isAdmin),\n rollback: this.generateRollbackCallback(response, uploadData, isAdmin),\n };\n }\n\n private generatePostDirectCallback(uploadData: AttachmentUploadDataResponse, isAdmin: boolean) {\n return (data: FormData) => {\n const response = isAdmin ? uploadData.cipherMiniResponse : uploadData.cipherResponse;\n return this.apiService.postAttachmentFile(response.id, uploadData.attachmentId, data);\n };\n }\n\n private generateRenewFileUploadUrlCallback(\n uploadData: AttachmentUploadDataResponse,\n response: CipherResponse,\n isAdmin: boolean,\n ) {\n return async () => {\n const renewResponse = await this.apiService.renewAttachmentUploadUrl(\n response.id,\n uploadData.attachmentId,\n );\n return renewResponse?.url;\n };\n }\n\n private generateRollbackCallback(\n response: CipherResponse,\n uploadData: AttachmentUploadDataResponse,\n isAdmin: boolean,\n ) {\n return () => {\n if (isAdmin) {\n return this.apiService.deleteCipherAttachmentAdmin(response.id, uploadData.attachmentId);\n } else {\n return this.apiService.deleteCipherAttachment(response.id, uploadData.attachmentId);\n }\n };\n }\n\n /**\n * @deprecated Mar 25 2021: This method has been deprecated in favor of direct uploads.\n * This method still exists for backward compatibility with old server versions.\n */\n async legacyServerAttachmentFileUpload(\n admin: boolean,\n cipherId: string,\n encFileName: EncString,\n encData: EncArrayBuffer,\n key: EncString,\n ) {\n const fd = new FormData();\n try {\n const blob = new Blob([encData.buffer], { type: \"application/octet-stream\" });\n fd.append(\"key\", key.encryptedString);\n fd.append(\"data\", blob, encFileName.encryptedString);\n } catch (e) {\n if (Utils.isNode && !Utils.isBrowser) {\n fd.append(\"key\", key.encryptedString);\n fd.append(\n \"data\",\n Buffer.from(encData.buffer) as any,\n {\n filepath: encFileName.encryptedString,\n contentType: \"application/octet-stream\",\n } as any,\n );\n } else {\n throw e;\n }\n }\n\n let response: CipherResponse;\n try {\n if (admin) {\n response = await this.apiService.postCipherAttachmentAdminLegacy(cipherId, fd);\n } else {\n response = await this.apiService.postCipherAttachmentLegacy(cipherId, fd);\n }\n } catch (e) {\n throw new Error((e as ErrorResponse).getSingleMessage());\n }\n\n return response;\n }\n}\n","import { Observable, firstValueFrom, map } from \"rxjs\";\n\nimport { CryptoService } from \"../../../platform/abstractions/crypto.service\";\nimport { I18nService } from \"../../../platform/abstractions/i18n.service\";\nimport { Utils } from \"../../../platform/misc/utils\";\nimport { SymmetricCryptoKey } from \"../../../platform/models/domain/symmetric-crypto-key\";\nimport { ActiveUserState, DerivedState, StateProvider } from \"../../../platform/state\";\nimport { UserId } from \"../../../types/guid\";\nimport { CipherService } from \"../../../vault/abstractions/cipher.service\";\nimport { InternalFolderService as InternalFolderServiceAbstraction } from \"../../../vault/abstractions/folder/folder.service.abstraction\";\nimport { FolderData } from \"../../../vault/models/data/folder.data\";\nimport { Folder } from \"../../../vault/models/domain/folder\";\nimport { FolderView } from \"../../../vault/models/view/folder.view\";\nimport { Cipher } from \"../../models/domain/cipher\";\nimport { FOLDER_DECRYPTED_FOLDERS, FOLDER_ENCRYPTED_FOLDERS } from \"../key-state/folder.state\";\n\nexport class FolderService implements InternalFolderServiceAbstraction {\n folders$: Observable;\n folderViews$: Observable;\n\n private encryptedFoldersState: ActiveUserState>;\n private decryptedFoldersState: DerivedState;\n\n constructor(\n private cryptoService: CryptoService,\n private i18nService: I18nService,\n private cipherService: CipherService,\n private stateProvider: StateProvider,\n ) {\n this.encryptedFoldersState = this.stateProvider.getActive(FOLDER_ENCRYPTED_FOLDERS);\n this.decryptedFoldersState = this.stateProvider.getDerived(\n this.encryptedFoldersState.state$,\n FOLDER_DECRYPTED_FOLDERS,\n { folderService: this, cryptoService: this.cryptoService },\n );\n\n this.folders$ = this.encryptedFoldersState.state$.pipe(\n map((folderData) => Object.values(folderData).map((f) => new Folder(f))),\n );\n\n this.folderViews$ = this.decryptedFoldersState.state$;\n }\n\n async clearCache(): Promise {\n await this.decryptedFoldersState.forceValue([]);\n }\n\n // TODO: This should be moved to EncryptService or something\n async encrypt(model: FolderView, key?: SymmetricCryptoKey): Promise {\n const folder = new Folder();\n folder.id = model.id;\n folder.name = await this.cryptoService.encrypt(model.name, key);\n return folder;\n }\n\n async get(id: string): Promise {\n const folders = await firstValueFrom(this.folders$);\n\n return folders.find((folder) => folder.id === id);\n }\n\n async getAllFromState(): Promise {\n return await firstValueFrom(this.folders$);\n }\n\n /**\n * @deprecated For the CLI only\n * @param id id of the folder\n */\n async getFromState(id: string): Promise {\n const folder = await this.get(id);\n if (!folder) {\n return null;\n }\n\n return folder;\n }\n\n /**\n * @deprecated Only use in CLI!\n */\n async getAllDecryptedFromState(): Promise {\n return await firstValueFrom(this.folderViews$);\n }\n\n async upsert(folderData: FolderData | FolderData[]): Promise {\n await this.encryptedFoldersState.update((folders) => {\n if (folders == null) {\n folders = {};\n }\n\n if (folderData instanceof FolderData) {\n const f = folderData as FolderData;\n folders[f.id] = f;\n } else {\n (folderData as FolderData[]).forEach((f) => {\n folders[f.id] = f;\n });\n }\n\n return folders;\n });\n }\n\n async replace(folders: { [id: string]: FolderData }): Promise {\n if (!folders) {\n return;\n }\n\n await this.encryptedFoldersState.update(() => {\n const newFolders: Record = { ...folders };\n return newFolders;\n });\n }\n\n async clear(userId?: UserId): Promise {\n if (userId == null) {\n await this.encryptedFoldersState.update(() => ({}));\n await this.decryptedFoldersState.forceValue([]);\n } else {\n await this.stateProvider.getUser(userId, FOLDER_ENCRYPTED_FOLDERS).update(() => ({}));\n }\n }\n\n async delete(id: string | string[]): Promise {\n await this.encryptedFoldersState.update((folders) => {\n if (folders == null) {\n return;\n }\n\n if (typeof id === \"string\") {\n if (folders[id] == null) {\n return;\n }\n delete folders[id];\n } else {\n (id as string[]).forEach((i) => {\n delete folders[i];\n });\n }\n return folders;\n });\n\n // Items in a deleted folder are re-assigned to \"No Folder\"\n const ciphers = await this.cipherService.getAll();\n if (ciphers != null) {\n const updates: Cipher[] = [];\n for (const cId in ciphers) {\n if (ciphers[cId].folderId === id) {\n ciphers[cId].folderId = null;\n updates.push(ciphers[cId]);\n }\n }\n if (updates.length > 0) {\n // FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.cipherService.upsert(updates.map((c) => c.toCipherData()));\n }\n }\n }\n\n async decryptFolders(folders: Folder[]) {\n const decryptFolderPromises = folders.map((f) => f.decrypt());\n const decryptedFolders = await Promise.all(decryptFolderPromises);\n\n decryptedFolders.sort(Utils.getSortFunction(this.i18nService, \"name\"));\n\n const noneFolder = new FolderView();\n noneFolder.name = this.i18nService.t(\"noneFolder\");\n decryptedFolders.push(noneFolder);\n return decryptedFolders;\n }\n}\n","import { ApiService } from \"../../../abstractions/api.service\";\nimport { FolderApiServiceAbstraction } from \"../../../vault/abstractions/folder/folder-api.service.abstraction\";\nimport { InternalFolderService } from \"../../../vault/abstractions/folder/folder.service.abstraction\";\nimport { FolderData } from \"../../../vault/models/data/folder.data\";\nimport { Folder } from \"../../../vault/models/domain/folder\";\nimport { FolderRequest } from \"../../../vault/models/request/folder.request\";\nimport { FolderResponse } from \"../../../vault/models/response/folder.response\";\n\nexport class FolderApiService implements FolderApiServiceAbstraction {\n constructor(\n private folderService: InternalFolderService,\n private apiService: ApiService,\n ) {}\n\n async save(folder: Folder): Promise {\n const request = new FolderRequest(folder);\n\n let response: FolderResponse;\n if (folder.id == null) {\n response = await this.postFolder(request);\n folder.id = response.id;\n } else {\n response = await this.putFolder(folder.id, request);\n }\n\n const data = new FolderData(response);\n await this.folderService.upsert(data);\n }\n\n async delete(id: string): Promise {\n await this.deleteFolder(id);\n await this.folderService.delete(id);\n }\n\n async get(id: string): Promise {\n const r = await this.apiService.send(\"GET\", \"/folders/\" + id, null, true, true);\n return new FolderResponse(r);\n }\n\n private async postFolder(request: FolderRequest): Promise {\n const r = await this.apiService.send(\"POST\", \"/folders\", request, true, true);\n return new FolderResponse(r);\n }\n\n async putFolder(id: string, request: FolderRequest): Promise {\n const r = await this.apiService.send(\"PUT\", \"/folders/\" + id, request, true, true);\n return new FolderResponse(r);\n }\n\n private deleteFolder(id: string): Promise {\n return this.apiService.send(\"DELETE\", \"/folders/\" + id, null, true, false);\n }\n}\n","import { ApiService } from \"../../abstractions/api.service\";\nimport { LogService } from \"../../platform/abstractions/log.service\";\nimport { AccountApiService } from \"../abstractions/account-api.service\";\nimport { InternalAccountService } from \"../abstractions/account.service\";\nimport { UserVerificationService } from \"../abstractions/user-verification/user-verification.service.abstraction\";\nimport { Verification } from \"../types/verification\";\n\nexport class AccountApiServiceImplementation implements AccountApiService {\n constructor(\n private apiService: ApiService,\n private userVerificationService: UserVerificationService,\n private logService: LogService,\n private accountService: InternalAccountService,\n ) {}\n\n async deleteAccount(verification: Verification): Promise {\n try {\n const verificationRequest = await this.userVerificationService.buildRequest(verification);\n await this.apiService.send(\"DELETE\", \"/accounts\", verificationRequest, true, false);\n this.accountService.delete();\n } catch (e) {\n this.logService.error(e);\n throw e;\n }\n }\n}\n","import { KdfConfig } from \"../../auth/models/domain/kdf-config\";\nimport { CsprngArray } from \"../../types/csprng\";\nimport { CryptoFunctionService } from \"../abstractions/crypto-function.service\";\nimport { KeyGenerationService as KeyGenerationServiceAbstraction } from \"../abstractions/key-generation.service\";\nimport {\n ARGON2_ITERATIONS,\n ARGON2_MEMORY,\n ARGON2_PARALLELISM,\n KdfType,\n PBKDF2_ITERATIONS,\n} from \"../enums\";\nimport { Utils } from \"../misc/utils\";\nimport { SymmetricCryptoKey } from \"../models/domain/symmetric-crypto-key\";\n\nexport class KeyGenerationService implements KeyGenerationServiceAbstraction {\n constructor(private cryptoFunctionService: CryptoFunctionService) {}\n\n async createKey(bitLength: 256 | 512): Promise {\n const key = await this.cryptoFunctionService.aesGenerateKey(bitLength);\n return new SymmetricCryptoKey(key);\n }\n\n async createKeyWithPurpose(\n bitLength: 128 | 192 | 256 | 512,\n purpose: string,\n salt?: string,\n ): Promise<{ salt: string; material: CsprngArray; derivedKey: SymmetricCryptoKey }> {\n if (salt == null) {\n const bytes = await this.cryptoFunctionService.randomBytes(32);\n salt = Utils.fromBufferToUtf8(bytes);\n }\n const material = await this.cryptoFunctionService.aesGenerateKey(bitLength);\n const key = await this.cryptoFunctionService.hkdf(material, salt, purpose, 64, \"sha256\");\n return { salt, material, derivedKey: new SymmetricCryptoKey(key) };\n }\n\n async deriveKeyFromMaterial(\n material: CsprngArray,\n salt: string,\n purpose: string,\n ): Promise {\n const key = await this.cryptoFunctionService.hkdf(material, salt, purpose, 64, \"sha256\");\n return new SymmetricCryptoKey(key);\n }\n\n async deriveKeyFromPassword(\n password: string | Uint8Array,\n salt: string | Uint8Array,\n kdfConfig: KdfConfig,\n ): Promise {\n let key: Uint8Array = null;\n if (kdfConfig.kdfType == null || kdfConfig.kdfType === KdfType.PBKDF2_SHA256) {\n if (kdfConfig.iterations == null) {\n kdfConfig.iterations = PBKDF2_ITERATIONS.defaultValue;\n }\n\n key = await this.cryptoFunctionService.pbkdf2(password, salt, \"sha256\", kdfConfig.iterations);\n } else if (kdfConfig.kdfType == KdfType.Argon2id) {\n if (kdfConfig.iterations == null) {\n kdfConfig.iterations = ARGON2_ITERATIONS.defaultValue;\n }\n\n if (kdfConfig.memory == null) {\n kdfConfig.memory = ARGON2_MEMORY.defaultValue;\n }\n\n if (kdfConfig.parallelism == null) {\n kdfConfig.parallelism = ARGON2_PARALLELISM.defaultValue;\n }\n\n const saltHash = await this.cryptoFunctionService.hash(salt, \"sha256\");\n key = await this.cryptoFunctionService.argon2(\n password,\n saltHash,\n kdfConfig.iterations,\n kdfConfig.memory * 1024, // convert to KiB from MiB\n kdfConfig.parallelism,\n );\n } else {\n throw new Error(\"Unknown Kdf.\");\n }\n return new SymmetricCryptoKey(key);\n }\n\n async stretchKey(key: SymmetricCryptoKey): Promise {\n const newKey = new Uint8Array(64);\n const encKey = await this.cryptoFunctionService.hkdfExpand(key.key, \"enc\", 32, \"sha256\");\n const macKey = await this.cryptoFunctionService.hkdfExpand(key.key, \"mac\", 32, \"sha256\");\n\n newKey.set(new Uint8Array(encKey));\n newKey.set(new Uint8Array(macKey), 32);\n\n return new SymmetricCryptoKey(newKey);\n }\n}\n","import * as bigInt from \"big-integer\";\nimport {\n NEVER,\n Observable,\n combineLatest,\n firstValueFrom,\n forkJoin,\n map,\n of,\n switchMap,\n} from \"rxjs\";\n\nimport { PinServiceAbstraction } from \"../../../../auth/src/common/abstractions\";\nimport { EncryptedOrganizationKeyData } from \"../../admin-console/models/data/encrypted-organization-key.data\";\nimport { BaseEncryptedOrganizationKey } from \"../../admin-console/models/domain/encrypted-organization-key\";\nimport { ProfileOrganizationResponse } from \"../../admin-console/models/response/profile-organization.response\";\nimport { ProfileProviderOrganizationResponse } from \"../../admin-console/models/response/profile-provider-organization.response\";\nimport { ProfileProviderResponse } from \"../../admin-console/models/response/profile-provider.response\";\nimport { AccountService } from \"../../auth/abstractions/account.service\";\nimport { KdfConfigService } from \"../../auth/abstractions/kdf-config.service\";\nimport { InternalMasterPasswordServiceAbstraction } from \"../../auth/abstractions/master-password.service.abstraction\";\nimport { KdfConfig } from \"../../auth/models/domain/kdf-config\";\nimport { Utils } from \"../../platform/misc/utils\";\nimport { VAULT_TIMEOUT } from \"../../services/vault-timeout/vault-timeout-settings.state\";\nimport { CsprngArray } from \"../../types/csprng\";\nimport { OrganizationId, ProviderId, UserId } from \"../../types/guid\";\nimport {\n OrgKey,\n UserKey,\n MasterKey,\n ProviderKey,\n CipherKey,\n UserPrivateKey,\n UserPublicKey,\n} from \"../../types/key\";\nimport { VaultTimeoutStringType } from \"../../types/vault-timeout.type\";\nimport { CryptoFunctionService } from \"../abstractions/crypto-function.service\";\nimport {\n CipherDecryptionKeys,\n CryptoService as CryptoServiceAbstraction,\n} from \"../abstractions/crypto.service\";\nimport { EncryptService } from \"../abstractions/encrypt.service\";\nimport { KeyGenerationService } from \"../abstractions/key-generation.service\";\nimport { LogService } from \"../abstractions/log.service\";\nimport { PlatformUtilsService } from \"../abstractions/platform-utils.service\";\nimport { StateService } from \"../abstractions/state.service\";\nimport { KeySuffixOptions, HashPurpose, EncryptionType } from \"../enums\";\nimport { convertValues } from \"../misc/convert-values\";\nimport { EFFLongWordList } from \"../misc/wordlist\";\nimport { EncArrayBuffer } from \"../models/domain/enc-array-buffer\";\nimport { EncString, EncryptedString } from \"../models/domain/enc-string\";\nimport { SymmetricCryptoKey } from \"../models/domain/symmetric-crypto-key\";\nimport { ActiveUserState, StateProvider } from \"../state\";\n\nimport { USER_ENCRYPTED_ORGANIZATION_KEYS } from \"./key-state/org-keys.state\";\nimport { USER_ENCRYPTED_PROVIDER_KEYS } from \"./key-state/provider-keys.state\";\nimport {\n USER_ENCRYPTED_PRIVATE_KEY,\n USER_EVER_HAD_USER_KEY,\n USER_KEY,\n} from \"./key-state/user-key.state\";\n\nexport class CryptoService implements CryptoServiceAbstraction {\n private readonly activeUserEverHadUserKey: ActiveUserState;\n\n readonly everHadUserKey$: Observable;\n\n readonly activeUserOrgKeys$: Observable>;\n\n constructor(\n protected pinService: PinServiceAbstraction,\n protected masterPasswordService: InternalMasterPasswordServiceAbstraction,\n protected keyGenerationService: KeyGenerationService,\n protected cryptoFunctionService: CryptoFunctionService,\n protected encryptService: EncryptService,\n protected platformUtilService: PlatformUtilsService,\n protected logService: LogService,\n protected stateService: StateService,\n protected accountService: AccountService,\n protected stateProvider: StateProvider,\n protected kdfConfigService: KdfConfigService,\n ) {\n // User Key\n this.activeUserEverHadUserKey = stateProvider.getActive(USER_EVER_HAD_USER_KEY);\n this.everHadUserKey$ = this.activeUserEverHadUserKey.state$.pipe(map((x) => x ?? false));\n\n this.activeUserOrgKeys$ = this.stateProvider.activeUserId$.pipe(\n switchMap((userId) => (userId != null ? this.orgKeys$(userId) : NEVER)),\n );\n }\n\n async setUserKey(key: UserKey, userId?: UserId): Promise {\n if (key == null) {\n throw new Error(\"No key provided. Lock the user to clear the key\");\n }\n // Set userId to ensure we have one for the account status update\n [userId, key] = await this.stateProvider.setUserState(USER_KEY, key, userId);\n await this.stateProvider.setUserState(USER_EVER_HAD_USER_KEY, true, userId);\n\n await this.storeAdditionalKeys(key, userId);\n }\n\n async refreshAdditionalKeys(): Promise {\n const activeUserId = await firstValueFrom(this.stateProvider.activeUserId$);\n\n if (activeUserId == null) {\n throw new Error(\"Can only refresh keys while there is an active user.\");\n }\n\n const key = await this.getUserKey(activeUserId);\n await this.setUserKey(key, activeUserId);\n }\n\n getInMemoryUserKeyFor$(userId: UserId): Observable {\n return this.stateProvider.getUserState$(USER_KEY, userId);\n }\n\n async getUserKey(userId?: UserId): Promise {\n const userKey = await firstValueFrom(this.stateProvider.getUserState$(USER_KEY, userId));\n return userKey;\n }\n\n async isLegacyUser(masterKey?: MasterKey, userId?: UserId): Promise {\n userId ??= await firstValueFrom(this.stateProvider.activeUserId$);\n masterKey ??= await firstValueFrom(this.masterPasswordService.masterKey$(userId));\n\n return await this.validateUserKey(masterKey as unknown as UserKey, userId);\n }\n\n // TODO: legacy support for user key is no longer needed since we require users to migrate on login\n async getUserKeyWithLegacySupport(userId?: UserId): Promise {\n userId ??= await firstValueFrom(this.stateProvider.activeUserId$);\n\n const userKey = await this.getUserKey(userId);\n if (userKey) {\n return userKey;\n }\n\n // Legacy support: encryption used to be done with the master key (derived from master password).\n // Users who have not migrated will have a null user key and must use the master key instead.\n const masterKey = await firstValueFrom(this.masterPasswordService.masterKey$(userId));\n return masterKey as unknown as UserKey;\n }\n\n async getUserKeyFromStorage(keySuffix: KeySuffixOptions, userId?: UserId): Promise {\n userId ??= await firstValueFrom(this.stateProvider.activeUserId$);\n const userKey = await this.getKeyFromStorage(keySuffix, userId);\n if (userKey) {\n if (!(await this.validateUserKey(userKey, userId))) {\n this.logService.warning(\"Invalid key, throwing away stored keys\");\n await this.clearAllStoredUserKeys(userId);\n }\n return userKey;\n }\n }\n\n async hasUserKey(userId?: UserId): Promise {\n userId ??= await firstValueFrom(this.stateProvider.activeUserId$);\n if (userId == null) {\n return false;\n }\n return await this.hasUserKeyInMemory(userId);\n }\n\n async hasUserKeyInMemory(userId?: UserId): Promise {\n userId ??= await firstValueFrom(this.stateProvider.activeUserId$);\n if (userId == null) {\n return false;\n }\n\n return (await firstValueFrom(this.stateProvider.getUserState$(USER_KEY, userId))) != null;\n }\n\n async hasUserKeyStored(keySuffix: KeySuffixOptions, userId?: UserId): Promise {\n return (await this.getKeyFromStorage(keySuffix, userId)) != null;\n }\n\n async makeUserKey(masterKey: MasterKey): Promise<[UserKey, EncString]> {\n if (!masterKey) {\n const userId = await firstValueFrom(this.stateProvider.activeUserId$);\n masterKey = await firstValueFrom(this.masterPasswordService.masterKey$(userId));\n }\n if (masterKey == null) {\n throw new Error(\"No Master Key found.\");\n }\n\n const newUserKey = await this.keyGenerationService.createKey(512);\n return this.buildProtectedSymmetricKey(masterKey, newUserKey.key);\n }\n\n /**\n * Clears the user key. Clears all stored versions of the user keys as well, such as the biometrics key\n * @param userId The desired user\n */\n private async clearUserKey(userId: UserId): Promise {\n if (userId == null) {\n // nothing to do\n return;\n }\n // Set userId to ensure we have one for the account status update\n await this.stateProvider.setUserState(USER_KEY, null, userId);\n await this.clearAllStoredUserKeys(userId);\n }\n\n async clearStoredUserKey(keySuffix: KeySuffixOptions, userId?: UserId): Promise {\n if (keySuffix === KeySuffixOptions.Auto) {\n // FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.stateService.setUserKeyAutoUnlock(null, { userId: userId });\n // FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.clearDeprecatedKeys(KeySuffixOptions.Auto, userId);\n }\n if (keySuffix === KeySuffixOptions.Pin) {\n // FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.pinService.clearPinKeyEncryptedUserKeyEphemeral(userId);\n // FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.clearDeprecatedKeys(KeySuffixOptions.Pin, userId);\n }\n }\n\n async setMasterKeyEncryptedUserKey(userKeyMasterKey: string, userId?: UserId): Promise {\n userId ??= await firstValueFrom(this.stateProvider.activeUserId$);\n await this.masterPasswordService.setMasterKeyEncryptedUserKey(\n new EncString(userKeyMasterKey),\n userId,\n );\n }\n\n // TODO: Move to MasterPasswordService\n async getOrDeriveMasterKey(password: string, userId?: UserId) {\n const [resolvedUserId, email] = await firstValueFrom(\n combineLatest([this.accountService.activeAccount$, this.accountService.accounts$]).pipe(\n map(([activeAccount, accounts]) => {\n userId ??= activeAccount?.id;\n return [userId, accounts[userId]?.email];\n }),\n ),\n );\n let masterKey = await firstValueFrom(this.masterPasswordService.masterKey$(resolvedUserId));\n return (masterKey ||= await this.makeMasterKey(\n password,\n email,\n await this.kdfConfigService.getKdfConfig(),\n ));\n }\n\n /**\n * Derive a master key from a password and email.\n *\n * @remarks\n * Does not validate the kdf config to ensure it satisfies the minimum requirements for the given kdf type.\n * TODO: Move to MasterPasswordService\n */\n async makeMasterKey(password: string, email: string, KdfConfig: KdfConfig): Promise {\n return (await this.keyGenerationService.deriveKeyFromPassword(\n password,\n email,\n KdfConfig,\n )) as MasterKey;\n }\n\n async encryptUserKeyWithMasterKey(\n masterKey: MasterKey,\n userKey?: UserKey,\n ): Promise<[UserKey, EncString]> {\n userKey ||= await this.getUserKey();\n return await this.buildProtectedSymmetricKey(masterKey, userKey.key);\n }\n\n // TODO: move to MasterPasswordService\n async hashMasterKey(\n password: string,\n key: MasterKey,\n hashPurpose?: HashPurpose,\n ): Promise {\n if (!key) {\n const userId = await firstValueFrom(this.stateProvider.activeUserId$);\n key = await firstValueFrom(this.masterPasswordService.masterKey$(userId));\n }\n\n if (password == null || key == null) {\n throw new Error(\"Invalid parameters.\");\n }\n\n const iterations = hashPurpose === HashPurpose.LocalAuthorization ? 2 : 1;\n const hash = await this.cryptoFunctionService.pbkdf2(key.key, password, \"sha256\", iterations);\n return Utils.fromBufferToB64(hash);\n }\n\n // TODO: move to MasterPasswordService\n async compareAndUpdateKeyHash(masterPassword: string, masterKey: MasterKey): Promise {\n const userId = await firstValueFrom(this.stateProvider.activeUserId$);\n const storedPasswordHash = await firstValueFrom(\n this.masterPasswordService.masterKeyHash$(userId),\n );\n if (masterPassword != null && storedPasswordHash != null) {\n const localKeyHash = await this.hashMasterKey(\n masterPassword,\n masterKey,\n HashPurpose.LocalAuthorization,\n );\n if (localKeyHash != null && storedPasswordHash === localKeyHash) {\n return true;\n }\n\n // TODO: remove serverKeyHash check in 1-2 releases after everyone's keyHash has been updated\n const serverKeyHash = await this.hashMasterKey(\n masterPassword,\n masterKey,\n HashPurpose.ServerAuthorization,\n );\n if (serverKeyHash != null && storedPasswordHash === serverKeyHash) {\n await this.masterPasswordService.setMasterKeyHash(localKeyHash, userId);\n return true;\n }\n }\n\n return false;\n }\n\n async setOrgKeys(\n orgs: ProfileOrganizationResponse[],\n providerOrgs: ProfileProviderOrganizationResponse[],\n userId: UserId,\n ): Promise {\n await this.stateProvider.getUser(userId, USER_ENCRYPTED_ORGANIZATION_KEYS).update(() => {\n const encOrgKeyData: { [orgId: string]: EncryptedOrganizationKeyData } = {};\n\n orgs.forEach((org) => {\n encOrgKeyData[org.id] = {\n type: \"organization\",\n key: org.key,\n };\n });\n\n providerOrgs.forEach((org) => {\n encOrgKeyData[org.id] = {\n type: \"provider\",\n providerId: org.providerId,\n key: org.key,\n };\n });\n\n return encOrgKeyData;\n });\n }\n\n async getOrgKey(orgId: OrganizationId): Promise {\n const activeUserId = await firstValueFrom(this.stateProvider.activeUserId$);\n if (activeUserId == null) {\n throw new Error(\"A user must be active to retrieve an org key\");\n }\n const orgKeys = await firstValueFrom(this.orgKeys$(activeUserId));\n return orgKeys[orgId];\n }\n\n async makeDataEncKey(\n key: T,\n ): Promise<[SymmetricCryptoKey, EncString]> {\n if (key == null) {\n throw new Error(\"No key provided\");\n }\n\n const newSymKey = await this.keyGenerationService.createKey(512);\n return this.buildProtectedSymmetricKey(key, newSymKey.key);\n }\n\n private async clearOrgKeys(userId: UserId): Promise {\n if (userId == null) {\n // nothing to do\n return;\n }\n await this.stateProvider.setUserState(USER_ENCRYPTED_ORGANIZATION_KEYS, null, userId);\n }\n\n async setProviderKeys(providers: ProfileProviderResponse[], userId: UserId): Promise {\n await this.stateProvider.getUser(userId, USER_ENCRYPTED_PROVIDER_KEYS).update(() => {\n const encProviderKeys: { [providerId: ProviderId]: EncryptedString } = {};\n\n providers.forEach((provider) => {\n encProviderKeys[provider.id as ProviderId] = provider.key as EncryptedString;\n });\n\n return encProviderKeys;\n });\n }\n\n // TODO: Deprecate in favor of observable\n async getProviderKey(providerId: ProviderId): Promise {\n if (providerId == null) {\n return null;\n }\n\n const activeUserId = await firstValueFrom(this.stateProvider.activeUserId$);\n const providerKeys = await firstValueFrom(this.providerKeys$(activeUserId));\n\n return providerKeys[providerId] ?? null;\n }\n\n private async clearProviderKeys(userId: UserId): Promise {\n if (userId == null) {\n // nothing to do\n return;\n }\n await this.stateProvider.setUserState(USER_ENCRYPTED_PROVIDER_KEYS, null, userId);\n }\n\n // TODO: Make userId required\n async makeOrgKey(userId?: UserId): Promise<[EncString, T]> {\n const shareKey = await this.keyGenerationService.createKey(512);\n userId ??= await firstValueFrom(this.stateProvider.activeUserId$);\n const publicKey = await firstValueFrom(this.userPublicKey$(userId));\n const encShareKey = await this.rsaEncrypt(shareKey.key, publicKey);\n return [encShareKey, shareKey as T];\n }\n\n async setPrivateKey(encPrivateKey: EncryptedString, userId: UserId): Promise {\n if (encPrivateKey == null) {\n return;\n }\n\n await this.stateProvider\n .getUser(userId, USER_ENCRYPTED_PRIVATE_KEY)\n .update(() => encPrivateKey);\n }\n\n async getPrivateKey(): Promise {\n const activeUserId = await firstValueFrom(this.stateProvider.activeUserId$);\n\n if (activeUserId == null) {\n throw new Error(\"User must be active while attempting to retrieve private key.\");\n }\n\n return await firstValueFrom(this.userPrivateKey$(activeUserId));\n }\n\n // TODO: Make public key required\n async getFingerprint(fingerprintMaterial: string, publicKey?: Uint8Array): Promise {\n if (publicKey == null) {\n const activeUserId = await firstValueFrom(this.stateProvider.activeUserId$);\n publicKey = await firstValueFrom(this.userPublicKey$(activeUserId));\n }\n\n if (publicKey === null) {\n throw new Error(\"No public key available.\");\n }\n const keyFingerprint = await this.cryptoFunctionService.hash(publicKey, \"sha256\");\n const userFingerprint = await this.cryptoFunctionService.hkdfExpand(\n keyFingerprint,\n fingerprintMaterial,\n 32,\n \"sha256\",\n );\n return this.hashPhrase(userFingerprint);\n }\n\n async makeKeyPair(key: SymmetricCryptoKey): Promise<[string, EncString]> {\n if (key == null) {\n throw new Error(\"'key' is a required parameter and must be non-null.\");\n }\n\n const keyPair = await this.cryptoFunctionService.rsaGenerateKeyPair(2048);\n const publicB64 = Utils.fromBufferToB64(keyPair[0]);\n const privateEnc = await this.encryptService.encrypt(keyPair[1], key);\n return [publicB64, privateEnc];\n }\n\n /**\n * Clears the user's key pair\n * @param userId The desired user\n */\n private async clearKeyPair(userId: UserId): Promise {\n if (userId == null) {\n // nothing to do\n return;\n }\n\n await this.stateProvider.setUserState(USER_ENCRYPTED_PRIVATE_KEY, null, userId);\n }\n\n async clearPinKeys(userId?: UserId): Promise {\n userId ??= await firstValueFrom(this.stateProvider.activeUserId$);\n\n if (userId == null) {\n throw new Error(\"Cannot clear PIN keys, no user Id resolved.\");\n }\n\n await this.pinService.clearPinKeyEncryptedUserKeyPersistent(userId);\n await this.pinService.clearPinKeyEncryptedUserKeyEphemeral(userId);\n await this.pinService.clearUserKeyEncryptedPin(userId);\n await this.clearDeprecatedKeys(KeySuffixOptions.Pin, userId);\n }\n\n async makeSendKey(keyMaterial: CsprngArray): Promise {\n return await this.keyGenerationService.deriveKeyFromMaterial(\n keyMaterial,\n \"bitwarden-send\",\n \"send\",\n );\n }\n\n async makeCipherKey(): Promise {\n return (await this.keyGenerationService.createKey(512)) as CipherKey;\n }\n\n async clearKeys(userId?: UserId): Promise {\n userId ??= await firstValueFrom(this.stateProvider.activeUserId$);\n\n if (userId == null) {\n throw new Error(\"Cannot clear keys, no user Id resolved.\");\n }\n\n await this.masterPasswordService.clearMasterKeyHash(userId);\n await this.clearUserKey(userId);\n await this.clearOrgKeys(userId);\n await this.clearProviderKeys(userId);\n await this.clearKeyPair(userId);\n await this.clearPinKeys(userId);\n await this.stateProvider.setUserState(USER_EVER_HAD_USER_KEY, null, userId);\n }\n\n async rsaEncrypt(data: Uint8Array, publicKey: Uint8Array): Promise {\n if (publicKey == null) {\n throw new Error(\"'publicKey' is a required parameter and must be non-null\");\n }\n\n const encBytes = await this.cryptoFunctionService.rsaEncrypt(data, publicKey, \"sha1\");\n return new EncString(EncryptionType.Rsa2048_OaepSha1_B64, Utils.fromBufferToB64(encBytes));\n }\n\n async rsaDecrypt(encValue: string, privateKey: Uint8Array): Promise {\n if (privateKey == null) {\n throw new Error(\"'privateKey' is a required parameter and must be non-null\");\n }\n\n const headerPieces = encValue.split(\".\");\n let encType: EncryptionType = null;\n let encPieces: string[];\n\n if (headerPieces.length === 1) {\n encType = EncryptionType.Rsa2048_OaepSha256_B64;\n encPieces = [headerPieces[0]];\n } else if (headerPieces.length === 2) {\n try {\n encType = parseInt(headerPieces[0], null);\n encPieces = headerPieces[1].split(\"|\");\n } catch (e) {\n this.logService.error(e);\n }\n }\n\n switch (encType) {\n case EncryptionType.Rsa2048_OaepSha256_B64:\n case EncryptionType.Rsa2048_OaepSha1_B64:\n case EncryptionType.Rsa2048_OaepSha256_HmacSha256_B64: // HmacSha256 types are deprecated\n case EncryptionType.Rsa2048_OaepSha1_HmacSha256_B64:\n break;\n default:\n throw new Error(\"encType unavailable.\");\n }\n\n if (encPieces == null || encPieces.length <= 0) {\n throw new Error(\"encPieces unavailable.\");\n }\n\n const data = Utils.fromB64ToArray(encPieces[0]);\n\n let alg: \"sha1\" | \"sha256\" = \"sha1\";\n switch (encType) {\n case EncryptionType.Rsa2048_OaepSha256_B64:\n case EncryptionType.Rsa2048_OaepSha256_HmacSha256_B64:\n alg = \"sha256\";\n break;\n case EncryptionType.Rsa2048_OaepSha1_B64:\n case EncryptionType.Rsa2048_OaepSha1_HmacSha256_B64:\n break;\n default:\n throw new Error(\"encType unavailable.\");\n }\n\n return this.cryptoFunctionService.rsaDecrypt(data, privateKey, alg);\n }\n\n // EFForg/OpenWireless\n // ref https://github.com/EFForg/OpenWireless/blob/master/app/js/diceware.js\n async randomNumber(min: number, max: number): Promise {\n let rval = 0;\n const range = max - min + 1;\n const bitsNeeded = Math.ceil(Math.log2(range));\n if (bitsNeeded > 53) {\n throw new Error(\"We cannot generate numbers larger than 53 bits.\");\n }\n\n const bytesNeeded = Math.ceil(bitsNeeded / 8);\n const mask = Math.pow(2, bitsNeeded) - 1;\n // 7776 -> (2^13 = 8192) -1 == 8191 or 0x00001111 11111111\n\n // Fill a byte array with N random numbers\n const byteArray = new Uint8Array(await this.cryptoFunctionService.randomBytes(bytesNeeded));\n\n let p = (bytesNeeded - 1) * 8;\n for (let i = 0; i < bytesNeeded; i++) {\n rval += byteArray[i] * Math.pow(2, p);\n p -= 8;\n }\n\n // Use & to apply the mask and reduce the number of recursive lookups\n rval = rval & mask;\n\n if (rval >= range) {\n // Integer out of acceptable range\n return this.randomNumber(min, max);\n }\n\n // Return an integer that falls within the range\n return min + rval;\n }\n\n // ---HELPERS---\n protected async validateUserKey(key: UserKey, userId: UserId): Promise {\n if (!key) {\n return false;\n }\n\n try {\n const encPrivateKey = await firstValueFrom(\n this.stateProvider.getUser(userId, USER_ENCRYPTED_PRIVATE_KEY).state$,\n );\n\n if (encPrivateKey == null) {\n return false;\n }\n\n // Can decrypt private key\n const privateKey = await this.decryptPrivateKey(encPrivateKey, key);\n\n if (privateKey == null) {\n // failed to decrypt\n return false;\n }\n\n // Can successfully derive public key\n const publicKey = await this.derivePublicKey(privateKey);\n\n if (publicKey == null) {\n // failed to decrypt\n return false;\n }\n } catch (e) {\n return false;\n }\n\n return true;\n }\n\n /**\n * Initialize all necessary crypto keys needed for a new account.\n * Warning! This completely replaces any existing keys!\n */\n async initAccount(): Promise<{\n userKey: UserKey;\n publicKey: string;\n privateKey: EncString;\n }> {\n const activeUserId = await firstValueFrom(this.stateProvider.activeUserId$);\n\n if (activeUserId == null) {\n throw new Error(\"Cannot initilize an account if one is not active.\");\n }\n\n // Verify user key doesn't exist\n const existingUserKey = await this.getUserKey(activeUserId);\n\n if (existingUserKey != null) {\n this.logService.error(\"Tried to initialize account with existing user key.\");\n throw new Error(\"Cannot initialize account, keys already exist.\");\n }\n\n const userKey = (await this.keyGenerationService.createKey(512)) as UserKey;\n const [publicKey, privateKey] = await this.makeKeyPair(userKey);\n await this.setUserKey(userKey, activeUserId);\n await this.stateProvider\n .getUser(activeUserId, USER_ENCRYPTED_PRIVATE_KEY)\n .update(() => privateKey.encryptedString);\n\n return {\n userKey,\n publicKey,\n privateKey,\n };\n }\n\n /**\n * Generates any additional keys if needed. Additional keys are\n * keys such as biometrics, auto, and pin keys.\n * Useful to make sure other keys stay in sync when the user key\n * has been rotated.\n * @param key The user key\n * @param userId The desired user\n */\n protected async storeAdditionalKeys(key: UserKey, userId?: UserId) {\n userId ??= await firstValueFrom(this.stateProvider.activeUserId$);\n\n if (userId == null) {\n throw new Error(\"Cannot store additional keys, no user Id resolved.\");\n }\n\n const storeAuto = await this.shouldStoreKey(KeySuffixOptions.Auto, userId);\n if (storeAuto) {\n await this.stateService.setUserKeyAutoUnlock(key.keyB64, { userId: userId });\n } else {\n await this.stateService.setUserKeyAutoUnlock(null, { userId: userId });\n }\n await this.clearDeprecatedKeys(KeySuffixOptions.Auto, userId);\n\n const storePin = await this.shouldStoreKey(KeySuffixOptions.Pin, userId);\n if (storePin) {\n // Decrypt userKeyEncryptedPin with user key\n const pin = await this.encryptService.decryptToUtf8(\n await this.pinService.getUserKeyEncryptedPin(userId),\n key,\n );\n\n const pinKeyEncryptedUserKey = await this.pinService.createPinKeyEncryptedUserKey(\n pin,\n key,\n userId,\n );\n const noPreExistingPersistentKey =\n (await this.pinService.getPinKeyEncryptedUserKeyPersistent(userId)) == null;\n\n await this.pinService.storePinKeyEncryptedUserKey(\n pinKeyEncryptedUserKey,\n noPreExistingPersistentKey,\n userId,\n );\n // We can't always clear deprecated keys because the pin is only\n // migrated once used to unlock\n await this.clearDeprecatedKeys(KeySuffixOptions.Pin, userId);\n } else {\n await this.pinService.clearPinKeyEncryptedUserKeyPersistent(userId);\n await this.pinService.clearPinKeyEncryptedUserKeyEphemeral(userId);\n }\n }\n\n protected async shouldStoreKey(keySuffix: KeySuffixOptions, userId?: UserId) {\n let shouldStoreKey = false;\n switch (keySuffix) {\n case KeySuffixOptions.Auto: {\n // TODO: Sharing the UserKeyDefinition is temporary to get around a circ dep issue between\n // the VaultTimeoutSettingsSvc and this service.\n // This should be fixed as part of the PM-7082 - Auto Key Service work.\n const vaultTimeout = await firstValueFrom(\n this.stateProvider.getUserState$(VAULT_TIMEOUT, userId),\n );\n\n shouldStoreKey = vaultTimeout == VaultTimeoutStringType.Never;\n break;\n }\n case KeySuffixOptions.Pin: {\n const userKeyEncryptedPin = await this.pinService.getUserKeyEncryptedPin(userId);\n shouldStoreKey = !!userKeyEncryptedPin;\n break;\n }\n }\n return shouldStoreKey;\n }\n\n protected async getKeyFromStorage(\n keySuffix: KeySuffixOptions,\n userId?: UserId,\n ): Promise {\n if (keySuffix === KeySuffixOptions.Auto) {\n const userKey = await this.stateService.getUserKeyAutoUnlock({ userId: userId });\n if (userKey) {\n return new SymmetricCryptoKey(Utils.fromB64ToArray(userKey)) as UserKey;\n }\n }\n return null;\n }\n\n protected async clearAllStoredUserKeys(userId?: UserId): Promise {\n await this.stateService.setUserKeyAutoUnlock(null, { userId: userId });\n await this.pinService.clearPinKeyEncryptedUserKeyEphemeral(userId);\n }\n\n private async hashPhrase(hash: Uint8Array, minimumEntropy = 64) {\n const entropyPerWord = Math.log(EFFLongWordList.length) / Math.log(2);\n let numWords = Math.ceil(minimumEntropy / entropyPerWord);\n\n const hashArr = Array.from(new Uint8Array(hash));\n const entropyAvailable = hashArr.length * 4;\n if (numWords * entropyPerWord > entropyAvailable) {\n throw new Error(\"Output entropy of hash function is too small\");\n }\n\n const phrase: string[] = [];\n let hashNumber = bigInt.fromArray(hashArr, 256);\n while (numWords--) {\n const remainder = hashNumber.mod(EFFLongWordList.length);\n hashNumber = hashNumber.divide(EFFLongWordList.length);\n phrase.push(EFFLongWordList[remainder as any]);\n }\n return phrase;\n }\n\n private async buildProtectedSymmetricKey(\n encryptionKey: SymmetricCryptoKey,\n newSymKey: Uint8Array,\n ): Promise<[T, EncString]> {\n let protectedSymKey: EncString = null;\n if (encryptionKey.key.byteLength === 32) {\n const stretchedEncryptionKey = await this.keyGenerationService.stretchKey(encryptionKey);\n protectedSymKey = await this.encryptService.encrypt(newSymKey, stretchedEncryptionKey);\n } else if (encryptionKey.key.byteLength === 64) {\n protectedSymKey = await this.encryptService.encrypt(newSymKey, encryptionKey);\n } else {\n throw new Error(\"Invalid key size.\");\n }\n return [new SymmetricCryptoKey(newSymKey) as T, protectedSymKey];\n }\n\n // --LEGACY METHODS--\n // We previously used the master key for additional keys, but now we use the user key.\n // These methods support migrating the old keys to the new ones.\n // TODO: Remove after 2023.10 release (https://bitwarden.atlassian.net/browse/PM-3475)\n\n async clearDeprecatedKeys(keySuffix: KeySuffixOptions, userId?: UserId) {\n if (keySuffix === KeySuffixOptions.Auto) {\n await this.stateService.setCryptoMasterKeyAuto(null, { userId: userId });\n } else if (keySuffix === KeySuffixOptions.Pin) {\n await this.pinService.clearOldPinKeyEncryptedMasterKey(userId);\n }\n }\n\n // --DEPRECATED METHODS--\n\n /**\n * @deprecated July 25 2022: Get the key you need from CryptoService (getKeyForUserEncryption or getOrgKey)\n * and then call encryptService.encrypt\n */\n async encrypt(plainValue: string | Uint8Array, key?: SymmetricCryptoKey): Promise {\n key ||= await this.getUserKeyWithLegacySupport();\n return await this.encryptService.encrypt(plainValue, key);\n }\n\n /**\n * @deprecated July 25 2022: Get the key you need from CryptoService (getKeyForUserEncryption or getOrgKey)\n * and then call encryptService.encryptToBytes\n */\n async encryptToBytes(plainValue: Uint8Array, key?: SymmetricCryptoKey): Promise {\n key ||= await this.getUserKeyWithLegacySupport();\n return this.encryptService.encryptToBytes(plainValue, key);\n }\n\n /**\n * @deprecated July 25 2022: Get the key you need from CryptoService (getKeyForUserEncryption or getOrgKey)\n * and then call encryptService.decryptToBytes\n */\n async decryptToBytes(encString: EncString, key?: SymmetricCryptoKey): Promise {\n key ||= await this.getUserKeyWithLegacySupport();\n return this.encryptService.decryptToBytes(encString, key);\n }\n\n /**\n * @deprecated July 25 2022: Get the key you need from CryptoService (getKeyForUserEncryption or getOrgKey)\n * and then call encryptService.decryptToUtf8\n */\n async decryptToUtf8(encString: EncString, key?: SymmetricCryptoKey): Promise {\n key ||= await this.getUserKeyWithLegacySupport();\n return await this.encryptService.decryptToUtf8(encString, key);\n }\n\n /**\n * @deprecated July 25 2022: Get the key you need from CryptoService (getKeyForUserEncryption or getOrgKey)\n * and then call encryptService.decryptToBytes\n */\n async decryptFromBytes(encBuffer: EncArrayBuffer, key: SymmetricCryptoKey): Promise {\n if (encBuffer == null) {\n throw new Error(\"No buffer provided for decryption.\");\n }\n\n key ||= await this.getUserKeyWithLegacySupport();\n\n return this.encryptService.decryptToBytes(encBuffer, key);\n }\n\n userKey$(userId: UserId) {\n return this.stateProvider.getUser(userId, USER_KEY).state$;\n }\n\n private userKeyWithLegacySupport$(userId: UserId) {\n return this.userKey$(userId).pipe(\n switchMap((userKey) => {\n if (userKey != null) {\n return of(userKey);\n }\n\n // Legacy path\n return this.masterPasswordService.masterKey$(userId).pipe(\n switchMap(async (masterKey) => {\n if (!(await this.validateUserKey(masterKey as unknown as UserKey, userId))) {\n // We don't have a UserKey or a valid MasterKey\n return null;\n }\n\n // The master key is valid meaning, the org keys and such are encrypted with this key\n return masterKey as unknown as UserKey;\n }),\n );\n }),\n );\n }\n\n userPublicKey$(userId: UserId) {\n return this.userPrivateKey$(userId).pipe(\n switchMap(async (pk) => await this.derivePublicKey(pk)),\n );\n }\n\n private async derivePublicKey(privateKey: UserPrivateKey) {\n return (await this.cryptoFunctionService.rsaExtractPublicKey(privateKey)) as UserPublicKey;\n }\n\n userPrivateKey$(userId: UserId): Observable {\n return this.userPrivateKeyHelper$(userId, false).pipe(map((keys) => keys?.userPrivateKey));\n }\n\n private userPrivateKeyHelper$(userId: UserId, legacySupport: boolean) {\n const userKey$ = legacySupport ? this.userKeyWithLegacySupport$(userId) : this.userKey$(userId);\n return userKey$.pipe(\n switchMap((userKey) => {\n if (userKey == null) {\n return of(null);\n }\n\n return this.stateProvider.getUser(userId, USER_ENCRYPTED_PRIVATE_KEY).state$.pipe(\n switchMap(\n async (encryptedPrivateKey) =>\n await this.decryptPrivateKey(encryptedPrivateKey, userKey),\n ),\n // Combine outerscope info with user private key\n map((userPrivateKey) => ({\n userKey,\n userPrivateKey,\n })),\n );\n }),\n );\n }\n\n private async decryptPrivateKey(encryptedPrivateKey: EncryptedString, key: SymmetricCryptoKey) {\n if (encryptedPrivateKey == null) {\n return null;\n }\n\n return (await this.encryptService.decryptToBytes(\n new EncString(encryptedPrivateKey),\n key,\n )) as UserPrivateKey;\n }\n\n providerKeys$(userId: UserId) {\n return this.userPrivateKey$(userId).pipe(\n switchMap((userPrivateKey) => {\n if (userPrivateKey == null) {\n return of(null);\n }\n\n return this.providerKeysHelper$(userId, userPrivateKey);\n }),\n );\n }\n\n /**\n * A helper for decrypting provider keys that requires a user id and that users decrypted private key\n * this is helpful for when you may have already grabbed the user private key and don't want to redo\n * that work to get the provider keys.\n */\n private providerKeysHelper$(\n userId: UserId,\n userPrivateKey: UserPrivateKey,\n ): Observable> {\n return this.stateProvider.getUser(userId, USER_ENCRYPTED_PROVIDER_KEYS).state$.pipe(\n // Convert each value in the record to it's own decryption observable\n convertValues(async (_, value) => {\n const decrypted = await this.encryptService.rsaDecrypt(\n new EncString(value),\n userPrivateKey,\n );\n return new SymmetricCryptoKey(decrypted) as ProviderKey;\n }),\n // switchMap since there are no side effects\n switchMap((encryptedProviderKeys) => {\n if (encryptedProviderKeys == null) {\n return of(null);\n }\n\n // Can't give an empty record to forkJoin\n if (Object.keys(encryptedProviderKeys).length === 0) {\n return of({});\n }\n\n return forkJoin(encryptedProviderKeys);\n }),\n );\n }\n\n orgKeys$(userId: UserId) {\n return this.cipherDecryptionKeys$(userId).pipe(map((keys) => keys?.orgKeys));\n }\n\n cipherDecryptionKeys$(\n userId: UserId,\n legacySupport: boolean = false,\n ): Observable {\n return this.userPrivateKeyHelper$(userId, legacySupport).pipe(\n switchMap((userKeys) => {\n if (userKeys == null) {\n return of(null);\n }\n\n const userPrivateKey = userKeys.userPrivateKey;\n\n if (userPrivateKey == null) {\n // We can't do any org based decryption\n return of({ userKey: userKeys.userKey, orgKeys: null });\n }\n\n return combineLatest([\n this.stateProvider.getUser(userId, USER_ENCRYPTED_ORGANIZATION_KEYS).state$,\n this.providerKeysHelper$(userId, userPrivateKey),\n ]).pipe(\n switchMap(async ([encryptedOrgKeys, providerKeys]) => {\n const result: Record = {};\n for (const orgId of Object.keys(encryptedOrgKeys ?? {}) as OrganizationId[]) {\n if (result[orgId] != null) {\n continue;\n }\n const encrypted = BaseEncryptedOrganizationKey.fromData(encryptedOrgKeys[orgId]);\n\n let decrypted: OrgKey;\n\n if (BaseEncryptedOrganizationKey.isProviderEncrypted(encrypted)) {\n decrypted = await encrypted.decrypt(this.encryptService, providerKeys);\n } else {\n decrypted = await encrypted.decrypt(this.encryptService, userPrivateKey);\n }\n\n result[orgId] = decrypted;\n }\n\n return result;\n }),\n // Combine them back together\n map((orgKeys) => ({ userKey: userKeys.userKey, orgKeys: orgKeys })),\n );\n }),\n );\n }\n}\n","import { ObservableInput, OperatorFunction, map } from \"rxjs\";\n\n/**\n * Converts a record of keys and values into a record preserving the original key and converting each value into an {@link ObservableInput}.\n * @param project A function to project a given key and value pair into an {@link ObservableInput}\n */\nexport function convertValues(\n project: (key: TKey, value: TInput) => ObservableInput,\n): OperatorFunction, Record>> {\n return map((inputRecord) => {\n if (inputRecord == null) {\n return null;\n }\n\n // Can't use TKey in here, have to use `PropertyKey`\n const result: Record> = {};\n for (const [key, value] of Object.entries(inputRecord) as [TKey, TInput][]) {\n result[key] = project(key, value);\n }\n\n return result;\n });\n}\n","import { firstValueFrom } from \"rxjs\";\n\nimport { LogoutReason } from \"@bitwarden/auth/common\";\n\nimport { ApiService as ApiServiceAbstraction } from \"../abstractions/api.service\";\nimport { VaultTimeoutSettingsService } from \"../abstractions/vault-timeout/vault-timeout-settings.service\";\nimport { OrganizationConnectionType } from \"../admin-console/enums\";\nimport { OrganizationSponsorshipCreateRequest } from \"../admin-console/models/request/organization/organization-sponsorship-create.request\";\nimport { OrganizationSponsorshipRedeemRequest } from \"../admin-console/models/request/organization/organization-sponsorship-redeem.request\";\nimport { OrganizationConnectionRequest } from \"../admin-console/models/request/organization-connection.request\";\nimport { ProviderAddOrganizationRequest } from \"../admin-console/models/request/provider/provider-add-organization.request\";\nimport { ProviderOrganizationCreateRequest } from \"../admin-console/models/request/provider/provider-organization-create.request\";\nimport { ProviderUserAcceptRequest } from \"../admin-console/models/request/provider/provider-user-accept.request\";\nimport { ProviderUserBulkConfirmRequest } from \"../admin-console/models/request/provider/provider-user-bulk-confirm.request\";\nimport { ProviderUserBulkRequest } from \"../admin-console/models/request/provider/provider-user-bulk.request\";\nimport { ProviderUserConfirmRequest } from \"../admin-console/models/request/provider/provider-user-confirm.request\";\nimport { ProviderUserInviteRequest } from \"../admin-console/models/request/provider/provider-user-invite.request\";\nimport { ProviderUserUpdateRequest } from \"../admin-console/models/request/provider/provider-user-update.request\";\nimport { SelectionReadOnlyRequest } from \"../admin-console/models/request/selection-read-only.request\";\nimport {\n OrganizationConnectionConfigApis,\n OrganizationConnectionResponse,\n} from \"../admin-console/models/response/organization-connection.response\";\nimport { OrganizationExportResponse } from \"../admin-console/models/response/organization-export.response\";\nimport { OrganizationSponsorshipSyncStatusResponse } from \"../admin-console/models/response/organization-sponsorship-sync-status.response\";\nimport {\n ProviderOrganizationOrganizationDetailsResponse,\n ProviderOrganizationResponse,\n} from \"../admin-console/models/response/provider/provider-organization.response\";\nimport { ProviderUserBulkPublicKeyResponse } from \"../admin-console/models/response/provider/provider-user-bulk-public-key.response\";\nimport { ProviderUserBulkResponse } from \"../admin-console/models/response/provider/provider-user-bulk.response\";\nimport {\n ProviderUserResponse,\n ProviderUserUserDetailsResponse,\n} from \"../admin-console/models/response/provider/provider-user.response\";\nimport { SelectionReadOnlyResponse } from \"../admin-console/models/response/selection-read-only.response\";\nimport { TokenService } from \"../auth/abstractions/token.service\";\nimport { CreateAuthRequest } from \"../auth/models/request/create-auth.request\";\nimport { DeviceVerificationRequest } from \"../auth/models/request/device-verification.request\";\nimport { EmailTokenRequest } from \"../auth/models/request/email-token.request\";\nimport { EmailRequest } from \"../auth/models/request/email.request\";\nimport { DeviceRequest } from \"../auth/models/request/identity-token/device.request\";\nimport { PasswordTokenRequest } from \"../auth/models/request/identity-token/password-token.request\";\nimport { SsoTokenRequest } from \"../auth/models/request/identity-token/sso-token.request\";\nimport { TokenTwoFactorRequest } from \"../auth/models/request/identity-token/token-two-factor.request\";\nimport { UserApiTokenRequest } from \"../auth/models/request/identity-token/user-api-token.request\";\nimport { WebAuthnLoginTokenRequest } from \"../auth/models/request/identity-token/webauthn-login-token.request\";\nimport { KeyConnectorUserKeyRequest } from \"../auth/models/request/key-connector-user-key.request\";\nimport { PasswordHintRequest } from \"../auth/models/request/password-hint.request\";\nimport { PasswordRequest } from \"../auth/models/request/password.request\";\nimport { PasswordlessAuthRequest } from \"../auth/models/request/passwordless-auth.request\";\nimport { SecretVerificationRequest } from \"../auth/models/request/secret-verification.request\";\nimport { SetKeyConnectorKeyRequest } from \"../auth/models/request/set-key-connector-key.request\";\nimport { SetPasswordRequest } from \"../auth/models/request/set-password.request\";\nimport { TwoFactorEmailRequest } from \"../auth/models/request/two-factor-email.request\";\nimport { TwoFactorProviderRequest } from \"../auth/models/request/two-factor-provider.request\";\nimport { TwoFactorRecoveryRequest } from \"../auth/models/request/two-factor-recovery.request\";\nimport { UpdateProfileRequest } from \"../auth/models/request/update-profile.request\";\nimport { UpdateTempPasswordRequest } from \"../auth/models/request/update-temp-password.request\";\nimport { UpdateTwoFactorAuthenticatorRequest } from \"../auth/models/request/update-two-factor-authenticator.request\";\nimport { UpdateTwoFactorDuoRequest } from \"../auth/models/request/update-two-factor-duo.request\";\nimport { UpdateTwoFactorEmailRequest } from \"../auth/models/request/update-two-factor-email.request\";\nimport { UpdateTwoFactorWebAuthnDeleteRequest } from \"../auth/models/request/update-two-factor-web-authn-delete.request\";\nimport { UpdateTwoFactorWebAuthnRequest } from \"../auth/models/request/update-two-factor-web-authn.request\";\nimport { UpdateTwoFactorYubioOtpRequest } from \"../auth/models/request/update-two-factor-yubio-otp.request\";\nimport { ApiKeyResponse } from \"../auth/models/response/api-key.response\";\nimport { AuthRequestResponse } from \"../auth/models/response/auth-request.response\";\nimport { DeviceVerificationResponse } from \"../auth/models/response/device-verification.response\";\nimport { IdentityCaptchaResponse } from \"../auth/models/response/identity-captcha.response\";\nimport { IdentityTokenResponse } from \"../auth/models/response/identity-token.response\";\nimport { IdentityTwoFactorResponse } from \"../auth/models/response/identity-two-factor.response\";\nimport { KeyConnectorUserKeyResponse } from \"../auth/models/response/key-connector-user-key.response\";\nimport { PreloginResponse } from \"../auth/models/response/prelogin.response\";\nimport { RegisterResponse } from \"../auth/models/response/register.response\";\nimport { SsoPreValidateResponse } from \"../auth/models/response/sso-pre-validate.response\";\nimport { TwoFactorAuthenticatorResponse } from \"../auth/models/response/two-factor-authenticator.response\";\nimport { TwoFactorDuoResponse } from \"../auth/models/response/two-factor-duo.response\";\nimport { TwoFactorEmailResponse } from \"../auth/models/response/two-factor-email.response\";\nimport { TwoFactorProviderResponse } from \"../auth/models/response/two-factor-provider.response\";\nimport { TwoFactorRecoverResponse } from \"../auth/models/response/two-factor-recover.response\";\nimport {\n ChallengeResponse,\n TwoFactorWebAuthnResponse,\n} from \"../auth/models/response/two-factor-web-authn.response\";\nimport { TwoFactorYubiKeyResponse } from \"../auth/models/response/two-factor-yubi-key.response\";\nimport { BitPayInvoiceRequest } from \"../billing/models/request/bit-pay-invoice.request\";\nimport { PaymentRequest } from \"../billing/models/request/payment.request\";\nimport { TaxInfoUpdateRequest } from \"../billing/models/request/tax-info-update.request\";\nimport { BillingHistoryResponse } from \"../billing/models/response/billing-history.response\";\nimport { BillingPaymentResponse } from \"../billing/models/response/billing-payment.response\";\nimport { PaymentResponse } from \"../billing/models/response/payment.response\";\nimport { PlanResponse } from \"../billing/models/response/plan.response\";\nimport { SubscriptionResponse } from \"../billing/models/response/subscription.response\";\nimport { TaxInfoResponse } from \"../billing/models/response/tax-info.response\";\nimport { TaxRateResponse } from \"../billing/models/response/tax-rate.response\";\nimport { DeviceType } from \"../enums\";\nimport { VaultTimeoutAction } from \"../enums/vault-timeout-action.enum\";\nimport { CollectionBulkDeleteRequest } from \"../models/request/collection-bulk-delete.request\";\nimport { DeleteRecoverRequest } from \"../models/request/delete-recover.request\";\nimport { EventRequest } from \"../models/request/event.request\";\nimport { KdfRequest } from \"../models/request/kdf.request\";\nimport { KeysRequest } from \"../models/request/keys.request\";\nimport { OrganizationImportRequest } from \"../models/request/organization-import.request\";\nimport { PreloginRequest } from \"../models/request/prelogin.request\";\nimport { RegisterRequest } from \"../models/request/register.request\";\nimport { StorageRequest } from \"../models/request/storage.request\";\nimport { UpdateAvatarRequest } from \"../models/request/update-avatar.request\";\nimport { UpdateDomainsRequest } from \"../models/request/update-domains.request\";\nimport { VerifyDeleteRecoverRequest } from \"../models/request/verify-delete-recover.request\";\nimport { VerifyEmailRequest } from \"../models/request/verify-email.request\";\nimport { BreachAccountResponse } from \"../models/response/breach-account.response\";\nimport { DomainsResponse } from \"../models/response/domains.response\";\nimport { ErrorResponse } from \"../models/response/error.response\";\nimport { EventResponse } from \"../models/response/event.response\";\nimport { ListResponse } from \"../models/response/list.response\";\nimport { ProfileResponse } from \"../models/response/profile.response\";\nimport { UserKeyResponse } from \"../models/response/user-key.response\";\nimport { AppIdService } from \"../platform/abstractions/app-id.service\";\nimport { EnvironmentService } from \"../platform/abstractions/environment.service\";\nimport { LogService } from \"../platform/abstractions/log.service\";\nimport { PlatformUtilsService } from \"../platform/abstractions/platform-utils.service\";\nimport { Utils } from \"../platform/misc/utils\";\nimport { UserId } from \"../types/guid\";\nimport { AttachmentRequest } from \"../vault/models/request/attachment.request\";\nimport { CipherBulkDeleteRequest } from \"../vault/models/request/cipher-bulk-delete.request\";\nimport { CipherBulkMoveRequest } from \"../vault/models/request/cipher-bulk-move.request\";\nimport { CipherBulkRestoreRequest } from \"../vault/models/request/cipher-bulk-restore.request\";\nimport { CipherBulkShareRequest } from \"../vault/models/request/cipher-bulk-share.request\";\nimport { CipherCollectionsRequest } from \"../vault/models/request/cipher-collections.request\";\nimport { CipherCreateRequest } from \"../vault/models/request/cipher-create.request\";\nimport { CipherPartialRequest } from \"../vault/models/request/cipher-partial.request\";\nimport { CipherShareRequest } from \"../vault/models/request/cipher-share.request\";\nimport { CipherRequest } from \"../vault/models/request/cipher.request\";\nimport { CollectionRequest } from \"../vault/models/request/collection.request\";\nimport { AttachmentUploadDataResponse } from \"../vault/models/response/attachment-upload-data.response\";\nimport { AttachmentResponse } from \"../vault/models/response/attachment.response\";\nimport { CipherResponse } from \"../vault/models/response/cipher.response\";\nimport {\n CollectionAccessDetailsResponse,\n CollectionDetailsResponse,\n CollectionResponse,\n} from \"../vault/models/response/collection.response\";\nimport { OptionalCipherResponse } from \"../vault/models/response/optional-cipher.response\";\nimport { SyncResponse } from \"../vault/models/response/sync.response\";\n\n/**\n * @deprecated The `ApiService` class is deprecated and calls should be extracted into individual\n * api services. The `send` method is still allowed to be used within api services. For background\n * of this decision please read https://contributing.bitwarden.com/architecture/adr/refactor-api-service.\n */\nexport class ApiService implements ApiServiceAbstraction {\n private device: DeviceType;\n private deviceType: string;\n private isWebClient = false;\n private isDesktopClient = false;\n\n constructor(\n private tokenService: TokenService,\n private platformUtilsService: PlatformUtilsService,\n private environmentService: EnvironmentService,\n private appIdService: AppIdService,\n private refreshAccessTokenErrorCallback: () => void,\n private logService: LogService,\n private logoutCallback: (logoutReason: LogoutReason) => Promise,\n private vaultTimeoutSettingsService: VaultTimeoutSettingsService,\n private customUserAgent: string = null,\n ) {\n this.device = platformUtilsService.getDevice();\n this.deviceType = this.device.toString();\n this.isWebClient =\n this.device === DeviceType.IEBrowser ||\n this.device === DeviceType.ChromeBrowser ||\n this.device === DeviceType.EdgeBrowser ||\n this.device === DeviceType.FirefoxBrowser ||\n this.device === DeviceType.OperaBrowser ||\n this.device === DeviceType.SafariBrowser ||\n this.device === DeviceType.UnknownBrowser ||\n this.device === DeviceType.VivaldiBrowser;\n this.isDesktopClient =\n this.device === DeviceType.WindowsDesktop ||\n this.device === DeviceType.MacOsDesktop ||\n this.device === DeviceType.LinuxDesktop ||\n this.device === DeviceType.WindowsCLI ||\n this.device === DeviceType.MacOsCLI ||\n this.device === DeviceType.LinuxCLI;\n }\n\n // Auth APIs\n\n async postIdentityToken(\n request:\n | UserApiTokenRequest\n | PasswordTokenRequest\n | SsoTokenRequest\n | WebAuthnLoginTokenRequest,\n ): Promise {\n const headers = new Headers({\n \"Content-Type\": \"application/x-www-form-urlencoded; charset=utf-8\",\n Accept: \"application/json\",\n \"Device-Type\": this.deviceType,\n });\n if (this.customUserAgent != null) {\n headers.set(\"User-Agent\", this.customUserAgent);\n }\n request.alterIdentityTokenHeaders(headers);\n\n const identityToken =\n request instanceof UserApiTokenRequest\n ? request.toIdentityToken()\n : request.toIdentityToken(this.platformUtilsService.getClientType());\n\n const env = await firstValueFrom(this.environmentService.environment$);\n\n const response = await this.fetch(\n new Request(env.getIdentityUrl() + \"/connect/token\", {\n body: this.qsStringify(identityToken),\n credentials: await this.getCredentials(),\n cache: \"no-store\",\n headers: headers,\n method: \"POST\",\n }),\n );\n\n let responseJson: any = null;\n if (this.isJsonResponse(response)) {\n responseJson = await response.json();\n }\n\n if (responseJson != null) {\n if (response.status === 200) {\n return new IdentityTokenResponse(responseJson);\n } else if (\n response.status === 400 &&\n responseJson.TwoFactorProviders2 &&\n Object.keys(responseJson.TwoFactorProviders2).length\n ) {\n return new IdentityTwoFactorResponse(responseJson);\n } else if (\n response.status === 400 &&\n responseJson.HCaptcha_SiteKey &&\n Object.keys(responseJson.HCaptcha_SiteKey).length\n ) {\n return new IdentityCaptchaResponse(responseJson);\n }\n }\n\n return Promise.reject(new ErrorResponse(responseJson, response.status, true));\n }\n\n async refreshIdentityToken(): Promise {\n try {\n await this.doAuthRefresh();\n } catch (e) {\n this.logService.error(\"Error refreshing access token: \", e);\n throw e;\n }\n }\n\n // TODO: PM-3519: Create and move to AuthRequest Api service\n async postAuthRequest(request: CreateAuthRequest): Promise {\n const r = await this.send(\"POST\", \"/auth-requests/\", request, false, true);\n return new AuthRequestResponse(r);\n }\n async postAdminAuthRequest(request: CreateAuthRequest): Promise {\n const r = await this.send(\"POST\", \"/auth-requests/admin-request\", request, true, true);\n return new AuthRequestResponse(r);\n }\n\n async getAuthResponse(id: string, accessCode: string): Promise {\n const path = `/auth-requests/${id}/response?code=${accessCode}`;\n const r = await this.send(\"GET\", path, null, false, true);\n return new AuthRequestResponse(r);\n }\n\n async getAuthRequest(id: string): Promise {\n const path = `/auth-requests/${id}`;\n const r = await this.send(\"GET\", path, null, true, true);\n return new AuthRequestResponse(r);\n }\n\n async putAuthRequest(id: string, request: PasswordlessAuthRequest): Promise {\n const path = `/auth-requests/${id}`;\n const r = await this.send(\"PUT\", path, request, true, true);\n return new AuthRequestResponse(r);\n }\n\n async getAuthRequests(): Promise> {\n const path = `/auth-requests/`;\n const r = await this.send(\"GET\", path, null, true, true);\n return new ListResponse(r, AuthRequestResponse);\n }\n\n async getLastAuthRequest(): Promise {\n const requests = await this.getAuthRequests();\n const activeRequests = requests.data.filter((m) => !m.isAnswered && !m.isExpired);\n const lastRequest = activeRequests.sort((a: AuthRequestResponse, b: AuthRequestResponse) =>\n a.creationDate.localeCompare(b.creationDate),\n )[activeRequests.length - 1];\n return lastRequest;\n }\n\n // Account APIs\n\n async getProfile(): Promise {\n const r = await this.send(\"GET\", \"/accounts/profile\", null, true, true);\n return new ProfileResponse(r);\n }\n\n async getUserSubscription(): Promise {\n const r = await this.send(\"GET\", \"/accounts/subscription\", null, true, true);\n return new SubscriptionResponse(r);\n }\n\n async getTaxInfo(): Promise {\n const r = await this.send(\"GET\", \"/accounts/tax\", null, true, true);\n return new TaxInfoResponse(r);\n }\n\n async putProfile(request: UpdateProfileRequest): Promise {\n const r = await this.send(\"PUT\", \"/accounts/profile\", request, true, true);\n return new ProfileResponse(r);\n }\n\n async putAvatar(request: UpdateAvatarRequest): Promise {\n const r = await this.send(\"PUT\", \"/accounts/avatar\", request, true, true);\n return new ProfileResponse(r);\n }\n\n putTaxInfo(request: TaxInfoUpdateRequest): Promise {\n return this.send(\"PUT\", \"/accounts/tax\", request, true, false);\n }\n\n async postPrelogin(request: PreloginRequest): Promise {\n const env = await firstValueFrom(this.environmentService.environment$);\n const r = await this.send(\n \"POST\",\n \"/accounts/prelogin\",\n request,\n false,\n true,\n env.getIdentityUrl(),\n );\n return new PreloginResponse(r);\n }\n\n postEmailToken(request: EmailTokenRequest): Promise {\n return this.send(\"POST\", \"/accounts/email-token\", request, true, false);\n }\n\n postEmail(request: EmailRequest): Promise {\n return this.send(\"POST\", \"/accounts/email\", request, true, false);\n }\n\n postPassword(request: PasswordRequest): Promise {\n return this.send(\"POST\", \"/accounts/password\", request, true, false);\n }\n\n setPassword(request: SetPasswordRequest): Promise {\n return this.send(\"POST\", \"/accounts/set-password\", request, true, false);\n }\n\n postSetKeyConnectorKey(request: SetKeyConnectorKeyRequest): Promise {\n return this.send(\"POST\", \"/accounts/set-key-connector-key\", request, true, false);\n }\n\n postSecurityStamp(request: SecretVerificationRequest): Promise {\n return this.send(\"POST\", \"/accounts/security-stamp\", request, true, false);\n }\n\n async getAccountRevisionDate(): Promise {\n const r = await this.send(\"GET\", \"/accounts/revision-date\", null, true, true);\n return r as number;\n }\n\n postPasswordHint(request: PasswordHintRequest): Promise {\n return this.send(\"POST\", \"/accounts/password-hint\", request, false, false);\n }\n\n async postRegister(request: RegisterRequest): Promise {\n const env = await firstValueFrom(this.environmentService.environment$);\n const r = await this.send(\n \"POST\",\n \"/accounts/register\",\n request,\n false,\n true,\n env.getIdentityUrl(),\n );\n return new RegisterResponse(r);\n }\n\n async postPremium(data: FormData): Promise {\n const r = await this.send(\"POST\", \"/accounts/premium\", data, true, true);\n return new PaymentResponse(r);\n }\n\n postReinstatePremium(): Promise {\n return this.send(\"POST\", \"/accounts/reinstate-premium\", null, true, false);\n }\n\n async postAccountStorage(request: StorageRequest): Promise {\n const r = await this.send(\"POST\", \"/accounts/storage\", request, true, true);\n return new PaymentResponse(r);\n }\n\n postAccountPayment(request: PaymentRequest): Promise {\n return this.send(\"POST\", \"/accounts/payment\", request, true, false);\n }\n\n postAccountLicense(data: FormData): Promise {\n return this.send(\"POST\", \"/accounts/license\", data, true, false);\n }\n\n postAccountKeys(request: KeysRequest): Promise {\n return this.send(\"POST\", \"/accounts/keys\", request, true, false);\n }\n\n postAccountVerifyEmail(): Promise {\n return this.send(\"POST\", \"/accounts/verify-email\", null, true, false);\n }\n\n postAccountVerifyEmailToken(request: VerifyEmailRequest): Promise {\n return this.send(\"POST\", \"/accounts/verify-email-token\", request, false, false);\n }\n\n postAccountRecoverDelete(request: DeleteRecoverRequest): Promise {\n return this.send(\"POST\", \"/accounts/delete-recover\", request, false, false);\n }\n\n postAccountRecoverDeleteToken(request: VerifyDeleteRecoverRequest): Promise {\n return this.send(\"POST\", \"/accounts/delete-recover-token\", request, false, false);\n }\n\n postAccountKdf(request: KdfRequest): Promise {\n return this.send(\"POST\", \"/accounts/kdf\", request, true, false);\n }\n\n async deleteSsoUser(organizationId: string): Promise {\n return this.send(\"DELETE\", \"/accounts/sso/\" + organizationId, null, true, false);\n }\n\n async getSsoUserIdentifier(): Promise {\n return this.send(\"GET\", \"/accounts/sso/user-identifier\", null, true, true);\n }\n\n async postUserApiKey(id: string, request: SecretVerificationRequest): Promise {\n const r = await this.send(\"POST\", \"/accounts/api-key\", request, true, true);\n return new ApiKeyResponse(r);\n }\n\n async postUserRotateApiKey(\n id: string,\n request: SecretVerificationRequest,\n ): Promise {\n const r = await this.send(\"POST\", \"/accounts/rotate-api-key\", request, true, true);\n return new ApiKeyResponse(r);\n }\n\n putUpdateTempPassword(request: UpdateTempPasswordRequest): Promise {\n return this.send(\"PUT\", \"/accounts/update-temp-password\", request, true, false);\n }\n\n postConvertToKeyConnector(): Promise {\n return this.send(\"POST\", \"/accounts/convert-to-key-connector\", null, true, false);\n }\n\n // Account Billing APIs\n\n async getUserBillingHistory(): Promise {\n const r = await this.send(\"GET\", \"/accounts/billing/history\", null, true, true);\n return new BillingHistoryResponse(r);\n }\n\n async getUserBillingPayment(): Promise {\n const r = await this.send(\"GET\", \"/accounts/billing/payment-method\", null, true, true);\n return new BillingPaymentResponse(r);\n }\n\n // Cipher APIs\n\n async getCipher(id: string): Promise {\n const r = await this.send(\"GET\", \"/ciphers/\" + id, null, true, true);\n return new CipherResponse(r);\n }\n\n async getFullCipherDetails(id: string): Promise {\n const r = await this.send(\"GET\", \"/ciphers/\" + id + \"/details\", null, true, true);\n return new CipherResponse(r);\n }\n\n async getCipherAdmin(id: string): Promise {\n const r = await this.send(\"GET\", \"/ciphers/\" + id + \"/admin\", null, true, true);\n return new CipherResponse(r);\n }\n\n async getCiphersOrganization(organizationId: string): Promise> {\n const r = await this.send(\n \"GET\",\n \"/ciphers/organization-details?organizationId=\" + organizationId,\n null,\n true,\n true,\n );\n return new ListResponse(r, CipherResponse);\n }\n\n async postCipher(request: CipherRequest): Promise {\n const r = await this.send(\"POST\", \"/ciphers\", request, true, true);\n return new CipherResponse(r);\n }\n\n async postCipherCreate(request: CipherCreateRequest): Promise {\n const r = await this.send(\"POST\", \"/ciphers/create\", request, true, true);\n return new CipherResponse(r);\n }\n\n async postCipherAdmin(request: CipherCreateRequest): Promise {\n const r = await this.send(\"POST\", \"/ciphers/admin\", request, true, true);\n return new CipherResponse(r);\n }\n\n async putCipher(id: string, request: CipherRequest): Promise {\n const r = await this.send(\"PUT\", \"/ciphers/\" + id, request, true, true);\n return new CipherResponse(r);\n }\n\n async putPartialCipher(id: string, request: CipherPartialRequest): Promise {\n const r = await this.send(\"PUT\", \"/ciphers/\" + id + \"/partial\", request, true, true);\n return new CipherResponse(r);\n }\n\n async putCipherAdmin(id: string, request: CipherRequest): Promise {\n const r = await this.send(\"PUT\", \"/ciphers/\" + id + \"/admin\", request, true, true);\n return new CipherResponse(r);\n }\n\n deleteCipher(id: string): Promise {\n return this.send(\"DELETE\", \"/ciphers/\" + id, null, true, false);\n }\n\n deleteCipherAdmin(id: string): Promise {\n return this.send(\"DELETE\", \"/ciphers/\" + id + \"/admin\", null, true, false);\n }\n\n deleteManyCiphers(request: CipherBulkDeleteRequest): Promise {\n return this.send(\"DELETE\", \"/ciphers\", request, true, false);\n }\n\n deleteManyCiphersAdmin(request: CipherBulkDeleteRequest): Promise {\n return this.send(\"DELETE\", \"/ciphers/admin\", request, true, false);\n }\n\n putMoveCiphers(request: CipherBulkMoveRequest): Promise {\n return this.send(\"PUT\", \"/ciphers/move\", request, true, false);\n }\n\n async putShareCipher(id: string, request: CipherShareRequest): Promise {\n const r = await this.send(\"PUT\", \"/ciphers/\" + id + \"/share\", request, true, true);\n return new CipherResponse(r);\n }\n\n putShareCiphers(request: CipherBulkShareRequest): Promise {\n return this.send(\"PUT\", \"/ciphers/share\", request, true, false);\n }\n\n async putCipherCollections(\n id: string,\n request: CipherCollectionsRequest,\n ): Promise {\n const response = await this.send(\n \"PUT\",\n \"/ciphers/\" + id + \"/collections_v2\",\n request,\n true,\n true,\n );\n return new OptionalCipherResponse(response);\n }\n\n putCipherCollectionsAdmin(id: string, request: CipherCollectionsRequest): Promise {\n return this.send(\"PUT\", \"/ciphers/\" + id + \"/collections-admin\", request, true, false);\n }\n\n postPurgeCiphers(\n request: SecretVerificationRequest,\n organizationId: string = null,\n ): Promise {\n let path = \"/ciphers/purge\";\n if (organizationId != null) {\n path += \"?organizationId=\" + organizationId;\n }\n return this.send(\"POST\", path, request, true, false);\n }\n\n putDeleteCipher(id: string): Promise {\n return this.send(\"PUT\", \"/ciphers/\" + id + \"/delete\", null, true, false);\n }\n\n putDeleteCipherAdmin(id: string): Promise {\n return this.send(\"PUT\", \"/ciphers/\" + id + \"/delete-admin\", null, true, false);\n }\n\n putDeleteManyCiphers(request: CipherBulkDeleteRequest): Promise {\n return this.send(\"PUT\", \"/ciphers/delete\", request, true, false);\n }\n\n putDeleteManyCiphersAdmin(request: CipherBulkDeleteRequest): Promise {\n return this.send(\"PUT\", \"/ciphers/delete-admin\", request, true, false);\n }\n\n async putRestoreCipher(id: string): Promise {\n const r = await this.send(\"PUT\", \"/ciphers/\" + id + \"/restore\", null, true, true);\n return new CipherResponse(r);\n }\n\n async putRestoreCipherAdmin(id: string): Promise {\n const r = await this.send(\"PUT\", \"/ciphers/\" + id + \"/restore-admin\", null, true, true);\n return new CipherResponse(r);\n }\n\n async putRestoreManyCiphers(\n request: CipherBulkRestoreRequest,\n ): Promise> {\n const r = await this.send(\"PUT\", \"/ciphers/restore\", request, true, true);\n return new ListResponse(r, CipherResponse);\n }\n\n async putRestoreManyCiphersAdmin(\n request: CipherBulkRestoreRequest,\n ): Promise> {\n const r = await this.send(\"PUT\", \"/ciphers/restore-admin\", request, true, true);\n return new ListResponse(r, CipherResponse);\n }\n\n // Attachments APIs\n\n async getAttachmentData(\n cipherId: string,\n attachmentId: string,\n emergencyAccessId?: string,\n ): Promise {\n const path =\n (emergencyAccessId != null ? \"/emergency-access/\" + emergencyAccessId + \"/\" : \"/ciphers/\") +\n cipherId +\n \"/attachment/\" +\n attachmentId;\n const r = await this.send(\"GET\", path, null, true, true);\n return new AttachmentResponse(r);\n }\n\n async postCipherAttachment(\n id: string,\n request: AttachmentRequest,\n ): Promise {\n const r = await this.send(\"POST\", \"/ciphers/\" + id + \"/attachment/v2\", request, true, true);\n return new AttachmentUploadDataResponse(r);\n }\n\n /**\n * @deprecated Mar 25 2021: This method has been deprecated in favor of direct uploads.\n * This method still exists for backward compatibility with old server versions.\n */\n async postCipherAttachmentLegacy(id: string, data: FormData): Promise {\n const r = await this.send(\"POST\", \"/ciphers/\" + id + \"/attachment\", data, true, true);\n return new CipherResponse(r);\n }\n\n /**\n * @deprecated Mar 25 2021: This method has been deprecated in favor of direct uploads.\n * This method still exists for backward compatibility with old server versions.\n */\n async postCipherAttachmentAdminLegacy(id: string, data: FormData): Promise {\n const r = await this.send(\"POST\", \"/ciphers/\" + id + \"/attachment-admin\", data, true, true);\n return new CipherResponse(r);\n }\n\n deleteCipherAttachment(id: string, attachmentId: string): Promise {\n return this.send(\"DELETE\", \"/ciphers/\" + id + \"/attachment/\" + attachmentId, null, true, false);\n }\n\n deleteCipherAttachmentAdmin(id: string, attachmentId: string): Promise {\n return this.send(\n \"DELETE\",\n \"/ciphers/\" + id + \"/attachment/\" + attachmentId + \"/admin\",\n null,\n true,\n false,\n );\n }\n\n postShareCipherAttachment(\n id: string,\n attachmentId: string,\n data: FormData,\n organizationId: string,\n ): Promise {\n return this.send(\n \"POST\",\n \"/ciphers/\" + id + \"/attachment/\" + attachmentId + \"/share?organizationId=\" + organizationId,\n data,\n true,\n false,\n );\n }\n\n async renewAttachmentUploadUrl(\n id: string,\n attachmentId: string,\n ): Promise {\n const r = await this.send(\n \"GET\",\n \"/ciphers/\" + id + \"/attachment/\" + attachmentId + \"/renew\",\n null,\n true,\n true,\n );\n return new AttachmentUploadDataResponse(r);\n }\n\n postAttachmentFile(id: string, attachmentId: string, data: FormData): Promise {\n return this.send(\"POST\", \"/ciphers/\" + id + \"/attachment/\" + attachmentId, data, true, false);\n }\n\n // Collections APIs\n\n async getCollectionAccessDetails(\n organizationId: string,\n id: string,\n ): Promise {\n const r = await this.send(\n \"GET\",\n \"/organizations/\" + organizationId + \"/collections/\" + id + \"/details\",\n null,\n true,\n true,\n );\n return new CollectionAccessDetailsResponse(r);\n }\n\n async getUserCollections(): Promise> {\n const r = await this.send(\"GET\", \"/collections\", null, true, true);\n return new ListResponse(r, CollectionResponse);\n }\n\n async getCollections(organizationId: string): Promise> {\n const r = await this.send(\n \"GET\",\n \"/organizations/\" + organizationId + \"/collections\",\n null,\n true,\n true,\n );\n return new ListResponse(r, CollectionResponse);\n }\n\n async getManyCollectionsWithAccessDetails(\n organizationId: string,\n ): Promise> {\n const r = await this.send(\n \"GET\",\n \"/organizations/\" + organizationId + \"/collections/details\",\n null,\n true,\n true,\n );\n return new ListResponse(r, CollectionAccessDetailsResponse);\n }\n\n async getCollectionUsers(\n organizationId: string,\n id: string,\n ): Promise {\n const r = await this.send(\n \"GET\",\n \"/organizations/\" + organizationId + \"/collections/\" + id + \"/users\",\n null,\n true,\n true,\n );\n return r.map((dr: any) => new SelectionReadOnlyResponse(dr));\n }\n\n async postCollection(\n organizationId: string,\n request: CollectionRequest,\n ): Promise {\n const r = await this.send(\n \"POST\",\n \"/organizations/\" + organizationId + \"/collections\",\n request,\n true,\n true,\n );\n return new CollectionDetailsResponse(r);\n }\n\n async putCollection(\n organizationId: string,\n id: string,\n request: CollectionRequest,\n ): Promise {\n const r = await this.send(\n \"PUT\",\n \"/organizations/\" + organizationId + \"/collections/\" + id,\n request,\n true,\n true,\n );\n return new CollectionDetailsResponse(r);\n }\n\n async putCollectionUsers(\n organizationId: string,\n id: string,\n request: SelectionReadOnlyRequest[],\n ): Promise {\n await this.send(\n \"PUT\",\n \"/organizations/\" + organizationId + \"/collections/\" + id + \"/users\",\n request,\n true,\n false,\n );\n }\n\n deleteCollection(organizationId: string, id: string): Promise {\n return this.send(\n \"DELETE\",\n \"/organizations/\" + organizationId + \"/collections/\" + id,\n null,\n true,\n false,\n );\n }\n\n deleteManyCollections(organizationId: string, collectionIds: string[]): Promise {\n return this.send(\n \"DELETE\",\n \"/organizations/\" + organizationId + \"/collections\",\n new CollectionBulkDeleteRequest(collectionIds),\n true,\n false,\n );\n }\n\n deleteCollectionUser(\n organizationId: string,\n id: string,\n organizationUserId: string,\n ): Promise {\n return this.send(\n \"DELETE\",\n \"/organizations/\" + organizationId + \"/collections/\" + id + \"/user/\" + organizationUserId,\n null,\n true,\n false,\n );\n }\n\n // Groups APIs\n\n async getGroupUsers(organizationId: string, id: string): Promise {\n const r = await this.send(\n \"GET\",\n \"/organizations/\" + organizationId + \"/groups/\" + id + \"/users\",\n null,\n true,\n true,\n );\n return r;\n }\n\n deleteGroupUser(organizationId: string, id: string, organizationUserId: string): Promise {\n return this.send(\n \"DELETE\",\n \"/organizations/\" + organizationId + \"/groups/\" + id + \"/user/\" + organizationUserId,\n null,\n true,\n false,\n );\n }\n\n // Plan APIs\n\n async getPlans(): Promise> {\n const r = await this.send(\"GET\", \"/plans\", null, false, true);\n return new ListResponse(r, PlanResponse);\n }\n\n async postPublicImportDirectory(request: OrganizationImportRequest): Promise {\n return this.send(\"POST\", \"/public/organization/import\", request, true, false);\n }\n\n async getTaxRates(): Promise> {\n const r = await this.send(\"GET\", \"/plans/sales-tax-rates/\", null, true, true);\n return new ListResponse(r, TaxRateResponse);\n }\n\n // Settings APIs\n\n async getSettingsDomains(): Promise {\n const r = await this.send(\"GET\", \"/settings/domains\", null, true, true);\n return new DomainsResponse(r);\n }\n\n async putSettingsDomains(request: UpdateDomainsRequest): Promise {\n const r = await this.send(\"PUT\", \"/settings/domains\", request, true, true);\n return new DomainsResponse(r);\n }\n\n // Sync APIs\n\n async getSync(): Promise {\n const path = this.isDesktopClient || this.isWebClient ? \"/sync?excludeDomains=true\" : \"/sync\";\n const r = await this.send(\"GET\", path, null, true, true);\n return new SyncResponse(r);\n }\n\n // Two-factor APIs\n\n async getTwoFactorProviders(): Promise> {\n const r = await this.send(\"GET\", \"/two-factor\", null, true, true);\n return new ListResponse(r, TwoFactorProviderResponse);\n }\n\n async getTwoFactorOrganizationProviders(\n organizationId: string,\n ): Promise> {\n const r = await this.send(\n \"GET\",\n \"/organizations/\" + organizationId + \"/two-factor\",\n null,\n true,\n true,\n );\n return new ListResponse(r, TwoFactorProviderResponse);\n }\n\n async getTwoFactorAuthenticator(\n request: SecretVerificationRequest,\n ): Promise {\n const r = await this.send(\"POST\", \"/two-factor/get-authenticator\", request, true, true);\n return new TwoFactorAuthenticatorResponse(r);\n }\n\n async getTwoFactorEmail(request: SecretVerificationRequest): Promise {\n const r = await this.send(\"POST\", \"/two-factor/get-email\", request, true, true);\n return new TwoFactorEmailResponse(r);\n }\n\n async getTwoFactorDuo(request: SecretVerificationRequest): Promise {\n const r = await this.send(\"POST\", \"/two-factor/get-duo\", request, true, true);\n return new TwoFactorDuoResponse(r);\n }\n\n async getTwoFactorOrganizationDuo(\n organizationId: string,\n request: SecretVerificationRequest,\n ): Promise {\n const r = await this.send(\n \"POST\",\n \"/organizations/\" + organizationId + \"/two-factor/get-duo\",\n request,\n true,\n true,\n );\n return new TwoFactorDuoResponse(r);\n }\n\n async getTwoFactorYubiKey(request: SecretVerificationRequest): Promise {\n const r = await this.send(\"POST\", \"/two-factor/get-yubikey\", request, true, true);\n return new TwoFactorYubiKeyResponse(r);\n }\n\n async getTwoFactorWebAuthn(\n request: SecretVerificationRequest,\n ): Promise {\n const r = await this.send(\"POST\", \"/two-factor/get-webauthn\", request, true, true);\n return new TwoFactorWebAuthnResponse(r);\n }\n\n async getTwoFactorWebAuthnChallenge(\n request: SecretVerificationRequest,\n ): Promise {\n const r = await this.send(\"POST\", \"/two-factor/get-webauthn-challenge\", request, true, true);\n return new ChallengeResponse(r);\n }\n\n async getTwoFactorRecover(request: SecretVerificationRequest): Promise {\n const r = await this.send(\"POST\", \"/two-factor/get-recover\", request, true, true);\n return new TwoFactorRecoverResponse(r);\n }\n\n async putTwoFactorAuthenticator(\n request: UpdateTwoFactorAuthenticatorRequest,\n ): Promise {\n const r = await this.send(\"PUT\", \"/two-factor/authenticator\", request, true, true);\n return new TwoFactorAuthenticatorResponse(r);\n }\n\n async putTwoFactorEmail(request: UpdateTwoFactorEmailRequest): Promise {\n const r = await this.send(\"PUT\", \"/two-factor/email\", request, true, true);\n return new TwoFactorEmailResponse(r);\n }\n\n async putTwoFactorDuo(request: UpdateTwoFactorDuoRequest): Promise {\n const r = await this.send(\"PUT\", \"/two-factor/duo\", request, true, true);\n return new TwoFactorDuoResponse(r);\n }\n\n async putTwoFactorOrganizationDuo(\n organizationId: string,\n request: UpdateTwoFactorDuoRequest,\n ): Promise {\n const r = await this.send(\n \"PUT\",\n \"/organizations/\" + organizationId + \"/two-factor/duo\",\n request,\n true,\n true,\n );\n return new TwoFactorDuoResponse(r);\n }\n\n async putTwoFactorYubiKey(\n request: UpdateTwoFactorYubioOtpRequest,\n ): Promise {\n const r = await this.send(\"PUT\", \"/two-factor/yubikey\", request, true, true);\n return new TwoFactorYubiKeyResponse(r);\n }\n\n async putTwoFactorWebAuthn(\n request: UpdateTwoFactorWebAuthnRequest,\n ): Promise {\n const response = request.deviceResponse.response as AuthenticatorAttestationResponse;\n const data: any = Object.assign({}, request);\n\n data.deviceResponse = {\n id: request.deviceResponse.id,\n rawId: btoa(request.deviceResponse.id),\n type: request.deviceResponse.type,\n extensions: request.deviceResponse.getClientExtensionResults(),\n response: {\n AttestationObject: Utils.fromBufferToB64(response.attestationObject),\n clientDataJson: Utils.fromBufferToB64(response.clientDataJSON),\n },\n };\n\n const r = await this.send(\"PUT\", \"/two-factor/webauthn\", data, true, true);\n return new TwoFactorWebAuthnResponse(r);\n }\n\n async deleteTwoFactorWebAuthn(\n request: UpdateTwoFactorWebAuthnDeleteRequest,\n ): Promise {\n const r = await this.send(\"DELETE\", \"/two-factor/webauthn\", request, true, true);\n return new TwoFactorWebAuthnResponse(r);\n }\n\n async putTwoFactorDisable(request: TwoFactorProviderRequest): Promise {\n const r = await this.send(\"PUT\", \"/two-factor/disable\", request, true, true);\n return new TwoFactorProviderResponse(r);\n }\n\n async putTwoFactorOrganizationDisable(\n organizationId: string,\n request: TwoFactorProviderRequest,\n ): Promise {\n const r = await this.send(\n \"PUT\",\n \"/organizations/\" + organizationId + \"/two-factor/disable\",\n request,\n true,\n true,\n );\n return new TwoFactorProviderResponse(r);\n }\n\n postTwoFactorRecover(request: TwoFactorRecoveryRequest): Promise {\n return this.send(\"POST\", \"/two-factor/recover\", request, false, false);\n }\n\n postTwoFactorEmailSetup(request: TwoFactorEmailRequest): Promise {\n return this.send(\"POST\", \"/two-factor/send-email\", request, true, false);\n }\n\n postTwoFactorEmail(request: TwoFactorEmailRequest): Promise {\n return this.send(\"POST\", \"/two-factor/send-email-login\", request, false, false);\n }\n\n async getDeviceVerificationSettings(): Promise {\n const r = await this.send(\n \"GET\",\n \"/two-factor/get-device-verification-settings\",\n null,\n true,\n true,\n );\n return new DeviceVerificationResponse(r);\n }\n\n async putDeviceVerificationSettings(\n request: DeviceVerificationRequest,\n ): Promise {\n const r = await this.send(\n \"PUT\",\n \"/two-factor/device-verification-settings\",\n request,\n true,\n true,\n );\n return new DeviceVerificationResponse(r);\n }\n\n // Organization APIs\n\n async getCloudCommunicationsEnabled(): Promise {\n const r = await this.send(\"GET\", \"/organizations/connections/enabled\", null, true, true);\n return r as boolean;\n }\n\n async getOrganizationConnection(\n id: string,\n type: OrganizationConnectionType,\n configType: { new (response: any): TConfig },\n ): Promise> {\n const r = await this.send(\"GET\", `/organizations/connections/${id}/${type}`, null, true, true);\n return new OrganizationConnectionResponse(r, configType);\n }\n\n async createOrganizationConnection(\n request: OrganizationConnectionRequest,\n configType: { new (response: any): TConfig },\n ): Promise> {\n const r = await this.send(\"POST\", \"/organizations/connections/\", request, true, true);\n return new OrganizationConnectionResponse(r, configType);\n }\n\n async updateOrganizationConnection(\n request: OrganizationConnectionRequest,\n configType: { new (response: any): TConfig },\n organizationConnectionId?: string,\n ): Promise> {\n const r = await this.send(\n \"PUT\",\n \"/organizations/connections/\" + organizationConnectionId,\n request,\n true,\n true,\n );\n return new OrganizationConnectionResponse(r, configType);\n }\n\n async deleteOrganizationConnection(id: string): Promise {\n return this.send(\"DELETE\", \"/organizations/connections/\" + id, null, true, false);\n }\n\n // Provider User APIs\n\n async getProviderUsers(\n providerId: string,\n ): Promise> {\n const r = await this.send(\"GET\", \"/providers/\" + providerId + \"/users\", null, true, true);\n return new ListResponse(r, ProviderUserUserDetailsResponse);\n }\n\n async getProviderUser(providerId: string, id: string): Promise {\n const r = await this.send(\"GET\", \"/providers/\" + providerId + \"/users/\" + id, null, true, true);\n return new ProviderUserResponse(r);\n }\n\n postProviderUserInvite(providerId: string, request: ProviderUserInviteRequest): Promise {\n return this.send(\"POST\", \"/providers/\" + providerId + \"/users/invite\", request, true, false);\n }\n\n postProviderUserReinvite(providerId: string, id: string): Promise {\n return this.send(\n \"POST\",\n \"/providers/\" + providerId + \"/users/\" + id + \"/reinvite\",\n null,\n true,\n false,\n );\n }\n\n async postManyProviderUserReinvite(\n providerId: string,\n request: ProviderUserBulkRequest,\n ): Promise> {\n const r = await this.send(\n \"POST\",\n \"/providers/\" + providerId + \"/users/reinvite\",\n request,\n true,\n true,\n );\n return new ListResponse(r, ProviderUserBulkResponse);\n }\n\n async postProviderUserBulkConfirm(\n providerId: string,\n request: ProviderUserBulkConfirmRequest,\n ): Promise> {\n const r = await this.send(\n \"POST\",\n \"/providers/\" + providerId + \"/users/confirm\",\n request,\n true,\n true,\n );\n return new ListResponse(r, ProviderUserBulkResponse);\n }\n\n async deleteManyProviderUsers(\n providerId: string,\n request: ProviderUserBulkRequest,\n ): Promise> {\n const r = await this.send(\"DELETE\", \"/providers/\" + providerId + \"/users\", request, true, true);\n return new ListResponse(r, ProviderUserBulkResponse);\n }\n\n postProviderUserAccept(\n providerId: string,\n id: string,\n request: ProviderUserAcceptRequest,\n ): Promise {\n return this.send(\n \"POST\",\n \"/providers/\" + providerId + \"/users/\" + id + \"/accept\",\n request,\n true,\n false,\n );\n }\n\n postProviderUserConfirm(\n providerId: string,\n id: string,\n request: ProviderUserConfirmRequest,\n ): Promise {\n return this.send(\n \"POST\",\n \"/providers/\" + providerId + \"/users/\" + id + \"/confirm\",\n request,\n true,\n false,\n );\n }\n\n async postProviderUsersPublicKey(\n providerId: string,\n request: ProviderUserBulkRequest,\n ): Promise> {\n const r = await this.send(\n \"POST\",\n \"/providers/\" + providerId + \"/users/public-keys\",\n request,\n true,\n true,\n );\n return new ListResponse(r, ProviderUserBulkPublicKeyResponse);\n }\n\n putProviderUser(\n providerId: string,\n id: string,\n request: ProviderUserUpdateRequest,\n ): Promise {\n return this.send(\"PUT\", \"/providers/\" + providerId + \"/users/\" + id, request, true, false);\n }\n\n deleteProviderUser(providerId: string, id: string): Promise {\n return this.send(\"DELETE\", \"/providers/\" + providerId + \"/users/\" + id, null, true, false);\n }\n\n // Provider Organization APIs\n\n async getProviderClients(\n providerId: string,\n ): Promise> {\n const r = await this.send(\n \"GET\",\n \"/providers/\" + providerId + \"/organizations\",\n null,\n true,\n true,\n );\n return new ListResponse(r, ProviderOrganizationOrganizationDetailsResponse);\n }\n\n postProviderAddOrganization(\n providerId: string,\n request: ProviderAddOrganizationRequest,\n ): Promise {\n return this.send(\n \"POST\",\n \"/providers/\" + providerId + \"/organizations/add\",\n request,\n true,\n false,\n );\n }\n\n async postProviderCreateOrganization(\n providerId: string,\n request: ProviderOrganizationCreateRequest,\n ): Promise {\n const r = await this.send(\n \"POST\",\n \"/providers/\" + providerId + \"/organizations\",\n request,\n true,\n true,\n );\n return new ProviderOrganizationResponse(r);\n }\n\n deleteProviderOrganization(providerId: string, id: string): Promise {\n return this.send(\n \"DELETE\",\n \"/providers/\" + providerId + \"/organizations/\" + id,\n null,\n true,\n false,\n );\n }\n\n // Event APIs\n\n async getEvents(start: string, end: string, token: string): Promise> {\n const r = await this.send(\n \"GET\",\n this.addEventParameters(\"/events\", start, end, token),\n null,\n true,\n true,\n );\n return new ListResponse(r, EventResponse);\n }\n\n async getEventsCipher(\n id: string,\n start: string,\n end: string,\n token: string,\n ): Promise> {\n const r = await this.send(\n \"GET\",\n this.addEventParameters(\"/ciphers/\" + id + \"/events\", start, end, token),\n null,\n true,\n true,\n );\n return new ListResponse(r, EventResponse);\n }\n\n async getEventsOrganization(\n id: string,\n start: string,\n end: string,\n token: string,\n ): Promise> {\n const r = await this.send(\n \"GET\",\n this.addEventParameters(\"/organizations/\" + id + \"/events\", start, end, token),\n null,\n true,\n true,\n );\n return new ListResponse(r, EventResponse);\n }\n\n async getEventsOrganizationUser(\n organizationId: string,\n id: string,\n start: string,\n end: string,\n token: string,\n ): Promise> {\n const r = await this.send(\n \"GET\",\n this.addEventParameters(\n \"/organizations/\" + organizationId + \"/users/\" + id + \"/events\",\n start,\n end,\n token,\n ),\n null,\n true,\n true,\n );\n return new ListResponse(r, EventResponse);\n }\n\n async getEventsProvider(\n id: string,\n start: string,\n end: string,\n token: string,\n ): Promise> {\n const r = await this.send(\n \"GET\",\n this.addEventParameters(\"/providers/\" + id + \"/events\", start, end, token),\n null,\n true,\n true,\n );\n return new ListResponse(r, EventResponse);\n }\n\n async getEventsProviderUser(\n providerId: string,\n id: string,\n start: string,\n end: string,\n token: string,\n ): Promise> {\n const r = await this.send(\n \"GET\",\n this.addEventParameters(\n \"/providers/\" + providerId + \"/users/\" + id + \"/events\",\n start,\n end,\n token,\n ),\n null,\n true,\n true,\n );\n return new ListResponse(r, EventResponse);\n }\n\n async postEventsCollect(request: EventRequest[], userId?: UserId): Promise {\n const authHeader = await this.tokenService.getAccessToken(userId);\n const headers = new Headers({\n \"Device-Type\": this.deviceType,\n Authorization: \"Bearer \" + authHeader,\n \"Content-Type\": \"application/json; charset=utf-8\",\n });\n if (this.customUserAgent != null) {\n headers.set(\"User-Agent\", this.customUserAgent);\n }\n const env = await firstValueFrom(this.environmentService.environment$);\n const response = await this.fetch(\n new Request(env.getEventsUrl() + \"/collect\", {\n cache: \"no-store\",\n credentials: await this.getCredentials(),\n method: \"POST\",\n body: JSON.stringify(request),\n headers: headers,\n }),\n );\n if (response.status !== 200) {\n return Promise.reject(\"Event post failed.\");\n }\n }\n\n // User APIs\n\n async getUserPublicKey(id: string): Promise {\n const r = await this.send(\"GET\", \"/users/\" + id + \"/public-key\", null, true, true);\n return new UserKeyResponse(r);\n }\n\n // HIBP APIs\n\n async getHibpBreach(username: string): Promise {\n const r = await this.send(\"GET\", \"/hibp/breach?username=\" + username, null, true, true);\n return r.map((a: any) => new BreachAccountResponse(a));\n }\n\n // Misc\n\n async postBitPayInvoice(request: BitPayInvoiceRequest): Promise {\n const r = await this.send(\"POST\", \"/bitpay-invoice\", request, true, true);\n return r as string;\n }\n\n async postSetupPayment(): Promise {\n const r = await this.send(\"POST\", \"/setup-payment\", null, true, true);\n return r as string;\n }\n\n // Key Connector\n\n async getMasterKeyFromKeyConnector(\n keyConnectorUrl: string,\n ): Promise {\n const authHeader = await this.getActiveBearerToken();\n\n const response = await this.fetch(\n new Request(keyConnectorUrl + \"/user-keys\", {\n cache: \"no-store\",\n method: \"GET\",\n headers: new Headers({\n Accept: \"application/json\",\n Authorization: \"Bearer \" + authHeader,\n }),\n }),\n );\n\n if (response.status !== 200) {\n const error = await this.handleError(response, false, true);\n return Promise.reject(error);\n }\n\n return new KeyConnectorUserKeyResponse(await response.json());\n }\n\n async postUserKeyToKeyConnector(\n keyConnectorUrl: string,\n request: KeyConnectorUserKeyRequest,\n ): Promise {\n const authHeader = await this.getActiveBearerToken();\n\n const response = await this.fetch(\n new Request(keyConnectorUrl + \"/user-keys\", {\n cache: \"no-store\",\n method: \"POST\",\n headers: new Headers({\n Accept: \"application/json\",\n Authorization: \"Bearer \" + authHeader,\n \"Content-Type\": \"application/json; charset=utf-8\",\n }),\n body: JSON.stringify(request),\n }),\n );\n\n if (response.status !== 200) {\n const error = await this.handleError(response, false, true);\n return Promise.reject(error);\n }\n }\n\n async getKeyConnectorAlive(keyConnectorUrl: string) {\n const response = await this.fetch(\n new Request(keyConnectorUrl + \"/alive\", {\n cache: \"no-store\",\n method: \"GET\",\n headers: new Headers({\n Accept: \"application/json\",\n \"Content-Type\": \"application/json; charset=utf-8\",\n }),\n }),\n );\n\n if (response.status !== 200) {\n const error = await this.handleError(response, false, true);\n return Promise.reject(error);\n }\n }\n\n async getOrganizationExport(organizationId: string): Promise {\n const r = await this.send(\n \"GET\",\n \"/organizations/\" + organizationId + \"/export\",\n null,\n true,\n true,\n );\n return new OrganizationExportResponse(r);\n }\n\n // Helpers\n\n async getActiveBearerToken(): Promise {\n let accessToken = await this.tokenService.getAccessToken();\n if (await this.tokenService.tokenNeedsRefresh()) {\n await this.doAuthRefresh();\n accessToken = await this.tokenService.getAccessToken();\n }\n return accessToken;\n }\n\n async fetch(request: Request): Promise {\n if (request.method === \"GET\") {\n request.headers.set(\"Cache-Control\", \"no-store\");\n request.headers.set(\"Pragma\", \"no-cache\");\n }\n request.headers.set(\"Bitwarden-Client-Name\", this.platformUtilsService.getClientType());\n request.headers.set(\n \"Bitwarden-Client-Version\",\n await this.platformUtilsService.getApplicationVersionNumber(),\n );\n return this.nativeFetch(request);\n }\n\n nativeFetch(request: Request): Promise {\n return fetch(request);\n }\n\n async preValidateSso(identifier: string): Promise {\n if (identifier == null || identifier === \"\") {\n throw new Error(\"Organization Identifier was not provided.\");\n }\n const headers = new Headers({\n Accept: \"application/json\",\n \"Device-Type\": this.deviceType,\n });\n if (this.customUserAgent != null) {\n headers.set(\"User-Agent\", this.customUserAgent);\n }\n\n const env = await firstValueFrom(this.environmentService.environment$);\n const path = `/sso/prevalidate?domainHint=${encodeURIComponent(identifier)}`;\n const response = await this.fetch(\n new Request(env.getIdentityUrl() + path, {\n cache: \"no-store\",\n credentials: await this.getCredentials(),\n headers: headers,\n method: \"GET\",\n }),\n );\n\n if (response.status === 200) {\n const body = await response.json();\n return new SsoPreValidateResponse(body);\n } else {\n const error = await this.handleError(response, false, true);\n return Promise.reject(error);\n }\n }\n\n async postCreateSponsorship(\n sponsoredOrgId: string,\n request: OrganizationSponsorshipCreateRequest,\n ): Promise {\n return await this.send(\n \"POST\",\n \"/organization/sponsorship/\" +\n (this.platformUtilsService.isSelfHost() ? \"self-hosted/\" : \"\") +\n sponsoredOrgId +\n \"/families-for-enterprise\",\n request,\n true,\n false,\n );\n }\n\n async getSponsorshipSyncStatus(\n sponsoredOrgId: string,\n ): Promise {\n const response = await this.send(\n \"GET\",\n \"/organization/sponsorship/\" + sponsoredOrgId + \"/sync-status\",\n null,\n true,\n true,\n );\n return new OrganizationSponsorshipSyncStatusResponse(response);\n }\n\n async deleteRevokeSponsorship(sponsoringOrganizationId: string): Promise {\n return await this.send(\n \"DELETE\",\n \"/organization/sponsorship/\" +\n (this.platformUtilsService.isSelfHost() ? \"self-hosted/\" : \"\") +\n sponsoringOrganizationId,\n null,\n true,\n false,\n );\n }\n\n async deleteRemoveSponsorship(sponsoringOrgId: string): Promise {\n return await this.send(\n \"DELETE\",\n \"/organization/sponsorship/sponsored/\" + sponsoringOrgId,\n null,\n true,\n false,\n );\n }\n\n async postPreValidateSponsorshipToken(sponsorshipToken: string): Promise {\n const r = await this.send(\n \"POST\",\n \"/organization/sponsorship/validate-token?sponsorshipToken=\" +\n encodeURIComponent(sponsorshipToken),\n null,\n true,\n true,\n );\n return r as boolean;\n }\n\n async postRedeemSponsorship(\n sponsorshipToken: string,\n request: OrganizationSponsorshipRedeemRequest,\n ): Promise {\n return await this.send(\n \"POST\",\n \"/organization/sponsorship/redeem?sponsorshipToken=\" + encodeURIComponent(sponsorshipToken),\n request,\n true,\n false,\n );\n }\n\n async postResendSponsorshipOffer(sponsoringOrgId: string): Promise {\n return await this.send(\n \"POST\",\n \"/organization/sponsorship/\" + sponsoringOrgId + \"/families-for-enterprise/resend\",\n null,\n true,\n false,\n );\n }\n\n protected async doAuthRefresh(): Promise {\n const refreshToken = await this.tokenService.getRefreshToken();\n if (refreshToken != null && refreshToken !== \"\") {\n return this.doRefreshToken();\n }\n\n const clientId = await this.tokenService.getClientId();\n const clientSecret = await this.tokenService.getClientSecret();\n if (!Utils.isNullOrWhitespace(clientId) && !Utils.isNullOrWhitespace(clientSecret)) {\n return this.doApiTokenRefresh();\n }\n\n this.refreshAccessTokenErrorCallback();\n\n throw new Error(\"Cannot refresh access token, no refresh token or api keys are stored.\");\n }\n\n protected async doRefreshToken(): Promise {\n const refreshToken = await this.tokenService.getRefreshToken();\n if (refreshToken == null || refreshToken === \"\") {\n throw new Error();\n }\n const headers = new Headers({\n \"Content-Type\": \"application/x-www-form-urlencoded; charset=utf-8\",\n Accept: \"application/json\",\n \"Device-Type\": this.deviceType,\n });\n if (this.customUserAgent != null) {\n headers.set(\"User-Agent\", this.customUserAgent);\n }\n\n const env = await firstValueFrom(this.environmentService.environment$);\n const decodedToken = await this.tokenService.decodeAccessToken();\n const response = await this.fetch(\n new Request(env.getIdentityUrl() + \"/connect/token\", {\n body: this.qsStringify({\n grant_type: \"refresh_token\",\n client_id: decodedToken.client_id,\n refresh_token: refreshToken,\n }),\n cache: \"no-store\",\n credentials: await this.getCredentials(),\n headers: headers,\n method: \"POST\",\n }),\n );\n\n if (response.status === 200) {\n const responseJson = await response.json();\n const tokenResponse = new IdentityTokenResponse(responseJson);\n\n const newDecodedAccessToken = await this.tokenService.decodeAccessToken(\n tokenResponse.accessToken,\n );\n const userId = newDecodedAccessToken.sub;\n\n const vaultTimeoutAction = await firstValueFrom(\n this.vaultTimeoutSettingsService.getVaultTimeoutActionByUserId$(userId),\n );\n const vaultTimeout = await firstValueFrom(\n this.vaultTimeoutSettingsService.getVaultTimeoutByUserId$(userId),\n );\n\n await this.tokenService.setTokens(\n tokenResponse.accessToken,\n vaultTimeoutAction as VaultTimeoutAction,\n vaultTimeout,\n tokenResponse.refreshToken,\n );\n } else {\n const error = await this.handleError(response, true, true);\n return Promise.reject(error);\n }\n }\n\n protected async doApiTokenRefresh(): Promise {\n const clientId = await this.tokenService.getClientId();\n const clientSecret = await this.tokenService.getClientSecret();\n\n const appId = await this.appIdService.getAppId();\n const deviceRequest = new DeviceRequest(appId, this.platformUtilsService);\n const tokenRequest = new UserApiTokenRequest(\n clientId,\n clientSecret,\n new TokenTwoFactorRequest(),\n deviceRequest,\n );\n\n const response = await this.postIdentityToken(tokenRequest);\n if (!(response instanceof IdentityTokenResponse)) {\n throw new Error(\"Invalid response received when refreshing api token\");\n }\n\n const newDecodedAccessToken = await this.tokenService.decodeAccessToken(response.accessToken);\n const userId = newDecodedAccessToken.sub;\n\n const vaultTimeoutAction = await firstValueFrom(\n this.vaultTimeoutSettingsService.getVaultTimeoutActionByUserId$(userId),\n );\n const vaultTimeout = await firstValueFrom(\n this.vaultTimeoutSettingsService.getVaultTimeoutByUserId$(userId),\n );\n\n await this.tokenService.setAccessToken(\n response.accessToken,\n vaultTimeoutAction as VaultTimeoutAction,\n vaultTimeout,\n );\n }\n\n async send(\n method: \"GET\" | \"POST\" | \"PUT\" | \"DELETE\",\n path: string,\n body: any,\n authed: boolean,\n hasResponse: boolean,\n apiUrl?: string,\n alterHeaders?: (headers: Headers) => void,\n ): Promise {\n const env = await firstValueFrom(this.environmentService.environment$);\n apiUrl = Utils.isNullOrWhitespace(apiUrl) ? env.getApiUrl() : apiUrl;\n\n // Prevent directory traversal from malicious paths\n const pathParts = path.split(\"?\");\n const requestUrl =\n apiUrl + Utils.normalizePath(pathParts[0]) + (pathParts.length > 1 ? `?${pathParts[1]}` : \"\");\n\n const headers = new Headers({\n \"Device-Type\": this.deviceType,\n });\n if (this.customUserAgent != null) {\n headers.set(\"User-Agent\", this.customUserAgent);\n }\n\n const requestInit: RequestInit = {\n cache: \"no-store\",\n credentials: await this.getCredentials(),\n method: method,\n };\n\n if (authed) {\n const authHeader = await this.getActiveBearerToken();\n headers.set(\"Authorization\", \"Bearer \" + authHeader);\n }\n if (body != null) {\n if (typeof body === \"string\") {\n requestInit.body = body;\n headers.set(\"Content-Type\", \"application/x-www-form-urlencoded; charset=utf-8\");\n } else if (typeof body === \"object\") {\n if (body instanceof FormData) {\n requestInit.body = body;\n } else {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n requestInit.body = JSON.stringify(body);\n }\n }\n }\n if (hasResponse) {\n headers.set(\"Accept\", \"application/json\");\n }\n if (alterHeaders != null) {\n alterHeaders(headers);\n }\n\n requestInit.headers = headers;\n const response = await this.fetch(new Request(requestUrl, requestInit));\n\n const responseType = response.headers.get(\"content-type\");\n const responseIsJson = responseType != null && responseType.indexOf(\"application/json\") !== -1;\n if (hasResponse && response.status === 200 && responseIsJson) {\n const responseJson = await response.json();\n return responseJson;\n } else if (response.status !== 200) {\n const error = await this.handleError(response, false, authed);\n return Promise.reject(error);\n }\n }\n\n private async handleError(\n response: Response,\n tokenError: boolean,\n authed: boolean,\n ): Promise {\n let responseJson: any = null;\n if (this.isJsonResponse(response)) {\n responseJson = await response.json();\n } else if (this.isTextResponse(response)) {\n responseJson = { Message: await response.text() };\n }\n\n if (authed) {\n if (\n response.status === 401 ||\n response.status === 403 ||\n (tokenError &&\n response.status === 400 &&\n responseJson != null &&\n responseJson.error === \"invalid_grant\")\n ) {\n await this.logoutCallback(\"invalidGrantError\");\n return null;\n }\n }\n\n return new ErrorResponse(responseJson, response.status, tokenError);\n }\n\n private qsStringify(params: any): string {\n return Object.keys(params)\n .map((key) => {\n return encodeURIComponent(key) + \"=\" + encodeURIComponent(params[key]);\n })\n .join(\"&\");\n }\n\n private async getCredentials(): Promise {\n const env = await firstValueFrom(this.environmentService.environment$);\n if (!this.isWebClient || env.hasBaseUrl()) {\n return \"include\";\n }\n return undefined;\n }\n\n private addEventParameters(base: string, start: string, end: string, token: string) {\n if (start != null) {\n base += \"?start=\" + start;\n }\n if (end != null) {\n base += base.indexOf(\"?\") > -1 ? \"&\" : \"?\";\n base += \"end=\" + end;\n }\n if (token != null) {\n base += base.indexOf(\"?\") > -1 ? \"&\" : \"?\";\n base += \"continuationToken=\" + token;\n }\n return base;\n }\n\n private isJsonResponse(response: Response): boolean {\n const typeHeader = response.headers.get(\"content-type\");\n return typeHeader != null && typeHeader.indexOf(\"application/json\") > -1;\n }\n\n private isTextResponse(response: Response): boolean {\n const typeHeader = response.headers.get(\"content-type\");\n return typeHeader != null && typeHeader.indexOf(\"text\") > -1;\n }\n}\n","import { Observable, concatMap, distinctUntilChanged, firstValueFrom, map } from \"rxjs\";\n\nimport { PBKDF2KdfConfig } from \"../../../auth/models/domain/kdf-config\";\nimport { CryptoService } from \"../../../platform/abstractions/crypto.service\";\nimport { EncryptService } from \"../../../platform/abstractions/encrypt.service\";\nimport { I18nService } from \"../../../platform/abstractions/i18n.service\";\nimport { KeyGenerationService } from \"../../../platform/abstractions/key-generation.service\";\nimport { Utils } from \"../../../platform/misc/utils\";\nimport { EncArrayBuffer } from \"../../../platform/models/domain/enc-array-buffer\";\nimport { EncString } from \"../../../platform/models/domain/enc-string\";\nimport { SymmetricCryptoKey } from \"../../../platform/models/domain/symmetric-crypto-key\";\nimport { UserKey } from \"../../../types/key\";\nimport { SendType } from \"../enums/send-type\";\nimport { SendData } from \"../models/data/send.data\";\nimport { Send } from \"../models/domain/send\";\nimport { SendFile } from \"../models/domain/send-file\";\nimport { SendText } from \"../models/domain/send-text\";\nimport { SendWithIdRequest } from \"../models/request/send-with-id.request\";\nimport { SendView } from \"../models/view/send.view\";\nimport { SEND_KDF_ITERATIONS } from \"../send-kdf\";\n\nimport { SendStateProvider } from \"./send-state.provider.abstraction\";\nimport { InternalSendService as InternalSendServiceAbstraction } from \"./send.service.abstraction\";\n\nexport class SendService implements InternalSendServiceAbstraction {\n readonly sendKeySalt = \"bitwarden-send\";\n readonly sendKeyPurpose = \"send\";\n\n sends$ = this.stateProvider.encryptedState$.pipe(\n map((record) => Object.values(record || {}).map((data) => new Send(data))),\n );\n sendViews$ = this.stateProvider.encryptedState$.pipe(\n concatMap((record) =>\n this.decryptSends(Object.values(record || {}).map((data) => new Send(data))),\n ),\n );\n\n constructor(\n private cryptoService: CryptoService,\n private i18nService: I18nService,\n private keyGenerationService: KeyGenerationService,\n private stateProvider: SendStateProvider,\n private encryptService: EncryptService,\n ) {}\n\n async encrypt(\n model: SendView,\n file: File | ArrayBuffer,\n password: string,\n key?: SymmetricCryptoKey,\n ): Promise<[Send, EncArrayBuffer]> {\n let fileData: EncArrayBuffer = null;\n const send = new Send();\n send.id = model.id;\n send.type = model.type;\n send.disabled = model.disabled;\n send.hideEmail = model.hideEmail;\n send.maxAccessCount = model.maxAccessCount;\n if (model.key == null) {\n const key = await this.keyGenerationService.createKeyWithPurpose(\n 128,\n this.sendKeyPurpose,\n this.sendKeySalt,\n );\n model.key = key.material;\n model.cryptoKey = key.derivedKey;\n }\n if (password != null) {\n const passwordKey = await this.keyGenerationService.deriveKeyFromPassword(\n password,\n model.key,\n new PBKDF2KdfConfig(SEND_KDF_ITERATIONS),\n );\n send.password = passwordKey.keyB64;\n }\n if (key == null) {\n key = await this.cryptoService.getUserKey();\n }\n send.key = await this.encryptService.encrypt(model.key, key);\n send.name = await this.encryptService.encrypt(model.name, model.cryptoKey);\n send.notes = await this.encryptService.encrypt(model.notes, model.cryptoKey);\n if (send.type === SendType.Text) {\n send.text = new SendText();\n send.text.text = await this.encryptService.encrypt(model.text.text, model.cryptoKey);\n send.text.hidden = model.text.hidden;\n } else if (send.type === SendType.File) {\n send.file = new SendFile();\n if (file != null) {\n if (file instanceof ArrayBuffer) {\n const [name, data] = await this.encryptFileData(\n model.file.fileName,\n file,\n model.cryptoKey,\n );\n send.file.fileName = name;\n fileData = data;\n } else {\n fileData = await this.parseFile(send, file, model.cryptoKey);\n }\n }\n }\n\n return [send, fileData];\n }\n\n get$(id: string): Observable {\n return this.sends$.pipe(\n distinctUntilChanged((oldSends, newSends) => {\n const oldSend = oldSends.find((oldSend) => oldSend.id === id);\n const newSend = newSends.find((newSend) => newSend.id === id);\n if (!oldSend || !newSend) {\n // If either oldSend or newSend is not found, consider them different\n return false;\n }\n\n // Compare each property of the old and new Send objects\n const allPropertiesSame = Object.keys(newSend).every((key) => {\n if (\n (oldSend[key as keyof Send] != null && newSend[key as keyof Send] === null) ||\n (oldSend[key as keyof Send] === null && newSend[key as keyof Send] != null)\n ) {\n // If a key from either old or new send is not found, and the key from the other send has a value, consider them different\n return false;\n }\n\n switch (key) {\n case \"name\":\n case \"notes\":\n case \"key\":\n if (oldSend[key] === null && newSend[key] === null) {\n return true;\n }\n\n return oldSend[key].encryptedString === newSend[key].encryptedString;\n case \"text\":\n if (oldSend[key].text == null && newSend[key].text == null) {\n return true;\n }\n if (\n (oldSend[key].text != null && newSend[key].text == null) ||\n (oldSend[key].text == null && newSend[key].text != null)\n ) {\n return false;\n }\n return oldSend[key].text.encryptedString === newSend[key].text.encryptedString;\n case \"file\":\n //Files are never updated so never will be changed.\n return true;\n case \"revisionDate\":\n case \"expirationDate\":\n case \"deletionDate\":\n if (oldSend[key] === null && newSend[key] === null) {\n return true;\n }\n return oldSend[key].getTime() === newSend[key].getTime();\n default:\n // For other properties, compare directly\n return oldSend[key as keyof Send] === newSend[key as keyof Send];\n }\n });\n\n return allPropertiesSame;\n }),\n map((sends) => sends.find((o) => o.id === id)),\n );\n }\n\n async getFromState(id: string): Promise {\n const sends = await this.stateProvider.getEncryptedSends();\n // eslint-disable-next-line\n if (sends == null || !sends.hasOwnProperty(id)) {\n return null;\n }\n\n return new Send(sends[id]);\n }\n\n async getAll(): Promise {\n const sends = await this.stateProvider.getEncryptedSends();\n const response: Send[] = [];\n for (const id in sends) {\n // eslint-disable-next-line\n if (sends.hasOwnProperty(id)) {\n response.push(new Send(sends[id]));\n }\n }\n return response;\n }\n\n async getAllDecryptedFromState(): Promise {\n let decSends = await this.stateProvider.getDecryptedSends();\n if (decSends != null) {\n return decSends;\n }\n\n decSends = [];\n const hasKey = await this.cryptoService.hasUserKey();\n if (!hasKey) {\n throw new Error(\"No user key found.\");\n }\n\n const promises: Promise[] = [];\n const sends = await this.getAll();\n sends.forEach((send) => {\n promises.push(send.decrypt().then((f) => decSends.push(f)));\n });\n\n await Promise.all(promises);\n decSends.sort(Utils.getSortFunction(this.i18nService, \"name\"));\n\n await this.stateProvider.setDecryptedSends(decSends);\n return decSends;\n }\n\n async upsert(send: SendData | SendData[]): Promise {\n let sends = await this.stateProvider.getEncryptedSends();\n if (sends == null) {\n sends = {};\n }\n if (send instanceof SendData) {\n const s = send as SendData;\n sends[s.id] = s;\n } else {\n (send as SendData[]).forEach((s) => {\n sends[s.id] = s;\n });\n }\n\n await this.replace(sends);\n }\n\n async clear(userId?: string): Promise {\n await this.stateProvider.setDecryptedSends(null);\n await this.stateProvider.setEncryptedSends(null);\n }\n\n async delete(id: string | string[]): Promise {\n const sends = await this.stateProvider.getEncryptedSends();\n if (sends == null) {\n return;\n }\n\n if (typeof id === \"string\") {\n if (sends[id] == null) {\n return;\n }\n delete sends[id];\n } else {\n (id as string[]).forEach((i) => {\n delete sends[i];\n });\n }\n\n await this.replace(sends);\n }\n\n async replace(sends: { [id: string]: SendData }): Promise {\n await this.stateProvider.setEncryptedSends(sends);\n }\n\n async getRotatedKeys(newUserKey: UserKey): Promise {\n if (newUserKey == null) {\n throw new Error(\"New user key is required for rotation.\");\n }\n\n const originalUserKey = await this.cryptoService.getUserKey();\n\n const req = await firstValueFrom(\n this.sends$.pipe(\n concatMap(async (sends) => this.toRotatedKeyRequestMap(sends, originalUserKey, newUserKey)),\n ),\n );\n // separate return for easier debugging\n return req;\n }\n\n private async toRotatedKeyRequestMap(\n sends: Send[],\n originalUserKey: UserKey,\n rotateUserKey: UserKey,\n ) {\n const requests = await Promise.all(\n sends.map(async (send) => {\n const sendKey = await this.encryptService.decryptToBytes(send.key, originalUserKey);\n send.key = await this.encryptService.encrypt(sendKey, rotateUserKey);\n return new SendWithIdRequest(send);\n }),\n );\n return requests;\n }\n\n private parseFile(send: Send, file: File, key: SymmetricCryptoKey): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsArrayBuffer(file);\n reader.onload = async (evt) => {\n try {\n const [name, data] = await this.encryptFileData(\n file.name,\n evt.target.result as ArrayBuffer,\n key,\n );\n send.file.fileName = name;\n resolve(data);\n } catch (e) {\n reject(e);\n }\n };\n reader.onerror = () => {\n reject(\"Error reading file.\");\n };\n });\n }\n\n private async encryptFileData(\n fileName: string,\n data: ArrayBuffer,\n key: SymmetricCryptoKey,\n ): Promise<[EncString, EncArrayBuffer]> {\n if (key == null) {\n key = await this.cryptoService.getUserKey();\n }\n const encFileName = await this.encryptService.encrypt(fileName, key);\n const encFileData = await this.encryptService.encryptToBytes(new Uint8Array(data), key);\n return [encFileName, encFileData];\n }\n\n private async decryptSends(sends: Send[]) {\n const decryptSendPromises = sends.map((s) => s.decrypt());\n const decryptedSends = await Promise.all(decryptSendPromises);\n\n decryptedSends.sort(Utils.getSortFunction(this.i18nService, \"name\"));\n return decryptedSends;\n }\n}\n","import { Observable, firstValueFrom } from \"rxjs\";\n\nimport { ActiveUserState, StateProvider } from \"../../../platform/state\";\nimport { SendData } from \"../models/data/send.data\";\nimport { SendView } from \"../models/view/send.view\";\n\nimport { SEND_USER_DECRYPTED, SEND_USER_ENCRYPTED } from \"./key-definitions\";\nimport { SendStateProvider as SendStateProviderAbstraction } from \"./send-state.provider.abstraction\";\n\n/** State provider for sends */\nexport class SendStateProvider implements SendStateProviderAbstraction {\n /** Observable for the encrypted sends for an active user */\n encryptedState$: Observable>;\n /** Observable with the decrypted sends for an active user */\n decryptedState$: Observable;\n\n private activeUserEncryptedState: ActiveUserState>;\n private activeUserDecryptedState: ActiveUserState;\n\n constructor(protected stateProvider: StateProvider) {\n this.activeUserEncryptedState = this.stateProvider.getActive(SEND_USER_ENCRYPTED);\n this.encryptedState$ = this.activeUserEncryptedState.state$;\n\n this.activeUserDecryptedState = this.stateProvider.getActive(SEND_USER_DECRYPTED);\n this.decryptedState$ = this.activeUserDecryptedState.state$;\n }\n\n /** Gets the encrypted sends from state for an active user */\n async getEncryptedSends(): Promise<{ [id: string]: SendData }> {\n return await firstValueFrom(this.encryptedState$);\n }\n\n /** Sets the encrypted send state for an active user */\n async setEncryptedSends(value: { [id: string]: SendData }): Promise {\n await this.activeUserEncryptedState.update(() => value);\n }\n\n /** Gets the decrypted sends from state for the active user */\n async getDecryptedSends(): Promise {\n return await firstValueFrom(this.decryptedState$);\n }\n\n /** Sets the decrypted send state for an active user */\n async setDecryptedSends(value: SendView[]): Promise {\n await this.activeUserDecryptedState.update(() => value);\n }\n}\n","import { ApiService } from \"../../../abstractions/api.service\";\nimport { ErrorResponse } from \"../../../models/response/error.response\";\nimport { ListResponse } from \"../../../models/response/list.response\";\nimport {\n FileUploadApiMethods,\n FileUploadService,\n} from \"../../../platform/abstractions/file-upload/file-upload.service\";\nimport { Utils } from \"../../../platform/misc/utils\";\nimport { EncArrayBuffer } from \"../../../platform/models/domain/enc-array-buffer\";\nimport { SendType } from \"../enums/send-type\";\nimport { SendData } from \"../models/data/send.data\";\nimport { Send } from \"../models/domain/send\";\nimport { SendAccessRequest } from \"../models/request/send-access.request\";\nimport { SendRequest } from \"../models/request/send.request\";\nimport { SendAccessResponse } from \"../models/response/send-access.response\";\nimport { SendFileDownloadDataResponse } from \"../models/response/send-file-download-data.response\";\nimport { SendFileUploadDataResponse } from \"../models/response/send-file-upload-data.response\";\nimport { SendResponse } from \"../models/response/send.response\";\nimport { SendAccessView } from \"../models/view/send-access.view\";\n\nimport { SendApiService as SendApiServiceAbstraction } from \"./send-api.service.abstraction\";\nimport { InternalSendService } from \"./send.service.abstraction\";\n\nexport class SendApiService implements SendApiServiceAbstraction {\n constructor(\n private apiService: ApiService,\n private fileUploadService: FileUploadService,\n private sendService: InternalSendService,\n ) {}\n\n async getSend(id: string): Promise {\n const r = await this.apiService.send(\"GET\", \"/sends/\" + id, null, true, true);\n return new SendResponse(r);\n }\n\n async postSendAccess(\n id: string,\n request: SendAccessRequest,\n apiUrl?: string,\n ): Promise {\n const addSendIdHeader = (headers: Headers) => {\n headers.set(\"Send-Id\", id);\n };\n const r = await this.apiService.send(\n \"POST\",\n \"/sends/access/\" + id,\n request,\n false,\n true,\n apiUrl,\n addSendIdHeader,\n );\n return new SendAccessResponse(r);\n }\n\n async getSendFileDownloadData(\n send: SendAccessView,\n request: SendAccessRequest,\n apiUrl?: string,\n ): Promise {\n const addSendIdHeader = (headers: Headers) => {\n headers.set(\"Send-Id\", send.id);\n };\n const r = await this.apiService.send(\n \"POST\",\n \"/sends/\" + send.id + \"/access/file/\" + send.file.id,\n request,\n false,\n true,\n apiUrl,\n addSendIdHeader,\n );\n return new SendFileDownloadDataResponse(r);\n }\n\n async getSends(): Promise> {\n const r = await this.apiService.send(\"GET\", \"/sends\", null, true, true);\n return new ListResponse(r, SendResponse);\n }\n\n async postSend(request: SendRequest): Promise {\n const r = await this.apiService.send(\"POST\", \"/sends\", request, true, true);\n return new SendResponse(r);\n }\n\n async postFileTypeSend(request: SendRequest): Promise {\n const r = await this.apiService.send(\"POST\", \"/sends/file/v2\", request, true, true);\n return new SendFileUploadDataResponse(r);\n }\n\n async renewSendFileUploadUrl(\n sendId: string,\n fileId: string,\n ): Promise {\n const r = await this.apiService.send(\n \"GET\",\n \"/sends/\" + sendId + \"/file/\" + fileId,\n null,\n true,\n true,\n );\n return new SendFileUploadDataResponse(r);\n }\n\n postSendFile(sendId: string, fileId: string, data: FormData): Promise {\n return this.apiService.send(\"POST\", \"/sends/\" + sendId + \"/file/\" + fileId, data, true, false);\n }\n\n /**\n * @deprecated Mar 25 2021: This method has been deprecated in favor of direct uploads.\n * This method still exists for backward compatibility with old server versions.\n */\n async postSendFileLegacy(data: FormData): Promise {\n const r = await this.apiService.send(\"POST\", \"/sends/file\", data, true, true);\n return new SendResponse(r);\n }\n\n async putSend(id: string, request: SendRequest): Promise {\n const r = await this.apiService.send(\"PUT\", \"/sends/\" + id, request, true, true);\n return new SendResponse(r);\n }\n\n async putSendRemovePassword(id: string): Promise {\n const r = await this.apiService.send(\n \"PUT\",\n \"/sends/\" + id + \"/remove-password\",\n null,\n true,\n true,\n );\n return new SendResponse(r);\n }\n\n deleteSend(id: string): Promise {\n return this.apiService.send(\"DELETE\", \"/sends/\" + id, null, true, false);\n }\n\n async save(sendData: [Send, EncArrayBuffer]): Promise {\n const response = await this.upload(sendData);\n\n const data = new SendData(response);\n await this.sendService.upsert(data);\n }\n\n async delete(id: string): Promise {\n await this.deleteSend(id);\n await this.sendService.delete(id);\n }\n\n async removePassword(id: string): Promise {\n const response = await this.putSendRemovePassword(id);\n const data = new SendData(response);\n await this.sendService.upsert(data);\n }\n\n // Send File Upload methods\n\n private async upload(sendData: [Send, EncArrayBuffer]): Promise {\n const request = new SendRequest(sendData[0], sendData[1]?.buffer.byteLength);\n let response: SendResponse;\n if (sendData[0].id == null) {\n if (sendData[0].type === SendType.Text) {\n response = await this.postSend(request);\n } else {\n try {\n const uploadDataResponse = await this.postFileTypeSend(request);\n response = uploadDataResponse.sendResponse;\n await this.fileUploadService.upload(\n uploadDataResponse,\n sendData[0].file.fileName,\n sendData[1],\n this.generateMethods(uploadDataResponse, response),\n );\n } catch (e) {\n if (e instanceof ErrorResponse && (e as ErrorResponse).statusCode === 404) {\n response = await this.legacyServerSendFileUpload(sendData, request);\n } else if (e instanceof ErrorResponse) {\n throw new Error((e as ErrorResponse).getSingleMessage());\n } else {\n throw e;\n }\n }\n }\n sendData[0].id = response.id;\n sendData[0].accessId = response.accessId;\n } else {\n response = await this.putSend(sendData[0].id, request);\n }\n return response;\n }\n\n private generateMethods(\n uploadData: SendFileUploadDataResponse,\n response: SendResponse,\n ): FileUploadApiMethods {\n return {\n postDirect: this.generatePostDirectCallback(response),\n renewFileUploadUrl: this.generateRenewFileUploadUrlCallback(response.id, response.file.id),\n rollback: this.generateRollbackCallback(response.id),\n };\n }\n\n private generatePostDirectCallback(sendResponse: SendResponse) {\n return (data: FormData) => {\n return this.postSendFile(sendResponse.id, sendResponse.file.id, data);\n };\n }\n\n private generateRenewFileUploadUrlCallback(sendId: string, fileId: string) {\n return async () => {\n const renewResponse = await this.renewSendFileUploadUrl(sendId, fileId);\n return renewResponse?.url;\n };\n }\n\n private generateRollbackCallback(sendId: string) {\n return () => {\n return this.deleteSend(sendId);\n };\n }\n\n /**\n * @deprecated Mar 25 2021: This method has been deprecated in favor of direct uploads.\n * This method still exists for backward compatibility with old server versions.\n */\n async legacyServerSendFileUpload(\n sendData: [Send, EncArrayBuffer],\n request: SendRequest,\n ): Promise {\n const fd = new FormData();\n try {\n const blob = new Blob([sendData[1].buffer], { type: \"application/octet-stream\" });\n fd.append(\"model\", JSON.stringify(request));\n fd.append(\"data\", blob, sendData[0].file.fileName.encryptedString);\n } catch (e) {\n if (Utils.isNode && !Utils.isBrowser) {\n fd.append(\"model\", JSON.stringify(request));\n fd.append(\n \"data\",\n Buffer.from(sendData[1].buffer) as any,\n {\n filepath: sendData[0].file.fileName.encryptedString,\n contentType: \"application/octet-stream\",\n } as any,\n );\n } else {\n throw e;\n }\n }\n return await this.postSendFileLegacy(fd);\n }\n}\n","import { Subscription } from \"rxjs\";\n\nimport { BroadcasterService, MessageBase } from \"../abstractions/broadcaster.service\";\nimport { MessageListener } from \"../messaging\";\n\n/**\n * Temporary implementation that just delegates to the message sender and message listener\n * and manages their subscriptions.\n */\nexport class DefaultBroadcasterService implements BroadcasterService {\n subscriptions = new Map();\n\n constructor(private readonly messageListener: MessageListener) {}\n\n subscribe(id: string, messageCallback: (message: MessageBase) => void) {\n this.subscriptions.set(\n id,\n this.messageListener.allMessages$.subscribe((message) => {\n messageCallback(message);\n }),\n );\n }\n\n unsubscribe(id: string) {\n const subscription = this.subscriptions.get(id);\n subscription?.unsubscribe();\n this.subscriptions.delete(id);\n }\n}\n","import {\n EMPTY,\n Observable,\n catchError,\n combineLatest,\n defer,\n distinctUntilChanged,\n firstValueFrom,\n from,\n map,\n shareReplay,\n switchMap,\n tap,\n} from \"rxjs\";\n\nimport {\n PinServiceAbstraction,\n UserDecryptionOptionsServiceAbstraction,\n} from \"@bitwarden/auth/common\";\n\nimport { VaultTimeoutSettingsService as VaultTimeoutSettingsServiceAbstraction } from \"../../abstractions/vault-timeout/vault-timeout-settings.service\";\nimport { PolicyService } from \"../../admin-console/abstractions/policy/policy.service.abstraction\";\nimport { PolicyType } from \"../../admin-console/enums\";\nimport { Policy } from \"../../admin-console/models/domain/policy\";\nimport { AccountService } from \"../../auth/abstractions/account.service\";\nimport { TokenService } from \"../../auth/abstractions/token.service\";\nimport { VaultTimeoutAction } from \"../../enums/vault-timeout-action.enum\";\nimport { CryptoService } from \"../../platform/abstractions/crypto.service\";\nimport { LogService } from \"../../platform/abstractions/log.service\";\nimport { BiometricStateService } from \"../../platform/biometrics/biometric-state.service\";\nimport { StateProvider } from \"../../platform/state\";\nimport { UserId } from \"../../types/guid\";\nimport { VaultTimeout, VaultTimeoutStringType } from \"../../types/vault-timeout.type\";\n\nimport { VAULT_TIMEOUT, VAULT_TIMEOUT_ACTION } from \"./vault-timeout-settings.state\";\n\nexport class VaultTimeoutSettingsService implements VaultTimeoutSettingsServiceAbstraction {\n constructor(\n private accountService: AccountService,\n private pinService: PinServiceAbstraction,\n private userDecryptionOptionsService: UserDecryptionOptionsServiceAbstraction,\n private cryptoService: CryptoService,\n private tokenService: TokenService,\n private policyService: PolicyService,\n private biometricStateService: BiometricStateService,\n private stateProvider: StateProvider,\n private logService: LogService,\n private defaultVaultTimeout: VaultTimeout,\n ) {}\n\n async setVaultTimeoutOptions(\n userId: UserId,\n timeout: VaultTimeout,\n action: VaultTimeoutAction,\n ): Promise {\n if (!userId) {\n throw new Error(\"User id required. Cannot set vault timeout settings.\");\n }\n\n if (timeout == null) {\n throw new Error(\"Vault Timeout cannot be null.\");\n }\n\n if (action == null) {\n throw new Error(\"Vault Timeout Action cannot be null.\");\n }\n\n // We swap these tokens from being on disk for lock actions, and in memory for logout actions\n // Get them here to set them to their new location after changing the timeout action and clearing if needed\n const accessToken = await this.tokenService.getAccessToken();\n const refreshToken = await this.tokenService.getRefreshToken();\n const clientId = await this.tokenService.getClientId();\n const clientSecret = await this.tokenService.getClientSecret();\n\n await this.setVaultTimeout(userId, timeout);\n\n if (timeout != VaultTimeoutStringType.Never && action === VaultTimeoutAction.LogOut) {\n // if we have a vault timeout and the action is log out, reset tokens\n // as the tokens were stored on disk and now should be stored in memory\n await this.tokenService.clearTokens();\n }\n\n await this.setVaultTimeoutAction(userId, action);\n\n await this.tokenService.setTokens(accessToken, action, timeout, refreshToken, [\n clientId,\n clientSecret,\n ]);\n\n await this.cryptoService.refreshAdditionalKeys();\n }\n\n availableVaultTimeoutActions$(userId?: string) {\n return defer(() => this.getAvailableVaultTimeoutActions(userId));\n }\n\n async isBiometricLockSet(userId?: string): Promise {\n const biometricUnlockPromise =\n userId == null\n ? firstValueFrom(this.biometricStateService.biometricUnlockEnabled$)\n : this.biometricStateService.getBiometricUnlockEnabled(userId as UserId);\n return await biometricUnlockPromise;\n }\n\n private async setVaultTimeout(userId: UserId, timeout: VaultTimeout): Promise {\n if (!userId) {\n throw new Error(\"User id required. Cannot set vault timeout.\");\n }\n\n if (timeout == null) {\n throw new Error(\"Vault Timeout cannot be null.\");\n }\n\n await this.stateProvider.setUserState(VAULT_TIMEOUT, timeout, userId);\n }\n\n getVaultTimeoutByUserId$(userId: UserId): Observable {\n if (!userId) {\n throw new Error(\"User id required. Cannot get vault timeout.\");\n }\n\n return combineLatest([\n this.stateProvider.getUserState$(VAULT_TIMEOUT, userId),\n this.getMaxVaultTimeoutPolicyByUserId$(userId),\n ]).pipe(\n switchMap(([currentVaultTimeout, maxVaultTimeoutPolicy]) => {\n return from(this.determineVaultTimeout(currentVaultTimeout, maxVaultTimeoutPolicy)).pipe(\n tap((vaultTimeout: VaultTimeout) => {\n // As a side effect, set the new value determined by determineVaultTimeout into state if it's different from the current\n if (vaultTimeout !== currentVaultTimeout) {\n return this.stateProvider.setUserState(VAULT_TIMEOUT, vaultTimeout, userId);\n }\n }),\n catchError((error: unknown) => {\n // Protect outer observable from canceling on error by catching and returning EMPTY\n this.logService.error(`Error getting vault timeout: ${error}`);\n return EMPTY;\n }),\n );\n }),\n distinctUntilChanged(), // Avoid having the set side effect trigger a new emission of the same action\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n }\n\n private async determineVaultTimeout(\n currentVaultTimeout: VaultTimeout | null,\n maxVaultTimeoutPolicy: Policy | null,\n ): Promise {\n // if current vault timeout is null, apply the client specific default\n currentVaultTimeout = currentVaultTimeout ?? this.defaultVaultTimeout;\n\n // If no policy applies, return the current vault timeout\n if (!maxVaultTimeoutPolicy) {\n return currentVaultTimeout;\n }\n\n // User is subject to a max vault timeout policy\n const maxVaultTimeoutPolicyData = maxVaultTimeoutPolicy.data;\n\n // If the current vault timeout is not numeric, change it to the policy compliant value\n if (typeof currentVaultTimeout === \"string\") {\n return maxVaultTimeoutPolicyData.minutes;\n }\n\n // For numeric vault timeouts, ensure they are smaller than maximum allowed value according to policy\n const policyCompliantTimeout = Math.min(currentVaultTimeout, maxVaultTimeoutPolicyData.minutes);\n\n return policyCompliantTimeout;\n }\n\n private async setVaultTimeoutAction(userId: UserId, action: VaultTimeoutAction): Promise {\n if (!userId) {\n throw new Error(\"User id required. Cannot set vault timeout action.\");\n }\n\n if (!action) {\n throw new Error(\"Vault Timeout Action cannot be null\");\n }\n\n await this.stateProvider.setUserState(VAULT_TIMEOUT_ACTION, action, userId);\n }\n\n getVaultTimeoutActionByUserId$(userId: UserId): Observable {\n if (!userId) {\n throw new Error(\"User id required. Cannot get vault timeout action.\");\n }\n\n return combineLatest([\n this.stateProvider.getUserState$(VAULT_TIMEOUT_ACTION, userId),\n this.getMaxVaultTimeoutPolicyByUserId$(userId),\n ]).pipe(\n switchMap(([currentVaultTimeoutAction, maxVaultTimeoutPolicy]) => {\n return from(\n this.determineVaultTimeoutAction(\n userId,\n currentVaultTimeoutAction,\n maxVaultTimeoutPolicy,\n ),\n ).pipe(\n tap((vaultTimeoutAction: VaultTimeoutAction) => {\n // As a side effect, set the new value determined by determineVaultTimeout into state if it's different from the current\n // We want to avoid having a null timeout action always so we set it to the default if it is null\n // and if the user becomes subject to a policy that requires a specific action, we set it to that\n if (vaultTimeoutAction !== currentVaultTimeoutAction) {\n return this.stateProvider.setUserState(\n VAULT_TIMEOUT_ACTION,\n vaultTimeoutAction,\n userId,\n );\n }\n }),\n catchError((error: unknown) => {\n // Protect outer observable from canceling on error by catching and returning EMPTY\n this.logService.error(`Error getting vault timeout: ${error}`);\n return EMPTY;\n }),\n );\n }),\n distinctUntilChanged(), // Avoid having the set side effect trigger a new emission of the same action\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n }\n\n private async determineVaultTimeoutAction(\n userId: string,\n currentVaultTimeoutAction: VaultTimeoutAction | null,\n maxVaultTimeoutPolicy: Policy | null,\n ): Promise {\n const availableVaultTimeoutActions = await this.getAvailableVaultTimeoutActions(userId);\n if (availableVaultTimeoutActions.length === 1) {\n return availableVaultTimeoutActions[0];\n }\n\n if (\n maxVaultTimeoutPolicy?.data?.action &&\n availableVaultTimeoutActions.includes(maxVaultTimeoutPolicy.data.action)\n ) {\n // return policy defined vault timeout action\n return maxVaultTimeoutPolicy.data.action;\n }\n\n // No policy applies from here on\n // If the current vault timeout is null and lock is an option, set it as the default\n if (\n currentVaultTimeoutAction == null &&\n availableVaultTimeoutActions.includes(VaultTimeoutAction.Lock)\n ) {\n return VaultTimeoutAction.Lock;\n }\n\n return currentVaultTimeoutAction;\n }\n\n private getMaxVaultTimeoutPolicyByUserId$(userId: UserId): Observable {\n if (!userId) {\n throw new Error(\"User id required. Cannot get max vault timeout policy.\");\n }\n\n return this.policyService\n .getAll$(PolicyType.MaximumVaultTimeout, userId)\n .pipe(map((policies) => policies[0] ?? null));\n }\n\n private async getAvailableVaultTimeoutActions(userId?: string): Promise {\n userId ??= (await firstValueFrom(this.accountService.activeAccount$))?.id;\n\n const availableActions = [VaultTimeoutAction.LogOut];\n\n const canLock =\n (await this.userHasMasterPassword(userId)) ||\n (await this.pinService.isPinSet(userId as UserId)) ||\n (await this.isBiometricLockSet(userId));\n\n if (canLock) {\n availableActions.push(VaultTimeoutAction.Lock);\n }\n\n return availableActions;\n }\n\n async clear(userId?: string): Promise {\n await this.cryptoService.clearPinKeys(userId);\n }\n\n private async userHasMasterPassword(userId: string): Promise {\n if (userId) {\n const decryptionOptions = await firstValueFrom(\n this.userDecryptionOptionsService.userDecryptionOptionsById$(userId),\n );\n\n return !!decryptionOptions?.hasMasterPassword;\n } else {\n return await firstValueFrom(this.userDecryptionOptionsService.hasMasterPassword$);\n }\n }\n}\n","import { NotificationsService as NotificationsServiceAbstraction } from \"../../abstractions/notifications.service\";\nimport { LogService } from \"../abstractions/log.service\";\n\nexport class NoopNotificationsService implements NotificationsServiceAbstraction {\n constructor(private logService: LogService) {}\n\n init(): Promise {\n this.logService.info(\n \"Initializing no-op notification service, no push notifications will be received\",\n );\n return Promise.resolve();\n }\n\n updateConnection(sync?: boolean): Promise {\n this.logService.info(\"Updating notification service connection\");\n return Promise.resolve();\n }\n\n reconnectFromActivity(): Promise {\n this.logService.info(\"Reconnecting notification service from activity\");\n return Promise.resolve();\n }\n\n disconnectFromInactivity(): Promise {\n this.logService.info(\"Disconnecting notification service from inactivity\");\n return Promise.resolve();\n }\n}\n","import * as signalR from \"@microsoft/signalr\";\nimport * as signalRMsgPack from \"@microsoft/signalr-protocol-msgpack\";\nimport { firstValueFrom } from \"rxjs\";\n\nimport { LogoutReason } from \"@bitwarden/auth/common\";\n\nimport { AuthRequestServiceAbstraction } from \"../../../auth/src/common/abstractions\";\nimport { ApiService } from \"../abstractions/api.service\";\nimport { NotificationsService as NotificationsServiceAbstraction } from \"../abstractions/notifications.service\";\nimport { AuthService } from \"../auth/abstractions/auth.service\";\nimport { AuthenticationStatus } from \"../auth/enums/authentication-status\";\nimport { NotificationType } from \"../enums\";\nimport {\n NotificationResponse,\n SyncCipherNotification,\n SyncFolderNotification,\n SyncSendNotification,\n} from \"../models/response/notification.response\";\nimport { AppIdService } from \"../platform/abstractions/app-id.service\";\nimport { EnvironmentService } from \"../platform/abstractions/environment.service\";\nimport { LogService } from \"../platform/abstractions/log.service\";\nimport { MessagingService } from \"../platform/abstractions/messaging.service\";\nimport { StateService } from \"../platform/abstractions/state.service\";\nimport { UserId } from \"../types/guid\";\nimport { SyncService } from \"../vault/abstractions/sync/sync.service.abstraction\";\n\nexport class NotificationsService implements NotificationsServiceAbstraction {\n private signalrConnection: signalR.HubConnection;\n private url: string;\n private connected = false;\n private inited = false;\n private inactive = false;\n private reconnectTimer: any = null;\n\n constructor(\n private logService: LogService,\n private syncService: SyncService,\n private appIdService: AppIdService,\n private apiService: ApiService,\n private environmentService: EnvironmentService,\n private logoutCallback: (logoutReason: LogoutReason) => Promise,\n private stateService: StateService,\n private authService: AuthService,\n private authRequestService: AuthRequestServiceAbstraction,\n private messagingService: MessagingService,\n ) {\n this.environmentService.environment$.subscribe(() => {\n if (!this.inited) {\n return;\n }\n\n // FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.init();\n });\n }\n\n async init(): Promise {\n this.inited = false;\n this.url = (await firstValueFrom(this.environmentService.environment$)).getNotificationsUrl();\n\n // Set notifications server URL to `https://-` to effectively disable communication\n // with the notifications server from the client app\n if (this.url === \"https://-\") {\n return;\n }\n\n if (this.signalrConnection != null) {\n this.signalrConnection.off(\"ReceiveMessage\");\n this.signalrConnection.off(\"Heartbeat\");\n await this.signalrConnection.stop();\n this.connected = false;\n this.signalrConnection = null;\n }\n\n this.signalrConnection = new signalR.HubConnectionBuilder()\n .withUrl(this.url + \"/hub\", {\n accessTokenFactory: () => this.apiService.getActiveBearerToken(),\n skipNegotiation: true,\n transport: signalR.HttpTransportType.WebSockets,\n })\n .withHubProtocol(new signalRMsgPack.MessagePackHubProtocol() as signalR.IHubProtocol)\n // .configureLogging(signalR.LogLevel.Trace)\n .build();\n\n this.signalrConnection.on(\"ReceiveMessage\", (data: any) =>\n this.processNotification(new NotificationResponse(data)),\n );\n // eslint-disable-next-line\n this.signalrConnection.on(\"Heartbeat\", (data: any) => {\n /*console.log('Heartbeat!');*/\n });\n this.signalrConnection.onclose(() => {\n this.connected = false;\n // FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.reconnect(true);\n });\n this.inited = true;\n if (await this.isAuthedAndUnlocked()) {\n await this.reconnect(false);\n }\n }\n\n async updateConnection(sync = false): Promise {\n if (!this.inited) {\n return;\n }\n try {\n if (await this.isAuthedAndUnlocked()) {\n await this.reconnect(sync);\n } else {\n await this.signalrConnection.stop();\n }\n } catch (e) {\n this.logService.error(e.toString());\n }\n }\n\n async reconnectFromActivity(): Promise {\n this.inactive = false;\n if (this.inited && !this.connected) {\n await this.reconnect(true);\n }\n }\n\n async disconnectFromInactivity(): Promise {\n this.inactive = true;\n if (this.inited && this.connected) {\n await this.signalrConnection.stop();\n }\n }\n\n private async processNotification(notification: NotificationResponse) {\n const appId = await this.appIdService.getAppId();\n if (notification == null || notification.contextId === appId) {\n return;\n }\n\n const isAuthenticated = await this.stateService.getIsAuthenticated();\n const payloadUserId = notification.payload.userId || notification.payload.UserId;\n const myUserId = await this.stateService.getUserId();\n if (isAuthenticated && payloadUserId != null && payloadUserId !== myUserId) {\n return;\n }\n\n switch (notification.type) {\n case NotificationType.SyncCipherCreate:\n case NotificationType.SyncCipherUpdate:\n await this.syncService.syncUpsertCipher(\n notification.payload as SyncCipherNotification,\n notification.type === NotificationType.SyncCipherUpdate,\n );\n break;\n case NotificationType.SyncCipherDelete:\n case NotificationType.SyncLoginDelete:\n await this.syncService.syncDeleteCipher(notification.payload as SyncCipherNotification);\n break;\n case NotificationType.SyncFolderCreate:\n case NotificationType.SyncFolderUpdate:\n await this.syncService.syncUpsertFolder(\n notification.payload as SyncFolderNotification,\n notification.type === NotificationType.SyncFolderUpdate,\n );\n break;\n case NotificationType.SyncFolderDelete:\n await this.syncService.syncDeleteFolder(notification.payload as SyncFolderNotification);\n break;\n case NotificationType.SyncVault:\n case NotificationType.SyncCiphers:\n case NotificationType.SyncSettings:\n if (isAuthenticated) {\n await this.syncService.fullSync(false);\n }\n break;\n case NotificationType.SyncOrganizations:\n if (isAuthenticated) {\n // An organization update may not have bumped the user's account revision date, so force a sync\n await this.syncService.fullSync(true);\n }\n break;\n case NotificationType.SyncOrgKeys:\n if (isAuthenticated) {\n await this.syncService.fullSync(true);\n // Stop so a reconnect can be made\n await this.signalrConnection.stop();\n }\n break;\n case NotificationType.LogOut:\n if (isAuthenticated) {\n // FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.logoutCallback(\"logoutNotification\");\n }\n break;\n case NotificationType.SyncSendCreate:\n case NotificationType.SyncSendUpdate:\n await this.syncService.syncUpsertSend(\n notification.payload as SyncSendNotification,\n notification.type === NotificationType.SyncSendUpdate,\n );\n break;\n case NotificationType.SyncSendDelete:\n await this.syncService.syncDeleteSend(notification.payload as SyncSendNotification);\n break;\n case NotificationType.AuthRequest:\n {\n const userId = await this.stateService.getUserId();\n if (await this.authRequestService.getAcceptAuthRequests(userId as UserId)) {\n this.messagingService.send(\"openLoginApproval\", {\n notificationId: notification.payload.id,\n });\n }\n }\n break;\n default:\n break;\n }\n }\n\n private async reconnect(sync: boolean) {\n if (this.reconnectTimer != null) {\n clearTimeout(this.reconnectTimer);\n this.reconnectTimer = null;\n }\n if (this.connected || !this.inited || this.inactive) {\n return;\n }\n const authedAndUnlocked = await this.isAuthedAndUnlocked();\n if (!authedAndUnlocked) {\n return;\n }\n\n try {\n await this.signalrConnection.start();\n this.connected = true;\n if (sync) {\n await this.syncService.fullSync(false);\n }\n } catch (e) {\n this.logService.error(e);\n }\n\n if (!this.connected) {\n this.reconnectTimer = setTimeout(() => this.reconnect(sync), this.random(120000, 300000));\n }\n }\n\n private async isAuthedAndUnlocked() {\n const authStatus = await this.authService.getAuthStatus();\n return authStatus >= AuthenticationStatus.Unlocked;\n }\n\n private random(min: number, max: number) {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n }\n}\n","import * as argon2 from \"argon2-browser\";\nimport * as forge from \"node-forge\";\n\nimport { Utils } from \"../../platform/misc/utils\";\nimport { CsprngArray } from \"../../types/csprng\";\nimport { CryptoFunctionService } from \"../abstractions/crypto-function.service\";\nimport { DecryptParameters } from \"../models/domain/decrypt-parameters\";\nimport { SymmetricCryptoKey } from \"../models/domain/symmetric-crypto-key\";\n\nexport class WebCryptoFunctionService implements CryptoFunctionService {\n private crypto: Crypto;\n private subtle: SubtleCrypto;\n private wasmSupported: boolean;\n\n constructor(globalContext: Window | typeof global) {\n this.crypto = typeof globalContext.crypto !== \"undefined\" ? globalContext.crypto : null;\n this.subtle =\n !!this.crypto && typeof this.crypto.subtle !== \"undefined\" ? this.crypto.subtle : null;\n this.wasmSupported = this.checkIfWasmSupported();\n }\n\n async pbkdf2(\n password: string | Uint8Array,\n salt: string | Uint8Array,\n algorithm: \"sha256\" | \"sha512\",\n iterations: number,\n ): Promise {\n const wcLen = algorithm === \"sha256\" ? 256 : 512;\n const passwordBuf = this.toBuf(password);\n const saltBuf = this.toBuf(salt);\n\n const pbkdf2Params: Pbkdf2Params = {\n name: \"PBKDF2\",\n salt: saltBuf,\n iterations: iterations,\n hash: { name: this.toWebCryptoAlgorithm(algorithm) },\n };\n\n const impKey = await this.subtle.importKey(\n \"raw\",\n passwordBuf,\n { name: \"PBKDF2\" } as any,\n false,\n [\"deriveBits\"],\n );\n const buffer = await this.subtle.deriveBits(pbkdf2Params as any, impKey, wcLen);\n return new Uint8Array(buffer);\n }\n\n async argon2(\n password: string | Uint8Array,\n salt: string | Uint8Array,\n iterations: number,\n memory: number,\n parallelism: number,\n ): Promise {\n if (!this.wasmSupported) {\n throw \"Webassembly support is required for the Argon2 KDF feature.\";\n }\n\n const passwordArr = new Uint8Array(this.toBuf(password));\n const saltArr = new Uint8Array(this.toBuf(salt));\n\n const result = await argon2.hash({\n pass: passwordArr,\n salt: saltArr,\n time: iterations,\n mem: memory,\n parallelism: parallelism,\n hashLen: 32,\n type: argon2.ArgonType.Argon2id,\n });\n argon2.unloadRuntime();\n return result.hash;\n }\n\n async hkdf(\n ikm: Uint8Array,\n salt: string | Uint8Array,\n info: string | Uint8Array,\n outputByteSize: number,\n algorithm: \"sha256\" | \"sha512\",\n ): Promise {\n const saltBuf = this.toBuf(salt);\n const infoBuf = this.toBuf(info);\n\n const hkdfParams: HkdfParams = {\n name: \"HKDF\",\n salt: saltBuf,\n info: infoBuf,\n hash: { name: this.toWebCryptoAlgorithm(algorithm) },\n };\n\n const impKey = await this.subtle.importKey(\"raw\", ikm, { name: \"HKDF\" } as any, false, [\n \"deriveBits\",\n ]);\n const buffer = await this.subtle.deriveBits(hkdfParams as any, impKey, outputByteSize * 8);\n return new Uint8Array(buffer);\n }\n\n // ref: https://tools.ietf.org/html/rfc5869\n async hkdfExpand(\n prk: Uint8Array,\n info: string | Uint8Array,\n outputByteSize: number,\n algorithm: \"sha256\" | \"sha512\",\n ): Promise {\n const hashLen = algorithm === \"sha256\" ? 32 : 64;\n if (outputByteSize > 255 * hashLen) {\n throw new Error(\"outputByteSize is too large.\");\n }\n const prkArr = new Uint8Array(prk);\n if (prkArr.length < hashLen) {\n throw new Error(\"prk is too small.\");\n }\n const infoBuf = this.toBuf(info);\n const infoArr = new Uint8Array(infoBuf);\n let runningOkmLength = 0;\n let previousT = new Uint8Array(0);\n const n = Math.ceil(outputByteSize / hashLen);\n const okm = new Uint8Array(n * hashLen);\n for (let i = 0; i < n; i++) {\n const t = new Uint8Array(previousT.length + infoArr.length + 1);\n t.set(previousT);\n t.set(infoArr, previousT.length);\n t.set([i + 1], t.length - 1);\n previousT = new Uint8Array(await this.hmac(t, prk, algorithm));\n okm.set(previousT, runningOkmLength);\n runningOkmLength += previousT.length;\n if (runningOkmLength >= outputByteSize) {\n break;\n }\n }\n return okm.slice(0, outputByteSize);\n }\n\n async hash(\n value: string | Uint8Array,\n algorithm: \"sha1\" | \"sha256\" | \"sha512\" | \"md5\",\n ): Promise {\n if (algorithm === \"md5\") {\n const md = forge.md.md5.create();\n const valueBytes = this.toByteString(value);\n md.update(valueBytes, \"raw\");\n return Utils.fromByteStringToArray(md.digest().data);\n }\n\n const valueBuf = this.toBuf(value);\n const buffer = await this.subtle.digest(\n { name: this.toWebCryptoAlgorithm(algorithm) },\n valueBuf,\n );\n return new Uint8Array(buffer);\n }\n\n async hmac(\n value: Uint8Array,\n key: Uint8Array,\n algorithm: \"sha1\" | \"sha256\" | \"sha512\",\n ): Promise {\n const signingAlgorithm = {\n name: \"HMAC\",\n hash: { name: this.toWebCryptoAlgorithm(algorithm) },\n };\n\n const impKey = await this.subtle.importKey(\"raw\", key, signingAlgorithm, false, [\"sign\"]);\n const buffer = await this.subtle.sign(signingAlgorithm, impKey, value);\n return new Uint8Array(buffer);\n }\n\n // Safely compare two values in a way that protects against timing attacks (Double HMAC Verification).\n // ref: https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2011/february/double-hmac-verification/\n // ref: https://paragonie.com/blog/2015/11/preventing-timing-attacks-on-string-comparison-with-double-hmac-strategy\n async compare(a: Uint8Array, b: Uint8Array): Promise {\n const macKey = await this.randomBytes(32);\n const signingAlgorithm = {\n name: \"HMAC\",\n hash: { name: \"SHA-256\" },\n };\n const impKey = await this.subtle.importKey(\"raw\", macKey, signingAlgorithm, false, [\"sign\"]);\n const mac1 = await this.subtle.sign(signingAlgorithm, impKey, a);\n const mac2 = await this.subtle.sign(signingAlgorithm, impKey, b);\n\n if (mac1.byteLength !== mac2.byteLength) {\n return false;\n }\n\n const arr1 = new Uint8Array(mac1);\n const arr2 = new Uint8Array(mac2);\n for (let i = 0; i < arr2.length; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n hmacFast(value: string, key: string, algorithm: \"sha1\" | \"sha256\" | \"sha512\"): Promise {\n const hmac = forge.hmac.create();\n hmac.start(algorithm, key);\n hmac.update(value);\n const bytes = hmac.digest().getBytes();\n return Promise.resolve(bytes);\n }\n\n async compareFast(a: string, b: string): Promise {\n const rand = await this.randomBytes(32);\n const bytes = new Uint32Array(rand);\n const buffer = forge.util.createBuffer();\n for (let i = 0; i < bytes.length; i++) {\n buffer.putInt32(bytes[i]);\n }\n const macKey = buffer.getBytes();\n\n const hmac = forge.hmac.create();\n hmac.start(\"sha256\", macKey);\n hmac.update(a);\n const mac1 = hmac.digest().getBytes();\n\n hmac.start(null, null);\n hmac.update(b);\n const mac2 = hmac.digest().getBytes();\n\n const equals = mac1 === mac2;\n return equals;\n }\n\n async aesEncrypt(data: Uint8Array, iv: Uint8Array, key: Uint8Array): Promise {\n const impKey = await this.subtle.importKey(\"raw\", key, { name: \"AES-CBC\" } as any, false, [\n \"encrypt\",\n ]);\n const buffer = await this.subtle.encrypt({ name: \"AES-CBC\", iv: iv }, impKey, data);\n return new Uint8Array(buffer);\n }\n\n aesDecryptFastParameters(\n data: string,\n iv: string,\n mac: string,\n key: SymmetricCryptoKey,\n ): DecryptParameters {\n const p = new DecryptParameters();\n if (key.meta != null) {\n p.encKey = key.meta.encKeyByteString;\n p.macKey = key.meta.macKeyByteString;\n }\n\n if (p.encKey == null) {\n p.encKey = forge.util.decode64(key.encKeyB64);\n }\n p.data = forge.util.decode64(data);\n p.iv = forge.util.decode64(iv);\n p.macData = p.iv + p.data;\n if (p.macKey == null && key.macKeyB64 != null) {\n p.macKey = forge.util.decode64(key.macKeyB64);\n }\n if (mac != null) {\n p.mac = forge.util.decode64(mac);\n }\n\n // cache byte string keys for later\n if (key.meta == null) {\n key.meta = {};\n }\n if (key.meta.encKeyByteString == null) {\n key.meta.encKeyByteString = p.encKey;\n }\n if (p.macKey != null && key.meta.macKeyByteString == null) {\n key.meta.macKeyByteString = p.macKey;\n }\n\n return p;\n }\n\n aesDecryptFast(parameters: DecryptParameters, mode: \"cbc\" | \"ecb\"): Promise {\n const decipher = (forge as any).cipher.createDecipher(\n this.toWebCryptoAesMode(mode),\n parameters.encKey,\n );\n const options = {} as any;\n if (mode === \"cbc\") {\n options.iv = parameters.iv;\n }\n const dataBuffer = (forge as any).util.createBuffer(parameters.data);\n decipher.start(options);\n decipher.update(dataBuffer);\n decipher.finish();\n const val = decipher.output.toString();\n return Promise.resolve(val);\n }\n\n async aesDecrypt(\n data: Uint8Array,\n iv: Uint8Array,\n key: Uint8Array,\n mode: \"cbc\" | \"ecb\",\n ): Promise {\n if (mode === \"ecb\") {\n // Web crypto does not support AES-ECB mode, so we need to do this in forge.\n const params = new DecryptParameters();\n params.data = this.toByteString(data);\n params.encKey = this.toByteString(key);\n const result = await this.aesDecryptFast(params, \"ecb\");\n return Utils.fromByteStringToArray(result);\n }\n const impKey = await this.subtle.importKey(\"raw\", key, { name: \"AES-CBC\" } as any, false, [\n \"decrypt\",\n ]);\n const buffer = await this.subtle.decrypt({ name: \"AES-CBC\", iv: iv }, impKey, data);\n return new Uint8Array(buffer);\n }\n\n async rsaEncrypt(\n data: Uint8Array,\n publicKey: Uint8Array,\n algorithm: \"sha1\" | \"sha256\",\n ): Promise {\n // Note: Edge browser requires that we specify name and hash for both key import and decrypt.\n // We cannot use the proper types here.\n const rsaParams = {\n name: \"RSA-OAEP\",\n hash: { name: this.toWebCryptoAlgorithm(algorithm) },\n };\n const impKey = await this.subtle.importKey(\"spki\", publicKey, rsaParams, false, [\"encrypt\"]);\n const buffer = await this.subtle.encrypt(rsaParams, impKey, data);\n return new Uint8Array(buffer);\n }\n\n async rsaDecrypt(\n data: Uint8Array,\n privateKey: Uint8Array,\n algorithm: \"sha1\" | \"sha256\",\n ): Promise {\n // Note: Edge browser requires that we specify name and hash for both key import and decrypt.\n // We cannot use the proper types here.\n const rsaParams = {\n name: \"RSA-OAEP\",\n hash: { name: this.toWebCryptoAlgorithm(algorithm) },\n };\n const impKey = await this.subtle.importKey(\"pkcs8\", privateKey, rsaParams, false, [\"decrypt\"]);\n const buffer = await this.subtle.decrypt(rsaParams, impKey, data);\n return new Uint8Array(buffer);\n }\n\n async rsaExtractPublicKey(privateKey: Uint8Array): Promise {\n const rsaParams = {\n name: \"RSA-OAEP\",\n // Have to specify some algorithm\n hash: { name: this.toWebCryptoAlgorithm(\"sha1\") },\n };\n const impPrivateKey = await this.subtle.importKey(\"pkcs8\", privateKey, rsaParams, true, [\n \"decrypt\",\n ]);\n const jwkPrivateKey = await this.subtle.exportKey(\"jwk\", impPrivateKey);\n const jwkPublicKeyParams = {\n kty: \"RSA\",\n e: jwkPrivateKey.e,\n n: jwkPrivateKey.n,\n alg: \"RSA-OAEP\",\n ext: true,\n };\n const impPublicKey = await this.subtle.importKey(\"jwk\", jwkPublicKeyParams, rsaParams, true, [\n \"encrypt\",\n ]);\n const buffer = await this.subtle.exportKey(\"spki\", impPublicKey);\n return new Uint8Array(buffer);\n }\n\n async aesGenerateKey(bitLength = 128 | 192 | 256 | 512): Promise {\n if (bitLength === 512) {\n // 512 bit keys are not supported in WebCrypto, so we concat two 256 bit keys\n const key1 = await this.aesGenerateKey(256);\n const key2 = await this.aesGenerateKey(256);\n return new Uint8Array([...key1, ...key2]) as CsprngArray;\n }\n const aesParams = {\n name: \"AES-CBC\",\n length: bitLength,\n };\n\n const key = await this.subtle.generateKey(aesParams, true, [\"encrypt\", \"decrypt\"]);\n const rawKey = await this.subtle.exportKey(\"raw\", key);\n return new Uint8Array(rawKey) as CsprngArray;\n }\n\n async rsaGenerateKeyPair(length: 1024 | 2048 | 4096): Promise<[Uint8Array, Uint8Array]> {\n const rsaParams = {\n name: \"RSA-OAEP\",\n modulusLength: length,\n publicExponent: new Uint8Array([0x01, 0x00, 0x01]), // 65537\n // Have to specify some algorithm\n hash: { name: this.toWebCryptoAlgorithm(\"sha1\") },\n };\n const keyPair = await this.subtle.generateKey(rsaParams, true, [\"encrypt\", \"decrypt\"]);\n const publicKey = await this.subtle.exportKey(\"spki\", keyPair.publicKey);\n const privateKey = await this.subtle.exportKey(\"pkcs8\", keyPair.privateKey);\n return [new Uint8Array(publicKey), new Uint8Array(privateKey)];\n }\n\n randomBytes(length: number): Promise {\n const arr = new Uint8Array(length);\n this.crypto.getRandomValues(arr);\n return Promise.resolve(arr as CsprngArray);\n }\n\n private toBuf(value: string | Uint8Array): Uint8Array {\n let buf: Uint8Array;\n if (typeof value === \"string\") {\n buf = Utils.fromUtf8ToArray(value);\n } else {\n buf = value;\n }\n return buf;\n }\n\n private toByteString(value: string | Uint8Array): string {\n let bytes: string;\n if (typeof value === \"string\") {\n bytes = forge.util.encodeUtf8(value);\n } else {\n bytes = Utils.fromBufferToByteString(value);\n }\n return bytes;\n }\n\n private toWebCryptoAlgorithm(algorithm: \"sha1\" | \"sha256\" | \"sha512\" | \"md5\"): string {\n if (algorithm === \"md5\") {\n throw new Error(\"MD5 is not supported in WebCrypto.\");\n }\n return algorithm === \"sha1\" ? \"SHA-1\" : algorithm === \"sha256\" ? \"SHA-256\" : \"SHA-512\";\n }\n\n private toWebCryptoAesMode(mode: \"cbc\" | \"ecb\"): string {\n return mode === \"cbc\" ? \"AES-CBC\" : \"AES-ECB\";\n }\n\n // ref: https://stackoverflow.com/a/47880734/1090359\n private checkIfWasmSupported(): boolean {\n try {\n if (typeof WebAssembly === \"object\" && typeof WebAssembly.instantiate === \"function\") {\n const module = new WebAssembly.Module(\n Uint8Array.of(0x0, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00),\n );\n if (module instanceof WebAssembly.Module) {\n return new WebAssembly.Instance(module) instanceof WebAssembly.Instance;\n }\n }\n } catch {\n return false;\n }\n return false;\n }\n}\n","import { firstValueFrom, map } from \"rxjs\";\n\nimport { ApiService } from \"../../abstractions/api.service\";\nimport { EventUploadService as EventUploadServiceAbstraction } from \"../../abstractions/event/event-upload.service\";\nimport { AuthService } from \"../../auth/abstractions/auth.service\";\nimport { AuthenticationStatus } from \"../../auth/enums/authentication-status\";\nimport { EventData } from \"../../models/data/event.data\";\nimport { EventRequest } from \"../../models/request/event.request\";\nimport { LogService } from \"../../platform/abstractions/log.service\";\nimport { StateProvider } from \"../../platform/state\";\nimport { UserId } from \"../../types/guid\";\n\nimport { EVENT_COLLECTION } from \"./key-definitions\";\n\nexport class EventUploadService implements EventUploadServiceAbstraction {\n private inited = false;\n constructor(\n private apiService: ApiService,\n private stateProvider: StateProvider,\n private logService: LogService,\n private authService: AuthService,\n ) {}\n\n init(checkOnInterval: boolean) {\n if (this.inited) {\n return;\n }\n\n this.inited = true;\n if (checkOnInterval) {\n // FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.uploadEvents();\n setInterval(() => this.uploadEvents(), 60 * 1000); // check every 60 seconds\n }\n }\n\n /** Upload the event collection from state.\n * @param userId upload events for provided user. If not active user will be used.\n */\n async uploadEvents(userId?: UserId): Promise {\n if (!userId) {\n userId = await firstValueFrom(this.stateProvider.activeUserId$);\n }\n\n if (!userId) {\n return;\n }\n\n const isUnlocked = await firstValueFrom(\n this.authService\n .authStatusFor$(userId)\n .pipe(map((status) => status === AuthenticationStatus.Unlocked)),\n );\n if (!isUnlocked) {\n return;\n }\n\n const eventCollection = await this.takeEvents(userId);\n\n if (eventCollection == null || eventCollection.length === 0) {\n return;\n }\n const request = eventCollection.map((e) => {\n const req = new EventRequest();\n req.type = e.type;\n req.cipherId = e.cipherId;\n req.date = e.date;\n req.organizationId = e.organizationId;\n return req;\n });\n try {\n await this.apiService.postEventsCollect(request, userId);\n } catch (e) {\n this.logService.error(e);\n // Add the events back to state if there was an error and they were not uploaded.\n await this.stateProvider.setUserState(EVENT_COLLECTION, eventCollection, userId);\n }\n }\n\n /** Return user's events and then clear them from state\n * @param userId the user to grab and clear events for\n */\n private async takeEvents(userId: UserId): Promise {\n let taken = null;\n await this.stateProvider.getUser(userId, EVENT_COLLECTION).update((current) => {\n taken = current ?? [];\n return [];\n });\n\n return taken;\n }\n}\n","import { firstValueFrom, map, from, zip } from \"rxjs\";\n\nimport { EventCollectionService as EventCollectionServiceAbstraction } from \"../../abstractions/event/event-collection.service\";\nimport { EventUploadService } from \"../../abstractions/event/event-upload.service\";\nimport { OrganizationService } from \"../../admin-console/abstractions/organization/organization.service.abstraction\";\nimport { AuthService } from \"../../auth/abstractions/auth.service\";\nimport { AuthenticationStatus } from \"../../auth/enums/authentication-status\";\nimport { EventType } from \"../../enums\";\nimport { EventData } from \"../../models/data/event.data\";\nimport { StateProvider } from \"../../platform/state\";\nimport { CipherService } from \"../../vault/abstractions/cipher.service\";\n\nimport { EVENT_COLLECTION } from \"./key-definitions\";\n\nexport class EventCollectionService implements EventCollectionServiceAbstraction {\n constructor(\n private cipherService: CipherService,\n private stateProvider: StateProvider,\n private organizationService: OrganizationService,\n private eventUploadService: EventUploadService,\n private authService: AuthService,\n ) {}\n\n /** Adds an event to the active user's event collection\n * @param eventType the event type to be added\n * @param cipherId if provided the id of the cipher involved in the event\n * @param uploadImmediately in some cases the recorded events should be uploaded right after being added\n * @param organizationId the organizationId involved in the event. If the cipherId is not provided an organizationId is required\n */\n async collect(\n eventType: EventType,\n cipherId: string = null,\n uploadImmediately = false,\n organizationId: string = null,\n ): Promise {\n const userId = await firstValueFrom(this.stateProvider.activeUserId$);\n const eventStore = this.stateProvider.getUser(userId, EVENT_COLLECTION);\n\n if (!(await this.shouldUpdate(cipherId, organizationId, eventType))) {\n return;\n }\n\n const event = new EventData();\n event.type = eventType;\n event.cipherId = cipherId;\n event.date = new Date().toISOString();\n event.organizationId = organizationId;\n\n await eventStore.update((events) => {\n events = events ?? [];\n events.push(event);\n return events;\n });\n\n if (uploadImmediately) {\n await this.eventUploadService.uploadEvents();\n }\n }\n\n /** Verifies if the event collection should be updated for the provided information\n * @param cipherId the cipher for the event\n * @param organizationId the organization for the event\n */\n private async shouldUpdate(\n cipherId: string = null,\n organizationId: string = null,\n eventType: EventType = null,\n ): Promise {\n const orgIds$ = this.organizationService.organizations$.pipe(\n map((orgs) => orgs?.filter((o) => o.useEvents)?.map((x) => x.id) ?? []),\n );\n\n const cipher$ = from(this.cipherService.get(cipherId));\n\n const [authStatus, orgIds, cipher] = await firstValueFrom(\n zip(this.authService.activeAccountStatus$, orgIds$, cipher$),\n );\n\n // The user must be authorized\n if (authStatus != AuthenticationStatus.Unlocked) {\n return false;\n }\n\n // User must have organizations assigned to them\n if (orgIds == null || orgIds.length == 0) {\n return false;\n }\n\n // Individual vault export doesn't need cipher id or organization id.\n if (eventType == EventType.User_ClientExportedVault) {\n return true;\n }\n\n // If the cipher is null there must be an organization id provided\n if (cipher == null && organizationId == null) {\n return false;\n }\n\n // If the cipher is present it must be in the user's org list\n if (cipher != null && !orgIds.includes(cipher?.organizationId)) {\n return false;\n }\n\n // If the organization id is provided it must be in the user's org list\n if (organizationId != null && !orgIds.includes(organizationId)) {\n return false;\n }\n\n return true;\n }\n}\n","import { firstValueFrom } from \"rxjs\";\n\nimport { ApiService } from \"../../../abstractions/api.service\";\nimport { HttpStatusCode } from \"../../../enums\";\nimport { ErrorResponse } from \"../../../models/response/error.response\";\nimport { ListResponse } from \"../../../models/response/list.response\";\nimport { Utils } from \"../../../platform/misc/utils\";\nimport { PolicyApiServiceAbstraction } from \"../../abstractions/policy/policy-api.service.abstraction\";\nimport { InternalPolicyService } from \"../../abstractions/policy/policy.service.abstraction\";\nimport { PolicyType } from \"../../enums\";\nimport { PolicyData } from \"../../models/data/policy.data\";\nimport { MasterPasswordPolicyOptions } from \"../../models/domain/master-password-policy-options\";\nimport { Policy } from \"../../models/domain/policy\";\nimport { PolicyRequest } from \"../../models/request/policy.request\";\nimport { PolicyResponse } from \"../../models/response/policy.response\";\n\nexport class PolicyApiService implements PolicyApiServiceAbstraction {\n constructor(\n private policyService: InternalPolicyService,\n private apiService: ApiService,\n ) {}\n\n async getPolicy(organizationId: string, type: PolicyType): Promise {\n const r = await this.apiService.send(\n \"GET\",\n \"/organizations/\" + organizationId + \"/policies/\" + type,\n null,\n true,\n true,\n );\n return new PolicyResponse(r);\n }\n\n async getPolicies(organizationId: string): Promise> {\n const r = await this.apiService.send(\n \"GET\",\n \"/organizations/\" + organizationId + \"/policies\",\n null,\n true,\n true,\n );\n return new ListResponse(r, PolicyResponse);\n }\n\n async getPoliciesByToken(\n organizationId: string,\n token: string,\n email: string,\n organizationUserId: string,\n ): Promise {\n const r = await this.apiService.send(\n \"GET\",\n \"/organizations/\" +\n organizationId +\n \"/policies/token?\" +\n \"token=\" +\n encodeURIComponent(token) +\n \"&email=\" +\n Utils.encodeRFC3986URIComponent(email) +\n \"&organizationUserId=\" +\n organizationUserId,\n null,\n false,\n true,\n );\n return Policy.fromListResponse(new ListResponse(r, PolicyResponse));\n }\n\n private async getMasterPasswordPolicyResponseForOrgUser(\n organizationId: string,\n ): Promise {\n const response = await this.apiService.send(\n \"GET\",\n \"/organizations/\" + organizationId + \"/policies/master-password\",\n null,\n true,\n true,\n );\n\n return new PolicyResponse(response);\n }\n\n async getMasterPasswordPolicyOptsForOrgUser(\n orgId: string,\n ): Promise {\n try {\n const masterPasswordPolicyResponse =\n await this.getMasterPasswordPolicyResponseForOrgUser(orgId);\n\n const masterPasswordPolicy = Policy.fromResponse(masterPasswordPolicyResponse);\n\n if (!masterPasswordPolicy) {\n return null;\n }\n\n return await firstValueFrom(\n this.policyService.masterPasswordPolicyOptions$([masterPasswordPolicy]),\n );\n } catch (error) {\n // If policy not found, return null\n if (error instanceof ErrorResponse && error.statusCode === HttpStatusCode.NotFound) {\n return null;\n }\n // otherwise rethrow error\n throw error;\n }\n }\n\n async putPolicy(organizationId: string, type: PolicyType, request: PolicyRequest): Promise {\n const r = await this.apiService.send(\n \"PUT\",\n \"/organizations/\" + organizationId + \"/policies/\" + type,\n request,\n true,\n true,\n );\n const response = new PolicyResponse(r);\n const data = new PolicyData(response);\n await this.policyService.upsert(data);\n }\n}\n","import { firstValueFrom, map } from \"rxjs\";\n\nimport { UserDecryptionOptionsServiceAbstraction } from \"@bitwarden/auth/common\";\n\nimport { PinServiceAbstraction } from \"../../../../../auth/src/common/abstractions/pin.service.abstraction\";\nimport { VaultTimeoutSettingsService as VaultTimeoutSettingsServiceAbstraction } from \"../../../abstractions/vault-timeout/vault-timeout-settings.service\";\nimport { CryptoService } from \"../../../platform/abstractions/crypto.service\";\nimport { I18nService } from \"../../../platform/abstractions/i18n.service\";\nimport { LogService } from \"../../../platform/abstractions/log.service\";\nimport { PlatformUtilsService } from \"../../../platform/abstractions/platform-utils.service\";\nimport { HashPurpose } from \"../../../platform/enums\";\nimport { KeySuffixOptions } from \"../../../platform/enums/key-suffix-options.enum\";\nimport { UserId } from \"../../../types/guid\";\nimport { UserKey } from \"../../../types/key\";\nimport { AccountService } from \"../../abstractions/account.service\";\nimport { KdfConfigService } from \"../../abstractions/kdf-config.service\";\nimport { InternalMasterPasswordServiceAbstraction } from \"../../abstractions/master-password.service.abstraction\";\nimport { UserVerificationApiServiceAbstraction } from \"../../abstractions/user-verification/user-verification-api.service.abstraction\";\nimport { UserVerificationService as UserVerificationServiceAbstraction } from \"../../abstractions/user-verification/user-verification.service.abstraction\";\nimport { VerificationType } from \"../../enums/verification-type\";\nimport { SecretVerificationRequest } from \"../../models/request/secret-verification.request\";\nimport { VerifyOTPRequest } from \"../../models/request/verify-otp.request\";\nimport { MasterPasswordPolicyResponse } from \"../../models/response/master-password-policy.response\";\nimport { UserVerificationOptions } from \"../../types/user-verification-options\";\nimport {\n MasterPasswordVerification,\n MasterPasswordVerificationResponse,\n OtpVerification,\n PinVerification,\n ServerSideVerification,\n Verification,\n VerificationWithSecret,\n verificationHasSecret,\n} from \"../../types/verification\";\n\n/**\n * Used for general-purpose user verification throughout the app.\n * Use it to verify the input collected by UserVerificationComponent.\n */\nexport class UserVerificationService implements UserVerificationServiceAbstraction {\n constructor(\n private cryptoService: CryptoService,\n private accountService: AccountService,\n private masterPasswordService: InternalMasterPasswordServiceAbstraction,\n private i18nService: I18nService,\n private userVerificationApiService: UserVerificationApiServiceAbstraction,\n private userDecryptionOptionsService: UserDecryptionOptionsServiceAbstraction,\n private pinService: PinServiceAbstraction,\n private logService: LogService,\n private vaultTimeoutSettingsService: VaultTimeoutSettingsServiceAbstraction,\n private platformUtilsService: PlatformUtilsService,\n private kdfConfigService: KdfConfigService,\n ) {}\n\n async getAvailableVerificationOptions(\n verificationType: keyof UserVerificationOptions,\n ): Promise {\n const userId = (await firstValueFrom(this.accountService.activeAccount$))?.id;\n if (verificationType === \"client\") {\n const [userHasMasterPassword, pinLockType, biometricsLockSet, biometricsUserKeyStored] =\n await Promise.all([\n this.hasMasterPasswordAndMasterKeyHash(userId),\n this.pinService.getPinLockType(userId),\n this.vaultTimeoutSettingsService.isBiometricLockSet(userId),\n this.cryptoService.hasUserKeyStored(KeySuffixOptions.Biometric, userId),\n ]);\n\n // note: we do not need to check this.platformUtilsService.supportsBiometric() because\n // we can just use the logic below which works for both desktop & the browser extension.\n\n return {\n client: {\n masterPassword: userHasMasterPassword,\n pin: pinLockType !== \"DISABLED\",\n biometrics:\n biometricsLockSet &&\n (biometricsUserKeyStored || !this.platformUtilsService.supportsSecureStorage()),\n },\n server: {\n masterPassword: false,\n otp: false,\n },\n };\n } else {\n // server\n // Don't check if have MP hash locally, because we are going to send the secret to the server to be verified.\n const userHasMasterPassword = await this.hasMasterPassword(userId);\n\n return {\n client: {\n masterPassword: false,\n pin: false,\n biometrics: false,\n },\n server: { masterPassword: userHasMasterPassword, otp: !userHasMasterPassword },\n };\n }\n }\n\n async buildRequest(\n verification: ServerSideVerification,\n requestClass?: new () => T,\n alreadyHashed?: boolean,\n ) {\n this.validateSecretInput(verification);\n\n const request =\n requestClass != null ? new requestClass() : (new SecretVerificationRequest() as T);\n\n if (verification.type === VerificationType.OTP) {\n request.otp = verification.secret;\n } else {\n const [userId, email] = await firstValueFrom(\n this.accountService.activeAccount$.pipe(map((a) => [a?.id, a?.email])),\n );\n let masterKey = await firstValueFrom(this.masterPasswordService.masterKey$(userId));\n if (!masterKey && !alreadyHashed) {\n masterKey = await this.cryptoService.makeMasterKey(\n verification.secret,\n email,\n await this.kdfConfigService.getKdfConfig(),\n );\n }\n request.masterPasswordHash = alreadyHashed\n ? verification.secret\n : await this.cryptoService.hashMasterKey(verification.secret, masterKey);\n }\n\n return request;\n }\n\n async verifyUser(verification: Verification): Promise {\n if (verification == null) {\n throw new Error(\"Verification is required.\");\n }\n\n const [userId, email] = await firstValueFrom(\n this.accountService.activeAccount$.pipe(map((a) => [a?.id, a?.email])),\n );\n\n if (verificationHasSecret(verification)) {\n this.validateSecretInput(verification);\n }\n\n switch (verification.type) {\n case VerificationType.OTP:\n return this.verifyUserByOTP(verification);\n case VerificationType.MasterPassword:\n await this.verifyUserByMasterPassword(verification, userId, email);\n return true;\n case VerificationType.PIN:\n return this.verifyUserByPIN(verification, userId);\n case VerificationType.Biometrics:\n return this.verifyUserByBiometrics();\n default: {\n // Compile-time check for exhaustive switch\n const _exhaustiveCheck: never = verification;\n return _exhaustiveCheck;\n }\n }\n }\n\n private async verifyUserByOTP(verification: OtpVerification): Promise {\n const request = new VerifyOTPRequest(verification.secret);\n try {\n await this.userVerificationApiService.postAccountVerifyOTP(request);\n } catch (e) {\n throw new Error(this.i18nService.t(\"invalidVerificationCode\"));\n }\n return true;\n }\n\n async verifyUserByMasterPassword(\n verification: MasterPasswordVerification,\n userId: UserId,\n email: string,\n ): Promise {\n if (!verification.secret) {\n throw new Error(\"Master Password is required. Cannot verify user without a master password.\");\n }\n if (!userId) {\n throw new Error(\"User ID is required. Cannot verify user by master password.\");\n }\n if (!email) {\n throw new Error(\"Email is required. Cannot verify user by master password.\");\n }\n\n const kdfConfig = await this.kdfConfigService.getKdfConfig();\n if (!kdfConfig) {\n throw new Error(\"KDF config is required. Cannot verify user by master password.\");\n }\n\n let masterKey = await firstValueFrom(this.masterPasswordService.masterKey$(userId));\n if (!masterKey) {\n masterKey = await this.cryptoService.makeMasterKey(verification.secret, email, kdfConfig);\n }\n\n if (!masterKey) {\n throw new Error(\"Master key could not be created to verify the master password.\");\n }\n\n let policyOptions: MasterPasswordPolicyResponse | null;\n // Client-side verification\n if (await this.hasMasterPasswordAndMasterKeyHash(userId)) {\n const passwordValid = await this.cryptoService.compareAndUpdateKeyHash(\n verification.secret,\n masterKey,\n );\n if (!passwordValid) {\n throw new Error(this.i18nService.t(\"invalidMasterPassword\"));\n }\n policyOptions = null;\n } else {\n // Server-side verification\n const request = new SecretVerificationRequest();\n const serverKeyHash = await this.cryptoService.hashMasterKey(\n verification.secret,\n masterKey,\n HashPurpose.ServerAuthorization,\n );\n request.masterPasswordHash = serverKeyHash;\n try {\n policyOptions = await this.userVerificationApiService.postAccountVerifyPassword(request);\n } catch (e) {\n throw new Error(this.i18nService.t(\"invalidMasterPassword\"));\n }\n }\n\n const localKeyHash = await this.cryptoService.hashMasterKey(\n verification.secret,\n masterKey,\n HashPurpose.LocalAuthorization,\n );\n await this.masterPasswordService.setMasterKeyHash(localKeyHash, userId);\n await this.masterPasswordService.setMasterKey(masterKey, userId);\n return { policyOptions, masterKey };\n }\n\n private async verifyUserByPIN(verification: PinVerification, userId: UserId): Promise {\n if (!userId) {\n throw new Error(\"User ID is required. Cannot verify user by PIN.\");\n }\n\n const userKey = await this.pinService.decryptUserKeyWithPin(verification.secret, userId);\n\n return userKey != null;\n }\n\n private async verifyUserByBiometrics(): Promise {\n let userKey: UserKey;\n // Biometrics crashes and doesn't return a value if the user cancels the prompt\n try {\n userKey = await this.cryptoService.getUserKeyFromStorage(KeySuffixOptions.Biometric);\n } catch (e) {\n this.logService.error(`Biometrics User Verification failed: ${e.message}`);\n // So, any failures should be treated as a failed verification\n return false;\n }\n\n return userKey != null;\n }\n\n async requestOTP() {\n await this.userVerificationApiService.postAccountRequestOTP();\n }\n\n async hasMasterPassword(userId?: string): Promise {\n if (userId) {\n const decryptionOptions = await firstValueFrom(\n this.userDecryptionOptionsService.userDecryptionOptionsById$(userId),\n );\n\n if (decryptionOptions?.hasMasterPassword != undefined) {\n return decryptionOptions.hasMasterPassword;\n }\n }\n return await firstValueFrom(this.userDecryptionOptionsService.hasMasterPassword$);\n }\n\n async hasMasterPasswordAndMasterKeyHash(userId?: string): Promise {\n userId ??= (await firstValueFrom(this.accountService.activeAccount$))?.id;\n return (\n (await this.hasMasterPassword(userId)) &&\n (await firstValueFrom(this.masterPasswordService.masterKeyHash$(userId as UserId))) != null\n );\n }\n\n private validateSecretInput(verification: VerificationWithSecret) {\n if (verification?.secret == null || verification.secret === \"\") {\n switch (verification.type) {\n case VerificationType.OTP:\n throw new Error(this.i18nService.t(\"verificationCodeRequired\"));\n case VerificationType.MasterPassword:\n throw new Error(this.i18nService.t(\"masterPasswordRequired\"));\n case VerificationType.PIN:\n throw new Error(this.i18nService.t(\"pinRequired\"));\n }\n }\n }\n}\n","import { MasterKey } from \"../../types/key\";\nimport { VerificationType } from \"../enums/verification-type\";\nimport { MasterPasswordPolicyResponse } from \"../models/response/master-password-policy.response\";\n\nexport type OtpVerification = { type: VerificationType.OTP; secret: string };\nexport type MasterPasswordVerification = { type: VerificationType.MasterPassword; secret: string };\nexport type PinVerification = { type: VerificationType.PIN; secret: string };\nexport type BiometricsVerification = { type: VerificationType.Biometrics };\n\nexport type VerificationWithSecret = OtpVerification | MasterPasswordVerification | PinVerification;\nexport type VerificationWithoutSecret = BiometricsVerification;\n\nexport type Verification = VerificationWithSecret | VerificationWithoutSecret;\n\nexport function verificationHasSecret(\n verification: Verification,\n): verification is VerificationWithSecret {\n return \"secret\" in verification;\n}\n\nexport type ServerSideVerification = OtpVerification | MasterPasswordVerification;\n\nexport type MasterPasswordVerificationResponse = {\n masterKey: MasterKey;\n policyOptions: MasterPasswordPolicyResponse;\n};\n","import { ApiService } from \"../../../abstractions/api.service\";\nimport { ListResponse } from \"../../../models/response/list.response\";\nimport { OrganizationUserService } from \"../../abstractions/organization-user/organization-user.service\";\nimport {\n OrganizationUserAcceptInitRequest,\n OrganizationUserAcceptRequest,\n OrganizationUserBulkConfirmRequest,\n OrganizationUserConfirmRequest,\n OrganizationUserInviteRequest,\n OrganizationUserResetPasswordEnrollmentRequest,\n OrganizationUserResetPasswordRequest,\n OrganizationUserUpdateRequest,\n} from \"../../abstractions/organization-user/requests\";\nimport {\n OrganizationUserBulkPublicKeyResponse,\n OrganizationUserBulkResponse,\n OrganizationUserDetailsResponse,\n OrganizationUserResetPasswordDetailsResponse,\n OrganizationUserUserDetailsResponse,\n} from \"../../abstractions/organization-user/responses\";\n\nimport { OrganizationUserBulkRequest } from \"./requests\";\n\nexport class OrganizationUserServiceImplementation implements OrganizationUserService {\n constructor(private apiService: ApiService) {}\n\n async getOrganizationUser(\n organizationId: string,\n id: string,\n options?: {\n includeGroups?: boolean;\n },\n ): Promise {\n const params = new URLSearchParams();\n\n if (options?.includeGroups) {\n params.set(\"includeGroups\", \"true\");\n }\n\n const r = await this.apiService.send(\n \"GET\",\n `/organizations/${organizationId}/users/${id}?${params.toString()}`,\n null,\n true,\n true,\n );\n return new OrganizationUserDetailsResponse(r);\n }\n\n async getOrganizationUserGroups(organizationId: string, id: string): Promise {\n const r = await this.apiService.send(\n \"GET\",\n \"/organizations/\" + organizationId + \"/users/\" + id + \"/groups\",\n null,\n true,\n true,\n );\n return r;\n }\n\n async getAllUsers(\n organizationId: string,\n options?: {\n includeCollections?: boolean;\n includeGroups?: boolean;\n },\n ): Promise> {\n const params = new URLSearchParams();\n\n if (options?.includeCollections) {\n params.set(\"includeCollections\", \"true\");\n }\n if (options?.includeGroups) {\n params.set(\"includeGroups\", \"true\");\n }\n\n const r = await this.apiService.send(\n \"GET\",\n `/organizations/${organizationId}/users?${params.toString()}`,\n null,\n true,\n true,\n );\n return new ListResponse(r, OrganizationUserUserDetailsResponse);\n }\n\n async getOrganizationUserResetPasswordDetails(\n organizationId: string,\n id: string,\n ): Promise {\n const r = await this.apiService.send(\n \"GET\",\n \"/organizations/\" + organizationId + \"/users/\" + id + \"/reset-password-details\",\n null,\n true,\n true,\n );\n return new OrganizationUserResetPasswordDetailsResponse(r);\n }\n\n async getManyOrganizationUserAccountRecoveryDetails(\n organizationId: string,\n ids: string[],\n ): Promise> {\n const r = await this.apiService.send(\n \"POST\",\n \"/organizations/\" + organizationId + \"/users/account-recovery-details\",\n new OrganizationUserBulkRequest(ids),\n true,\n true,\n );\n return new ListResponse(r, OrganizationUserResetPasswordDetailsResponse);\n }\n\n postOrganizationUserInvite(\n organizationId: string,\n request: OrganizationUserInviteRequest,\n ): Promise {\n return this.apiService.send(\n \"POST\",\n \"/organizations/\" + organizationId + \"/users/invite\",\n request,\n true,\n false,\n );\n }\n\n postOrganizationUserReinvite(organizationId: string, id: string): Promise {\n return this.apiService.send(\n \"POST\",\n \"/organizations/\" + organizationId + \"/users/\" + id + \"/reinvite\",\n null,\n true,\n false,\n );\n }\n\n async postManyOrganizationUserReinvite(\n organizationId: string,\n ids: string[],\n ): Promise> {\n const r = await this.apiService.send(\n \"POST\",\n \"/organizations/\" + organizationId + \"/users/reinvite\",\n new OrganizationUserBulkRequest(ids),\n true,\n true,\n );\n return new ListResponse(r, OrganizationUserBulkResponse);\n }\n\n postOrganizationUserAcceptInit(\n organizationId: string,\n id: string,\n request: OrganizationUserAcceptInitRequest,\n ): Promise {\n return this.apiService.send(\n \"POST\",\n \"/organizations/\" + organizationId + \"/users/\" + id + \"/accept-init\",\n request,\n true,\n false,\n );\n }\n\n postOrganizationUserAccept(\n organizationId: string,\n id: string,\n request: OrganizationUserAcceptRequest,\n ): Promise {\n return this.apiService.send(\n \"POST\",\n \"/organizations/\" + organizationId + \"/users/\" + id + \"/accept\",\n request,\n true,\n false,\n );\n }\n\n postOrganizationUserConfirm(\n organizationId: string,\n id: string,\n request: OrganizationUserConfirmRequest,\n ): Promise {\n return this.apiService.send(\n \"POST\",\n \"/organizations/\" + organizationId + \"/users/\" + id + \"/confirm\",\n request,\n true,\n false,\n );\n }\n\n async postOrganizationUsersPublicKey(\n organizationId: string,\n ids: string[],\n ): Promise> {\n const r = await this.apiService.send(\n \"POST\",\n \"/organizations/\" + organizationId + \"/users/public-keys\",\n new OrganizationUserBulkRequest(ids),\n true,\n true,\n );\n return new ListResponse(r, OrganizationUserBulkPublicKeyResponse);\n }\n\n async postOrganizationUserBulkConfirm(\n organizationId: string,\n request: OrganizationUserBulkConfirmRequest,\n ): Promise> {\n const r = await this.apiService.send(\n \"POST\",\n \"/organizations/\" + organizationId + \"/users/confirm\",\n request,\n true,\n true,\n );\n return new ListResponse(r, OrganizationUserBulkResponse);\n }\n\n async putOrganizationUserBulkEnableSecretsManager(\n organizationId: string,\n ids: string[],\n ): Promise {\n await this.apiService.send(\n \"PUT\",\n \"/organizations/\" + organizationId + \"/users/enable-secrets-manager\",\n new OrganizationUserBulkRequest(ids),\n true,\n false,\n );\n }\n\n putOrganizationUser(\n organizationId: string,\n id: string,\n request: OrganizationUserUpdateRequest,\n ): Promise {\n return this.apiService.send(\n \"PUT\",\n \"/organizations/\" + organizationId + \"/users/\" + id,\n request,\n true,\n false,\n );\n }\n\n putOrganizationUserResetPasswordEnrollment(\n organizationId: string,\n userId: string,\n request: OrganizationUserResetPasswordEnrollmentRequest,\n ): Promise {\n return this.apiService.send(\n \"PUT\",\n \"/organizations/\" + organizationId + \"/users/\" + userId + \"/reset-password-enrollment\",\n request,\n true,\n false,\n );\n }\n\n putOrganizationUserResetPassword(\n organizationId: string,\n id: string,\n request: OrganizationUserResetPasswordRequest,\n ): Promise {\n return this.apiService.send(\n \"PUT\",\n \"/organizations/\" + organizationId + \"/users/\" + id + \"/reset-password\",\n request,\n true,\n false,\n );\n }\n\n deleteOrganizationUser(organizationId: string, id: string): Promise {\n return this.apiService.send(\n \"DELETE\",\n \"/organizations/\" + organizationId + \"/users/\" + id,\n null,\n true,\n false,\n );\n }\n\n async deleteManyOrganizationUsers(\n organizationId: string,\n ids: string[],\n ): Promise> {\n const r = await this.apiService.send(\n \"DELETE\",\n \"/organizations/\" + organizationId + \"/users\",\n new OrganizationUserBulkRequest(ids),\n true,\n true,\n );\n return new ListResponse(r, OrganizationUserBulkResponse);\n }\n\n revokeOrganizationUser(organizationId: string, id: string): Promise {\n return this.apiService.send(\n \"PUT\",\n \"/organizations/\" + organizationId + \"/users/\" + id + \"/revoke\",\n null,\n true,\n false,\n );\n }\n\n async revokeManyOrganizationUsers(\n organizationId: string,\n ids: string[],\n ): Promise> {\n const r = await this.apiService.send(\n \"PUT\",\n \"/organizations/\" + organizationId + \"/users/revoke\",\n new OrganizationUserBulkRequest(ids),\n true,\n true,\n );\n return new ListResponse(r, OrganizationUserBulkResponse);\n }\n\n restoreOrganizationUser(organizationId: string, id: string): Promise {\n return this.apiService.send(\n \"PUT\",\n \"/organizations/\" + organizationId + \"/users/\" + id + \"/restore\",\n null,\n true,\n false,\n );\n }\n\n async restoreManyOrganizationUsers(\n organizationId: string,\n ids: string[],\n ): Promise> {\n const r = await this.apiService.send(\n \"PUT\",\n \"/organizations/\" + organizationId + \"/users/restore\",\n new OrganizationUserBulkRequest(ids),\n true,\n true,\n );\n return new ListResponse(r, OrganizationUserBulkResponse);\n }\n}\n","import { firstValueFrom, map } from \"rxjs\";\n\nimport { OrganizationApiServiceAbstraction } from \"../../admin-console/abstractions/organization/organization-api.service.abstraction\";\nimport { OrganizationUserService } from \"../../admin-console/abstractions/organization-user/organization-user.service\";\nimport { OrganizationUserResetPasswordEnrollmentRequest } from \"../../admin-console/abstractions/organization-user/requests\";\nimport { CryptoService } from \"../../platform/abstractions/crypto.service\";\nimport { I18nService } from \"../../platform/abstractions/i18n.service\";\nimport { Utils } from \"../../platform/misc/utils\";\nimport { UserKey } from \"../../types/key\";\nimport { AccountService } from \"../abstractions/account.service\";\nimport { PasswordResetEnrollmentServiceAbstraction } from \"../abstractions/password-reset-enrollment.service.abstraction\";\n\nexport class PasswordResetEnrollmentServiceImplementation\n implements PasswordResetEnrollmentServiceAbstraction\n{\n constructor(\n protected organizationApiService: OrganizationApiServiceAbstraction,\n protected accountService: AccountService,\n protected cryptoService: CryptoService,\n protected organizationUserService: OrganizationUserService,\n protected i18nService: I18nService,\n ) {}\n\n async enrollIfRequired(organizationSsoIdentifier: string): Promise {\n const orgAutoEnrollStatusResponse =\n await this.organizationApiService.getAutoEnrollStatus(organizationSsoIdentifier);\n\n if (!orgAutoEnrollStatusResponse.resetPasswordEnabled) {\n await this.enroll(orgAutoEnrollStatusResponse.id, null, null);\n }\n }\n\n async enroll(organizationId: string): Promise;\n async enroll(organizationId: string, userId: string, userKey: UserKey): Promise;\n async enroll(organizationId: string, userId?: string, userKey?: UserKey): Promise {\n const orgKeyResponse = await this.organizationApiService.getKeys(organizationId);\n if (orgKeyResponse == null) {\n throw new Error(this.i18nService.t(\"resetPasswordOrgKeysError\"));\n }\n\n const orgPublicKey = Utils.fromB64ToArray(orgKeyResponse.publicKey);\n\n userId =\n userId ?? (await firstValueFrom(this.accountService.activeAccount$.pipe(map((a) => a?.id))));\n userKey = userKey ?? (await this.cryptoService.getUserKey(userId));\n // RSA Encrypt user's userKey.key with organization public key\n const encryptedKey = await this.cryptoService.rsaEncrypt(userKey.key, orgPublicKey);\n\n const resetRequest = new OrganizationUserResetPasswordEnrollmentRequest();\n resetRequest.resetPasswordKey = encryptedKey.encryptedString;\n\n await this.organizationUserService.putOrganizationUserResetPasswordEnrollment(\n organizationId,\n userId,\n resetRequest,\n );\n }\n}\n","import { UntypedFormGroup, ValidationErrors } from \"@angular/forms\";\n\nimport {\n FormGroupControls,\n FormValidationErrorsService as FormValidationErrorsAbstraction,\n AllValidationErrors,\n} from \"../abstractions/form-validation-errors.service\";\n\nexport class FormValidationErrorsService implements FormValidationErrorsAbstraction {\n getFormValidationErrors(controls: FormGroupControls): AllValidationErrors[] {\n let errors: AllValidationErrors[] = [];\n Object.keys(controls).forEach((key) => {\n const control = controls[key];\n if (control instanceof UntypedFormGroup) {\n errors = errors.concat(this.getFormValidationErrors(control.controls));\n }\n\n const controlErrors: ValidationErrors = controls[key].errors;\n if (controlErrors !== null) {\n Object.keys(controlErrors).forEach((keyError) => {\n errors.push({\n controlName: key,\n errorName: keyError,\n });\n });\n }\n });\n\n return errors;\n }\n}\n","import { ApiService } from \"../../../abstractions/api.service\";\nimport { UserVerificationApiServiceAbstraction } from \"../../abstractions/user-verification/user-verification-api.service.abstraction\";\nimport { SecretVerificationRequest } from \"../../models/request/secret-verification.request\";\nimport { VerifyOTPRequest } from \"../../models/request/verify-otp.request\";\nimport { MasterPasswordPolicyResponse } from \"../../models/response/master-password-policy.response\";\n\nexport class UserVerificationApiService implements UserVerificationApiServiceAbstraction {\n constructor(private apiService: ApiService) {}\n\n postAccountVerifyOTP(request: VerifyOTPRequest): Promise {\n return this.apiService.send(\"POST\", \"/accounts/verify-otp\", request, true, false);\n }\n async postAccountRequestOTP(): Promise {\n return this.apiService.send(\"POST\", \"/accounts/request-otp\", null, true, false);\n }\n postAccountVerifyPassword(\n request: SecretVerificationRequest,\n ): Promise {\n return this.apiService.send(\"POST\", \"/accounts/verify-password\", request, true, true);\n }\n}\n","import { ApiService } from \"../../../abstractions/api.service\";\nimport { OrganizationApiKeyRequest } from \"../../../admin-console/models/request/organization-api-key.request\";\nimport { OrganizationSsoRequest } from \"../../../auth/models/request/organization-sso.request\";\nimport { SecretVerificationRequest } from \"../../../auth/models/request/secret-verification.request\";\nimport { ApiKeyResponse } from \"../../../auth/models/response/api-key.response\";\nimport { OrganizationSsoResponse } from \"../../../auth/models/response/organization-sso.response\";\nimport { ExpandedTaxInfoUpdateRequest } from \"../../../billing/models/request/expanded-tax-info-update.request\";\nimport { OrganizationSmSubscriptionUpdateRequest } from \"../../../billing/models/request/organization-sm-subscription-update.request\";\nimport { OrganizationSubscriptionUpdateRequest } from \"../../../billing/models/request/organization-subscription-update.request\";\nimport { PaymentRequest } from \"../../../billing/models/request/payment.request\";\nimport { SecretsManagerSubscribeRequest } from \"../../../billing/models/request/sm-subscribe.request\";\nimport { BillingResponse } from \"../../../billing/models/response/billing.response\";\nimport { OrganizationSubscriptionResponse } from \"../../../billing/models/response/organization-subscription.response\";\nimport { PaymentResponse } from \"../../../billing/models/response/payment.response\";\nimport { TaxInfoResponse } from \"../../../billing/models/response/tax-info.response\";\nimport { ImportDirectoryRequest } from \"../../../models/request/import-directory.request\";\nimport { SeatRequest } from \"../../../models/request/seat.request\";\nimport { StorageRequest } from \"../../../models/request/storage.request\";\nimport { VerifyBankRequest } from \"../../../models/request/verify-bank.request\";\nimport { ListResponse } from \"../../../models/response/list.response\";\nimport { SyncService } from \"../../../vault/abstractions/sync/sync.service.abstraction\";\nimport { OrganizationApiServiceAbstraction } from \"../../abstractions/organization/organization-api.service.abstraction\";\nimport { OrganizationApiKeyType } from \"../../enums\";\nimport { OrganizationCollectionManagementUpdateRequest } from \"../../models/request/organization-collection-management-update.request\";\nimport { OrganizationCreateRequest } from \"../../models/request/organization-create.request\";\nimport { OrganizationKeysRequest } from \"../../models/request/organization-keys.request\";\nimport { OrganizationUpdateRequest } from \"../../models/request/organization-update.request\";\nimport { OrganizationUpgradeRequest } from \"../../models/request/organization-upgrade.request\";\nimport { OrganizationVerifyDeleteRecoverRequest } from \"../../models/request/organization-verify-delete-recover.request\";\nimport { OrganizationApiKeyInformationResponse } from \"../../models/response/organization-api-key-information.response\";\nimport { OrganizationAutoEnrollStatusResponse } from \"../../models/response/organization-auto-enroll-status.response\";\nimport { OrganizationKeysResponse } from \"../../models/response/organization-keys.response\";\nimport { OrganizationResponse } from \"../../models/response/organization.response\";\nimport { ProfileOrganizationResponse } from \"../../models/response/profile-organization.response\";\n\nexport class OrganizationApiService implements OrganizationApiServiceAbstraction {\n constructor(\n private apiService: ApiService,\n private syncService: SyncService,\n ) {}\n\n async get(id: string): Promise {\n const r = await this.apiService.send(\"GET\", \"/organizations/\" + id, null, true, true);\n return new OrganizationResponse(r);\n }\n\n async getBilling(id: string): Promise {\n const r = await this.apiService.send(\n \"GET\",\n \"/organizations/\" + id + \"/billing\",\n null,\n true,\n true,\n );\n return new BillingResponse(r);\n }\n\n async getSubscription(id: string): Promise {\n const r = await this.apiService.send(\n \"GET\",\n \"/organizations/\" + id + \"/subscription\",\n null,\n true,\n true,\n );\n return new OrganizationSubscriptionResponse(r);\n }\n\n async getLicense(id: string, installationId: string): Promise {\n return this.apiService.send(\n \"GET\",\n \"/organizations/\" + id + \"/license?installationId=\" + installationId,\n null,\n true,\n true,\n );\n }\n\n async getAutoEnrollStatus(identifier: string): Promise {\n const r = await this.apiService.send(\n \"GET\",\n \"/organizations/\" + identifier + \"/auto-enroll-status\",\n null,\n true,\n true,\n );\n return new OrganizationAutoEnrollStatusResponse(r);\n }\n\n async create(request: OrganizationCreateRequest): Promise {\n const r = await this.apiService.send(\"POST\", \"/organizations\", request, true, true);\n // Forcing a sync will notify organization service that they need to repull\n await this.syncService.fullSync(true);\n return new OrganizationResponse(r);\n }\n\n async createLicense(data: FormData): Promise {\n const r = await this.apiService.send(\n \"POST\",\n \"/organizations/licenses/self-hosted\",\n data,\n true,\n true,\n );\n return new OrganizationResponse(r);\n }\n\n async save(id: string, request: OrganizationUpdateRequest): Promise {\n const r = await this.apiService.send(\"PUT\", \"/organizations/\" + id, request, true, true);\n const data = new OrganizationResponse(r);\n await this.syncService.fullSync(true);\n return data;\n }\n\n async updatePayment(id: string, request: PaymentRequest): Promise {\n return this.apiService.send(\"POST\", \"/organizations/\" + id + \"/payment\", request, true, false);\n }\n\n async upgrade(id: string, request: OrganizationUpgradeRequest): Promise {\n const r = await this.apiService.send(\n \"POST\",\n \"/organizations/\" + id + \"/upgrade\",\n request,\n true,\n true,\n );\n return new PaymentResponse(r);\n }\n\n async updatePasswordManagerSeats(\n id: string,\n request: OrganizationSubscriptionUpdateRequest,\n ): Promise {\n return this.apiService.send(\n \"POST\",\n \"/organizations/\" + id + \"/subscription\",\n request,\n true,\n false,\n );\n }\n\n async updateSecretsManagerSubscription(\n id: string,\n request: OrganizationSmSubscriptionUpdateRequest,\n ): Promise {\n return this.apiService.send(\n \"POST\",\n \"/organizations/\" + id + \"/sm-subscription\",\n request,\n true,\n false,\n );\n }\n\n async updateSeats(id: string, request: SeatRequest): Promise {\n const r = await this.apiService.send(\n \"POST\",\n \"/organizations/\" + id + \"/seat\",\n request,\n true,\n true,\n );\n return new PaymentResponse(r);\n }\n\n async updateStorage(id: string, request: StorageRequest): Promise {\n const r = await this.apiService.send(\n \"POST\",\n \"/organizations/\" + id + \"/storage\",\n request,\n true,\n true,\n );\n return new PaymentResponse(r);\n }\n\n async verifyBank(id: string, request: VerifyBankRequest): Promise {\n await this.apiService.send(\n \"POST\",\n \"/organizations/\" + id + \"/verify-bank\",\n request,\n true,\n false,\n );\n }\n\n async reinstate(id: string): Promise {\n return this.apiService.send(\"POST\", \"/organizations/\" + id + \"/reinstate\", null, true, false);\n }\n\n async leave(id: string): Promise {\n await this.apiService.send(\"POST\", \"/organizations/\" + id + \"/leave\", null, true, false);\n await this.syncService.fullSync(true);\n }\n\n async delete(id: string, request: SecretVerificationRequest): Promise {\n await this.apiService.send(\"DELETE\", \"/organizations/\" + id, request, true, false);\n await this.syncService.fullSync(true);\n }\n\n deleteUsingToken(\n organizationId: string,\n request: OrganizationVerifyDeleteRecoverRequest,\n ): Promise {\n return this.apiService.send(\n \"POST\",\n \"/organizations/\" + organizationId + \"/delete-recover-token\",\n request,\n false,\n false,\n );\n }\n\n async updateLicense(id: string, data: FormData): Promise {\n await this.apiService.send(\n \"POST\",\n \"/organizations/licenses/self-hosted/\" + id,\n data,\n true,\n false,\n );\n }\n\n async importDirectory(organizationId: string, request: ImportDirectoryRequest): Promise {\n return this.apiService.send(\n \"POST\",\n \"/organizations/\" + organizationId + \"/import\",\n request,\n true,\n false,\n );\n }\n\n async getOrCreateApiKey(id: string, request: OrganizationApiKeyRequest): Promise {\n const r = await this.apiService.send(\n \"POST\",\n \"/organizations/\" + id + \"/api-key\",\n request,\n true,\n true,\n );\n return new ApiKeyResponse(r);\n }\n\n async getApiKeyInformation(\n id: string,\n organizationApiKeyType: OrganizationApiKeyType = null,\n ): Promise> {\n const uri =\n organizationApiKeyType === null\n ? \"/organizations/\" + id + \"/api-key-information\"\n : \"/organizations/\" + id + \"/api-key-information/\" + organizationApiKeyType;\n const r = await this.apiService.send(\"GET\", uri, null, true, true);\n return new ListResponse(r, OrganizationApiKeyInformationResponse);\n }\n\n async rotateApiKey(id: string, request: OrganizationApiKeyRequest): Promise {\n const r = await this.apiService.send(\n \"POST\",\n \"/organizations/\" + id + \"/rotate-api-key\",\n request,\n true,\n true,\n );\n return new ApiKeyResponse(r);\n }\n\n async getTaxInfo(id: string): Promise {\n const r = await this.apiService.send(\"GET\", \"/organizations/\" + id + \"/tax\", null, true, true);\n return new TaxInfoResponse(r);\n }\n\n async updateTaxInfo(id: string, request: ExpandedTaxInfoUpdateRequest): Promise {\n // Can't broadcast anything because the response doesn't have content\n return this.apiService.send(\"PUT\", \"/organizations/\" + id + \"/tax\", request, true, false);\n }\n\n async getKeys(id: string): Promise {\n const r = await this.apiService.send(\"GET\", \"/organizations/\" + id + \"/keys\", null, true, true);\n return new OrganizationKeysResponse(r);\n }\n\n async updateKeys(\n id: string,\n request: OrganizationKeysRequest,\n ): Promise {\n const r = await this.apiService.send(\n \"POST\",\n \"/organizations/\" + id + \"/keys\",\n request,\n true,\n true,\n );\n // Not broadcasting anything because data on this response doesn't correspond to `Organization`\n return new OrganizationKeysResponse(r);\n }\n\n async getSso(id: string): Promise {\n const r = await this.apiService.send(\"GET\", \"/organizations/\" + id + \"/sso\", null, true, true);\n return new OrganizationSsoResponse(r);\n }\n\n async updateSso(id: string, request: OrganizationSsoRequest): Promise {\n const r = await this.apiService.send(\n \"POST\",\n \"/organizations/\" + id + \"/sso\",\n request,\n true,\n true,\n );\n // Not broadcasting anything because data on this response doesn't correspond to `Organization`\n return new OrganizationSsoResponse(r);\n }\n\n async selfHostedSyncLicense(id: string) {\n await this.apiService.send(\n \"POST\",\n \"/organizations/licenses/self-hosted/\" + id + \"/sync/\",\n null,\n true,\n false,\n );\n }\n\n async subscribeToSecretsManager(\n id: string,\n request: SecretsManagerSubscribeRequest,\n ): Promise {\n const r = await this.apiService.send(\n \"POST\",\n \"/organizations/\" + id + \"/subscribe-secrets-manager\",\n request,\n true,\n true,\n );\n return new ProfileOrganizationResponse(r);\n }\n\n async updateCollectionManagement(\n id: string,\n request: OrganizationCollectionManagementUpdateRequest,\n ): Promise {\n const r = await this.apiService.send(\n \"PUT\",\n \"/organizations/\" + id + \"/collection-management\",\n request,\n true,\n true,\n );\n const data = new OrganizationResponse(r);\n await this.syncService.fullSync(true);\n return data;\n }\n}\n","import { Observable } from \"rxjs\";\n\nimport { SyncEventArgs } from \"../../types/sync-event-args\";\n\nexport abstract class SyncNotifierService {\n sync$: Observable;\n next: (event: SyncEventArgs) => void;\n}\n","import { Subject } from \"rxjs\";\n\nimport { SyncNotifierService as SyncNotifierServiceAbstraction } from \"../../abstractions/sync/sync-notifier.service.abstraction\";\nimport { SyncEventArgs } from \"../../types/sync-event-args\";\n\n/**\n * This class should most likely have 0 dependencies because it will hopefully\n * be rolled into SyncService once upon a time.\n */\nexport class SyncNotifierService implements SyncNotifierServiceAbstraction {\n private _sync = new Subject();\n\n sync$ = this._sync.asObservable();\n\n next(event: SyncEventArgs): void {\n this._sync.next(event);\n }\n}\n","import { ApiService } from \"../../../abstractions/api.service\";\nimport { TokenService } from \"../../../auth/abstractions/token.service\";\nimport { UserId } from \"../../../types/guid\";\nimport { ConfigApiServiceAbstraction } from \"../../abstractions/config/config-api.service.abstraction\";\nimport { ServerConfigResponse } from \"../../models/response/server-config.response\";\n\nexport class ConfigApiService implements ConfigApiServiceAbstraction {\n constructor(\n private apiService: ApiService,\n private tokenService: TokenService,\n ) {}\n\n async get(userId: UserId | undefined): Promise {\n // Authentication adds extra context to config responses, if the user has an access token, we want to use it\n // We don't particularly care about ensuring the token is valid and not expired, just that it exists\n const authed: boolean =\n userId == null ? false : (await this.tokenService.getAccessToken(userId)) != null;\n\n const r = await this.apiService.send(\"GET\", \"/config\", null, authed, true);\n return new ServerConfigResponse(r);\n }\n}\n","import {\n HttpTransportType,\n HubConnection,\n HubConnectionBuilder,\n IHubProtocol,\n} from \"@microsoft/signalr\";\nimport { MessagePackHubProtocol } from \"@microsoft/signalr-protocol-msgpack\";\nimport { firstValueFrom } from \"rxjs\";\n\nimport { AuthRequestServiceAbstraction } from \"../../../../auth/src/common/abstractions\";\nimport { NotificationType } from \"../../enums\";\nimport {\n AuthRequestPushNotification,\n NotificationResponse,\n} from \"../../models/response/notification.response\";\nimport { EnvironmentService } from \"../../platform/abstractions/environment.service\";\nimport { AnonymousHubService as AnonymousHubServiceAbstraction } from \"../abstractions/anonymous-hub.service\";\n\nexport class AnonymousHubService implements AnonymousHubServiceAbstraction {\n private anonHubConnection: HubConnection;\n private url: string;\n\n constructor(\n private environmentService: EnvironmentService,\n private authRequestService: AuthRequestServiceAbstraction,\n ) {}\n\n async createHubConnection(token: string) {\n this.url = (await firstValueFrom(this.environmentService.environment$)).getNotificationsUrl();\n\n this.anonHubConnection = new HubConnectionBuilder()\n .withUrl(this.url + \"/anonymous-hub?Token=\" + token, {\n skipNegotiation: true,\n transport: HttpTransportType.WebSockets,\n })\n .withHubProtocol(new MessagePackHubProtocol() as IHubProtocol)\n .build();\n\n await this.anonHubConnection.start();\n\n this.anonHubConnection.on(\"AuthRequestResponseRecieved\", (data: any) => {\n this.ProcessNotification(new NotificationResponse(data));\n });\n }\n\n async stopHubConnection() {\n if (this.anonHubConnection) {\n await this.anonHubConnection.stop();\n }\n }\n\n private ProcessNotification(notification: NotificationResponse) {\n switch (notification.type) {\n case NotificationType.AuthRequestResponse:\n this.authRequestService.sendAuthRequestPushNotification(\n notification.payload as AuthRequestPushNotification,\n );\n }\n }\n}\n","import { ErrorResponse } from \"../../models/response/error.response\";\nimport { I18nService } from \"../abstractions/i18n.service\";\nimport { PlatformUtilsService } from \"../abstractions/platform-utils.service\";\nimport { ValidationService as ValidationServiceAbstraction } from \"../abstractions/validation.service\";\n\nexport class ValidationService implements ValidationServiceAbstraction {\n constructor(\n private i18nService: I18nService,\n private platformUtilsService: PlatformUtilsService,\n ) {}\n\n showError(data: any): string[] {\n const defaultErrorMessage = this.i18nService.t(\"unexpectedError\");\n let errors: string[] = [];\n\n if (data != null && typeof data === \"string\") {\n errors.push(data);\n } else if (data == null || typeof data !== \"object\") {\n errors.push(defaultErrorMessage);\n } else if (data.validationErrors != null) {\n errors = errors.concat((data as ErrorResponse).getAllMessages());\n } else {\n errors.push(data.message ? data.message : defaultErrorMessage);\n }\n\n if (errors.length === 1) {\n this.platformUtilsService.showToast(\"error\", this.i18nService.t(\"errorOccurred\"), errors[0]);\n } else if (errors.length > 1) {\n this.platformUtilsService.showToast(\"error\", this.i18nService.t(\"errorOccurred\"), errors, {\n timeout: 5000 * errors.length,\n });\n }\n\n return errors;\n }\n}\n","import { BehaviorSubject } from \"rxjs\";\n\nimport { I18nService } from \"../../../platform/abstractions/i18n.service\";\nimport { PlatformUtilsService } from \"../../../platform/abstractions/platform-utils.service\";\nimport { OrgDomainInternalServiceAbstraction } from \"../../abstractions/organization-domain/org-domain.service.abstraction\";\nimport { OrganizationDomainResponse } from \"../../abstractions/organization-domain/responses/organization-domain.response\";\n\nexport class OrgDomainService implements OrgDomainInternalServiceAbstraction {\n protected _orgDomains$: BehaviorSubject = new BehaviorSubject([]);\n\n orgDomains$ = this._orgDomains$.asObservable();\n\n constructor(\n private platformUtilsService: PlatformUtilsService,\n private i18nService: I18nService,\n ) {}\n\n get(orgDomainId: string): OrganizationDomainResponse {\n const orgDomains: OrganizationDomainResponse[] = this._orgDomains$.getValue();\n\n return orgDomains.find((orgDomain) => orgDomain.id === orgDomainId);\n }\n\n copyDnsTxt(dnsTxt: string): void {\n this.platformUtilsService.copyToClipboard(dnsTxt);\n this.platformUtilsService.showToast(\n \"success\",\n null,\n this.i18nService.t(\"valueCopied\", this.i18nService.t(\"dnsTxtRecord\")),\n );\n }\n\n upsert(orgDomains: OrganizationDomainResponse[]): void {\n const existingOrgDomains: OrganizationDomainResponse[] = this._orgDomains$.getValue();\n\n orgDomains.forEach((orgDomain: OrganizationDomainResponse) => {\n // Determine if passed in orgDomain exists in existing array:\n const index = existingOrgDomains.findIndex(\n (existingOrgDomain) => existingOrgDomain.id === orgDomain.id,\n );\n if (index !== -1) {\n existingOrgDomains[index] = orgDomain;\n } else {\n existingOrgDomains.push(orgDomain);\n }\n });\n\n this._orgDomains$.next(existingOrgDomains);\n }\n\n replace(orgDomains: OrganizationDomainResponse[]): void {\n this._orgDomains$.next(orgDomains);\n }\n\n clearCache(): void {\n this._orgDomains$.next([]);\n }\n\n delete(orgDomainIds: string[]): void {\n const existingOrgDomains: OrganizationDomainResponse[] = this._orgDomains$.getValue();\n\n orgDomainIds.forEach((orgDomainId: string) => {\n const index = existingOrgDomains.findIndex(\n (existingOrgDomain) => existingOrgDomain.id === orgDomainId,\n );\n if (index !== -1) {\n existingOrgDomains.splice(index, 1);\n }\n });\n\n this._orgDomains$.next(existingOrgDomains);\n }\n}\n","import { ApiService } from \"../../../abstractions/api.service\";\nimport { ListResponse } from \"../../../models/response/list.response\";\nimport { OrgDomainApiServiceAbstraction } from \"../../abstractions/organization-domain/org-domain-api.service.abstraction\";\nimport { OrgDomainInternalServiceAbstraction } from \"../../abstractions/organization-domain/org-domain.service.abstraction\";\nimport { OrganizationDomainSsoDetailsResponse } from \"../../abstractions/organization-domain/responses/organization-domain-sso-details.response\";\nimport { OrganizationDomainResponse } from \"../../abstractions/organization-domain/responses/organization-domain.response\";\n\nimport { OrganizationDomainSsoDetailsRequest } from \"./requests/organization-domain-sso-details.request\";\nimport { OrganizationDomainRequest } from \"./requests/organization-domain.request\";\n\nexport class OrgDomainApiService implements OrgDomainApiServiceAbstraction {\n constructor(\n private orgDomainService: OrgDomainInternalServiceAbstraction,\n private apiService: ApiService,\n ) {}\n\n async getAllByOrgId(orgId: string): Promise> {\n const listResponse: ListResponse = await this.apiService.send(\n \"GET\",\n `/organizations/${orgId}/domain`,\n null,\n true,\n true,\n );\n\n const orgDomains = listResponse.data.map(\n (resultOrgDomain: any) => new OrganizationDomainResponse(resultOrgDomain),\n );\n\n this.orgDomainService.replace(orgDomains);\n\n return orgDomains;\n }\n\n async getByOrgIdAndOrgDomainId(\n orgId: string,\n orgDomainId: string,\n ): Promise {\n const result = await this.apiService.send(\n \"GET\",\n `/organizations/${orgId}/domain/${orgDomainId}`,\n null,\n true,\n true,\n );\n\n const response = new OrganizationDomainResponse(result);\n\n this.orgDomainService.upsert([response]);\n\n return response;\n }\n\n async post(\n orgId: string,\n orgDomainReq: OrganizationDomainRequest,\n ): Promise {\n const result = await this.apiService.send(\n \"POST\",\n `/organizations/${orgId}/domain`,\n orgDomainReq,\n true,\n true,\n );\n\n const response = new OrganizationDomainResponse(result);\n\n this.orgDomainService.upsert([response]);\n\n return response;\n }\n\n async verify(orgId: string, orgDomainId: string): Promise {\n const result = await this.apiService.send(\n \"POST\",\n `/organizations/${orgId}/domain/${orgDomainId}/verify`,\n null,\n true,\n true,\n );\n\n const response = new OrganizationDomainResponse(result);\n\n this.orgDomainService.upsert([response]);\n\n return response;\n }\n\n async delete(orgId: string, orgDomainId: string): Promise {\n await this.apiService.send(\n \"DELETE\",\n `/organizations/${orgId}/domain/${orgDomainId}`,\n null,\n true,\n false,\n );\n this.orgDomainService.delete([orgDomainId]);\n }\n\n async getClaimedOrgDomainByEmail(email: string): Promise {\n const result = await this.apiService.send(\n \"POST\",\n `/organizations/domain/sso/details`,\n new OrganizationDomainSsoDetailsRequest(email),\n false, // anonymous\n true,\n );\n const response = new OrganizationDomainSsoDetailsResponse(result);\n\n return response;\n }\n}\n","import { ApiService } from \"../../abstractions/api.service\";\nimport { ListResponse } from \"../../models/response/list.response\";\nimport { Utils } from \"../../platform/misc/utils\";\nimport { DeviceResponse } from \"../abstractions/devices/responses/device.response\";\nimport { DevicesApiServiceAbstraction } from \"../abstractions/devices-api.service.abstraction\";\nimport { SecretVerificationRequest } from \"../models/request/secret-verification.request\";\nimport { UpdateDevicesTrustRequest } from \"../models/request/update-devices-trust.request\";\nimport { ProtectedDeviceResponse } from \"../models/response/protected-device.response\";\n\nimport { TrustedDeviceKeysRequest } from \"./devices/requests/trusted-device-keys.request\";\n\nexport class DevicesApiServiceImplementation implements DevicesApiServiceAbstraction {\n constructor(private apiService: ApiService) {}\n\n async getKnownDevice(email: string, deviceIdentifier: string): Promise {\n const r = await this.apiService.send(\n \"GET\",\n \"/devices/knowndevice\",\n null,\n false,\n true,\n null,\n (headers) => {\n headers.set(\"X-Device-Identifier\", deviceIdentifier);\n headers.set(\"X-Request-Email\", Utils.fromUtf8ToUrlB64(email));\n },\n );\n return r as boolean;\n }\n\n /**\n * Get device by identifier\n * @param deviceIdentifier - client generated id (not device id in DB)\n */\n async getDeviceByIdentifier(deviceIdentifier: string): Promise {\n const r = await this.apiService.send(\n \"GET\",\n `/devices/identifier/${deviceIdentifier}`,\n null,\n true,\n true,\n );\n return new DeviceResponse(r);\n }\n\n async getDevices(): Promise> {\n const r = await this.apiService.send(\"GET\", \"/devices\", null, true, true, null);\n return new ListResponse(r, DeviceResponse);\n }\n\n async updateTrustedDeviceKeys(\n deviceIdentifier: string,\n devicePublicKeyEncryptedUserKey: string,\n userKeyEncryptedDevicePublicKey: string,\n deviceKeyEncryptedDevicePrivateKey: string,\n ): Promise {\n const request = new TrustedDeviceKeysRequest(\n devicePublicKeyEncryptedUserKey,\n userKeyEncryptedDevicePublicKey,\n deviceKeyEncryptedDevicePrivateKey,\n );\n\n const result = await this.apiService.send(\n \"PUT\",\n `/devices/${deviceIdentifier}/keys`,\n request,\n true,\n true,\n );\n\n return new DeviceResponse(result);\n }\n\n async updateTrust(\n updateDevicesTrustRequestModel: UpdateDevicesTrustRequest,\n deviceIdentifier: string,\n ): Promise {\n await this.apiService.send(\n \"POST\",\n \"/devices/update-trust\",\n updateDevicesTrustRequestModel,\n true,\n false,\n null,\n (headers) => {\n headers.set(\"Device-Identifier\", deviceIdentifier);\n },\n );\n }\n\n async getDeviceKeys(\n deviceIdentifier: string,\n secretVerificationRequest: SecretVerificationRequest,\n ): Promise {\n const result = await this.apiService.send(\n \"POST\",\n `/devices/${deviceIdentifier}/retrieve-keys`,\n secretVerificationRequest,\n true,\n true,\n );\n return new ProtectedDeviceResponse(result);\n }\n}\n","import { Observable, defer, map } from \"rxjs\";\n\nimport { ListResponse } from \"../../../models/response/list.response\";\nimport { DevicesServiceAbstraction } from \"../../abstractions/devices/devices.service.abstraction\";\nimport { DeviceResponse } from \"../../abstractions/devices/responses/device.response\";\nimport { DeviceView } from \"../../abstractions/devices/views/device.view\";\nimport { DevicesApiServiceAbstraction } from \"../../abstractions/devices-api.service.abstraction\";\n\n/**\n * @class DevicesServiceImplementation\n * @implements {DevicesServiceAbstraction}\n * @description Observable based data store service for Devices.\n * note: defer is used to convert the promises to observables and to ensure\n * that observables are created for each subscription\n * (i.e., promsise --> observables are cold until subscribed to)\n */\nexport class DevicesServiceImplementation implements DevicesServiceAbstraction {\n constructor(private devicesApiService: DevicesApiServiceAbstraction) {}\n\n /**\n * @description Gets the list of all devices.\n */\n getDevices$(): Observable> {\n return defer(() => this.devicesApiService.getDevices()).pipe(\n map((deviceResponses: ListResponse) => {\n return deviceResponses.data.map((deviceResponse: DeviceResponse) => {\n return new DeviceView(deviceResponse);\n });\n }),\n );\n }\n\n /**\n * @description Gets the device with the specified identifier.\n */\n getDeviceByIdentifier$(deviceIdentifier: string): Observable {\n return defer(() => this.devicesApiService.getDeviceByIdentifier(deviceIdentifier)).pipe(\n map((deviceResponse: DeviceResponse) => new DeviceView(deviceResponse)),\n );\n }\n\n /**\n * @description Checks if a device is known for a user by user's email and device's identifier.\n */\n isDeviceKnownForUser$(email: string, deviceIdentifier: string): Observable {\n return defer(() => this.devicesApiService.getKnownDevice(email, deviceIdentifier));\n }\n\n /**\n * @description Updates the keys for the specified device.\n */\n\n updateTrustedDeviceKeys$(\n deviceIdentifier: string,\n devicePublicKeyEncryptedUserKey: string,\n userKeyEncryptedDevicePublicKey: string,\n deviceKeyEncryptedDevicePrivateKey: string,\n ): Observable {\n return defer(() =>\n this.devicesApiService.updateTrustedDeviceKeys(\n deviceIdentifier,\n devicePublicKeyEncryptedUserKey,\n userKeyEncryptedDevicePublicKey,\n deviceKeyEncryptedDevicePrivateKey,\n ),\n ).pipe(map((deviceResponse: DeviceResponse) => new DeviceView(deviceResponse)));\n }\n}\n","import { CryptoFunctionService } from \"../../../platform/abstractions/crypto-function.service\";\nimport { SymmetricCryptoKey } from \"../../../platform/models/domain/symmetric-crypto-key\";\nimport { PrfKey } from \"../../../types/key\";\nimport { WebAuthnLoginPrfCryptoServiceAbstraction } from \"../../abstractions/webauthn/webauthn-login-prf-crypto.service.abstraction\";\n\nconst LoginWithPrfSalt = \"passwordless-login\";\n\nexport class WebAuthnLoginPrfCryptoService implements WebAuthnLoginPrfCryptoServiceAbstraction {\n constructor(private cryptoFunctionService: CryptoFunctionService) {}\n\n async getLoginWithPrfSalt(): Promise {\n return await this.cryptoFunctionService.hash(LoginWithPrfSalt, \"sha256\");\n }\n\n async createSymmetricKeyFromPrf(prf: ArrayBuffer): Promise {\n return (await this.stretchKey(new Uint8Array(prf))) as PrfKey;\n }\n\n // TODO: use keyGenerationService.stretchKey\n private async stretchKey(key: Uint8Array): Promise {\n const newKey = new Uint8Array(64);\n const encKey = await this.cryptoFunctionService.hkdfExpand(key, \"enc\", 32, \"sha256\");\n const macKey = await this.cryptoFunctionService.hkdfExpand(key, \"mac\", 32, \"sha256\");\n newKey.set(new Uint8Array(encKey));\n newKey.set(new Uint8Array(macKey), 32);\n return new SymmetricCryptoKey(newKey);\n }\n}\n","import { firstValueFrom } from \"rxjs\";\n\nimport { ApiService } from \"../../../abstractions/api.service\";\nimport { EnvironmentService } from \"../../../platform/abstractions/environment.service\";\nimport { WebAuthnLoginApiServiceAbstraction } from \"../../abstractions/webauthn/webauthn-login-api.service.abstraction\";\n\nimport { CredentialAssertionOptionsResponse } from \"./response/credential-assertion-options.response\";\n\nexport class WebAuthnLoginApiService implements WebAuthnLoginApiServiceAbstraction {\n constructor(\n private apiService: ApiService,\n private environmentService: EnvironmentService,\n ) {}\n\n async getCredentialAssertionOptions(): Promise {\n const env = await firstValueFrom(this.environmentService.environment$);\n const response = await this.apiService.send(\n \"GET\",\n `/accounts/webauthn/assertion-options`,\n null,\n false,\n true,\n env.getIdentityUrl(),\n );\n return new CredentialAssertionOptionsResponse(response);\n }\n}\n","import { LoginStrategyServiceAbstraction, WebAuthnLoginCredentials } from \"@bitwarden/auth/common\";\n\nimport { LogService } from \"../../../platform/abstractions/log.service\";\nimport { PrfKey } from \"../../../types/key\";\nimport { WebAuthnLoginApiServiceAbstraction } from \"../../abstractions/webauthn/webauthn-login-api.service.abstraction\";\nimport { WebAuthnLoginPrfCryptoServiceAbstraction } from \"../../abstractions/webauthn/webauthn-login-prf-crypto.service.abstraction\";\nimport { WebAuthnLoginServiceAbstraction } from \"../../abstractions/webauthn/webauthn-login.service.abstraction\";\nimport { AuthResult } from \"../../models/domain/auth-result\";\nimport { WebAuthnLoginCredentialAssertionOptionsView } from \"../../models/view/webauthn-login/webauthn-login-credential-assertion-options.view\";\nimport { WebAuthnLoginCredentialAssertionView } from \"../../models/view/webauthn-login/webauthn-login-credential-assertion.view\";\n\nimport { WebAuthnLoginAssertionResponseRequest } from \"./request/webauthn-login-assertion-response.request\";\n\nexport class WebAuthnLoginService implements WebAuthnLoginServiceAbstraction {\n private navigatorCredentials: CredentialsContainer;\n\n constructor(\n private webAuthnLoginApiService: WebAuthnLoginApiServiceAbstraction,\n private loginStrategyService: LoginStrategyServiceAbstraction,\n private webAuthnLoginPrfCryptoService: WebAuthnLoginPrfCryptoServiceAbstraction,\n private window: Window,\n private logService?: LogService,\n ) {\n this.navigatorCredentials = this.window.navigator.credentials;\n }\n\n async getCredentialAssertionOptions(): Promise {\n const response = await this.webAuthnLoginApiService.getCredentialAssertionOptions();\n return new WebAuthnLoginCredentialAssertionOptionsView(response.options, response.token);\n }\n\n async assertCredential(\n credentialAssertionOptions: WebAuthnLoginCredentialAssertionOptionsView,\n ): Promise {\n const nativeOptions: CredentialRequestOptions = {\n publicKey: credentialAssertionOptions.options,\n };\n // TODO: Remove `any` when typescript typings add support for PRF\n nativeOptions.publicKey.extensions = {\n prf: { eval: { first: await this.webAuthnLoginPrfCryptoService.getLoginWithPrfSalt() } },\n } as any;\n\n try {\n const response = await this.navigatorCredentials.get(nativeOptions);\n if (!(response instanceof PublicKeyCredential)) {\n return undefined;\n }\n // TODO: Remove `any` when typescript typings add support for PRF\n const prfResult = (response.getClientExtensionResults() as any).prf?.results?.first;\n let symmetricPrfKey: PrfKey | undefined;\n if (prfResult != undefined) {\n symmetricPrfKey =\n await this.webAuthnLoginPrfCryptoService.createSymmetricKeyFromPrf(prfResult);\n }\n\n const deviceResponse = new WebAuthnLoginAssertionResponseRequest(response);\n\n // Verify that we aren't going to send PRF information to the server in any case.\n // Note: this will only happen if a dev has done something wrong.\n if (\"prf\" in deviceResponse.extensions) {\n throw new Error(\"PRF information is not allowed to be sent to the server.\");\n }\n\n return new WebAuthnLoginCredentialAssertionView(\n credentialAssertionOptions.token,\n deviceResponse,\n symmetricPrfKey,\n );\n } catch (error) {\n this.logService?.error(error);\n return undefined;\n }\n }\n\n async logIn(assertion: WebAuthnLoginCredentialAssertionView): Promise {\n const credential = new WebAuthnLoginCredentials(\n assertion.token,\n assertion.deviceResponse,\n assertion.prfKey,\n );\n const result = await this.loginStrategyService.logIn(credential);\n return result;\n }\n}\n","import { StorageServiceProvider } from \"../../services/storage-service.provider\";\nimport { GlobalState } from \"../global-state\";\nimport { GlobalStateProvider } from \"../global-state.provider\";\nimport { KeyDefinition } from \"../key-definition\";\n\nimport { DefaultGlobalState } from \"./default-global-state\";\n\nexport class DefaultGlobalStateProvider implements GlobalStateProvider {\n private globalStateCache: Record> = {};\n\n constructor(private storageServiceProvider: StorageServiceProvider) {}\n\n get(keyDefinition: KeyDefinition): GlobalState {\n const [location, storageService] = this.storageServiceProvider.get(\n keyDefinition.stateDefinition.defaultStorageLocation,\n keyDefinition.stateDefinition.storageLocationOverrides,\n );\n const cacheKey = this.buildCacheKey(location, keyDefinition);\n const existingGlobalState = this.globalStateCache[cacheKey];\n if (existingGlobalState != null) {\n // The cast into the actual generic is safe because of rules around key definitions\n // being unique.\n return existingGlobalState as DefaultGlobalState;\n }\n\n const newGlobalState = new DefaultGlobalState(keyDefinition, storageService);\n\n this.globalStateCache[cacheKey] = newGlobalState;\n return newGlobalState;\n }\n\n private buildCacheKey(location: string, keyDefinition: KeyDefinition) {\n return `${location}_${keyDefinition.fullName}`;\n }\n}\n","import { Observable, distinctUntilChanged, map } from \"rxjs\";\n\nimport { AccountService } from \"../../../auth/abstractions/account.service\";\nimport { UserId } from \"../../../types/guid\";\nimport { KeyDefinition } from \"../key-definition\";\nimport { UserKeyDefinition, isUserKeyDefinition } from \"../user-key-definition\";\nimport { ActiveUserState } from \"../user-state\";\nimport { ActiveUserStateProvider, SingleUserStateProvider } from \"../user-state.provider\";\n\nimport { DefaultActiveUserState } from \"./default-active-user-state\";\n\nexport class DefaultActiveUserStateProvider implements ActiveUserStateProvider {\n activeUserId$: Observable;\n\n constructor(\n private readonly accountService: AccountService,\n private readonly singleUserStateProvider: SingleUserStateProvider,\n ) {\n this.activeUserId$ = this.accountService.activeAccount$.pipe(\n map((account) => account?.id),\n // To avoid going to storage when we don't need to, only get updates when there is a true change.\n distinctUntilChanged((a, b) => (a == null || b == null ? a == b : a === b)), // Treat null and undefined as equal\n );\n }\n\n get(keyDefinition: KeyDefinition | UserKeyDefinition): ActiveUserState {\n if (!isUserKeyDefinition(keyDefinition)) {\n keyDefinition = UserKeyDefinition.fromBaseKeyDefinition(keyDefinition);\n }\n\n // All other providers cache the creation of their corresponding `State` objects, this instance\n // doesn't need to do that since it calls `SingleUserStateProvider` it will go through their caching\n // layer, because of that, the creation of this instance is quite simple and not worth caching.\n return new DefaultActiveUserState(\n keyDefinition,\n this.activeUserId$,\n this.singleUserStateProvider,\n );\n }\n}\n","import { UserId } from \"../../../types/guid\";\nimport { StorageServiceProvider } from \"../../services/storage-service.provider\";\nimport { KeyDefinition } from \"../key-definition\";\nimport { StateEventRegistrarService } from \"../state-event-registrar.service\";\nimport { UserKeyDefinition, isUserKeyDefinition } from \"../user-key-definition\";\nimport { SingleUserState } from \"../user-state\";\nimport { SingleUserStateProvider } from \"../user-state.provider\";\n\nimport { DefaultSingleUserState } from \"./default-single-user-state\";\n\nexport class DefaultSingleUserStateProvider implements SingleUserStateProvider {\n private cache: Record> = {};\n\n constructor(\n private readonly storageServiceProvider: StorageServiceProvider,\n private readonly stateEventRegistrarService: StateEventRegistrarService,\n ) {}\n\n get(\n userId: UserId,\n keyDefinition: KeyDefinition | UserKeyDefinition,\n ): SingleUserState {\n if (!isUserKeyDefinition(keyDefinition)) {\n keyDefinition = UserKeyDefinition.fromBaseKeyDefinition(keyDefinition);\n }\n const [location, storageService] = this.storageServiceProvider.get(\n keyDefinition.stateDefinition.defaultStorageLocation,\n keyDefinition.stateDefinition.storageLocationOverrides,\n );\n const cacheKey = this.buildCacheKey(location, userId, keyDefinition);\n const existingUserState = this.cache[cacheKey];\n if (existingUserState != null) {\n // I have to cast out of the unknown generic but this should be safe if rules\n // around domain token are made\n return existingUserState as SingleUserState;\n }\n\n const newUserState = new DefaultSingleUserState(\n userId,\n keyDefinition,\n storageService,\n this.stateEventRegistrarService,\n );\n this.cache[cacheKey] = newUserState;\n return newUserState;\n }\n\n private buildCacheKey(\n location: string,\n userId: UserId,\n keyDefinition: UserKeyDefinition,\n ) {\n return `${location}_${keyDefinition.fullName}_${userId}`;\n }\n}\n","import { Observable } from \"rxjs\";\n\nimport { DerivedStateDependencies } from \"../../../types/state\";\nimport { DeriveDefinition } from \"../derive-definition\";\nimport { DerivedState } from \"../derived-state\";\nimport { DerivedStateProvider } from \"../derived-state.provider\";\n\nimport { DefaultDerivedState } from \"./default-derived-state\";\n\nexport class DefaultDerivedStateProvider implements DerivedStateProvider {\n private cache: Record> = {};\n\n constructor() {}\n\n get(\n parentState$: Observable,\n deriveDefinition: DeriveDefinition,\n dependencies: TDeps,\n ): DerivedState {\n const cacheKey = deriveDefinition.buildCacheKey();\n const existingDerivedState = this.cache[cacheKey];\n if (existingDerivedState != null) {\n // I have to cast out of the unknown generic but this should be safe if rules\n // around domain token are made\n return existingDerivedState as DefaultDerivedState;\n }\n\n const newDerivedState = this.buildDerivedState(parentState$, deriveDefinition, dependencies);\n this.cache[cacheKey] = newDerivedState;\n return newDerivedState;\n }\n\n protected buildDerivedState(\n parentState$: Observable,\n deriveDefinition: DeriveDefinition,\n dependencies: TDeps,\n ): DerivedState {\n return new DefaultDerivedState(parentState$, deriveDefinition, dependencies);\n }\n}\n","import { Observable, filter, of, switchMap, take } from \"rxjs\";\n\nimport { UserId } from \"../../../types/guid\";\nimport { DerivedStateDependencies } from \"../../../types/state\";\nimport { DeriveDefinition } from \"../derive-definition\";\nimport { DerivedState } from \"../derived-state\";\nimport { DerivedStateProvider } from \"../derived-state.provider\";\nimport { GlobalStateProvider } from \"../global-state.provider\";\nimport { KeyDefinition } from \"../key-definition\";\nimport { StateProvider } from \"../state.provider\";\nimport { UserKeyDefinition } from \"../user-key-definition\";\nimport { ActiveUserStateProvider, SingleUserStateProvider } from \"../user-state.provider\";\n\nexport class DefaultStateProvider implements StateProvider {\n activeUserId$: Observable;\n constructor(\n private readonly activeUserStateProvider: ActiveUserStateProvider,\n private readonly singleUserStateProvider: SingleUserStateProvider,\n private readonly globalStateProvider: GlobalStateProvider,\n private readonly derivedStateProvider: DerivedStateProvider,\n ) {\n this.activeUserId$ = this.activeUserStateProvider.activeUserId$;\n }\n\n getUserState$(\n keyDefinition: KeyDefinition | UserKeyDefinition,\n userId?: UserId,\n ): Observable {\n if (userId) {\n return this.getUser(userId, keyDefinition).state$;\n } else {\n return this.activeUserId$.pipe(\n filter((userId) => userId != null), // Filter out null-ish user ids since we can't get state for a null user id\n take(1),\n switchMap((userId) => this.getUser(userId, keyDefinition).state$),\n );\n }\n }\n\n getUserStateOrDefault$(\n keyDefinition: KeyDefinition | UserKeyDefinition,\n config: { userId: UserId | undefined; defaultValue?: T },\n ): Observable {\n const { userId, defaultValue = null } = config;\n if (userId) {\n return this.getUser(userId, keyDefinition).state$;\n } else {\n return this.activeUserId$.pipe(\n take(1),\n switchMap((userId) =>\n userId != null ? this.getUser(userId, keyDefinition).state$ : of(defaultValue),\n ),\n );\n }\n }\n\n async setUserState(\n keyDefinition: KeyDefinition | UserKeyDefinition,\n value: T,\n userId?: UserId,\n ): Promise<[UserId, T]> {\n if (userId) {\n return [userId, await this.getUser(userId, keyDefinition).update(() => value)];\n } else {\n return await this.getActive(keyDefinition).update(() => value);\n }\n }\n\n getActive: InstanceType[\"get\"] =\n this.activeUserStateProvider.get.bind(this.activeUserStateProvider);\n getUser: InstanceType[\"get\"] =\n this.singleUserStateProvider.get.bind(this.singleUserStateProvider);\n getGlobal: InstanceType[\"get\"] = this.globalStateProvider.get.bind(\n this.globalStateProvider,\n );\n getDerived: (\n parentState$: Observable,\n deriveDefinition: DeriveDefinition,\n dependencies: TDeps,\n ) => DerivedState = this.derivedStateProvider.get.bind(this.derivedStateProvider);\n}\n","import { ApiService } from \"../../abstractions/api.service\";\nimport { OrganizationApiServiceAbstraction as OrganizationApiService } from \"../../admin-console/abstractions/organization/organization-api.service.abstraction\";\nimport { OrganizationCreateRequest } from \"../../admin-console/models/request/organization-create.request\";\nimport { OrganizationKeysRequest } from \"../../admin-console/models/request/organization-keys.request\";\nimport { OrganizationResponse } from \"../../admin-console/models/response/organization.response\";\nimport { CryptoService } from \"../../platform/abstractions/crypto.service\";\nimport { EncryptService } from \"../../platform/abstractions/encrypt.service\";\nimport { I18nService } from \"../../platform/abstractions/i18n.service\";\nimport { EncString } from \"../../platform/models/domain/enc-string\";\nimport { OrgKey } from \"../../types/key\";\nimport { SyncService } from \"../../vault/abstractions/sync/sync.service.abstraction\";\nimport {\n OrganizationBillingServiceAbstraction,\n OrganizationInformation,\n PaymentInformation,\n PlanInformation,\n SubscriptionInformation,\n} from \"../abstractions/organization-billing.service\";\nimport { PlanType } from \"../enums\";\n\ninterface OrganizationKeys {\n encryptedKey: EncString;\n publicKey: string;\n encryptedPrivateKey: EncString;\n encryptedCollectionName: EncString;\n}\n\nexport class OrganizationBillingService implements OrganizationBillingServiceAbstraction {\n constructor(\n private apiService: ApiService,\n private cryptoService: CryptoService,\n private encryptService: EncryptService,\n private i18nService: I18nService,\n private organizationApiService: OrganizationApiService,\n private syncService: SyncService,\n ) {}\n\n async purchaseSubscription(subscription: SubscriptionInformation): Promise {\n const request = new OrganizationCreateRequest();\n\n const organizationKeys = await this.makeOrganizationKeys();\n\n this.setOrganizationKeys(request, organizationKeys);\n\n this.setOrganizationInformation(request, subscription.organization);\n\n this.setPlanInformation(request, subscription.plan);\n\n this.setPaymentInformation(request, subscription.payment);\n\n const response = await this.organizationApiService.create(request);\n\n await this.apiService.refreshIdentityToken();\n\n await this.syncService.fullSync(true);\n\n return response;\n }\n\n async startFree(subscription: SubscriptionInformation): Promise {\n const request = new OrganizationCreateRequest();\n\n const organizationKeys = await this.makeOrganizationKeys();\n\n this.setOrganizationKeys(request, organizationKeys);\n\n this.setOrganizationInformation(request, subscription.organization);\n\n this.setPlanInformation(request, subscription.plan);\n\n const response = await this.organizationApiService.create(request);\n\n await this.apiService.refreshIdentityToken();\n\n await this.syncService.fullSync(true);\n\n return response;\n }\n\n private async makeOrganizationKeys(): Promise {\n const [encryptedKey, key] = await this.cryptoService.makeOrgKey();\n const [publicKey, encryptedPrivateKey] = await this.cryptoService.makeKeyPair(key);\n const encryptedCollectionName = await this.encryptService.encrypt(\n this.i18nService.t(\"defaultCollection\"),\n key,\n );\n return {\n encryptedKey,\n publicKey,\n encryptedPrivateKey,\n encryptedCollectionName,\n };\n }\n\n private prohibitsAdditionalSeats(planType: PlanType) {\n switch (planType) {\n case PlanType.Free:\n case PlanType.FamiliesAnnually:\n case PlanType.FamiliesAnnually2019:\n case PlanType.TeamsStarter2023:\n case PlanType.TeamsStarter:\n return true;\n default:\n return false;\n }\n }\n\n private setOrganizationInformation(\n request: OrganizationCreateRequest,\n information: OrganizationInformation,\n ): void {\n request.name = information.name;\n request.businessName = information.businessName;\n request.billingEmail = information.billingEmail;\n request.initiationPath = information.initiationPath;\n }\n\n private setOrganizationKeys(request: OrganizationCreateRequest, keys: OrganizationKeys): void {\n request.key = keys.encryptedKey.encryptedString;\n request.keys = new OrganizationKeysRequest(\n keys.publicKey,\n keys.encryptedPrivateKey.encryptedString,\n );\n request.collectionName = keys.encryptedCollectionName.encryptedString;\n }\n\n private setPaymentInformation(\n request: OrganizationCreateRequest,\n information: PaymentInformation,\n ) {\n const [paymentToken, paymentMethodType] = information.paymentMethod;\n request.paymentToken = paymentToken;\n request.paymentMethodType = paymentMethodType;\n\n const billingInformation = information.billing;\n request.billingAddressPostalCode = billingInformation.postalCode;\n request.billingAddressCountry = billingInformation.country;\n\n if (billingInformation.taxId) {\n request.taxIdNumber = billingInformation.taxId;\n request.billingAddressLine1 = billingInformation.addressLine1;\n request.billingAddressLine2 = billingInformation.addressLine2;\n request.billingAddressCity = billingInformation.city;\n request.billingAddressState = billingInformation.state;\n }\n }\n\n private setPlanInformation(\n request: OrganizationCreateRequest,\n information: PlanInformation,\n ): void {\n request.planType = information.type;\n\n if (this.prohibitsAdditionalSeats(request.planType)) {\n request.useSecretsManager = information.subscribeToSecretsManager;\n request.isFromSecretsManagerTrial = information.isFromSecretsManagerTrial;\n return;\n }\n\n request.additionalSeats = information.passwordManagerSeats;\n\n if (information.subscribeToSecretsManager) {\n request.useSecretsManager = true;\n request.isFromSecretsManagerTrial = information.isFromSecretsManagerTrial;\n request.additionalSmSeats = information.secretsManagerSeats;\n request.additionalServiceAccounts = information.secretsManagerServiceAccounts;\n }\n\n if (information.storage) {\n request.additionalStorageGb = information.storage;\n }\n }\n}\n","import { Observable } from \"rxjs\";\n/**\n * Service for managing vault settings.\n */\nexport abstract class VaultSettingsService {\n /**\n * An observable monitoring the state of the enable passkeys setting.\n * The observable updates when the setting changes.\n */\n enablePasskeys$: Observable;\n /**\n * An observable monitoring the state of the show cards on the current tab.\n */\n showCardsCurrentTab$: Observable;\n /**\n * An observable monitoring the state of the show identities on the current tab.\n */\n showIdentitiesCurrentTab$: Observable;\n /**\n\n /**\n * Saves the enable passkeys setting to disk.\n * @param value The new value for the passkeys setting.\n */\n setEnablePasskeys: (value: boolean) => Promise;\n /**\n * Saves the show cards on tab page setting to disk.\n * @param value The new value for the show cards on tab page setting.\n */\n setShowCardsCurrentTab: (value: boolean) => Promise;\n /**\n * Saves the show identities on tab page setting to disk.\n * @param value The new value for the show identities on tab page setting.\n */\n setShowIdentitiesCurrentTab: (value: boolean) => Promise;\n}\n","import { Observable, map } from \"rxjs\";\n\nimport { ActiveUserState, GlobalState, StateProvider } from \"../../../platform/state\";\nimport { VaultSettingsService as VaultSettingsServiceAbstraction } from \"../../abstractions/vault-settings/vault-settings.service\";\nimport {\n SHOW_CARDS_CURRENT_TAB,\n SHOW_IDENTITIES_CURRENT_TAB,\n USER_ENABLE_PASSKEYS,\n} from \"../key-state/vault-settings.state\";\n\n/**\n * {@link VaultSettingsServiceAbstraction}\n */\nexport class VaultSettingsService implements VaultSettingsServiceAbstraction {\n private enablePasskeysState: GlobalState =\n this.stateProvider.getGlobal(USER_ENABLE_PASSKEYS);\n /**\n * {@link VaultSettingsServiceAbstraction.enablePasskeys$}\n */\n readonly enablePasskeys$: Observable = this.enablePasskeysState.state$.pipe(\n map((x) => x ?? true),\n );\n\n private showCardsCurrentTabState: ActiveUserState =\n this.stateProvider.getActive(SHOW_CARDS_CURRENT_TAB);\n /**\n * {@link VaultSettingsServiceAbstraction.showCardsCurrentTab$}\n */\n readonly showCardsCurrentTab$: Observable = this.showCardsCurrentTabState.state$.pipe(\n map((x) => x ?? true),\n );\n\n private showIdentitiesCurrentTabState: ActiveUserState = this.stateProvider.getActive(\n SHOW_IDENTITIES_CURRENT_TAB,\n );\n /**\n * {@link VaultSettingsServiceAbstraction.showIdentitiesCurrentTab$}\n */\n readonly showIdentitiesCurrentTab$: Observable =\n this.showIdentitiesCurrentTabState.state$.pipe(map((x) => x ?? true));\n\n constructor(private stateProvider: StateProvider) {}\n\n /**\n * {@link VaultSettingsServiceAbstraction.setShowCardsCurrentTab}\n */\n async setShowCardsCurrentTab(value: boolean): Promise {\n await this.showCardsCurrentTabState.update(() => value);\n }\n\n /**\n * {@link VaultSettingsServiceAbstraction.setDontShowIdentitiesCurrentTab}\n */\n async setShowIdentitiesCurrentTab(value: boolean): Promise {\n await this.showIdentitiesCurrentTabState.update(() => value);\n }\n\n /**\n * {@link VaultSettingsServiceAbstraction.setEnablePasskeys}\n */\n async setEnablePasskeys(value: boolean): Promise {\n await this.enablePasskeysState.update(() => value);\n }\n}\n","import { ApiService } from \"../../abstractions/api.service\";\nimport { BillingApiServiceAbstraction } from \"../../billing/abstractions\";\nimport { PaymentMethodType } from \"../../billing/enums\";\nimport { ExpandedTaxInfoUpdateRequest } from \"../../billing/models/request/expanded-tax-info-update.request\";\nimport { SubscriptionCancellationRequest } from \"../../billing/models/request/subscription-cancellation.request\";\nimport { TokenizedPaymentMethodRequest } from \"../../billing/models/request/tokenized-payment-method.request\";\nimport { VerifyBankAccountRequest } from \"../../billing/models/request/verify-bank-account.request\";\nimport { OrganizationBillingMetadataResponse } from \"../../billing/models/response/organization-billing-metadata.response\";\nimport { OrganizationBillingStatusResponse } from \"../../billing/models/response/organization-billing-status.response\";\nimport { OrganizationSubscriptionResponse } from \"../../billing/models/response/organization-subscription.response\";\nimport { PaymentInformationResponse } from \"../../billing/models/response/payment-information.response\";\nimport { PlanResponse } from \"../../billing/models/response/plan.response\";\nimport { ListResponse } from \"../../models/response/list.response\";\nimport { CreateClientOrganizationRequest } from \"../models/request/create-client-organization.request\";\nimport { UpdateClientOrganizationRequest } from \"../models/request/update-client-organization.request\";\nimport { ProviderSubscriptionResponse } from \"../models/response/provider-subscription-response\";\n\nexport class BillingApiService implements BillingApiServiceAbstraction {\n constructor(private apiService: ApiService) {}\n\n cancelOrganizationSubscription(\n organizationId: string,\n request: SubscriptionCancellationRequest,\n ): Promise {\n return this.apiService.send(\n \"POST\",\n \"/organizations/\" + organizationId + \"/cancel\",\n request,\n true,\n false,\n );\n }\n\n cancelPremiumUserSubscription(request: SubscriptionCancellationRequest): Promise {\n return this.apiService.send(\"POST\", \"/accounts/cancel\", request, true, false);\n }\n\n createClientOrganization(\n providerId: string,\n request: CreateClientOrganizationRequest,\n ): Promise {\n return this.apiService.send(\n \"POST\",\n \"/providers/\" + providerId + \"/clients\",\n request,\n true,\n false,\n );\n }\n\n async createSetupIntent(type: PaymentMethodType) {\n const getPath = () => {\n switch (type) {\n case PaymentMethodType.BankAccount: {\n return \"/setup-intent/bank-account\";\n }\n case PaymentMethodType.Card: {\n return \"/setup-intent/card\";\n }\n }\n };\n const response = await this.apiService.send(\"POST\", getPath(), null, true, true);\n return response as string;\n }\n\n async getBillingStatus(id: string): Promise {\n const r = await this.apiService.send(\n \"GET\",\n \"/organizations/\" + id + \"/billing-status\",\n null,\n true,\n true,\n );\n return new OrganizationBillingStatusResponse(r);\n }\n\n async getOrganizationBillingMetadata(\n organizationId: string,\n ): Promise {\n const r = await this.apiService.send(\n \"GET\",\n \"/organizations/\" + organizationId + \"/billing/metadata\",\n null,\n true,\n true,\n );\n\n return new OrganizationBillingMetadataResponse(r);\n }\n\n async getOrganizationSubscription(\n organizationId: string,\n ): Promise {\n const r = await this.apiService.send(\n \"GET\",\n \"/organizations/\" + organizationId + \"/subscription\",\n null,\n true,\n true,\n );\n return new OrganizationSubscriptionResponse(r);\n }\n\n async getPlans(): Promise> {\n const r = await this.apiService.send(\"GET\", \"/plans\", null, false, true);\n return new ListResponse(r, PlanResponse);\n }\n\n async getProviderPaymentInformation(providerId: string): Promise {\n const response = await this.apiService.send(\n \"GET\",\n \"/providers/\" + providerId + \"/billing/payment-information\",\n null,\n true,\n true,\n );\n return new PaymentInformationResponse(response);\n }\n\n async getProviderSubscription(providerId: string): Promise {\n const r = await this.apiService.send(\n \"GET\",\n \"/providers/\" + providerId + \"/billing/subscription\",\n null,\n true,\n true,\n );\n return new ProviderSubscriptionResponse(r);\n }\n\n async updateClientOrganization(\n providerId: string,\n organizationId: string,\n request: UpdateClientOrganizationRequest,\n ): Promise {\n return await this.apiService.send(\n \"PUT\",\n \"/providers/\" + providerId + \"/clients/\" + organizationId,\n request,\n true,\n false,\n );\n }\n\n async updateProviderPaymentMethod(\n providerId: string,\n request: TokenizedPaymentMethodRequest,\n ): Promise {\n return await this.apiService.send(\n \"PUT\",\n \"/providers/\" + providerId + \"/billing/payment-method\",\n request,\n true,\n false,\n );\n }\n\n async updateProviderTaxInformation(providerId: string, request: ExpandedTaxInfoUpdateRequest) {\n return await this.apiService.send(\n \"PUT\",\n \"/providers/\" + providerId + \"/billing/tax-information\",\n request,\n true,\n false,\n );\n }\n\n async verifyProviderBankAccount(providerId: string, request: VerifyBankAccountRequest) {\n return await this.apiService.send(\n \"POST\",\n \"/providers/\" + providerId + \"/billing/payment-method/verify-bank-account\",\n request,\n true,\n false,\n );\n }\n}\n","import { firstValueFrom, map, Observable } from \"rxjs\";\n\nimport { ActiveUserState, StateProvider } from \"../../platform/state\";\nimport { BillingApiServiceAbstraction as BillingApiService } from \"../abstractions/billilng-api.service.abstraction\";\nimport { PaymentMethodWarningsServiceAbstraction } from \"../abstractions/payment-method-warnings-service.abstraction\";\nimport { PAYMENT_METHOD_WARNINGS_KEY } from \"../models/billing-keys.state\";\nimport { PaymentMethodWarning } from \"../models/domain/payment-method-warning\";\n\nexport class PaymentMethodWarningsService implements PaymentMethodWarningsServiceAbstraction {\n private paymentMethodWarningsState: ActiveUserState>;\n paymentMethodWarnings$: Observable>;\n\n constructor(\n private billingApiService: BillingApiService,\n private stateProvider: StateProvider,\n ) {\n this.paymentMethodWarningsState = this.stateProvider.getActive(PAYMENT_METHOD_WARNINGS_KEY);\n this.paymentMethodWarnings$ = this.paymentMethodWarningsState.state$;\n }\n\n async acknowledge(organizationId: string): Promise {\n await this.paymentMethodWarningsState.update((state) => {\n const current = state[organizationId];\n state[organizationId] = {\n ...current,\n acknowledged: true,\n };\n return state;\n });\n }\n\n async removeSubscriptionRisk(organizationId: string): Promise {\n await this.paymentMethodWarningsState.update((state) => {\n const current = state[organizationId];\n state[organizationId] = {\n ...current,\n risksSubscriptionFailure: false,\n };\n return state;\n });\n }\n\n async clear(): Promise {\n await this.paymentMethodWarningsState.update(() => ({}));\n }\n\n async update(organizationId: string): Promise {\n const warning = await firstValueFrom(\n this.paymentMethodWarningsState.state$.pipe(\n map((state) => (!state ? null : state[organizationId])),\n ),\n );\n if (!warning || warning.savedAt < this.getOneWeekAgo()) {\n const { organizationName, risksSubscriptionFailure } =\n await this.billingApiService.getBillingStatus(organizationId);\n await this.paymentMethodWarningsState.update((state) => {\n state ??= {};\n state[organizationId] = {\n organizationName,\n risksSubscriptionFailure,\n acknowledged: false,\n savedAt: new Date(),\n };\n return state;\n });\n }\n }\n\n private getOneWeekAgo = (): Date => {\n const date = new Date();\n date.setDate(date.getDate() - 7);\n return date;\n };\n}\n","import { ApiService } from \"../../../abstractions/api.service\";\nimport { ProviderApiServiceAbstraction } from \"../../abstractions/provider/provider-api.service.abstraction\";\nimport { ProviderSetupRequest } from \"../../models/request/provider/provider-setup.request\";\nimport { ProviderUpdateRequest } from \"../../models/request/provider/provider-update.request\";\nimport { ProviderVerifyRecoverDeleteRequest } from \"../../models/request/provider/provider-verify-recover-delete.request\";\nimport { ProviderResponse } from \"../../models/response/provider/provider.response\";\n\nexport class ProviderApiService implements ProviderApiServiceAbstraction {\n constructor(private apiService: ApiService) {}\n async postProviderSetup(id: string, request: ProviderSetupRequest) {\n const r = await this.apiService.send(\n \"POST\",\n \"/providers/\" + id + \"/setup\",\n request,\n true,\n true,\n );\n return new ProviderResponse(r);\n }\n\n async getProvider(id: string) {\n const r = await this.apiService.send(\"GET\", \"/providers/\" + id, null, true, true);\n return new ProviderResponse(r);\n }\n\n async putProvider(id: string, request: ProviderUpdateRequest) {\n const r = await this.apiService.send(\"PUT\", \"/providers/\" + id, request, true, true);\n return new ProviderResponse(r);\n }\n\n providerRecoverDeleteToken(\n providerId: string,\n request: ProviderVerifyRecoverDeleteRequest,\n ): Promise {\n return this.apiService.send(\n \"POST\",\n \"/providers/\" + providerId + \"/delete-recover-token\",\n request,\n false,\n false,\n );\n }\n\n async deleteProvider(id: string): Promise {\n await this.apiService.send(\"DELETE\", \"/providers/\" + id, null, true, false);\n }\n}\n","export abstract class BraintreeServiceAbstraction {\n /**\n * Utilizes the Braintree SDK to create a [Braintree drop-in]{@link https://braintree.github.io/braintree-web-drop-in/docs/current/Dropin.html} instance attached to the container ID specified as part of the {@link loadBraintree} method.\n */\n createDropin: () => void;\n\n /**\n * Loads the Bitwarden dropin.js script in the element of the current page.\n * This script attaches the Braintree SDK to the window.\n * @param containerId - The ID of the HTML element where the Braintree drop-in will be loaded at.\n * @param autoCreateDropin - Specifies whether the Braintree drop-in should be created when dropin.js loads.\n */\n loadBraintree: (containerId: string, autoCreateDropin: boolean) => void;\n\n /**\n * Invokes the Braintree [requestPaymentMethod]{@link https://braintree.github.io/braintree-web-drop-in/docs/current/Dropin.html#requestPaymentMethod} method\n * in order to generate a payment method token using the active Braintree drop-in.\n */\n requestPaymentMethod: () => Promise;\n\n /**\n * Removes the following elements from the of the current page:\n * - The Bitwarden dropin.js script\n * - Any