bufferbase 1.3.0 → 2.0.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 (107) hide show
  1. package/README.md +99 -18
  2. package/dist/cjs/bases.d.ts +82 -0
  3. package/dist/cjs/bases.d.ts.map +1 -0
  4. package/dist/cjs/bases.js +121 -0
  5. package/dist/cjs/bases.js.map +1 -0
  6. package/dist/cjs/bufferbase.d.ts +19 -36
  7. package/dist/cjs/bufferbase.d.ts.map +1 -1
  8. package/dist/cjs/bufferbase.js +27 -111
  9. package/dist/cjs/bufferbase.js.map +1 -1
  10. package/dist/cjs/codec.d.ts +124 -0
  11. package/dist/cjs/codec.d.ts.map +1 -0
  12. package/dist/cjs/codec.js +247 -0
  13. package/dist/cjs/codec.js.map +1 -0
  14. package/dist/cjs/codecs.d.ts +71 -0
  15. package/dist/cjs/codecs.d.ts.map +1 -0
  16. package/dist/cjs/codecs.js +92 -0
  17. package/dist/cjs/codecs.js.map +1 -0
  18. package/dist/cjs/errors.d.ts +76 -0
  19. package/dist/cjs/errors.d.ts.map +1 -0
  20. package/dist/cjs/errors.js +92 -0
  21. package/dist/cjs/errors.js.map +1 -0
  22. package/dist/cjs/example.js +20 -27
  23. package/dist/cjs/example.js.map +1 -1
  24. package/dist/cjs/functions.d.ts +62 -0
  25. package/dist/cjs/functions.d.ts.map +1 -0
  26. package/dist/cjs/functions.js +93 -0
  27. package/dist/cjs/functions.js.map +1 -0
  28. package/dist/cjs/index.d.ts +8 -1
  29. package/dist/cjs/index.d.ts.map +1 -1
  30. package/dist/cjs/index.js +25 -4
  31. package/dist/cjs/index.js.map +1 -1
  32. package/dist/cjs/package.json +6 -7
  33. package/dist/cjs/types.d.ts +107 -0
  34. package/dist/cjs/types.d.ts.map +1 -0
  35. package/dist/cjs/types.js +3 -0
  36. package/dist/cjs/types.js.map +1 -0
  37. package/dist/esm/bases.d.ts +82 -0
  38. package/dist/esm/bases.d.ts.map +1 -0
  39. package/dist/esm/bases.js +116 -0
  40. package/dist/esm/bases.js.map +1 -0
  41. package/dist/esm/bufferbase.d.ts +19 -36
  42. package/dist/esm/bufferbase.d.ts.map +1 -1
  43. package/dist/esm/bufferbase.js +25 -107
  44. package/dist/esm/bufferbase.js.map +1 -1
  45. package/dist/esm/codec.d.ts +124 -0
  46. package/dist/esm/codec.d.ts.map +1 -0
  47. package/dist/esm/codec.js +242 -0
  48. package/dist/esm/codec.js.map +1 -0
  49. package/dist/esm/codecs.d.ts +71 -0
  50. package/dist/esm/codecs.d.ts.map +1 -0
  51. package/dist/esm/codecs.js +89 -0
  52. package/dist/esm/codecs.js.map +1 -0
  53. package/dist/esm/errors.d.ts +76 -0
  54. package/dist/esm/errors.d.ts.map +1 -0
  55. package/dist/esm/errors.js +86 -0
  56. package/dist/esm/errors.js.map +1 -0
  57. package/dist/esm/example.js +19 -26
  58. package/dist/esm/example.js.map +1 -1
  59. package/dist/esm/functions.d.ts +62 -0
  60. package/dist/esm/functions.d.ts.map +1 -0
  61. package/dist/esm/functions.js +87 -0
  62. package/dist/esm/functions.js.map +1 -0
  63. package/dist/esm/index.d.ts +8 -1
  64. package/dist/esm/index.d.ts.map +1 -1
  65. package/dist/esm/index.js +12 -1
  66. package/dist/esm/index.js.map +1 -1
  67. package/dist/esm/package.json +6 -7
  68. package/dist/esm/types.d.ts +107 -0
  69. package/dist/esm/types.d.ts.map +1 -0
  70. package/dist/esm/types.js +2 -0
  71. package/dist/esm/types.js.map +1 -0
  72. package/package.json +8 -9
  73. package/src/bases.ts +120 -0
  74. package/src/bufferbase.test.ts +44 -27
  75. package/src/bufferbase.ts +31 -106
  76. package/src/codec.test.ts +320 -0
  77. package/src/codec.ts +266 -0
  78. package/src/codecs.ts +118 -0
  79. package/src/errors.ts +87 -0
  80. package/src/example.ts +20 -30
  81. package/src/functions.ts +93 -0
  82. package/src/index.ts +21 -8
  83. package/src/types.ts +129 -0
  84. package/dist/cjs/bufferbase.d.mts +0 -60
  85. package/dist/cjs/bufferbase.d.mts.map +0 -1
  86. package/dist/cjs/bufferbase.mjs +0 -150
  87. package/dist/cjs/bufferbase.mjs.map +0 -1
  88. package/dist/cjs/example.d.mts +0 -2
  89. package/dist/cjs/example.d.mts.map +0 -1
  90. package/dist/cjs/example.mjs +0 -39
  91. package/dist/cjs/example.mjs.map +0 -1
  92. package/dist/cjs/index.d.mts +0 -2
  93. package/dist/cjs/index.d.mts.map +0 -1
  94. package/dist/cjs/index.mjs +0 -11
  95. package/dist/cjs/index.mjs.map +0 -1
  96. package/dist/esm/bufferbase.d.mts +0 -60
  97. package/dist/esm/bufferbase.d.mts.map +0 -1
  98. package/dist/esm/bufferbase.mjs +0 -141
  99. package/dist/esm/bufferbase.mjs.map +0 -1
  100. package/dist/esm/example.d.mts +0 -2
  101. package/dist/esm/example.d.mts.map +0 -1
  102. package/dist/esm/example.mjs +0 -37
  103. package/dist/esm/example.mjs.map +0 -1
  104. package/dist/esm/index.d.mts +0 -2
  105. package/dist/esm/index.d.mts.map +0 -1
  106. package/dist/esm/index.mjs +0 -2
  107. package/dist/esm/index.mjs.map +0 -1
package/README.md CHANGED
@@ -1,33 +1,114 @@
1
1
  # bufferbase
2
2
 
3
- Buffer-to-BaseN Encoding and Decoding for Node.js.
4
-
5
- bufferbase is a Node.js library that provides straightforward encoding and decoding of buffer objects into various BaseN formats. It's designed to be simple, efficient, and flexible for different application needs.
6
-
7
- ## Features
8
-
9
- - Supports multiple base encoding formats.
10
- - Optimized for Node.js buffer handling.
11
- - Intuitive API for easy integration.
12
- - Suitable for various data types.
13
- - Consistent and reliable performance.
3
+ Buffer-to-BaseN encoding and decoding for Node.js.
14
4
 
15
5
  ## Installation
16
6
 
17
- Install bufferbase using npm:
18
-
19
7
  ```bash
20
8
  npm install bufferbase
21
9
  ```
22
10
 
23
11
  ## Usage
24
12
 
25
- See [src/example.ts](/src/example.ts)
13
+ ### Simple Function API
14
+
15
+ ```typescript
16
+ import { encode, decode, convert, validate } from 'bufferbase';
17
+
18
+ // Encode buffer to base58
19
+ const encoded = encode(Buffer.from('Hello'), 'base58');
20
+
21
+ // Decode base58 string to buffer
22
+ const decoded = decode(encoded, 'base58');
23
+
24
+ // Decode with fixed size (pads with leading zeros)
25
+ const fixed = decode(encoded, 'base58', { size: 32 });
26
+
27
+ // Convert between bases
28
+ const base64 = convert(encoded, 'base58', 'base64url');
29
+
30
+ // Validate string
31
+ validate('9Ajdvz', 'base58'); // true
32
+ validate('0Ajdvz', 'base58'); // false ('0' not in base58)
33
+ ```
34
+
35
+ ### Pre-defined Codecs
36
+
37
+ ```typescript
38
+ import { Codecs } from 'bufferbase';
39
+
40
+ const encoded = Codecs.base58.encode(Buffer.from('Hello'));
41
+ const decoded = Codecs.base58.decode(encoded);
42
+
43
+ // Convert between codecs
44
+ const base64 = Codecs.base58.convertTo(Codecs.base64url, encoded);
45
+
46
+ // Validate
47
+ Codecs.base58.validate('9Ajdvz'); // true
48
+ ```
49
+
50
+ ### Custom Character Set
51
+
52
+ ```typescript
53
+ import { createCodec } from 'bufferbase';
54
+
55
+ const binary = createCodec('01');
56
+ binary.encode(Buffer.from([5])); // '101'
57
+ binary.decode('101'); // Buffer([5])
58
+ ```
59
+
60
+ ## Supported Encodings
61
+
62
+ | Name | Characters |
63
+ |------|------------|
64
+ | `decimal` | 0-9 |
65
+ | `base16` / `hex` | 0-9A-F |
66
+ | `base32` | A-Z2-7 |
67
+ | `base32crockford` | 0-9A-HJKMNP-TV-Z |
68
+ | `base36` | 0-9A-Z |
69
+ | `base52` | A-Za-z |
70
+ | `base58` | Bitcoin alphabet (no 0OIl) |
71
+ | `base64` | A-Za-z0-9+/ |
72
+ | `base64url` | A-Za-z0-9-_ |
73
+ | `base64xml` | A-Za-z0-9._ |
74
+ | `base64xmlname` | A-Za-z0-9_: |
75
+ | `ascii85` | ASCII85 |
76
+ | `base85` | Base85 |
77
+ | `z85` | ZeroMQ Z85 |
78
+
79
+ ## API
80
+
81
+ ### Functions
82
+
83
+ - `encode(buffer, base)` - Encode buffer to string
84
+ - `decode(encoded, base, options?)` - Decode string to buffer
85
+ - `convert(input, from, to)` - Convert between bases
86
+ - `validate(input, base)` - Check if string is valid for base
87
+ - `createCodec(chars)` - Create codec with custom character set
88
+
89
+ ### Codecs Object
90
+
91
+ ```typescript
92
+ Codecs.base58.encode(buffer)
93
+ Codecs.base58.decode(encoded, options?)
94
+ Codecs.base58.validate(input)
95
+ Codecs.base58.convertTo(targetCodec, input)
96
+ ```
97
+
98
+ ### Options
99
+
100
+ ```typescript
101
+ interface DecodeOptions {
102
+ size?: number; // Expected buffer size (pads with zeros if smaller)
103
+ }
104
+ ```
26
105
 
106
+ ### Errors
27
107
 
28
- ## Contributing
108
+ - `InvalidCharacterError` - Invalid character in decode input
109
+ - `BufferSizeError` - Decoded buffer exceeds specified size
110
+ - `UnknownBaseError` - Unknown base name
29
111
 
30
- Contributions to bufferbase are welcome! Please read our contributing guidelines for more information.
31
- License
112
+ ## License
32
113
 
33
- bufferbase is ISC licensed.
114
+ ISC
@@ -0,0 +1,82 @@
1
+ import type { BaseName } from './types.js';
2
+ /**
3
+ * Character sets for common base encodings.
4
+ *
5
+ * Use these with `createCodec()` or the deprecated `BufferEncoder` class
6
+ * when you need direct access to character sets.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { Chars, createCodec } from 'bufferbase';
11
+ *
12
+ * const codec = createCodec(Chars.Base58);
13
+ * const encoded = codec.encode(Buffer.from('Hello'));
14
+ * ```
15
+ */
16
+ export declare const Chars: {
17
+ /** Base 10: 0-9 */
18
+ readonly Decimal: "0123456789";
19
+ /** Hexadecimal: 0-9A-F */
20
+ readonly Base16: "0123456789ABCDEF";
21
+ /** RFC 4648 Base32: A-Z2-7 */
22
+ readonly Base32: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567";
23
+ /** Crockford's Base32: 0-9A-HJKMNP-TV-Z (no I, L, O, U) */
24
+ readonly Base32Crockford: "0123456789ABCDEFGHJKMNPQRSTVWXYZ";
25
+ /** Alphanumeric: 0-9A-Z */
26
+ readonly Base36: "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
27
+ /** Letters only: A-Za-z */
28
+ readonly Base52: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
29
+ /** Bitcoin alphabet: 1-9A-HJ-NP-Za-km-z (no 0, O, I, l) */
30
+ readonly Base58: "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
31
+ /** Standard Base64: A-Za-z0-9+/ */
32
+ readonly Base64: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
33
+ /** URL-safe Base64: A-Za-z0-9-_ */
34
+ readonly Base64Url: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
35
+ /** XML token Base64: A-Za-z0-9._ */
36
+ readonly Base64Xml: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._";
37
+ /** XML name Base64: A-Za-z0-9_: */
38
+ readonly Base64XmlName: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_:";
39
+ /** ASCII85 encoding */
40
+ readonly Ascii85: "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstu";
41
+ /** Base85 encoding */
42
+ readonly Base85: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%&()*+-;<=>?@^_`{|}~";
43
+ /** ZeroMQ Z85 encoding */
44
+ readonly Z85: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#";
45
+ };
46
+ /**
47
+ * Resolves a base name or character set string to a character set.
48
+ *
49
+ * This function is used internally by the function API to convert
50
+ * base names (like `'base58'`) to their character sets.
51
+ *
52
+ * @param base - Base name (e.g., `'base58'`) or custom character set string
53
+ * @returns The character set string
54
+ * @throws {UnknownBaseError} If base name is not recognized and string length <= 15
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * import { resolveChars } from 'bufferbase';
59
+ *
60
+ * resolveChars('base58'); // Returns Bitcoin alphabet
61
+ * resolveChars('0123456789ABCDEF'); // Returns the string as-is (custom charset)
62
+ * resolveChars('invalid'); // Throws UnknownBaseError
63
+ * ```
64
+ */
65
+ export declare function resolveChars(base: BaseName | string): string;
66
+ /**
67
+ * Checks if a string is a valid base name.
68
+ *
69
+ * @param value - The string to check
70
+ * @returns `true` if the value is a valid `BaseName`, `false` otherwise
71
+ *
72
+ * @example
73
+ * ```typescript
74
+ * import { isBaseName } from 'bufferbase';
75
+ *
76
+ * isBaseName('base58'); // true
77
+ * isBaseName('BASE58'); // true (case-insensitive)
78
+ * isBaseName('unknown'); // false
79
+ * ```
80
+ */
81
+ export declare function isBaseName(value: string): value is BaseName;
82
+ //# sourceMappingURL=bases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bases.d.ts","sourceRoot":"","sources":["../../src/bases.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,KAAK;IAChB,mBAAmB;;IAEnB,0BAA0B;;IAE1B,8BAA8B;;IAE9B,2DAA2D;;IAE3D,2BAA2B;;IAE3B,2BAA2B;;IAE3B,2DAA2D;;IAE3D,mCAAmC;;IAEnC,mCAAmC;;IAEnC,oCAAoC;;IAEpC,mCAAmC;;IAEnC,uBAAuB;;IAEvB,sBAAsB;;IAEtB,0BAA0B;;CAElB,CAAC;AAwBX;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAW5D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,QAAQ,CAE3D"}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Chars = void 0;
4
+ exports.resolveChars = resolveChars;
5
+ exports.isBaseName = isBaseName;
6
+ const errors_js_1 = require("./errors.js");
7
+ /**
8
+ * Character sets for common base encodings.
9
+ *
10
+ * Use these with `createCodec()` or the deprecated `BufferEncoder` class
11
+ * when you need direct access to character sets.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * import { Chars, createCodec } from 'bufferbase';
16
+ *
17
+ * const codec = createCodec(Chars.Base58);
18
+ * const encoded = codec.encode(Buffer.from('Hello'));
19
+ * ```
20
+ */
21
+ exports.Chars = {
22
+ /** Base 10: 0-9 */
23
+ Decimal: '0123456789',
24
+ /** Hexadecimal: 0-9A-F */
25
+ Base16: '0123456789ABCDEF',
26
+ /** RFC 4648 Base32: A-Z2-7 */
27
+ Base32: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',
28
+ /** Crockford's Base32: 0-9A-HJKMNP-TV-Z (no I, L, O, U) */
29
+ Base32Crockford: '0123456789ABCDEFGHJKMNPQRSTVWXYZ',
30
+ /** Alphanumeric: 0-9A-Z */
31
+ Base36: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
32
+ /** Letters only: A-Za-z */
33
+ Base52: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',
34
+ /** Bitcoin alphabet: 1-9A-HJ-NP-Za-km-z (no 0, O, I, l) */
35
+ Base58: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz',
36
+ /** Standard Base64: A-Za-z0-9+/ */
37
+ Base64: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',
38
+ /** URL-safe Base64: A-Za-z0-9-_ */
39
+ Base64Url: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',
40
+ /** XML token Base64: A-Za-z0-9._ */
41
+ Base64Xml: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._',
42
+ /** XML name Base64: A-Za-z0-9_: */
43
+ Base64XmlName: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_:',
44
+ /** ASCII85 encoding */
45
+ Ascii85: '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstu',
46
+ /** Base85 encoding */
47
+ Base85: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%&()*+-;<=>?@^_`{|}~',
48
+ /** ZeroMQ Z85 encoding */
49
+ Z85: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#',
50
+ };
51
+ /**
52
+ * Internal mapping from base names to character sets.
53
+ * @internal
54
+ */
55
+ const baseNameToChars = {
56
+ decimal: exports.Chars.Decimal,
57
+ base16: exports.Chars.Base16,
58
+ hex: exports.Chars.Base16,
59
+ base32: exports.Chars.Base32,
60
+ base32crockford: exports.Chars.Base32Crockford,
61
+ base36: exports.Chars.Base36,
62
+ base52: exports.Chars.Base52,
63
+ base58: exports.Chars.Base58,
64
+ base64: exports.Chars.Base64,
65
+ base64url: exports.Chars.Base64Url,
66
+ base64xml: exports.Chars.Base64Xml,
67
+ base64xmlname: exports.Chars.Base64XmlName,
68
+ ascii85: exports.Chars.Ascii85,
69
+ base85: exports.Chars.Base85,
70
+ z85: exports.Chars.Z85,
71
+ };
72
+ /**
73
+ * Resolves a base name or character set string to a character set.
74
+ *
75
+ * This function is used internally by the function API to convert
76
+ * base names (like `'base58'`) to their character sets.
77
+ *
78
+ * @param base - Base name (e.g., `'base58'`) or custom character set string
79
+ * @returns The character set string
80
+ * @throws {UnknownBaseError} If base name is not recognized and string length <= 15
81
+ *
82
+ * @example
83
+ * ```typescript
84
+ * import { resolveChars } from 'bufferbase';
85
+ *
86
+ * resolveChars('base58'); // Returns Bitcoin alphabet
87
+ * resolveChars('0123456789ABCDEF'); // Returns the string as-is (custom charset)
88
+ * resolveChars('invalid'); // Throws UnknownBaseError
89
+ * ```
90
+ */
91
+ function resolveChars(base) {
92
+ const normalized = base.toLowerCase();
93
+ if (normalized in baseNameToChars) {
94
+ return baseNameToChars[normalized];
95
+ }
96
+ // If not a known base name, treat as custom character set
97
+ // (must be longer than 15 chars to distinguish from typos)
98
+ if (base.length > 15) {
99
+ return base;
100
+ }
101
+ throw new errors_js_1.UnknownBaseError(base);
102
+ }
103
+ /**
104
+ * Checks if a string is a valid base name.
105
+ *
106
+ * @param value - The string to check
107
+ * @returns `true` if the value is a valid `BaseName`, `false` otherwise
108
+ *
109
+ * @example
110
+ * ```typescript
111
+ * import { isBaseName } from 'bufferbase';
112
+ *
113
+ * isBaseName('base58'); // true
114
+ * isBaseName('BASE58'); // true (case-insensitive)
115
+ * isBaseName('unknown'); // false
116
+ * ```
117
+ */
118
+ function isBaseName(value) {
119
+ return value.toLowerCase() in baseNameToChars;
120
+ }
121
+ //# sourceMappingURL=bases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bases.js","sourceRoot":"","sources":["../../src/bases.ts"],"names":[],"mappings":";;;AAyFA,oCAWC;AAiBD,gCAEC;AAtHD,2CAA+C;AAE/C;;;;;;;;;;;;;GAaG;AACU,QAAA,KAAK,GAAG;IACnB,mBAAmB;IACnB,OAAO,EAAE,YAAY;IACrB,0BAA0B;IAC1B,MAAM,EAAE,kBAAkB;IAC1B,8BAA8B;IAC9B,MAAM,EAAE,kCAAkC;IAC1C,2DAA2D;IAC3D,eAAe,EAAE,kCAAkC;IACnD,2BAA2B;IAC3B,MAAM,EAAE,sCAAsC;IAC9C,2BAA2B;IAC3B,MAAM,EAAE,sDAAsD;IAC9D,2DAA2D;IAC3D,MAAM,EAAE,4DAA4D;IACpE,mCAAmC;IACnC,MAAM,EAAE,kEAAkE;IAC1E,mCAAmC;IACnC,SAAS,EAAE,kEAAkE;IAC7E,oCAAoC;IACpC,SAAS,EAAE,kEAAkE;IAC7E,mCAAmC;IACnC,aAAa,EAAE,kEAAkE;IACjF,uBAAuB;IACvB,OAAO,EAAE,uFAAuF;IAChG,sBAAsB;IACtB,MAAM,EAAE,uFAAuF;IAC/F,0BAA0B;IAC1B,GAAG,EAAE,uFAAuF;CACpF,CAAC;AAEX;;;GAGG;AACH,MAAM,eAAe,GAA6B;IAChD,OAAO,EAAE,aAAK,CAAC,OAAO;IACtB,MAAM,EAAE,aAAK,CAAC,MAAM;IACpB,GAAG,EAAE,aAAK,CAAC,MAAM;IACjB,MAAM,EAAE,aAAK,CAAC,MAAM;IACpB,eAAe,EAAE,aAAK,CAAC,eAAe;IACtC,MAAM,EAAE,aAAK,CAAC,MAAM;IACpB,MAAM,EAAE,aAAK,CAAC,MAAM;IACpB,MAAM,EAAE,aAAK,CAAC,MAAM;IACpB,MAAM,EAAE,aAAK,CAAC,MAAM;IACpB,SAAS,EAAE,aAAK,CAAC,SAAS;IAC1B,SAAS,EAAE,aAAK,CAAC,SAAS;IAC1B,aAAa,EAAE,aAAK,CAAC,aAAa;IAClC,OAAO,EAAE,aAAK,CAAC,OAAO;IACtB,MAAM,EAAE,aAAK,CAAC,MAAM;IACpB,GAAG,EAAE,aAAK,CAAC,GAAG;CACf,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,YAAY,CAAC,IAAuB;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAc,CAAC;IAClD,IAAI,UAAU,IAAI,eAAe,EAAE,CAAC;QAClC,OAAO,eAAe,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IACD,0DAA0D;IAC1D,2DAA2D;IAC3D,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,4BAAgB,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,UAAU,CAAC,KAAa;IACtC,OAAO,KAAK,CAAC,WAAW,EAAE,IAAI,eAAe,CAAC;AAChD,CAAC"}
@@ -1,60 +1,43 @@
1
- /// <reference types="node" />
2
1
  /**
3
- * A collection of common bases.
2
+ * @deprecated Use the new API instead:
3
+ * - `encode(buffer, 'base58')` or `base58.encode(buffer)`
4
+ * - `decode(encoded, 'base58')` or `base58.decode(encoded)`
5
+ * - `convert(input, 'base58', 'base64')` or `base58.convertTo(base64, input)`
6
+ * - `validate(input, 'base58')` or `base58.validate(input)`
4
7
  */
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
- }
8
+ import { Buffer } from 'node:buffer';
9
+ import { InvalidCharacterError, BufferSizeError } from './errors.js';
10
+ export { Chars } from './bases.js';
11
+ export { InvalidCharacterError, BufferSizeError };
27
12
  /**
28
- * Encodes and decodes buffers to and from a base.
13
+ * @deprecated Use `Codec` or `createCodec()` instead.
29
14
  */
30
15
  export declare class BufferEncoder {
31
16
  private baseChars;
17
+ private codec;
32
18
  constructor(baseChars: string);
33
- /**
34
- * Encodes a buffer to a string.
35
- */
36
19
  encode(buffer: Buffer): string;
37
- /**
38
- * Decodes a string to a buffer.
39
- */
40
20
  decode(encoded: string, bufferSize?: number): Buffer;
41
21
  }
42
22
  /**
43
- * Creates a converter function that can convert between two bases.
23
+ * @deprecated Use `convert()` function or `codec.convertTo()` instead.
44
24
  */
45
25
  export declare class Converter {
46
26
  decoder: BufferEncoder;
47
27
  encoder: BufferEncoder;
48
28
  constructor(inputBase: string, outputBase: string);
49
- /**
50
- * Converts a string from the input base to the output base.
51
- */
52
29
  convert(input: string): string;
53
30
  }
31
+ /**
32
+ * @deprecated Use `validate()` function or `codec.validate()` instead.
33
+ */
54
34
  export declare class Validator {
55
- decorder: BufferEncoder;
35
+ private codec;
56
36
  constructor(inputBase: string);
57
37
  validate(input: string): boolean;
58
38
  }
39
+ /**
40
+ * @deprecated Use `validate()` from the main module instead.
41
+ */
59
42
  export declare const validate: (input: string, base: string) => boolean;
60
43
  //# sourceMappingURL=bufferbase.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"bufferbase.d.ts","sourceRoot":"","sources":["../../src/bufferbase.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGrE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,CAAC;AAElD;;GAEG;AACH,qBAAa,aAAa;IAGZ,OAAO,CAAC,SAAS;IAF7B,OAAO,CAAC,KAAK,CAAQ;gBAED,SAAS,EAAE,MAAM;IAIrC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI9B,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;CAGrD;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;gBAEX,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAKjD,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAG/B;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAQ;gBAET,SAAS,EAAE,MAAM;IAI7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGjC;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,EAAE,MAAM,MAAM,KAAG,OAEtD,CAAC"}
@@ -1,148 +1,64 @@
1
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
2
  /**
5
- * A collection of common bases.
3
+ * @deprecated Use the new API instead:
4
+ * - `encode(buffer, 'base58')` or `base58.encode(buffer)`
5
+ * - `decode(encoded, 'base58')` or `base58.decode(encoded)`
6
+ * - `convert(input, 'base58', 'base64')` or `base58.convertTo(base64, input)`
7
+ * - `validate(input, 'base58')` or `base58.validate(input)`
6
8
  */
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;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.validate = exports.Validator = exports.Converter = exports.BufferEncoder = exports.BufferSizeError = exports.InvalidCharacterError = exports.Chars = void 0;
11
+ const codec_js_1 = require("./codec.js");
12
+ const errors_js_1 = require("./errors.js");
13
+ Object.defineProperty(exports, "InvalidCharacterError", { enumerable: true, get: function () { return errors_js_1.InvalidCharacterError; } });
14
+ Object.defineProperty(exports, "BufferSizeError", { enumerable: true, get: function () { return errors_js_1.BufferSizeError; } });
15
+ // Re-export Chars for backward compatibility
16
+ var bases_js_1 = require("./bases.js");
17
+ Object.defineProperty(exports, "Chars", { enumerable: true, get: function () { return bases_js_1.Chars; } });
37
18
  /**
38
- * Encodes and decodes buffers to and from a base.
19
+ * @deprecated Use `Codec` or `createCodec()` instead.
39
20
  */
40
21
  class BufferEncoder {
41
22
  constructor(baseChars) {
42
23
  this.baseChars = baseChars;
24
+ this.codec = new codec_js_1.Codec(baseChars);
43
25
  }
44
- /**
45
- * Encodes a buffer to a string.
46
- */
47
26
  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('');
27
+ return this.codec.encode(buffer);
73
28
  }
74
- /**
75
- * Decodes a string to a buffer.
76
- */
77
29
  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;
30
+ return this.codec.decode(encoded, bufferSize !== undefined ? { size: bufferSize } : undefined);
109
31
  }
110
32
  }
111
33
  exports.BufferEncoder = BufferEncoder;
112
34
  /**
113
- * Creates a converter function that can convert between two bases.
35
+ * @deprecated Use `convert()` function or `codec.convertTo()` instead.
114
36
  */
115
37
  class Converter {
116
38
  constructor(inputBase, outputBase) {
117
39
  this.decoder = new BufferEncoder(inputBase);
118
40
  this.encoder = new BufferEncoder(outputBase);
119
41
  }
120
- /**
121
- * Converts a string from the input base to the output base.
122
- */
123
42
  convert(input) {
124
43
  return this.encoder.encode(this.decoder.decode(input));
125
44
  }
126
45
  }
127
46
  exports.Converter = Converter;
47
+ /**
48
+ * @deprecated Use `validate()` function or `codec.validate()` instead.
49
+ */
128
50
  class Validator {
129
51
  constructor(inputBase) {
130
- this.decorder = new BufferEncoder(inputBase);
52
+ this.codec = new codec_js_1.Codec(inputBase);
131
53
  }
132
54
  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
- }
55
+ return this.codec.validate(input);
143
56
  }
144
57
  }
145
58
  exports.Validator = Validator;
59
+ /**
60
+ * @deprecated Use `validate()` from the main module instead.
61
+ */
146
62
  const validate = (input, base) => {
147
63
  return new Validator(base).validate(input);
148
64
  };
@@ -1 +1 @@
1
- {"version":3,"file":"bufferbase.js","sourceRoot":"","sources":["../../src/bufferbase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bufferbase.js","sourceRoot":"","sources":["../../src/bufferbase.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAGH,yCAAmC;AACnC,2CAAqE;AAM5D,sGANA,iCAAqB,OAMA;AAAE,gGANA,2BAAe,OAMA;AAJ/C,6CAA6C;AAC7C,uCAAmC;AAA1B,iGAAA,KAAK,OAAA;AAKd;;GAEG;AACH,MAAa,aAAa;IAGxB,YAAoB,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;QACnC,IAAI,CAAC,KAAK,GAAG,IAAI,gBAAK,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,OAAe,EAAE,UAAmB;QACzC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACjG,CAAC;CACF;AAdD,sCAcC;AAED;;GAEG;AACH,MAAa,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,OAAO,CAAC,KAAa;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACzD,CAAC;CACF;AAZD,8BAYC;AAED;;GAEG;AACH,MAAa,SAAS;IAGpB,YAAY,SAAiB;QAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,gBAAK,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;CACF;AAVD,8BAUC;AAED;;GAEG;AACI,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;AAFW,QAAA,QAAQ,YAEnB"}