cojson 0.0.11 → 0.0.12

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.
Files changed (75) hide show
  1. package/README.md +2 -2
  2. package/dist/account.d.ts +57 -0
  3. package/dist/account.js +76 -0
  4. package/dist/account.js.map +1 -0
  5. package/dist/account.test.d.ts +1 -0
  6. package/dist/account.test.js +40 -0
  7. package/dist/account.test.js.map +1 -0
  8. package/dist/coValue.d.ts +16 -35
  9. package/dist/coValue.js +49 -112
  10. package/dist/coValue.js.map +1 -1
  11. package/dist/coValue.test.js +16 -16
  12. package/dist/coValue.test.js.map +1 -1
  13. package/dist/contentType.d.ts +9 -9
  14. package/dist/contentType.js.map +1 -1
  15. package/dist/contentType.test.js +13 -17
  16. package/dist/contentType.test.js.map +1 -1
  17. package/dist/contentTypes/coList.d.ts +3 -3
  18. package/dist/contentTypes/coList.js.map +1 -1
  19. package/dist/contentTypes/coMap.d.ts +31 -21
  20. package/dist/contentTypes/coMap.js +28 -0
  21. package/dist/contentTypes/coMap.js.map +1 -1
  22. package/dist/contentTypes/coStream.d.ts +3 -3
  23. package/dist/contentTypes/coStream.js.map +1 -1
  24. package/dist/contentTypes/static.d.ts +4 -4
  25. package/dist/contentTypes/static.js.map +1 -1
  26. package/dist/crypto.d.ts +45 -39
  27. package/dist/crypto.js +68 -49
  28. package/dist/crypto.js.map +1 -1
  29. package/dist/crypto.test.js +45 -49
  30. package/dist/crypto.test.js.map +1 -1
  31. package/dist/ids.d.ts +5 -3
  32. package/dist/ids.js +3 -1
  33. package/dist/ids.js.map +1 -1
  34. package/dist/index.d.ts +12 -14
  35. package/dist/index.js +6 -8
  36. package/dist/index.js.map +1 -1
  37. package/dist/jsonValue.d.ts +2 -2
  38. package/dist/node.d.ts +25 -15
  39. package/dist/node.js +88 -33
  40. package/dist/node.js.map +1 -1
  41. package/dist/permissions.d.ts +27 -33
  42. package/dist/permissions.js +55 -47
  43. package/dist/permissions.js.map +1 -1
  44. package/dist/permissions.test.js +231 -314
  45. package/dist/permissions.test.js.map +1 -1
  46. package/dist/sync.d.ts +26 -28
  47. package/dist/sync.js +67 -63
  48. package/dist/sync.js.map +1 -1
  49. package/dist/sync.test.js +181 -298
  50. package/dist/sync.test.js.map +1 -1
  51. package/dist/testUtils.d.ts +37 -0
  52. package/dist/testUtils.js +157 -0
  53. package/dist/testUtils.js.map +1 -0
  54. package/package.json +1 -1
  55. package/src/account.test.ts +67 -0
  56. package/src/account.ts +152 -0
  57. package/src/coValue.test.ts +17 -31
  58. package/src/coValue.ts +93 -179
  59. package/src/contentType.test.ts +18 -45
  60. package/src/contentType.ts +15 -13
  61. package/src/contentTypes/coList.ts +4 -4
  62. package/src/contentTypes/coMap.ts +55 -29
  63. package/src/contentTypes/coStream.ts +4 -4
  64. package/src/contentTypes/static.ts +5 -5
  65. package/src/crypto.test.ts +53 -59
  66. package/src/crypto.ts +123 -95
  67. package/src/ids.ts +9 -3
  68. package/src/index.ts +14 -25
  69. package/src/jsonValue.ts +2 -2
  70. package/src/node.ts +189 -61
  71. package/src/permissions.test.ts +370 -404
  72. package/src/permissions.ts +126 -109
  73. package/src/sync.test.ts +258 -432
  74. package/src/sync.ts +95 -98
  75. package/src/testUtils.ts +229 -0
package/dist/crypto.js CHANGED
@@ -6,64 +6,83 @@ import { blake3 } from "@noble/hashes/blake3";
6
6
  import { randomBytes } from "@noble/ciphers/webcrypto/utils";
7
7
  const textEncoder = new TextEncoder();
8
8
  const textDecoder = new TextDecoder();
9
- export function newRandomSignatory() {
10
- return `signatorySecret_z${base58.encode(ed25519.utils.randomPrivateKey())}`;
9
+ export function newRandomSigner() {
10
+ return `signerSecret_z${base58.encode(ed25519.utils.randomPrivateKey())}`;
11
11
  }
12
- export function signatorySecretToBytes(secret) {
13
- return base58.decode(secret.substring("signatorySecret_z".length));
12
+ export function signerSecretToBytes(secret) {
13
+ return base58.decode(secret.substring("signerSecret_z".length));
14
14
  }
15
- export function signatorySecretFromBytes(bytes) {
16
- return `signatorySecret_z${base58.encode(bytes)}`;
15
+ export function signerSecretFromBytes(bytes) {
16
+ return `signerSecret_z${base58.encode(bytes)}`;
17
17
  }
18
- export function getSignatoryID(secret) {
19
- return `signatory_z${base58.encode(ed25519.getPublicKey(base58.decode(secret.substring("signatorySecret_z".length))))}`;
18
+ export function getSignerID(secret) {
19
+ return `signer_z${base58.encode(ed25519.getPublicKey(base58.decode(secret.substring("signerSecret_z".length))))}`;
20
20
  }
21
21
  export function sign(secret, message) {
22
- const signature = ed25519.sign(textEncoder.encode(stableStringify(message)), base58.decode(secret.substring("signatorySecret_z".length)));
22
+ const signature = ed25519.sign(textEncoder.encode(stableStringify(message)), base58.decode(secret.substring("signerSecret_z".length)));
23
23
  return `signature_z${base58.encode(signature)}`;
24
24
  }
25
25
  export function verify(signature, message, id) {
26
- return ed25519.verify(base58.decode(signature.substring("signature_z".length)), textEncoder.encode(stableStringify(message)), base58.decode(id.substring("signatory_z".length)));
26
+ return ed25519.verify(base58.decode(signature.substring("signature_z".length)), textEncoder.encode(stableStringify(message)), base58.decode(id.substring("signer_z".length)));
27
27
  }
28
- export function newRandomRecipient() {
29
- return `recipientSecret_z${base58.encode(x25519.utils.randomPrivateKey())}`;
28
+ export function newRandomSealer() {
29
+ return `sealerSecret_z${base58.encode(x25519.utils.randomPrivateKey())}`;
30
30
  }
31
- export function recipientSecretToBytes(secret) {
32
- return base58.decode(secret.substring("recipientSecret_z".length));
31
+ export function sealerSecretToBytes(secret) {
32
+ return base58.decode(secret.substring("sealerSecret_z".length));
33
33
  }
34
- export function recipientSecretFromBytes(bytes) {
35
- return `recipientSecret_z${base58.encode(bytes)}`;
34
+ export function sealerSecretFromBytes(bytes) {
35
+ return `sealerSecret_z${base58.encode(bytes)}`;
36
36
  }
37
- export function getRecipientID(secret) {
38
- return `recipient_z${base58.encode(x25519.getPublicKey(base58.decode(secret.substring("recipientSecret_z".length))))}`;
37
+ export function getSealerID(secret) {
38
+ return `sealer_z${base58.encode(x25519.getPublicKey(base58.decode(secret.substring("sealerSecret_z".length))))}`;
39
+ }
40
+ export function newRandomAgentSecret() {
41
+ return `${newRandomSealer()}/${newRandomSigner()}`;
42
+ }
43
+ export function agentSecretToBytes(secret) {
44
+ const [sealerSecret, signerSecret] = secret.split("/");
45
+ return new Uint8Array([
46
+ ...sealerSecretToBytes(sealerSecret),
47
+ ...signerSecretToBytes(signerSecret),
48
+ ]);
49
+ }
50
+ export function agentSecretFromBytes(bytes) {
51
+ const sealerSecret = sealerSecretFromBytes(bytes.slice(0, 32));
52
+ const signerSecret = signerSecretFromBytes(bytes.slice(32));
53
+ return `${sealerSecret}/${signerSecret}`;
54
+ }
55
+ export function getAgentID(secret) {
56
+ const [sealerSecret, signerSecret] = secret.split("/");
57
+ return `${getSealerID(sealerSecret)}/${getSignerID(signerSecret)}`;
58
+ }
59
+ export function getAgentSignerID(agentId) {
60
+ return agentId.split("/")[1];
61
+ }
62
+ export function getAgentSignerSecret(agentSecret) {
63
+ return agentSecret.split("/")[1];
64
+ }
65
+ export function getAgentSealerID(agentId) {
66
+ return agentId.split("/")[0];
67
+ }
68
+ export function getAgentSealerSecret(agentSecret) {
69
+ return agentSecret.split("/")[0];
39
70
  }
40
71
  export function seal(message, from, to, nOnceMaterial) {
41
72
  const nOnce = blake3(textEncoder.encode(stableStringify(nOnceMaterial))).slice(0, 24);
42
- const recipientsSorted = Array.from(to).sort();
43
- const recipientPubs = recipientsSorted.map((recipient) => {
44
- return base58.decode(recipient.substring("recipient_z".length));
45
- });
46
- const senderPriv = base58.decode(from.substring("recipientSecret_z".length));
73
+ const sealerPub = base58.decode(to.substring("sealer_z".length));
74
+ const senderPriv = base58.decode(from.substring("sealerSecret_z".length));
47
75
  const plaintext = textEncoder.encode(stableStringify(message));
48
- const sealedSet = {};
49
- for (let i = 0; i < recipientsSorted.length; i++) {
50
- const recipient = recipientsSorted[i];
51
- const sharedSecret = x25519.getSharedSecret(senderPriv, recipientPubs[i]);
52
- const sealedBytes = xsalsa20_poly1305(sharedSecret, nOnce).encrypt(plaintext);
53
- sealedSet[recipient] = `sealed_U${base64url.encode(sealedBytes)}`;
54
- }
55
- return sealedSet;
76
+ const sharedSecret = x25519.getSharedSecret(senderPriv, sealerPub);
77
+ const sealedBytes = xsalsa20_poly1305(sharedSecret, nOnce).encrypt(plaintext);
78
+ return `sealed_U${base64url.encode(sealedBytes)}`;
56
79
  }
57
- export function openAs(sealedSet, recipient, from, nOnceMaterial) {
80
+ export function unseal(sealed, sealer, from, nOnceMaterial) {
58
81
  const nOnce = blake3(textEncoder.encode(stableStringify(nOnceMaterial))).slice(0, 24);
59
- const recipientPriv = base58.decode(recipient.substring("recipientSecret_z".length));
60
- const senderPub = base58.decode(from.substring("recipient_z".length));
61
- const sealed = sealedSet[getRecipientID(recipient)];
62
- if (!sealed) {
63
- return undefined;
64
- }
82
+ const sealerPriv = base58.decode(sealer.substring("sealerSecret_z".length));
83
+ const senderPub = base58.decode(from.substring("sealer_z".length));
65
84
  const sealedBytes = base64url.decode(sealed.substring("sealed_U".length));
66
- const sharedSecret = x25519.getSharedSecret(recipientPriv, senderPub);
85
+ const sharedSecret = x25519.getSharedSecret(sealerPriv, senderPub);
67
86
  const plaintext = xsalsa20_poly1305(sharedSecret, nOnce).decrypt(sealedBytes);
68
87
  try {
69
88
  return JSON.parse(textDecoder.decode(plaintext));
@@ -110,15 +129,15 @@ function encrypt(value, keySecret, nOnceMaterial) {
110
129
  export function encryptForTransaction(value, keySecret, nOnceMaterial) {
111
130
  return encrypt(value, keySecret, nOnceMaterial);
112
131
  }
113
- export function sealKeySecret(keys) {
132
+ export function encryptKeySecret(keys) {
114
133
  const nOnceMaterial = {
115
- sealed: keys.toSeal.id,
116
- sealing: keys.sealing.id,
134
+ encryptedID: keys.toEncrypt.id,
135
+ encryptingID: keys.encrypting.id,
117
136
  };
118
137
  return {
119
- sealed: keys.toSeal.id,
120
- sealing: keys.sealing.id,
121
- encrypted: encrypt(keys.toSeal.secret, keys.sealing.secret, nOnceMaterial),
138
+ encryptedID: keys.toEncrypt.id,
139
+ encryptingID: keys.encrypting.id,
140
+ encrypted: encrypt(keys.toEncrypt.secret, keys.encrypting.secret, nOnceMaterial),
122
141
  };
123
142
  }
124
143
  function decrypt(encrypted, keySecret, nOnceMaterial) {
@@ -136,12 +155,12 @@ function decrypt(encrypted, keySecret, nOnceMaterial) {
136
155
  export function decryptForTransaction(encrypted, keySecret, nOnceMaterial) {
137
156
  return decrypt(encrypted, keySecret, nOnceMaterial);
138
157
  }
139
- export function unsealKeySecret(sealedInfo, sealingSecret) {
158
+ export function decryptKeySecret(encryptedInfo, sealingSecret) {
140
159
  const nOnceMaterial = {
141
- sealed: sealedInfo.sealed,
142
- sealing: sealedInfo.sealing,
160
+ encryptedID: encryptedInfo.encryptedID,
161
+ encryptingID: encryptedInfo.encryptingID,
143
162
  };
144
- return decrypt(sealedInfo.encrypted, sealingSecret, nOnceMaterial);
163
+ return decrypt(encryptedInfo.encrypted, sealingSecret, nOnceMaterial);
145
164
  }
146
165
  export function uniquenessForHeader() {
147
166
  return `z${base58.encode(randomBytes(12))}`;
@@ -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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"}
@@ -1,4 +1,4 @@
1
- import { getRecipientID, getSignatoryID, secureHash, newRandomRecipient, newRandomSignatory, seal, sign, openAs, verify, shortHash, newRandomKeySecret, encryptForTransaction, decryptForTransaction, sealKeySecret, unsealKeySecret, } from './crypto.js';
1
+ import { getSealerID, getSignerID, secureHash, newRandomSealer, newRandomSigner, seal, sign, unseal, verify, shortHash, newRandomKeySecret, encryptForTransaction, decryptForTransaction, encryptKeySecret, decryptKeySecret, } from './crypto.js';
2
2
  import { base58, base64url } from "@scure/base";
3
3
  import { x25519 } from "@noble/curves/ed25519";
4
4
  import { xsalsa20_poly1305 } from "@noble/ciphers/salsa";
@@ -6,40 +6,36 @@ import { blake3 } from "@noble/hashes/blake3";
6
6
  import stableStringify from "fast-json-stable-stringify";
7
7
  test("Signatures round-trip and use stable stringify", () => {
8
8
  const data = { b: "world", a: "hello" };
9
- const signatory = newRandomSignatory();
10
- const signature = sign(signatory, data);
9
+ const signer = newRandomSigner();
10
+ const signature = sign(signer, data);
11
11
  expect(signature).toMatch(/^signature_z/);
12
- expect(verify(signature, { a: "hello", b: "world" }, getSignatoryID(signatory))).toBe(true);
12
+ expect(verify(signature, { a: "hello", b: "world" }, getSignerID(signer))).toBe(true);
13
13
  });
14
14
  test("Invalid signatures don't verify", () => {
15
15
  const data = { b: "world", a: "hello" };
16
- const signatory = newRandomSignatory();
17
- const signatory2 = newRandomSignatory();
18
- const wrongSignature = sign(signatory2, data);
19
- expect(verify(wrongSignature, data, getSignatoryID(signatory))).toBe(false);
16
+ const signer = newRandomSigner();
17
+ const signer2 = newRandomSigner();
18
+ const wrongSignature = sign(signer2, data);
19
+ expect(verify(wrongSignature, data, getSignerID(signer))).toBe(false);
20
20
  });
21
- test("Sealing round-trips, but invalid receiver can't unseal", () => {
21
+ test("encrypting round-trips, but invalid receiver can't unseal", () => {
22
22
  const data = { b: "world", a: "hello" };
23
- const sender = newRandomRecipient();
24
- const recipient1 = newRandomRecipient();
25
- const recipient2 = newRandomRecipient();
26
- const recipient3 = newRandomRecipient();
23
+ const sender = newRandomSealer();
24
+ const sealer = newRandomSealer();
25
+ const wrongSealer = newRandomSealer();
27
26
  const nOnceMaterial = {
28
27
  in: "co_zTEST",
29
- tx: { sessionID: "co_agent_zTEST_session_zTEST", txIndex: 0 },
28
+ tx: { sessionID: "co_zTEST_session_zTEST", txIndex: 0 },
30
29
  };
31
- const sealed = seal(data, sender, new Set([getRecipientID(recipient1), getRecipientID(recipient2)]), nOnceMaterial);
32
- expect(sealed[getRecipientID(recipient1)]).toMatch(/^sealed_U/);
33
- expect(sealed[getRecipientID(recipient2)]).toMatch(/^sealed_U/);
34
- expect(openAs(sealed, recipient1, getRecipientID(sender), nOnceMaterial)).toEqual(data);
35
- expect(openAs(sealed, recipient2, getRecipientID(sender), nOnceMaterial)).toEqual(data);
36
- expect(openAs(sealed, recipient3, getRecipientID(sender), nOnceMaterial)).toBeUndefined();
37
- // trying with wrong recipient secret, by hand
30
+ const sealed = seal(data, sender, getSealerID(sealer), nOnceMaterial);
31
+ expect(unseal(sealed, sealer, getSealerID(sender), nOnceMaterial)).toEqual(data);
32
+ expect(() => unseal(sealed, wrongSealer, getSealerID(sender), nOnceMaterial)).toThrow(/Wrong tag/);
33
+ // trying with wrong sealer secret, by hand
38
34
  const nOnce = blake3(new TextEncoder().encode(stableStringify(nOnceMaterial))).slice(0, 24);
39
- const recipient3priv = base58.decode(recipient3.substring("recipientSecret_z".length));
40
- const senderPub = base58.decode(getRecipientID(sender).substring("recipient_z".length));
41
- const sealedBytes = base64url.decode(sealed[getRecipientID(recipient1)].substring("sealed_U".length));
42
- const sharedSecret = x25519.getSharedSecret(recipient3priv, senderPub);
35
+ const sealer3priv = base58.decode(wrongSealer.substring("sealerSecret_z".length));
36
+ const senderPub = base58.decode(getSealerID(sender).substring("sealer_z".length));
37
+ const sealedBytes = base64url.decode(sealed.substring("sealed_U".length));
38
+ const sharedSecret = x25519.getSharedSecret(sealer3priv, senderPub);
43
39
  expect(() => {
44
40
  const _ = xsalsa20_poly1305(sharedSecret, nOnce).decrypt(sealedBytes);
45
41
  }).toThrow("Wrong tag");
@@ -52,19 +48,19 @@ test("Encryption for transactions round-trips", () => {
52
48
  const { secret } = newRandomKeySecret();
53
49
  const encrypted1 = encryptForTransaction({ a: "hello" }, secret, {
54
50
  in: "co_zTEST",
55
- tx: { sessionID: "co_agent_zTEST_session_zTEST", txIndex: 0 },
51
+ tx: { sessionID: "co_zTEST_session_zTEST", txIndex: 0 },
56
52
  });
57
53
  const encrypted2 = encryptForTransaction({ b: "world" }, secret, {
58
54
  in: "co_zTEST",
59
- tx: { sessionID: "co_agent_zTEST_session_zTEST", txIndex: 1 },
55
+ tx: { sessionID: "co_zTEST_session_zTEST", txIndex: 1 },
60
56
  });
61
57
  const decrypted1 = decryptForTransaction(encrypted1, secret, {
62
58
  in: "co_zTEST",
63
- tx: { sessionID: "co_agent_zTEST_session_zTEST", txIndex: 0 },
59
+ tx: { sessionID: "co_zTEST_session_zTEST", txIndex: 0 },
64
60
  });
65
61
  const decrypted2 = decryptForTransaction(encrypted2, secret, {
66
62
  in: "co_zTEST",
67
- tx: { sessionID: "co_agent_zTEST_session_zTEST", txIndex: 1 },
63
+ tx: { sessionID: "co_zTEST_session_zTEST", txIndex: 1 },
68
64
  });
69
65
  expect([decrypted1, decrypted2]).toEqual([{ a: "hello" }, { b: "world" }]);
70
66
  });
@@ -73,43 +69,43 @@ test("Encryption for transactions doesn't decrypt with a wrong key", () => {
73
69
  const { secret: secret2 } = newRandomKeySecret();
74
70
  const encrypted1 = encryptForTransaction({ a: "hello" }, secret, {
75
71
  in: "co_zTEST",
76
- tx: { sessionID: "co_agent_zTEST_session_zTEST", txIndex: 0 },
72
+ tx: { sessionID: "co_zTEST_session_zTEST", txIndex: 0 },
77
73
  });
78
74
  const encrypted2 = encryptForTransaction({ b: "world" }, secret, {
79
75
  in: "co_zTEST",
80
- tx: { sessionID: "co_agent_zTEST_session_zTEST", txIndex: 1 },
76
+ tx: { sessionID: "co_zTEST_session_zTEST", txIndex: 1 },
81
77
  });
82
78
  const decrypted1 = decryptForTransaction(encrypted1, secret2, {
83
79
  in: "co_zTEST",
84
- tx: { sessionID: "co_agent_zTEST_session_zTEST", txIndex: 0 },
80
+ tx: { sessionID: "co_zTEST_session_zTEST", txIndex: 0 },
85
81
  });
86
82
  const decrypted2 = decryptForTransaction(encrypted2, secret2, {
87
83
  in: "co_zTEST",
88
- tx: { sessionID: "co_agent_zTEST_session_zTEST", txIndex: 1 },
84
+ tx: { sessionID: "co_zTEST_session_zTEST", txIndex: 1 },
89
85
  });
90
86
  expect([decrypted1, decrypted2]).toEqual([undefined, undefined]);
91
87
  });
92
88
  test("Encryption of keySecrets round-trips", () => {
93
- const toSeal = newRandomKeySecret();
94
- const sealing = newRandomKeySecret();
89
+ const toEncrypt = newRandomKeySecret();
90
+ const encrypting = newRandomKeySecret();
95
91
  const keys = {
96
- toSeal,
97
- sealing,
92
+ toEncrypt,
93
+ encrypting,
98
94
  };
99
- const sealed = sealKeySecret(keys);
100
- const unsealed = unsealKeySecret(sealed, sealing.secret);
101
- expect(unsealed).toEqual(toSeal.secret);
95
+ const encrypted = encryptKeySecret(keys);
96
+ const decrypted = decryptKeySecret(encrypted, encrypting.secret);
97
+ expect(decrypted).toEqual(toEncrypt.secret);
102
98
  });
103
- test("Encryption of keySecrets doesn't unseal with a wrong key", () => {
104
- const toSeal = newRandomKeySecret();
105
- const sealing = newRandomKeySecret();
106
- const sealingWrong = newRandomKeySecret();
99
+ test("Encryption of keySecrets doesn't decrypt with a wrong key", () => {
100
+ const toEncrypt = newRandomKeySecret();
101
+ const encrypting = newRandomKeySecret();
102
+ const encryptingWrong = newRandomKeySecret();
107
103
  const keys = {
108
- toSeal,
109
- sealing,
104
+ toEncrypt,
105
+ encrypting,
110
106
  };
111
- const sealed = sealKeySecret(keys);
112
- const unsealed = unsealKeySecret(sealed, sealingWrong.secret);
113
- expect(unsealed).toBeUndefined();
107
+ const encrypted = encryptKeySecret(keys);
108
+ const decrypted = decryptKeySecret(encrypted, encryptingWrong.secret);
109
+ expect(decrypted).toBeUndefined();
114
110
  });
115
111
  //# sourceMappingURL=crypto.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.test.js","sourceRoot":"","sources":["../src/crypto.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crypto.test.js","sourceRoot":"","sources":["../src/crypto.test.ts"],"names":[],"mappings":"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"}
package/dist/ids.d.ts CHANGED
@@ -1,7 +1,9 @@
1
- export type RawCoValueID = `co_z${string}` | `co_${string}_z${string}`;
1
+ import { AccountIDOrAgentID } from './account.js';
2
+ export type RawCoID = `co_z${string}`;
2
3
  export type TransactionID = {
3
4
  sessionID: SessionID;
4
5
  txIndex: number;
5
6
  };
6
- export type AgentID = `co_agent${string}_z${string}`;
7
- export type SessionID = `${AgentID}_session_z${string}`;
7
+ export type AgentID = `sealer_z${string}/signer_z${string}`;
8
+ export declare function isAgentID(id: string): id is AgentID;
9
+ export type SessionID = `${AccountIDOrAgentID}_session_z${string}`;
package/dist/ids.js CHANGED
@@ -1,2 +1,4 @@
1
- export {};
1
+ export function isAgentID(id) {
2
+ return typeof id === "string" && id.startsWith("sealer_") && id.includes("/signer_");
3
+ }
2
4
  //# sourceMappingURL=ids.js.map
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":"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"}
package/dist/index.d.ts CHANGED
@@ -1,19 +1,17 @@
1
- import { CoValue, agentCredentialFromBytes, agentCredentialToBytes, getAgent, getAgentID, newRandomAgentCredential, newRandomSessionID } from './coValue.js';
2
- import { LocalNode } from './node.js';
3
- import { CoMap } from './contentTypes/coMap.js';
4
- import type { AgentCredential } from './coValue.js';
5
- import type { AgentID, SessionID } from './ids.js';
6
- import type { CoValueID, ContentType } from './contentType.js';
7
- import type { JsonValue } from './jsonValue.js';
8
- import type { SyncMessage } from './sync.js';
1
+ import { CoValue, newRandomSessionID } from "./coValue.js";
2
+ import { LocalNode } from "./node.js";
3
+ import { CoMap } from "./contentTypes/coMap.js";
4
+ import { agentSecretFromBytes, agentSecretToBytes } from "./crypto.js";
5
+ import type { SessionID } from "./ids.js";
6
+ import type { CoID, ContentType } from "./contentType.js";
7
+ import type { JsonValue } from "./jsonValue.js";
8
+ import type { SyncMessage } from "./sync.js";
9
+ import type { AgentSecret } from "./crypto.js";
9
10
  type Value = JsonValue | ContentType;
10
11
  declare const internals: {
11
- agentCredentialToBytes: typeof agentCredentialToBytes;
12
- agentCredentialFromBytes: typeof agentCredentialFromBytes;
13
- getAgent: typeof getAgent;
14
- getAgentID: typeof getAgentID;
15
- newRandomAgentCredential: typeof newRandomAgentCredential;
12
+ agentSecretFromBytes: typeof agentSecretFromBytes;
13
+ agentSecretToBytes: typeof agentSecretToBytes;
16
14
  newRandomSessionID: typeof newRandomSessionID;
17
15
  };
18
16
  export { LocalNode, CoValue, CoMap, internals };
19
- export type { Value, JsonValue, ContentType, CoValueID, AgentCredential, SessionID, AgentID, SyncMessage };
17
+ export type { Value, JsonValue, ContentType, CoID, AgentSecret, SessionID, SyncMessage, };
package/dist/index.js CHANGED
@@ -1,12 +1,10 @@
1
- import { CoValue, agentCredentialFromBytes, agentCredentialToBytes, getAgent, getAgentID, newRandomAgentCredential, newRandomSessionID, } from './coValue.js';
2
- import { LocalNode } from './node.js';
3
- import { CoMap } from './contentTypes/coMap.js';
1
+ import { CoValue, newRandomSessionID } from "./coValue.js";
2
+ import { LocalNode } from "./node.js";
3
+ import { CoMap } from "./contentTypes/coMap.js";
4
+ import { agentSecretFromBytes, agentSecretToBytes } from "./crypto.js";
4
5
  const internals = {
5
- agentCredentialToBytes,
6
- agentCredentialFromBytes,
7
- getAgent,
8
- getAgentID,
9
- newRandomAgentCredential,
6
+ agentSecretFromBytes,
7
+ agentSecretToBytes,
10
8
  newRandomSessionID,
11
9
  };
12
10
  export { LocalNode, CoValue, CoMap, internals };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EACP,wBAAwB,EACxB,sBAAsB,EACtB,QAAQ,EACR,UAAU,EACV,wBAAwB,EACxB,kBAAkB,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAUhD,MAAM,SAAS,GAAG;IACd,sBAAsB;IACtB,wBAAwB;IACxB,QAAQ;IACR,UAAU;IACV,wBAAwB;IACxB,kBAAkB;CACrB,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,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,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAUvE,MAAM,SAAS,GAAG;IACd,oBAAoB;IACpB,kBAAkB;IAClB,kBAAkB;CACrB,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC"}
@@ -1,6 +1,6 @@
1
- import { CoValueID, ContentType } from './contentType.js';
1
+ import { CoID, ContentType } from './contentType.js';
2
2
  export type JsonAtom = string | number | boolean | null;
3
- export type JsonValue = JsonAtom | JsonArray | JsonObject | CoValueID<ContentType>;
3
+ export type JsonValue = JsonAtom | JsonArray | JsonObject | CoID<ContentType>;
4
4
  export type JsonArray = JsonValue[];
5
5
  export type JsonObject = {
6
6
  [key: string]: JsonValue;
package/dist/node.d.ts CHANGED
@@ -1,25 +1,35 @@
1
- import { CoValue, AgentCredential, Agent, CoValueHeader } from './coValue.js';
2
- import { Team } from './permissions.js';
3
- import { SyncManager } from './sync.js';
4
- import { AgentID, RawCoValueID, SessionID } from './ids.js';
5
- import { CoValueID, ContentType } from './contentType.js';
1
+ import { AgentSecret } from "./crypto.js";
2
+ import { CoValue, CoValueHeader } from "./coValue.js";
3
+ import { Team } from "./permissions.js";
4
+ import { Peer, SyncManager } from "./sync.js";
5
+ import { AgentID, RawCoID, SessionID } from "./ids.js";
6
+ import { CoID, ContentType } from "./contentType.js";
7
+ import { AccountIDOrAgentID, GeneralizedControlledAccount, ControlledAccount, AccountID, Profile } from "./account.js";
6
8
  export declare class LocalNode {
7
9
  coValues: {
8
- [key: RawCoValueID]: CoValueState;
10
+ [key: RawCoID]: CoValueState;
9
11
  };
10
- agentCredential: AgentCredential;
11
- agentID: AgentID;
12
+ account: GeneralizedControlledAccount;
12
13
  ownSessionID: SessionID;
13
14
  sync: SyncManager;
14
- constructor(agentCredential: AgentCredential, ownSessionID: SessionID);
15
+ constructor(account: GeneralizedControlledAccount, ownSessionID: SessionID);
16
+ static withNewlyCreatedAccount(name: string): {
17
+ node: LocalNode;
18
+ accountID: AccountID;
19
+ accountSecret: AgentSecret;
20
+ sessionID: SessionID;
21
+ };
22
+ static withLoadedAccount(accountID: AccountID, accountSecret: AgentSecret, sessionID: SessionID, peersToLoadFrom: Peer[]): Promise<LocalNode>;
15
23
  createCoValue(header: CoValueHeader): CoValue;
16
- loadCoValue(id: RawCoValueID): Promise<CoValue>;
17
- load<T extends ContentType>(id: CoValueID<T>): Promise<T>;
18
- expectCoValueLoaded(id: RawCoValueID, expectation?: string): CoValue;
19
- createAgent(publicNickname: string): AgentCredential;
20
- expectAgentLoaded(id: AgentID, expectation?: string): Agent;
24
+ loadCoValue(id: RawCoID): Promise<CoValue>;
25
+ load<T extends ContentType>(id: CoID<T>): Promise<T>;
26
+ loadProfile(id: AccountID): Promise<Profile>;
27
+ expectCoValueLoaded(id: RawCoID, expectation?: string): CoValue;
28
+ expectProfileLoaded(id: AccountID, expectation?: string): Profile;
29
+ createAccount(name: string): ControlledAccount;
30
+ resolveAccountAgent(id: AccountIDOrAgentID, expectation?: string): AgentID;
21
31
  createTeam(): Team;
22
- testWithDifferentCredentials(agentCredential: AgentCredential, ownSessionID: SessionID): LocalNode;
32
+ testWithDifferentAccount(account: GeneralizedControlledAccount, ownSessionID: SessionID): LocalNode;
23
33
  }
24
34
  type CoValueState = {
25
35
  state: "loading";