passbolt-browser-extension 5.13.0 → 5.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/.devcontainer/Dockerfile +33 -3
  2. package/.devcontainer/devcontainer-lock.json +9 -0
  3. package/.devcontainer/post-start.sh +1 -2
  4. package/.github/workflows/codeql-analysis.yml +2 -1
  5. package/.github/workflows/release_candidate.yaml +3 -1
  6. package/.gitlab-ci.yml +1 -0
  7. package/CHANGELOG.md +202 -70
  8. package/CODEOWNERS +2 -0
  9. package/RELEASE_NOTES.md +4 -2
  10. package/package.json +9 -7
  11. package/renovate.json +6 -0
  12. package/src/all/background_page/controller/InformMenuController/InformMenuController.js +2 -5
  13. package/src/all/background_page/controller/InformMenuController/InformMenuController.test.js +31 -1
  14. package/src/all/background_page/controller/account/getAndInitializeAccountLocaleController.js +1 -1
  15. package/src/all/background_page/controller/account/getAndInitializeAccountLocaleController.test.js +6 -14
  16. package/src/all/background_page/controller/account/updatePrivateKeyController.js +7 -5
  17. package/src/all/background_page/controller/account/updatePrivateKeyController.test.js +18 -13
  18. package/src/all/background_page/controller/accountRecovery/accountRecoveryGenerateOrganizationKeyController.js +4 -2
  19. package/src/all/background_page/controller/accountRecovery/accountRecoveryGenerateOrganizationKeyController.test.js +25 -2
  20. package/src/all/background_page/controller/accountRecovery/accountRecoveryLoginController.js +1 -1
  21. package/src/all/background_page/controller/accountRecovery/accountRecoveryLoginController.test.js +10 -5
  22. package/src/all/background_page/controller/accountRecovery/recoverAccountController.js +6 -2
  23. package/src/all/background_page/controller/accountRecovery/recoverAccountController.test.js +11 -4
  24. package/src/all/background_page/controller/auth/authCheckStatus.test.data.js +6 -6
  25. package/src/all/background_page/controller/auth/authCheckStatusController.js +11 -3
  26. package/src/all/background_page/controller/auth/authCheckStatusController.test.js +74 -44
  27. package/src/all/background_page/controller/auth/authIsMfaRequiredController.js +11 -3
  28. package/src/all/background_page/controller/auth/authIsMfaRequiredController.test.js +18 -9
  29. package/src/all/background_page/controller/auth/authLoginController.js +1 -1
  30. package/src/all/background_page/controller/auth/authLoginController.test.js +10 -5
  31. package/src/all/background_page/controller/autofill/AutofillController.js +3 -3
  32. package/src/all/background_page/controller/autofill/AutofillController.test.js +20 -12
  33. package/src/all/background_page/controller/export/exportResourcesFileController.js +6 -3
  34. package/src/all/background_page/controller/export/exportResourcesFileController.test.js +34 -4
  35. package/src/all/background_page/controller/extension/onExtensionInstalledController.js +8 -2
  36. package/src/all/background_page/controller/extension/onExtensionInstalledController.test.js +5 -1
  37. package/src/all/background_page/controller/group/{getOrFindGroupsController.js → findGroupsByIdsForShareController.js} +9 -10
  38. package/src/all/background_page/controller/group/{getOrFindGroupsController.test.js → findGroupsByIdsForShareController.test.js} +8 -8
  39. package/src/all/background_page/controller/group/groupUpdateController.test.js +1 -0
  40. package/src/all/background_page/controller/import/importResourcesFileController.test.js +8 -1
  41. package/src/all/background_page/controller/informCallToActionController/informCallToActionController.js +2 -2
  42. package/src/all/background_page/controller/informCallToActionController/informCallToActionController.test.js +7 -4
  43. package/src/all/background_page/controller/locale/getLocaleController.js +3 -2
  44. package/src/all/background_page/controller/metadata/findMetadataTypesSettingsController.test.js +9 -15
  45. package/src/all/background_page/controller/metadata/getMetadataTypesSettingsController.test.js +9 -15
  46. package/src/all/background_page/controller/metadata/getOrFindMetadataKeysSettingsController.test.js +12 -22
  47. package/src/all/background_page/controller/metadata/shareMetadataKeyPrivateController.test.js +14 -2
  48. package/src/all/background_page/controller/move/moveFolderController.test.js +8 -0
  49. package/src/all/background_page/controller/move/moveResourcesController.test.js +8 -0
  50. package/src/all/background_page/controller/passwordExpiry/getOrFindPasswordExpirySettingsController.test.js +13 -8
  51. package/src/all/background_page/controller/passwordExpiry/savePasswordExpirySettingsController.js +4 -4
  52. package/src/all/background_page/controller/passwordExpiry/savePasswordExpirySettingsController.test.js +8 -10
  53. package/src/all/background_page/controller/permission/findPermissionsByIdsForShareController.js +62 -0
  54. package/src/all/background_page/controller/permission/findPermissionsByIdsForShareController.test.js +71 -0
  55. package/src/all/background_page/controller/recover/generateRecoverAccountRecoveryRequestKeyController.js +1 -1
  56. package/src/all/background_page/controller/resource/resourceCreateController.js +11 -4
  57. package/src/all/background_page/controller/resource/resourceCreateController.test.js +12 -1
  58. package/src/all/background_page/controller/resource/resourceUpdateController.js +11 -4
  59. package/src/all/background_page/controller/resource/resourceUpdateController.test.js +35 -2
  60. package/src/all/background_page/controller/resourceType/getResourceTypesController.js +5 -4
  61. package/src/all/background_page/controller/resourceType/getResourceTypesController.test.js +5 -2
  62. package/src/all/background_page/controller/resourceType/updateAllResourceTypesDeletedStatusController.js +3 -2
  63. package/src/all/background_page/controller/resourceType/updateAllResourceTypesDeletedStatusController.test.js +16 -3
  64. package/src/all/background_page/controller/secret/findSecretByResourceIdController.js +3 -3
  65. package/src/all/background_page/controller/secret/findSecretByResourceIdController.test.js +24 -0
  66. package/src/all/background_page/controller/secretRevision/findResourceSecretRevisionsForDisplayController.js +2 -1
  67. package/src/all/background_page/controller/setup/generateSetupKeyPairController.js +6 -3
  68. package/src/all/background_page/controller/setup/generateSetupKeyPairController.test.js +11 -1
  69. package/src/all/background_page/controller/setup/getAndInitSetupLocaleController.js +1 -1
  70. package/src/all/background_page/controller/setup/getAndInitSetupLocaleController.test.js +14 -18
  71. package/src/all/background_page/controller/setup/setSetupLocaleController.js +1 -1
  72. package/src/all/background_page/controller/setup/setSetupLocaleController.test.js +6 -10
  73. package/src/all/background_page/controller/setup/signInSetupController.js +6 -2
  74. package/src/all/background_page/controller/setup/signInSetupController.test.js +10 -5
  75. package/src/all/background_page/controller/share/shareOneFolderController.test.js +8 -0
  76. package/src/all/background_page/controller/share/shareResourcesController.test.js +9 -1
  77. package/src/all/background_page/controller/siteSettings/getOrFindSiteSettingsController.js +59 -0
  78. package/src/all/background_page/controller/siteSettings/getOrFindSiteSettingsController.test.js +150 -0
  79. package/src/all/background_page/controller/{group/getOrFindGroupsUsersController.js → user/getOrFindAllUsersController.js} +12 -17
  80. package/src/all/background_page/controller/user/getOrFindAllUsersController.test.js +55 -0
  81. package/src/all/background_page/controller/user/getOrFindLoggedInUserController.js +3 -3
  82. package/src/all/background_page/controller/user/getOrFindLoggedInUserController.test.js +19 -15
  83. package/src/all/background_page/controller/user/updateUserLocalStorageController.test.js +8 -5
  84. package/src/all/background_page/event/accountRecoveryEvents.js +4 -4
  85. package/src/all/background_page/event/appEvents.js +7 -2
  86. package/src/all/background_page/event/authEvents.js +2 -2
  87. package/src/all/background_page/event/groupEvents.js +4 -17
  88. package/src/all/background_page/event/informCallToActionEvents.js +1 -1
  89. package/src/all/background_page/event/informMenuEvents.js +1 -1
  90. package/src/all/background_page/event/localeEvents.js +4 -3
  91. package/src/all/background_page/event/permissionEvents.js +13 -0
  92. package/src/all/background_page/event/recoverEvents.js +4 -4
  93. package/src/all/background_page/event/resourceEvents.js +6 -15
  94. package/src/all/background_page/event/resourceTypeEvents.js +4 -3
  95. package/src/all/background_page/event/setupEvents.js +4 -4
  96. package/src/all/background_page/event/siteSettingsEvents.js +29 -0
  97. package/src/all/background_page/event/userEvents.js +4 -8
  98. package/src/all/background_page/index.js +0 -37
  99. package/src/all/background_page/model/entity/account/abstractAccountEntity.js +2 -2
  100. package/src/all/background_page/model/entity/account/accountAccountRecoveryEntity.js +7 -17
  101. package/src/all/background_page/model/entity/account/accountEntity.js +7 -14
  102. package/src/all/background_page/model/entity/account/accountKitEntity.js +1 -2
  103. package/src/all/background_page/model/entity/account/accountRecoverEntity.js +4 -14
  104. package/src/all/background_page/model/entity/account/accountSetupEntity.js +4 -14
  105. package/src/all/background_page/model/entity/account/accountTemporaryEntity.js +2 -5
  106. package/src/all/background_page/model/entity/gpgkey/generate/generateGpgKeyPairOptionsEntity.test.js +5 -5
  107. package/src/all/background_page/model/entity/localStorage/localStorageMetadataEntity.js +49 -0
  108. package/src/all/background_page/model/entity/localStorage/localStorageMetadataEntity.test.data.js +23 -0
  109. package/src/all/background_page/model/entity/localStorage/localStorageMetadataEntity.test.js +51 -0
  110. package/src/all/background_page/model/entity/{organizationSettings/organizationSettingsEntity.js → siteSettings/siteSettingsEntity.js} +17 -24
  111. package/src/all/background_page/model/entity/{organizationSettings/organizationSettingsEntity.test.data.js → siteSettings/siteSettingsEntity.test.data.js} +9 -9
  112. package/src/all/background_page/model/entity/{organizationSettings/organizationSettingsEntity.test.js → siteSettings/siteSettingsEntity.test.js} +30 -39
  113. package/src/all/background_page/model/entity/user/userEntity.test.js +6 -6
  114. package/src/all/background_page/model/export/resources/resourcesKdbxExporter.js +40 -3
  115. package/src/all/background_page/model/export/resources/resourcesKdbxExporter.test.js +122 -0
  116. package/src/all/background_page/model/import/resources/resourcesKdbxImportParser.js +1 -1
  117. package/src/all/background_page/model/locale/localeModel.js +13 -8
  118. package/src/all/background_page/model/passwordExpiry/passwordExpirySettingsModel.js +6 -6
  119. package/src/all/background_page/model/passwordExpiry/passwordExpirySettingsModel.test.js +3 -2
  120. package/src/all/background_page/model/resource/resourceModel.js +4 -4
  121. package/src/all/background_page/model/user/userModel.js +7 -28
  122. package/src/all/background_page/model/user/userModel.test.js +51 -99
  123. package/src/all/background_page/pagemod/appBootstrapPagemod.js +4 -1
  124. package/src/all/background_page/pagemod/appBootstrapPagemod.test.js +5 -2
  125. package/src/all/background_page/pagemod/appPagemod.js +32 -6
  126. package/src/all/background_page/pagemod/appPagemod.test.js +22 -10
  127. package/src/all/background_page/pagemod/authPagemod.js +2 -10
  128. package/src/all/background_page/pagemod/authPagemod.test.js +4 -4
  129. package/src/all/background_page/pagemod/pagemodManager.test.js +5 -2
  130. package/src/all/background_page/pagemod/quickAccessPagemod.js +2 -2
  131. package/src/all/background_page/pagemod/quickAccessPagemod.test.js +4 -4
  132. package/src/all/background_page/pagemod/recoverPagemod.js +2 -2
  133. package/src/all/background_page/pagemod/recoverPagemod.test.js +6 -0
  134. package/src/all/background_page/pagemod/setupPagemod.js +2 -2
  135. package/src/all/background_page/pagemod/setupPagemod.test.js +6 -0
  136. package/src/all/background_page/pagemod/webIntegrationPagemod.js +21 -2
  137. package/src/all/background_page/pagemod/webIntegrationPagemod.test.js +16 -25
  138. package/src/all/background_page/service/account/getActiveAccountService.js +2 -3
  139. package/src/all/background_page/service/account/getLegacyAccountService.js +3 -14
  140. package/src/all/background_page/service/account/updateSsoCredentialsService.js +9 -5
  141. package/src/all/background_page/service/api/group/groupApiService.js +9 -16
  142. package/src/all/background_page/service/api/group/groupApiService.test.js +59 -26
  143. package/src/all/background_page/service/api/siteSettings/siteSettingsApiService.js +46 -0
  144. package/src/all/background_page/service/api/siteSettings/siteSettingsApiService.test.js +63 -0
  145. package/src/all/background_page/service/auth/checkAuthStatusService.js +27 -14
  146. package/src/all/background_page/service/auth/checkAuthStatusService.test.js +80 -62
  147. package/src/all/background_page/service/auth/postLoginService.js +3 -3
  148. package/src/all/background_page/service/auth/postLoginService.test.js +4 -4
  149. package/src/all/background_page/service/auth/startLoopAuthSessionCheckService.js +5 -1
  150. package/src/all/background_page/service/auth/startLoopAuthSessionCheckService.test.js +14 -8
  151. package/src/all/background_page/service/authenticationStatusService.js +13 -18
  152. package/src/all/background_page/service/authenticationStatusService.test.js +9 -6
  153. package/src/all/background_page/service/crypto/generateGpgKeyPairService.test.js +5 -5
  154. package/src/all/background_page/service/crypto/getGpgKeyCreationDateService.js +7 -6
  155. package/src/all/background_page/service/crypto/getGpgKeyCreationDateService.test.js +10 -7
  156. package/src/all/background_page/service/extension/onExtensionUpdateAvailableService.js +7 -2
  157. package/src/all/background_page/service/extension/onExtensionUpdateAvailableService.test.js +5 -5
  158. package/src/all/background_page/service/group/findGroupsService.js +42 -1
  159. package/src/all/background_page/service/group/findGroupsService.test.js +82 -0
  160. package/src/all/background_page/service/group/groupUpdateSecretsCryptoService.js +82 -0
  161. package/src/all/background_page/service/group/groupUpdateSecretsCryptoService.test.js +102 -0
  162. package/src/all/background_page/service/group/groupUpdateService.js +49 -78
  163. package/src/all/background_page/service/group/groupUpdateService.test.js +136 -0
  164. package/src/all/background_page/service/localStorage/localStorageService.js +8 -6
  165. package/src/all/background_page/service/localStorage/localStorageService.test.js +33 -15
  166. package/src/all/background_page/service/local_storage/abstractLocalStorage.js +193 -0
  167. package/src/all/background_page/service/local_storage/abstractLocalStorage.test.data.js +45 -0
  168. package/src/all/background_page/service/local_storage/abstractLocalStorage.test.js +271 -0
  169. package/src/all/background_page/service/local_storage/activeSessionLocalStorage.js +105 -0
  170. package/src/all/background_page/service/local_storage/activeSessionLocalStorage.test.js +153 -0
  171. package/src/all/background_page/service/local_storage/rbacLocalStorage.js +10 -82
  172. package/src/all/background_page/service/local_storage/rbacLocalStorage.test.js +8 -8
  173. package/src/all/background_page/service/local_storage/resourceTypeLocalStorage.js +10 -43
  174. package/src/all/background_page/service/local_storage/resourceTypeLocalStorage.test.js +68 -0
  175. package/src/all/background_page/service/local_storage/siteSettingsLocalStorage.js +104 -0
  176. package/src/all/background_page/service/local_storage/siteSettingsLocalStorage.test.js +114 -0
  177. package/src/all/background_page/service/local_storage/userMeLocalStorage.js +50 -0
  178. package/src/all/background_page/service/{sessionStorage/userMeSessionStorageService.test.js → local_storage/userMeLocalStorage.test.js} +55 -36
  179. package/src/all/background_page/service/metadata/encryptMetadataService.js +3 -3
  180. package/src/all/background_page/service/metadata/encryptMetadataService.test.js +11 -11
  181. package/src/all/background_page/service/metadata/findAndUpdateMetadataSettingsLocalStorageService.js +4 -4
  182. package/src/all/background_page/service/metadata/findAndUpdateMetadataSettingsLocalStorageService.test.js +18 -16
  183. package/src/all/background_page/service/metadata/getOrFindMetadataSettingsService.test.js +6 -8
  184. package/src/all/background_page/service/metadata/rotateMetadata/rotateResourcesMetadataKeyService.test.js +4 -4
  185. package/src/all/background_page/service/metadata/shareMetadataKeyPrivateService.js +3 -3
  186. package/src/all/background_page/service/metadata/shareMetadataKeyPrivateService.test.js +1 -1
  187. package/src/all/background_page/service/metadata/verifyOrTrustMetadataKeyService.js +4 -4
  188. package/src/all/background_page/service/metadata/verifyOrTrustMetadataKeyService.test.js +9 -7
  189. package/src/all/background_page/service/migrateMetadata/migrateMetadataResourcesService.js +4 -4
  190. package/src/all/background_page/service/migrateMetadata/migrateMetadataResourcesService.test.js +6 -6
  191. package/src/all/background_page/service/rbac/findAndUpdateRbacsLocalStorageService.js +2 -2
  192. package/src/all/background_page/service/rbac/getOrFindRbacService.js +1 -1
  193. package/src/all/background_page/service/resource/create/resourceCreateService.js +41 -51
  194. package/src/all/background_page/service/resource/create/resourceCreateService.test.js +100 -98
  195. package/src/all/background_page/service/resource/export/exportResourcesService.js +7 -7
  196. package/src/all/background_page/service/resource/findAndUpdateResourcesLocalStorageService.js +4 -4
  197. package/src/all/background_page/service/resource/findResourcesService.js +13 -16
  198. package/src/all/background_page/service/resource/findResourcesService.test.js +12 -11
  199. package/src/all/background_page/service/resource/getOrFindResourcesService.js +3 -3
  200. package/src/all/background_page/service/resource/import/ImportResourcesService.js +9 -9
  201. package/src/all/background_page/service/resource/import/ImportResourcesService.test.js +30 -15
  202. package/src/all/background_page/service/resource/update/resourceUpdateService.js +38 -19
  203. package/src/all/background_page/service/resource/update/resourceUpdateService.test.js +64 -31
  204. package/src/all/background_page/service/resourceType/getOrFindResourceTypesService.js +49 -0
  205. package/src/all/background_page/service/resourceType/getOrFindResourceTypesService.test.js +61 -0
  206. package/src/all/background_page/service/resourceType/getSecretSchemaResourceTypeService.js +44 -0
  207. package/src/all/background_page/service/resourceType/updateResourceTypesService.js +6 -4
  208. package/src/all/background_page/service/resourceType/updateResourceTypesService.test.js +19 -14
  209. package/src/all/background_page/service/secretRevisions/findAndDecryptSecretRevisionsService.js +5 -4
  210. package/src/all/background_page/service/secretRevisions/findAndDecryptSecretRevisionsService.test.js +16 -9
  211. package/src/all/background_page/service/share/shareResourceService.js +4 -4
  212. package/src/all/background_page/service/share/shareResourceService.test.js +6 -6
  213. package/src/all/background_page/service/siteSettings/findAndUpdateSiteSettingsLocalStorageService.js +77 -0
  214. package/src/all/background_page/service/siteSettings/findAndUpdateSiteSettingsLocalStorageService.test.js +130 -0
  215. package/src/all/background_page/service/siteSettings/findSiteSettingsService.js +47 -0
  216. package/src/all/background_page/service/siteSettings/findSiteSettingsService.test.js +68 -0
  217. package/src/all/background_page/service/siteSettings/getOrFindSiteSettingsService.js +84 -0
  218. package/src/all/background_page/service/siteSettings/getOrFindSiteSettingsService.test.js +175 -0
  219. package/src/all/background_page/service/siteSettings/siteSettingsRuntimeCache.js +70 -0
  220. package/src/all/background_page/service/sso/generateSsoKitService.test.js +2 -2
  221. package/src/all/background_page/service/toolbar/toolbarService.js +6 -4
  222. package/src/all/background_page/service/toolbar/toolbarService.test.js +14 -13
  223. package/src/all/background_page/service/user/findAndUpdateUsersLocalStorageService.js +4 -4
  224. package/src/all/background_page/service/user/findAndUpdateUsersLocalStorageService.test.js +3 -3
  225. package/src/all/background_page/service/user/getOrFindMeService.js +64 -0
  226. package/src/all/background_page/service/user/getOrFindMeService.test.js +65 -0
  227. package/src/all/background_page/service/userKeyPolicies/findUserKeyPoliciesSettingsService.js +5 -4
  228. package/src/all/background_page/service/userKeyPolicies/findUserKeyPoliciesSettingsService.test.js +12 -11
  229. package/src/all/background_page/service/validator/appEmailValidatorService.js +11 -6
  230. package/src/all/background_page/service/validator/appEmailValidatorService.test.js +11 -11
  231. package/src/all/common/polyfill/browserPolyfill.js +8 -8
  232. package/src/all/locales/cs-CZ/common.json +1 -4
  233. package/src/all/locales/de-DE/common.json +1 -4
  234. package/src/all/locales/en-UK/common.json +0 -3
  235. package/src/all/locales/es-ES/common.json +1 -4
  236. package/src/all/locales/fr-FR/common.json +1 -4
  237. package/src/all/locales/it-IT/common.json +1 -4
  238. package/src/all/locales/ja-JP/common.json +1 -4
  239. package/src/all/locales/ko-KR/common.json +0 -3
  240. package/src/all/locales/lt-LT/common.json +1 -4
  241. package/src/all/locales/nl-NL/common.json +1 -4
  242. package/src/all/locales/pl-PL/common.json +1 -4
  243. package/src/all/locales/pt-BR/common.json +1 -4
  244. package/src/all/locales/ro-RO/common.json +1 -4
  245. package/src/all/locales/ru-RU/common.json +1 -4
  246. package/src/all/locales/sl-SI/common.json +1 -4
  247. package/src/all/locales/sv-SE/common.json +1 -4
  248. package/src/all/locales/uk-UA/common.json +1 -4
  249. package/src/all/webAccessibleResources/js/app/QuickAccess.js +7 -0
  250. package/src/chrome/manifest.json +1 -1
  251. package/src/chrome-mv3/manifest.json +1 -1
  252. package/src/chrome-mv3/offscreens/service/group/addUsersToGroupOffscreenService.js +132 -0
  253. package/src/chrome-mv3/offscreens/service/group/addUsersToGroupOffscreenService.test.js +125 -0
  254. package/src/chrome-mv3/offscreens/service/offscreen/handleOffscreenRequestService.js +4 -0
  255. package/src/chrome-mv3/serviceWorker/service/addUsersToGroup/requestAddUsersToGroupOffscreenService.js +83 -0
  256. package/src/chrome-mv3/serviceWorker/service/addUsersToGroup/requestAddUsersToGroupOffscreenService.test.js +116 -0
  257. package/src/chrome-mv3/serviceWorker/service/addUsersToGroup/responseAddUsersToGroupOffscreenService.js +99 -0
  258. package/src/chrome-mv3/serviceWorker/service/addUsersToGroup/responseAddUsersToGroupOffscreenService.test.data.js +45 -0
  259. package/src/chrome-mv3/serviceWorker/service/addUsersToGroup/responseAddUsersToGroupOffscreenService.test.js +87 -0
  260. package/src/chrome-mv3/serviceWorker/service/network/requestFetchOffscreenService.js +0 -1
  261. package/src/chrome-mv3/serviceWorker/service/offscreen/handleOffscreenResponseService.js +15 -0
  262. package/src/firefox/manifest.json +1 -1
  263. package/src/safari/background_page/index.js +0 -37
  264. package/src/safari/common/polyfill/safariBrowserPolyfill.js +10 -10
  265. package/src/safari/manifest.json +1 -1
  266. package/test/jest.setup.js +4 -2
  267. package/src/all/background_page/controller/group/getOrFindGroupsUsersController.test.js +0 -69
  268. package/src/all/background_page/controller/organizationSettings/getOrganizationSettingsController.js +0 -55
  269. package/src/all/background_page/controller/organizationSettings/getOrganizationSettingsController.test.js +0 -45
  270. package/src/all/background_page/controller/resource/findAllByIdsForDisplayPermissionsController.js +0 -76
  271. package/src/all/background_page/controller/resource/findAllByIdsForDisplayPermissionsController.test.js +0 -102
  272. package/src/all/background_page/event/organizationSettingsEvents.js +0 -37
  273. package/src/all/background_page/model/organizationSettings/organizationSettingsModel.js +0 -93
  274. package/src/all/background_page/model/resourceType/resourceTypeModel.js +0 -72
  275. package/src/all/background_page/model/resourceType/resourceTypeModel.test.js +0 -101
  276. package/src/all/background_page/service/api/organizationSettings/organizationSettingsService.js +0 -58
  277. package/src/all/background_page/service/group/getOrFindGroupsService.js +0 -65
  278. package/src/all/background_page/service/group/getOrFindGroupsService.test.js +0 -168
  279. package/src/all/background_page/service/group/getOrFindGroupsUsersService.js +0 -51
  280. package/src/all/background_page/service/group/getOrFindGroupsUsersService.test.js +0 -94
  281. package/src/all/background_page/service/local_storage/authStatusLocalStorage.js +0 -70
  282. package/src/all/background_page/service/sessionStorage/userMeSessionStorageService.js +0 -94
@@ -10,6 +10,36 @@ RUN chmod 0644 /etc/profile.d/safe-chain-shims.sh \
10
10
  >> /etc/bash.bashrc
11
11
  ENV PATH="/home/node/.safe-chain/shims:${PATH}"
12
12
 
13
- RUN curl -fsSL https://claude.ai/install.sh | bash -s stable \
14
- && cp /root/.local/bin/claude /usr/local/bin/claude
15
-
13
+ # Install Claude Code CLI by downloading the release binary directly and verifying it
14
+ # against Anthropic's GPG-signed manifest — no remote install script is ever executed.
15
+ # Bump CLAUDE_VERSION to upgrade (>= 2.1.89 required for signed manifests).
16
+ # Key fingerprint + manifest scheme: https://code.claude.com/docs/en/setup#binary-integrity-and-code-signing
17
+ # The per-version binary URL ("$base/$CLAUDE_VERSION/$platform/claude") is the path the
18
+ # official installer uses to fetch the binary (de-facto stable; not formally documented).
19
+ ARG CLAUDE_VERSION=2.1.176
20
+ RUN set -eux; \
21
+ apt-get update; \
22
+ apt-get install -y --no-install-recommends ca-certificates curl gnupg jq; \
23
+ rm -rf /var/lib/apt/lists/*; \
24
+ case "$(dpkg --print-architecture)" in \
25
+ amd64) platform=linux-x64 ;; \
26
+ arm64) platform=linux-arm64 ;; \
27
+ *) echo "Unsupported architecture" >&2; exit 1 ;; \
28
+ esac; \
29
+ export GNUPGHOME="$(mktemp -d)"; \
30
+ curl -fsSL https://downloads.claude.ai/keys/claude-code.asc | gpg --batch --import; \
31
+ gpg --batch --fingerprint security@anthropic.com \
32
+ | grep -q '31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE'; \
33
+ base=https://downloads.claude.ai/claude-code-releases; \
34
+ curl -fsSL "$base/$CLAUDE_VERSION/manifest.json" -o /tmp/manifest.json; \
35
+ curl -fsSL "$base/$CLAUDE_VERSION/manifest.json.sig" -o /tmp/manifest.json.sig; \
36
+ gpg --batch --verify /tmp/manifest.json.sig /tmp/manifest.json; \
37
+ expected="$(jq -r ".platforms[\"$platform\"].checksum" /tmp/manifest.json)"; \
38
+ curl -fsSL "$base/$CLAUDE_VERSION/$platform/claude" -o /tmp/claude; \
39
+ echo "$expected /tmp/claude" | sha256sum -c -; \
40
+ install -d -o node -g node /home/node/.local/bin; \
41
+ install -o node -g node -m 0755 /tmp/claude /home/node/.local/bin/claude; \
42
+ gpgconf --kill all; \
43
+ rm -rf "$GNUPGHOME" /tmp/manifest.json /tmp/manifest.json.sig /tmp/claude; \
44
+ /home/node/.local/bin/claude --version
45
+ ENV PATH="/home/node/.local/bin:${PATH}"
@@ -0,0 +1,9 @@
1
+ {
2
+ "features": {
3
+ "ghcr.io/devcontainers/features/git:1": {
4
+ "version": "1.3.5",
5
+ "resolved": "ghcr.io/devcontainers/features/git@sha256:27905dc196c01f77d6ba8709cb82eeaf330b3b108772e2f02d1cd0d826de1251",
6
+ "integrity": "sha256:27905dc196c01f77d6ba8709cb82eeaf330b3b108772e2f02d1cd0d826de1251"
7
+ }
8
+ }
9
+ }
@@ -15,6 +15,5 @@ if [ "$ERRORS" -gt 0 ]; then
15
15
  echo "WARNING: $ERRORS mount(s) missing. Claude Code may not work correctly."
16
16
  fi
17
17
 
18
- echo "==> Updating Claude Code..."
19
- curl -fsSL https://claude.ai/install.sh | bash -s stable
18
+ echo "==> Claude Code version:"
20
19
  claude --version
@@ -16,8 +16,9 @@ jobs:
16
16
 
17
17
  steps:
18
18
  - name: Checkout repository
19
- uses: actions/checkout@v2
19
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
20
20
  with:
21
+ persist-credentials: false
21
22
  # We must fetch at least the immediate parents so that if this is
22
23
  # a pull request then we can checkout the head.
23
24
  fetch-depth: 2
@@ -12,7 +12,9 @@ jobs:
12
12
  permissions:
13
13
  contents: write
14
14
  steps:
15
- - uses: actions/checkout@v4
15
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
16
+ with:
17
+ persist-credentials: false
16
18
  - env:
17
19
  GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
18
20
  name: Create Release candidate
package/.gitlab-ci.yml ADDED
@@ -0,0 +1 @@
1
+ # Empty file to make NPMJS happy :D
package/CHANGELOG.md CHANGED
@@ -4,81 +4,205 @@ This project adheres to [Semantic Versioning](http://semver.org/).
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [5.14.2] - 2026-07-27
8
+ ### Fixed
9
+ - PB-53322: throttle permissions confirmation dialog requests
10
+ - PB-53211: fix an error when creating an account
11
+ - PB-53316: fix edition name translation
12
+
13
+ ## [5.14.1] - 2026-07-23
14
+ ### Fixed
15
+ - PB-53277: adapt findAllByIdsForShare to fetch the user profiles
16
+
17
+ ### Maintenance
18
+ - PB-53277: update groupApiService to support 'contains' on 'get' method
19
+
20
+
21
+ ## [5.14.0] - 2026-07-09
22
+ ### Added
23
+ - PB-45405 - Sort suggested resources by relevance instead of URI lengths
24
+ - PB-51236 - OFM - WP2.3 Create SiteSettingsLocalStorage
25
+ - PB-51476 - Add support for ADFS and OIDC on the account recovery with SSO workflow
26
+ - PB-51810 - PCD 2.29 - Create GroupPermissionItem
27
+ - PB-51811 - PCD 2.30 - Remove SharePermissionItem
28
+ - PB-51813 - PCD 2.32 - Update CreateResource to call the workflow handler
29
+ - PB-51814 - PCD 2.33 - Create PermissionServiceWorkerService
30
+ - PB-51826 - PCD 3.01 - Update EditResource to call the workflow handler
31
+ - PB-51828 - PCD 3.03 - Add edition handling in HandlePermissionWorkflow
32
+ - PB-51829 - PCD 3.04 - Update resourceUpdateService to get permissions list from the styleguide
33
+ - PB-51830 - PCD 3.05 - Update EditResource to display dialog
34
+ - PB-51831 - PCD 3.06 - Update DisplayResourcesListContextualMenu to trigger HandlePermissionWorkflow
35
+ - PB-51832 - PCD 3.07 - Update DisplayResourcesWorkspaceMenu to trigger HandlePermissionWorkflow
36
+ - PB-51833 - PCD 3.08 - Handle read-only mode in permission dialog
37
+ - PB-51835 - PCD 4.01 - Add share handling in HandlePermissionWorkflow
38
+ - PB-51836 - PCD 4.02 - Adapt PermissionServiceWorkerService (savePermissions)
39
+ - PB-51838 - PCD 4.04 - Update DisplayResourcesListContextualMenu to trigger HandlePermissionWorkflow from sharing
40
+ - PB-51839 - PCD 4.05 - Update DisplayResourcesWorkspaceMenu to trigger HandlePermissionWorkflow from sharing
41
+ - PB-52205 - OFM - WP1.4 Create SiteSettingsEntity
42
+ - PB-52213 - OFM - WP3.4 Create SiteSettingsApiService
43
+ - PB-52215 - OFM - WP4.18 Create GetOrFindSiteSettingsService
44
+ - PB-52216 - OFM - WP4.19 Create FindSiteSettingsService
45
+ - PB-52217 - OFM - WP4.20 findAndUpdateSiteSettingsLocalStorageService
46
+ - PB-52350 - LS - WP1.1 Create local storage online session entity
47
+ - PB-52352 - LS - WP1.2 Create local storage metadata entity
48
+ - PB-52354 - LS - WP2.1 Create online session local storage
49
+ - PB-52363 - LS - WP2.2 Create abstract local storage
50
+ - PB-52374 - LS - WP2.3 Migrate Rbac local storage
51
+ - PB-52375 - LS - WP2.4 Migrate Resource types local storage
52
+ - PB-52411 - LS - WP2.5 Migrate UserMe local storage
53
+ - PB-52412 - LS - WP2.6 Remove AuthStatus local storage to use ActiveSession local storage
54
+ - PB-52447 - LS - WP3.1 Update GetOrFindRbacService
55
+ - PB-52451 - LS - WP3.2 Create GetOrFindMeService and remove userModel getOrFindMe
56
+ - PB-52460 - LS - WP 3.3 Create GetOrFindResourceTypes and remove resourceTypeModel getOrFindAll
57
+ - PB-52713 - SORTURL - WP 1.1 - Implement url sorting algorithm in sortUtils
58
+ - PB-52714 - SORTURL - WP 1.2 - Use sortUtils in HomePage
59
+ - PB-52715 - SORTURL - WP 1.3 - Use sortUtils in InformMenuController
60
+ - PB-52965 - HLL - WP 4.1 Hide the last logged in column for non admins
61
+ - PB-52977 - PCD 6.26 - Fix group member count display on newly added group
62
+ - PB-53028 - PCD 6.27 - Adapt Permission confirmation dialog title based on the ran process
63
+ - PB-52536 - Display passbolt edition in right sidebar footer
64
+
65
+ ### Fixed
66
+ - PB-50607 - Inject In-form menu CTA container inside Dialog element
67
+ - PB-50876 - Secret history doesn't take in consideration RBAC cfg
68
+ - PB-51920 - Multiple autofill issues
69
+ - PB-52683 - Fix missing translation in healthcheck page
70
+ - PB-52799 - In-Form menu CTA not visible anymore
71
+ - PB-52357 - Mark "OpenId Configuration Path" as a required field in SSO
72
+ - PB-52938 - Fix the subscriptionKey button not appearing when API is below than 5.13
73
+
74
+ ### Maintenance
75
+ - PB-50075 - Remove DisplayUserDetailsActivity
76
+ - PB-51917 - Remove getOrFindAll from UserModel
77
+ - PB-52199 - Remove `formatOrderOptions` reference in API services as it is not in use
78
+ - PB-52298 - Cover admin edition management journeys with end to end tests
79
+ - PB-52467 - Pin js dependencies in lockfile
80
+ - PB-52606 - Assert Subscription Details
81
+ - PB-52607 - Assert Current Subscription Edition
82
+ - PB-52609 - Upgrade to Pro
83
+ - PB-52612 - Downgrade to CE
84
+ - PB-52613 - Edit the organization subscription key in adminer
85
+ - PB-52614 - Notify user of successful downgrade, Expire User's Session and Re-authenticate the user
86
+ - PB-52615 - Assert Subscription Panel
87
+ - PB-52691 - Retry In-form menu CTA injection when DOM changes are detected
88
+ - PB-52711 - Create new subscription key using rsa public/private keys to avoid exposing production valid subscription key
89
+ - PB-52542 - Update subscription page design
90
+ - PB-52584 - Downgrade to CE design
91
+
92
+ ### Security
93
+ - PB-49150 - Aikido#915877 Potential Cross Site Scripting (XSS) via window.location.href - passbolt-styleguide (info)
94
+ - PB-51261 - Major upgrade for i18next (High)
95
+ - PB-52333 - Improper Access Control in portManager (Info)
96
+ - PB-52334 - Improper Input Validation in resourcesKdbxExporter (Medium)
97
+ - PB-52485 - Fix esbuild GHSA-gv7w-rqvm-qjhr - HIGH CVSS3.1
98
+ - PB-52538 - Major upgrade for js-yaml (Medium)
99
+ - PB-52554 - Fix ws GHSA-96hv-2xvq-fx4p - HIGH CVSS 3.1
100
+ - PB-52555 - Fix launch-editor GHSA-v6wh-96g9-6wx3 - MEDIUM CVSS4.0
101
+ - PB-52556 - Fix tmp GHSA-7c78-jf6q-g5cm - HIGH CVSS3.1
102
+ - PB-52557 - Fix form-data GHSA-hmw2-7cc7-3qxx - HIGH CVSS4.0
103
+ - PB-52558 - Fix @babel/core GHSA-4x5r-pxfx-6jf8 - LOW CVSS3.1
104
+ - PB-52601 - Fix undici GHSA-vmh5-mc38-953g - HIGH CVSS3.1
105
+ - PB-52602 - Fix http-proxy-middleware GHSA-64mm-vxmg-q3vj - MEDIUM CVSS4.0
106
+ - PB-52603 - Fix webpack-dev-server GHSA-mx8g-39q3-5c79 - MEDIUM CVSS3.1
107
+ - PB-52611 - Small upgrade for serialize-javascript (High)
108
+ - PB-52621 - Fix undici GHSA-g8m3-5g58-fq7m - HIGH CVSS 3.1
109
+ - PB-52719 - Potential Cross Site Scripting (XSS) via window.location.href (Medium)
110
+
111
+
112
+ ## [5.13.4] - 2026-06-18
113
+ ### Fixed
114
+ - PB-52569 Add user to group freezing the page
115
+
116
+ ## [5.13.3] - 2026-06-17
117
+ ### Fixed
118
+ - Fix version mismatch between tag and package.json
119
+
120
+ ## [5.13.2] - 2026-06-17
121
+ ### Fixed
122
+ - PB-51699 Fix adding a user to a large group
123
+
124
+ ## [5.13.1] - 2026-06-15
125
+ ### Fixed
126
+ - PB-52478 Remove subscription CTA when edition plugin is not enabled
127
+
128
+ ### Maintenance
129
+ - PB-52428 Update subscription links
130
+
7
131
  ## [5.13.0] - 2026-06-11
8
132
  ### Added
9
- PB-51594 Move findAllForActionLogController and test to the correct location
10
- PB-48516 Build process improvement - Webpack
11
- PB-51534 Update group edit call in groupApiService to contain "my_group_user" as urlOptions
12
- PB-51580 PCD 1.1 - Migrate SearchUsersAndGroupsController off ShareModel
13
- PB-51585 PCD 1.2 - Migrate resourceCreateService ShareModel usage to ShareResourceService
14
- PB-51586 PCD 1.3 - Move passbolt.share.get-folders to controller pattern
15
- PB-51587 PCD 1.4 - Clear ShareModel
16
- PB-51588 PCD 1.5 - Migrate MoveFolderController off FolderModel
17
- PB-51589 PCD 1.6 - Migrate MoveOneFolderService off FolderModel
18
- PB-51590 PCD 1.7 - Migrate MoveResourcesService off FolderModel + ResourceModel
19
- PB-51782 PCD 2.01 - Create SynchroniseKeyringController and binding
20
- PB-51783 PCD 2.02 - Create KeyringServiceWorkerService
21
- PB-51785 PCD 2.04 - Create GetOrFindGroupService
22
- PB-51786 PCD 2.05 - Create GetOrFindGroupController and binding
23
- PB-51787 PCD 2.06 - Create GetOrFindGroupsUsersService
24
- PB-51788 PCD 2.07 - Create GetOrFindGroupsUsersController and binding
25
- PB-51789 PCD 2.08 - Create GetOrFindUsersService
26
- PB-51790 PCD 2.09 - Create GetOrFindUsersController and binding
27
- PB-51791 PCD 2.10 - Add new methods getByIds, getGroupsUsersByGropuId on GroupServiceWorkerService
28
- PB-51999 PCD 2.10.B - Consolidate UserEntity between browser extension and styleguide
29
- PB-52000 PCD 2.10.C - Move GroupEntity + GroupsCollection to the styleguide
30
- PB-51792 PCD 2.11 - Create UserServiceWorkerService
31
- PB-51793 PCD 2.12 - Create PermissionServiceWorkerService
32
- PB-51794 PCD 2.13 - Create SearchUsersAndGroupsService
33
- PB-51795 PCD 2.14 - Refactor ShareService into ShareApiService
34
- PB-51796 PCD 2.15 - Update GroupApiService to support the new filter
35
- PB-51798 PCD 2.17 - Update FindAndUpdateGroupsLocalStorageService to add a method findForLocalStorageByIds
36
- PB-51799 PCD 2.18 - Align UserLocalStorage to add memory cache
37
- PB-51800 PCD 2.19 - Rename UserService to UserApiService
38
- PB-52047 CE/PRO upgrade
39
- PB-49605 Grid columns min-width
40
- PB-51808 PCD 2.27 - Create UserPermissionItem
41
- PB-51809 PCD 2.28 - Create GroupUserPermissionItem
42
- PB-47929 PAG - WP1.1 Add pagination support to ResourceService
43
- PB-47930 PAG - WP1.2 Paginate resource fetch for updating local storage in FindResourceService
44
- PB-52056 Add create method to SubscriptionKeyServiceWorkerService
45
- PB-52057 Add delete method to SubscriptionKeyServiceWorkerService
46
- PB-52058 Adapt EditSubscriptionKey to be customizable
47
- PB-52061 Adapt DisplaySubscriptionKeyTeasing to handle upgrade from app
48
- PB-52064 Create ConfirmDowngradeSubscriptionDialog
49
- PB-52062 Adapt DisplaySubscriptionKey to handle downgrading
50
- PB-52128 DisplaySubscriptionKey new layout
133
+ - PB-51594 Move findAllForActionLogController and test to the correct location
134
+ - PB-48516 Build process improvement - Webpack
135
+ - PB-51534 Update group edit call in groupApiService to contain "my_group_user" as urlOptions
136
+ - PB-51580 PCD 1.1 - Migrate SearchUsersAndGroupsController off ShareModel
137
+ - PB-51585 PCD 1.2 - Migrate resourceCreateService ShareModel usage to ShareResourceService
138
+ - PB-51586 PCD 1.3 - Move passbolt.share.get-folders to controller pattern
139
+ - PB-51587 PCD 1.4 - Clear ShareModel
140
+ - PB-51588 PCD 1.5 - Migrate MoveFolderController off FolderModel
141
+ - PB-51589 PCD 1.6 - Migrate MoveOneFolderService off FolderModel
142
+ - PB-51590 PCD 1.7 - Migrate MoveResourcesService off FolderModel + ResourceModel
143
+ - PB-51782 PCD 2.01 - Create SynchroniseKeyringController and binding
144
+ - PB-51783 PCD 2.02 - Create KeyringServiceWorkerService
145
+ - PB-51785 PCD 2.04 - Create GetOrFindGroupService
146
+ - PB-51786 PCD 2.05 - Create GetOrFindGroupController and binding
147
+ - PB-51787 PCD 2.06 - Create GetOrFindGroupsUsersService
148
+ - PB-51788 PCD 2.07 - Create GetOrFindGroupsUsersController and binding
149
+ - PB-51789 PCD 2.08 - Create GetOrFindUsersService
150
+ - PB-51790 PCD 2.09 - Create GetOrFindUsersController and binding
151
+ - PB-51791 PCD 2.10 - Add new methods getByIds, getGroupsUsersByGropuId on GroupServiceWorkerService
152
+ - PB-51999 PCD 2.10.B - Consolidate UserEntity between browser extension and styleguide
153
+ - PB-52000 PCD 2.10.C - Move GroupEntity + GroupsCollection to the styleguide
154
+ - PB-51792 PCD 2.11 - Create UserServiceWorkerService
155
+ - PB-51793 PCD 2.12 - Create PermissionServiceWorkerService
156
+ - PB-51794 PCD 2.13 - Create SearchUsersAndGroupsService
157
+ - PB-51795 PCD 2.14 - Refactor ShareService into ShareApiService
158
+ - PB-51796 PCD 2.15 - Update GroupApiService to support the new filter
159
+ - PB-51798 PCD 2.17 - Update FindAndUpdateGroupsLocalStorageService to add a method findForLocalStorageByIds
160
+ - PB-51799 PCD 2.18 - Align UserLocalStorage to add memory cache
161
+ - PB-51800 PCD 2.19 - Rename UserService to UserApiService
162
+ - PB-52047 CE/PRO upgrade
163
+ - PB-49605 Grid columns min-width
164
+ - PB-51808 PCD 2.27 - Create UserPermissionItem
165
+ - PB-51809 PCD 2.28 - Create GroupUserPermissionItem
166
+ - PB-47929 PAG - WP1.1 Add pagination support to ResourceService
167
+ - PB-47930 PAG - WP1.2 Paginate resource fetch for updating local storage in FindResourceService
168
+ - PB-52056 Add create method to SubscriptionKeyServiceWorkerService
169
+ - PB-52057 Add delete method to SubscriptionKeyServiceWorkerService
170
+ - PB-52058 Adapt EditSubscriptionKey to be customizable
171
+ - PB-52061 Adapt DisplaySubscriptionKeyTeasing to handle upgrade from app
172
+ - PB-52064 Create ConfirmDowngradeSubscriptionDialog
173
+ - PB-52062 Adapt DisplaySubscriptionKey to handle downgrading
174
+ - PB-52128 DisplaySubscriptionKey new layout
51
175
 
52
176
  ### Security
53
- PB-51937 Fix ws GHSA-58qx-3vcg-4xpx - MEDIUM CVSS3.1
54
- PB-51938 Fix brace-expansion GHSA-jxxr-4gwj-5jf2 - MEDIUM CVSS3.1
55
- PB-52029 Fix tmp GHSA-ph9p-34f9-6g65 - HIGH CVSS4.0
56
- PB-51532 Include GitLab file from ci-definitions repo
57
- PB-51642 Fix fast-uri GHSA-q3j6-qgpj-74h6 - HIGH CVSS3.1
58
- PB-51643 Fix @babel/plugin-transform-modules-systemjs GHSA-fv7c-fp4j-7gwp - HIGH CVSS3.1
59
- PB-51940 Fix qs GHSA-q8mj-m7cp-5q26 - MEDIUM CVSS4.0
60
- PB-52030 Fix webpack-dev-server GHSA-79cf-xcqc-c78w - MEDIUM CVSS3.1
61
- PB-51698 Use correct passbolt repo names in safe-chain whitelist
62
-
63
- ### Fixed
64
- PB-52148 CSP is blocking upload to TOTP QRCode on Firefox
65
- PB-50949 Fix MetadataKeysSettingsLocalStorageContext and MetadataTypesSettingsLocalStorageContext entity issue on storage changes
66
- PB-52047 Fix Passbolt Pro Edition wording
67
- PB-52156 Fix password preview button min-width
177
+ - PB-51937 Fix ws GHSA-58qx-3vcg-4xpx - MEDIUM CVSS3.1
178
+ - PB-51938 Fix brace-expansion GHSA-jxxr-4gwj-5jf2 - MEDIUM CVSS3.1
179
+ - PB-52029 Fix tmp GHSA-ph9p-34f9-6g65 - HIGH CVSS4.0
180
+ - PB-51532 Include GitLab file from ci-definitions repo
181
+ - PB-51642 Fix fast-uri GHSA-q3j6-qgpj-74h6 - HIGH CVSS3.1
182
+ - PB-51643 Fix @babel/plugin-transform-modules-systemjs GHSA-fv7c-fp4j-7gwp - HIGH CVSS3.1
183
+ - PB-51940 Fix qs GHSA-q8mj-m7cp-5q26 - MEDIUM CVSS4.0
184
+ - PB-52030 Fix webpack-dev-server GHSA-79cf-xcqc-c78w - MEDIUM CVSS3.1
185
+ - PB-51698 Use correct passbolt repo names in safe-chain whitelist
186
+
187
+ ### Fixed
188
+ - PB-52148 CSP is blocking upload to TOTP QRCode on Firefox
189
+ - PB-50949 Fix MetadataKeysSettingsLocalStorageContext and MetadataTypesSettingsLocalStorageContext entity issue on storage changes
190
+ - PB-52047 Fix Passbolt Pro Edition wording
191
+ - PB-52156 Fix password preview button min-width
68
192
 
69
193
  ### Maintenance
70
- PB-48560 Use NODE_ENV for webpack mode config
71
- PB-48564 Remove grunt-header
72
- PB-48528 Transpile LESS from webpack
73
- PB-48558 Extract translations directly from webpack
74
- PB-48559 Remove rimraf
75
- PB-49064 Remove Grunt
76
- PB-48516 Replace eval sourcemap by inline
77
- PB-48516 Prevent br tags to be added in translations.
78
- PB-48516 Remove duplicated translations
79
- PB-51793: Add PermissionServiceWorkerService and transfer Permission entity and collection on styleguide
80
- PB-51160 Update Firefox manifest to avoid Mozilla warnings
81
- PB-52155 Update github issue template
194
+ - PB-48560 Use NODE_ENV for webpack mode config
195
+ - PB-48564 Remove grunt-header
196
+ - PB-48528 Transpile LESS from webpack
197
+ - PB-48558 Extract translations directly from webpack
198
+ - PB-48559 Remove rimraf
199
+ - PB-49064 Remove Grunt
200
+ - PB-48516 Replace eval sourcemap by inline
201
+ - PB-48516 Prevent br tags to be added in translations.
202
+ - PB-48516 Remove duplicated translations
203
+ - PB-51793: Add PermissionServiceWorkerService and transfer Permission entity and collection on styleguide
204
+ - PB-51160 Update Firefox manifest to avoid Mozilla warnings
205
+ - PB-52155 Update github issue template
82
206
 
83
207
  ## [5.12.2] - 2026-05-19
84
208
  ### Fixed
@@ -2801,7 +2925,15 @@ self registration settings option in the left-side bar
2801
2925
  - AP: User with plugin installed
2802
2926
  - LU: Logged in user
2803
2927
 
2804
- [Unreleased]: https://github.com/passbolt/passbolt_browser_extension/compare/v5.12.2...HEAD
2928
+ [Unreleased]: https://github.com/passbolt/passbolt_browser_extension/compare/v5.14.2...HEAD
2929
+ [5.14.2]: https://github.com/passbolt/passbolt_browser_extension/compare/v5.14.1...v5.14.2
2930
+ [5.14.1]: https://github.com/passbolt/passbolt_browser_extension/compare/v5.14.0...v5.14.1
2931
+ [5.14.0]: https://github.com/passbolt/passbolt_browser_extension/compare/v5.13.4...v5.14.0
2932
+ [5.13.4]: https://github.com/passbolt/passbolt_browser_extension/compare/v5.13.3...v5.13.4
2933
+ [5.13.3]: https://github.com/passbolt/passbolt_browser_extension/compare/v5.13.2...v5.13.3
2934
+ [5.13.2]: https://github.com/passbolt/passbolt_browser_extension/compare/v5.13.1...v5.13.2
2935
+ [5.13.1]: https://github.com/passbolt/passbolt_browser_extension/compare/v5.13.0...v5.13.1
2936
+ [5.13.0]: https://github.com/passbolt/passbolt_browser_extension/compare/v5.12.1...v5.13.0
2805
2937
  [5.12.2]: https://github.com/passbolt/passbolt_browser_extension/compare/v5.12.1...v5.12.2
2806
2938
  [5.12.1]: https://github.com/passbolt/passbolt_browser_extension/compare/v5.12.0...v5.12.1
2807
2939
  [5.12.0]: https://github.com/passbolt/passbolt_browser_extension/compare/v5.11.3...v5.12.0
package/CODEOWNERS ADDED
@@ -0,0 +1,2 @@
1
+ [Front-end]
2
+ * @passbolt/groups/front-end-group
package/RELEASE_NOTES.md CHANGED
@@ -1,4 +1,6 @@
1
- Passbolt 5.12.2 fixes an issue that arose in Chrome 148, which caused a service worker that did not respond within the specified time limit to be terminated.
1
+ # v5.14.2
2
2
 
3
3
  ### Fixed
4
- - PB-51648 Fix add user to group reducing set timeout
4
+ - PB-53322: throttle permissions confirmation dialog requests
5
+ - PB-53211: fix an error when creating an account
6
+ - PB-53316: fix edition name translation
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "passbolt-browser-extension",
3
- "version": "5.13.0",
3
+ "version": "5.14.2",
4
4
  "license": "AGPL-3.0",
5
5
  "copyright": "Copyright 2025 Passbolt SA",
6
6
  "description": "Passbolt web extension for the open source password manager for teams",
@@ -14,14 +14,14 @@
14
14
  "await-lock": "^2.1.0",
15
15
  "downloadjs": "^1.4.7",
16
16
  "eckey-utils": "^0.7.14",
17
- "i18next": "^25.4.0",
17
+ "i18next": "^26.3.4",
18
18
  "i18next-http-backend": "^3.0.5",
19
19
  "ip-regex": "^5.0.0",
20
20
  "jssha": "~3.3.1",
21
21
  "kdbxweb": "2.1.1",
22
22
  "openpgp": "^6.1.1",
23
23
  "papaparse": "^5.5.2",
24
- "passbolt-styleguide": "^5.13.0",
24
+ "passbolt-styleguide": "^5.14.6",
25
25
  "react": "^18.3.1",
26
26
  "react-dom": "^18.3.1",
27
27
  "secrets-passbolt": "github:passbolt/secrets.js#v2.0.1",
@@ -31,7 +31,7 @@
31
31
  "xregexp": "~5.1.2"
32
32
  },
33
33
  "devDependencies": {
34
- "@babel/core": "^7.23.2",
34
+ "@babel/core": "^7.29.7",
35
35
  "@babel/helpers": "^7.26.10",
36
36
  "@babel/plugin-transform-runtime": "^7.22.9",
37
37
  "@babel/preset-env": "^7.29.5",
@@ -71,13 +71,15 @@
71
71
  "prettier": "3.6.2",
72
72
  "terser-webpack-plugin": "^5.4.0",
73
73
  "text-encoding-utf-8": "^1.0.2",
74
- "web-ext": "^10.3.0",
75
- "webpack": "^5.105.2",
74
+ "web-ext": "^10.4.0",
75
+ "webpack": "^5.107.2",
76
76
  "webpack-cli": "^7.0.2"
77
77
  },
78
78
  "overrides": {
79
79
  "@xmldom/xmldom": "0.8.13",
80
- "uuid": "^14.0.0"
80
+ "uuid": "^14.0.0",
81
+ "shell-quote": "1.8.4",
82
+ "js-yaml": "^4.2.0"
81
83
  },
82
84
  "scripts": {
83
85
  "build": "webpack",
package/renovate.json ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3
+ "extends": [
4
+ "local>passbolt/passbolt-ops/renovate"
5
+ ]
6
+ }
@@ -12,15 +12,14 @@
12
12
  * @since 3.4.0
13
13
  */
14
14
 
15
- import ResourceModel from "../../model/resource/resourceModel";
16
15
  import { QuickAccessService } from "../../service/ui/quickAccess.service";
17
16
  import GetPassphraseService from "../../service/passphrase/getPassphraseService";
18
17
  import BrowserTabService from "../../service/ui/browserTab.service";
19
18
  import ExternalResourceEntity from "../../model/entity/resource/external/externalResourceEntity";
20
19
  import ResourceInProgressCacheService from "../../service/cache/resourceInProgressCache.service";
21
20
  import WorkerService from "../../service/worker/workerService";
22
- import ResourceTypeModel from "../../model/resourceType/resourceTypeModel";
23
21
  import ResourceMetadataEntity from "passbolt-styleguide/src/shared/models/entity/resource/metadata/resourceMetadataEntity";
22
+ import { sortResourcesByUriMatchingScore } from "passbolt-styleguide/src/shared/utils/sortUtils";
24
23
  import GetOrFindResourcesService from "../../service/resource/getOrFindResourcesService";
25
24
 
26
25
  /**
@@ -35,8 +34,6 @@ class InformMenuController {
35
34
  */
36
35
  constructor(worker, apiClientOptions, account) {
37
36
  this.worker = worker;
38
- this.resourceModel = new ResourceModel(apiClientOptions, account);
39
- this.resourceTypeModel = new ResourceTypeModel(apiClientOptions);
40
37
  this.getPassphraseService = new GetPassphraseService(account);
41
38
  this.getOrFindResourcesService = new GetOrFindResourcesService(account, apiClientOptions);
42
39
  }
@@ -61,7 +58,7 @@ class InformMenuController {
61
58
  const configuration = {
62
59
  inputType: callToActionInput.type,
63
60
  inputValue: callToActionInput.value,
64
- suggestedResources: suggestedResources.toDto(),
61
+ suggestedResources: sortResourcesByUriMatchingScore(suggestedResources.toDto(), this.worker.tab.url),
65
62
  };
66
63
 
67
64
  this.worker.port.emit(requestId, "SUCCESS", configuration);
@@ -27,6 +27,9 @@ import { defaultResourcesDtos } from "passbolt-styleguide/src/shared/models/enti
27
27
  import ResourcesCollection from "../../model/entity/resource/resourcesCollection";
28
28
  import ExternalResourceEntity from "../../model/entity/resource/external/externalResourceEntity";
29
29
  import ResourceMetadataEntity from "passbolt-styleguide/src/shared/models/entity/resource/metadata/resourceMetadataEntity";
30
+ import { sortResourcesByUriMatchingScore } from "passbolt-styleguide/src/shared/utils/sortUtils";
31
+ import { defaultResourceDto } from "passbolt-styleguide/src/shared/models/entity/resource/resourceEntity.test.data";
32
+ import { defaultResourceMetadataDto } from "passbolt-styleguide/src/shared/models/entity/resource/metadata/resourceMetadataEntity.test.data";
30
33
 
31
34
  describe("InformMenuController", () => {
32
35
  let requestId, worker, port, controller, webIntegrationPort;
@@ -79,10 +82,37 @@ describe("InformMenuController", () => {
79
82
  expect(port.emit).toHaveBeenCalledWith(requestId, "SUCCESS", {
80
83
  inputType: "password",
81
84
  inputValue: "test",
82
- suggestedResources: suggestedResourcesDtos,
85
+ suggestedResources: sortResourcesByUriMatchingScore(suggestedResourcesDtos, worker.tab.url),
83
86
  });
84
87
  });
85
88
 
89
+ it("Should sort suggestedResources by URI matching score with the tab url, best match first", async () => {
90
+ expect.assertions(2);
91
+
92
+ const noMatch = defaultResourceDto({ metadata: defaultResourceMetadataDto({ uris: ["https://example.com"] }) });
93
+ const sameDomain = defaultResourceDto({ metadata: defaultResourceMetadataDto({ uris: ["passbolt.com"] }) });
94
+ const sameFqdn = defaultResourceDto({
95
+ metadata: defaultResourceMetadataDto({ uris: ["https://www.passbolt.com/login"] }),
96
+ });
97
+ const exactMatch = defaultResourceDto({
98
+ metadata: defaultResourceMetadataDto({ uris: ["https://www.passbolt.com"] }),
99
+ });
100
+
101
+ const unsortedCollection = new ResourcesCollection([noMatch, sameDomain, sameFqdn, exactMatch]);
102
+ jest.spyOn(controller.getOrFindResourcesService, "getOrFindSuggested").mockResolvedValue(unsortedCollection);
103
+
104
+ await controller.getInitialConfiguration(requestId);
105
+
106
+ const emittedConfiguration = port.emit.mock.calls[0][2];
107
+ expect(port.emit).toHaveBeenCalledWith(requestId, "SUCCESS", expect.anything());
108
+ expect(emittedConfiguration.suggestedResources.map((resource) => resource.id)).toEqual([
109
+ exactMatch.id,
110
+ sameFqdn.id,
111
+ sameDomain.id,
112
+ noMatch.id,
113
+ ]);
114
+ });
115
+
86
116
  it("Should catch and emit ERROR when WorkerService throws an error", async () => {
87
117
  expect.assertions(1);
88
118
 
@@ -25,7 +25,7 @@ class GetAndInitializeAccountLocaleController {
25
25
  this.worker = worker;
26
26
  this.requestId = requestId;
27
27
  this.account = account;
28
- this.localeModel = new LocaleModel(apiClientOptions);
28
+ this.localeModel = new LocaleModel(apiClientOptions, account);
29
29
  }
30
30
 
31
31
  /**
@@ -17,11 +17,15 @@ import AccountEntity from "../../model/entity/account/accountEntity";
17
17
  import GetAndInitializeAccountLocaleController from "./getAndInitializeAccountLocaleController";
18
18
  import { enableFetchMocks } from "jest-fetch-mock";
19
19
  import { defaultApiClientOptions } from "passbolt-styleguide/src/shared/lib/apiClient/apiClientOptions.test.data";
20
- import { anonymousOrganizationSettings } from "../../model/entity/organizationSettings/organizationSettingsEntity.test.data";
21
- import { mockApiResponse } from "../../../../../test/mocks/mockApiResponse";
20
+ import { anonymousSiteSettings } from "passbolt-styleguide/src/shared/models/entity/siteSettings/siteSettingsEntity.test.data";
21
+ import SiteSettingsEntity from "passbolt-styleguide/src/shared/models/entity/siteSettings/siteSettingsEntity";
22
+ import GetOrFindSiteSettingsService from "../../service/siteSettings/getOrFindSiteSettingsService";
22
23
 
23
24
  beforeEach(() => {
24
25
  enableFetchMocks();
26
+ jest
27
+ .spyOn(GetOrFindSiteSettingsService.prototype, "getOrFind")
28
+ .mockImplementation(() => new SiteSettingsEntity(anonymousSiteSettings()));
25
29
  });
26
30
 
27
31
  describe("GetAndInitializeAccountLocaleController", () => {
@@ -36,10 +40,6 @@ describe("GetAndInitializeAccountLocaleController", () => {
36
40
  storedAccount,
37
41
  );
38
42
 
39
- // Mock API fetch organization settings
40
- const mockApiResult = anonymousOrganizationSettings();
41
- fetch.doMockOnce(() => mockApiResponse(mockApiResult));
42
-
43
43
  expect.assertions(1);
44
44
  const locale = await controller.exec();
45
45
  const expectedLocaleDto = { locale: "de-DE", label: "Deutsch" };
@@ -56,10 +56,6 @@ describe("GetAndInitializeAccountLocaleController", () => {
56
56
  storedAccount,
57
57
  );
58
58
 
59
- // Mock API fetch organization settings
60
- const mockApiResult = anonymousOrganizationSettings();
61
- fetch.doMockOnce(() => mockApiResponse(mockApiResult));
62
-
63
59
  expect.assertions(1);
64
60
  const locale = await controller.exec();
65
61
  const expectedLocaleDto = { locale: "en-UK", label: "English" };
@@ -76,10 +72,6 @@ describe("GetAndInitializeAccountLocaleController", () => {
76
72
  storedAccount,
77
73
  );
78
74
 
79
- // Mock API fetch organization settings
80
- const mockApiResult = anonymousOrganizationSettings({ app: { locale: null } });
81
- fetch.doMockOnce(() => mockApiResponse(mockApiResult));
82
-
83
75
  expect.assertions(1);
84
76
  const locale = await controller.exec();
85
77
  const expectedLocaleDto = { locale: "en-UK", label: "English" };
@@ -14,7 +14,8 @@
14
14
  import AccountModel from "../../model/account/accountModel";
15
15
  import PassphraseStorageService from "../../service/session_storage/passphraseStorageService";
16
16
  import FileService from "../../service/file/fileService";
17
- import OrganizationSettingsModel from "../../model/organizationSettings/organizationSettingsModel";
17
+
18
+ import GetOrFindSiteSettingsService from "../../service/siteSettings/getOrFindSiteSettingsService";
18
19
  import SsoDataStorage from "../../service/indexedDB_storage/ssoDataStorage";
19
20
  import SsoKitServerPartModel from "../../model/sso/ssoKitServerPartModel";
20
21
  import PassboltApiFetchError from "passbolt-styleguide/src/shared/lib/Error/PassboltApiFetchError";
@@ -29,12 +30,13 @@ class UpdatePrivateKeyController {
29
30
  * @param {Worker} worker
30
31
  * @param {string} requestId uuid
31
32
  * @param {ApiClientOptions} apiClientOptions the api client options
33
+ * @param {AccountEntity} account the user account
32
34
  */
33
- constructor(worker, requestId, apiClientOptions) {
35
+ constructor(worker, requestId, apiClientOptions, account) {
34
36
  this.worker = worker;
35
37
  this.requestId = requestId;
36
38
  this.accountModel = new AccountModel();
37
- this.organisationSettingsModel = new OrganizationSettingsModel(apiClientOptions);
39
+ this.getOrFindSiteSettingsService = new GetOrFindSiteSettingsService(account, apiClientOptions);
38
40
  this.ssoKitServerPartModel = new SsoKitServerPartModel(apiClientOptions);
39
41
  }
40
42
 
@@ -64,8 +66,8 @@ class UpdatePrivateKeyController {
64
66
  if (typeof oldPassphrase !== "string" || typeof newPassphrase !== "string") {
65
67
  throw new Error("The old and new passphrase have to be string");
66
68
  }
67
- const organizationSettings = await this.organisationSettingsModel.getOrFind();
68
- const ssoIsEnabled = organizationSettings.isPluginEnabled("sso");
69
+ const siteSettings = await this.getOrFindSiteSettingsService.getOrFind(false);
70
+ const ssoIsEnabled = siteSettings.isPluginEnabled("sso");
69
71
 
70
72
  const userPrivateArmoredKey = await this.accountModel.rotatePrivateKeyPassphrase(oldPassphrase, newPassphrase);
71
73
  if (ssoIsEnabled) {