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 CHANGED
@@ -1,6 +1,6 @@
1
- import { JsonValue } from './jsonValue.js';
1
+ import { JsonValue } from "./jsonValue.js";
2
2
  import { blake3 } from "@noble/hashes/blake3";
3
- import { AgentID, RawCoID, TransactionID } from './ids.js';
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, 19))}`;
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 = (new Date()).toISOString();
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
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"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"}
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":"AAQA,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"}
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, cojsonInternals as internals, AnonymousControlledAccount, ControlledAccount, };
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, cojsonInternals as internals, AnonymousControlledAccount, ControlledAccount, };
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,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAU7E,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,oBAAoB;IACpB,kBAAkB;IAClB,kBAAkB;IAClB,oBAAoB;IACpB,cAAc;IACd,UAAU;CACb,CAAC;AAEF,OAAO,EACH,SAAS,EACT,OAAO,EACP,KAAK,EACL,eAAe,IAAI,SAAS,EAC5B,0BAA0B,EAC1B,iBAAiB,GACpB,CAAC"}
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"}
@@ -1,6 +1,6 @@
1
- import { CoID, ContentType } from './contentType.js';
1
+ import { RawCoID } from './ids.js';
2
2
  export type JsonAtom = string | number | boolean | null;
3
- export type JsonValue = JsonAtom | JsonArray | JsonObject | CoID<ContentType>;
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":"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"}
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": "src/index.ts",
5
+ "types": "dist/index.d.ts",
6
6
  "type": "module",
7
7
  "license": "MIT",
8
- "version": "0.0.18",
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": "b9007dd1b5bb0ce2e7e0a437e008fc630dd7d60c"
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 './jsonValue.js';
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 './ids.js';
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
- bytes.slice(0, 32)
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
- sealerSecret as SealerSecret
111
- )}/${getSignerID(signerSecret as SignerSecret)}`;
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, 19)
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<KeySecret, { encryptedID: KeyID; encryptingID: KeyID }>;
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<KeySecret, { encryptedID: KeyID; encryptingID: KeyID }>;
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(): {createdAt: `2${string}`, uniqueness: `z${string}`} {
348
- const createdAt = (new Date()).toISOString() as `2${string}`;
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 { CoID, ContentType } from './contentType.js';
1
+ import { RawCoID } from './ids.js';
2
2
 
3
3
  export type JsonAtom = string | number | boolean | null;
4
- export type JsonValue = JsonAtom | JsonArray | JsonObject | CoID<ContentType>;
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(