topkat-utils 1.2.88 → 1.2.89
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/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/src/encryptionUtils.d.ts +2 -0
- package/dist/src/encryptionUtils.js +39 -0
- package/dist/src/encryptionUtils.js.map +1 -0
- package/index.ts +1 -0
- package/package.json +1 -1
- package/src/encryptionUtils.ts +40 -0
package/dist/index.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export * from './src/remove-circular-json-stringify';
|
|
|
18
18
|
export * from './src/is-object';
|
|
19
19
|
export * from './src/regexp-utils';
|
|
20
20
|
export * from './src/clean-stack-trace';
|
|
21
|
+
export * from './src/encryptionUtils';
|
|
21
22
|
export { registerConfig } from './src/config';
|
|
22
23
|
import { moyenne } from './src/math-utils';
|
|
23
24
|
import { kebabCase, snakeCase } from './src/string-utils';
|
package/dist/index.js
CHANGED
|
@@ -35,6 +35,7 @@ __exportStar(require("./src/remove-circular-json-stringify"), exports);
|
|
|
35
35
|
__exportStar(require("./src/is-object"), exports);
|
|
36
36
|
__exportStar(require("./src/regexp-utils"), exports);
|
|
37
37
|
__exportStar(require("./src/clean-stack-trace"), exports);
|
|
38
|
+
__exportStar(require("./src/encryptionUtils"), exports);
|
|
38
39
|
var config_1 = require("./src/config");
|
|
39
40
|
Object.defineProperty(exports, "registerConfig", { enumerable: true, get: function () { return config_1.registerConfig; } });
|
|
40
41
|
const math_utils_1 = require("./src/math-utils");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,oDAAiC;AACjC,mDAAgC;AAChC,kDAA+B;AAC/B,oDAAiC;AACjC,8CAA2B;AAC3B,qDAAkC;AAClC,mDAAgC;AAChC,mDAAgC;AAChC,oDAAiC;AACjC,qDAAkC;AAClC,qDAAkC;AAClC,kDAA+B;AAC/B,yDAAsC;AACtC,0DAAuC;AACvC,oDAAiC;AACjC,iDAA8B;AAC9B,uEAAoD;AACpD,kDAA+B;AAC/B,qDAAkC;AAClC,0DAAuC;AACvC,uCAA6C;AAApC,wGAAA,cAAc,OAAA;AAEvB,iDAA0C;AAC1C,qDAAyD;AACzD,mDAAmE;AACnE,6DAA2D;AAC3D,qDAAgE;AAChE,yFAAkF;AAClF,qDAAiD;AAEjD,sCAAsC;AAC/B,MAAM,GAAG,GAAG,CAAC,CAAkB,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AAArE,QAAA,GAAG,OAAkE;AACrE,QAAA,OAAO,GAAG,oBAAO,CAAA;AACjB,QAAA,gBAAgB,GAAG,+BAAiB,CAAA;AAC1C,MAAM,gBAAgB,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAA,4DAA2B,EAAC,CAAC,CAAC,CAAC,CAAA;AAAzE,QAAA,gBAAgB,oBAAyD;AACzE,QAAA,mBAAmB,GAAG,0CAA2B,CAAA;AACjD,QAAA,cAAc,GAAG,0BAAY,CAAA;AAC7B,QAAA,QAAQ,GAAG,wBAAS,CAAA;AACpB,QAAA,cAAc,GAAG,wBAAS,CAAA;AAC1B,QAAA,QAAQ,GAAG,4BAAS,CAAA;AACpB,QAAA,OAAO,GAAG,0BAAO,CAAA;AACjB,QAAA,WAAW,GAAG,2BAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,oDAAiC;AACjC,mDAAgC;AAChC,kDAA+B;AAC/B,oDAAiC;AACjC,8CAA2B;AAC3B,qDAAkC;AAClC,mDAAgC;AAChC,mDAAgC;AAChC,oDAAiC;AACjC,qDAAkC;AAClC,qDAAkC;AAClC,kDAA+B;AAC/B,yDAAsC;AACtC,0DAAuC;AACvC,oDAAiC;AACjC,iDAA8B;AAC9B,uEAAoD;AACpD,kDAA+B;AAC/B,qDAAkC;AAClC,0DAAuC;AACvC,wDAAqC;AACrC,uCAA6C;AAApC,wGAAA,cAAc,OAAA;AAEvB,iDAA0C;AAC1C,qDAAyD;AACzD,mDAAmE;AACnE,6DAA2D;AAC3D,qDAAgE;AAChE,yFAAkF;AAClF,qDAAiD;AAEjD,sCAAsC;AAC/B,MAAM,GAAG,GAAG,CAAC,CAAkB,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AAArE,QAAA,GAAG,OAAkE;AACrE,QAAA,OAAO,GAAG,oBAAO,CAAA;AACjB,QAAA,gBAAgB,GAAG,+BAAiB,CAAA;AAC1C,MAAM,gBAAgB,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAA,4DAA2B,EAAC,CAAC,CAAC,CAAC,CAAA;AAAzE,QAAA,gBAAgB,oBAAyD;AACzE,QAAA,mBAAmB,GAAG,0CAA2B,CAAA;AACjD,QAAA,cAAc,GAAG,0BAAY,CAAA;AAC7B,QAAA,QAAQ,GAAG,wBAAS,CAAA;AACpB,QAAA,cAAc,GAAG,wBAAS,CAAA;AAC1B,QAAA,QAAQ,GAAG,4BAAS,CAAA;AACpB,QAAA,OAAO,GAAG,0BAAO,CAAA;AACjB,QAAA,WAAW,GAAG,2BAAY,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.simpleEncryptionDecode = exports.simpleEncryptionEncode = void 0;
|
|
4
|
+
const possibleChars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_$';
|
|
5
|
+
const getCharAt = (n) => {
|
|
6
|
+
if (n >= possibleChars.length)
|
|
7
|
+
return possibleChars[n - possibleChars.length];
|
|
8
|
+
if (n < 0)
|
|
9
|
+
return possibleChars[n + possibleChars.length];
|
|
10
|
+
else
|
|
11
|
+
return possibleChars[n];
|
|
12
|
+
};
|
|
13
|
+
const getCharIndex = (char) => {
|
|
14
|
+
return possibleChars.indexOf(char);
|
|
15
|
+
};
|
|
16
|
+
/** simple and quick encoding, this is meant to obfuscate JWT encoding so we can
|
|
17
|
+
not decode it with something like https://jwt.io/
|
|
18
|
+
TODO put it in validationUtils
|
|
19
|
+
*/
|
|
20
|
+
function simpleEncryption(strR, secret, decode = false) {
|
|
21
|
+
const secretNb = secret.split('').map(char => char.charCodeAt(0) % 16 || -1);
|
|
22
|
+
const secretLength = secretNb.length;
|
|
23
|
+
const str = decode ? strR : strR.replace(/\./g, '$');
|
|
24
|
+
const parsed = str.split('').map((char, i) => {
|
|
25
|
+
const charI = getCharIndex(char); // convert character to number
|
|
26
|
+
const newIndex = charI + (secretNb[i % secretLength] * (decode ? -1 : 1)); // obfuscate
|
|
27
|
+
return getCharAt(newIndex);
|
|
28
|
+
}).join('');
|
|
29
|
+
return decode ? parsed.replace(/\$/g, '.') : parsed;
|
|
30
|
+
}
|
|
31
|
+
function simpleEncryptionEncode(str, secret) {
|
|
32
|
+
return simpleEncryption(str, secret, false);
|
|
33
|
+
}
|
|
34
|
+
exports.simpleEncryptionEncode = simpleEncryptionEncode;
|
|
35
|
+
function simpleEncryptionDecode(str, secret) {
|
|
36
|
+
return simpleEncryption(str, secret, true);
|
|
37
|
+
}
|
|
38
|
+
exports.simpleEncryptionDecode = simpleEncryptionDecode;
|
|
39
|
+
//# sourceMappingURL=encryptionUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encryptionUtils.js","sourceRoot":"","sources":["../../src/encryptionUtils.ts"],"names":[],"mappings":";;;AAGA,MAAM,aAAa,GAAG,mEAAmE,CAAA;AACzF,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE;IAC5B,IAAI,CAAC,IAAI,aAAa,CAAC,MAAM;QAAE,OAAO,aAAa,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IAC7E,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,aAAa,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;;QACpD,OAAO,aAAa,CAAC,CAAC,CAAC,CAAA;AAChC,CAAC,CAAA;AACD,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE;IAClC,OAAO,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AACtC,CAAC,CAAA;AAGD;;;GAGG;AACH,SAAS,gBAAgB,CAAC,IAAY,EAAE,MAAc,EAAE,MAAM,GAAG,KAAK;IAElE,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAC5E,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAA;IACpC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAEpD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA,CAAC,8BAA8B;QAC/D,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,YAAY;QACtF,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAA;IAC9B,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEX,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;AACvD,CAAC;AAED,SAAgB,sBAAsB,CAAC,GAAW,EAAE,MAAc;IAC9D,OAAO,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;AAC/C,CAAC;AAFD,wDAEC;AAED,SAAgB,sBAAsB,CAAC,GAAW,EAAE,MAAc;IAC9D,OAAO,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;AAC9C,CAAC;AAFD,wDAEC"}
|
package/index.ts
CHANGED
|
@@ -18,6 +18,7 @@ export * from './src/remove-circular-json-stringify'
|
|
|
18
18
|
export * from './src/is-object'
|
|
19
19
|
export * from './src/regexp-utils'
|
|
20
20
|
export * from './src/clean-stack-trace'
|
|
21
|
+
export * from './src/encryptionUtils'
|
|
21
22
|
export { registerConfig } from './src/config'
|
|
22
23
|
|
|
23
24
|
import { moyenne } from './src/math-utils'
|
package/package.json
CHANGED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
const possibleChars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_$'
|
|
5
|
+
const getCharAt = (n: number) => {
|
|
6
|
+
if (n >= possibleChars.length) return possibleChars[n - possibleChars.length]
|
|
7
|
+
if (n < 0) return possibleChars[n + possibleChars.length]
|
|
8
|
+
else return possibleChars[n]
|
|
9
|
+
}
|
|
10
|
+
const getCharIndex = (char: string) => {
|
|
11
|
+
return possibleChars.indexOf(char)
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
/** simple and quick encoding, this is meant to obfuscate JWT encoding so we can
|
|
16
|
+
not decode it with something like https://jwt.io/
|
|
17
|
+
TODO put it in validationUtils
|
|
18
|
+
*/
|
|
19
|
+
function simpleEncryption(strR: string, secret: string, decode = false): string {
|
|
20
|
+
|
|
21
|
+
const secretNb = secret.split('').map(char => char.charCodeAt(0) % 16 || -1)
|
|
22
|
+
const secretLength = secretNb.length
|
|
23
|
+
const str = decode ? strR : strR.replace(/\./g, '$')
|
|
24
|
+
|
|
25
|
+
const parsed = str.split('').map((char, i) => {
|
|
26
|
+
const charI = getCharIndex(char) // convert character to number
|
|
27
|
+
const newIndex = charI + (secretNb[i % secretLength] * (decode ? -1 : 1)) // obfuscate
|
|
28
|
+
return getCharAt(newIndex)
|
|
29
|
+
}).join('')
|
|
30
|
+
|
|
31
|
+
return decode ? parsed.replace(/\$/g, '.') : parsed
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export function simpleEncryptionEncode(str: string, secret: string) {
|
|
35
|
+
return simpleEncryption(str, secret, false)
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function simpleEncryptionDecode(str: string, secret: string) {
|
|
39
|
+
return simpleEncryption(str, secret, true)
|
|
40
|
+
}
|