{"id":15015840,"url":"https://github.com/jscrambler/jscrambler","last_synced_at":"2025-05-15T13:04:42.780Z","repository":{"id":38903846,"uuid":"114917993","full_name":"jscrambler/jscrambler","owner":"jscrambler","description":"Monorepo of Jscrambler's Javascript Client and Integrations","archived":false,"fork":false,"pushed_at":"2025-05-06T09:11:19.000Z","size":2313,"stargazers_count":151,"open_issues_count":1,"forks_count":31,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-05-08T18:49:57.617Z","etag":null,"topics":["cli","client","ember","grunt","gulp","jscrambler","monorepo","node","webpack","website"],"latest_commit_sha":null,"homepage":"https://jscrambler.com","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/jscrambler.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"contributing.md","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":"2017-12-20T18:22:51.000Z","updated_at":"2025-05-06T09:11:21.000Z","dependencies_parsed_at":"2024-03-01T17:45:23.600Z","dependency_job_id":"167dcb70-5ff7-409d-bd87-9e94ebcffd7e","html_url":"https://github.com/jscrambler/jscrambler","commit_stats":{"total_commits":796,"total_committers":31,"mean_commits":"25.677419354838708","dds":0.6469849246231156,"last_synced_commit":"a127e09ec1f6851218859aa984355dadd25d9e52"},"previous_names":[],"tags_count":318,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jscrambler%2Fjscrambler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jscrambler%2Fjscrambler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jscrambler%2Fjscrambler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jscrambler%2Fjscrambler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jscrambler","download_url":"https://codeload.github.com/jscrambler/jscrambler/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254346624,"owners_count":22055808,"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":["cli","client","ember","grunt","gulp","jscrambler","monorepo","node","webpack","website"],"created_at":"2024-09-24T19:48:02.327Z","updated_at":"2025-05-15T13:04:42.707Z","avatar_url":"https://github.com/jscrambler.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [![Jscrambler](https://media.jscrambler.com/images/logo_500px.png)](https://jscrambler.com/?utm_source=github.com\u0026utm_medium=referral)\n\n## Jscrambler Code Integrity\n\nJscrambler [Code Integrity](https://jscrambler.com/code-integrity) is a JavaScript protection technology for Web and Mobile Applications. Its main purpose is to enable JavaScript applications to become self-defensive and resilient to tampering and reverse engineering. \n\nIf you're looking to gain control over third-party tags and achieve PCI DSS compliance please refer to Jscrambler [Webpage Integrity](https://jscrambler.com/webpage-integrity).\n\n## JavaScript Protection Technology\n\nJscrambler includes three security layers:\n\n- **Advanced Obfuscation**: transformations to Strings, Variables, Functions, and Objects, through reordering, encoding, splitting, renaming, and logic concealing techniques that make the code extremely difficult to read and reverse-engineer. Includes **control-flow flattening** by adding opaque predicates and irrelevant code clones and flattening the control-flow;\n- **Code Locks**: ability to prevent the protected code from running outside whitelisted domains, browsers, date ranges, OS'es, and on rooted/jailbroken devices;\n- **Runtime Protection**: anti-tampering and anti-debugging techniques, such as [Self-Defending](https://docs.jscrambler.com/code-integrity/documentation/transformations/self-defending) and [Self-Healing](https://docs.jscrambler.com/code-integrity/documentation/transformations/self-healing).\n\n### Polymorphic Behavior\n\nJscrambler has a **Polymorphic Behavior**, so each new code deployment generates a **different protected output** with the same code functionality.\n\n### Source Maps\n\n**[Source maps](https://docs.jscrambler.com/code-integrity/documentation/source-maps)** provide a way of mapping obfuscated code back to its original source code, helping the debugging process of obfuscated code as if you were running the original source code.\n\n### JavaScript Threat Monitoring\n\nJscrambler displays [real-time notifications](https://jscrambler.com/products/javascript-threat-monitoring?utm_source=github.com\u0026utm_medium=referral) whenever there is a threat to the protected code. Any code lock violation or attempt to modify/debug protected code will display a detailed alert on the Live Feed dashboard.\n\n### Profiling\n\nThis [feature](https://docs.jscrambler.com/code-integrity/documentation/profiling) is specifically aimed at performance-sensitive apps. It analyzes which parts of the code are critical to performance and applies the best balance of transformations when protecting the code.\n\n## Jscrambler JavaScript Client and Integrations\n\nYou can integrate Jscrambler into your build process easily with its API client. It also has several integrations.\n\n- [JavaScript CLI and API Client](packages/jscrambler-cli)\n- [Grunt](packages/grunt-jscrambler)\n- [Gulp](packages/gulp-jscrambler)\n- [Webpack](packages/jscrambler-webpack-plugin)\n- [Ember](packages/ember-cli-jscrambler)\n- [Metro](packages/jscrambler-metro-plugin)\n\n### Version Compatibility\n\nThe version's compatibility table match your [Jscrambler Version](https://app.jscrambler.com/settings) with the selected integration Client (f.e jscrambler-cli or jscrambler-webpack-plugin).\nPlease make sure you install the right version, otherwise some functionalities might not work properly. \n\n| _Jscrambler Version_   |      _Client and Integrations_      |\n|:----------:|:-------------:|\n| _\u003c= 7.1_ |  _\u003c= 5.0.0_ |\n| _7.2 ... 8.2_ |   _\\\u003e= 6.0.0_ |\n| _\\\u003e= 8.3_ | _\\\u003e= 8.4.0_ |\n\nNote: CLI 8.4.0 still supports older versions of Jscrambler (\u003e= 7.2).\n\n## Jscrambler JavaScript Framework/Library Integrations\n\n- [React](https://blog.jscrambler.com/protecting-your-react-js-source-code-with-jscrambler/?utm_source=github.com\u0026utm_medium=referral)\n- [Angular](https://blog.jscrambler.com/how-to-protect-angular-code-against-theft-and-reverse-engineering/?utm_source=github.com\u0026utm_medium=referral)\n- [Angular.js](https://blog.jscrambler.com/how-to-protect-your-angular-js-application-with-jscrambler/?utm_source=github.com\u0026utm_medium=referral)\n- [Vue.js](https://blog.jscrambler.com/how-to-protect-your-vue-js-application-with-jscrambler/?utm_source=github.com\u0026utm_medium=referral)\n- [Ember.js](https://docs.jscrambler.com/code-integrity/frameworks-and-libraries/emberjs?utm_source=github.com\u0026utm_medium=referral)\n- [Meteor](https://docs.jscrambler.com/code-integrity/frameworks-and-libraries/meteor?utm_source=github.com\u0026utm_medium=referral)\n- [Ionic](https://blog.jscrambler.com/protecting-hybrid-mobile-apps-with-ionic-and-jscrambler/?utm_source=github.com\u0026utm_medium=referral)\n- [NativeScript](https://blog.jscrambler.com/protecting-your-nativescript-source-code-with-jscrambler/?utm_source=github.com\u0026utm_medium=referral)\n- [React Native](https://blog.jscrambler.com/how-to-protect-react-native-apps-with-jscrambler/?utm_source=github.com\u0026utm_medium=referral)\n- [More information about Framework Compatibility](https://jscrambler.com/javascript-frameworks-and-libraries#compatible-frameworks?utm_source=github.com\u0026utm_medium=referral)\n\n## Jscrambler Tutorials\n\n- [Jscrambler Docs](https://docs.jscrambler.com/?utm_source=github.com\u0026utm_medium=referral)\n- [Jscrambler 101 — First Use](https://blog.jscrambler.com/jscrambler-101-first-use/?utm_source=github.com\u0026utm_medium=referral)\n- [Jscrambler 101 — Code Annotations](https://blog.jscrambler.com/jscrambler-101-code-annotations/?utm_source=github.com\u0026utm_medium=referral)\n- [Jscrambler 101 — Self Defending](https://blog.jscrambler.com/jscrambler-101-self-defending/?utm_source=github.com\u0026utm_medium=referral)\n- [Jscrambler 101 — Control Flow Flattening](https://blog.jscrambler.com/jscrambler-101-control-flow-flattening/?utm_source=github.com\u0026utm_medium=referral)\n- [Jscrambler 101 — Code Locks](https://blog.jscrambler.com/jscrambler-101-code-locks/?utm_source=github.com\u0026utm_medium=referral)\n- [Jscrambler 101 — How to use the CLI](https://blog.jscrambler.com/jscrambler-101-how-to-use-the-cli/?utm_source=github.com\u0026utm_medium=referral)\n- [Jscrambler 101 — Source Maps](https://blog.jscrambler.com/jscrambler-101-source-maps/?utm_source=github.com\u0026utm_medium=referral)\n- [Jscrambler 101 — Countermeasures](https://blog.jscrambler.com/jscrambler-101-countermeasures/?utm_source=github.com\u0026utm_medium=referral)\n- [Jscrambler 101 — Self-Healing](https://blog.jscrambler.com/jscrambler-101-self-healing/?utm_source=github.com\u0026utm_medium=referral)\n- [Jscrambler 101 — Profiling](https://blog.jscrambler.com/jscrambler-101-profiling/?utm_source=github.com\u0026utm_medium=referral)\n- [Jscrambler 101 — App Classification](https://blog.jscrambler.com/jscrambler-101-app-classification/?utm_source=github.com\u0026utm_medium=referral)\n- [Jscrambler 101 — Memory Protection](https://blog.jscrambler.com/jscrambler-101-memory-protection/?utm_source=github.com\u0026utm_medium=referral)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjscrambler%2Fjscrambler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjscrambler%2Fjscrambler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjscrambler%2Fjscrambler/lists"}