{"id":20399435,"url":"https://github.com/a-bentofreire/iduglifiertoix","last_synced_at":"2026-02-07T04:31:51.699Z","repository":{"id":57271103,"uuid":"121262488","full_name":"a-bentofreire/iduglifiertoix","owner":"a-bentofreire","description":"Code Id Uglifier","archived":false,"fork":false,"pushed_at":"2024-08-30T21:51:59.000Z","size":44,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-27T01:54:18.852Z","etag":null,"topics":["code","id","obsfucator","uglify","ugly"],"latest_commit_sha":null,"homepage":"https://www.devtoix.com/en/projects/iduglifiertoix","language":"JavaScript","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/a-bentofreire.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","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":"2018-02-12T15:17:01.000Z","updated_at":"2025-10-03T08:38:24.000Z","dependencies_parsed_at":"2024-08-30T21:47:37.787Z","dependency_job_id":"2c2fdf44-6ca6-4e12-bcb5-cba04924e5e3","html_url":"https://github.com/a-bentofreire/iduglifiertoix","commit_stats":null,"previous_names":["a-bentofreire/iduglifiertoix","a-bentofreire/id-uglifier"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/a-bentofreire/iduglifiertoix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a-bentofreire%2Fiduglifiertoix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a-bentofreire%2Fiduglifiertoix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a-bentofreire%2Fiduglifiertoix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a-bentofreire%2Fiduglifiertoix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/a-bentofreire","download_url":"https://codeload.github.com/a-bentofreire/iduglifiertoix/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a-bentofreire%2Fiduglifiertoix/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29186736,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T03:35:06.566Z","status":"ssl_error","status_checked_at":"2026-02-07T03:34:57.604Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["code","id","obsfucator","uglify","ugly"],"created_at":"2024-11-15T04:29:10.434Z","updated_at":"2026-02-07T04:31:51.685Z","avatar_url":"https://github.com/a-bentofreire.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Description\n\n[IdUglifierToIX](https://www.devtoix.com/en/projects/iduglifiertoix) is a 2-pass brute force code id uglifier.  \n\nIdUglifierToIX is distributed as a *npm* package, and it's an update from the deprecated `id-uglifier` package.\n  \nIt works based on the raw assumption that every identifier that ends  \nwith **_UG** is subject to uglification. It also accepts a table of identifiers to be uglified.  \n  \n**IdUglifierToIX** is language agnostic and not only uglifies source code but also  \ncss, html, text and whatever you feed it.  \nIn essence, you provide it a file tree and it will generate and output file tree  \nwhere every id that matches a pattern will be replace with **ug_NNNN**. \n  \nAt first glance, it might look like that it's too blind for industrial-strength projects,  \nbut the probability of running into an external library where the ids end with _UG is very low.  \nAnd, if such case occurs, IdUglifierToIX allows to define another id suffix.\n  \n**IdUglifierToIX** isn't built for existing projects, but instead of projects  \nwhere the business logic is prepared from inception for id uglification,  \nthe extra prefix will give clues to the developers that  \nthat id will be changed in the final output.  \n\n## Installation\n\n`[sudo] npm install -g iduglifiertoix`  \n\n## Usage\n\n`iduglifiertoix [options] input-file-globs`\n\n`input-file-globs` is a list of glob patterns https://www.npmjs.com/package/glob  \nor if starts with @ it will be read from a file with same rules as -id-file  \n**IdUglifierToIX** has a safety mechanism to never overwrite the input  \n  \nWhere the options are:\n\n```plaintext\n    -in pattern      input filename regex pattern  \n    -out pattern     output filename pattern  \n    -e exclude-files this is a glob pattern [https://github.com/isaacs/minimatch]  \n                     that excludes files from being processed.  \n                     Use multiple times to exclude multiple patterns or  \n                     start with @ to retrieve from a file  \n    -off             disabled the processing  \n    -no-opt          doesn't optimizes output ids by frequency  \n    -m|-map-file     name of map to generate with a list in-ids=out-ids  \n                     if the map-file ends with .json it will output a json format  \n    -id-file         input filename with the list of ids,  \n                     separated by LF or CRLF to be uglified  \n                     lines starting with # will be discarded  \n    -ins|-in-suffix  input id suffix. default is _UG.  \n                     use '.' to deactivates the default input suffix  \n    -outp|-out-prefix output id prefix. default is ug_  \n    -v               verbose  \n    -version         version  \n```\n\n## Examples\n\n`iduglifiertoix -in in-folder -out out-folder -m test/outmap.txt test/in-folder/**`  \n\nReads `test/in-folder/**`, processes the ids,  \noutputs the to `test/out-folder/**`  \nand writes the id map to `test/outmap.txt`  \nIf `out-folder` doesn't exists, it creates it on the fly  \n\n`iduglifiertoix -no-opt -in in-folder -out out-folder -ins . -ous ug__ -id-file test/id-list.txt -m test/outmap.json -e '*.css' test/in-folder/**`  \n\nSame as above but deactivates order id by frequency,  \nthe out map is in .json format,  \nloads an id-list file to uglify,  \nthe output prefix is ug__ instead of ug_,  \nexcludes all the '.css' files  \nand disactivates the default input prefix  \n\n`iduglifiertoix -no-opt -in '\\\\.(\\\\w+)$' -out '.out.$1' test/in-folder/**`  \n\nWrites the output to the same folder but adds  .out to the extension  \ninput is ``test/in-folder/**``  \noutput will be `test/in-folder/test-input.out.js`  \n\n## Example Input/Output\n\n## Input\n\n```javascript\nfunction testFunc() {  \n    var _this_is_a_var_UG = 3;  \n    var high_freq_UG = 7;  \n    high_freq_UG++;  \n    high_freq_UG++;  \n}\n```\n\n## Output\n\n```javascript\nfunction testFunc() {  \n    var ug_1 = 3;  \n    var ug_0 = 7;  \n    ug_0++;  \n    ug_0++;  \n}\n```\n\n## Support this Project\n\nGive the project a Star ⭐ or visit the project [homepage](https://www.devtoix.com/en/projects/iduglifiertoix)\n\n## License\n\nMIT\n\n## Copyrights\n\n(c) 2018-2024 [Alexandre Bento Freire](https://www.a-bentofreire.com)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa-bentofreire%2Fiduglifiertoix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fa-bentofreire%2Fiduglifiertoix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa-bentofreire%2Fiduglifiertoix/lists"}