@tailwindcss-obfuscator/core 1.0.3 → 1.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.
|
@@ -93,36 +93,45 @@ function findClassStrings(code) {
|
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
// src/generate-class-names.ts
|
|
96
|
+
var HASH_INIT = 5381;
|
|
97
|
+
var HASH_MULT_1 = 33;
|
|
98
|
+
var HASH_MULT_2 = 37;
|
|
99
|
+
function hashString64(str) {
|
|
100
|
+
let h1 = HASH_INIT;
|
|
101
|
+
let h2 = HASH_INIT;
|
|
102
|
+
for (let i = 0;i < str.length; i += 1) {
|
|
103
|
+
const c = str.charCodeAt(i);
|
|
104
|
+
h1 = h1 * HASH_MULT_1 + c | 0;
|
|
105
|
+
h2 = h2 * HASH_MULT_2 + c | 0;
|
|
106
|
+
}
|
|
107
|
+
return BigInt(h1 >>> 0) << 32n | BigInt(h2 >>> 0);
|
|
108
|
+
}
|
|
109
|
+
function bigintToLetters(num, alphabet) {
|
|
110
|
+
let result = "";
|
|
111
|
+
let n = num;
|
|
112
|
+
const base = BigInt(alphabet.length);
|
|
113
|
+
do {
|
|
114
|
+
const r = Number(n % base);
|
|
115
|
+
result = alphabet[r] + result;
|
|
116
|
+
n /= base;
|
|
117
|
+
} while (n > 0n);
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
120
|
+
|
|
96
121
|
class Obfuscator {
|
|
97
|
-
counter = 0;
|
|
98
122
|
map = new Map;
|
|
99
123
|
prefix;
|
|
100
124
|
alphabet = "abcdefghijklmnopqrstuvwxyz";
|
|
101
125
|
constructor(prefix = "az") {
|
|
102
126
|
this.prefix = prefix;
|
|
103
127
|
}
|
|
104
|
-
numberToLetters(num) {
|
|
105
|
-
let result = "";
|
|
106
|
-
let n = num;
|
|
107
|
-
const base = this.alphabet.length;
|
|
108
|
-
do {
|
|
109
|
-
result = this.alphabet[n % base] + result;
|
|
110
|
-
n = Math.floor(n / base);
|
|
111
|
-
} while (n > 0);
|
|
112
|
-
return result;
|
|
113
|
-
}
|
|
114
|
-
generateCode() {
|
|
115
|
-
const letters = this.numberToLetters(this.counter);
|
|
116
|
-
const code = letters.padStart(2, "a");
|
|
117
|
-
this.counter += 1;
|
|
118
|
-
return this.prefix + code;
|
|
119
|
-
}
|
|
120
128
|
getObfuscatedClass(originalClass) {
|
|
121
129
|
const existing = this.map.get(originalClass);
|
|
122
130
|
if (existing !== undefined) {
|
|
123
131
|
return existing;
|
|
124
132
|
}
|
|
125
|
-
const
|
|
133
|
+
const letters = bigintToLetters(hashString64(originalClass), this.alphabet).padStart(2, "a");
|
|
134
|
+
const obfuscated = this.prefix + letters;
|
|
126
135
|
this.map.set(originalClass, obfuscated);
|
|
127
136
|
return obfuscated;
|
|
128
137
|
}
|
|
@@ -130,11 +139,9 @@ class Obfuscator {
|
|
|
130
139
|
return new Map(this.map);
|
|
131
140
|
}
|
|
132
141
|
reset() {
|
|
133
|
-
this.counter = 0;
|
|
134
142
|
this.map.clear();
|
|
135
143
|
}
|
|
136
144
|
}
|
|
137
|
-
|
|
138
145
|
// src/apply-class-names.ts
|
|
139
146
|
var RE_WHITESPACE = /\s+/;
|
|
140
147
|
function stripEscapeSequence(str) {
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
private counter;
|
|
1
|
+
type ClassMap = Map<string, string>;
|
|
2
|
+
declare class Obfuscator {
|
|
4
3
|
private readonly map;
|
|
5
4
|
private readonly prefix;
|
|
6
5
|
private readonly alphabet;
|
|
7
6
|
constructor(prefix?: string);
|
|
8
|
-
private numberToLetters;
|
|
9
|
-
private generateCode;
|
|
10
7
|
getObfuscatedClass(originalClass: string): string;
|
|
11
8
|
getMap(): ClassMap;
|
|
12
9
|
reset(): void;
|
|
13
10
|
}
|
|
11
|
+
export type { ClassMap };
|
|
12
|
+
export { Obfuscator };
|
|
14
13
|
//# sourceMappingURL=generate-class-names.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-class-names.d.ts","sourceRoot":"","sources":["../src/generate-class-names.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"generate-class-names.d.ts","sourceRoot":"","sources":["../src/generate-class-names.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAoCpC,cAAM,UAAU;IACf,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAuB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;gBAE7C,MAAM,SAAO;IAIzB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IAejD,MAAM,IAAI,QAAQ;IAIlB,KAAK,IAAI,IAAI;CAGb;AAED,YAAY,EAAE,QAAQ,EAAE,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -1,34 +1,43 @@
|
|
|
1
1
|
// src/generate-class-names.ts
|
|
2
|
+
var HASH_INIT = 5381;
|
|
3
|
+
var HASH_MULT_1 = 33;
|
|
4
|
+
var HASH_MULT_2 = 37;
|
|
5
|
+
function hashString64(str) {
|
|
6
|
+
let h1 = HASH_INIT;
|
|
7
|
+
let h2 = HASH_INIT;
|
|
8
|
+
for (let i = 0;i < str.length; i += 1) {
|
|
9
|
+
const c = str.charCodeAt(i);
|
|
10
|
+
h1 = h1 * HASH_MULT_1 + c | 0;
|
|
11
|
+
h2 = h2 * HASH_MULT_2 + c | 0;
|
|
12
|
+
}
|
|
13
|
+
return BigInt(h1 >>> 0) << 32n | BigInt(h2 >>> 0);
|
|
14
|
+
}
|
|
15
|
+
function bigintToLetters(num, alphabet) {
|
|
16
|
+
let result = "";
|
|
17
|
+
let n = num;
|
|
18
|
+
const base = BigInt(alphabet.length);
|
|
19
|
+
do {
|
|
20
|
+
const r = Number(n % base);
|
|
21
|
+
result = alphabet[r] + result;
|
|
22
|
+
n /= base;
|
|
23
|
+
} while (n > 0n);
|
|
24
|
+
return result;
|
|
25
|
+
}
|
|
26
|
+
|
|
2
27
|
class Obfuscator {
|
|
3
|
-
counter = 0;
|
|
4
28
|
map = new Map;
|
|
5
29
|
prefix;
|
|
6
30
|
alphabet = "abcdefghijklmnopqrstuvwxyz";
|
|
7
31
|
constructor(prefix = "az") {
|
|
8
32
|
this.prefix = prefix;
|
|
9
33
|
}
|
|
10
|
-
numberToLetters(num) {
|
|
11
|
-
let result = "";
|
|
12
|
-
let n = num;
|
|
13
|
-
const base = this.alphabet.length;
|
|
14
|
-
do {
|
|
15
|
-
result = this.alphabet[n % base] + result;
|
|
16
|
-
n = Math.floor(n / base);
|
|
17
|
-
} while (n > 0);
|
|
18
|
-
return result;
|
|
19
|
-
}
|
|
20
|
-
generateCode() {
|
|
21
|
-
const letters = this.numberToLetters(this.counter);
|
|
22
|
-
const code = letters.padStart(2, "a");
|
|
23
|
-
this.counter += 1;
|
|
24
|
-
return this.prefix + code;
|
|
25
|
-
}
|
|
26
34
|
getObfuscatedClass(originalClass) {
|
|
27
35
|
const existing = this.map.get(originalClass);
|
|
28
36
|
if (existing !== undefined) {
|
|
29
37
|
return existing;
|
|
30
38
|
}
|
|
31
|
-
const
|
|
39
|
+
const letters = bigintToLetters(hashString64(originalClass), this.alphabet).padStart(2, "a");
|
|
40
|
+
const obfuscated = this.prefix + letters;
|
|
32
41
|
this.map.set(originalClass, obfuscated);
|
|
33
42
|
return obfuscated;
|
|
34
43
|
}
|
|
@@ -36,7 +45,6 @@ class Obfuscator {
|
|
|
36
45
|
return new Map(this.map);
|
|
37
46
|
}
|
|
38
47
|
reset() {
|
|
39
|
-
this.counter = 0;
|
|
40
48
|
this.map.clear();
|
|
41
49
|
}
|
|
42
50
|
}
|
package/package.json
CHANGED