obscura-js 0.3.0 → 1.0.0

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/README.md CHANGED
@@ -1,4 +1,8 @@
1
- # obscura-js
1
+ # Obscura.js
2
+
3
+ <img width="2492" height="1266" alt="obscura" src="https://github.com/user-attachments/assets/02d32a27-4503-4c72-94d6-b30c205e422b" />
4
+
5
+ ---
2
6
 
3
7
  A JavaScript code protection library inspired by the obfuscation and anti-debugging techniques used in Google reCAPTCHA.
4
8
 
@@ -19,14 +23,6 @@ A JavaScript code protection library inspired by the obfuscation and anti-debugg
19
23
  | Anti-debug | `nativeBinding` | Pre-bind native methods to defend against prototype pollution |
20
24
  | Anti-debug | `integrityTag` | Attach Symbol-based integrity tags to detect object cloning/replace |
21
25
 
22
- ## Getting Started
23
-
24
- ```bash
25
- npm install
26
- npm run build
27
- npm test
28
- ```
29
-
30
26
  ## Installation
31
27
 
32
28
  ```bash
@@ -35,6 +31,22 @@ npm install obscura-js
35
31
 
36
32
  ## Quick Start
37
33
 
34
+ ### CLI
35
+
36
+ ```bash
37
+ # Protect a file (output: app.obscura.js)
38
+ npx obscura-js protect app.js
39
+
40
+ # Specify output path
41
+ npx obscura-js protect app.js -o app.protected.js
42
+
43
+ # Minify output
44
+ npx obscura-js protect app.js --minify
45
+
46
+ # Preserve original comments (stripped by default)
47
+ npx obscura-js protect app.js --keep-comments
48
+ ```
49
+
38
50
  ### API
39
51
 
40
52
  ```typescript
@@ -51,19 +63,6 @@ console.log(appliedPasses);
51
63
  // 'controlFlowFlattening', 'deadCode', 'nativeBinding', 'integrityTag']
52
64
  ```
53
65
 
54
- ### CLI
55
-
56
- ```bash
57
- # Protect a file (output: app.obscura.js)
58
- npx obscura-js protect app.js
59
-
60
- # Specify output path
61
- npx obscura-js protect app.js -o app.protected.js
62
-
63
- # Minify output
64
- npx obscura-js protect app.js --minify
65
- ```
66
-
67
66
  ## API Reference
68
67
 
69
68
  ### `protect(source, options?)`
@@ -71,7 +70,7 @@ npx obscura-js protect app.js --minify
71
70
  | Parameter | Type | Description |
72
71
  | --------- | ------------- | --------------------------------- |
73
72
  | `source` | `string` | JavaScript source code to protect |
74
- | `options` | `HazeOptions` | Optional configuration |
73
+ | `options` | `ObscuraOptions` | Optional configuration |
75
74
 
76
75
  Returns `ProtectResult`:
77
76
 
@@ -82,10 +81,10 @@ interface ProtectResult {
82
81
  }
83
82
  ```
84
83
 
85
- ### `HazeOptions`
84
+ ### `ObscuraOptions`
86
85
 
87
86
  ```typescript
88
- interface HazeOptions {
87
+ interface ObscuraOptions {
89
88
  obfuscation?: {
90
89
  sequenceExpression?: { probability?: number } | false;
91
90
  mba?: { rounds?: number } | false;
@@ -99,6 +98,7 @@ interface HazeOptions {
99
98
  integrityTag?: { tagDescription?: string } | false;
100
99
  };
101
100
  minify?: boolean; // Default: false
101
+ stripComments?: boolean; // Default: true
102
102
  }
103
103
  ```
104
104
 
@@ -124,6 +124,7 @@ protect(source, {
124
124
  integrityTag: { tagDescription: "myapp" },
125
125
  },
126
126
  minify: true,
127
+ stripComments: false, // keep original comments
127
128
  });
128
129
  ```
129
130
 
@@ -133,19 +134,20 @@ protect(source, {
133
134
  obscura-js protect <input> [options]
134
135
  ```
135
136
 
136
- | Option | Description |
137
- | --------------------- | ---------------------------------------------------- |
138
- | `-o, --output <file>` | Output file path (default: `<input>.obscura.js`) |
139
- | `--no-seq` | Disable `sequenceExpression` pass |
140
- | `--no-mba` | Disable `mba` pass |
141
- | `--no-ft` | Disable `functionTable` pass |
142
- | `--no-sp` | Disable `stringPool` pass |
143
- | `--no-cff` | Disable `controlFlowFlattening` pass |
144
- | `--no-dead` | Disable `deadCode` pass |
145
- | `--no-native` | Disable `nativeBinding` pass |
146
- | `--no-tag` | Disable `integrityTag` pass |
147
- | `--sp-seed <number>` | XOR seed for the string pool cipher |
148
- | `--minify` | Compact output (remove whitespace, shorten literals) |
137
+ | Option | Description |
138
+ | --------------------- | ------------------------------------------------------ |
139
+ | `-o, --output <file>` | Output file path (default: `<input>.obscura.js`) |
140
+ | `--no-seq` | Disable `sequenceExpression` pass |
141
+ | `--no-mba` | Disable `mba` pass |
142
+ | `--no-ft` | Disable `functionTable` pass |
143
+ | `--no-sp` | Disable `stringPool` pass |
144
+ | `--no-cff` | Disable `controlFlowFlattening` pass |
145
+ | `--no-dead` | Disable `deadCode` pass |
146
+ | `--no-native` | Disable `nativeBinding` pass |
147
+ | `--no-tag` | Disable `integrityTag` pass |
148
+ | `--sp-seed <number>` | XOR seed for the string pool cipher |
149
+ | `--minify` | Compact output (remove whitespace, shorten literals) |
150
+ | `--keep-comments` | Preserve original source comments (default: strip all) |
149
151
 
150
152
  ## Requirements
151
153
 
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=obscura_cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"obscura_cli.d.ts","sourceRoot":"","sources":["../../bin/obscura_cli.ts"],"names":[],"mappings":""}
@@ -24,6 +24,7 @@ program
24
24
  .option("--no-tag", "Disable symbol integrity tag pass")
25
25
  .option("--sp-seed <number>", "Seed for the string pool XOR cipher", parseInt)
26
26
  .option("--minify", "Minify output (compact whitespace, shorten literals)")
27
+ .option("--keep-comments", "Preserve original comments in output (default: strip all)")
27
28
  .action((input, opts) => {
28
29
  const inputPath = (0, path_1.resolve)(process.cwd(), input);
29
30
  const source = (0, fs_1.readFileSync)(inputPath, "utf-8");
@@ -41,6 +42,7 @@ program
41
42
  integrityTag: opts["tag"] === false ? false : {},
42
43
  },
43
44
  minify: opts["minify"] === true,
45
+ stripComments: opts["keepComments"] !== true,
44
46
  };
45
47
  const { code, appliedPasses } = (0, index_1.protect)(source, options);
46
48
  const outputPath = opts["output"]
@@ -51,4 +53,4 @@ program
51
53
  console.log(` Passes applied: ${appliedPasses.join(", ")}`);
52
54
  });
53
55
  program.parse(process.argv);
54
- //# sourceMappingURL=haze.js.map
56
+ //# sourceMappingURL=obscura_cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"obscura_cli.js","sourceRoot":"","sources":["../../bin/obscura_cli.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { HazeOptions, ProtectResult } from "./types";
2
- export type { HazeOptions, ProtectResult } from "./types";
1
+ import type { ObscuraOptions, ProtectResult } from "./types";
2
+ export type { ObscuraOptions as HazeOptions, ProtectResult } from "./types";
3
3
  export type { ObfuscationOptions, AntiDebugOptions, SequenceExpressionOptions, MbaOptions, FunctionTableOptions, StringPoolOptions, ControlFlowFlatteningOptions, DeadCodeOptions, IntegrityTagOptions, NativeBindingOptions, } from "./types";
4
4
  /**
5
5
  * Protect JavaScript source code by running the configured passes.
@@ -8,5 +8,5 @@ export type { ObfuscationOptions, AntiDebugOptions, SequenceExpressionOptions, M
8
8
  * @param options - Protection configuration
9
9
  * @returns ProtectResult containing the protected code and applied pass names
10
10
  */
11
- export declare function protect(source: string, options?: HazeOptions): ProtectResult;
11
+ export declare function protect(source: string, options?: ObscuraOptions): ProtectResult;
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE1D,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1D,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,yBAAyB,EACzB,UAAU,EACV,oBAAoB,EACpB,iBAAiB,EACjB,4BAA4B,EAC5B,eAAe,EACf,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,SAAS,CAAC;AAEjB;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,aAAa,CAqBhF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7D,YAAY,EAAE,cAAc,IAAI,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5E,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,yBAAyB,EACzB,UAAU,EACV,oBAAoB,EACpB,iBAAiB,EACjB,4BAA4B,EAC5B,eAAe,EACf,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,SAAS,CAAC;AAEjB;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,aAAa,CAwBnF"}
package/dist/src/index.js CHANGED
@@ -26,9 +26,11 @@ function protect(source, options = {}) {
26
26
  const appliedPasses = [];
27
27
  (0, obfuscation_1.applyObfuscation)(ast, options.obfuscation, appliedPasses);
28
28
  (0, antiDebug_1.applyAntiDebug)(ast, options.antiDebug, appliedPasses);
29
+ const stripComments = options.stripComments !== false;
29
30
  const { code } = (0, generator_1.default)(ast, {
30
31
  minified: options.minify ?? false,
31
32
  compact: options.minify ?? false,
33
+ shouldPrintComment: stripComments ? () => false : undefined,
32
34
  });
33
35
  return { code, appliedPasses };
34
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;AA2BA,0BAqBC;AAhDD,0CAAsC;AACtC,iEAAwC;AACxC,+CAAiD;AACjD,2CAA6C;AAiB7C;;;;;;GAMG;AACH,SAAgB,OAAO,CAAC,MAAc,EAAE,UAAuB,EAAE;IAC/D,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,GAAG,GAAG,IAAA,cAAK,EAAC,MAAM,EAAE;QACxB,UAAU,EAAE,aAAa;QACzB,OAAO,EAAE,CAAC,KAAK,CAAC;KACjB,CAAC,CAAC;IAEH,MAAM,aAAa,GAAa,EAAE,CAAC;IAEnC,IAAA,8BAAgB,EAAC,GAAG,EAAE,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC1D,IAAA,0BAAc,EAAC,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAEtD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,mBAAQ,EAAC,GAAG,EAAE;QAC7B,QAAQ,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QACjC,OAAO,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;KACjC,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;AA2BA,0BAwBC;AAnDD,0CAAsC;AACtC,iEAAwC;AACxC,+CAAiD;AACjD,2CAA6C;AAiB7C;;;;;;GAMG;AACH,SAAgB,OAAO,CAAC,MAAc,EAAE,UAA0B,EAAE;IAClE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,GAAG,GAAG,IAAA,cAAK,EAAC,MAAM,EAAE;QACxB,UAAU,EAAE,aAAa;QACzB,OAAO,EAAE,CAAC,KAAK,CAAC;KACjB,CAAC,CAAC;IAEH,MAAM,aAAa,GAAa,EAAE,CAAC;IAEnC,IAAA,8BAAgB,EAAC,GAAG,EAAE,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC1D,IAAA,0BAAc,EAAC,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAEtD,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,KAAK,KAAK,CAAC;IAEtD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,mBAAQ,EAAC,GAAG,EAAE;QAC7B,QAAQ,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QACjC,OAAO,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QAChC,kBAAkB,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;KAC5D,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AACjC,CAAC"}
@@ -50,11 +50,13 @@ export interface AntiDebugOptions {
50
50
  integrityTag?: IntegrityTagOptions | false;
51
51
  nativeBinding?: NativeBindingOptions | false;
52
52
  }
53
- export interface HazeOptions {
53
+ export interface ObscuraOptions {
54
54
  obfuscation?: ObfuscationOptions;
55
55
  antiDebug?: AntiDebugOptions;
56
56
  /** Minify the output (removes whitespace and shortens literals). Default: false */
57
57
  minify?: boolean;
58
+ /** Strip all comments from the output. Default: true */
59
+ stripComments?: boolean;
58
60
  }
59
61
  export interface ProtectResult {
60
62
  /** Protected source code */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAIlC,uCAAuC;AACvC,MAAM,WAAW,IAAI,CAAC,QAAQ;IAC5B,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC9C;AAID,MAAM,WAAW,yBAAyB;IACxC,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,4BAA4B;IAC3C,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,CAAC,EAAE,yBAAyB,GAAG,KAAK,CAAC;IACvD,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IACzB,aAAa,CAAC,EAAE,oBAAoB,GAAG,KAAK,CAAC;IAC7C,UAAU,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAC;IACvC,qBAAqB,CAAC,EAAE,4BAA4B,GAAG,KAAK,CAAC;IAC7D,QAAQ,CAAC,EAAE,eAAe,GAAG,KAAK,CAAC;CACpC;AAID,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,mBAAmB,GAAG,KAAK,CAAC;IAC3C,aAAa,CAAC,EAAE,oBAAoB,GAAG,KAAK,CAAC;CAC9C;AAID,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,mFAAmF;IACnF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAID,MAAM,WAAW,aAAa;IAC5B,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAIlC,uCAAuC;AACvC,MAAM,WAAW,IAAI,CAAC,QAAQ;IAC5B,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC9C;AAID,MAAM,WAAW,yBAAyB;IACxC,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,4BAA4B;IAC3C,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,CAAC,EAAE,yBAAyB,GAAG,KAAK,CAAC;IACvD,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IACzB,aAAa,CAAC,EAAE,oBAAoB,GAAG,KAAK,CAAC;IAC7C,UAAU,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAC;IACvC,qBAAqB,CAAC,EAAE,4BAA4B,GAAG,KAAK,CAAC;IAC7D,QAAQ,CAAC,EAAE,eAAe,GAAG,KAAK,CAAC;CACpC;AAID,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,mBAAmB,GAAG,KAAK,CAAC;IAC3C,aAAa,CAAC,EAAE,oBAAoB,GAAG,KAAK,CAAC;CAC9C;AAID,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,mFAAmF;IACnF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wDAAwD;IACxD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAID,MAAM,WAAW,aAAa;IAC5B,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "obscura-js",
3
- "version": "0.3.0",
3
+ "version": "1.0.0",
4
4
  "description": "JavaScript code protection tool — obfuscation & anti-debugging inspired by Google reCAPTCHA",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",
@@ -16,10 +16,10 @@
16
16
  ],
17
17
  "sideEffects": false,
18
18
  "bin": {
19
- "obscura-js": "dist/bin/haze.js"
19
+ "obscura-js": "dist/bin/obscura_cli.js"
20
20
  },
21
21
  "scripts": {
22
- "build": "tsc && chmod +x dist/bin/haze.js",
22
+ "build": "tsc && chmod +x dist/bin/obscura_cli.js",
23
23
  "build:watch": "tsc --watch",
24
24
  "prepublishOnly": "npm run build && npm test",
25
25
  "test": "jest --coverage",
@@ -27,7 +27,7 @@
27
27
  "lint:fix": "eslint src/ bin/ --fix",
28
28
  "format": "prettier --write \"src/**/*.ts\" \"bin/**/*.ts\" \"tests/**/*.ts\"",
29
29
  "format:check": "prettier --check \"src/**/*.ts\" \"bin/**/*.ts\" \"tests/**/*.ts\"",
30
- "dev": "ts-node bin/haze.ts"
30
+ "dev": "ts-node bin/obscura_cli.ts"
31
31
  },
32
32
  "keywords": [
33
33
  "obfuscation",
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=haze.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"haze.d.ts","sourceRoot":"","sources":["../../bin/haze.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"haze.js","sourceRoot":"","sources":["../../bin/haze.ts"],"names":[],"mappings":"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"}