{"id":22282261,"url":"https://github.com/joho1968/pomjs","last_synced_at":"2025-10-30T05:55:13.761Z","repository":{"id":171959928,"uuid":"554696545","full_name":"joho1968/POMjs","owner":"joho1968","description":"POMjs is a random password generator in HTML and pure Javascript with no cookies and no trackers. It has been translated into several languages.","archived":false,"fork":false,"pushed_at":"2023-09-09T17:20:39.000Z","size":106,"stargazers_count":39,"open_issues_count":2,"forks_count":11,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T03:31:51.013Z","etag":null,"topics":["password","password-generator","random-password-generator","security","security-tools","webapp","website"],"latest_commit_sha":null,"homepage":"https://password.oppetmoln.se","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joho1968.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":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-20T08:32:31.000Z","updated_at":"2025-03-02T12:56:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"636e3841-3a0d-4a7d-8725-a82cb0406d90","html_url":"https://github.com/joho1968/POMjs","commit_stats":null,"previous_names":["joho1968/pomjs"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/joho1968/POMjs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joho1968%2FPOMjs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joho1968%2FPOMjs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joho1968%2FPOMjs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joho1968%2FPOMjs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joho1968","download_url":"https://codeload.github.com/joho1968/POMjs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joho1968%2FPOMjs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267580573,"owners_count":24110866,"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-07-28T02:00:09.689Z","response_time":68,"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":["password","password-generator","random-password-generator","security","security-tools","webapp","website"],"created_at":"2024-12-03T16:26:26.913Z","updated_at":"2025-10-30T05:55:13.682Z","avatar_url":"https://github.com/joho1968.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![License](https://img.shields.io/badge/License-GPL_v2-blue.svg?style=flat-square)](LICENSE)\n[![made-with-javascript](https://img.shields.io/badge/Made%20with-JavaScript-1f425f.svg)](https://en.wikipedia.org/wiki/JavaScript)\n\n# POMjs\n\n**POMjs** is a random password generator in HTML and pure Javascript. It can be customized by modifying the sources. There's really nothing magic going on here, but it works and is somewhat responsive. The goal was to make something small, useful, and reasonably free from dependencies.\n\n## Parts\n\n**POMjs** uses a \"minified\" version of [normalize.css](https://necolas.github.io/normalize.css) to reset the DOM to reasonable settings :blush:\n\n**POMjs** includes no externally loaded resources and contains no tracking code or cookie management.\n\n## Installation\n\nDownload the distribution or clone the repo. Files and folders should be placed in your web root, or another folder accessible to your web server. All references to `CSS` and `Javascript` use relative paths.\n\nThere may be references to \"Öppet Moln\" (\"Open Cloud\"), which is a Swedish site run by the author of **POMjs**, [oppetmoln.se](https://oppetmoln.se), to promote open source solutions for general use. You can, of course, delete such references.\n\nI'd appreciate a mention on whatever website you use this one, and a link to the original repo, but it's not required.\n\n## Usage\n\n* From a visitor perspective, simply enable the desired string sequences, and possibly adjust the password length. Click on the \u003ckbd\u003eEnter\u003c/kbd\u003e button or use the \u003ckbd\u003eEnter\u003c/kbd\u003e key when the button has focus.\n* The generated password is displayed at the bottom of the box, along with a strength indicator.\n* The slider can also be used to change the number of characters in the generated password, as can the input field to the right of the slider.\n* The HTML should have proper `tabindex` attributes for easier keyboard navigation.\n* To copy the generated password to the clipboard, click on the password.\n* \"Dark mode\" (browser setting) should be honored.\n\n## Changes\n\nPlease see [CHANGELOG.md](CHANGELOG.md) for a list of changes.\n\n## Customization\n\nThe original Javascript source is in `password-om.js`. The `index.html` file includes `password-om.min.js`. So I suggest you make your customizations in the \"unminified\" .js file and then create a new `password-om.min.js` file. If you do not have access to a \"minification tool\", you can simply copy an \"unminified\" version of `password-om.js` to `password-om.min.js`, it's really not that big of a difference.\n\nMost parameters/settings can be changed in the `.js` file.\n\n### Variables (in .js file)\n\n| Name                      | Default              | Comment                                    |\n| ------------------------- | -------------------- | ------------------------------------------ |\n| POM_strUppercase          | Auto-generated A-Z   | Change if needed, used by default          |\n| POM_strLowercase          | Auto-generated a-z   | Change if needed, used by default          |\n| POM_strDigits             | Auto-generated 0-9   | Change if needed, used by default          |\n| POM_strSpecialOne         | -.\\_#$@%!            | Change if needed, used by default          |\n| POM_strSpecialTwo         | \"+(){}[]?\u0026,\\*\u003c\u003e\\|:;^ | Change if needed, **not** used by default  |\n| POM_strUppercase_Default  | true                 | Enables POM_strUppercase by default        |\n| POM_strLowercase_Default  | true                 | Enables POM_strLowercase by default        |\n| POM_strDigits_Default     | true                 | Enables POM_strDigits by default           |\n| POM_strSpecialOne_Default | true                 | Enables POM_strSpecialOne by default       |\n| POM_strSpecialTwo_Default | **false**            | Enables POM_strSpecialTwo by default       |\n| POM_mkPasswordOnLoad      | true                 | Generate password on first page load       |\n| POM_changeIsClick         | true                 | Generate password when parameters are changed |\n| POM_minLength             | 16                   | Minimum (and default) password length      |\n| POM_maxLength             | 256                  | Maxmium password length                    |\n| POM_sliderStep            | 8                    | 1 - ..                                     |\n| POM_debug                 | false                | Emit \"debug\" output with console.log()     |\n\n### CSS\n\nMost of the styling is done via CSS. I have tried to make it reasonably responsive, and I have tested with it with various browsers.\n\nPlease note that `index.html` makes use of `password-om.min.css` by default. \n\n### Translation\n\nThe (very) few strings can be translated. The distribution contains strings in English (default), Swedish, German, Dutch, Finnish, French, and Luxembourgish. The code attempts to guess the language from the **navigator.language** properties. If they do not exist, or cannot be interpreted, the fallback language used is English.\n\nThe \"string setup\" is done in the `POM_initialSetup()` function.\n\nIf you would like to contribute to the translation, please open an issue and post the language and the translated strings, please include how/if you would like to be mentioned in the credits.\n\n## Credits\n\nThanks to **Peter Hampf** (hello `O/T-Track` :metal:) for the German translation :blush:\nThanks to **Jeroen van de Leur** for the Dutch translation :blush:\nThanks to **Alain Fontaine** for the French and Luxembourgish translations :blush:\nThanks to **Thomas Raehalme** for the Finnish translations :blush:\nThanks to **Mihaly Balassy** for the Hungarian translations :blush:\nThanks to **Gregor Godler** for the Slovenian translations :blush:\nThanks for **Sarah Bailey** for assistance in \"debugging\" use on iOS/macOS :blush:\n\nThe \"cloud icon\" comes from [Streamline](https://streamlinehq.com)\n\n**POMjs** was written by Joaquim Homrighausen while converting caffeine into code :coffee:\n\n## License\n\n**POMjs** is licensed under the GPLv2 license. See the [`LICENSE`](LICENSE) file for more details.\n\nCopyright 2022, 2023 Joaquim Homrighausen.\n\n### Demo\n\nYou can see POMjs in action, and more or less unmodified, on the following links:\n\n* Öppet Moln (\"Open Cloud\"); [password.oppetmoln.se](https://password.oppetmoln.se)\n* WebbPlatsen i Sverige AB; [password.webbplatsen.se](https://password.webbplatsen.se)\n\n### External references\n\nThese links are not here for any sort of endorsement or marketing, they're purely for informational purposes :sunglasses:\n\n* WebbPlatsen; [webbplatsen.se](https://webbplatsen.se)\n* Öppet Moln (\"Open Cloud\"); [oppetmoln.se](https://oppetmoln.se)\n* me; [joho.se](https://joho.se) and [github.com/joho1968](https://github.com/joho1968)\n* POMjs repo; [github.com/joho1968/POMjs](https://github.com/joho1968/POMjs)\n* normalize.css repo; [github.com/necolas/normalize.css](https://github.com/necolas/normalize.css)\n* Streamline, Icons and Illustrations; [streamlinehq.com](https://streamlinehq.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoho1968%2Fpomjs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoho1968%2Fpomjs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoho1968%2Fpomjs/lists"}