cojson 0.0.17 → 0.0.19
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 +29 -6
- package/dist/index.js +14 -4
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +2 -2
- package/dist/node.js +3 -4
- package/dist/node.js.map +1 -1
- package/dist/permissions.d.ts +1 -1
- package/dist/streamUtils.js +3 -3
- package/dist/streamUtils.js.map +1 -1
- package/package.json +2 -2
- package/src/crypto.ts +50 -33
- package/src/ids.ts +13 -0
- package/src/index.ts +57 -6
- package/src/node.ts +3 -5
- package/src/permissions.ts +1 -1
- package/src/streamUtils.ts +3 -3
- package/src/sync.ts +1 -1
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,19 +1,42 @@
|
|
|
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 } from "./crypto.js";
|
|
4
|
+
import { agentSecretFromBytes, agentSecretToBytes, getAgentID, newRandomAgentSecret, newRandomSecretSeed, agentSecretFromSecretSeed } from "./crypto.js";
|
|
5
5
|
import { connectedPeers } from "./streamUtils.js";
|
|
6
|
-
import
|
|
6
|
+
import { AnonymousControlledAccount, ControlledAccount } from "./account.js";
|
|
7
|
+
import { rawCoIDtoBytes, rawCoIDfromBytes } from "./ids.js";
|
|
8
|
+
import type { SessionID, AgentID } from "./ids.js";
|
|
7
9
|
import type { CoID, ContentType } from "./contentType.js";
|
|
8
10
|
import type { JsonValue } from "./jsonValue.js";
|
|
9
|
-
import type { SyncMessage } from "./sync.js";
|
|
11
|
+
import type { SyncMessage, Peer } from "./sync.js";
|
|
10
12
|
import type { AgentSecret } from "./crypto.js";
|
|
13
|
+
import type { AccountID, AccountContent, ProfileContent, Profile } from "./account.js";
|
|
11
14
|
type Value = JsonValue | ContentType;
|
|
12
|
-
declare const
|
|
15
|
+
export declare const cojsonInternals: {
|
|
13
16
|
agentSecretFromBytes: typeof agentSecretFromBytes;
|
|
14
17
|
agentSecretToBytes: typeof agentSecretToBytes;
|
|
15
18
|
newRandomSessionID: typeof newRandomSessionID;
|
|
19
|
+
newRandomAgentSecret: typeof newRandomAgentSecret;
|
|
16
20
|
connectedPeers: typeof connectedPeers;
|
|
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;
|
|
17
28
|
};
|
|
18
|
-
export { LocalNode, CoValue, CoMap,
|
|
19
|
-
export type { Value, JsonValue, ContentType, CoID, AgentSecret, SessionID, SyncMessage, };
|
|
29
|
+
export { LocalNode, CoValue, CoMap, AnonymousControlledAccount, ControlledAccount, };
|
|
30
|
+
export type { Value, JsonValue, ContentType, CoID, AgentSecret, SessionID, SyncMessage, AgentID, AccountID, Peer, AccountContent, Profile, ProfileContent, };
|
|
31
|
+
export declare namespace CojsonInternalTypes {
|
|
32
|
+
type CoValueKnownState = import("./sync.js").CoValueKnownState;
|
|
33
|
+
type DoneMessage = import("./sync.js").DoneMessage;
|
|
34
|
+
type KnownStateMessage = import("./sync.js").KnownStateMessage;
|
|
35
|
+
type LoadMessage = import("./sync.js").LoadMessage;
|
|
36
|
+
type NewContentMessage = import("./sync.js").NewContentMessage;
|
|
37
|
+
type CoValueHeader = import("./coValue.js").CoValueHeader;
|
|
38
|
+
type Transaction = import("./coValue.js").Transaction;
|
|
39
|
+
type Signature = import("./crypto.js").Signature;
|
|
40
|
+
type RawCoID = import("./ids.js").RawCoID;
|
|
41
|
+
type AccountIDOrAgentID = import("./account.js").AccountIDOrAgentID;
|
|
42
|
+
}
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,23 @@
|
|
|
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 } 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";
|
|
8
|
+
export const cojsonInternals = {
|
|
7
9
|
agentSecretFromBytes,
|
|
8
10
|
agentSecretToBytes,
|
|
9
11
|
newRandomSessionID,
|
|
10
|
-
|
|
12
|
+
newRandomAgentSecret,
|
|
13
|
+
connectedPeers,
|
|
14
|
+
getAgentID,
|
|
15
|
+
rawCoIDtoBytes,
|
|
16
|
+
rawCoIDfromBytes,
|
|
17
|
+
newRandomSecretSeed,
|
|
18
|
+
agentSecretFromSecretSeed,
|
|
19
|
+
secretSeedLength,
|
|
20
|
+
shortHashLength,
|
|
11
21
|
};
|
|
12
|
-
export { LocalNode, CoValue, CoMap,
|
|
22
|
+
export { LocalNode, CoValue, CoMap, AnonymousControlledAccount, ControlledAccount, };
|
|
13
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,
|
|
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/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/dist/permissions.d.ts
CHANGED
|
@@ -41,7 +41,7 @@ export declare class Team {
|
|
|
41
41
|
removeMember(accountID: AccountIDOrAgentID): void;
|
|
42
42
|
createMap<M extends {
|
|
43
43
|
[key: string]: JsonValue;
|
|
44
|
-
}, Meta extends JsonObject | null>(meta?: Meta): CoMap<M, Meta>;
|
|
44
|
+
}, Meta extends JsonObject | null = null>(meta?: Meta): CoMap<M, Meta>;
|
|
45
45
|
testWithDifferentAccount(account: GeneralizedControlledAccount, sessionId: SessionID): Team;
|
|
46
46
|
}
|
|
47
47
|
export declare function isKeyForKeyField(field: string): field is `${KeyID}_for_${KeyID}`;
|
package/dist/streamUtils.js
CHANGED
|
@@ -66,13 +66,13 @@ export function newStreamPair() {
|
|
|
66
66
|
}
|
|
67
67
|
throw new Error("Should only use one retry to get next item in queue.");
|
|
68
68
|
},
|
|
69
|
-
cancel(
|
|
69
|
+
cancel(_reason) {
|
|
70
70
|
console.log("Manually closing reader");
|
|
71
71
|
readerClosed = true;
|
|
72
72
|
},
|
|
73
73
|
});
|
|
74
74
|
const writable = new WritableStream({
|
|
75
|
-
write(chunk
|
|
75
|
+
write(chunk) {
|
|
76
76
|
if (readerClosed) {
|
|
77
77
|
console.log("Reader closed, not writing chunk", chunk);
|
|
78
78
|
throw new Error("Reader closed, not writing chunk");
|
|
@@ -83,7 +83,7 @@ export function newStreamPair() {
|
|
|
83
83
|
setTimeout(() => resolveNextItemReady());
|
|
84
84
|
}
|
|
85
85
|
},
|
|
86
|
-
abort(
|
|
86
|
+
abort(_reason) {
|
|
87
87
|
console.log("Manually closing writer");
|
|
88
88
|
writerClosed = true;
|
|
89
89
|
resolveNextItemReady();
|
package/dist/streamUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamUtils.js","sourceRoot":"","sources":["../src/streamUtils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"streamUtils.js","sourceRoot":"","sources":["../src/streamUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"types": "src/index.ts",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"license": "MIT",
|
|
8
|
-
"version": "0.0.
|
|
8
|
+
"version": "0.0.19",
|
|
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": "a2b9be9dd01ef45db40e0daeabb4a9bb0e031488"
|
|
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
|
@@ -1,25 +1,56 @@
|
|
|
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 {
|
|
4
|
+
import {
|
|
5
|
+
agentSecretFromBytes,
|
|
6
|
+
agentSecretToBytes,
|
|
7
|
+
getAgentID,
|
|
8
|
+
newRandomAgentSecret,
|
|
9
|
+
newRandomSecretSeed,
|
|
10
|
+
agentSecretFromSecretSeed,
|
|
11
|
+
secretSeedLength,
|
|
12
|
+
shortHashLength,
|
|
13
|
+
} from "./crypto.js";
|
|
5
14
|
import { connectedPeers } from "./streamUtils.js";
|
|
15
|
+
import { AnonymousControlledAccount, ControlledAccount } from "./account.js";
|
|
16
|
+
import { rawCoIDtoBytes, rawCoIDfromBytes } from "./ids.js";
|
|
6
17
|
|
|
7
|
-
import type { SessionID } from "./ids.js";
|
|
18
|
+
import type { SessionID, AgentID } from "./ids.js";
|
|
8
19
|
import type { CoID, ContentType } from "./contentType.js";
|
|
9
20
|
import type { JsonValue } from "./jsonValue.js";
|
|
10
|
-
import type { SyncMessage } from "./sync.js";
|
|
21
|
+
import type { SyncMessage, Peer } from "./sync.js";
|
|
11
22
|
import type { AgentSecret } from "./crypto.js";
|
|
23
|
+
import type {
|
|
24
|
+
AccountID,
|
|
25
|
+
AccountContent,
|
|
26
|
+
ProfileContent,
|
|
27
|
+
Profile,
|
|
28
|
+
} from "./account.js";
|
|
12
29
|
|
|
13
30
|
type Value = JsonValue | ContentType;
|
|
14
31
|
|
|
15
|
-
const
|
|
32
|
+
export const cojsonInternals = {
|
|
16
33
|
agentSecretFromBytes,
|
|
17
34
|
agentSecretToBytes,
|
|
18
35
|
newRandomSessionID,
|
|
19
|
-
|
|
36
|
+
newRandomAgentSecret,
|
|
37
|
+
connectedPeers,
|
|
38
|
+
getAgentID,
|
|
39
|
+
rawCoIDtoBytes,
|
|
40
|
+
rawCoIDfromBytes,
|
|
41
|
+
newRandomSecretSeed,
|
|
42
|
+
agentSecretFromSecretSeed,
|
|
43
|
+
secretSeedLength,
|
|
44
|
+
shortHashLength,
|
|
20
45
|
};
|
|
21
46
|
|
|
22
|
-
export {
|
|
47
|
+
export {
|
|
48
|
+
LocalNode,
|
|
49
|
+
CoValue,
|
|
50
|
+
CoMap,
|
|
51
|
+
AnonymousControlledAccount,
|
|
52
|
+
ControlledAccount,
|
|
53
|
+
};
|
|
23
54
|
|
|
24
55
|
export type {
|
|
25
56
|
Value,
|
|
@@ -29,4 +60,24 @@ export type {
|
|
|
29
60
|
AgentSecret,
|
|
30
61
|
SessionID,
|
|
31
62
|
SyncMessage,
|
|
63
|
+
AgentID,
|
|
64
|
+
AccountID,
|
|
65
|
+
Peer,
|
|
66
|
+
AccountContent,
|
|
67
|
+
Profile,
|
|
68
|
+
ProfileContent,
|
|
32
69
|
};
|
|
70
|
+
|
|
71
|
+
// eslint-disable-next-line @typescript-eslint/no-namespace
|
|
72
|
+
export namespace CojsonInternalTypes {
|
|
73
|
+
export type CoValueKnownState = import("./sync.js").CoValueKnownState;
|
|
74
|
+
export type DoneMessage = import("./sync.js").DoneMessage;
|
|
75
|
+
export type KnownStateMessage = import("./sync.js").KnownStateMessage;
|
|
76
|
+
export type LoadMessage = import("./sync.js").LoadMessage;
|
|
77
|
+
export type NewContentMessage = import("./sync.js").NewContentMessage;
|
|
78
|
+
export type CoValueHeader = import("./coValue.js").CoValueHeader;
|
|
79
|
+
export type Transaction = import("./coValue.js").Transaction;
|
|
80
|
+
export type Signature = import("./crypto.js").Signature;
|
|
81
|
+
export type RawCoID = import("./ids.js").RawCoID;
|
|
82
|
+
export type AccountIDOrAgentID = import("./account.js").AccountIDOrAgentID;
|
|
83
|
+
}
|
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(
|
package/src/permissions.ts
CHANGED
|
@@ -352,7 +352,7 @@ export class Team {
|
|
|
352
352
|
this.rotateReadKey();
|
|
353
353
|
}
|
|
354
354
|
|
|
355
|
-
createMap<M extends { [key: string]: JsonValue }, Meta extends JsonObject | null>(
|
|
355
|
+
createMap<M extends { [key: string]: JsonValue }, Meta extends JsonObject | null = null>(
|
|
356
356
|
meta?: Meta
|
|
357
357
|
): CoMap<M, Meta> {
|
|
358
358
|
return this.node
|
package/src/streamUtils.ts
CHANGED
|
@@ -100,14 +100,14 @@ export function newStreamPair<T>(): [ReadableStream<T>, WritableStream<T>] {
|
|
|
100
100
|
);
|
|
101
101
|
},
|
|
102
102
|
|
|
103
|
-
cancel(
|
|
103
|
+
cancel(_reason) {
|
|
104
104
|
console.log("Manually closing reader");
|
|
105
105
|
readerClosed = true;
|
|
106
106
|
},
|
|
107
107
|
});
|
|
108
108
|
|
|
109
109
|
const writable = new WritableStream<T>({
|
|
110
|
-
write(chunk
|
|
110
|
+
write(chunk) {
|
|
111
111
|
if (readerClosed) {
|
|
112
112
|
console.log("Reader closed, not writing chunk", chunk);
|
|
113
113
|
throw new Error("Reader closed, not writing chunk");
|
|
@@ -118,7 +118,7 @@ export function newStreamPair<T>(): [ReadableStream<T>, WritableStream<T>] {
|
|
|
118
118
|
setTimeout(() => resolveNextItemReady());
|
|
119
119
|
}
|
|
120
120
|
},
|
|
121
|
-
abort(
|
|
121
|
+
abort(_reason) {
|
|
122
122
|
console.log("Manually closing writer");
|
|
123
123
|
writerClosed = true;
|
|
124
124
|
resolveNextItemReady();
|
package/src/sync.ts
CHANGED