@natoboram/based.ts 0.0.3 → 1.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.
- package/README.md +45 -22
- package/dist/based.d.ts +2 -0
- package/dist/based.d.ts.map +1 -1
- package/dist/based.js +9 -1
- package/dist/based.js.map +1 -1
- package/dist/commander/convert.d.ts +9 -0
- package/dist/commander/convert.d.ts.map +1 -0
- package/dist/commander/convert.js +16 -0
- package/dist/commander/convert.js.map +1 -0
- package/dist/commander/program.d.ts +3 -0
- package/dist/commander/program.d.ts.map +1 -0
- package/dist/commander/program.js +28 -0
- package/dist/commander/program.js.map +1 -0
- package/dist/commander/uuid.d.ts +7 -0
- package/dist/commander/uuid.d.ts.map +1 -0
- package/dist/commander/uuid.js +14 -0
- package/dist/commander/uuid.js.map +1 -0
- package/dist/index.d.ts +8 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/main.js +2 -5
- package/dist/main.js.map +1 -1
- package/dist/space.d.ts +3 -1
- package/dist/space.d.ts.map +1 -1
- package/dist/space.js +3 -1
- package/dist/space.js.map +1 -1
- package/dist/to_base.d.ts +4 -0
- package/dist/to_base.d.ts.map +1 -1
- package/dist/to_base.js +10 -0
- package/dist/to_base.js.map +1 -1
- package/dist/to_bigint.d.ts +2 -1
- package/dist/to_bigint.d.ts.map +1 -1
- package/dist/to_bigint.js +5 -0
- package/dist/to_bigint.js.map +1 -1
- package/dist/to_bytes.d.ts +2 -0
- package/dist/to_bytes.d.ts.map +1 -1
- package/dist/to_bytes.js +10 -0
- package/dist/to_bytes.js.map +1 -1
- package/dist/to_utf-8.d.ts +5 -0
- package/dist/to_utf-8.d.ts.map +1 -0
- package/dist/to_utf-8.js +17 -0
- package/dist/to_utf-8.js.map +1 -0
- package/package.json +14 -9
package/README.md
CHANGED
|
@@ -1,44 +1,67 @@
|
|
|
1
|
-
# `based.ts
|
|
1
|
+
# [`@natoboram/based.ts`](https://github.com/NatoBoram/based.ts)
|
|
2
2
|
|
|
3
|
-
[](https://github.com/NatoBoram/based.ts/actions/workflows/node.js.yaml) [](https://github.com/NatoBoram/based.ts/actions/workflows/github-pages.yaml) [](https://github.com/NatoBoram/based.ts/releases) [](https://www.npmjs.com/package/@natoboram/based.ts) [](https://github.com/NatoBoram/based.ts/actions/workflows/dependabot/dependabot-updates)
|
|
3
|
+
[](https://github.com/NatoBoram/based.ts/actions/workflows/node.js.yaml) [](https://github.com/NatoBoram/based.ts/actions/workflows/github-pages.yaml) [](https://github.com/NatoBoram/based.ts/releases) [](https://www.npmjs.com/package/@natoboram/based.ts) [](https://github.com/NatoBoram/based.ts/actions/workflows/dependabot/dependabot-updates) [](https://wakapi.dev/summary?interval=any&project=based.ts)
|
|
4
4
|
|
|
5
5
|
A TypeScript library for working with arbitrary bases.
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## CLI
|
|
8
8
|
|
|
9
|
-
It can be installed globally if you want to generate
|
|
9
|
+
It can be installed globally if you want to convert numbers or generate UUIDs from the terminal.
|
|
10
10
|
|
|
11
11
|
```sh
|
|
12
12
|
pnpm install --global @natoboram/based.ts
|
|
13
|
-
basedts
|
|
14
13
|
```
|
|
15
14
|
|
|
16
15
|
```log
|
|
17
|
-
|
|
16
|
+
Usage: basedts convert [options] <number>
|
|
17
|
+
|
|
18
|
+
Convert a number from a base in a space to another base in another space
|
|
19
|
+
|
|
20
|
+
Arguments:
|
|
21
|
+
number The number to convert
|
|
22
|
+
|
|
23
|
+
Options:
|
|
24
|
+
--from-base <base> The base of the number (default: "10")
|
|
25
|
+
--from-space <space> The space of the number to convert from (default: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/")
|
|
26
|
+
--to-base <base> The base to convert to (default: "10")
|
|
27
|
+
--to-space <space> The space to convert the number to (default: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/")
|
|
28
|
+
-h, --help Display help for command
|
|
18
29
|
```
|
|
19
30
|
|
|
20
|
-
|
|
31
|
+
```log
|
|
32
|
+
Usage: basedts uuid [options]
|
|
33
|
+
|
|
34
|
+
Generate a UUID in a different base with a different space than normal UUIDs
|
|
35
|
+
|
|
36
|
+
Options:
|
|
37
|
+
--base <base> The base of the UUID to generate (default: "16")
|
|
38
|
+
--space <space> The space of the UUID to generate (default: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/")
|
|
39
|
+
-h, --help Display help for command
|
|
40
|
+
```
|
|
21
41
|
|
|
22
|
-
##
|
|
42
|
+
## Library
|
|
23
43
|
|
|
24
44
|
```sh
|
|
25
|
-
pnpm
|
|
45
|
+
pnpm install @natoboram/based.ts
|
|
26
46
|
```
|
|
27
47
|
|
|
28
48
|
```ts
|
|
29
|
-
import {
|
|
30
|
-
basedToBigInt,
|
|
31
|
-
bytesToBigInt,
|
|
32
|
-
getRandomBytes,
|
|
33
|
-
toBase,
|
|
34
|
-
} from "@natoboram/based.ts"
|
|
35
|
-
|
|
36
|
-
// Generate a base36-encoded UUID
|
|
37
|
-
const bytes = getRandomBytes()
|
|
38
|
-
const bigInt = bytesToBigInt(bytes)
|
|
39
|
-
const base36 = toBase(bigInt, 36n)
|
|
40
|
-
console.log("Base 36 UUID:", base36)
|
|
49
|
+
import { toBase, basedToBigInt } from "@natoboram/based.ts"
|
|
41
50
|
|
|
42
51
|
// Convert between two bases
|
|
43
|
-
const
|
|
52
|
+
const bigInt = basedToBigInt("69", 10n)
|
|
53
|
+
const based = toBase(bigInt, 16n)
|
|
54
|
+
|
|
55
|
+
console.log(based) // 45
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
import { Based } from "@natoboram/based.ts"
|
|
60
|
+
|
|
61
|
+
// Perform operations on numbers of different bases
|
|
62
|
+
const four = new Based("4", 64n)
|
|
63
|
+
const two = new Based("2", 16n)
|
|
64
|
+
const result = four.divide(two).to(10n)
|
|
65
|
+
|
|
66
|
+
console.log(result.value) // 2
|
|
44
67
|
```
|
package/dist/based.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ export declare class Based {
|
|
|
5
5
|
readonly base: bigint;
|
|
6
6
|
readonly space: string;
|
|
7
7
|
constructor(value: string, base: bigint, space?: string);
|
|
8
|
+
static fromUtf8(value: string, base?: bigint, space?: string): Based;
|
|
9
|
+
toUtf8(): string;
|
|
8
10
|
divide(based: Based): Based;
|
|
9
11
|
minus(based: Based): Based;
|
|
10
12
|
multiply(based: Based): Based;
|
package/dist/based.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"based.d.ts","sourceRoot":"","sources":["../src/based.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"based.d.ts","sourceRoot":"","sources":["../src/based.ts"],"names":[],"mappings":"AAKA;sGACsG;AACtG,qBAAa,KAAK;IACjB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;gBAEV,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAoB;IAMpE,MAAM,CAAC,QAAQ,CACd,KAAK,EAAE,MAAM,EACb,IAAI,SAAM,EACV,KAAK,GAAE,MAAoB,GACzB,KAAK;IAKR,MAAM,IAAI,MAAM;IAIhB,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;IAO3B,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;IAO1B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;IAO7B,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;IAOzB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK;CAKvC"}
|
package/dist/based.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { base64Space } from "./space.js";
|
|
2
|
-
import { toBase } from "./to_base.js";
|
|
2
|
+
import { toBase, utf8ToBase } from "./to_base.js";
|
|
3
3
|
import { basedToBigInt } from "./to_bigint.js";
|
|
4
|
+
import { basedToUtf8 } from "./to_utf-8.js";
|
|
4
5
|
/** Base-encoded string. Use this class if you convert from and to different
|
|
5
6
|
* bases often. Otherwise, just use the provided utilities. You can provide a custom number's space */
|
|
6
7
|
export class Based {
|
|
@@ -12,6 +13,13 @@ export class Based {
|
|
|
12
13
|
this.base = base;
|
|
13
14
|
this.space = space;
|
|
14
15
|
}
|
|
16
|
+
static fromUtf8(value, base = 10n, space = base64Space) {
|
|
17
|
+
const based = utf8ToBase(value, base, space);
|
|
18
|
+
return new Based(based, base, space);
|
|
19
|
+
}
|
|
20
|
+
toUtf8() {
|
|
21
|
+
return basedToUtf8(this.value, this.base, this.space);
|
|
22
|
+
}
|
|
15
23
|
divide(based) {
|
|
16
24
|
const dividend = basedToBigInt(this.value, this.base, this.space);
|
|
17
25
|
const divisor = basedToBigInt(based.value, based.base, based.space);
|
package/dist/based.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"based.js","sourceRoot":"","sources":["../src/based.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"based.js","sourceRoot":"","sources":["../src/based.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
interface ConvertOptions {
|
|
2
|
+
readonly fromBase: string;
|
|
3
|
+
readonly fromSpace: string;
|
|
4
|
+
readonly toBase: string;
|
|
5
|
+
readonly toSpace: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function convert(input: string, options: ConvertOptions): void;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=convert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/commander/convert.ts"],"names":[],"mappings":"AAGA,UAAU,cAAc;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACxB;AAkBD,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAOpE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { toBase } from "../to_base.js";
|
|
2
|
+
import { basedToBigInt } from "../to_bigint.js";
|
|
3
|
+
function parseConvertOptions(options) {
|
|
4
|
+
const fromBase = BigInt(parseInt(options.fromBase));
|
|
5
|
+
const toBase = BigInt(parseInt(options.toBase));
|
|
6
|
+
const fromSpace = options.fromSpace;
|
|
7
|
+
const toSpace = options.toSpace;
|
|
8
|
+
return { fromBase, fromSpace, toBase, toSpace };
|
|
9
|
+
}
|
|
10
|
+
export function convert(input, options) {
|
|
11
|
+
const parsed = parseConvertOptions(options);
|
|
12
|
+
const bigInt = basedToBigInt(input, parsed.fromBase, parsed.fromSpace);
|
|
13
|
+
const based = toBase(bigInt, parsed.toBase, parsed.toSpace);
|
|
14
|
+
console.log(based);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=convert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/commander/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAgB/C,SAAS,mBAAmB,CAAC,OAAuB;IACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;IACnD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAE/B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAa,EAAE,OAAuB;IAC7D,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAA;IAE3C,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;IACtE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;IAE3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AACnB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../src/commander/program.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAcxC,eAAO,MAAM,OAAO,EAAE,OAAyB,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { createCommand } from "commander";
|
|
2
|
+
import pkg from "../../package.json" with { type: "json" };
|
|
3
|
+
import { base64Space } from "../space.js";
|
|
4
|
+
import { convert } from "./convert.js";
|
|
5
|
+
import { uuid } from "./uuid.js";
|
|
6
|
+
const { bin, version, description } = pkg;
|
|
7
|
+
const name = Object.keys(bin).find(Boolean);
|
|
8
|
+
if (!name) {
|
|
9
|
+
throw new Error("No executable name found in package.json");
|
|
10
|
+
}
|
|
11
|
+
export const program = createCommand();
|
|
12
|
+
program.name(name).description(description).version(version);
|
|
13
|
+
program
|
|
14
|
+
.command("convert")
|
|
15
|
+
.description("Convert a number from a base in a space to another base in another space")
|
|
16
|
+
.argument("<number>", "The number to convert")
|
|
17
|
+
.option("--from-base <base>", "The base of the number", "10")
|
|
18
|
+
.option("--from-space <space>", "The space of the number to convert from", base64Space)
|
|
19
|
+
.option("--to-base <base>", "The base to convert to", "10")
|
|
20
|
+
.option("--to-space <space>", "The space to convert the number to", base64Space)
|
|
21
|
+
.action(convert);
|
|
22
|
+
program
|
|
23
|
+
.command("uuid")
|
|
24
|
+
.description("Generate a UUID in a different base with a different space than normal UUIDs")
|
|
25
|
+
.option("--base <base>", "The base of the UUID to generate", "16")
|
|
26
|
+
.option("--space <space>", "The space of the UUID to generate", base64Space)
|
|
27
|
+
.action(uuid);
|
|
28
|
+
//# sourceMappingURL=program.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/commander/program.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,GAAG,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,GAAG,CAAA;AAEzC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;IACX,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;AAC5D,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAY,aAAa,EAAE,CAAA;AAC/C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AAE5D,OAAO;KACL,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CACX,0EAA0E,CAC1E;KACA,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;KAC7C,MAAM,CAAC,oBAAoB,EAAE,wBAAwB,EAAE,IAAI,CAAC;KAC5D,MAAM,CACN,sBAAsB,EACtB,yCAAyC,EACzC,WAAW,CACX;KACA,MAAM,CAAC,kBAAkB,EAAE,wBAAwB,EAAE,IAAI,CAAC;KAC1D,MAAM,CACN,oBAAoB,EACpB,oCAAoC,EACpC,WAAW,CACX;KACA,MAAM,CAAC,OAAO,CAAC,CAAA;AAEjB,OAAO;KACL,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CACX,8EAA8E,CAC9E;KACA,MAAM,CAAC,eAAe,EAAE,kCAAkC,EAAE,IAAI,CAAC;KACjE,MAAM,CAAC,iBAAiB,EAAE,mCAAmC,EAAE,WAAW,CAAC;KAC3E,MAAM,CAAC,IAAI,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uuid.d.ts","sourceRoot":"","sources":["../../src/commander/uuid.ts"],"names":[],"mappings":"AAGA,UAAU,WAAW;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACtB;AAaD,wBAAgB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAO/C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { getRandomBytes } from "../bytes.js";
|
|
2
|
+
import { bytesToBase } from "../to_base.js";
|
|
3
|
+
function parseUuidOptions(options) {
|
|
4
|
+
const base = BigInt(parseInt(options.base));
|
|
5
|
+
const space = options.space;
|
|
6
|
+
return { base, space };
|
|
7
|
+
}
|
|
8
|
+
export function uuid(options) {
|
|
9
|
+
const parsed = parseUuidOptions(options);
|
|
10
|
+
const bytes = getRandomBytes(16);
|
|
11
|
+
const based = bytesToBase(bytes, parsed.base, parsed.space);
|
|
12
|
+
console.log(based);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=uuid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uuid.js","sourceRoot":"","sources":["../../src/commander/uuid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAY3C,SAAS,gBAAgB,CAAC,OAAoB;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;IAC3B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,OAAoB;IACxC,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAExC,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,CAAC,CAAA;IAChC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IAE3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AACnB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
export * from "./based.
|
|
2
|
-
export * from "./bytes.
|
|
3
|
-
export * from "./space.
|
|
4
|
-
export * from "./to_base.
|
|
5
|
-
export * from "./to_bigint.
|
|
6
|
-
export * from "./to_bytes.
|
|
7
|
-
export * from "./
|
|
1
|
+
export * from "./based.ts";
|
|
2
|
+
export * from "./bytes.ts";
|
|
3
|
+
export * from "./space.ts";
|
|
4
|
+
export * from "./to_base.ts";
|
|
5
|
+
export * from "./to_bigint.ts";
|
|
6
|
+
export * from "./to_bytes.ts";
|
|
7
|
+
export * from "./to_utf-8.ts";
|
|
8
|
+
export type * from "./typed_array.ts";
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,mBAAmB,kBAAkB,CAAA"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA"}
|
package/dist/main.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
const bigInt = bytesToBigInt(bytes);
|
|
5
|
-
const base36 = toBase(bigInt, 36n);
|
|
6
|
-
console.log("Base 36 UUID:", base36);
|
|
2
|
+
import { program } from "./commander/program.js";
|
|
3
|
+
program.parse(process.argv);
|
|
7
4
|
//# sourceMappingURL=main.js.map
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA"}
|
package/dist/space.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
/** Default number space for this package.
|
|
1
|
+
/** Default number space for this package. It should match `Number.toString` for
|
|
2
|
+
* the first 36 characters. The rest is filled with the uppercase alphabet then
|
|
3
|
+
* the standard, most common base64 letters, `+` and `/`. */
|
|
2
4
|
export declare const base64Space = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/";
|
|
3
5
|
//# sourceMappingURL=space.d.ts.map
|
package/dist/space.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"space.d.ts","sourceRoot":"","sources":["../src/space.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"space.d.ts","sourceRoot":"","sources":["../src/space.ts"],"names":[],"mappings":"AAAA;;4DAE4D;AAC5D,eAAO,MAAM,WAAW,qEAC2C,CAAA"}
|
package/dist/space.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
/** Default number space for this package.
|
|
1
|
+
/** Default number space for this package. It should match `Number.toString` for
|
|
2
|
+
* the first 36 characters. The rest is filled with the uppercase alphabet then
|
|
3
|
+
* the standard, most common base64 letters, `+` and `/`. */
|
|
2
4
|
export const base64Space = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/";
|
|
3
5
|
//# sourceMappingURL=space.js.map
|
package/dist/space.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"space.js","sourceRoot":"","sources":["../src/space.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"space.js","sourceRoot":"","sources":["../src/space.ts"],"names":[],"mappings":"AAAA;;4DAE4D;AAC5D,MAAM,CAAC,MAAM,WAAW,GACvB,kEAAkE,CAAA"}
|
package/dist/to_base.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import type { TypedUintArray } from "./typed_array.ts";
|
|
1
2
|
/** Convert a number to a string in a given base. */
|
|
2
3
|
export declare function toBase(value: bigint, base: bigint, space?: string): string;
|
|
4
|
+
/** Convert a UTF-8 string to a number in a given base. */
|
|
5
|
+
export declare function utf8ToBase(value: string, base: bigint, space?: string): string;
|
|
6
|
+
export declare function bytesToBase(bytes: TypedUintArray, base: bigint, space?: string): string;
|
|
3
7
|
//# sourceMappingURL=to_base.d.ts.map
|
package/dist/to_base.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to_base.d.ts","sourceRoot":"","sources":["../src/to_base.ts"],"names":[],"mappings":"AAEA,oDAAoD;AACpD,wBAAgB,MAAM,CACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAoB,GACzB,MAAM,CAuBR"}
|
|
1
|
+
{"version":3,"file":"to_base.d.ts","sourceRoot":"","sources":["../src/to_base.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,oDAAoD;AACpD,wBAAgB,MAAM,CACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAoB,GACzB,MAAM,CAuBR;AAED,0DAA0D;AAC1D,wBAAgB,UAAU,CACzB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAoB,GACzB,MAAM,CAGR;AAED,wBAAgB,WAAW,CAC1B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAoB,GACzB,MAAM,CAGR"}
|
package/dist/to_base.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { base64Space } from "./space.js";
|
|
2
|
+
import { bytesToBigInt, utf8ToBigInt } from "./to_bigint.js";
|
|
2
3
|
/** Convert a number to a string in a given base. */
|
|
3
4
|
export function toBase(value, base, space = base64Space) {
|
|
4
5
|
if (space.length < Number(base))
|
|
@@ -20,4 +21,13 @@ export function toBase(value, base, space = base64Space) {
|
|
|
20
21
|
}
|
|
21
22
|
return result;
|
|
22
23
|
}
|
|
24
|
+
/** Convert a UTF-8 string to a number in a given base. */
|
|
25
|
+
export function utf8ToBase(value, base, space = base64Space) {
|
|
26
|
+
const bigInt = utf8ToBigInt(value);
|
|
27
|
+
return toBase(bigInt, base, space);
|
|
28
|
+
}
|
|
29
|
+
export function bytesToBase(bytes, base, space = base64Space) {
|
|
30
|
+
const bigInt = bytesToBigInt(bytes);
|
|
31
|
+
return toBase(bigInt, base, space);
|
|
32
|
+
}
|
|
23
33
|
//# sourceMappingURL=to_base.js.map
|
package/dist/to_base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to_base.js","sourceRoot":"","sources":["../src/to_base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"to_base.js","sourceRoot":"","sources":["../src/to_base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAG5D,oDAAoD;AACpD,MAAM,UAAU,MAAM,CACrB,KAAa,EACb,IAAY,EACZ,QAAgB,WAAW;IAE3B,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,6BAA6B,EAAE;YAC9C,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;SAC7B,CAAC,CAAA;IAEH,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,IAAI,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,CAAA;IAExD,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,OAAO,KAAK,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;QAClC,KAAK,IAAI,IAAI,CAAA;QAEb,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;QAC1B,IAAI,KAAK,KAAK,SAAS;YACtB,MAAM,IAAI,KAAK,CAAC,eAAe,EAAE;gBAChC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;aAC5C,CAAC,CAAA;QAEH,MAAM,GAAG,KAAK,GAAG,MAAM,CAAA;IACxB,CAAC;IAED,OAAO,MAAM,CAAA;AACd,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,UAAU,CACzB,KAAa,EACb,IAAY,EACZ,QAAgB,WAAW;IAE3B,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IAClC,OAAO,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,WAAW,CAC1B,KAAqB,EACrB,IAAY,EACZ,QAAgB,WAAW;IAE3B,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IACnC,OAAO,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;AACnC,CAAC"}
|
package/dist/to_bigint.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TypedUintArray } from "./typed_array.
|
|
1
|
+
import type { TypedUintArray } from "./typed_array.ts";
|
|
2
2
|
/** Turns a `string` in a given `base` into a `bigint` by multiplying each digit
|
|
3
3
|
* by the `base` raised to the power of its position in the `string`. */
|
|
4
4
|
export declare function basedToBigInt(based: string, base: bigint, space?: string): bigint;
|
|
@@ -6,4 +6,5 @@ export declare function basedToBigInt(based: string, base: bigint, space?: strin
|
|
|
6
6
|
* hexadecimal string then concatenating the resulting digits using JavaScript's
|
|
7
7
|
* `0x` notation. */
|
|
8
8
|
export declare function bytesToBigInt(typedArray: TypedUintArray): bigint;
|
|
9
|
+
export declare function utf8ToBigInt(value: string): bigint;
|
|
9
10
|
//# sourceMappingURL=to_bigint.d.ts.map
|
package/dist/to_bigint.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to_bigint.d.ts","sourceRoot":"","sources":["../src/to_bigint.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"to_bigint.d.ts","sourceRoot":"","sources":["../src/to_bigint.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD;wEACwE;AACxE,wBAAgB,aAAa,CAC5B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAoB,GACzB,MAAM,CAuBR;AAED;;oBAEoB;AACpB,wBAAgB,aAAa,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM,CAUhE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGlD"}
|
package/dist/to_bigint.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { base64Space } from "./space.js";
|
|
2
|
+
import { utf8ToBytes } from "./to_bytes.js";
|
|
2
3
|
/** Turns a `string` in a given `base` into a `bigint` by multiplying each digit
|
|
3
4
|
* by the `base` raised to the power of its position in the `string`. */
|
|
4
5
|
export function basedToBigInt(based, base, space = base64Space) {
|
|
@@ -29,4 +30,8 @@ export function bytesToBigInt(typedArray) {
|
|
|
29
30
|
const hexes = Array.from(typedArray).reduce((hexes, value) => (hexes.push(value.toString(16).padStart(maxLength, "0")), hexes), new Array(typedArray.length));
|
|
30
31
|
return BigInt(`0x${hexes.join("")}`);
|
|
31
32
|
}
|
|
33
|
+
export function utf8ToBigInt(value) {
|
|
34
|
+
const bytes = utf8ToBytes(value);
|
|
35
|
+
return bytesToBigInt(bytes);
|
|
36
|
+
}
|
|
32
37
|
//# sourceMappingURL=to_bigint.js.map
|
package/dist/to_bigint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to_bigint.js","sourceRoot":"","sources":["../src/to_bigint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"to_bigint.js","sourceRoot":"","sources":["../src/to_bigint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAG3C;wEACwE;AACxE,MAAM,UAAU,aAAa,CAC5B,KAAa,EACb,IAAY,EACZ,QAAgB,WAAW;IAE3B,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IAEpC,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,6BAA6B,EAAE;YAC9C,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;SAC7B,CAAC,CAAA;IAEH,IAAI,IAAI,IAAI,EAAE;QAAE,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;IAC3C,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IAE7E,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAS,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;QACrE,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACvC,IAAI,UAAU,IAAI,CAAC,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,8BAA8B,EAAE;gBAC/C,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE;aACpE,CAAC,CAAA;QAEH,OAAO,CACN,MAAM;YACN,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,CAClE,CAAA;IACF,CAAC,EAAE,EAAE,CAAC,CAAA;AACP,CAAC;AAED;;oBAEoB;AACpB,MAAM,UAAU,aAAa,CAAC,UAA0B;IACvD,MAAM,SAAS,GAAG,UAAU,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAClD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAC1C,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CACjB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,CAC9D,EACD,IAAI,KAAK,CAAS,UAAU,CAAC,MAAM,CAAC,CACpC,CAAA;IAED,OAAO,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACzC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;IAChC,OAAO,aAAa,CAAC,KAAK,CAAC,CAAA;AAC5B,CAAC"}
|
package/dist/to_bytes.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
/** Turns a `bigint` into a `Uint8ClampedArray` by converting it to a
|
|
2
2
|
* hexadecimal string then turning each digit into a pair of bytes. */
|
|
3
3
|
export declare function bigIntToBytes(bigInt: bigint): Uint8ClampedArray;
|
|
4
|
+
export declare function utf8ToBytes(value: string): Uint8Array;
|
|
5
|
+
export declare function basedToBytes(based: string, base: bigint, space?: string): Uint8ClampedArray;
|
|
4
6
|
//# sourceMappingURL=to_bytes.d.ts.map
|
package/dist/to_bytes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to_bytes.d.ts","sourceRoot":"","sources":["../src/to_bytes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"to_bytes.d.ts","sourceRoot":"","sources":["../src/to_bytes.ts"],"names":[],"mappings":"AAGA;sEACsE;AACtE,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAa/D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAGrD;AAED,wBAAgB,YAAY,CAC3B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAoB,GACzB,iBAAiB,CAGnB"}
|
package/dist/to_bytes.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { base64Space } from "./space.js";
|
|
2
|
+
import { basedToBigInt } from "./to_bigint.js";
|
|
1
3
|
/** Turns a `bigint` into a `Uint8ClampedArray` by converting it to a
|
|
2
4
|
* hexadecimal string then turning each digit into a pair of bytes. */
|
|
3
5
|
export function bigIntToBytes(bigInt) {
|
|
@@ -12,4 +14,12 @@ export function bigIntToBytes(bigInt) {
|
|
|
12
14
|
}
|
|
13
15
|
return bytes;
|
|
14
16
|
}
|
|
17
|
+
export function utf8ToBytes(value) {
|
|
18
|
+
const encoder = new TextEncoder();
|
|
19
|
+
return encoder.encode(value);
|
|
20
|
+
}
|
|
21
|
+
export function basedToBytes(based, base, space = base64Space) {
|
|
22
|
+
const bigInt = basedToBigInt(based, base, space);
|
|
23
|
+
return bigIntToBytes(bigInt);
|
|
24
|
+
}
|
|
15
25
|
//# sourceMappingURL=to_bytes.js.map
|
package/dist/to_bytes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to_bytes.js","sourceRoot":"","sources":["../src/to_bytes.ts"],"names":[],"mappings":"AAAA;sEACsE;AACtE,MAAM,UAAU,aAAa,CAAC,MAAc;IAC3C,IAAI,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;IAEzC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;IAC/B,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAE3C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QACjD,KAAK,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IACjC,CAAC;IAED,OAAO,KAAK,CAAA;AACb,CAAC"}
|
|
1
|
+
{"version":3,"file":"to_bytes.js","sourceRoot":"","sources":["../src/to_bytes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE9C;sEACsE;AACtE,MAAM,UAAU,aAAa,CAAC,MAAc;IAC3C,IAAI,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;IAEzC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;IAC/B,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAE3C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QACjD,KAAK,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IACjC,CAAC;IAED,OAAO,KAAK,CAAA;AACb,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa;IACxC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;IACjC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,YAAY,CAC3B,KAAa,EACb,IAAY,EACZ,QAAgB,WAAW;IAE3B,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IAChD,OAAO,aAAa,CAAC,MAAM,CAAC,CAAA;AAC7B,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { TypedUintArray } from "./typed_array.ts";
|
|
2
|
+
export declare function basedToUtf8(based: string, base: bigint, space?: string): string;
|
|
3
|
+
export declare function bigIntToUtf8(bigInt: bigint): string;
|
|
4
|
+
export declare function bytesToUtf8(bytes: TypedUintArray): string;
|
|
5
|
+
//# sourceMappingURL=to_utf-8.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to_utf-8.d.ts","sourceRoot":"","sources":["../src/to_utf-8.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,wBAAgB,WAAW,CAC1B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAoB,GACzB,MAAM,CAIR;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAInD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAGzD"}
|
package/dist/to_utf-8.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { base64Space } from "./space.js";
|
|
2
|
+
import { basedToBytes, bigIntToBytes } from "./to_bytes.js";
|
|
3
|
+
export function basedToUtf8(based, base, space = base64Space) {
|
|
4
|
+
const bytes = basedToBytes(based, base, space);
|
|
5
|
+
const decoder = new TextDecoder();
|
|
6
|
+
return decoder.decode(bytes);
|
|
7
|
+
}
|
|
8
|
+
export function bigIntToUtf8(bigInt) {
|
|
9
|
+
const bytes = bigIntToBytes(bigInt);
|
|
10
|
+
const decoder = new TextDecoder();
|
|
11
|
+
return decoder.decode(bytes);
|
|
12
|
+
}
|
|
13
|
+
export function bytesToUtf8(bytes) {
|
|
14
|
+
const decoder = new TextDecoder();
|
|
15
|
+
return decoder.decode(bytes);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=to_utf-8.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to_utf-8.js","sourceRoot":"","sources":["../src/to_utf-8.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAG3D,MAAM,UAAU,WAAW,CAC1B,KAAa,EACb,IAAY,EACZ,QAAgB,WAAW;IAE3B,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IAC9C,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;IACjC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAc;IAC1C,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IACnC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;IACjC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAqB;IAChD,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;IACjC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC7B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@natoboram/based.ts",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "A TypeScript library for working with arbitrary bases",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"base2",
|
|
@@ -39,17 +39,20 @@
|
|
|
39
39
|
"basedts": "dist/main.js"
|
|
40
40
|
},
|
|
41
41
|
"repository": "github:NatoBoram/based.ts",
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"commander": "^13.1.0"
|
|
44
|
+
},
|
|
42
45
|
"devDependencies": {
|
|
43
46
|
"@eslint/js": "^9.9.0",
|
|
47
|
+
"@types/node": "^22.14.1",
|
|
44
48
|
"eslint": "^9.9.0",
|
|
45
|
-
"eslint-config-prettier": "^
|
|
46
|
-
"globals": "^
|
|
49
|
+
"eslint-config-prettier": "^10.1.2",
|
|
50
|
+
"globals": "^16.0.0",
|
|
47
51
|
"prettier": "^3.3.3",
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"typescript": "~5.6.2",
|
|
52
|
+
"typedoc": "^0.28.1",
|
|
53
|
+
"typescript": "~5.8.2",
|
|
51
54
|
"typescript-eslint": "^8.0.1",
|
|
52
|
-
"vitest": "^
|
|
55
|
+
"vitest": "^3.1.1"
|
|
53
56
|
},
|
|
54
57
|
"type": "module",
|
|
55
58
|
"exports": {
|
|
@@ -62,12 +65,14 @@
|
|
|
62
65
|
"module": "dist/index.js",
|
|
63
66
|
"scripts": {
|
|
64
67
|
"build": "tsc",
|
|
65
|
-
"
|
|
68
|
+
"clean": "rm -rf dist docs node_modules tsconfig.tsbuildinfo",
|
|
69
|
+
"dev": "node ./src/main.ts",
|
|
66
70
|
"docs": "typedoc",
|
|
67
71
|
"format": "prettier --write .",
|
|
68
72
|
"lint": "eslint . && prettier --check .",
|
|
69
73
|
"lint:fix": "eslint --fix .; prettier --list-different --write .",
|
|
70
74
|
"start": "node dist/main.js",
|
|
71
|
-
"test": "vitest"
|
|
75
|
+
"test": "vitest run",
|
|
76
|
+
"test:watch": "vitest"
|
|
72
77
|
}
|
|
73
78
|
}
|