@e280/stz 0.0.0-15 → 0.0.0-16
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/package.json +1 -1
- package/s/data/bytename/thumbprint.test.ts +2 -2
- package/s/data/bytename/thumbprint.ts +5 -5
- package/x/data/bytename/thumbprint.d.ts +1 -1
- package/x/data/bytename/thumbprint.js +5 -5
- package/x/data/bytename/thumbprint.js.map +1 -1
- package/x/data/bytename/thumbprint.test.js +2 -2
- package/x/data/bytename/thumbprint.test.js.map +1 -1
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@ import {Hex} from "../hex.js"
|
|
|
4
4
|
import {Bytes} from "../bytes.js"
|
|
5
5
|
import {Thumbprint} from "./thumbprint.js"
|
|
6
6
|
|
|
7
|
-
const sampleThumbprint = "nodlyn.fasrep::
|
|
7
|
+
const sampleThumbprint = "nodlyn.fasrep.habbud.ralwel::Avo7gFmdWMRHkwsD149mcaBoZdS69iXuJ"
|
|
8
8
|
const sampleHex = "88e8c3fad1028fcf6ce5ac491578850f4d833336feca03b608265501c3019d59"
|
|
9
9
|
const sampleBytes = Hex.bytes(sampleHex)
|
|
10
10
|
|
|
@@ -32,7 +32,7 @@ export default Science.suite({
|
|
|
32
32
|
}),
|
|
33
33
|
|
|
34
34
|
"partially": Science.suite({
|
|
35
|
-
"normal": test(async() => expect(Thumbprint.toBytes(
|
|
35
|
+
"normal": test(async() => expect(Thumbprint.toBytes(sampleThumbprint).length).ok()),
|
|
36
36
|
"nothing": test(async() => expect(Thumbprint.toBytes("").length).is(0)),
|
|
37
37
|
"no-bulk": test(async() => expect(Thumbprint.toBytes("nodlyn.fasrep").length).ok()),
|
|
38
38
|
"one-byte": test(async() => expect(Thumbprint.toBytes("nod").length).is(1)),
|
|
@@ -18,7 +18,7 @@ export type ThumbprintData = {
|
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* Thumbprint is a friendly presentation format for arbitrary binary data.
|
|
21
|
-
* - looks like "nodlyn.fasrep::
|
|
21
|
+
* - looks like "nodlyn.fasrep.habbud.ralwel::Avo7gFmdWMRHkwsD149mcaBoZdS69iXuJ"
|
|
22
22
|
* - the "sigil" is the first bytes that are shown in bytename format
|
|
23
23
|
* - the "bulk" is the rest of the data in base58
|
|
24
24
|
* - originally designed to be a nice way to present 256-bit ids
|
|
@@ -28,7 +28,7 @@ export const Thumbprint = {
|
|
|
28
28
|
defaults: (<ThumbprintOptions>{
|
|
29
29
|
delimiter: "::",
|
|
30
30
|
sigilDelimiter: ".",
|
|
31
|
-
sigilByteCount:
|
|
31
|
+
sigilByteCount: 8,
|
|
32
32
|
}),
|
|
33
33
|
|
|
34
34
|
parse(thumbprint: string): ThumbprintData {
|
|
@@ -39,14 +39,14 @@ export const Thumbprint = {
|
|
|
39
39
|
|
|
40
40
|
if (parts.length < 2) {
|
|
41
41
|
const sigil = parts.join(".")
|
|
42
|
-
const bytes = Bytename.
|
|
42
|
+
const bytes = Bytename.toBytes(sigil)
|
|
43
43
|
return {bytes, sigil, bulk: "", thumbprint}
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
const bulk = parts.pop()!
|
|
47
47
|
const sigil = parts.join(".")
|
|
48
48
|
const bytes = new Uint8Array([
|
|
49
|
-
...Bytename.
|
|
49
|
+
...Bytename.toBytes(sigil),
|
|
50
50
|
...Base58.bytes(bulk),
|
|
51
51
|
])
|
|
52
52
|
|
|
@@ -59,7 +59,7 @@ export const Thumbprint = {
|
|
|
59
59
|
= {...Thumbprint.defaults, ...options}
|
|
60
60
|
|
|
61
61
|
const sigil = (bytes.length > 0)
|
|
62
|
-
? Bytename.
|
|
62
|
+
? Bytename.fromBytes(bytes.slice(0, sigilByteCount), {
|
|
63
63
|
wordSeparator: sigilDelimiter,
|
|
64
64
|
groupSeparator: sigilDelimiter,
|
|
65
65
|
})
|
|
@@ -11,7 +11,7 @@ export type ThumbprintData = {
|
|
|
11
11
|
};
|
|
12
12
|
/**
|
|
13
13
|
* Thumbprint is a friendly presentation format for arbitrary binary data.
|
|
14
|
-
* - looks like "nodlyn.fasrep::
|
|
14
|
+
* - looks like "nodlyn.fasrep.habbud.ralwel::Avo7gFmdWMRHkwsD149mcaBoZdS69iXuJ"
|
|
15
15
|
* - the "sigil" is the first bytes that are shown in bytename format
|
|
16
16
|
* - the "bulk" is the rest of the data in base58
|
|
17
17
|
* - originally designed to be a nice way to present 256-bit ids
|
|
@@ -3,7 +3,7 @@ import { Base58 } from "../base58.js";
|
|
|
3
3
|
import { Bytename } from "./bytename.js";
|
|
4
4
|
/**
|
|
5
5
|
* Thumbprint is a friendly presentation format for arbitrary binary data.
|
|
6
|
-
* - looks like "nodlyn.fasrep::
|
|
6
|
+
* - looks like "nodlyn.fasrep.habbud.ralwel::Avo7gFmdWMRHkwsD149mcaBoZdS69iXuJ"
|
|
7
7
|
* - the "sigil" is the first bytes that are shown in bytename format
|
|
8
8
|
* - the "bulk" is the rest of the data in base58
|
|
9
9
|
* - originally designed to be a nice way to present 256-bit ids
|
|
@@ -13,7 +13,7 @@ export const Thumbprint = {
|
|
|
13
13
|
defaults: {
|
|
14
14
|
delimiter: "::",
|
|
15
15
|
sigilDelimiter: ".",
|
|
16
|
-
sigilByteCount:
|
|
16
|
+
sigilByteCount: 8,
|
|
17
17
|
},
|
|
18
18
|
parse(thumbprint) {
|
|
19
19
|
thumbprint = thumbprint.trim();
|
|
@@ -22,13 +22,13 @@ export const Thumbprint = {
|
|
|
22
22
|
.map(s => s.trim());
|
|
23
23
|
if (parts.length < 2) {
|
|
24
24
|
const sigil = parts.join(".");
|
|
25
|
-
const bytes = Bytename.
|
|
25
|
+
const bytes = Bytename.toBytes(sigil);
|
|
26
26
|
return { bytes, sigil, bulk: "", thumbprint };
|
|
27
27
|
}
|
|
28
28
|
const bulk = parts.pop();
|
|
29
29
|
const sigil = parts.join(".");
|
|
30
30
|
const bytes = new Uint8Array([
|
|
31
|
-
...Bytename.
|
|
31
|
+
...Bytename.toBytes(sigil),
|
|
32
32
|
...Base58.bytes(bulk),
|
|
33
33
|
]);
|
|
34
34
|
return { bytes, sigil, bulk, thumbprint };
|
|
@@ -37,7 +37,7 @@ export const Thumbprint = {
|
|
|
37
37
|
fromBytes(bytes, options = {}) {
|
|
38
38
|
const { sigilByteCount, sigilDelimiter, delimiter } = { ...Thumbprint.defaults, ...options };
|
|
39
39
|
const sigil = (bytes.length > 0)
|
|
40
|
-
? Bytename.
|
|
40
|
+
? Bytename.fromBytes(bytes.slice(0, sigilByteCount), {
|
|
41
41
|
wordSeparator: sigilDelimiter,
|
|
42
42
|
groupSeparator: sigilDelimiter,
|
|
43
43
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thumbprint.js","sourceRoot":"","sources":["../../../s/data/bytename/thumbprint.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,WAAW,CAAA;AAC7B,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAA;AACnC,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAA;AAetC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACzB,QAAQ,EAAsB;QAC7B,SAAS,EAAE,IAAI;QACf,cAAc,EAAE,GAAG;QACnB,cAAc,EAAE,CAAC;KAChB;IAEF,KAAK,CAAC,UAAkB;QACvB,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,CAAA;QAC9B,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC;aAC9C,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QAEpB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"thumbprint.js","sourceRoot":"","sources":["../../../s/data/bytename/thumbprint.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,WAAW,CAAA;AAC7B,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAA;AACnC,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAA;AAetC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACzB,QAAQ,EAAsB;QAC7B,SAAS,EAAE,IAAI;QACf,cAAc,EAAE,GAAG;QACnB,cAAc,EAAE,CAAC;KAChB;IAEF,KAAK,CAAC,UAAkB;QACvB,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,CAAA;QAC9B,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC;aAC9C,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QAEpB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACrC,OAAO,EAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAC,CAAA;QAC5C,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAG,CAAA;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC7B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC;YAC5B,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;YAC1B,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;SACrB,CAAC,CAAA;QAEF,OAAO,EAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAC,CAAA;IACxC,CAAC;IAED,KAAK,EAAE;QACN,SAAS,CAAC,KAAiB,EAAE,UAAsC,EAAE;YACpE,MAAM,EAAC,cAAc,EAAE,cAAc,EAAE,SAAS,EAAC,GAC9C,EAAC,GAAG,UAAU,CAAC,QAAQ,EAAE,GAAG,OAAO,EAAC,CAAA;YAEvC,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC/B,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE;oBACpD,aAAa,EAAE,cAAc;oBAC7B,cAAc,EAAE,cAAc;iBAC9B,CAAC;gBACF,CAAC,CAAC,EAAE,CAAA;YAEL,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC;gBAC3C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBAC5C,CAAC,CAAC,EAAE,CAAA;YAEL,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC;iBAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;iBACzB,IAAI,CAAC,SAAS,CAAC,CAAA;YAEjB,OAAO,EAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAC,CAAA;QACxC,CAAC;QAED,OAAO,CAAC,GAAW,EAAE,OAAoC;YACxD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC5B,OAAO,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAClD,CAAC;KACD;IAED,OAAO,CAAC,UAAkB;QACzB,OAAO,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,UAAkB;QACvB,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QAC5C,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAED,SAAS,CAAC,KAAiB,EAAE,OAAoC;QAChE,OAAO,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,UAAU,CAAA;IAC7D,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,OAAoC;QACxD,OAAO,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAA;IACrD,CAAC;IAED,KAAK,EAAE;QACN,OAAO,CAAC,GAAW,EAAE,OAAoC;YACxD,OAAO,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,KAAK,CAAA;QACpD,CAAC;QACD,SAAS,CAAC,KAAiB,EAAE,OAAoC;YAChE,OAAO,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,KAAK,CAAA;QACxD,CAAC;KACD;CACD,CAAA"}
|
|
@@ -2,7 +2,7 @@ import { Science, test, expect } from "@e280/science";
|
|
|
2
2
|
import { Hex } from "../hex.js";
|
|
3
3
|
import { Bytes } from "../bytes.js";
|
|
4
4
|
import { Thumbprint } from "./thumbprint.js";
|
|
5
|
-
const sampleThumbprint = "nodlyn.fasrep::
|
|
5
|
+
const sampleThumbprint = "nodlyn.fasrep.habbud.ralwel::Avo7gFmdWMRHkwsD149mcaBoZdS69iXuJ";
|
|
6
6
|
const sampleHex = "88e8c3fad1028fcf6ce5ac491578850f4d833336feca03b608265501c3019d59";
|
|
7
7
|
const sampleBytes = Hex.bytes(sampleHex);
|
|
8
8
|
function good(bytes) {
|
|
@@ -25,7 +25,7 @@ export default Science.suite({
|
|
|
25
25
|
expect(Bytes.eq(Thumbprint.toBytes(text), new Uint8Array([0x00]))).ok();
|
|
26
26
|
}),
|
|
27
27
|
"partially": Science.suite({
|
|
28
|
-
"normal": test(async () => expect(Thumbprint.toBytes(
|
|
28
|
+
"normal": test(async () => expect(Thumbprint.toBytes(sampleThumbprint).length).ok()),
|
|
29
29
|
"nothing": test(async () => expect(Thumbprint.toBytes("").length).is(0)),
|
|
30
30
|
"no-bulk": test(async () => expect(Thumbprint.toBytes("nodlyn.fasrep").length).ok()),
|
|
31
31
|
"one-byte": test(async () => expect(Thumbprint.toBytes("nod").length).is(1)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thumbprint.test.js","sourceRoot":"","sources":["../../../s/data/bytename/thumbprint.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAC,MAAM,eAAe,CAAA;AACnD,OAAO,EAAC,GAAG,EAAC,MAAM,WAAW,CAAA;AAC7B,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;AACjC,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAE1C,MAAM,gBAAgB,GAAG,
|
|
1
|
+
{"version":3,"file":"thumbprint.test.js","sourceRoot":"","sources":["../../../s/data/bytename/thumbprint.test.ts"],"names":[],"mappings":"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"}
|