{"id":18283346,"url":"https://github.com/vinayakkulkarni/v-pip","last_synced_at":"2025-10-13T02:07:37.087Z","repository":{"id":36990475,"uuid":"260987471","full_name":"vinayakkulkarni/v-pip","owner":"vinayakkulkarni","description":"🖼 Tiny vue wrapper for supporting native picture-in-picture mode.","archived":false,"fork":false,"pushed_at":"2025-09-28T19:03:04.000Z","size":7304,"stargazers_count":35,"open_issues_count":13,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-29T06:28:56.824Z","etag":null,"topics":["composition-api","picture-in-picture","pip","vue","vue-components","vue2","vue3","vue3-demo","vuejs"],"latest_commit_sha":null,"homepage":"https://v-pip.netlify.app/","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vinayakkulkarni.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-05-03T17:49:05.000Z","updated_at":"2025-06-26T00:12:23.000Z","dependencies_parsed_at":"2023-11-06T02:24:20.773Z","dependency_job_id":"0bd8a8b8-b0c3-4b89-9443-adceef0c26a5","html_url":"https://github.com/vinayakkulkarni/v-pip","commit_stats":{"total_commits":985,"total_committers":5,"mean_commits":197.0,"dds":"0.15837563451776648","last_synced_commit":"b9c3151e60d4f0ec9ab4e8c61f2d0c24b3239eb8"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/vinayakkulkarni/v-pip","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vinayakkulkarni%2Fv-pip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vinayakkulkarni%2Fv-pip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vinayakkulkarni%2Fv-pip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vinayakkulkarni%2Fv-pip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vinayakkulkarni","download_url":"https://codeload.github.com/vinayakkulkarni/v-pip/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vinayakkulkarni%2Fv-pip/sbom","scorecard":{"id":713610,"data":{"date":"2025-08-11","repo":{"name":"github.com/vinayakkulkarni/v-pip","commit":"6ba18f477699aaffd332cddc0d143e8cfdf8a0d5"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.2,"checks":[{"name":"Code-Review","score":-1,"reason":"Found no human activity in the last 16 changesets","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":2,"reason":"3 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql.yml:18","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql.yml:19","Info: jobLevel 'contents' permission set to 'read': .github/workflows/shipjs-trigger.yml:45","Warn: topLevel 'contents' permission set to 'write': .github/workflows/automerger.yml:7","Info: topLevel 'contents' permission set to 'read': .github/workflows/ci.yml:13","Warn: topLevel 'checks' permission set to 'write': .github/workflows/ci.yml:12","Warn: no topLevel permission defined: .github/workflows/codeql.yml:1","Warn: no topLevel permission defined: .github/workflows/demo.yml:1","Warn: no topLevel permission defined: .github/workflows/lint-pr.yml:1","Warn: no topLevel permission defined: .github/workflows/shipjs-trigger.yml:1","Warn: no topLevel permission defined: .github/workflows/stale.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/automerger.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/vinayakkulkarni/v-pip/automerger.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/vinayakkulkarni/v-pip/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/vinayakkulkarni/v-pip/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/vinayakkulkarni/v-pip/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/vinayakkulkarni/v-pip/codeql.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/vinayakkulkarni/v-pip/codeql.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/vinayakkulkarni/v-pip/codeql.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/vinayakkulkarni/v-pip/codeql.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/demo.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/vinayakkulkarni/v-pip/demo.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/demo.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/vinayakkulkarni/v-pip/demo.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/demo.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/vinayakkulkarni/v-pip/demo.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/lint-pr.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/vinayakkulkarni/v-pip/lint-pr.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/lint-pr.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/vinayakkulkarni/v-pip/lint-pr.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/shipjs-trigger.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/vinayakkulkarni/v-pip/shipjs-trigger.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/shipjs-trigger.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/vinayakkulkarni/v-pip/shipjs-trigger.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/shipjs-trigger.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/vinayakkulkarni/v-pip/shipjs-trigger.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/shipjs-trigger.yml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/vinayakkulkarni/v-pip/shipjs-trigger.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/stale.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/vinayakkulkarni/v-pip/stale.yml/main?enable=pin","Info:   0 out of   9 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   9 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: SAST configuration detected: CodeQL","Info: all commits (30) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-22T08:51:14.883Z","repository_id":36990475,"created_at":"2025-08-22T08:51:14.883Z","updated_at":"2025-08-22T08:51:14.883Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279014006,"owners_count":26085343,"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","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["composition-api","picture-in-picture","pip","vue","vue-components","vue2","vue3","vue3-demo","vuejs"],"created_at":"2024-11-05T13:08:56.979Z","updated_at":"2025-10-13T02:07:37.056Z","avatar_url":"https://github.com/vinayakkulkarni.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [V-pip 🖼](https://github.com/vinayakkulkarni/v-pip#readme)\n\n[![Continuous Integration](https://github.com/vinayakkulkarni/v-pip/actions/workflows/ci.yml/badge.svg)](https://github.com/vinayakkulkarni/v-pip/actions/workflows/ci.yml)\n[![CodeQL](https://github.com/vinayakkulkarni/v-pip/actions/workflows/codeql.yml/badge.svg)](https://github.com/vinayakkulkarni/v-pip/actions/workflows/codeql.yml)\n[![Ship js trigger](https://github.com/vinayakkulkarni/v-pip/actions/workflows/shipjs-trigger.yml/badge.svg)](https://github.com/vinayakkulkarni/v-pip/actions/workflows/shipjs-trigger.yml)\n[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/vinayakkulkarni/v-pip?sort=semver\u0026logo=github)](https://github.com/vinayakkulkarni/v-pip/releases)\n[![npm](https://img.shields.io/npm/v/v-pip?logo=npm)](https://www.npmjs.com/package/v-pip)\n[![npm](https://img.shields.io/npm/dm/v-pip?logo=npm)](http://npm-stat.com/charts.html?package=v-pip)\n[![npm (downloads)](https://img.shields.io/npm/dm/v-pip.svg)](https://npm-stat.com/charts.html?package=v-pip)\n[![npm bundle size (version)](https://img.shields.io/bundlephobia/min/v-pip/latest)](https://bundlephobia.com/package/v-pip@latest)\n[![npm type definitions](https://img.shields.io/npm/types/v-pip)](https://github.com/vinayakkulkarni/v-pip/blob/master/package.json)\n[![DeepScan grade](https://deepscan.io/api/teams/9055/projects/17923/branches/426854/badge/grade.svg)](https://deepscan.io/dashboard#view=project\u0026tid=9055\u0026pid=17923\u0026bid=426854)\n[![Snyk Vulnerabilities for GitHub Repo](https://img.shields.io/snyk/vulnerabilities/github/vinayakkulkarni/v-pip)](https://snyk.io/test/github/vinayakkulkarni/v-pip)\n[![license](https://img.shields.io/npm/l/v-pip)](https://github.com/vinayakkulkarni/v-pip/blob/master/LICENSE)\n[![GitHub contributors](https://img.shields.io/github/contributors/vinayakkulkarni/v-pip)](https://github.com/vinayakkulkarni/v-pip/graphs/contributors)\n\n[![eslint](https://img.shields.io/npm/dependency-version/v-pip/dev/eslint?logo=eslint)](https://eslint.org/)\n[![prettier](https://img.shields.io/npm/dependency-version/v-pip/dev/prettier?logo=prettier)](https://prettier.io/)\n[![vite](https://img.shields.io/npm/dependency-version/v-pip/dev/vite?logo=vite)](https://vitejs.dev/)\n[![vue](https://img.shields.io/npm/dependency-version/v-pip/dev/vue?logo=vue.js)](https://vuejs.org/)\n[![typescript](https://img.shields.io/npm/dependency-version/v-pip/dev/typescript?logo=TypeScript)](https://www.typescriptlang.org/)\n\n---\n\n## Demo\n\n[![Edit v-pip](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/edit/v-pip?file=src/App.vue)\n\n---\n\n## Features\n\n- Vue 💚 Picture-in-picture!\n- Built from scratch using [TypeScript](https://www.typescriptlang.org)\n\n---\n\n### Versions\n\n- For Vue 3.x version – `npm i v-pip`\n- For Vue 2.x version – `npm i v-pip@1`\n\n## Table of Contents\n\n- [V-pip 🖼](#v-pip-)\n  - [Demo](#demo)\n  - [Features](#features)\n    - [Versions](#versions)\n  - [Table of Contents](#table-of-contents)\n  - [Demo](#demo-1)\n  - [Requirements](#requirements)\n    - [Installation](#installation)\n    - [Build Setup](#build-setup)\n  - [Usage](#usage)\n    - [Globally](#globally)\n      - [As a component](#as-a-component)\n      - [As a plugin](#as-a-plugin)\n    - [Locally](#locally)\n    - [HTML](#html)\n    - [JS](#js)\n    - [HTML](#html-1)\n    - [JS](#js-1)\n    - [Props](#props)\n    - [Events](#events)\n  - [Contributing](#contributing)\n  - [Author](#author)\n  - [License](#license)\n\n## Demo\n\n[![Edit v-pip demo](https://codesandbox.io/static/img/play-codesandbox.svg)](https://bit.ly/v-pip)\n\n## Requirements\n\n- [vue](https://vuejs.org/) `^3.x`\n\n### Installation\n\n```bash\nnpm install v-pip # yarn add v-pip\n```\n\nCDN: [UNPKG](https://unpkg.com/v-pip/dist/) | [jsDelivr](https://cdn.jsdelivr.net/npm/v-pip/dist/) (available as `window.VPip`)\n\n### Build Setup\n\n```bash\n# install dependencies\n$ npm ci\n\n# package the library\n$ npm run build\n```\n\n## Usage\n\n### Globally\n\n#### As a component\n\n```javascript\nimport { VPip } from 'v-pip';\nVue.component('VPip', VPip);\n```\n\n#### As a plugin\n\n```javascript\nimport Vue from 'vue';\nimport VPip from 'v-pip';\n\nVue.use(VPip);\n```\n\n### Locally\n\n```javascript\nimport { VPip } from 'v-pip';\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\u003cem\u003eExample 1 (\u003ca href=\"examples/App.vue\"\u003erefer App.vue\u003c/a\u003e)\u003c/em\u003e\n\u003c/summary\u003e\n\n### HTML\n\n```html\n\u003cv-pip\n  :video-options=\"videoOptions\"\n  :button-options=\"buttonOptions\"\n  @video-in-pip=\"handlePIP\"\n  @requesting-pip-failure=\"handlePipOpenFailure\"\n  @exiting-pip-failure=\"handlePipExitFailure\"\n/\u003e\n```\n\n### JS\n\n```javascript\nimport { VPip } from 'v-pip';\n\nVue.component('example-component', {\n  components: {\n    VPip,\n  },\n  data: () =\u003e ({\n    isPip: false,\n    videoOptions: {\n      src: 'http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',\n      poster:\n        'http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/images/BigBuckBunny.jpg',\n      wrapper: '',\n      class: '',\n      height: '',\n      width: '',\n    },\n    buttonOptions: {\n      wrapper: '',\n      type: 'button',\n      class: '',\n      label: 'Toggle picture-in-picture',\n    },\n  }),\n  methods: {\n    handlePIP(e) {\n      this.isPip = e;\n    },\n    handlePipOpenFailure(err) {\n      console.log('Video failed to enter Picture-in-Picture mode.', err);\n    },\n    handlePipExitFailure(err) {\n      console.log('Video failed to leave Picture-in-Picture mode.', err);\n    },\n  },\n});\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\u003cem\u003eExample 2 (minimal)\u003c/em\u003e\n\u003c/summary\u003e\n\n### HTML\n\n```html\n\u003cv-pip :video-options=\"videoOptions\" /\u003e\n```\n\n### JS\n\n```javascript\nimport { VPip } from 'v-pip';\n\nVue.component('example-component', {\n  components: {\n    VPip,\n  },\n  data: () =\u003e ({\n    videoOptions: {\n      src: 'http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',\n    },\n  }),\n});\n```\n\n\u003c/details\u003e\n\n### Props\n\n| Name             | Type   | Required? | Description                                               |\n| ---------------- | ------ | --------- | --------------------------------------------------------- |\n| `video-options`  | Object | Yes       | The set of options required to setup the V-Pip component. |\n| `button-options` | Object | No        | The set of options for the toggle button                  |\n\n### Events\n\n| Name                     | Description                                                              |\n| ------------------------ | ------------------------------------------------------------------------ |\n| `video-in-pip`           | Emits an `Boolean` whether the Video is in PIP or not                    |\n| `requesting-pip-failure` | Emits an `Object` when the video fails to enter Picture-in-Picture mode. |\n| `exiting-pip-failure`    | Emits an `Object` when the video fails to leave Picture-in-Picture mode. |\n\n## Contributing\n\n1. Fork it ( [https://github.com/vinayakkulkarni/v-pip/fork](https://github.com/vinayakkulkarni/v-pip/fork) )\n2. Create your feature branch (`git checkout -b feat/new-feature`)\n3. Commit your changes (`git commit -Sam 'feat: add feature'`)\n4. Push to the branch (`git push origin feat/new-feature`)\n5. Create a new [Pull Request](https://github.com/vinayakkulkarni/v-pip/compare)\n\n_Note_:\n\n1. Please contribute using [GitHub Flow](https://web.archive.org/web/20191104103724/https://guides.github.com/introduction/flow/)\n2. Commits \u0026 PRs will be allowed only if the commit messages \u0026 PR titles follow the [conventional commit standard](https://www.conventionalcommits.org/), _read more about it [here](https://github.com/conventional-changelog/commitlint/tree/master/%40commitlint/config-conventional#type-enum)_\n3. PS. Ensure your commits are signed. _[Read why](https://withblue.ink/2020/05/17/how-and-why-to-sign-git-commits.html)_\n\n## Author\n\n**v-pip** \u0026copy; [Vinayak](https://vinayakkulkarni.dev), Released under the [MIT](./LICENSE) License.\u003cbr\u003e\nAuthored and maintained by Vinayak Kulkarni with help from contributors ([list](https://github.com/vinayakkulkarni/v-pip/contributors)).\n\n\u003e [vinayakkulkarni.dev](https://vinayakkulkarni.dev) · GitHub [@vinayakkulkarni](https://github.com/vinayakkulkarni) · Twitter [@\\_vinayak_k](https://twitter.com/_vinayak_k)\n\n## License\n\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fvinayakkulkarni%2Fv-pip.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fvinayakkulkarni%2Fv-pip?ref=badge_large)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvinayakkulkarni%2Fv-pip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvinayakkulkarni%2Fv-pip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvinayakkulkarni%2Fv-pip/lists"}