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 +40 -38
- package/dist/bin/obscura_cli.d.ts +3 -0
- package/dist/bin/obscura_cli.d.ts.map +1 -0
- package/dist/bin/{haze.js → obscura_cli.js} +3 -1
- package/dist/bin/obscura_cli.js.map +1 -0
- package/dist/src/index.d.ts +3 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/types.d.ts +3 -1
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/dist/bin/haze.d.ts +0 -3
- package/dist/bin/haze.d.ts.map +0 -1
- package/dist/bin/haze.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
#
|
|
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` | `
|
|
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
|
-
### `
|
|
84
|
+
### `ObscuraOptions`
|
|
86
85
|
|
|
87
86
|
```typescript
|
|
88
|
-
interface
|
|
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 @@
|
|
|
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=
|
|
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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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {
|
|
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?:
|
|
11
|
+
export declare function protect(source: string, options?: ObscuraOptions): ProtectResult;
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,
|
|
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
|
}
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;AA2BA,
|
|
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"}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -50,11 +50,13 @@ export interface AntiDebugOptions {
|
|
|
50
50
|
integrityTag?: IntegrityTagOptions | false;
|
|
51
51
|
nativeBinding?: NativeBindingOptions | false;
|
|
52
52
|
}
|
|
53
|
-
export interface
|
|
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 */
|
package/dist/src/types.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
+
"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/
|
|
19
|
+
"obscura-js": "dist/bin/obscura_cli.js"
|
|
20
20
|
},
|
|
21
21
|
"scripts": {
|
|
22
|
-
"build": "tsc && chmod +x dist/bin/
|
|
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/
|
|
30
|
+
"dev": "ts-node bin/obscura_cli.ts"
|
|
31
31
|
},
|
|
32
32
|
"keywords": [
|
|
33
33
|
"obfuscation",
|
package/dist/bin/haze.d.ts
DELETED
package/dist/bin/haze.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"haze.d.ts","sourceRoot":"","sources":["../../bin/haze.ts"],"names":[],"mappings":""}
|
package/dist/bin/haze.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"haze.js","sourceRoot":"","sources":["../../bin/haze.ts"],"names":[],"mappings":"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"}
|