bufferbase 1.2.2 → 1.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.
Files changed (63) hide show
  1. package/dist/cjs/bufferbase.d.mts +60 -0
  2. package/dist/cjs/bufferbase.d.mts.map +1 -0
  3. package/dist/cjs/bufferbase.d.ts +60 -0
  4. package/dist/cjs/bufferbase.d.ts.map +1 -0
  5. package/dist/cjs/bufferbase.js +150 -0
  6. package/dist/cjs/bufferbase.js.map +1 -0
  7. package/dist/cjs/bufferbase.mjs +150 -0
  8. package/dist/cjs/bufferbase.mjs.map +1 -0
  9. package/dist/cjs/example.d.mts +2 -0
  10. package/dist/cjs/example.d.mts.map +1 -0
  11. package/dist/{example.d.ts.map → cjs/example.d.ts.map} +1 -1
  12. package/dist/cjs/example.js +39 -0
  13. package/dist/cjs/example.js.map +1 -0
  14. package/dist/cjs/example.mjs +39 -0
  15. package/dist/cjs/example.mjs.map +1 -0
  16. package/dist/cjs/index.d.mts +2 -0
  17. package/dist/cjs/index.d.mts.map +1 -0
  18. package/dist/cjs/index.d.ts +2 -0
  19. package/dist/cjs/index.d.ts.map +1 -0
  20. package/dist/cjs/index.js +11 -0
  21. package/dist/cjs/index.js.map +1 -0
  22. package/dist/cjs/index.mjs +11 -0
  23. package/dist/cjs/index.mjs.map +1 -0
  24. package/dist/cjs/package.json +51 -0
  25. package/dist/esm/bufferbase.d.mts +60 -0
  26. package/dist/esm/bufferbase.d.mts.map +1 -0
  27. package/dist/esm/bufferbase.d.ts.map +1 -0
  28. package/dist/{bufferbase.js → esm/bufferbase.js} +1 -1
  29. package/dist/esm/bufferbase.js.map +1 -0
  30. package/dist/esm/bufferbase.mjs +141 -0
  31. package/dist/esm/bufferbase.mjs.map +1 -0
  32. package/dist/esm/example.d.mts +2 -0
  33. package/dist/esm/example.d.mts.map +1 -0
  34. package/dist/esm/example.d.ts +2 -0
  35. package/dist/esm/example.d.ts.map +1 -0
  36. package/dist/esm/example.js.map +1 -0
  37. package/dist/{sample.js → esm/example.mjs} +5 -5
  38. package/dist/esm/example.mjs.map +1 -0
  39. package/dist/esm/index.d.mts +2 -0
  40. package/dist/esm/index.d.mts.map +1 -0
  41. package/dist/esm/index.d.ts +2 -0
  42. package/dist/esm/index.d.ts.map +1 -0
  43. package/dist/esm/index.js +2 -0
  44. package/dist/esm/index.js.map +1 -0
  45. package/dist/esm/index.mjs +2 -0
  46. package/dist/esm/index.mjs.map +1 -0
  47. package/dist/esm/package.json +51 -0
  48. package/package.json +29 -12
  49. package/src/bufferbase.ts +1 -1
  50. package/src/index.ts +1 -1
  51. package/dist/bufferbase.d.ts.map +0 -1
  52. package/dist/bufferbase.js.map +0 -1
  53. package/dist/example.js.map +0 -1
  54. package/dist/index.d.ts +0 -2
  55. package/dist/index.d.ts.map +0 -1
  56. package/dist/index.js +0 -2
  57. package/dist/index.js.map +0 -1
  58. package/dist/sample.d.ts +0 -2
  59. package/dist/sample.d.ts.map +0 -1
  60. package/dist/sample.js.map +0 -1
  61. /package/dist/{example.d.ts → cjs/example.d.ts} +0 -0
  62. /package/dist/{bufferbase.d.ts → esm/bufferbase.d.ts} +0 -0
  63. /package/dist/{example.js → esm/example.js} +0 -0
@@ -0,0 +1,60 @@
1
+ /// <reference types="node" />
2
+ /**
3
+ * A collection of common bases.
4
+ */
5
+ export declare const Chars: {
6
+ Decimal: string;
7
+ Base16: string;
8
+ Base32: string;
9
+ Base32Crockford: string;
10
+ Base36: string;
11
+ Base52: string;
12
+ Base58: string;
13
+ Base64_STD: string;
14
+ Base64_URL_SAFE: string;
15
+ Base64_XML_NMTOKEN: string;
16
+ Base64_XML_NAME: string;
17
+ Ascii85: string;
18
+ Base85: string;
19
+ Z85: string;
20
+ };
21
+ export declare class InvalidCharacterError extends Error {
22
+ message: string;
23
+ }
24
+ export declare class BufferSizeError extends Error {
25
+ message: string;
26
+ }
27
+ /**
28
+ * Encodes and decodes buffers to and from a base.
29
+ */
30
+ export declare class BufferEncoder {
31
+ private baseChars;
32
+ constructor(baseChars: string);
33
+ /**
34
+ * Encodes a buffer to a string.
35
+ */
36
+ encode(buffer: Buffer): string;
37
+ /**
38
+ * Decodes a string to a buffer.
39
+ */
40
+ decode(encoded: string, bufferSize?: number): Buffer;
41
+ }
42
+ /**
43
+ * Creates a converter function that can convert between two bases.
44
+ */
45
+ export declare class Converter {
46
+ decoder: BufferEncoder;
47
+ encoder: BufferEncoder;
48
+ constructor(inputBase: string, outputBase: string);
49
+ /**
50
+ * Converts a string from the input base to the output base.
51
+ */
52
+ convert(input: string): string;
53
+ }
54
+ export declare class Validator {
55
+ decorder: BufferEncoder;
56
+ constructor(inputBase: string);
57
+ validate(input: string): boolean;
58
+ }
59
+ export declare const validate: (input: string, base: string) => boolean;
60
+ //# sourceMappingURL=bufferbase.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bufferbase.d.mts","sourceRoot":"","sources":["../../src/bufferbase.mts"],"names":[],"mappings":";AAAA;;GAEG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;CAqBjB,CAAC;AAEF,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,OAAO,SAA6B;CACrC;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACxC,OAAO,SAAwC;CAChD;AAED;;GAEG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IAErC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IA2B9B;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;CAgCrD;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;gBAEX,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAKjD;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAG/B;AAED,qBAAa,SAAS;IACpB,QAAQ,EAAE,aAAa,CAAC;gBAEZ,SAAS,EAAE,MAAM;IAI7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAWjC;AAED,eAAO,MAAM,QAAQ,UAAW,MAAM,QAAQ,MAAM,KAAG,OAEtD,CAAC"}
@@ -0,0 +1,60 @@
1
+ /// <reference types="node" />
2
+ /**
3
+ * A collection of common bases.
4
+ */
5
+ export declare const Chars: {
6
+ Decimal: string;
7
+ Base16: string;
8
+ Base32: string;
9
+ Base32Crockford: string;
10
+ Base36: string;
11
+ Base52: string;
12
+ Base58: string;
13
+ Base64_STD: string;
14
+ Base64_URL_SAFE: string;
15
+ Base64_XML_NMTOKEN: string;
16
+ Base64_XML_NAME: string;
17
+ Ascii85: string;
18
+ Base85: string;
19
+ Z85: string;
20
+ };
21
+ export declare class InvalidCharacterError extends Error {
22
+ message: string;
23
+ }
24
+ export declare class BufferSizeError extends Error {
25
+ message: string;
26
+ }
27
+ /**
28
+ * Encodes and decodes buffers to and from a base.
29
+ */
30
+ export declare class BufferEncoder {
31
+ private baseChars;
32
+ constructor(baseChars: string);
33
+ /**
34
+ * Encodes a buffer to a string.
35
+ */
36
+ encode(buffer: Buffer): string;
37
+ /**
38
+ * Decodes a string to a buffer.
39
+ */
40
+ decode(encoded: string, bufferSize?: number): Buffer;
41
+ }
42
+ /**
43
+ * Creates a converter function that can convert between two bases.
44
+ */
45
+ export declare class Converter {
46
+ decoder: BufferEncoder;
47
+ encoder: BufferEncoder;
48
+ constructor(inputBase: string, outputBase: string);
49
+ /**
50
+ * Converts a string from the input base to the output base.
51
+ */
52
+ convert(input: string): string;
53
+ }
54
+ export declare class Validator {
55
+ decorder: BufferEncoder;
56
+ constructor(inputBase: string);
57
+ validate(input: string): boolean;
58
+ }
59
+ export declare const validate: (input: string, base: string) => boolean;
60
+ //# sourceMappingURL=bufferbase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bufferbase.d.ts","sourceRoot":"","sources":["../../src/bufferbase.ts"],"names":[],"mappings":";AAAA;;GAEG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;CAqBjB,CAAC;AAEF,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,OAAO,SAA6B;CACrC;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACxC,OAAO,SAAwC;CAChD;AAED;;GAEG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IAErC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IA2B9B;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;CAgCrD;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;gBAEX,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAKjD;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAG/B;AAED,qBAAa,SAAS;IACpB,QAAQ,EAAE,aAAa,CAAC;gBAEZ,SAAS,EAAE,MAAM;IAI7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAWjC;AAED,eAAO,MAAM,QAAQ,UAAW,MAAM,QAAQ,MAAM,KAAG,OAEtD,CAAC"}
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validate = exports.Validator = exports.Converter = exports.BufferEncoder = exports.BufferSizeError = exports.InvalidCharacterError = exports.Chars = void 0;
4
+ /**
5
+ * A collection of common bases.
6
+ */
7
+ exports.Chars = {
8
+ Decimal: '0123456789',
9
+ Base16: '0123456789ABCDEF',
10
+ Base32: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',
11
+ Base32Crockford: '0123456789ABCDEFGHJKMNPQRSTVWXYZ',
12
+ Base36: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
13
+ Base52: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',
14
+ Base58: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz',
15
+ Base64_STD: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',
16
+ Base64_URL_SAFE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',
17
+ Base64_XML_NMTOKEN: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._',
18
+ Base64_XML_NAME: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_:',
19
+ Ascii85: '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstu',
20
+ Base85: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%&()*+-;<=>?@^_`{|}~',
21
+ Z85: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#',
22
+ };
23
+ class InvalidCharacterError extends Error {
24
+ constructor() {
25
+ super(...arguments);
26
+ this.message = 'Invalid character found';
27
+ }
28
+ }
29
+ exports.InvalidCharacterError = InvalidCharacterError;
30
+ class BufferSizeError extends Error {
31
+ constructor() {
32
+ super(...arguments);
33
+ this.message = 'Buffer size exceeds specified size';
34
+ }
35
+ }
36
+ exports.BufferSizeError = BufferSizeError;
37
+ /**
38
+ * Encodes and decodes buffers to and from a base.
39
+ */
40
+ class BufferEncoder {
41
+ constructor(baseChars) {
42
+ this.baseChars = baseChars;
43
+ }
44
+ /**
45
+ * Encodes a buffer to a string.
46
+ */
47
+ encode(buffer) {
48
+ let result = [];
49
+ for (const byte of buffer) {
50
+ let carry = byte;
51
+ for (let j = 0; j < result.length; j++) {
52
+ carry += result[j] * 256;
53
+ result[j] = carry % this.baseChars.length;
54
+ carry = Math.floor(carry / this.baseChars.length);
55
+ }
56
+ while (carry > 0) {
57
+ result.push(carry % this.baseChars.length);
58
+ carry = Math.floor(carry / this.baseChars.length);
59
+ }
60
+ }
61
+ for (const byte of buffer) {
62
+ if (byte === 0) {
63
+ result.push(0);
64
+ }
65
+ else {
66
+ break;
67
+ }
68
+ }
69
+ return result
70
+ .reverse()
71
+ .map((index) => this.baseChars[index])
72
+ .join('');
73
+ }
74
+ /**
75
+ * Decodes a string to a buffer.
76
+ */
77
+ decode(encoded, bufferSize) {
78
+ let result = Buffer.alloc(0);
79
+ for (const char of encoded) {
80
+ const value = this.baseChars.indexOf(char);
81
+ if (value === -1)
82
+ throw new InvalidCharacterError();
83
+ let carry = value;
84
+ let tempResult = Buffer.alloc(result.length);
85
+ let i;
86
+ for (i = 0; i < result.length; i++) {
87
+ carry += result[i] * this.baseChars.length;
88
+ tempResult[i] = carry % 256;
89
+ carry = Math.floor(carry / 256);
90
+ }
91
+ while (carry > 0) {
92
+ tempResult = Buffer.concat([tempResult, Buffer.from([carry % 256])]);
93
+ carry = Math.floor(carry / 256);
94
+ }
95
+ result = tempResult;
96
+ }
97
+ // buffer size
98
+ if (bufferSize && result.length < bufferSize) {
99
+ result = Buffer.concat([
100
+ result,
101
+ Buffer.from(Array(bufferSize - result.length).fill(0)),
102
+ ]);
103
+ }
104
+ if (bufferSize && result.length > bufferSize) {
105
+ throw new BufferSizeError();
106
+ }
107
+ result.reverse();
108
+ return result;
109
+ }
110
+ }
111
+ exports.BufferEncoder = BufferEncoder;
112
+ /**
113
+ * Creates a converter function that can convert between two bases.
114
+ */
115
+ class Converter {
116
+ constructor(inputBase, outputBase) {
117
+ this.decoder = new BufferEncoder(inputBase);
118
+ this.encoder = new BufferEncoder(outputBase);
119
+ }
120
+ /**
121
+ * Converts a string from the input base to the output base.
122
+ */
123
+ convert(input) {
124
+ return this.encoder.encode(this.decoder.decode(input));
125
+ }
126
+ }
127
+ exports.Converter = Converter;
128
+ class Validator {
129
+ constructor(inputBase) {
130
+ this.decorder = new BufferEncoder(inputBase);
131
+ }
132
+ validate(input) {
133
+ try {
134
+ this.decorder.decode(input);
135
+ return true;
136
+ }
137
+ catch (e) {
138
+ if (e instanceof InvalidCharacterError) {
139
+ return false;
140
+ }
141
+ throw e;
142
+ }
143
+ }
144
+ }
145
+ exports.Validator = Validator;
146
+ const validate = (input, base) => {
147
+ return new Validator(base).validate(input);
148
+ };
149
+ exports.validate = validate;
150
+ //# sourceMappingURL=bufferbase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bufferbase.js","sourceRoot":"","sources":["../../src/bufferbase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validate = exports.Validator = exports.Converter = exports.BufferEncoder = exports.BufferSizeError = exports.InvalidCharacterError = exports.Chars = void 0;
4
+ /**
5
+ * A collection of common bases.
6
+ */
7
+ exports.Chars = {
8
+ Decimal: '0123456789',
9
+ Base16: '0123456789ABCDEF',
10
+ Base32: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',
11
+ Base32Crockford: '0123456789ABCDEFGHJKMNPQRSTVWXYZ',
12
+ Base36: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
13
+ Base52: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',
14
+ Base58: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz',
15
+ Base64_STD: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',
16
+ Base64_URL_SAFE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',
17
+ Base64_XML_NMTOKEN: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._',
18
+ Base64_XML_NAME: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_:',
19
+ Ascii85: '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstu',
20
+ Base85: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%&()*+-;<=>?@^_`{|}~',
21
+ Z85: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#',
22
+ };
23
+ class InvalidCharacterError extends Error {
24
+ constructor() {
25
+ super(...arguments);
26
+ this.message = 'Invalid character found';
27
+ }
28
+ }
29
+ exports.InvalidCharacterError = InvalidCharacterError;
30
+ class BufferSizeError extends Error {
31
+ constructor() {
32
+ super(...arguments);
33
+ this.message = 'Buffer size exceeds specified size';
34
+ }
35
+ }
36
+ exports.BufferSizeError = BufferSizeError;
37
+ /**
38
+ * Encodes and decodes buffers to and from a base.
39
+ */
40
+ class BufferEncoder {
41
+ constructor(baseChars) {
42
+ this.baseChars = baseChars;
43
+ }
44
+ /**
45
+ * Encodes a buffer to a string.
46
+ */
47
+ encode(buffer) {
48
+ let result = [];
49
+ for (const byte of buffer) {
50
+ let carry = byte;
51
+ for (let j = 0; j < result.length; j++) {
52
+ carry += result[j] * 256;
53
+ result[j] = carry % this.baseChars.length;
54
+ carry = Math.floor(carry / this.baseChars.length);
55
+ }
56
+ while (carry > 0) {
57
+ result.push(carry % this.baseChars.length);
58
+ carry = Math.floor(carry / this.baseChars.length);
59
+ }
60
+ }
61
+ for (const byte of buffer) {
62
+ if (byte === 0) {
63
+ result.push(0);
64
+ }
65
+ else {
66
+ break;
67
+ }
68
+ }
69
+ return result
70
+ .reverse()
71
+ .map((index) => this.baseChars[index])
72
+ .join('');
73
+ }
74
+ /**
75
+ * Decodes a string to a buffer.
76
+ */
77
+ decode(encoded, bufferSize) {
78
+ let result = Buffer.alloc(0);
79
+ for (const char of encoded) {
80
+ const value = this.baseChars.indexOf(char);
81
+ if (value === -1)
82
+ throw new InvalidCharacterError();
83
+ let carry = value;
84
+ let tempResult = Buffer.alloc(result.length);
85
+ let i;
86
+ for (i = 0; i < result.length; i++) {
87
+ carry += result[i] * this.baseChars.length;
88
+ tempResult[i] = carry % 256;
89
+ carry = Math.floor(carry / 256);
90
+ }
91
+ while (carry > 0) {
92
+ tempResult = Buffer.concat([tempResult, Buffer.from([carry % 256])]);
93
+ carry = Math.floor(carry / 256);
94
+ }
95
+ result = tempResult;
96
+ }
97
+ // buffer size
98
+ if (bufferSize && result.length < bufferSize) {
99
+ result = Buffer.concat([
100
+ result,
101
+ Buffer.from(Array(bufferSize - result.length).fill(0)),
102
+ ]);
103
+ }
104
+ if (bufferSize && result.length > bufferSize) {
105
+ throw new BufferSizeError();
106
+ }
107
+ result.reverse();
108
+ return result;
109
+ }
110
+ }
111
+ exports.BufferEncoder = BufferEncoder;
112
+ /**
113
+ * Creates a converter function that can convert between two bases.
114
+ */
115
+ class Converter {
116
+ constructor(inputBase, outputBase) {
117
+ this.decoder = new BufferEncoder(inputBase);
118
+ this.encoder = new BufferEncoder(outputBase);
119
+ }
120
+ /**
121
+ * Converts a string from the input base to the output base.
122
+ */
123
+ convert(input) {
124
+ return this.encoder.encode(this.decoder.decode(input));
125
+ }
126
+ }
127
+ exports.Converter = Converter;
128
+ class Validator {
129
+ constructor(inputBase) {
130
+ this.decorder = new BufferEncoder(inputBase);
131
+ }
132
+ validate(input) {
133
+ try {
134
+ this.decorder.decode(input);
135
+ return true;
136
+ }
137
+ catch (e) {
138
+ if (e instanceof InvalidCharacterError) {
139
+ return false;
140
+ }
141
+ throw e;
142
+ }
143
+ }
144
+ }
145
+ exports.Validator = Validator;
146
+ const validate = (input, base) => {
147
+ return new Validator(base).validate(input);
148
+ };
149
+ exports.validate = validate;
150
+ //# sourceMappingURL=bufferbase.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bufferbase.mjs","sourceRoot":"","sources":["../../src/bufferbase.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=example.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example.d.mts","sourceRoot":"","sources":["../../src/example.mts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"example.d.ts","sourceRoot":"","sources":["../src/example.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"example.d.ts","sourceRoot":"","sources":["../../src/example.ts"],"names":[],"mappings":""}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const bufferbase_js_1 = require("./bufferbase.js");
4
+ // Example buffer
5
+ const bytes = Buffer.from('Hello, World!', 'utf8');
6
+ // Encoding buffer to Base32
7
+ const encoder = new bufferbase_js_1.BufferEncoder(bufferbase_js_1.Chars.Base32Crockford);
8
+ const base32encoded = encoder.encode(bytes);
9
+ // Converting Base32 to Base58
10
+ const converter_32to58 = new bufferbase_js_1.Converter(bufferbase_js_1.Chars.Base32Crockford, bufferbase_js_1.Chars.Base58);
11
+ const base58encoded = converter_32to58.convert(base32encoded);
12
+ // Converting Base32 to Base58
13
+ const converter_58to64 = new bufferbase_js_1.Converter(bufferbase_js_1.Chars.Base58, bufferbase_js_1.Chars.Base64_URL_SAFE);
14
+ const base64encoded = converter_58to64.convert(base58encoded);
15
+ // Validating Base64
16
+ const validatorB64 = new bufferbase_js_1.Validator(bufferbase_js_1.Chars.Base64_URL_SAFE);
17
+ const isValidAsBase64 = validatorB64.validate(base64encoded);
18
+ // Decoding Base64
19
+ const decoder = new bufferbase_js_1.BufferEncoder(bufferbase_js_1.Chars.Base64_URL_SAFE);
20
+ const decoded = decoder.decode(base64encoded);
21
+ console.table({
22
+ bytes: bytes.toString('utf8'),
23
+ base32encoded,
24
+ base58encoded,
25
+ base64encoded,
26
+ isValidAsBase64,
27
+ decoded: decoded.toString('utf8'),
28
+ });
29
+ // ┌─────────────────┬─────────────────────────┐
30
+ // │ (index) │ Values │
31
+ // ├─────────────────┼─────────────────────────┤
32
+ // │ bytes │ 'Hello, World!' │
33
+ // │ base32encoded │ '4GSBCDHQJR82QDXS6RS11' │
34
+ // │ base58encoded │ '72k1xXWG59fYdzSNoA' │
35
+ // │ base64encoded │ 'BIZWxsbywgV29ybGQh' │
36
+ // │ isValidAsBase64 │ true │
37
+ // │ decoded │ 'Hello, World!' │
38
+ // └─────────────────┴─────────────────────────┘
39
+ //# sourceMappingURL=example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example.js","sourceRoot":"","sources":["../../src/example.ts"],"names":[],"mappings":";;AAAA,mDAA6E;AAE7E,iBAAiB;AACjB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAEnD,4BAA4B;AAC5B,MAAM,OAAO,GAAG,IAAI,6BAAa,CAAC,qBAAK,CAAC,eAAe,CAAC,CAAC;AACzD,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAE5C,8BAA8B;AAC9B,MAAM,gBAAgB,GAAG,IAAI,yBAAS,CAAC,qBAAK,CAAC,eAAe,EAAE,qBAAK,CAAC,MAAM,CAAC,CAAC;AAC5E,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAE9D,8BAA8B;AAC9B,MAAM,gBAAgB,GAAG,IAAI,yBAAS,CAAC,qBAAK,CAAC,MAAM,EAAE,qBAAK,CAAC,eAAe,CAAC,CAAC;AAC5E,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAE9D,oBAAoB;AACpB,MAAM,YAAY,GAAG,IAAI,yBAAS,CAAC,qBAAK,CAAC,eAAe,CAAC,CAAC;AAC1D,MAAM,eAAe,GAAG,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAE7D,kBAAkB;AAClB,MAAM,OAAO,GAAG,IAAI,6BAAa,CAAC,qBAAK,CAAC,eAAe,CAAC,CAAC;AACzD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAE9C,OAAO,CAAC,KAAK,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC7B,aAAa;IACb,aAAa;IACb,aAAa;IACb,eAAe;IACf,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;CAClC,CAAC,CAAC;AACH,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const bufferbase_mjs_1 = require("./bufferbase.mjs");
4
+ // Example buffer
5
+ const bytes = Buffer.from('Hello, World!', 'utf8');
6
+ // Encoding buffer to Base32
7
+ const encoder = new bufferbase_mjs_1.BufferEncoder(bufferbase_mjs_1.Chars.Base32Crockford);
8
+ const base32encoded = encoder.encode(bytes);
9
+ // Converting Base32 to Base58
10
+ const converter_32to58 = new bufferbase_mjs_1.Converter(bufferbase_mjs_1.Chars.Base32Crockford, bufferbase_mjs_1.Chars.Base58);
11
+ const base58encoded = converter_32to58.convert(base32encoded);
12
+ // Converting Base32 to Base58
13
+ const converter_58to64 = new bufferbase_mjs_1.Converter(bufferbase_mjs_1.Chars.Base58, bufferbase_mjs_1.Chars.Base64_URL_SAFE);
14
+ const base64encoded = converter_58to64.convert(base58encoded);
15
+ // Validating Base64
16
+ const validatorB64 = new bufferbase_mjs_1.Validator(bufferbase_mjs_1.Chars.Base64_URL_SAFE);
17
+ const isValidAsBase64 = validatorB64.validate(base64encoded);
18
+ // Decoding Base64
19
+ const decoder = new bufferbase_mjs_1.BufferEncoder(bufferbase_mjs_1.Chars.Base64_URL_SAFE);
20
+ const decoded = decoder.decode(base64encoded);
21
+ console.table({
22
+ bytes: bytes.toString('utf8'),
23
+ base32encoded,
24
+ base58encoded,
25
+ base64encoded,
26
+ isValidAsBase64,
27
+ decoded: decoded.toString('utf8'),
28
+ });
29
+ // ┌─────────────────┬─────────────────────────┐
30
+ // │ (index) │ Values │
31
+ // ├─────────────────┼─────────────────────────┤
32
+ // │ bytes │ 'Hello, World!' │
33
+ // │ base32encoded │ '4GSBCDHQJR82QDXS6RS11' │
34
+ // │ base58encoded │ '72k1xXWG59fYdzSNoA' │
35
+ // │ base64encoded │ 'BIZWxsbywgV29ybGQh' │
36
+ // │ isValidAsBase64 │ true │
37
+ // │ decoded │ 'Hello, World!' │
38
+ // └─────────────────┴─────────────────────────┘
39
+ //# sourceMappingURL=example.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example.mjs","sourceRoot":"","sources":["../../src/example.mts"],"names":[],"mappings":";;AAAA,qDAA8E;AAE9E,iBAAiB;AACjB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAEnD,4BAA4B;AAC5B,MAAM,OAAO,GAAG,IAAI,8BAAa,CAAC,sBAAK,CAAC,eAAe,CAAC,CAAC;AACzD,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAE5C,8BAA8B;AAC9B,MAAM,gBAAgB,GAAG,IAAI,0BAAS,CAAC,sBAAK,CAAC,eAAe,EAAE,sBAAK,CAAC,MAAM,CAAC,CAAC;AAC5E,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAE9D,8BAA8B;AAC9B,MAAM,gBAAgB,GAAG,IAAI,0BAAS,CAAC,sBAAK,CAAC,MAAM,EAAE,sBAAK,CAAC,eAAe,CAAC,CAAC;AAC5E,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAE9D,oBAAoB;AACpB,MAAM,YAAY,GAAG,IAAI,0BAAS,CAAC,sBAAK,CAAC,eAAe,CAAC,CAAC;AAC1D,MAAM,eAAe,GAAG,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAE7D,kBAAkB;AAClB,MAAM,OAAO,GAAG,IAAI,8BAAa,CAAC,sBAAK,CAAC,eAAe,CAAC,CAAC;AACzD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAE9C,OAAO,CAAC,KAAK,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC7B,aAAa;IACb,aAAa;IACb,aAAa;IACb,eAAe;IACf,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;CAClC,CAAC,CAAC;AACH,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD"}
@@ -0,0 +1,2 @@
1
+ export { Chars, BufferEncoder, Converter, InvalidCharacterError, Validator, validate, } from './bufferbase.mjs';
2
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/index.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,aAAa,EACb,SAAS,EACT,qBAAqB,EACrB,SAAS,EACT,QAAQ,GACT,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Chars, BufferEncoder, Converter, InvalidCharacterError, Validator, validate, } from './bufferbase.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,aAAa,EACb,SAAS,EACT,qBAAqB,EACrB,SAAS,EACT,QAAQ,GACT,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validate = exports.Validator = exports.InvalidCharacterError = exports.Converter = exports.BufferEncoder = exports.Chars = void 0;
4
+ var bufferbase_js_1 = require("./bufferbase.js");
5
+ Object.defineProperty(exports, "Chars", { enumerable: true, get: function () { return bufferbase_js_1.Chars; } });
6
+ Object.defineProperty(exports, "BufferEncoder", { enumerable: true, get: function () { return bufferbase_js_1.BufferEncoder; } });
7
+ Object.defineProperty(exports, "Converter", { enumerable: true, get: function () { return bufferbase_js_1.Converter; } });
8
+ Object.defineProperty(exports, "InvalidCharacterError", { enumerable: true, get: function () { return bufferbase_js_1.InvalidCharacterError; } });
9
+ Object.defineProperty(exports, "Validator", { enumerable: true, get: function () { return bufferbase_js_1.Validator; } });
10
+ Object.defineProperty(exports, "validate", { enumerable: true, get: function () { return bufferbase_js_1.validate; } });
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,iDAOyB;AANvB,sGAAA,KAAK,OAAA;AACL,8GAAA,aAAa,OAAA;AACb,0GAAA,SAAS,OAAA;AACT,sHAAA,qBAAqB,OAAA;AACrB,0GAAA,SAAS,OAAA;AACT,yGAAA,QAAQ,OAAA"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validate = exports.Validator = exports.InvalidCharacterError = exports.Converter = exports.BufferEncoder = exports.Chars = void 0;
4
+ var bufferbase_mjs_1 = require("./bufferbase.mjs");
5
+ Object.defineProperty(exports, "Chars", { enumerable: true, get: function () { return bufferbase_mjs_1.Chars; } });
6
+ Object.defineProperty(exports, "BufferEncoder", { enumerable: true, get: function () { return bufferbase_mjs_1.BufferEncoder; } });
7
+ Object.defineProperty(exports, "Converter", { enumerable: true, get: function () { return bufferbase_mjs_1.Converter; } });
8
+ Object.defineProperty(exports, "InvalidCharacterError", { enumerable: true, get: function () { return bufferbase_mjs_1.InvalidCharacterError; } });
9
+ Object.defineProperty(exports, "Validator", { enumerable: true, get: function () { return bufferbase_mjs_1.Validator; } });
10
+ Object.defineProperty(exports, "validate", { enumerable: true, get: function () { return bufferbase_mjs_1.validate; } });
11
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/index.mts"],"names":[],"mappings":";;;AAAA,mDAO0B;AANxB,uGAAA,KAAK,OAAA;AACL,+GAAA,aAAa,OAAA;AACb,2GAAA,SAAS,OAAA;AACT,uHAAA,qBAAqB,OAAA;AACrB,2GAAA,SAAS,OAAA;AACT,0GAAA,QAAQ,OAAA"}
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "bufferbase",
3
+ "version": "1.3.0",
4
+ "description": "Buffer-to-BaseN Encoder, Decoder, Converter, and Validator",
5
+ "sideEffects": false,
6
+ "type": "commonjs",
7
+ "scripts": {
8
+ "build": "npm run build:esm && npm run build:cjs && tsconfig-to-dual-package",
9
+ "build:cjs": "tsc -p tsconfig.cjs.json",
10
+ "build:esm": "tsc -p tsconfig.json",
11
+ "prepublishOnly": "npm run build",
12
+ "example": "tsx src/example.ts",
13
+ "test": "tsx --test src/*.test.ts"
14
+ },
15
+ "devDependencies": {
16
+ "@types/node": "^20.11.5",
17
+ "ts-loader": "^9.5.1",
18
+ "tsconfig-to-dual-package": "^1.2.0",
19
+ "tsx": "^4.7.0",
20
+ "typescript": "^5.3.3"
21
+ },
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "git+https://github.com/misebox/bufferbase.git"
25
+ },
26
+ "files": [
27
+ "dist",
28
+ "src"
29
+ ],
30
+ "keywords": [
31
+ "number",
32
+ "encode",
33
+ "convert",
34
+ "decimal",
35
+ "base",
36
+ "base16",
37
+ "base32",
38
+ "crockford",
39
+ "base36",
40
+ "base58",
41
+ "base64",
42
+ "Ascii85",
43
+ "base85"
44
+ ],
45
+ "author": "misebox",
46
+ "license": "ISC",
47
+ "bugs": {
48
+ "url": "https://github.com/misebox/bufferbase/issues"
49
+ },
50
+ "homepage": "https://github.com/misebox/bufferbase#readme"
51
+ }
@@ -0,0 +1,60 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /**
3
+ * A collection of common bases.
4
+ */
5
+ export declare const Chars: {
6
+ Decimal: string;
7
+ Base16: string;
8
+ Base32: string;
9
+ Base32Crockford: string;
10
+ Base36: string;
11
+ Base52: string;
12
+ Base58: string;
13
+ Base64_STD: string;
14
+ Base64_URL_SAFE: string;
15
+ Base64_XML_NMTOKEN: string;
16
+ Base64_XML_NAME: string;
17
+ Ascii85: string;
18
+ Base85: string;
19
+ Z85: string;
20
+ };
21
+ export declare class InvalidCharacterError extends Error {
22
+ message: string;
23
+ }
24
+ export declare class BufferSizeError extends Error {
25
+ message: string;
26
+ }
27
+ /**
28
+ * Encodes and decodes buffers to and from a base.
29
+ */
30
+ export declare class BufferEncoder {
31
+ private baseChars;
32
+ constructor(baseChars: string);
33
+ /**
34
+ * Encodes a buffer to a string.
35
+ */
36
+ encode(buffer: Buffer): string;
37
+ /**
38
+ * Decodes a string to a buffer.
39
+ */
40
+ decode(encoded: string, bufferSize?: number): Buffer;
41
+ }
42
+ /**
43
+ * Creates a converter function that can convert between two bases.
44
+ */
45
+ export declare class Converter {
46
+ decoder: BufferEncoder;
47
+ encoder: BufferEncoder;
48
+ constructor(inputBase: string, outputBase: string);
49
+ /**
50
+ * Converts a string from the input base to the output base.
51
+ */
52
+ convert(input: string): string;
53
+ }
54
+ export declare class Validator {
55
+ decorder: BufferEncoder;
56
+ constructor(inputBase: string);
57
+ validate(input: string): boolean;
58
+ }
59
+ export declare const validate: (input: string, base: string) => boolean;
60
+ //# sourceMappingURL=bufferbase.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bufferbase.d.mts","sourceRoot":"","sources":["../../src/bufferbase.mts"],"names":[],"mappings":";AAAA;;GAEG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;CAqBjB,CAAC;AAEF,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,OAAO,SAA6B;CACrC;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACxC,OAAO,SAAwC;CAChD;AAED;;GAEG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IAErC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IA2B9B;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;CAgCrD;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;gBAEX,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAKjD;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAG/B;AAED,qBAAa,SAAS;IACpB,QAAQ,EAAE,aAAa,CAAC;gBAEZ,SAAS,EAAE,MAAM;IAI7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAWjC;AAED,eAAO,MAAM,QAAQ,UAAW,MAAM,QAAQ,MAAM,KAAG,OAEtD,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bufferbase.d.ts","sourceRoot":"","sources":["../../src/bufferbase.ts"],"names":[],"mappings":";AAAA;;GAEG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;CAqBjB,CAAC;AAEF,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,OAAO,SAA6B;CACrC;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACxC,OAAO,SAAwC;CAChD;AAED;;GAEG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IAErC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IA2B9B;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;CAgCrD;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;gBAEX,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAKjD;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAG/B;AAED,qBAAa,SAAS;IACpB,QAAQ,EAAE,aAAa,CAAC;gBAEZ,SAAS,EAAE,MAAM;IAI7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAWjC;AAED,eAAO,MAAM,QAAQ,UAAW,MAAM,QAAQ,MAAM,KAAG,OAEtD,CAAC"}
@@ -96,7 +96,7 @@ export class BufferEncoder {
96
96
  Buffer.from(Array(bufferSize - result.length).fill(0)),
97
97
  ]);
98
98
  }
99
- if (bufferSize && result.length !== bufferSize) {
99
+ if (bufferSize && result.length > bufferSize) {
100
100
  throw new BufferSizeError();
101
101
  }
102
102
  result.reverse();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bufferbase.js","sourceRoot":"","sources":["../../src/bufferbase.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,kBAAkB;IAC1B,MAAM,EAAE,kCAAkC;IAC1C,eAAe,EAAE,kCAAkC;IACnD,MAAM,EAAE,sCAAsC;IAC9C,MAAM,EAAE,sDAAsD;IAC9D,MAAM,EAAE,4DAA4D;IACpE,UAAU,EACR,kEAAkE;IACpE,eAAe,EACb,kEAAkE;IACpE,kBAAkB,EAChB,kEAAkE;IACpE,eAAe,EACb,kEAAkE;IACpE,OAAO,EACL,uFAAuF;IACzF,MAAM,EACJ,uFAAuF;IACzF,GAAG,EAAE,uFAAuF;CAC7F,CAAC;AAEF,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAAhD;;QACE,YAAO,GAAG,yBAAyB,CAAC;IACtC,CAAC;CAAA;AAED,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAA1C;;QACE,YAAO,GAAG,oCAAoC,CAAC;IACjD,CAAC;CAAA;AAED;;GAEG;AACH,MAAM,OAAO,aAAa;IACxB,YAAoB,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;IAAG,CAAC;IAEzC;;OAEG;IACH,MAAM,CAAC,MAAc;QACnB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,IAAI,KAAK,GAAG,IAAI,CAAC;YACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBACzB,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC1C,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACpD,CAAC;YACD,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC3C,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,MAAM;YACR,CAAC;QACH,CAAC;QACD,OAAO,MAAM;aACV,OAAO,EAAE;aACT,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;aACrC,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAe,EAAE,UAAmB;QACzC,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,KAAK,KAAK,CAAC,CAAC;gBAAE,MAAM,IAAI,qBAAqB,EAAE,CAAC;YACpD,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,IAAI,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,CAAC,CAAC;YACN,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC3C,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC;gBAC5B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;YAClC,CAAC;YACD,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC;gBACjB,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;YAClC,CAAC;YACD,MAAM,GAAG,UAAU,CAAC;QACtB,CAAC;QACD,cAAc;QACd,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;YAC7C,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;gBACrB,MAAM;gBACN,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACvD,CAAC,CAAC;QACL,CAAC;QACD,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;YAC7C,MAAM,IAAI,eAAe,EAAE,CAAC;QAC9B,CAAC;QACD,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,SAAS;IAIpB,YAAY,SAAiB,EAAE,UAAkB;QAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,KAAa;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACzD,CAAC;CACF;AAED,MAAM,OAAO,SAAS;IAGpB,YAAY,SAAiB;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,qBAAqB,EAAE,CAAC;gBACvC,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,IAAY,EAAW,EAAE;IAC/D,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC,CAAC"}
@@ -0,0 +1,141 @@
1
+ /**
2
+ * A collection of common bases.
3
+ */
4
+ export const Chars = {
5
+ Decimal: '0123456789',
6
+ Base16: '0123456789ABCDEF',
7
+ Base32: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',
8
+ Base32Crockford: '0123456789ABCDEFGHJKMNPQRSTVWXYZ',
9
+ Base36: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
10
+ Base52: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',
11
+ Base58: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz',
12
+ Base64_STD: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',
13
+ Base64_URL_SAFE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',
14
+ Base64_XML_NMTOKEN: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._',
15
+ Base64_XML_NAME: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_:',
16
+ Ascii85: '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstu',
17
+ Base85: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%&()*+-;<=>?@^_`{|}~',
18
+ Z85: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#',
19
+ };
20
+ export class InvalidCharacterError extends Error {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.message = 'Invalid character found';
24
+ }
25
+ }
26
+ export class BufferSizeError extends Error {
27
+ constructor() {
28
+ super(...arguments);
29
+ this.message = 'Buffer size exceeds specified size';
30
+ }
31
+ }
32
+ /**
33
+ * Encodes and decodes buffers to and from a base.
34
+ */
35
+ export class BufferEncoder {
36
+ constructor(baseChars) {
37
+ this.baseChars = baseChars;
38
+ }
39
+ /**
40
+ * Encodes a buffer to a string.
41
+ */
42
+ encode(buffer) {
43
+ let result = [];
44
+ for (const byte of buffer) {
45
+ let carry = byte;
46
+ for (let j = 0; j < result.length; j++) {
47
+ carry += result[j] * 256;
48
+ result[j] = carry % this.baseChars.length;
49
+ carry = Math.floor(carry / this.baseChars.length);
50
+ }
51
+ while (carry > 0) {
52
+ result.push(carry % this.baseChars.length);
53
+ carry = Math.floor(carry / this.baseChars.length);
54
+ }
55
+ }
56
+ for (const byte of buffer) {
57
+ if (byte === 0) {
58
+ result.push(0);
59
+ }
60
+ else {
61
+ break;
62
+ }
63
+ }
64
+ return result
65
+ .reverse()
66
+ .map((index) => this.baseChars[index])
67
+ .join('');
68
+ }
69
+ /**
70
+ * Decodes a string to a buffer.
71
+ */
72
+ decode(encoded, bufferSize) {
73
+ let result = Buffer.alloc(0);
74
+ for (const char of encoded) {
75
+ const value = this.baseChars.indexOf(char);
76
+ if (value === -1)
77
+ throw new InvalidCharacterError();
78
+ let carry = value;
79
+ let tempResult = Buffer.alloc(result.length);
80
+ let i;
81
+ for (i = 0; i < result.length; i++) {
82
+ carry += result[i] * this.baseChars.length;
83
+ tempResult[i] = carry % 256;
84
+ carry = Math.floor(carry / 256);
85
+ }
86
+ while (carry > 0) {
87
+ tempResult = Buffer.concat([tempResult, Buffer.from([carry % 256])]);
88
+ carry = Math.floor(carry / 256);
89
+ }
90
+ result = tempResult;
91
+ }
92
+ // buffer size
93
+ if (bufferSize && result.length < bufferSize) {
94
+ result = Buffer.concat([
95
+ result,
96
+ Buffer.from(Array(bufferSize - result.length).fill(0)),
97
+ ]);
98
+ }
99
+ if (bufferSize && result.length > bufferSize) {
100
+ throw new BufferSizeError();
101
+ }
102
+ result.reverse();
103
+ return result;
104
+ }
105
+ }
106
+ /**
107
+ * Creates a converter function that can convert between two bases.
108
+ */
109
+ export class Converter {
110
+ constructor(inputBase, outputBase) {
111
+ this.decoder = new BufferEncoder(inputBase);
112
+ this.encoder = new BufferEncoder(outputBase);
113
+ }
114
+ /**
115
+ * Converts a string from the input base to the output base.
116
+ */
117
+ convert(input) {
118
+ return this.encoder.encode(this.decoder.decode(input));
119
+ }
120
+ }
121
+ export class Validator {
122
+ constructor(inputBase) {
123
+ this.decorder = new BufferEncoder(inputBase);
124
+ }
125
+ validate(input) {
126
+ try {
127
+ this.decorder.decode(input);
128
+ return true;
129
+ }
130
+ catch (e) {
131
+ if (e instanceof InvalidCharacterError) {
132
+ return false;
133
+ }
134
+ throw e;
135
+ }
136
+ }
137
+ }
138
+ export const validate = (input, base) => {
139
+ return new Validator(base).validate(input);
140
+ };
141
+ //# sourceMappingURL=bufferbase.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bufferbase.mjs","sourceRoot":"","sources":["../../src/bufferbase.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=example.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example.d.mts","sourceRoot":"","sources":["../../src/example.mts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=example.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example.d.ts","sourceRoot":"","sources":["../../src/example.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example.js","sourceRoot":"","sources":["../../src/example.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE7E,iBAAiB;AACjB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAEnD,4BAA4B;AAC5B,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AACzD,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAE5C,8BAA8B;AAC9B,MAAM,gBAAgB,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5E,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAE9D,8BAA8B;AAC9B,MAAM,gBAAgB,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;AAC5E,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAE9D,oBAAoB;AACpB,MAAM,YAAY,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AAC1D,MAAM,eAAe,GAAG,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAE7D,kBAAkB;AAClB,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AACzD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAE9C,OAAO,CAAC,KAAK,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC7B,aAAa;IACb,aAAa;IACb,aAAa;IACb,eAAe;IACf,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;CAClC,CAAC,CAAC;AACH,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD"}
@@ -1,6 +1,6 @@
1
- import { Chars, BufferEncoder, Converter, Validator } from "./bufferbase.js";
1
+ import { Chars, BufferEncoder, Converter, Validator } from './bufferbase.mjs';
2
2
  // Example buffer
3
- const bytes = Buffer.from("Hello, World!", "utf8");
3
+ const bytes = Buffer.from('Hello, World!', 'utf8');
4
4
  // Encoding buffer to Base32
5
5
  const encoder = new BufferEncoder(Chars.Base32Crockford);
6
6
  const base32encoded = encoder.encode(bytes);
@@ -17,12 +17,12 @@ const isValidAsBase64 = validatorB64.validate(base64encoded);
17
17
  const decoder = new BufferEncoder(Chars.Base64_URL_SAFE);
18
18
  const decoded = decoder.decode(base64encoded);
19
19
  console.table({
20
- bytes: bytes.toString("utf8"),
20
+ bytes: bytes.toString('utf8'),
21
21
  base32encoded,
22
22
  base58encoded,
23
23
  base64encoded,
24
24
  isValidAsBase64,
25
- decoded: decoded.toString("utf8"),
25
+ decoded: decoded.toString('utf8'),
26
26
  });
27
27
  // ┌─────────────────┬─────────────────────────┐
28
28
  // │ (index) │ Values │
@@ -34,4 +34,4 @@ console.table({
34
34
  // │ isValidAsBase64 │ true │
35
35
  // │ decoded │ 'Hello, World!' │
36
36
  // └─────────────────┴─────────────────────────┘
37
- //# sourceMappingURL=sample.js.map
37
+ //# sourceMappingURL=example.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example.mjs","sourceRoot":"","sources":["../../src/example.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE9E,iBAAiB;AACjB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAEnD,4BAA4B;AAC5B,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AACzD,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAE5C,8BAA8B;AAC9B,MAAM,gBAAgB,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5E,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAE9D,8BAA8B;AAC9B,MAAM,gBAAgB,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;AAC5E,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAE9D,oBAAoB;AACpB,MAAM,YAAY,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AAC1D,MAAM,eAAe,GAAG,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAE7D,kBAAkB;AAClB,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AACzD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAE9C,OAAO,CAAC,KAAK,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC7B,aAAa;IACb,aAAa;IACb,aAAa;IACb,eAAe;IACf,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;CAClC,CAAC,CAAC;AACH,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD"}
@@ -0,0 +1,2 @@
1
+ export { Chars, BufferEncoder, Converter, InvalidCharacterError, Validator, validate, } from './bufferbase.mjs';
2
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/index.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,aAAa,EACb,SAAS,EACT,qBAAqB,EACrB,SAAS,EACT,QAAQ,GACT,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Chars, BufferEncoder, Converter, InvalidCharacterError, Validator, validate, } from './bufferbase.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,aAAa,EACb,SAAS,EACT,qBAAqB,EACrB,SAAS,EACT,QAAQ,GACT,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Chars, BufferEncoder, Converter, InvalidCharacterError, Validator, validate, } from './bufferbase.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,aAAa,EACb,SAAS,EACT,qBAAqB,EACrB,SAAS,EACT,QAAQ,GACT,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Chars, BufferEncoder, Converter, InvalidCharacterError, Validator, validate, } from './bufferbase.mjs';
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/index.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,aAAa,EACb,SAAS,EACT,qBAAqB,EACrB,SAAS,EACT,QAAQ,GACT,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "bufferbase",
3
+ "version": "1.3.0",
4
+ "description": "Buffer-to-BaseN Encoder, Decoder, Converter, and Validator",
5
+ "sideEffects": false,
6
+ "type": "module",
7
+ "scripts": {
8
+ "build": "npm run build:esm && npm run build:cjs && tsconfig-to-dual-package",
9
+ "build:cjs": "tsc -p tsconfig.cjs.json",
10
+ "build:esm": "tsc -p tsconfig.json",
11
+ "prepublishOnly": "npm run build",
12
+ "example": "tsx src/example.ts",
13
+ "test": "tsx --test src/*.test.ts"
14
+ },
15
+ "devDependencies": {
16
+ "@types/node": "^20.11.5",
17
+ "ts-loader": "^9.5.1",
18
+ "tsconfig-to-dual-package": "^1.2.0",
19
+ "tsx": "^4.7.0",
20
+ "typescript": "^5.3.3"
21
+ },
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "git+https://github.com/misebox/bufferbase.git"
25
+ },
26
+ "files": [
27
+ "dist",
28
+ "src"
29
+ ],
30
+ "keywords": [
31
+ "number",
32
+ "encode",
33
+ "convert",
34
+ "decimal",
35
+ "base",
36
+ "base16",
37
+ "base32",
38
+ "crockford",
39
+ "base36",
40
+ "base58",
41
+ "base64",
42
+ "Ascii85",
43
+ "base85"
44
+ ],
45
+ "author": "misebox",
46
+ "license": "ISC",
47
+ "bugs": {
48
+ "url": "https://github.com/misebox/bufferbase/issues"
49
+ },
50
+ "homepage": "https://github.com/misebox/bufferbase#readme"
51
+ }
package/package.json CHANGED
@@ -1,15 +1,37 @@
1
1
  {
2
2
  "name": "bufferbase",
3
- "version": "1.2.2",
3
+ "version": "1.3.0",
4
4
  "description": "Buffer-to-BaseN Encoder, Decoder, Converter, and Validator",
5
- "type": "module",
6
- "types": "./dist/index.d.ts",
7
5
  "sideEffects": false,
8
- "main": "./dist/index.js",
9
- "exports": "./dist/index.js",
6
+ "type": "module",
7
+ "main": "./dist/cjs/index.mjs",
8
+ "module": "./dist/esm/index.js",
9
+ "types": "./dist/esm/index.d.mts",
10
+ "exports": {
11
+ ".": {
12
+ "import": {
13
+ "types": "./dist/esm/index.d.ts",
14
+ "default": "./dist/esm/index.js"
15
+ },
16
+ "require": {
17
+ "types": "./dist/cjs/index.d.ts",
18
+ "default": "./dist/cjs/index.js"
19
+ },
20
+ "default": "./dist/cjs/index.js"
21
+ }
22
+ },
23
+ "scripts": {
24
+ "build": "npm run build:esm && npm run build:cjs && tsconfig-to-dual-package",
25
+ "build:cjs": "tsc -p tsconfig.cjs.json",
26
+ "build:esm": "tsc -p tsconfig.json",
27
+ "prepublishOnly": "npm run build",
28
+ "example": "tsx src/example.ts",
29
+ "test": "tsx --test src/*.test.ts"
30
+ },
10
31
  "devDependencies": {
11
32
  "@types/node": "^20.11.5",
12
33
  "ts-loader": "^9.5.1",
34
+ "tsconfig-to-dual-package": "^1.2.0",
13
35
  "tsx": "^4.7.0",
14
36
  "typescript": "^5.3.3"
15
37
  },
@@ -41,10 +63,5 @@
41
63
  "bugs": {
42
64
  "url": "https://github.com/misebox/bufferbase/issues"
43
65
  },
44
- "homepage": "https://github.com/misebox/bufferbase#readme",
45
- "scripts": {
46
- "build": "tsc",
47
- "example": "tsx src/example.ts",
48
- "test": "tsx --test src/*.test.ts"
49
- }
50
- }
66
+ "homepage": "https://github.com/misebox/bufferbase#readme"
67
+ }
package/src/bufferbase.ts CHANGED
@@ -97,7 +97,7 @@ export class BufferEncoder {
97
97
  Buffer.from(Array(bufferSize - result.length).fill(0)),
98
98
  ]);
99
99
  }
100
- if (bufferSize && result.length !== bufferSize) {
100
+ if (bufferSize && result.length > bufferSize) {
101
101
  throw new BufferSizeError();
102
102
  }
103
103
  result.reverse();
package/src/index.ts CHANGED
@@ -5,4 +5,4 @@ export {
5
5
  InvalidCharacterError,
6
6
  Validator,
7
7
  validate,
8
- } from "./bufferbase.js";
8
+ } from './bufferbase.js';
@@ -1 +0,0 @@
1
- {"version":3,"file":"bufferbase.d.ts","sourceRoot":"","sources":["../src/bufferbase.ts"],"names":[],"mappings":";AAAA;;GAEG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;CAqBjB,CAAC;AAEF,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,OAAO,SAA6B;CACrC;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACxC,OAAO,SAAwC;CAChD;AAED;;GAEG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IAErC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IA2B9B;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;CAgCrD;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;gBAEX,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAKjD;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAG/B;AAED,qBAAa,SAAS;IACpB,QAAQ,EAAE,aAAa,CAAC;gBAEZ,SAAS,EAAE,MAAM;IAI7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAWjC;AAED,eAAO,MAAM,QAAQ,UAAW,MAAM,QAAQ,MAAM,KAAG,OAEtD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"bufferbase.js","sourceRoot":"","sources":["../src/bufferbase.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"example.js","sourceRoot":"","sources":["../src/example.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE7E,iBAAiB;AACjB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAEnD,4BAA4B;AAC5B,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AACzD,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAE5C,8BAA8B;AAC9B,MAAM,gBAAgB,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5E,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAE9D,8BAA8B;AAC9B,MAAM,gBAAgB,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;AAC5E,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAE9D,oBAAoB;AACpB,MAAM,YAAY,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AAC1D,MAAM,eAAe,GAAG,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAE7D,kBAAkB;AAClB,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AACzD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAE9C,OAAO,CAAC,KAAK,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC7B,aAAa;IACb,aAAa;IACb,aAAa;IACb,eAAe;IACf,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;CAClC,CAAC,CAAC;AACH,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD"}
package/dist/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export { Chars, BufferEncoder, Converter, InvalidCharacterError, Validator, validate, } from "./bufferbase.js";
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,aAAa,EACb,SAAS,EACT,qBAAqB,EACrB,SAAS,EACT,QAAQ,GACT,MAAM,iBAAiB,CAAC"}
package/dist/index.js DELETED
@@ -1,2 +0,0 @@
1
- export { Chars, BufferEncoder, Converter, InvalidCharacterError, Validator, validate, } from "./bufferbase.js";
2
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,aAAa,EACb,SAAS,EACT,qBAAqB,EACrB,SAAS,EACT,QAAQ,GACT,MAAM,iBAAiB,CAAC"}
package/dist/sample.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=sample.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sample.d.ts","sourceRoot":"","sources":["../src/sample.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sample.js","sourceRoot":"","sources":["../src/sample.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE7E,iBAAiB;AACjB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAEnD,4BAA4B;AAC5B,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AACzD,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAE5C,8BAA8B;AAC9B,MAAM,gBAAgB,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5E,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAE9D,8BAA8B;AAC9B,MAAM,gBAAgB,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;AAC5E,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAE9D,oBAAoB;AACpB,MAAM,YAAY,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AAC1D,MAAM,eAAe,GAAG,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAE7D,kBAAkB;AAClB,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AACzD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAE9C,OAAO,CAAC,KAAK,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC7B,aAAa;IACb,aAAa;IACb,aAAa;IACb,eAAe;IACf,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;CAClC,CAAC,CAAC;AACH,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD"}
File without changes
File without changes
File without changes