cojson 0.0.18 → 0.0.21
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/crypto.d.ts +6 -2
- package/dist/crypto.js +17 -2
- package/dist/crypto.js.map +1 -1
- package/dist/ids.d.ts +2 -0
- package/dist/ids.js +8 -0
- package/dist/ids.js.map +1 -1
- package/dist/index.d.ts +13 -4
- package/dist/index.js +9 -2
- package/dist/index.js.map +1 -1
- package/dist/jsonValue.d.ts +2 -2
- package/dist/node.d.ts +2 -2
- package/dist/node.js +3 -4
- package/dist/node.js.map +1 -1
- package/package.json +3 -3
- package/src/crypto.ts +50 -33
- package/src/ids.ts +13 -0
- package/src/index.ts +25 -2
- package/src/jsonValue.ts +2 -2
- package/src/node.ts +3 -5
package/dist/crypto.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { JsonValue } from
|
|
1
|
+
import { JsonValue } from "./jsonValue.js";
|
|
2
2
|
import { blake3 } from "@noble/hashes/blake3";
|
|
3
|
-
import { AgentID, RawCoID, TransactionID } from
|
|
3
|
+
import { AgentID, RawCoID, TransactionID } from "./ids.js";
|
|
4
4
|
export type SignerSecret = `signerSecret_z${string}`;
|
|
5
5
|
export type SignerID = `signer_z${string}`;
|
|
6
6
|
export type Signature = `signature_z${string}`;
|
|
@@ -46,6 +46,7 @@ export declare class StreamingHash {
|
|
|
46
46
|
clone(): StreamingHash;
|
|
47
47
|
}
|
|
48
48
|
export type ShortHash = `shortHash_z${string}`;
|
|
49
|
+
export declare const shortHashLength = 19;
|
|
49
50
|
export declare function shortHash(value: JsonValue): ShortHash;
|
|
50
51
|
export type Encrypted<T extends JsonValue, N extends JsonValue> = `encrypted_U${string}` & {
|
|
51
52
|
__type: T;
|
|
@@ -101,3 +102,6 @@ export declare function createdNowUnique(): {
|
|
|
101
102
|
createdAt: `2${string}`;
|
|
102
103
|
uniqueness: `z${string}`;
|
|
103
104
|
};
|
|
105
|
+
export declare const secretSeedLength = 32;
|
|
106
|
+
export declare function newRandomSecretSeed(): Uint8Array;
|
|
107
|
+
export declare function agentSecretFromSecretSeed(secretSeed: Uint8Array): AgentSecret;
|
package/dist/crypto.js
CHANGED
|
@@ -110,8 +110,9 @@ export class StreamingHash {
|
|
|
110
110
|
return new StreamingHash(this.state.clone());
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
|
+
export const shortHashLength = 19;
|
|
113
114
|
export function shortHash(value) {
|
|
114
|
-
return `shortHash_z${base58.encode(blake3(textEncoder.encode(stableStringify(value))).slice(0,
|
|
115
|
+
return `shortHash_z${base58.encode(blake3(textEncoder.encode(stableStringify(value))).slice(0, shortHashLength))}`;
|
|
115
116
|
}
|
|
116
117
|
export function newRandomKeySecret() {
|
|
117
118
|
return {
|
|
@@ -166,10 +167,24 @@ export function uniquenessForHeader() {
|
|
|
166
167
|
return `z${base58.encode(randomBytes(12))}`;
|
|
167
168
|
}
|
|
168
169
|
export function createdNowUnique() {
|
|
169
|
-
const createdAt =
|
|
170
|
+
const createdAt = new Date().toISOString();
|
|
170
171
|
return {
|
|
171
172
|
createdAt,
|
|
172
173
|
uniqueness: uniquenessForHeader(),
|
|
173
174
|
};
|
|
174
175
|
}
|
|
176
|
+
export const secretSeedLength = 32;
|
|
177
|
+
export function newRandomSecretSeed() {
|
|
178
|
+
return randomBytes(secretSeedLength);
|
|
179
|
+
}
|
|
180
|
+
export function agentSecretFromSecretSeed(secretSeed) {
|
|
181
|
+
if (secretSeed.length !== secretSeedLength) {
|
|
182
|
+
throw new Error(`Secret seed needs to be ${secretSeedLength} bytes long`);
|
|
183
|
+
}
|
|
184
|
+
return `sealerSecret_z${base58.encode(blake3(secretSeed, {
|
|
185
|
+
context: textEncoder.encode("seal"),
|
|
186
|
+
}))}/signerSecret_z${base58.encode(blake3(secretSeed, {
|
|
187
|
+
context: textEncoder.encode("sign"),
|
|
188
|
+
}))}`;
|
|
189
|
+
}
|
|
175
190
|
//# sourceMappingURL=crypto.js.map
|
package/dist/crypto.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEnE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,eAAe,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAa7D,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAEtC,MAAM,UAAU,eAAe;IAC3B,OAAO,iBAAiB,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"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"}
|
package/dist/ids.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { AccountIDOrAgentID } from './account.js';
|
|
2
2
|
export type RawCoID = `co_z${string}`;
|
|
3
|
+
export declare function rawCoIDtoBytes(id: RawCoID): Uint8Array;
|
|
4
|
+
export declare function rawCoIDfromBytes(bytes: Uint8Array): RawCoID;
|
|
3
5
|
export type TransactionID = {
|
|
4
6
|
sessionID: SessionID;
|
|
5
7
|
txIndex: number;
|
package/dist/ids.js
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
import { base58 } from "@scure/base";
|
|
2
|
+
import { shortHashLength } from './crypto.js';
|
|
3
|
+
export function rawCoIDtoBytes(id) {
|
|
4
|
+
return base58.decode(id.substring("co_z".length));
|
|
5
|
+
}
|
|
6
|
+
export function rawCoIDfromBytes(bytes) {
|
|
7
|
+
return `co_z${base58.encode(bytes.slice(0, shortHashLength))}`;
|
|
8
|
+
}
|
|
1
9
|
export function isAgentID(id) {
|
|
2
10
|
return typeof id === "string" && id.startsWith("sealer_") && id.includes("/signer_");
|
|
3
11
|
}
|
package/dist/ids.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../src/ids.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../src/ids.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAK9C,MAAM,UAAU,cAAc,CAAC,EAAW;IACtC,OAAO,MAAM,CAAC,MAAM,CAChB,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAC9B,CAAA;AACL,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAiB;IAC9C,OAAO,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,EAAa,CAAC;AAC9E,CAAC;AAMD,MAAM,UAAU,SAAS,CAAC,EAAU;IAChC,OAAO,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACzF,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { CoValue, newRandomSessionID } from "./coValue.js";
|
|
2
2
|
import { LocalNode } from "./node.js";
|
|
3
3
|
import { CoMap } from "./contentTypes/coMap.js";
|
|
4
|
-
import { agentSecretFromBytes, agentSecretToBytes, getAgentID, newRandomAgentSecret } from "./crypto.js";
|
|
4
|
+
import { agentSecretFromBytes, agentSecretToBytes, getAgentID, newRandomAgentSecret, newRandomSecretSeed, agentSecretFromSecretSeed } from "./crypto.js";
|
|
5
5
|
import { connectedPeers } from "./streamUtils.js";
|
|
6
6
|
import { AnonymousControlledAccount, ControlledAccount } from "./account.js";
|
|
7
|
+
import { rawCoIDtoBytes, rawCoIDfromBytes } from "./ids.js";
|
|
7
8
|
import type { SessionID, AgentID } from "./ids.js";
|
|
8
9
|
import type { CoID, ContentType } from "./contentType.js";
|
|
9
10
|
import type { JsonValue } from "./jsonValue.js";
|
|
10
|
-
import type { SyncMessage } from "./sync.js";
|
|
11
|
+
import type { SyncMessage, Peer } from "./sync.js";
|
|
11
12
|
import type { AgentSecret } from "./crypto.js";
|
|
13
|
+
import type { AccountID, AccountContent, ProfileContent, Profile } from "./account.js";
|
|
12
14
|
type Value = JsonValue | ContentType;
|
|
13
15
|
export declare const cojsonInternals: {
|
|
14
16
|
agentSecretFromBytes: typeof agentSecretFromBytes;
|
|
@@ -17,9 +19,15 @@ export declare const cojsonInternals: {
|
|
|
17
19
|
newRandomAgentSecret: typeof newRandomAgentSecret;
|
|
18
20
|
connectedPeers: typeof connectedPeers;
|
|
19
21
|
getAgentID: typeof getAgentID;
|
|
22
|
+
rawCoIDtoBytes: typeof rawCoIDtoBytes;
|
|
23
|
+
rawCoIDfromBytes: typeof rawCoIDfromBytes;
|
|
24
|
+
newRandomSecretSeed: typeof newRandomSecretSeed;
|
|
25
|
+
agentSecretFromSecretSeed: typeof agentSecretFromSecretSeed;
|
|
26
|
+
secretSeedLength: number;
|
|
27
|
+
shortHashLength: number;
|
|
20
28
|
};
|
|
21
|
-
export { LocalNode, CoValue, CoMap,
|
|
22
|
-
export type { Value, JsonValue, ContentType, CoID, AgentSecret, SessionID, SyncMessage, AgentID, };
|
|
29
|
+
export { LocalNode, CoValue, CoMap, AnonymousControlledAccount, ControlledAccount, };
|
|
30
|
+
export type { Value, JsonValue, ContentType, CoID, AgentSecret, SessionID, SyncMessage, AgentID, AccountID, Peer, AccountContent, Profile, ProfileContent, };
|
|
23
31
|
export declare namespace CojsonInternalTypes {
|
|
24
32
|
type CoValueKnownState = import("./sync.js").CoValueKnownState;
|
|
25
33
|
type DoneMessage = import("./sync.js").DoneMessage;
|
|
@@ -30,4 +38,5 @@ export declare namespace CojsonInternalTypes {
|
|
|
30
38
|
type Transaction = import("./coValue.js").Transaction;
|
|
31
39
|
type Signature = import("./crypto.js").Signature;
|
|
32
40
|
type RawCoID = import("./ids.js").RawCoID;
|
|
41
|
+
type AccountIDOrAgentID = import("./account.js").AccountIDOrAgentID;
|
|
33
42
|
}
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { CoValue, newRandomSessionID } from "./coValue.js";
|
|
2
2
|
import { LocalNode } from "./node.js";
|
|
3
3
|
import { CoMap } from "./contentTypes/coMap.js";
|
|
4
|
-
import { agentSecretFromBytes, agentSecretToBytes, getAgentID, newRandomAgentSecret, } from "./crypto.js";
|
|
4
|
+
import { agentSecretFromBytes, agentSecretToBytes, getAgentID, newRandomAgentSecret, newRandomSecretSeed, agentSecretFromSecretSeed, secretSeedLength, shortHashLength, } from "./crypto.js";
|
|
5
5
|
import { connectedPeers } from "./streamUtils.js";
|
|
6
6
|
import { AnonymousControlledAccount, ControlledAccount } from "./account.js";
|
|
7
|
+
import { rawCoIDtoBytes, rawCoIDfromBytes } from "./ids.js";
|
|
7
8
|
export const cojsonInternals = {
|
|
8
9
|
agentSecretFromBytes,
|
|
9
10
|
agentSecretToBytes,
|
|
@@ -11,6 +12,12 @@ export const cojsonInternals = {
|
|
|
11
12
|
newRandomAgentSecret,
|
|
12
13
|
connectedPeers,
|
|
13
14
|
getAgentID,
|
|
15
|
+
rawCoIDtoBytes,
|
|
16
|
+
rawCoIDfromBytes,
|
|
17
|
+
newRandomSecretSeed,
|
|
18
|
+
agentSecretFromSecretSeed,
|
|
19
|
+
secretSeedLength,
|
|
20
|
+
shortHashLength,
|
|
14
21
|
};
|
|
15
|
-
export { LocalNode, CoValue, CoMap,
|
|
22
|
+
export { LocalNode, CoValue, CoMap, AnonymousControlledAccount, ControlledAccount, };
|
|
16
23
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EACH,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EACV,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EACH,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EACV,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,eAAe,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAgB5D,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,oBAAoB;IACpB,kBAAkB;IAClB,kBAAkB;IAClB,oBAAoB;IACpB,cAAc;IACd,UAAU;IACV,cAAc;IACd,gBAAgB;IAChB,mBAAmB;IACnB,yBAAyB;IACzB,gBAAgB;IAChB,eAAe;CAClB,CAAC;AAEF,OAAO,EACH,SAAS,EACT,OAAO,EACP,KAAK,EACL,0BAA0B,EAC1B,iBAAiB,GACpB,CAAC"}
|
package/dist/jsonValue.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RawCoID } from './ids.js';
|
|
2
2
|
export type JsonAtom = string | number | boolean | null;
|
|
3
|
-
export type JsonValue = JsonAtom | JsonArray | JsonObject |
|
|
3
|
+
export type JsonValue = JsonAtom | JsonArray | JsonObject | RawCoID;
|
|
4
4
|
export type JsonArray = JsonValue[];
|
|
5
5
|
export type JsonObject = {
|
|
6
6
|
[key: string]: JsonValue;
|
package/dist/node.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export declare class LocalNode {
|
|
|
13
13
|
ownSessionID: SessionID;
|
|
14
14
|
sync: SyncManager;
|
|
15
15
|
constructor(account: GeneralizedControlledAccount, ownSessionID: SessionID);
|
|
16
|
-
static withNewlyCreatedAccount(name: string): {
|
|
16
|
+
static withNewlyCreatedAccount(name: string, initialAgentSecret?: `sealerSecret_z${string}/signerSecret_z${string}`): {
|
|
17
17
|
node: LocalNode;
|
|
18
18
|
accountID: AccountID;
|
|
19
19
|
accountSecret: AgentSecret;
|
|
@@ -26,7 +26,7 @@ export declare class LocalNode {
|
|
|
26
26
|
loadProfile(id: AccountID): Promise<Profile>;
|
|
27
27
|
expectCoValueLoaded(id: RawCoID, expectation?: string): CoValue;
|
|
28
28
|
expectProfileLoaded(id: AccountID, expectation?: string): Profile;
|
|
29
|
-
createAccount(name: string): ControlledAccount;
|
|
29
|
+
createAccount(name: string, agentSecret?: `sealerSecret_z${string}/signerSecret_z${string}`): ControlledAccount;
|
|
30
30
|
resolveAccountAgent(id: AccountIDOrAgentID, expectation?: string): AgentID;
|
|
31
31
|
createTeam(): Team;
|
|
32
32
|
testWithDifferentAccount(account: GeneralizedControlledAccount, ownSessionID: SessionID): LocalNode;
|
package/dist/node.js
CHANGED
|
@@ -11,10 +11,10 @@ export class LocalNode {
|
|
|
11
11
|
this.account = account;
|
|
12
12
|
this.ownSessionID = ownSessionID;
|
|
13
13
|
}
|
|
14
|
-
static withNewlyCreatedAccount(name) {
|
|
14
|
+
static withNewlyCreatedAccount(name, initialAgentSecret = newRandomAgentSecret()) {
|
|
15
15
|
const throwawayAgent = newRandomAgentSecret();
|
|
16
16
|
const setupNode = new LocalNode(new AnonymousControlledAccount(throwawayAgent), newRandomSessionID(getAgentID(throwawayAgent)));
|
|
17
|
-
const account = setupNode.createAccount(name);
|
|
17
|
+
const account = setupNode.createAccount(name, initialAgentSecret);
|
|
18
18
|
const nodeWithAccount = account.node.testWithDifferentAccount(account, newRandomSessionID(account.id));
|
|
19
19
|
return {
|
|
20
20
|
node: nodeWithAccount,
|
|
@@ -83,8 +83,7 @@ export class LocalNode {
|
|
|
83
83
|
}
|
|
84
84
|
return this.expectCoValueLoaded(profileID, expectation).getCurrentContent();
|
|
85
85
|
}
|
|
86
|
-
createAccount(name) {
|
|
87
|
-
const agentSecret = newRandomAgentSecret();
|
|
86
|
+
createAccount(name, agentSecret = newRandomAgentSecret()) {
|
|
88
87
|
const account = this.createCoValue(accountHeaderForInitialAgentSecret(agentSecret)).testWithDifferentAccount(new AnonymousControlledAccount(agentSecret), newRandomSessionID(getAgentID(agentSecret)));
|
|
89
88
|
const accountAsTeam = new Team(expectTeamContent(account.getCurrentContent()), account.node);
|
|
90
89
|
accountAsTeam.teamMap.edit((editable) => {
|
package/dist/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,IAAI,GACP,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,OAAO,EAAiB,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAe,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAQ,WAAW,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAA+B,SAAS,EAAE,MAAM,UAAU,CAAC;AAElE,OAAO,EACH,OAAO,EAGP,kCAAkC,EAElC,iBAAiB,EACjB,0BAA0B,GAM7B,MAAM,cAAc,CAAC;AAGtB,MAAM,OAAO,SAAS;IAMlB,YACI,OAAqC,EACrC,YAAuB;QAP3B,aAAQ,GAAqC,EAAE,CAAC;QAGhD,SAAI,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;QAMzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,uBAAuB,CAAC,IAAY;
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"name": "cojson",
|
|
3
3
|
"module": "dist/index.js",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
|
-
"types": "
|
|
5
|
+
"types": "dist/index.d.ts",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"license": "MIT",
|
|
8
|
-
"version": "0.0.
|
|
8
|
+
"version": "0.0.21",
|
|
9
9
|
"devDependencies": {
|
|
10
10
|
"@types/jest": "^29.5.3",
|
|
11
11
|
"@typescript-eslint/eslint-plugin": "^6.2.1",
|
|
@@ -52,5 +52,5 @@
|
|
|
52
52
|
"/dist/"
|
|
53
53
|
]
|
|
54
54
|
},
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "cb60088d2a2c58de73df36d1fbbde6af19a02ad1"
|
|
56
56
|
}
|
package/src/crypto.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ed25519, x25519 } from "@noble/curves/ed25519";
|
|
2
2
|
import { xsalsa20_poly1305, xsalsa20 } from "@noble/ciphers/salsa";
|
|
3
|
-
import { JsonValue } from
|
|
3
|
+
import { JsonValue } from "./jsonValue.js";
|
|
4
4
|
import { base58, base64url } from "@scure/base";
|
|
5
5
|
import stableStringify from "fast-json-stable-stringify";
|
|
6
6
|
import { blake3 } from "@noble/hashes/blake3";
|
|
7
7
|
import { randomBytes } from "@noble/ciphers/webcrypto/utils";
|
|
8
|
-
import { AgentID, RawCoID, TransactionID } from
|
|
8
|
+
import { AgentID, RawCoID, TransactionID } from "./ids.js";
|
|
9
9
|
|
|
10
10
|
export type SignerSecret = `signerSecret_z${string}`;
|
|
11
11
|
export type SignerID = `signer_z${string}`;
|
|
@@ -21,9 +21,7 @@ const textEncoder = new TextEncoder();
|
|
|
21
21
|
const textDecoder = new TextDecoder();
|
|
22
22
|
|
|
23
23
|
export function newRandomSigner(): SignerSecret {
|
|
24
|
-
return `signerSecret_z${base58.encode(
|
|
25
|
-
ed25519.utils.randomPrivateKey()
|
|
26
|
-
)}`;
|
|
24
|
+
return `signerSecret_z${base58.encode(ed25519.utils.randomPrivateKey())}`;
|
|
27
25
|
}
|
|
28
26
|
|
|
29
27
|
export function signerSecretToBytes(secret: SignerSecret): Uint8Array {
|
|
@@ -95,20 +93,16 @@ export function agentSecretToBytes(secret: AgentSecret): Uint8Array {
|
|
|
95
93
|
}
|
|
96
94
|
|
|
97
95
|
export function agentSecretFromBytes(bytes: Uint8Array): AgentSecret {
|
|
98
|
-
const sealerSecret = sealerSecretFromBytes(
|
|
99
|
-
|
|
100
|
-
);
|
|
101
|
-
const signerSecret = signerSecretFromBytes(
|
|
102
|
-
bytes.slice(32)
|
|
103
|
-
);
|
|
96
|
+
const sealerSecret = sealerSecretFromBytes(bytes.slice(0, 32));
|
|
97
|
+
const signerSecret = signerSecretFromBytes(bytes.slice(32));
|
|
104
98
|
return `${sealerSecret}/${signerSecret}`;
|
|
105
99
|
}
|
|
106
100
|
|
|
107
101
|
export function getAgentID(secret: AgentSecret): AgentID {
|
|
108
102
|
const [sealerSecret, signerSecret] = secret.split("/");
|
|
109
|
-
return `${getSealerID(
|
|
110
|
-
|
|
111
|
-
)}
|
|
103
|
+
return `${getSealerID(sealerSecret as SealerSecret)}/${getSignerID(
|
|
104
|
+
signerSecret as SignerSecret
|
|
105
|
+
)}`;
|
|
112
106
|
}
|
|
113
107
|
|
|
114
108
|
export function getAgentSignerID(agentId: AgentID): SignerID {
|
|
@@ -139,24 +133,17 @@ export function seal<T extends JsonValue>(
|
|
|
139
133
|
|
|
140
134
|
const sealerPub = base58.decode(to.substring("sealer_z".length));
|
|
141
135
|
|
|
142
|
-
const senderPriv = base58.decode(
|
|
143
|
-
from.substring("sealerSecret_z".length)
|
|
144
|
-
);
|
|
136
|
+
const senderPriv = base58.decode(from.substring("sealerSecret_z".length));
|
|
145
137
|
|
|
146
138
|
const plaintext = textEncoder.encode(stableStringify(message));
|
|
147
139
|
|
|
148
|
-
const sharedSecret = x25519.getSharedSecret(
|
|
149
|
-
senderPriv,
|
|
150
|
-
sealerPub
|
|
151
|
-
);
|
|
140
|
+
const sharedSecret = x25519.getSharedSecret(senderPriv, sealerPub);
|
|
152
141
|
|
|
153
142
|
const sealedBytes = xsalsa20_poly1305(sharedSecret, nOnce).encrypt(
|
|
154
143
|
plaintext
|
|
155
144
|
);
|
|
156
145
|
|
|
157
|
-
return `sealed_U${base64url.encode(
|
|
158
|
-
sealedBytes
|
|
159
|
-
)}` as Sealed<T>
|
|
146
|
+
return `sealed_U${base64url.encode(sealedBytes)}` as Sealed<T>;
|
|
160
147
|
}
|
|
161
148
|
|
|
162
149
|
export function unseal<T extends JsonValue>(
|
|
@@ -169,9 +156,7 @@ export function unseal<T extends JsonValue>(
|
|
|
169
156
|
textEncoder.encode(stableStringify(nOnceMaterial))
|
|
170
157
|
).slice(0, 24);
|
|
171
158
|
|
|
172
|
-
const sealerPriv = base58.decode(
|
|
173
|
-
sealer.substring("sealerSecret_z".length)
|
|
174
|
-
);
|
|
159
|
+
const sealerPriv = base58.decode(sealer.substring("sealerSecret_z".length));
|
|
175
160
|
|
|
176
161
|
const senderPub = base58.decode(from.substring("sealer_z".length));
|
|
177
162
|
|
|
@@ -221,10 +206,11 @@ export class StreamingHash {
|
|
|
221
206
|
}
|
|
222
207
|
|
|
223
208
|
export type ShortHash = `shortHash_z${string}`;
|
|
209
|
+
export const shortHashLength = 19;
|
|
224
210
|
|
|
225
211
|
export function shortHash(value: JsonValue): ShortHash {
|
|
226
212
|
return `shortHash_z${base58.encode(
|
|
227
|
-
blake3(textEncoder.encode(stableStringify(value))).slice(0,
|
|
213
|
+
blake3(textEncoder.encode(stableStringify(value))).slice(0, shortHashLength)
|
|
228
214
|
)}`;
|
|
229
215
|
}
|
|
230
216
|
|
|
@@ -274,7 +260,10 @@ export function encryptKeySecret(keys: {
|
|
|
274
260
|
}): {
|
|
275
261
|
encryptedID: KeyID;
|
|
276
262
|
encryptingID: KeyID;
|
|
277
|
-
encrypted: Encrypted<
|
|
263
|
+
encrypted: Encrypted<
|
|
264
|
+
KeySecret,
|
|
265
|
+
{ encryptedID: KeyID; encryptingID: KeyID }
|
|
266
|
+
>;
|
|
278
267
|
} {
|
|
279
268
|
const nOnceMaterial = {
|
|
280
269
|
encryptedID: keys.toEncrypt.id,
|
|
@@ -328,7 +317,10 @@ export function decryptKeySecret(
|
|
|
328
317
|
encryptedInfo: {
|
|
329
318
|
encryptedID: KeyID;
|
|
330
319
|
encryptingID: KeyID;
|
|
331
|
-
encrypted: Encrypted<
|
|
320
|
+
encrypted: Encrypted<
|
|
321
|
+
KeySecret,
|
|
322
|
+
{ encryptedID: KeyID; encryptingID: KeyID }
|
|
323
|
+
>;
|
|
332
324
|
},
|
|
333
325
|
sealingSecret: KeySecret
|
|
334
326
|
): KeySecret | undefined {
|
|
@@ -344,10 +336,35 @@ export function uniquenessForHeader(): `z${string}` {
|
|
|
344
336
|
return `z${base58.encode(randomBytes(12))}`;
|
|
345
337
|
}
|
|
346
338
|
|
|
347
|
-
export function createdNowUnique(): {
|
|
348
|
-
|
|
339
|
+
export function createdNowUnique(): {
|
|
340
|
+
createdAt: `2${string}`;
|
|
341
|
+
uniqueness: `z${string}`;
|
|
342
|
+
} {
|
|
343
|
+
const createdAt = new Date().toISOString() as `2${string}`;
|
|
349
344
|
return {
|
|
350
345
|
createdAt,
|
|
351
346
|
uniqueness: uniquenessForHeader(),
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
export const secretSeedLength = 32;
|
|
351
|
+
|
|
352
|
+
export function newRandomSecretSeed(): Uint8Array {
|
|
353
|
+
return randomBytes(secretSeedLength);
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
export function agentSecretFromSecretSeed(secretSeed: Uint8Array): AgentSecret {
|
|
357
|
+
if (secretSeed.length !== secretSeedLength) {
|
|
358
|
+
throw new Error(`Secret seed needs to be ${secretSeedLength} bytes long`);
|
|
352
359
|
}
|
|
353
|
-
|
|
360
|
+
|
|
361
|
+
return `sealerSecret_z${base58.encode(
|
|
362
|
+
blake3(secretSeed, {
|
|
363
|
+
context: textEncoder.encode("seal"),
|
|
364
|
+
})
|
|
365
|
+
)}/signerSecret_z${base58.encode(
|
|
366
|
+
blake3(secretSeed, {
|
|
367
|
+
context: textEncoder.encode("sign"),
|
|
368
|
+
})
|
|
369
|
+
)}`;
|
|
370
|
+
}
|
package/src/ids.ts
CHANGED
|
@@ -1,7 +1,20 @@
|
|
|
1
1
|
import { AccountIDOrAgentID } from './account.js';
|
|
2
|
+
import { base58 } from "@scure/base";
|
|
3
|
+
import { shortHashLength } from './crypto.js';
|
|
4
|
+
|
|
2
5
|
|
|
3
6
|
export type RawCoID = `co_z${string}`;
|
|
4
7
|
|
|
8
|
+
export function rawCoIDtoBytes(id: RawCoID): Uint8Array {
|
|
9
|
+
return base58.decode(
|
|
10
|
+
id.substring("co_z".length)
|
|
11
|
+
)
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function rawCoIDfromBytes(bytes: Uint8Array): RawCoID {
|
|
15
|
+
return `co_z${base58.encode(bytes.slice(0, shortHashLength))}` as RawCoID;
|
|
16
|
+
}
|
|
17
|
+
|
|
5
18
|
export type TransactionID = { sessionID: SessionID; txIndex: number };
|
|
6
19
|
|
|
7
20
|
export type AgentID = `sealer_z${string}/signer_z${string}`;
|
package/src/index.ts
CHANGED
|
@@ -6,15 +6,26 @@ import {
|
|
|
6
6
|
agentSecretToBytes,
|
|
7
7
|
getAgentID,
|
|
8
8
|
newRandomAgentSecret,
|
|
9
|
+
newRandomSecretSeed,
|
|
10
|
+
agentSecretFromSecretSeed,
|
|
11
|
+
secretSeedLength,
|
|
12
|
+
shortHashLength,
|
|
9
13
|
} from "./crypto.js";
|
|
10
14
|
import { connectedPeers } from "./streamUtils.js";
|
|
11
15
|
import { AnonymousControlledAccount, ControlledAccount } from "./account.js";
|
|
16
|
+
import { rawCoIDtoBytes, rawCoIDfromBytes } from "./ids.js";
|
|
12
17
|
|
|
13
18
|
import type { SessionID, AgentID } from "./ids.js";
|
|
14
19
|
import type { CoID, ContentType } from "./contentType.js";
|
|
15
20
|
import type { JsonValue } from "./jsonValue.js";
|
|
16
|
-
import type { SyncMessage } from "./sync.js";
|
|
21
|
+
import type { SyncMessage, Peer } from "./sync.js";
|
|
17
22
|
import type { AgentSecret } from "./crypto.js";
|
|
23
|
+
import type {
|
|
24
|
+
AccountID,
|
|
25
|
+
AccountContent,
|
|
26
|
+
ProfileContent,
|
|
27
|
+
Profile,
|
|
28
|
+
} from "./account.js";
|
|
18
29
|
|
|
19
30
|
type Value = JsonValue | ContentType;
|
|
20
31
|
|
|
@@ -25,13 +36,18 @@ export const cojsonInternals = {
|
|
|
25
36
|
newRandomAgentSecret,
|
|
26
37
|
connectedPeers,
|
|
27
38
|
getAgentID,
|
|
39
|
+
rawCoIDtoBytes,
|
|
40
|
+
rawCoIDfromBytes,
|
|
41
|
+
newRandomSecretSeed,
|
|
42
|
+
agentSecretFromSecretSeed,
|
|
43
|
+
secretSeedLength,
|
|
44
|
+
shortHashLength,
|
|
28
45
|
};
|
|
29
46
|
|
|
30
47
|
export {
|
|
31
48
|
LocalNode,
|
|
32
49
|
CoValue,
|
|
33
50
|
CoMap,
|
|
34
|
-
cojsonInternals as internals,
|
|
35
51
|
AnonymousControlledAccount,
|
|
36
52
|
ControlledAccount,
|
|
37
53
|
};
|
|
@@ -45,8 +61,14 @@ export type {
|
|
|
45
61
|
SessionID,
|
|
46
62
|
SyncMessage,
|
|
47
63
|
AgentID,
|
|
64
|
+
AccountID,
|
|
65
|
+
Peer,
|
|
66
|
+
AccountContent,
|
|
67
|
+
Profile,
|
|
68
|
+
ProfileContent,
|
|
48
69
|
};
|
|
49
70
|
|
|
71
|
+
// eslint-disable-next-line @typescript-eslint/no-namespace
|
|
50
72
|
export namespace CojsonInternalTypes {
|
|
51
73
|
export type CoValueKnownState = import("./sync.js").CoValueKnownState;
|
|
52
74
|
export type DoneMessage = import("./sync.js").DoneMessage;
|
|
@@ -57,4 +79,5 @@ export namespace CojsonInternalTypes {
|
|
|
57
79
|
export type Transaction = import("./coValue.js").Transaction;
|
|
58
80
|
export type Signature = import("./crypto.js").Signature;
|
|
59
81
|
export type RawCoID = import("./ids.js").RawCoID;
|
|
82
|
+
export type AccountIDOrAgentID = import("./account.js").AccountIDOrAgentID;
|
|
60
83
|
}
|
package/src/jsonValue.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RawCoID } from './ids.js';
|
|
2
2
|
|
|
3
3
|
export type JsonAtom = string | number | boolean | null;
|
|
4
|
-
export type JsonValue = JsonAtom | JsonArray | JsonObject |
|
|
4
|
+
export type JsonValue = JsonAtom | JsonArray | JsonObject | RawCoID;
|
|
5
5
|
export type JsonArray = JsonValue[];
|
|
6
6
|
export type JsonObject = { [key: string]: JsonValue; };
|
package/src/node.ts
CHANGED
|
@@ -43,7 +43,7 @@ export class LocalNode {
|
|
|
43
43
|
this.ownSessionID = ownSessionID;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
static withNewlyCreatedAccount(name: string): {
|
|
46
|
+
static withNewlyCreatedAccount(name: string, initialAgentSecret = newRandomAgentSecret()): {
|
|
47
47
|
node: LocalNode;
|
|
48
48
|
accountID: AccountID;
|
|
49
49
|
accountSecret: AgentSecret;
|
|
@@ -55,7 +55,7 @@ export class LocalNode {
|
|
|
55
55
|
newRandomSessionID(getAgentID(throwawayAgent))
|
|
56
56
|
);
|
|
57
57
|
|
|
58
|
-
const account = setupNode.createAccount(name);
|
|
58
|
+
const account = setupNode.createAccount(name, initialAgentSecret);
|
|
59
59
|
|
|
60
60
|
const nodeWithAccount = account.node.testWithDifferentAccount(
|
|
61
61
|
account,
|
|
@@ -157,9 +157,7 @@ export class LocalNode {
|
|
|
157
157
|
return this.expectCoValueLoaded(profileID, expectation).getCurrentContent() as Profile;
|
|
158
158
|
}
|
|
159
159
|
|
|
160
|
-
createAccount(name: string): ControlledAccount {
|
|
161
|
-
const agentSecret = newRandomAgentSecret();
|
|
162
|
-
|
|
160
|
+
createAccount(name: string, agentSecret = newRandomAgentSecret()): ControlledAccount {
|
|
163
161
|
const account = this.createCoValue(
|
|
164
162
|
accountHeaderForInitialAgentSecret(agentSecret)
|
|
165
163
|
).testWithDifferentAccount(
|