{"id":13433472,"url":"https://github.com/paazmaya/shuji","last_synced_at":"2025-05-14T08:09:21.535Z","repository":{"id":37744962,"uuid":"51548579","full_name":"paazmaya/shuji","owner":"paazmaya","description":"Reverse engineering JavaScript and CSS sources from sourcemaps","archived":false,"fork":false,"pushed_at":"2025-05-09T11:56:52.000Z","size":996,"stargazers_count":1032,"open_issues_count":8,"forks_count":175,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-05-09T12:39:24.923Z","etag":null,"topics":["hacktoberfest","nodejs","sourcemaps"],"latest_commit_sha":null,"homepage":"","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/paazmaya.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,"zenodo":null}},"created_at":"2016-02-11T21:34:02.000Z","updated_at":"2025-05-09T11:56:55.000Z","dependencies_parsed_at":"2024-01-31T18:35:06.619Z","dependency_job_id":"ba8a7424-7692-4926-8690-3dd2fc9b99b8","html_url":"https://github.com/paazmaya/shuji","commit_stats":{"total_commits":247,"total_committers":11,"mean_commits":"22.454545454545453","dds":0.4817813765182186,"last_synced_commit":"1584a8f859d70532fa1e7ba3b766ead545e1a6fa"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paazmaya%2Fshuji","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paazmaya%2Fshuji/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paazmaya%2Fshuji/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paazmaya%2Fshuji/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paazmaya","download_url":"https://codeload.github.com/paazmaya/shuji/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253850531,"owners_count":21973662,"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":["hacktoberfest","nodejs","sourcemaps"],"created_at":"2024-07-31T02:01:26.502Z","updated_at":"2025-05-14T08:09:16.520Z","avatar_url":"https://github.com/paazmaya.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# shuji (周氏)\n\n\u003e Reverse engineering JavaScript and CSS sources from sourcemaps\n\n[![Windows build status](https://ci.appveyor.com/api/projects/status/pfplexeaehjvwel3/branch/master?svg=true)](https://ci.appveyor.com/project/paazmaya/shuji/branch/master)\n[![Node.js v22 CI](https://github.com/paazmaya/shuji/actions/workflows/linting-and-unit-testing.yml/badge.svg)](https://github.com/paazmaya/shuji/actions/workflows/linting-and-unit-testing.yml)\n[![codecov](https://codecov.io/gh/paazmaya/shuji/branch/master/graph/badge.svg)](https://codecov.io/gh/paazmaya/shuji)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fpaazmaya%2Fshuji.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fpaazmaya%2Fshuji?ref=badge_shield)\n\n## Background for the project name\n\nThe name of the project is for honouring the legacy of a certain master from the Ryukyu archipelago who contributed to the martial arts that we today know as **karate** and **ryukyu kobujutsu**.\n\n[Read more about why these martial arts are important for me at `karatejukka.fi`.](https://karatejukka.fi)\n\n## Getting started\n\nInstall the `shuji` command line utility globally with [npm](https://www.npmjs.com/).\nElevated privileges might be needed via `sudo`, depending on the platform. In most cases just:\n\n```sh\nnpm install --global shuji\n```\n\nUsage example:\n\n```sh\nshuji file.js.map -o folder\n```\n\nPlease note that the minimum supported version of [Node.js](https://nodejs.org/en/) is `22.11.0`, which is [the active Long Term Support (LTS) version](https://github.com/nodejs/Release#release-schedule).\n\n## Command line options\n\nThe output of `shuji --help` pretty much covers all the options:\n\n```sh\nshuji - Reverse engineering JavaScript and CSS sources from sourcemaps\nUsage: shuji [options] \u003cfile|directory\u003e\n\n  -h, --help               Help and usage instructions\n  -o, --output-dir String  Output directory - default: .\n  -p, --preserve           Preserve sourcemap's original folder structure.\n  -M, --match String       Regular expression for matching and filtering files -\n                           default: \\.map$\n  -v, --verbose            Verbose output, will print which file is currently being\n                           processed\n  -V, --version            Version number\n\nVersion 0.8.0\n```\n\n## Testing\n\nTest files are generated with [UglifyJS 3](https://www.npmjs.com/package/uglify-js) and\n[`sass`](https://sass-lang.com/install)\nby using files from the [stretchy](https://github.com/LeaVerou/stretchy) project,\nwith the following commands:\n\n```sh\nuglifyjs stretchy.js --compress --mangle \\\n --output stretchy.min.js --source-map includeSources\nmv stretchy.min.js.map stretchy-with-sources.min.js.map\n\nuglifyjs stretchy.js --compress --mangle \\\n --output stretchy.min.js --source-map \"url=inline\"\nmv stretchy.min.js stretchy-inline-sources.min.js\n\nuglifyjs stretchy.js --compress --mangle \\\n --output stretchy.min.js --source-map \"url=stretchy.min.js.map\"\n\nsass stretchy.scss:stretchy.css\n\nsass stretchy.scss:stretchy-inline.css --embed-source-map\n```\n\nUnit tests are written with [`tape`](https://github.com/substack/tape) and can be executed with `npm test`.\nCode coverage is inspected with [`nyc`](https://github.com/istanbuljs/nyc) and\ncan be executed with `npm run coverage` after running `npm test`.\nPlease make sure it is over 90% at all times.\n\n## Contributing\n\n[\"A Beginner's Guide to Open Source: The Best Advice for Making your First Contribution\"](http://www.erikaheidi.com/blog/a-beginners-guide-to-open-source-the-best-advice-for-making-your-first-contribution/).\n\n[Also there is a blog post about \"45 Github Issues Dos and Don’ts\"](https://davidwalsh.name/45-github-issues-dos-donts).\n\nLinting is done with [ESLint](http://eslint.org) and can be executed with `npm run lint`.\nThere should be no errors appearing after any JavaScript file changes.\n\nPlease note that any features or changed will not be merged without working unit tests.\n\n## Version history\n\n[Changes happening across different versions and upcoming changes are tracked in the `CHANGELOG.md` file.](CHANGELOG.md)\n\n## License\n\nCopyright (c) [Juga Paazmaya](https://paazmaya.fi) \u003cpaazmaya@yahoo.com\u003e\n\nLicensed under [the MIT license](./LICENSE).\n\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fpaazmaya%2Fshuji.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fpaazmaya%2Fshuji?ref=badge_large)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaazmaya%2Fshuji","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaazmaya%2Fshuji","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaazmaya%2Fshuji/lists"}