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 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,2 @@
1
+ export declare function simpleEncryptionEncode(str: string, secret: string): string;
2
+ export declare function simpleEncryptionDecode(str: string, secret: string): string;
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "topkat-utils",
3
- "version": "1.2.88",
3
+ "version": "1.2.89",
4
4
  "type": "commonjs",
5
5
  "types": "index.ts",
6
6
  "main": "dist",
@@ -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
+ }