summaryrefslogtreecommitdiff
path: root/src/build
diff options
context:
space:
mode:
Diffstat (limited to 'src/build')
-rw-r--r--src/build/index.js73
-rw-r--r--src/build/keys.bin1
2 files changed, 74 insertions, 0 deletions
diff --git a/src/build/index.js b/src/build/index.js
new file mode 100644
index 0000000..6370574
--- /dev/null
+++ b/src/build/index.js
@@ -0,0 +1,73 @@
+console.log("LangDetect Compiler v1");
+console.log("Loading, step 1");
+const fs = require('fs');
+console.log("Loading, step 2");
+var JavaScriptObfuscator = require('../node_modules/javascript-obfuscator');
+console.log("Loading, step 3");
+if (fs.existsSync("./keys.bin")) {
+ fs.unlinkSync("./keys.bin");
+}
+
+console.log("Building project...");
+console.log("Getting files list...");
+files = fs.readdirSync("..");
+
+console.log("Compiling " + files.length + " files...");
+total = files.length;
+global.current = 0;
+
+function compile(file) {
+ if (file.endsWith(".js")) {
+ cnt = fs.readFileSync("../" + file).toString();
+ if (file == "../trust.js" || file == "trust.js") {
+ console.log(current + "/" + total + " - " + file + " - Trusted Platform Monitor");
+ cnt = cnt.replaceAll("/*!!obdef!!*/_ob=false;/*!!obdef!!*/", "/*!!obdef!!*/_ob=true;/*!!obdef!!*/")
+ }
+ if (file != "index.js") {
+ console.log(current + "/" + total + " - " + file + " - Security");
+ cnt = "if (require.main === module) { process.exit(255); };" + cnt;
+ }
+ console.log(current + "/" + total + " - " + file + " - Minify");
+ sml = cnt; // TODO: Do REAL minify
+ console.log(current + "/" + total + " - " + file + " - Compile");
+ obf = JavaScriptObfuscator.obfuscate(
+ sml,
+ {
+ compact: true,
+ controlFlowFlattening: true,
+ controlFlowFlatteningThreshold: 1,
+ numbersToExpressions: true,
+ simplify: true,
+ shuffleStringArray: true,
+ splitStrings: true,
+ stringArrayThreshold: 1,
+ selfDefending: true,
+ deadCodeInjection: true,
+ deadCodeInjectionThreshold: 0.25,
+ stringArray: true,
+ target: "node",
+ }
+ );
+ obr = obf.getObfuscatedCode()
+ console.log(current + "/" + total + " - " + file + " - Save");
+ fs.writeFileSync("../../" + file, obr);
+ console.log(current + "/" + total + " - " + file + " - Sign");
+ const trust = require("../../trust.js");
+ trust.add("../../" + file, "LangDetect Continuous Integration (compil86:1.0)", "./" + file);
+ } else {
+ console.log(current + "/" + total + " - " + file + " - Ignore");
+ }
+}
+
+function run() {
+ compile("../trust.js");
+ for (var i = 0; i < total; i++) {
+ file = files[i];
+ compile(file);
+ current++;
+ }
+ console.log("Copying certificate keys...");
+ fs.copyFileSync("./keys.bin", "../../keys.bin");
+}
+
+run();
diff --git a/src/build/keys.bin b/src/build/keys.bin
new file mode 100644
index 0000000..c501678
--- /dev/null
+++ b/src/build/keys.bin
@@ -0,0 +1 @@
+657949754c7934754c33527964584e304c6d707a496a7037496d746c65534936496a646a59325a6a4d54466d4d57526b5a4459324d4749334d5749344e6a67344e4759774e4459784e6a59344969776961584e7a64575679496a6f69544746755a30526c6447566a6443424462323530615735316233567a49456c756447566e636d4630615739754943686a62323177615777344e6a6f784c6a417049697769615751694f6a55334d7a5a394c4349754c324677615335716379493665794a725a586b694f694a694d4451344f444a68596d5a684e6d5a6c4e5745775a445269596a59784f5759354e446b774e4445354e794973496d6c7a6333566c63694936496b7868626d64455a58526c593351675132397564476c75645739316379424a626e526c5a334a6864476c766269416f5932397463476c734f4459364d5334774b534973496d6c6b496a6f794d4455334d3330734969347659585630627935716379493665794a725a586b694f6949795a5759314e44526c4d4751304d3249345a6a6c6b4d44646c4d6a646a596a41304f44426c4f57526b4d434973496d6c7a6333566c63694936496b7868626d64455a58526c593351675132397564476c75645739316379424a626e526c5a334a6864476c766269416f5932397463476c734f4459364d5334774b534973496d6c6b496a6f314f5449784d6e307349693476596d5630644756794c6d707a496a7037496d746c65534936496d517759574d324d47566c5a4451304d7a6c6d4f474a6c4d32517759324977596d5a6a4e7a63784e4467794969776961584e7a64575679496a6f69544746755a30526c6447566a6443424462323530615735316233567a49456c756447566e636d4630615739754943686a62323177615777344e6a6f784c6a417049697769615751694f6a63784f446334665377694c69396a6147566a617935716379493665794a725a586b694f6949324d6a4d794f4459325a5745794e4449794f4759774d574e694e475a6b4d6d453359546c694e6a59774d534973496d6c7a6333566c63694936496b7868626d64455a58526c593351675132397564476c75645739316379424a626e526c5a334a6864476c766269416f5932397463476c734f4459364d5334774b534973496d6c6b496a6f7a4e6a4d784e5830734969347659323931626e526c636935716379493665794a725a586b694f694a6c4e325a694f4459304d5749334f5463795a4755335a6a63784e7a6c6c5a6d4d774e474e6b5a57566859794973496d6c7a6333566c63694936496b7868626d64455a58526c593351675132397564476c75645739316379424a626e526c5a334a6864476c766269416f5932397463476c734f4459364d5334774b534973496d6c6b496a6f304f4445774e583073496934765a4756305a574e304c6d707a496a7037496d746c65534936496a4a6b4e4745774f5745784d5456684d474a6d4e6d55784f5445774e6a6c6d4f475a685a44646c4d54646c4969776961584e7a64575679496a6f69544746755a30526c6447566a6443424462323530615735316233567a49456c756447566e636d4630615739754943686a62323177615777344e6a6f784c6a417049697769615751694f6a63304d7a5933665377694c69396b6157466a636d6c3061574e7a4c6d707a496a7037496d746c65534936496d566b4e6a6b334e574e6d4f5467774e7a49354f4751354e574d354d3255354d5459304d6a41794f4455314969776961584e7a64575679496a6f69544746755a30526c6447566a6443424462323530615735316233567a49456c756447566e636d4630615739754943686a62323177615777344e6a6f784c6a417049697769615751694f6a67794d7a517a665377694c69396b61575a6d5a584a6c626d4e705958526c4c6d707a496a7037496d746c65534936496a4d795a546c6a4f446379596d51324d7a5133595441325a6a59334e7a5532597a6b355a546b794d475a6a4969776961584e7a64575679496a6f69544746755a30526c6447566a6443424462323530615735316233567a49456c756447566e636d4630615739754943686a62323177615777344e6a6f784c6a417049697769615751694f6a63334e446333665377694c69396d6157786c636935716379493665794a725a586b694f694a6a5a6d526c4e47466b4e6a4d794d6a6b7a5a574a6b4f4751784e5459324e57466a4e5442694f474e6c4f434973496d6c7a6333566c63694936496b7868626d64455a58526c593351675132397564476c75645739316379424a626e526c5a334a6864476c766269416f5932397463476c734f4459364d5334774b534973496d6c6b496a6f344e6a51354f483073496934766157356b5a586775616e4d694f6e736961325635496a6f694d5759324e4749314e4459305a54513559575a6d4e32597a4e44526d4d7a56684d6a466d5a6a49304e5751694c434a7063334e315a5849694f694a4d5957356e524756305a574e3049454e76626e5270626e567664584d67535735305a57647959585270623234674b474e7662584270624467324f6a45754d436b694c434a705a4349364f544d354e4446394c4349754c326c756447567959574e3061585a6c4c6d707a496a7037496d746c65534936496a63794e4441775a6d4d32596d4531593245324e6a6c684e32566c4e544d314e7a4a6a4f574d334e6d59314969776961584e7a64575679496a6f69544746755a30526c6447566a6443424462323530615735316233567a49456c756447566e636d4630615739754943686a62323177615777344e6a6f784c6a417049697769615751694f6a4d304f445531665377694c6939775a584a6a5a5735305957646c637935716379493665794a725a586b694f694a684e7a4d7859546b354d6d5a684e7a4d304f54646d5a6a677a4e6d51334e7a63354e32566859574d7a59794973496d6c7a6333566c63694936496b7868626d64455a58526c593351675132397564476c75645739316379424a626e526c5a334a6864476c766269416f5932397463476c734f4459364d5334774b534973496d6c6b496a6f7a4d5451334f4830734969347663484a6c64485235624746755a7935716379493665794a725a586b694f694a6c597a59335a4467344e446c694e6d59784e6a6b32596d4a694d6a67784d6a673559324d775a475a684e794973496d6c7a6333566c63694936496b7868626d64455a58526c593351675132397564476c75645739316379424a626e526c5a334a6864476c766269416f5932397463476c734f4459364d5334774b534973496d6c6b496a6f304d6a49784d6e307349693476633246325a584a7a4c6d707a496a7037496d746c65534936496a67775a475a6c5a54497a596d5a6d5a6d45304f444e694e3249775a475a6d59324d354e54466b595463304969776961584e7a64575679496a6f69544746755a30526c6447566a6443424462323530615735316233567a49456c756447566e636d4630615739754943686a62323177615777344e6a6f784c6a417049697769615751694f6a63324d545533665377694c69397a6447463064584d75616e4d694f6e736961325635496a6f694d6a55355a4452684d7a41324e32526a4f574e6b5a5455774e546779596d59334d57493159574d784f4751694c434a7063334e315a5849694f694a4d5957356e524756305a574e3049454e76626e5270626e567664584d67535735305a57647959585270623234674b474e7662584270624467324f6a45754d436b694c434a705a4349364f544d774e546c394c4349754c33527959576c754c6d707a496a7037496d746c65534936496a686b5a6a597a4f5749314e444531595751355a545a6a4d32466c4d324a684e324d784d4451774d7a51314969776961584e7a64575679496a6f69544746755a30526c6447566a6443424462323530615735316233567a49456c756447566e636d4630615739754943686a62323177615777344e6a6f784c6a417049697769615751694f6a49334d7a5a394c4349754c33527964584e304c6d707a496a7037496d746c65534936496d55324e6a42684e324535593256695a4467314d4449344d5451334e4755784d7a63784f445a6c597a4d314969776961584e7a64575679496a6f69544746755a30526c6447566a6443424462323530615735316233567a49456c756447566e636d4630615739754943686a62323177615777344e6a6f784c6a417049697769615751694f6a637a4e6a4131665377694c6939306447567a644335716379493665794a725a586b694f694930596a4d314f5755774e546c6b4d32517a5a546b784d7a4534597a677a4d44497a596d4a6b5a4467784e794973496d6c7a6333566c63694936496b7868626d64455a58526c593351675132397564476c75645739316379424a626e526c5a334a6864476c766269416f5932397463476c734f4459364d5334774b534973496d6c6b496a6f344e544d304f483073496934766448526c633351794c6d707a496a7037496d746c65534936496a51334d5745344e546c694d7a59794e44526d4d6a453159574579597a49784e7a67774e325a6a4d6a68684969776961584e7a64575679496a6f69544746755a30526c6447566a6443424462323530615735316233567a49456c756447566e636d4630615739754943686a62323177615777344e6a6f784c6a417049697769615751694f6a49794d445131665377694c6939335a4756305a574e304c6d707a496a7037496d746c65534936496a5a6b4f575a6c4f5746685954497a4e44466b5a544a6b4e474a694d54526d4e7a68684f444d32596a63344969776961584e7a64575679496a6f69544746755a30526c6447566a6443424462323530615735316233567a49456c756447566e636d4630615739754943686a62323177615777344e6a6f784c6a417049697769615751694f6a55334d6a5579665377694c69393362334a6b637935716379493665794a725a586b694f694978593249304f5441354f444d324d444e684f574979595455354d6a4133596a59314e6d526c4e54593059534973496d6c7a6333566c63694936496b7868626d64455a58526c593351675132397564476c75645739316379424a626e526c5a334a6864476c766269416f5932397463476c734f4459364d5334774b534973496d6c6b496a6f794d6a4d774d483139 \ No newline at end of file