@dxos/keys 0.8.2-main.fbd8ed0 → 0.8.2-staging.7ac8446
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/dist/lib/browser/index.mjs +44 -57
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +44 -57
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +44 -57
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/dxn.d.ts.map +1 -1
- package/dist/types/src/random-bytes.d.ts.map +1 -1
- package/dist/types/src/space-id.d.ts +3 -4
- package/dist/types/src/space-id.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -5
- package/src/dxn.ts +1 -2
- package/src/space-id.ts +22 -32
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dxn.d.ts","sourceRoot":"","sources":["../../../src/dxn.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,eAAe,MAAM,CAAC;AAGnC,eAAO,MAAM,iBAAiB;;;EAG5B,CAAC;AAEH;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,GAAG;;IACd;;OAEG;IACH,MAAM,CAAC,IAAI;QACT;;WAEG;;QAGH;;;WAGG;;QAKH;;;;;WAKG;;OAEF;IAEH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAK5B,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM;IAI9B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG;IAkB9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS;IAQ7C;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM;IAIpC;;OAEG;IAEH,MAAM,CAAC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAI/D;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,MAAM;gBAOvB,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAsBzC,IAAI,IAAI,WAEP;IAED,IAAI,KAAK,aAER;
|
|
1
|
+
{"version":3,"file":"dxn.d.ts","sourceRoot":"","sources":["../../../src/dxn.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,eAAe,MAAM,CAAC;AAGnC,eAAO,MAAM,iBAAiB;;;EAG5B,CAAC;AAEH;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,GAAG;;IACd;;OAEG;IACH,MAAM,CAAC,IAAI;QACT;;WAEG;;QAGH;;;WAGG;;QAKH;;;;;WAKG;;OAEF;IAEH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAK5B,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM;IAI9B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG;IAkB9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS;IAQ7C;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM;IAIpC;;OAEG;IAEH,MAAM,CAAC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAI/D;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,MAAM;gBAOvB,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAsBzC,IAAI,IAAI,WAEP;IAED,IAAI,KAAK,aAER;IAED,IAAI,QAAQ,WAGX;IAED,aAAa,CAAC,QAAQ,EAAE,MAAM;IAI9B,eAAe;IAIf,SAAS,IAAI,GAAG,CAAC,OAAO,GAAG,SAAS;IAYpC,SAAS,IAAI,GAAG,CAAC,OAAO,GAAG,SAAS;IAYpC,UAAU,IAAI,GAAG,CAAC,QAAQ,GAAG,SAAS;IAkBtC,QAAQ,IAAI,GAAG,CAAC,MAAM;IAItB;;OAEG;IACH,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,OAAO,OAAO;CAS1F;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,GAAG,CAAC;IAC3B,KAAY,OAAO,GAAG;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF,KAAY,OAAO,GAAG;QACpB,OAAO,CAAC,EAAE,OAAO,CAAC;QAElB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF,KAAY,QAAQ,GAAG;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF;;OAEG;IACH,KAAY,MAAM,GAAG,MAAM,GAAG;QAAE,WAAW,EAAE,KAAK,CAAA;KAAE,CAAC;CAItD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"random-bytes.d.ts","sourceRoot":"","sources":["../../../src/random-bytes.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"random-bytes.d.ts","sourceRoot":"","sources":["../../../src/random-bytes.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,WAAY,MAAM,4BAQzC,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Schema } from 'effect';
|
|
2
1
|
/**
|
|
3
2
|
* A unique identifier for a space.
|
|
4
3
|
* Space keys are generated by creating a keypair, and then taking the first 20 bytes of the SHA-256 hash of the public key and encoding them to multibase RFC4648 base-32 format (prefixed with B, see Multibase Table).
|
|
@@ -7,11 +6,11 @@ import { Schema } from 'effect';
|
|
|
7
6
|
export type SpaceId = string & {
|
|
8
7
|
__SpaceId: true;
|
|
9
8
|
};
|
|
10
|
-
export declare const SpaceId:
|
|
11
|
-
byteLength:
|
|
9
|
+
export declare const SpaceId: Readonly<{
|
|
10
|
+
byteLength: 20;
|
|
12
11
|
encode: (value: Uint8Array) => SpaceId;
|
|
13
12
|
decode: (value: SpaceId) => Uint8Array;
|
|
14
13
|
isValid: (value: string) => value is SpaceId;
|
|
15
14
|
random: () => SpaceId;
|
|
16
|
-
}
|
|
15
|
+
}>;
|
|
17
16
|
//# sourceMappingURL=space-id.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"space-id.d.ts","sourceRoot":"","sources":["../../../src/space-id.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"space-id.d.ts","sourceRoot":"","sources":["../../../src/space-id.ts"],"names":[],"mappings":"AAWA;;;;GAIG;AAEH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG;IAAE,SAAS,EAAE,IAAI,CAAA;CAAE,CAAC;AAEnD,eAAO,MAAM,OAAO;;oBAEF,UAAU,KAAG,OAAO;oBAMpB,OAAO,KAAG,UAAU;qBAKnB,MAAM,KAAG,KAAK,IAAI,OAAO;kBAG9B,OAAO;EAGnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"5.
|
|
1
|
+
{"version":"5.7.3"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/keys",
|
|
3
|
-
"version": "0.8.2-
|
|
3
|
+
"version": "0.8.2-staging.7ac8446",
|
|
4
4
|
"description": "Key utils and definitions.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -27,10 +27,9 @@
|
|
|
27
27
|
"src"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"
|
|
31
|
-
"@dxos/
|
|
32
|
-
"@dxos/node-std": "0.8.2-
|
|
33
|
-
"@dxos/invariant": "0.8.2-main.fbd8ed0"
|
|
30
|
+
"@dxos/debug": "0.8.2-staging.7ac8446",
|
|
31
|
+
"@dxos/invariant": "0.8.2-staging.7ac8446",
|
|
32
|
+
"@dxos/node-std": "0.8.2-staging.7ac8446"
|
|
34
33
|
},
|
|
35
34
|
"devDependencies": {
|
|
36
35
|
"base32-decode": "^1.0.0",
|
package/src/dxn.ts
CHANGED
|
@@ -50,7 +50,7 @@ export class DXN {
|
|
|
50
50
|
* dxn:echo:<space id>:<echo id>
|
|
51
51
|
* dxn:echo:@:<echo id>
|
|
52
52
|
*/
|
|
53
|
-
// TODO(burdon): Rename to OBJECT?
|
|
53
|
+
// TODO(burdon): Rename to OBJECT?
|
|
54
54
|
// TODO(burdon): Add separate Kind for space.
|
|
55
55
|
ECHO: 'echo',
|
|
56
56
|
|
|
@@ -153,7 +153,6 @@ export class DXN {
|
|
|
153
153
|
return this.#parts;
|
|
154
154
|
}
|
|
155
155
|
|
|
156
|
-
// TODO(burdon): Should getters fail?
|
|
157
156
|
get typename() {
|
|
158
157
|
invariant(this.#kind === DXN.kind.TYPE);
|
|
159
158
|
return this.#parts[0];
|
package/src/space-id.ts
CHANGED
|
@@ -4,53 +4,43 @@
|
|
|
4
4
|
|
|
5
5
|
import base32Decode from 'base32-decode';
|
|
6
6
|
import base32Encode from 'base32-encode';
|
|
7
|
-
import { Schema } from 'effect';
|
|
8
7
|
|
|
9
8
|
import { invariant } from '@dxos/invariant';
|
|
10
9
|
|
|
11
10
|
import { randomBytes } from './random-bytes';
|
|
12
11
|
|
|
13
|
-
/**
|
|
14
|
-
* Denotes RFC4648 base-32 format.
|
|
15
|
-
*/
|
|
16
|
-
const MULTIBASE_PREFIX = 'B';
|
|
17
|
-
|
|
18
|
-
const ENCODED_LENGTH = 33;
|
|
19
|
-
|
|
20
|
-
const isValid = (value: string): value is SpaceId => {
|
|
21
|
-
return typeof value === 'string' && value.startsWith(MULTIBASE_PREFIX) && value.length === ENCODED_LENGTH;
|
|
22
|
-
};
|
|
23
|
-
|
|
24
12
|
/**
|
|
25
13
|
* A unique identifier for a space.
|
|
26
14
|
* Space keys are generated by creating a keypair, and then taking the first 20 bytes of the SHA-256 hash of the public key and encoding them to multibase RFC4648 base-32 format (prefixed with B, see Multibase Table).
|
|
27
15
|
* @example BA25QRC2FEWCSAMRP4RZL65LWJ7352CKE
|
|
28
16
|
*/
|
|
29
|
-
// TODO(burdon): Use effect
|
|
17
|
+
// TODO(burdon): Use effect brand.
|
|
30
18
|
export type SpaceId = string & { __SpaceId: true };
|
|
31
19
|
|
|
32
|
-
export const SpaceId
|
|
33
|
-
byteLength:
|
|
34
|
-
encode: (value: Uint8Array) =>
|
|
35
|
-
decode: (value: SpaceId) => Uint8Array;
|
|
36
|
-
isValid: (value: string) => value is SpaceId;
|
|
37
|
-
random: () => SpaceId;
|
|
38
|
-
} = class extends Schema.String.pipe(Schema.filter(isValid)) {
|
|
39
|
-
static byteLength = 20;
|
|
40
|
-
|
|
41
|
-
static encode = (value: Uint8Array): SpaceId => {
|
|
20
|
+
export const SpaceId = Object.freeze({
|
|
21
|
+
byteLength: 20,
|
|
22
|
+
encode: (value: Uint8Array): SpaceId => {
|
|
42
23
|
invariant(value instanceof Uint8Array, 'Invalid type');
|
|
43
24
|
invariant(value.length === SpaceId.byteLength, 'Invalid length');
|
|
44
|
-
return (MULTIBASE_PREFIX + base32Encode(value, 'RFC4648')) as SpaceId;
|
|
45
|
-
};
|
|
46
25
|
|
|
47
|
-
|
|
26
|
+
return (MULTIBASE_PREFIX + base32Encode(value, 'RFC4648')) as SpaceId;
|
|
27
|
+
},
|
|
28
|
+
decode: (value: SpaceId): Uint8Array => {
|
|
48
29
|
invariant(value.startsWith(MULTIBASE_PREFIX), 'Invalid multibase32 encoding');
|
|
49
|
-
return new Uint8Array(base32Decode(value.slice(1), 'RFC4648'));
|
|
50
|
-
};
|
|
51
30
|
|
|
52
|
-
|
|
53
|
-
|
|
31
|
+
return new Uint8Array(base32Decode(value.slice(1), 'RFC4648'));
|
|
32
|
+
},
|
|
33
|
+
isValid: (value: string): value is SpaceId => {
|
|
34
|
+
return typeof value === 'string' && value.startsWith(MULTIBASE_PREFIX) && value.length === ENCODED_LENGTH;
|
|
35
|
+
},
|
|
36
|
+
random: (): SpaceId => {
|
|
54
37
|
return SpaceId.encode(randomBytes(SpaceId.byteLength));
|
|
55
|
-
}
|
|
56
|
-
};
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Denotes RFC4648 base-32 format.
|
|
43
|
+
*/
|
|
44
|
+
const MULTIBASE_PREFIX = 'B';
|
|
45
|
+
|
|
46
|
+
const ENCODED_LENGTH = 33;
|