{"id":15017855,"url":"https://github.com/nextcloud-libraries/nextcloud-password-confirmation","last_synced_at":"2025-04-06T12:11:19.041Z","repository":{"id":32971876,"uuid":"148279783","full_name":"nextcloud-libraries/nextcloud-password-confirmation","owner":"nextcloud-libraries","description":"Promise-based password confirmation wrapper for Nextcloud https://npmjs.org/@nextcloud/password-confirmation","archived":false,"fork":false,"pushed_at":"2025-04-03T20:34:53.000Z","size":3950,"stargazers_count":5,"open_issues_count":7,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-04T15:45:09.447Z","etag":null,"topics":["nextcloud-plugin"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nextcloud-libraries.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-09-11T07:41:33.000Z","updated_at":"2025-04-01T09:10:37.000Z","dependencies_parsed_at":"2023-07-28T16:25:13.087Z","dependency_job_id":"beccdaa2-960f-4c6e-903e-8dd31715df58","html_url":"https://github.com/nextcloud-libraries/nextcloud-password-confirmation","commit_stats":{"total_commits":775,"total_committers":17,"mean_commits":"45.588235294117645","dds":0.4270967741935484,"last_synced_commit":"30c02567170fc2d68651cfe59704388c28fb35d6"},"previous_names":["christophwurst/nextcloud-password-confirmation","nextcloud-libraries/nextcloud-password-confirmation","nextcloud/nextcloud-password-confirmation"],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nextcloud-libraries%2Fnextcloud-password-confirmation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nextcloud-libraries%2Fnextcloud-password-confirmation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nextcloud-libraries%2Fnextcloud-password-confirmation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nextcloud-libraries%2Fnextcloud-password-confirmation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nextcloud-libraries","download_url":"https://codeload.github.com/nextcloud-libraries/nextcloud-password-confirmation/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247208102,"owners_count":20901568,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nextcloud-plugin"],"created_at":"2024-09-24T19:51:04.236Z","updated_at":"2025-04-06T12:11:19.020Z","avatar_url":"https://github.com/nextcloud-libraries.png","language":"TypeScript","readme":"# @nextcloud/password-confirmation\n\n[![REUSE status](https://api.reuse.software/badge/github.com/nextcloud-libraries/nextcloud-password-confirmation)](https://api.reuse.software/info/github.com/nextcloud-libraries/nextcloud-password-confirmation)\n[![npm](https://img.shields.io/npm/v/@nextcloud/password-confirmation?style=for-the-badge)](https://www.npmjs.com/package/@nextcloud/password-confirmation)\n[![Build Status](https://img.shields.io/github/actions/workflow/status/nextcloud-libraries/nextcloud-password-confirmation/node.yml?branch=main\u0026label=Build\u0026style=for-the-badge)](https://github.com/nextcloud-libraries/nextcloud-password-confirmation/actions?query=branch%3Amain)\n[![License](https://img.shields.io/github/license/nextcloud-libraries/nextcloud-password-confirmation?style=for-the-badge)](https://github.com/nextcloud-libraries/nextcloud-password-confirmation/blob/main/LICENSE)\n\n\u003c!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: MIT\n --\u003e\n\nPromise-based password confirmation for Nextcloud.\n\nThis library exports a function that displays a password confirmation dialog when called and returns a promise. This makes it easier to integrate with other asynchronous operations.\n\n## Versions compatibility\n\n| Nextcloud   | @nextcloud/vue | @nextcloud/password-confirmation |\n| ----------- | -------------- | -------------------------------- |\n| 28+         | 8.x            | 5.x                              |\n| 25.x - 27.x | 7.x            | 2.x - 4.x                        |\n| \u003c 25.x      | -              | 1.x                              |\n\n## Installation\n```sh\nnpm add @nextcloud/password-confirmation\n```\n\n## Usage\n\n### Direct usage\n\n```js\nimport { confirmPassword } from '@nextcloud/password-confirmation'\nimport '@nextcloud/password-confirmation/style.css' // Required for dialog styles\n\nconst foo = async () =\u003e {\n    try {\n        await confirmPassword()\n        // Your logic\n    } catch (error) {\n        // Your error handling logic\n    }\n}\n```\n\n### Usage with axios interceptor\n\n```js\nimport axios from '@nextcloud/axios'\nimport { addPasswordConfirmationInterceptors, PwdConfirmationMode } from '@nextcloud/password-confirmation'\nimport '@nextcloud/password-confirmation/style.css' // Required for dialog styles\n\naddPasswordConfirmationInterceptors(axios)\n\nconst foo = async () =\u003e {\n    try {\n        const response = await axios.request({\n            confirmPassword: PwdConfirmationMode.Strict,\n            method,\n            url,\n            data: this.getData(),\n        })\n        // Your logic\n    } catch (error) {\n        // Your error handling logic\n    }\n}\n```\n\n## API Reference\n```ts\n/**\n * Check if password confirmation is required according to the last confirmation time.\n * Use as a replacement of deprecated `OC.PasswordConfirmation.requiresPasswordConfirmation()`.\n * Not needed if `confirmPassword()` can be used, because it checks requirements itself.\n *\n * @return {boolean} Whether password confirmation is required or was confirmed recently\n */\ndeclare function isPasswordConfirmationRequired(): boolean\n\n/**\n * Confirm password if needed.\n * Replacement of deprecated `OC.PasswordConfirmation.requirePasswordConfirmation(callback)`\n *\n * @return {Promise\u003cvoid\u003e} Promise that resolves when password is confirmed or not needded.\n *                         Rejects if password confirmation was cancelled\n *                         or confirmation is already in process.\n */\ndeclare function confirmPassword(): Promise\u003cvoid\u003e\n\n/**\n * Lax: Confirm password if needed.\n * Strict: Confirm in the request.\n */\nexport enum PwdConfirmationMode {\n\tLax = 'lax',\n\tStrict = 'strict',\n}\n```\n\n## Releasing\n\n1) Create release branch\n2) Adjust version using `npm version vx.y.z --no-git-tag-version`\n3) Update `CHANGELOG.md`\n4) Commit and open PR\n5) After merge, pull latest main\n6) `git tag vx.y.z`\n7) `git push origin vx.y.z`\n8) `npm ci \u0026\u0026 npm run build \u0026\u0026 npm publish`\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnextcloud-libraries%2Fnextcloud-password-confirmation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnextcloud-libraries%2Fnextcloud-password-confirmation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnextcloud-libraries%2Fnextcloud-password-confirmation/lists"}