@stryke/crypto 0.2.0 → 0.3.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.
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.base64FromBase64url = base64FromBase64url;
7
+ exports.base64ToBase64url = base64ToBase64url;
8
+ exports.fromBase64 = fromBase64;
9
+ exports.toBase64 = toBase64;
10
+ var _isUndefined = require("@stryke/type-checks/is-undefined");
11
+ const a = new Uint8Array([65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 43, 47]),
12
+ h = 61,
13
+ s = new Uint8Array([100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 62, 100, 100, 100, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 100, 100, 100, 100, 100, 100, 100, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 100, 100, 100, 100, 100, 100, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]);
14
+ function toBase64(e) {
15
+ const f = e.length,
16
+ n = new Uint8Array(Math.ceil(f / 3) * 4),
17
+ l = Math.floor(f / 3);
18
+ for (let r = 0; r < l; r++) {
19
+ const c = e[3 * r + 0] << 16 | e[3 * r + 1] << 8 | e[3 * r + 2];
20
+ n[4 * r + 0] = a[c >> 18 & 63], n[4 * r + 1] = a[c >> 12 & 63], n[4 * r + 2] = a[c >> 6 & 63], n[4 * r + 3] = a[c >> 0 & 63];
21
+ }
22
+ const o = l;
23
+ switch (f % 3) {
24
+ case 1:
25
+ {
26
+ const r = e[3 * o + 0] << 16;
27
+ n[4 * o + 0] = a[r >> 18 & 63], n[4 * o + 1] = a[r >> 12 & 63], n[4 * o + 2] = h, n[4 * o + 3] = h;
28
+ break;
29
+ }
30
+ case 2:
31
+ {
32
+ const r = e[3 * o + 0] << 16 | e[3 * o + 1] << 8;
33
+ n[4 * o + 0] = a[r >> 18 & 63], n[4 * o + 1] = a[r >> 12 & 63], n[4 * o + 2] = a[r >> 6 & 63], n[4 * o + 3] = h;
34
+ break;
35
+ }
36
+ }
37
+ return n;
38
+ }
39
+ function fromBase64(e) {
40
+ const f = e.length;
41
+ if (f % 4 !== 0) throw new Error("invalid length");
42
+ let n = 0;
43
+ for (; n < 2 && n < e.length && e[e.length - 1 - n] === h;) n++;
44
+ for (let t = 0; t < e.length - n; t++) if ((0, _isUndefined.isUndefined)(e[t]) || (0, _isUndefined.isUndefined)(s[e[t]]) || s[e[t]] >= 64) throw new Error("invalid data");
45
+ const l = Math.floor((f - n) / 4),
46
+ o = 3 * l + (3 - n) % 3,
47
+ r = new Uint8Array(o);
48
+ for (let t = 0; t < l; t++) {
49
+ const g = s[e[4 * t + 0]] << 18 | s[e[4 * t + 1]] << 12 | s[e[4 * t + 2]] << 6 | s[e[4 * t + 3]] << 0;
50
+ r[3 * t] = g >> 16 & 255, r[3 * t + 1] = g >> 8 & 255, r[3 * t + 2] = g >> 0 & 255;
51
+ }
52
+ const c = l;
53
+ switch (o % 3) {
54
+ case 1:
55
+ {
56
+ const t = s[e[4 * c + 0]] << 18 | s[e[4 * c + 1]] << 12;
57
+ r[3 * c] = t >> 16 & 255;
58
+ break;
59
+ }
60
+ case 2:
61
+ {
62
+ const t = s[e[4 * c + 0]] << 18 | s[e[4 * c + 1]] << 12 | s[e[4 * c + 2]] << 6;
63
+ r[3 * c] = t >> 16 & 255, r[3 * c + 1] = t >> 8 & 255;
64
+ break;
65
+ }
66
+ }
67
+ return r;
68
+ }
69
+ function base64ToBase64url(e) {
70
+ return e.replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/g, "");
71
+ }
72
+ function base64FromBase64url(e) {
73
+ return e.replace(/-/g, "+").replace(/_/g, "/") + "=".repeat((4 - e.length % 4) % 4);
74
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Encodes a Uint8Array into a Base64 encoded Uint8Array.
3
+ *
4
+ * @param input - The input Uint8Array to encode.
5
+ * @returns The Base64 encoded Uint8Array.
6
+ */
7
+ export declare function toBase64(input: Uint8Array): Uint8Array;
8
+ /**
9
+ * Decodes a Base64 encoded Uint8Array into a Uint8Array.
10
+ *
11
+ * @param input - The Base64 encoded Uint8Array to decode.
12
+ * @returns The decoded Uint8Array.
13
+ */
14
+ export declare function fromBase64(input: Uint8Array): Uint8Array;
15
+ /**
16
+ * Converts a Base64 encoded string to a [Base64url](https://datatracker.ietf.org/doc/html/rfc7515#appendix-C) encoded string.
17
+ *
18
+ * @see https://datatracker.ietf.org/doc/html/rfc7515#appendix-C
19
+ *
20
+ * @param base64 - The Base64 encoded string to convert.
21
+ * @returns The Base64url encoded string.
22
+ */
23
+ export declare function base64ToBase64url(base64: string): string;
24
+ /**
25
+ * Converts a [Base64url](https://datatracker.ietf.org/doc/html/rfc7515#appendix-C) encoded string to a Base64 encoded string.
26
+ *
27
+ * @see https://datatracker.ietf.org/doc/html/rfc7515#appendix-C *
28
+ *
29
+ * @param base64url - The Base64url encoded string to convert.
30
+ * @returns The Base64 encoded string.
31
+ */
32
+ export declare function base64FromBase64url(base64url: string): string;
@@ -0,0 +1 @@
1
+ import{isUndefined as b}from"@stryke/type-checks/is-undefined";const a=new Uint8Array([65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57,43,47]),h=61,s=new Uint8Array([100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,62,100,100,100,63,52,53,54,55,56,57,58,59,60,61,100,100,100,100,100,100,100,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,100,100,100,100,100,100,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100]);export function toBase64(e){const f=e.length,n=new Uint8Array(Math.ceil(f/3)*4),l=Math.floor(f/3);for(let r=0;r<l;r++){const c=e[3*r+0]<<16|e[3*r+1]<<8|e[3*r+2];n[4*r+0]=a[c>>18&63],n[4*r+1]=a[c>>12&63],n[4*r+2]=a[c>>6&63],n[4*r+3]=a[c>>0&63]}const o=l;switch(f%3){case 1:{const r=e[3*o+0]<<16;n[4*o+0]=a[r>>18&63],n[4*o+1]=a[r>>12&63],n[4*o+2]=h,n[4*o+3]=h;break}case 2:{const r=e[3*o+0]<<16|e[3*o+1]<<8;n[4*o+0]=a[r>>18&63],n[4*o+1]=a[r>>12&63],n[4*o+2]=a[r>>6&63],n[4*o+3]=h;break}}return n}export function fromBase64(e){const f=e.length;if(f%4!==0)throw new Error("invalid length");let n=0;for(;n<2&&n<e.length&&e[e.length-1-n]===h;)n++;for(let t=0;t<e.length-n;t++)if(b(e[t])||b(s[e[t]])||s[e[t]]>=64)throw new Error("invalid data");const l=Math.floor((f-n)/4),o=3*l+(3-n)%3,r=new Uint8Array(o);for(let t=0;t<l;t++){const g=s[e[4*t+0]]<<18|s[e[4*t+1]]<<12|s[e[4*t+2]]<<6|s[e[4*t+3]]<<0;r[3*t]=g>>16&255,r[3*t+1]=g>>8&255,r[3*t+2]=g>>0&255}const c=l;switch(o%3){case 1:{const t=s[e[4*c+0]]<<18|s[e[4*c+1]]<<12;r[3*c]=t>>16&255;break}case 2:{const t=s[e[4*c+0]]<<18|s[e[4*c+1]]<<12|s[e[4*c+2]]<<6;r[3*c]=t>>16&255,r[3*c+1]=t>>8&255;break}}return r}export function base64ToBase64url(e){return e.replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}export function base64FromBase64url(e){return e.replace(/-/g,"+").replace(/_/g,"/")+"=".repeat((4-e.length%4)%4)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stryke/crypto",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "description": "A package containing cryptographic utilities used by Storm Software.",
6
6
  "repository": {
@@ -68,6 +68,20 @@
68
68
  },
69
69
  "default": { "types": "./dist/index.d.ts", "default": "./dist/index.mjs" }
70
70
  },
71
+ "./base-64": {
72
+ "import": {
73
+ "types": "./dist/base-64.d.ts",
74
+ "default": "./dist/base-64.mjs"
75
+ },
76
+ "require": {
77
+ "types": "./dist/base-64.d.ts",
78
+ "default": "./dist/base-64.cjs"
79
+ },
80
+ "default": {
81
+ "types": "./dist/base-64.d.ts",
82
+ "default": "./dist/base-64.mjs"
83
+ }
84
+ },
71
85
  ".": {
72
86
  "import": { "types": "./dist/index.d.ts", "default": "./dist/index.mjs" },
73
87
  "require": {
@@ -81,5 +95,5 @@
81
95
  "main": "./dist/index.cjs",
82
96
  "module": "./dist/index.mjs",
83
97
  "types": "./dist/index.d.ts",
84
- "gitHead": "afd8f7b3e9698dbd9373ce05c950c61d489ed001"
98
+ "gitHead": "a27f10e735a05cca18b29026136249ed3bb76c1c"
85
99
  }