base128-ascii 3.0.0 → 3.1.1

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 (4) hide show
  1. package/README.md +4 -2
  2. package/main.d.ts +39 -5
  3. package/main.js +25 -15
  4. package/package.json +1 -1
package/README.md CHANGED
@@ -14,9 +14,11 @@ npm i base128-ascii
14
14
  import base128 from "base128-ascii"
15
15
  import fs from "fs"
16
16
 
17
- const encodedTemplate = base128.encode(fs.readFileSync("example.gz")).toJSTemplateLiterals()
17
+ const input = fs.readFileSync("example.gz")
18
18
 
19
- const decoded = base128.decode(eval(encodedTemplate))
19
+ const encodedTemplate = base128.encode(input).toJSTemplateLiterals()
20
+
21
+ const decodedBytes = base128.decode(eval(encodedTemplate))
20
22
  ```
21
23
 
22
24
  ---
package/main.d.ts CHANGED
@@ -1,18 +1,52 @@
1
- export declare class Base128Bytes extends Uint8Array {
1
+ export declare class Base128Bytes {
2
+ constructor();
3
+ constructor(length: number);
4
+ constructor(array: ArrayLike<number>);
5
+ constructor<TArrayBuffer extends ArrayBufferLike = ArrayBuffer>(buffer: TArrayBuffer, byteOffset?: number, length?: number);
6
+ constructor(buffer: ArrayBuffer, byteOffset?: number, length?: number);
7
+ constructor(array: ArrayLike<number> | ArrayBuffer);
8
+
2
9
  /**
3
10
  * Returns a base128 string.
4
11
  */
5
12
  toString(): string;
13
+
6
14
  /**
7
15
  * Returns a base128 [Template literals](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Template_literals).
8
16
  */
9
17
  toJSTemplateLiterals(): string;
18
+
19
+ /**
20
+ * The ArrayBuffer instance referenced by the array.
21
+ */
22
+ get buffer(): ArrayBufferLike;
23
+
24
+ /**
25
+ * The length in bytes of the array.
26
+ */
27
+ get byteLength(): number;
28
+
29
+ /**
30
+ * The offset in bytes of the array.
31
+ */
32
+ get byteOffset(): number;
33
+
34
+ /**
35
+ * The length of the array.
36
+ */
37
+ get length(): number;
38
+
39
+ [index: number]: number;
10
40
  }
41
+
11
42
  export declare function encode(input: Uint8Array | string): Base128Bytes;
43
+
12
44
  export declare function decode(input: string): Uint8Array;
13
- declare const base128: {
14
- Base128Bytes: typeof Base128Bytes;
15
- encode: typeof encode;
16
- decode: typeof decode;
45
+
46
+ declare const base128 = {
47
+ Base128Bytes,
48
+ encode,
49
+ decode,
17
50
  };
51
+
18
52
  export default base128;
package/main.js CHANGED
@@ -1,22 +1,32 @@
1
1
  //@ts-nocheck
2
2
 
3
- export class Base128Bytes extends Uint8Array {
4
- toString() {
5
- return new TextDecoder().decode(this)
3
+ export const Base128Bytes = (() => {
4
+ class Base128Bytes {
5
+ constructor() {
6
+ return Reflect.construct(Uint8Array, arguments, new.target)
7
+ }
8
+ toString() {
9
+ return new TextDecoder().decode(this)
10
+ }
11
+ toJSTemplateLiterals() {
12
+ return `\`${this.toString().replace(
13
+ /[\r\\`]|\$\{|<\/script/g,
14
+ (match) => (
15
+ match == '\r'
16
+ ? '\\r'
17
+ : match == '</script'
18
+ ? '<\\/script'
19
+ : '\\' + match
20
+ )
21
+ )}\``
22
+ }
6
23
  }
7
- toJSTemplateLiterals() {
8
- return `\`${this.toString().replace(
9
- /[\r\\`]|\$\{|<\/script/g,
10
- (match) => (
11
- match == '\r'
12
- ? '\\r'
13
- : match == '</script'
14
- ? '<\\/script'
15
- : '\\' + match
16
- )
17
- )}\``
24
+ const p = Object.getPrototypeOf(Uint8Array.prototype)
25
+ for (const key of ["buffer", "byteLength", "byteOffset", "length"]) {
26
+ Object.defineProperty(Base128Bytes.prototype, key, Object.getOwnPropertyDescriptor(p, key))
18
27
  }
19
- }
28
+ return Base128Bytes
29
+ })()
20
30
 
21
31
  /**
22
32
  * @param {Uint8Array | string} input
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "base128-ascii",
3
- "version": "3.0.0",
3
+ "version": "3.1.1",
4
4
  "author": "bddjr",
5
5
  "license": "Unlicense",
6
6
  "type": "module",