@udenbaguse/syamcode 2.0.2 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,6 +1,20 @@
1
1
  # Changelog
2
2
 
3
- ## Version 2.0.1 (2026-05-14)
3
+ ## Version 2.0.4 (2026-05-15)
4
+ ### Added
5
+ - Syamkey-3, hash now uses full 64-digit SHA-256 hex for stronger obfuscation
6
+
7
+ ### Changed
8
+ - Rewrite CommondJS to use ES modules for better compatibility and tree-shaking
9
+
10
+ ### Fixed
11
+ - Import identifiers are preserved during minification (not hashed)
12
+
13
+ ## Version 2.0.3 (2026-05-14)
14
+ ### Fixed
15
+ - Remove TS for fix bug
16
+
17
+ ## Version 2.0.2 (2026-05-14)
4
18
  ### Updated
5
19
  - Updated README and LICENSE with correct package name and site URL.
6
20
  - Updated EULA with new attribution requirements and usage terms.
@@ -15,7 +29,7 @@
15
29
  - Remove comments and unnecessary whitespace
16
30
 
17
31
  ### Fixed
18
- - Restore original identifier names from minified code using the .syamkey version 2.
32
+ - Restore original identifier names from minified code using the Syamkey-2.
19
33
  - Scope-aware Babel AST transformations for safer renaming
20
34
 
21
35
  ## Version 1.0.0 (2026-05-13)
@@ -24,7 +38,7 @@
24
38
  - `.syamkey` mapping file generation
25
39
 
26
40
  ### Changed
27
- - Reversible identifier obfuscation using SHA-256 (Syamkey version 2).
41
+ - Reversible identifier obfuscation using SHA-256 but only 12 digits (Syamkey-2).
28
42
 
29
43
  ### Fixed
30
44
  - `restore` command to recover original identifiers
@@ -34,5 +48,5 @@ Initial release with basic minification and obfuscation features
34
48
 
35
49
  ### Features
36
50
  - CLI minifier for JS
37
- - replace identifier names with Syamkey version 1 (generic id1, id2, etc).
51
+ - replace identifier names with Syamkey-1 (generic id1, id2, etc).
38
52
  - Restore original identifier names from minified code
package/README.md CHANGED
@@ -8,7 +8,7 @@ CLI for **minify + reversible identifier obfuscation** that can be restored usin
8
8
 
9
9
  This software is proprietary. By using SyamCode, you agree to the [End-User License Agreement (EULA)](LICENSE).
10
10
 
11
- For selected code extensions (especially JS/TS), `syamcode`:
11
+ For selected code extensions (especially JS/MJS), `syamcode`:
12
12
 
13
13
  1. produces a minified version
14
14
  2. replaces identifier names with hash SHA-256
@@ -0,0 +1 @@
1
+ import fs from"fs";import path from"path";import crypto from"crypto";import*as parser from"@babel/parser";import traverseModule from"@babel/traverse";import generateModule from"@babel/generator";const h13a170f00a5f4e0079db99488850f1328015b8933ce1ec8ad2332fcd66fd73f6=traverseModule.default;const h24cacf5004bf68ae9daad19a5bba391d85ad1cb0b31366e89aec86fad0ab16cb=generateModule.default;function h51280dabfbc880cdc5f92cc2f4f22c8032de5aba401c3268250a11eeb2df1f73(he46b320165eec91e6344fa10340d5b3208304d6cad29d0d5aed18466d1d9d80e){console.error(`[syamcode] ${he46b320165eec91e6344fa10340d5b3208304d6cad29d0d5aed18466d1d9d80e}`);process.exit(1);}function ha3a0e8fc9c32e403f53e663bef3102441678109d32ab4fa193df5440cc87b8b1(h148de9c5a7a44d19e56cd9ae1a554bf67847afb0c58f6e12fa29ac7ddfca9940){return path.extname(h148de9c5a7a44d19e56cd9ae1a554bf67847afb0c58f6e12fa29ac7ddfca9940).toLowerCase();}function hbf9edca453265bd8385139f244868127d6f9127caccab64184d44de9f3b03ff4(ha7e7e2f59b128bdb0aa60f56f5211efefdf83b92994b8f4a5d2e18126a0a14de){return[".js",".mjs"].includes(ha7e7e2f59b128bdb0aa60f56f5211efefdf83b92994b8f4a5d2e18126a0a14de);}function h5810b6f400f5882e1b0a810c340ea12bea3b0596ba8e58f641ded91130be7866(h5694d08a2e53ffcae0c3103e5ad6f6076abd960eb1f8a56577040bc1028f702b,ha7e7e2f59b128bdb0aa60f56f5211efefdf83b92994b8f4a5d2e18126a0a14de){const h92cd10e6b8b068a931196d1d73a032543d5ca1a5bf445e27a1af74258254517c=["jsx","typescript","classProperties","classPrivateProperties","classPrivateMethods","decorators-legacy","dynamicImport","exportDefaultFrom","exportNamespaceFrom","importMeta","objectRestSpread","optionalChaining","nullishCoalescingOperator","topLevelAwait","logicalAssignment","numericSeparator"];return parser.parse(h5694d08a2e53ffcae0c3103e5ad6f6076abd960eb1f8a56577040bc1028f702b,{sourceType:"module",plugins:h92cd10e6b8b068a931196d1d73a032543d5ca1a5bf445e27a1af74258254517c});}function h87e711dc1e4db975d405b6d07c6652c8b78697075c1e0174265b13a917a863fc(h36e64f19f57a05c8cd5b6bf7eff72703b4bbab19def7832eb4e686e7fa482eef){let h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22=h36e64f19f57a05c8cd5b6bf7eff72703b4bbab19def7832eb4e686e7fa482eef.replace(/\/\*[\s\S]*?\*\//g,"");h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22=h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22.replace(/[\t\r\n]+/g," ");h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22=h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22.replace(/\s{2,}/g," ");h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22=h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22.replace(/\s*([{}:;,])\s*/g,"$1");return h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22.trim();}function h73d15bb81dfc774fe0ac8bb2937b3d2724c961cc2f1563a15d07d6723c9d7128(he5e239560bc125a20ff2ac1fea50915bc198dd4f5b5256ec447a8a71e00132b3){let h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22=he5e239560bc125a20ff2ac1fea50915bc198dd4f5b5256ec447a8a71e00132b3.replace(/<!--([\s\S]*?)-->/g,"");h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22=h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22.replace(/>\s+</g,"><");h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22=h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22.replace(/\s{2,}/g," ");return h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22.trim();}function h45099c83e313f271b3b69fabc440ac1adf7e96160ba3a1939f056dfaa27f70ec(h0945c43baf9a9efaf61d27a43c5fdd56b6904220cba1f8306c9857bbe92efc24){const h772a5fb04f9bad38681a2f56ddfdbd6a15185753df8dcc029788d02bf3b6825b=JSON.parse(h0945c43baf9a9efaf61d27a43c5fdd56b6904220cba1f8306c9857bbe92efc24);return JSON.stringify(h772a5fb04f9bad38681a2f56ddfdbd6a15185753df8dcc029788d02bf3b6825b);}function h85320f9e1f18193f2d3b806fb6d3111312403b1996dd1a6ce8f94a357b292fcb(h70468142455db6f5b14897bd40c786fdc479d57be09bbc61ef42b8e2a7920ffb){let h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22=h70468142455db6f5b14897bd40c786fdc479d57be09bbc61ef42b8e2a7920ffb.replace(/<!--([\s\S]*?)-->/g,"");h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22=h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22.replace(/[\t\r\n]+/g," ");h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22=h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22.replace(/\s{2,}/g," ");h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22=h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22.replace(/\s*([<>"'=;,:{}()])\s*/g,"$1");return h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22.trim();}function hb8da707a240a394473650f16125bf037b8434ddd1f083b4c570d4ac0a755f32c(h3d07995dec01a3e3b8c4403a2bd29c90c0f824516c54d787d63da157b8bfa796,hed7002b439e9ac845f22357d822bac1444730fbdb6016d3ec9432297b9ec9f73){const ha7e7e2f59b128bdb0aa60f56f5211efefdf83b92994b8f4a5d2e18126a0a14de=ha3a0e8fc9c32e403f53e663bef3102441678109d32ab4fa193df5440cc87b8b1(h3d07995dec01a3e3b8c4403a2bd29c90c0f824516c54d787d63da157b8bfa796);switch(ha7e7e2f59b128bdb0aa60f56f5211efefdf83b92994b8f4a5d2e18126a0a14de){case".css":return h87e711dc1e4db975d405b6d07c6652c8b78697075c1e0174265b13a917a863fc(hed7002b439e9ac845f22357d822bac1444730fbdb6016d3ec9432297b9ec9f73);case".html":case".htm":return h73d15bb81dfc774fe0ac8bb2937b3d2724c961cc2f1563a15d07d6723c9d7128(hed7002b439e9ac845f22357d822bac1444730fbdb6016d3ec9432297b9ec9f73);case".json":return h45099c83e313f271b3b69fabc440ac1adf7e96160ba3a1939f056dfaa27f70ec(hed7002b439e9ac845f22357d822bac1444730fbdb6016d3ec9432297b9ec9f73);case".svg":return h85320f9e1f18193f2d3b806fb6d3111312403b1996dd1a6ce8f94a357b292fcb(hed7002b439e9ac845f22357d822bac1444730fbdb6016d3ec9432297b9ec9f73);default:return hed7002b439e9ac845f22357d822bac1444730fbdb6016d3ec9432297b9ec9f73.replace(/[\t\r\n]+/g," ").replace(/\s{2,}/g," ").trim();}}function hbea11329fd43319093f94492359757f3ff0f1c526fa70980c3741ccb4c97dde9(h5694d08a2e53ffcae0c3103e5ad6f6076abd960eb1f8a56577040bc1028f702b,ha7e7e2f59b128bdb0aa60f56f5211efefdf83b92994b8f4a5d2e18126a0a14de){const hbdab28c8c51a75db1f28f6ef2e80e5f1468cec99ec1556764000b9480d34118a=h5810b6f400f5882e1b0a810c340ea12bea3b0596ba8e58f641ded91130be7866(h5694d08a2e53ffcae0c3103e5ad6f6076abd960eb1f8a56577040bc1028f702b,ha7e7e2f59b128bdb0aa60f56f5211efefdf83b92994b8f4a5d2e18126a0a14de);const ha6375ee99716acf4635ba3c192f7578a85ad4b479d09174e7d80d01aa91443af={};function hbd5e3b48bcdbe70b42039202a57c677e93fa31c8b9ef327cac30f8835d1da646(h82a3537ff0dbce7eec35d69edc3a189ee6f17d82f353a553f9aa96cb0be3ce89){const h0bf474896363505e5ea5e5d6ace8ebfb13a760a409b1fb467d428fc716f9f284=crypto.createHash("sha256").update(h82a3537ff0dbce7eec35d69edc3a189ee6f17d82f353a553f9aa96cb0be3ce89,"utf8").digest("base64url");const h128df13c1e54ffaaafcc9d07ec7427d61f764214e6ae0321de23c94d261d0860=Buffer.from(h0bf474896363505e5ea5e5d6ace8ebfb13a760a409b1fb467d428fc716f9f284,"base64url").toString("hex");return`h${h128df13c1e54ffaaafcc9d07ec7427d61f764214e6ae0321de23c94d261d0860}`;}function haaa981185719b46c25d2b712f8b4ff1b85c76aaccbb4eaac6c4254091c7b3bdd(h82a3537ff0dbce7eec35d69edc3a189ee6f17d82f353a553f9aa96cb0be3ce89){if(ha6375ee99716acf4635ba3c192f7578a85ad4b479d09174e7d80d01aa91443af[h82a3537ff0dbce7eec35d69edc3a189ee6f17d82f353a553f9aa96cb0be3ce89])return ha6375ee99716acf4635ba3c192f7578a85ad4b479d09174e7d80d01aa91443af[h82a3537ff0dbce7eec35d69edc3a189ee6f17d82f353a553f9aa96cb0be3ce89];if(/^h[a-f0-9]{64}$/.test(h82a3537ff0dbce7eec35d69edc3a189ee6f17d82f353a553f9aa96cb0be3ce89))return h82a3537ff0dbce7eec35d69edc3a189ee6f17d82f353a553f9aa96cb0be3ce89;const h3c469e9d6c5875d37a43f353d4f88e61fcf812c66eee3457465a40b0da4153e0=hbd5e3b48bcdbe70b42039202a57c677e93fa31c8b9ef327cac30f8835d1da646(h82a3537ff0dbce7eec35d69edc3a189ee6f17d82f353a553f9aa96cb0be3ce89);ha6375ee99716acf4635ba3c192f7578a85ad4b479d09174e7d80d01aa91443af[h82a3537ff0dbce7eec35d69edc3a189ee6f17d82f353a553f9aa96cb0be3ce89]=h3c469e9d6c5875d37a43f353d4f88e61fcf812c66eee3457465a40b0da4153e0;return h3c469e9d6c5875d37a43f353d4f88e61fcf812c66eee3457465a40b0da4153e0;}h13a170f00a5f4e0079db99488850f1328015b8933ce1ec8ad2332fcd66fd73f6(hbdab28c8c51a75db1f28f6ef2e80e5f1468cec99ec1556764000b9480d34118a,{Program(hf48f744ddb1bd72031dd53878f7ea3a6da42cf97d5f7e11ac503f0dbb89e96f1){},enter(h148de9c5a7a44d19e56cd9ae1a554bf67847afb0c58f6e12fa29ac7ddfca9940){const h5f161c9149882e0e10124bc5dd5c11f0fbe8ec452edd52bcec76b01e9252cb33=h148de9c5a7a44d19e56cd9ae1a554bf67847afb0c58f6e12fa29ac7ddfca9940.scope;if(!h5f161c9149882e0e10124bc5dd5c11f0fbe8ec452edd52bcec76b01e9252cb33)return;const h1f7378b5c19e6bafe2eaeb0c3404de571bac942248db6119b20dfe74d0581b4c=h5f161c9149882e0e10124bc5dd5c11f0fbe8ec452edd52bcec76b01e9252cb33.bindings||{};for(const[h82a3537ff0dbce7eec35d69edc3a189ee6f17d82f353a553f9aa96cb0be3ce89,h80f70afeef3caa57646fd20afb95be9c3f2c03d38e091906de31838813dcc22e]of Object.entries(h1f7378b5c19e6bafe2eaeb0c3404de571bac942248db6119b20dfe74d0581b4c)){if(!h80f70afeef3caa57646fd20afb95be9c3f2c03d38e091906de31838813dcc22e)continue;if(h80f70afeef3caa57646fd20afb95be9c3f2c03d38e091906de31838813dcc22e.path.parent.type.startsWith("Import"))continue;if(/^h[a-f0-9]{64}$/.test(h82a3537ff0dbce7eec35d69edc3a189ee6f17d82f353a553f9aa96cb0be3ce89))continue;const h3c2bd6065caa807870d68a643131190d4b0d926fc38576a4ff85a0a8c09b15b0=haaa981185719b46c25d2b712f8b4ff1b85c76aaccbb4eaac6c4254091c7b3bdd(h82a3537ff0dbce7eec35d69edc3a189ee6f17d82f353a553f9aa96cb0be3ce89);if(h3c2bd6065caa807870d68a643131190d4b0d926fc38576a4ff85a0a8c09b15b0===h82a3537ff0dbce7eec35d69edc3a189ee6f17d82f353a553f9aa96cb0be3ce89)continue;try{h5f161c9149882e0e10124bc5dd5c11f0fbe8ec452edd52bcec76b01e9252cb33.rename(h82a3537ff0dbce7eec35d69edc3a189ee6f17d82f353a553f9aa96cb0be3ce89,h3c2bd6065caa807870d68a643131190d4b0d926fc38576a4ff85a0a8c09b15b0);}catch{}}}});const h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22=h24cacf5004bf68ae9daad19a5bba391d85ad1cb0b31366e89aec86fad0ab16cb(hbdab28c8c51a75db1f28f6ef2e80e5f1468cec99ec1556764000b9480d34118a,{jsescOption:{minimal:true},compact:true,comments:false}).code;return{obfuscated:h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22,mapping:ha6375ee99716acf4635ba3c192f7578a85ad4b479d09174e7d80d01aa91443af};}function hc529a4d728b7beb0780d95be613399fc77745605d9b6008136cf71598248e98b(hab35b6071709c76e44359ec61407c37da1fa4c20197d3cf32657384a25ee9ca1,h44232e061b265085eb27e53a1510d58ffad772bf02cc68774f3515aa980efd2b,hea6929185337b354c51b8936213c23f579e0ee36396a67f65f8b02aa7a0e50e4){if(!h44232e061b265085eb27e53a1510d58ffad772bf02cc68774f3515aa980efd2b||h44232e061b265085eb27e53a1510d58ffad772bf02cc68774f3515aa980efd2b.format!=="syamcode-key-v2"||!h44232e061b265085eb27e53a1510d58ffad772bf02cc68774f3515aa980efd2b.mapping){h51280dabfbc880cdc5f92cc2f4f22c8032de5aba401c3268250a11eeb2df1f73("Invalid .syamkey format. Expected syamcode-key-v2.");}const hb2d7f24e833051d5fc296d4a747281e9d155ecfb636b983cfd70b51ed9b45a32={};for(const[h14e0ffdc8215c81da0cde40f581237ee35177ddac4f1fc7613cad3004798d25f,h3c469e9d6c5875d37a43f353d4f88e61fcf812c66eee3457465a40b0da4153e0]of Object.entries(h44232e061b265085eb27e53a1510d58ffad772bf02cc68774f3515aa980efd2b.mapping)){hb2d7f24e833051d5fc296d4a747281e9d155ecfb636b983cfd70b51ed9b45a32[h3c469e9d6c5875d37a43f353d4f88e61fcf812c66eee3457465a40b0da4153e0]=h14e0ffdc8215c81da0cde40f581237ee35177ddac4f1fc7613cad3004798d25f;}const hbdab28c8c51a75db1f28f6ef2e80e5f1468cec99ec1556764000b9480d34118a=h5810b6f400f5882e1b0a810c340ea12bea3b0596ba8e58f641ded91130be7866(hab35b6071709c76e44359ec61407c37da1fa4c20197d3cf32657384a25ee9ca1,hea6929185337b354c51b8936213c23f579e0ee36396a67f65f8b02aa7a0e50e4||h44232e061b265085eb27e53a1510d58ffad772bf02cc68774f3515aa980efd2b.sourceExt||".js");h13a170f00a5f4e0079db99488850f1328015b8933ce1ec8ad2332fcd66fd73f6(hbdab28c8c51a75db1f28f6ef2e80e5f1468cec99ec1556764000b9480d34118a,{enter(h148de9c5a7a44d19e56cd9ae1a554bf67847afb0c58f6e12fa29ac7ddfca9940){const h5f161c9149882e0e10124bc5dd5c11f0fbe8ec452edd52bcec76b01e9252cb33=h148de9c5a7a44d19e56cd9ae1a554bf67847afb0c58f6e12fa29ac7ddfca9940.scope;if(!h5f161c9149882e0e10124bc5dd5c11f0fbe8ec452edd52bcec76b01e9252cb33)return;const h1f7378b5c19e6bafe2eaeb0c3404de571bac942248db6119b20dfe74d0581b4c=h5f161c9149882e0e10124bc5dd5c11f0fbe8ec452edd52bcec76b01e9252cb33.bindings||{};for(const[h82a3537ff0dbce7eec35d69edc3a189ee6f17d82f353a553f9aa96cb0be3ce89,h80f70afeef3caa57646fd20afb95be9c3f2c03d38e091906de31838813dcc22e]of Object.entries(h1f7378b5c19e6bafe2eaeb0c3404de571bac942248db6119b20dfe74d0581b4c)){if(!h80f70afeef3caa57646fd20afb95be9c3f2c03d38e091906de31838813dcc22e)continue;if(h80f70afeef3caa57646fd20afb95be9c3f2c03d38e091906de31838813dcc22e.path.parent.type.startsWith("Import"))continue;if(!hb2d7f24e833051d5fc296d4a747281e9d155ecfb636b983cfd70b51ed9b45a32[h82a3537ff0dbce7eec35d69edc3a189ee6f17d82f353a553f9aa96cb0be3ce89])continue;const h3c2bd6065caa807870d68a643131190d4b0d926fc38576a4ff85a0a8c09b15b0=hb2d7f24e833051d5fc296d4a747281e9d155ecfb636b983cfd70b51ed9b45a32[h82a3537ff0dbce7eec35d69edc3a189ee6f17d82f353a553f9aa96cb0be3ce89];if(h3c2bd6065caa807870d68a643131190d4b0d926fc38576a4ff85a0a8c09b15b0===h82a3537ff0dbce7eec35d69edc3a189ee6f17d82f353a553f9aa96cb0be3ce89)continue;try{h5f161c9149882e0e10124bc5dd5c11f0fbe8ec452edd52bcec76b01e9252cb33.rename(h82a3537ff0dbce7eec35d69edc3a189ee6f17d82f353a553f9aa96cb0be3ce89,h3c2bd6065caa807870d68a643131190d4b0d926fc38576a4ff85a0a8c09b15b0);}catch{}}}});const h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22=h24cacf5004bf68ae9daad19a5bba391d85ad1cb0b31366e89aec86fad0ab16cb(hbdab28c8c51a75db1f28f6ef2e80e5f1468cec99ec1556764000b9480d34118a,{jsescOption:{minimal:true},compact:true,comments:false}).code;return h762069bc07a6e1b5df123a5ae7bd91c10daa04694fbaa17fba0cd6a8dcce8f22;}function h27f78de7b91972ceee38707fc20fed8752523d2fdac3489c4d5c1233b96618b2(h3d07995dec01a3e3b8c4403a2bd29c90c0f824516c54d787d63da157b8bfa796,hfc7eca34648ca05764bb80086b3e77ee8a31d0ec4a2c38bc1f43af48adbfa255){if(!fs.existsSync(h3d07995dec01a3e3b8c4403a2bd29c90c0f824516c54d787d63da157b8bfa796))h51280dabfbc880cdc5f92cc2f4f22c8032de5aba401c3268250a11eeb2df1f73(`Input path not found: ${h3d07995dec01a3e3b8c4403a2bd29c90c0f824516c54d787d63da157b8bfa796}`);const h40460da8c882cdc791836fba76009870f960a151287798f1df8af5e963398f84=fs.statSync(h3d07995dec01a3e3b8c4403a2bd29c90c0f824516c54d787d63da157b8bfa796);if(!h40460da8c882cdc791836fba76009870f960a151287798f1df8af5e963398f84.isFile())h51280dabfbc880cdc5f92cc2f4f22c8032de5aba401c3268250a11eeb2df1f73("Input must be a file path (bukan folder).");const hc96c6d5be8d08a12e7b5cdc1b207fa6b2430974c86803d8891675e76fd992c20=fs.readFileSync(h3d07995dec01a3e3b8c4403a2bd29c90c0f824516c54d787d63da157b8bfa796,"utf8");const ha7e7e2f59b128bdb0aa60f56f5211efefdf83b92994b8f4a5d2e18126a0a14de=ha3a0e8fc9c32e403f53e663bef3102441678109d32ab4fa193df5440cc87b8b1(h3d07995dec01a3e3b8c4403a2bd29c90c0f824516c54d787d63da157b8bfa796);if(!hbf9edca453265bd8385139f244868127d6f9127caccab64184d44de9f3b03ff4(ha7e7e2f59b128bdb0aa60f56f5211efefdf83b92994b8f4a5d2e18126a0a14de)){h51280dabfbc880cdc5f92cc2f4f22c8032de5aba401c3268250a11eeb2df1f73(`Unsupported file extension: "${ha7e7e2f59b128bdb0aa60f56f5211efefdf83b92994b8f4a5d2e18126a0a14de}". syamcode only supports ".js" and ".mjs".`);}const h4a533507cebdc4d5567718679e91e60e15cf8d6ba45be8440942207137a4765d=`${hfc7eca34648ca05764bb80086b3e77ee8a31d0ec4a2c38bc1f43af48adbfa255}.syamkey`;const{obfuscated:hc2796babb74438de1c6590f02fc2cdcea671bcf8782cb4e81c5c56581935301d,mapping:ha6375ee99716acf4635ba3c192f7578a85ad4b479d09174e7d80d01aa91443af}=hbea11329fd43319093f94492359757f3ff0f1c526fa70980c3741ccb4c97dde9(hc96c6d5be8d08a12e7b5cdc1b207fa6b2430974c86803d8891675e76fd992c20,ha7e7e2f59b128bdb0aa60f56f5211efefdf83b92994b8f4a5d2e18126a0a14de);let h44232e061b265085eb27e53a1510d58ffad772bf02cc68774f3515aa980efd2b={format:"syamkey",version:3,sourceExt:ha7e7e2f59b128bdb0aa60f56f5211efefdf83b92994b8f4a5d2e18126a0a14de,mapping:ha6375ee99716acf4635ba3c192f7578a85ad4b479d09174e7d80d01aa91443af,createdAt:new Date().toISOString()};fs.mkdirSync(path.dirname(hfc7eca34648ca05764bb80086b3e77ee8a31d0ec4a2c38bc1f43af48adbfa255),{recursive:true});fs.writeFileSync(hfc7eca34648ca05764bb80086b3e77ee8a31d0ec4a2c38bc1f43af48adbfa255,hc2796babb74438de1c6590f02fc2cdcea671bcf8782cb4e81c5c56581935301d,"utf8");fs.writeFileSync(h4a533507cebdc4d5567718679e91e60e15cf8d6ba45be8440942207137a4765d,JSON.stringify(h44232e061b265085eb27e53a1510d58ffad772bf02cc68774f3515aa980efd2b,null,0),"utf8");console.log(`[syamcode] Minified: ${h3d07995dec01a3e3b8c4403a2bd29c90c0f824516c54d787d63da157b8bfa796} -> ${hfc7eca34648ca05764bb80086b3e77ee8a31d0ec4a2c38bc1f43af48adbfa255}`);console.log(`[syamcode] Key: ${hfc7eca34648ca05764bb80086b3e77ee8a31d0ec4a2c38bc1f43af48adbfa255}.syamkey -> generated`);}function h3d720d821c0da1b33057260e3ce5ee8a2b1c63f05f110fc90d01d8b9912f85cf(hd7ff366793a63825454f209ef772bf9ea836093831d3816f000766c21060bbef,h4a533507cebdc4d5567718679e91e60e15cf8d6ba45be8440942207137a4765d,hfc7eca34648ca05764bb80086b3e77ee8a31d0ec4a2c38bc1f43af48adbfa255){if(!fs.existsSync(hd7ff366793a63825454f209ef772bf9ea836093831d3816f000766c21060bbef))h51280dabfbc880cdc5f92cc2f4f22c8032de5aba401c3268250a11eeb2df1f73(`Minified file not found: ${hd7ff366793a63825454f209ef772bf9ea836093831d3816f000766c21060bbef}`);if(!fs.existsSync(h4a533507cebdc4d5567718679e91e60e15cf8d6ba45be8440942207137a4765d))h51280dabfbc880cdc5f92cc2f4f22c8032de5aba401c3268250a11eeb2df1f73(`Syamkey file not found: ${h4a533507cebdc4d5567718679e91e60e15cf8d6ba45be8440942207137a4765d}`);const h1ddd424e287f7ca82a6953c094e5bfd4d6163a2661088e2d45f1d8ad3adce247=fs.readFileSync(hd7ff366793a63825454f209ef772bf9ea836093831d3816f000766c21060bbef,"utf8");const h43c6de7a2409a3e0a6797f39d87906e06c1ff0e9fa89b19d85f7c3a59a90cf77=fs.readFileSync(h4a533507cebdc4d5567718679e91e60e15cf8d6ba45be8440942207137a4765d,"utf8");let h44232e061b265085eb27e53a1510d58ffad772bf02cc68774f3515aa980efd2b;try{h44232e061b265085eb27e53a1510d58ffad772bf02cc68774f3515aa980efd2b=JSON.parse(h43c6de7a2409a3e0a6797f39d87906e06c1ff0e9fa89b19d85f7c3a59a90cf77);}catch{h51280dabfbc880cdc5f92cc2f4f22c8032de5aba401c3268250a11eeb2df1f73("Failed to parse syamkey JSON.");}const hea6929185337b354c51b8936213c23f579e0ee36396a67f65f8b02aa7a0e50e4=ha3a0e8fc9c32e403f53e663bef3102441678109d32ab4fa193df5440cc87b8b1(hd7ff366793a63825454f209ef772bf9ea836093831d3816f000766c21060bbef);const heb00bf0aba491c620ddf47bf68068be4cc52c39bf3b8b554e2c51ff74e5e915e=hc529a4d728b7beb0780d95be613399fc77745605d9b6008136cf71598248e98b(h1ddd424e287f7ca82a6953c094e5bfd4d6163a2661088e2d45f1d8ad3adce247,h44232e061b265085eb27e53a1510d58ffad772bf02cc68774f3515aa980efd2b,hea6929185337b354c51b8936213c23f579e0ee36396a67f65f8b02aa7a0e50e4);fs.mkdirSync(path.dirname(hfc7eca34648ca05764bb80086b3e77ee8a31d0ec4a2c38bc1f43af48adbfa255),{recursive:true});fs.writeFileSync(hfc7eca34648ca05764bb80086b3e77ee8a31d0ec4a2c38bc1f43af48adbfa255,heb00bf0aba491c620ddf47bf68068be4cc52c39bf3b8b554e2c51ff74e5e915e,"utf8");console.log(`[syamcode] Restored identifiers: ${hd7ff366793a63825454f209ef772bf9ea836093831d3816f000766c21060bbef} -> ${hfc7eca34648ca05764bb80086b3e77ee8a31d0ec4a2c38bc1f43af48adbfa255}`);}function h0d6e4079e36703ebd37c00722f5891d28b0e2811dc114b129215123adcce3605(){const h090772cf4068973daad3f715eb788d39fe2c02be42efd86de81f0e59198d6237=process.argv.slice(2);if(h090772cf4068973daad3f715eb788d39fe2c02be42efd86de81f0e59198d6237.length>=1&&h090772cf4068973daad3f715eb788d39fe2c02be42efd86de81f0e59198d6237[0]==="restore"){if(h090772cf4068973daad3f715eb788d39fe2c02be42efd86de81f0e59198d6237.length<4){h51280dabfbc880cdc5f92cc2f4f22c8032de5aba401c3268250a11eeb2df1f73("Invalid arguments. Usage: npx syamcode restore <minifiedPath> <syamkeyPath> <outputPath>");}h3d720d821c0da1b33057260e3ce5ee8a2b1c63f05f110fc90d01d8b9912f85cf(h090772cf4068973daad3f715eb788d39fe2c02be42efd86de81f0e59198d6237[1],h090772cf4068973daad3f715eb788d39fe2c02be42efd86de81f0e59198d6237[2],h090772cf4068973daad3f715eb788d39fe2c02be42efd86de81f0e59198d6237[3]);return;}if(h090772cf4068973daad3f715eb788d39fe2c02be42efd86de81f0e59198d6237.length<2){h51280dabfbc880cdc5f92cc2f4f22c8032de5aba401c3268250a11eeb2df1f73("Invalid arguments. Usage: npx syamcode <inputPath> <outputPath>");}h27f78de7b91972ceee38707fc20fed8752523d2fdac3489c4d5c1233b96618b2(h090772cf4068973daad3f715eb788d39fe2c02be42efd86de81f0e59198d6237[0],h090772cf4068973daad3f715eb788d39fe2c02be42efd86de81f0e59198d6237[1]);}h0d6e4079e36703ebd37c00722f5891d28b0e2811dc114b129215123adcce3605();
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@udenbaguse/syamcode",
3
- "version": "2.0.2",
3
+ "version": "2.0.4",
4
4
  "description": "CLI to minify code and perform reversible identifier obfuscation + restore (Babel AST).",
5
5
  "bin": {
6
- "syamcode": "bin/syamcode-syamkey-v2.js"
6
+ "syamcode": "bin/syamcode-syamkey-v3.js"
7
7
  },
8
- "type": "commonjs",
8
+ "type": "module",
9
9
  "license": "PROPRIETARY",
10
10
  "author": "Muhamad Syamsudin (@udenbaguse)",
11
11
  "dependencies": {
@@ -1 +0,0 @@
1
- const h8c1f70202294=require("fs");const h2af3e4058a57=require("path");const h1e3dd9bf91ec=require("@babel/parser");const ha05db41bff92=require("@babel/traverse").default;const h49bb08ee733c=require("@babel/generator").default;function h89eb6ea55fa2(hd5376fb71f40){console.error(`[syamcode] ${hd5376fb71f40}`);process.exit(1);}function h7f9074d5576c(h6ae982cd6642){return h2af3e4058a57.extname(h6ae982cd6642).toLowerCase();}function h6351615c8a8f(h5dfb1953dba4){return[".js",".mjs"].includes(h5dfb1953dba4);}function h2f166f66d757(h82a359cd6c2a,hbdfc7e55fe5e){const h56c21e415fc0=["jsx","typescript","classProperties","classPrivateProperties","classPrivateMethods","decorators-legacy","dynamicImport","exportDefaultFrom","exportNamespaceFrom","importMeta","objectRestSpread","optionalChaining","nullishCoalescingOperator","topLevelAwait","logicalAssignment","numericSeparator"];return h1e3dd9bf91ec.parse(h82a359cd6c2a,{sourceType:"module",plugins:h56c21e415fc0});}function h4cb652516fe5(h71ed5fd24466){let h7b585ab22d82=h71ed5fd24466.replace(/\/\*[\s\S]*?\*\//g,"");h7b585ab22d82=h7b585ab22d82.replace(/[\t\r\n]+/g," ");h7b585ab22d82=h7b585ab22d82.replace(/\s{2,}/g," ");h7b585ab22d82=h7b585ab22d82.replace(/\s*([{}:;,])\s*/g,"$1");return h7b585ab22d82.trim();}function h2eeeeac9dd91(ha63ca81e262a){let hc83abc1950dc=ha63ca81e262a.replace(/<!--([\s\S]*?)-->/g,"");hc83abc1950dc=hc83abc1950dc.replace(/>\s+</g,"><");hc83abc1950dc=hc83abc1950dc.replace(/\s{2,}/g," ");return hc83abc1950dc.trim();}function hb8c4c44dfe4c(hac6730e4e83d){const h247942793499=JSON.parse(hac6730e4e83d);return JSON.stringify(h247942793499);}function h36e067163d82(hc87998de1a40){let h7b585ab22d82=hc87998de1a40.replace(/<!--([\s\S]*?)-->/g,"");h7b585ab22d82=h7b585ab22d82.replace(/[\t\r\n]+/g," ");h7b585ab22d82=h7b585ab22d82.replace(/\s{2,}/g," ");h7b585ab22d82=h7b585ab22d82.replace(/\s*([<>"'=;,:{}()])\s*/g,"$1");return h7b585ab22d82.trim();}function h979662ce8ee6(h32d9e9a274a2,h54d7c33a6c1e){const h5dfb1953dba4=h7f9074d5576c(h32d9e9a274a2);switch(h5dfb1953dba4){case".css":return h4cb652516fe5(h54d7c33a6c1e);case".html":case".htm":return h2eeeeac9dd91(h54d7c33a6c1e);case".json":return hb8c4c44dfe4c(h54d7c33a6c1e);case".svg":return h36e067163d82(h54d7c33a6c1e);default:return h54d7c33a6c1e.replace(/[\t\r\n]+/g," ").replace(/\s{2,}/g," ").trim();}}function hbd1fc26e32c7(h1055798b54f1,h765d94ef9a28){const h235cf8d123f9=h2f166f66d757(h1055798b54f1,h765d94ef9a28);const h8c98dac3c021=require("crypto");const hfbdd38b59c5e={};function h097447d9c842(he16ece5e50d5){const h4b2e2a3995cf=h8c98dac3c021.createHash("sha256").update(he16ece5e50d5,"utf8").digest("base64url");const hfc65974f3d50=Buffer.from(h4b2e2a3995cf,"base64url").toString("hex");return`h${hfc65974f3d50.slice(0,12)}`;}function h0a4ad87fa85b(h423df3064bc1){if(hfbdd38b59c5e[h423df3064bc1])return hfbdd38b59c5e[h423df3064bc1];const h2db1dfbaeaf2=h097447d9c842(h423df3064bc1);hfbdd38b59c5e[h423df3064bc1]=h2db1dfbaeaf2;return h2db1dfbaeaf2;}ha05db41bff92(h235cf8d123f9,{Program(h8555bea15467){},enter(h6965d5aeeae1){const hfe438832652d=h6965d5aeeae1.scope;if(!hfe438832652d)return;const hdf298a406795=hfe438832652d.bindings||{};for(const[h3b1a4166fefc,h0761138ae541]of Object.entries(hdf298a406795)){if(!h0761138ae541)continue;const h3f37d1ec469a=h0a4ad87fa85b(h3b1a4166fefc);if(h3f37d1ec469a===h3b1a4166fefc)continue;try{hfe438832652d.rename(h3b1a4166fefc,h3f37d1ec469a);}catch{}}}});const h148f0cf6f7f6=h49bb08ee733c(h235cf8d123f9,{jsescOption:{minimal:true},compact:true,comments:false}).code;return{obfuscated:h148f0cf6f7f6,mapping:hfbdd38b59c5e};}function hf874c4061104(h7e1d0f31fec8,h128cbc4889c6,h6c37c1c6564d){if(!h128cbc4889c6||h128cbc4889c6.format!=="syamcode-key-v2"||!h128cbc4889c6.mapping){h89eb6ea55fa2("Invalid .syamkey format. Expected syamcode-key-v2.");}const h94cabf61dd67={};for(const[h297249893dd3,hddfbfe0e9e13]of Object.entries(h128cbc4889c6.mapping)){h94cabf61dd67[hddfbfe0e9e13]=h297249893dd3;}const h9cf2df1ff37d=h2f166f66d757(h7e1d0f31fec8,h6c37c1c6564d||h128cbc4889c6.sourceExt||".js");ha05db41bff92(h9cf2df1ff37d,{enter(h6965d5aeeae1){const hfe438832652d=h6965d5aeeae1.scope;if(!hfe438832652d)return;const hdf298a406795=hfe438832652d.bindings||{};for(const[h3b1a4166fefc,h0761138ae541]of Object.entries(hdf298a406795)){if(!h0761138ae541)continue;if(!h94cabf61dd67[h3b1a4166fefc])continue;const h0d9222391467=h94cabf61dd67[h3b1a4166fefc];if(h0d9222391467===h3b1a4166fefc)continue;try{hfe438832652d.rename(h3b1a4166fefc,h0d9222391467);}catch{}}}});const h8a1e40b61004=h49bb08ee733c(h9cf2df1ff37d,{jsescOption:{minimal:true},compact:true,comments:false}).code;return h8a1e40b61004;}function h3abe54adc461(h8193260ed24b,h5158afe85882){if(!h8c1f70202294.existsSync(h8193260ed24b))h89eb6ea55fa2(`Input path not found: ${h8193260ed24b}`);const h818a87c4c690=h8c1f70202294.statSync(h8193260ed24b);if(!h818a87c4c690.isFile())h89eb6ea55fa2("Input must be a file path (bukan folder).");const h82862f7a7d34=h8c1f70202294.readFileSync(h8193260ed24b,"utf8");const hc79628f90524=h7f9074d5576c(h8193260ed24b);if(!h6351615c8a8f(hc79628f90524)){h89eb6ea55fa2(`Unsupported file extension: "${hc79628f90524}". syamcode only supports ".js" and ".mjs".`);}const hc38ece0f6ef5=`${h5158afe85882}.syamkey`;const{obfuscated:h2984f2f20c67,mapping:hee5dfbdec661}=hbd1fc26e32c7(h82862f7a7d34,hc79628f90524);let hc4b0b96e7bec={format:"syamcode-key-v2",version:2,sourceExt:hc79628f90524,mapping:hee5dfbdec661,createdAt:new Date().toISOString()};h8c1f70202294.mkdirSync(h2af3e4058a57.dirname(h5158afe85882),{recursive:true});h8c1f70202294.writeFileSync(h5158afe85882,h2984f2f20c67,"utf8");h8c1f70202294.writeFileSync(hc38ece0f6ef5,JSON.stringify(hc4b0b96e7bec,null,0),"utf8");console.log(`[syamcode] Minified: ${h8193260ed24b} -> ${h5158afe85882}`);console.log(`[syamcode] Key: ${h5158afe85882}.syamkey -> generated`);}function h52e3adbc0740(h6e4acaaad5ca,h337d8b4c92e1,heb8b168c2a9b){if(!h8c1f70202294.existsSync(h6e4acaaad5ca))h89eb6ea55fa2(`Minified file not found: ${h6e4acaaad5ca}`);if(!h8c1f70202294.existsSync(h337d8b4c92e1))h89eb6ea55fa2(`Syamkey file not found: ${h337d8b4c92e1}`);const h4a98f8014b8e=h8c1f70202294.readFileSync(h6e4acaaad5ca,"utf8");const h44e7f4cf1ee6=h8c1f70202294.readFileSync(h337d8b4c92e1,"utf8");let h478e4c28c4e1;try{h478e4c28c4e1=JSON.parse(h44e7f4cf1ee6);}catch{h89eb6ea55fa2("Failed to parse syamkey JSON.");}const ha8293b62ed49=h7f9074d5576c(h6e4acaaad5ca);const h52dae8141294=hf874c4061104(h4a98f8014b8e,h478e4c28c4e1,ha8293b62ed49);h8c1f70202294.mkdirSync(h2af3e4058a57.dirname(heb8b168c2a9b),{recursive:true});h8c1f70202294.writeFileSync(heb8b168c2a9b,h52dae8141294,"utf8");console.log(`[syamcode] Restored identifiers: ${h6e4acaaad5ca} -> ${heb8b168c2a9b}`);}function hcf55a35275cc(){const h7dd50880859f=process.argv.slice(2);if(h7dd50880859f.length>=1&&h7dd50880859f[0]==="restore"){if(h7dd50880859f.length<4){h89eb6ea55fa2("Invalid arguments. Usage: npx syamcode restore <minifiedPath> <syamkeyPath> <outputPath>");}h52e3adbc0740(h7dd50880859f[1],h7dd50880859f[2],h7dd50880859f[3]);return;}if(h7dd50880859f.length<2){h89eb6ea55fa2("Invalid arguments. Usage: npx syamcode <inputPath> <outputPath>");}h3abe54adc461(h7dd50880859f[0],h7dd50880859f[1]);}hcf55a35275cc();