cojson 0.0.10 → 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.
- package/README.md +2 -2
- package/dist/account.d.ts +57 -0
- package/dist/account.js +76 -0
- package/dist/account.js.map +1 -0
- package/dist/account.test.d.ts +1 -0
- package/dist/account.test.js +40 -0
- package/dist/account.test.js.map +1 -0
- package/dist/coValue.d.ts +16 -35
- package/dist/coValue.js +49 -112
- package/dist/coValue.js.map +1 -1
- package/dist/coValue.test.js +16 -16
- package/dist/coValue.test.js.map +1 -1
- package/dist/contentType.d.ts +9 -9
- package/dist/contentType.js.map +1 -1
- package/dist/contentType.test.js +13 -17
- package/dist/contentType.test.js.map +1 -1
- package/dist/contentTypes/coList.d.ts +3 -3
- package/dist/contentTypes/coList.js.map +1 -1
- package/dist/contentTypes/coMap.d.ts +31 -21
- package/dist/contentTypes/coMap.js +28 -0
- package/dist/contentTypes/coMap.js.map +1 -1
- package/dist/contentTypes/coStream.d.ts +3 -3
- package/dist/contentTypes/coStream.js.map +1 -1
- package/dist/contentTypes/static.d.ts +4 -4
- package/dist/contentTypes/static.js.map +1 -1
- package/dist/crypto.d.ts +45 -39
- package/dist/crypto.js +68 -49
- package/dist/crypto.js.map +1 -1
- package/dist/crypto.test.js +45 -49
- package/dist/crypto.test.js.map +1 -1
- package/dist/ids.d.ts +5 -3
- package/dist/ids.js +3 -1
- package/dist/ids.js.map +1 -1
- package/dist/index.d.ts +12 -14
- package/dist/index.js +6 -8
- package/dist/index.js.map +1 -1
- package/dist/jsonValue.d.ts +2 -2
- package/dist/node.d.ts +25 -15
- package/dist/node.js +88 -33
- package/dist/node.js.map +1 -1
- package/dist/permissions.d.ts +27 -33
- package/dist/permissions.js +55 -47
- package/dist/permissions.js.map +1 -1
- package/dist/permissions.test.js +231 -314
- package/dist/permissions.test.js.map +1 -1
- package/dist/sync.d.ts +26 -28
- package/dist/sync.js +81 -67
- package/dist/sync.js.map +1 -1
- package/dist/sync.test.js +194 -293
- package/dist/sync.test.js.map +1 -1
- package/dist/testUtils.d.ts +37 -0
- package/dist/testUtils.js +157 -0
- package/dist/testUtils.js.map +1 -0
- package/package.json +1 -1
- package/src/account.test.ts +67 -0
- package/src/account.ts +152 -0
- package/src/coValue.test.ts +17 -31
- package/src/coValue.ts +93 -179
- package/src/contentType.test.ts +18 -45
- package/src/contentType.ts +15 -13
- package/src/contentTypes/coList.ts +4 -4
- package/src/contentTypes/coMap.ts +55 -29
- package/src/contentTypes/coStream.ts +4 -4
- package/src/contentTypes/static.ts +5 -5
- package/src/crypto.test.ts +53 -59
- package/src/crypto.ts +123 -95
- package/src/ids.ts +9 -3
- package/src/index.ts +14 -25
- package/src/jsonValue.ts +2 -2
- package/src/node.ts +189 -61
- package/src/permissions.test.ts +370 -404
- package/src/permissions.ts +126 -109
- package/src/sync.test.ts +284 -426
- package/src/sync.ts +115 -105
- package/src/testUtils.ts +229 -0
package/dist/coValue.test.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { LocalNode } from "./node.js";
|
|
2
|
+
import { createdNowUnique, getAgentSignerSecret, newRandomAgentSecret, sign } from "./crypto.js";
|
|
3
|
+
import { randomAnonymousAccountAndSessionID } from "./testUtils.js";
|
|
4
4
|
test("Can create coValue with new agent credentials and add transaction to it", () => {
|
|
5
|
-
const
|
|
6
|
-
const node = new LocalNode(
|
|
5
|
+
const [account, sessionID] = randomAnonymousAccountAndSessionID();
|
|
6
|
+
const node = new LocalNode(account, sessionID);
|
|
7
7
|
const coValue = node.createCoValue({
|
|
8
8
|
type: "costream",
|
|
9
9
|
ruleset: { type: "unsafeAllowAll" },
|
|
10
10
|
meta: null,
|
|
11
|
-
...createdNowUnique()
|
|
11
|
+
...createdNowUnique(),
|
|
12
12
|
});
|
|
13
13
|
const transaction = {
|
|
14
14
|
privacy: "trusting",
|
|
@@ -20,17 +20,17 @@ test("Can create coValue with new agent credentials and add transaction to it",
|
|
|
20
20
|
],
|
|
21
21
|
};
|
|
22
22
|
const { expectedNewHash } = coValue.expectedNewHashAfter(node.ownSessionID, [transaction]);
|
|
23
|
-
expect(coValue.tryAddTransactions(node.ownSessionID, [transaction], expectedNewHash, sign(
|
|
23
|
+
expect(coValue.tryAddTransactions(node.ownSessionID, [transaction], expectedNewHash, sign(account.currentSignerSecret(), expectedNewHash))).toBe(true);
|
|
24
24
|
});
|
|
25
25
|
test("transactions with wrong signature are rejected", () => {
|
|
26
|
-
const wrongAgent =
|
|
27
|
-
const
|
|
28
|
-
const node = new LocalNode(
|
|
26
|
+
const wrongAgent = newRandomAgentSecret();
|
|
27
|
+
const [agentSecret, sessionID] = randomAnonymousAccountAndSessionID();
|
|
28
|
+
const node = new LocalNode(agentSecret, sessionID);
|
|
29
29
|
const coValue = node.createCoValue({
|
|
30
30
|
type: "costream",
|
|
31
31
|
ruleset: { type: "unsafeAllowAll" },
|
|
32
32
|
meta: null,
|
|
33
|
-
...createdNowUnique()
|
|
33
|
+
...createdNowUnique(),
|
|
34
34
|
});
|
|
35
35
|
const transaction = {
|
|
36
36
|
privacy: "trusting",
|
|
@@ -42,16 +42,16 @@ test("transactions with wrong signature are rejected", () => {
|
|
|
42
42
|
],
|
|
43
43
|
};
|
|
44
44
|
const { expectedNewHash } = coValue.expectedNewHashAfter(node.ownSessionID, [transaction]);
|
|
45
|
-
expect(coValue.tryAddTransactions(node.ownSessionID, [transaction], expectedNewHash, sign(wrongAgent
|
|
45
|
+
expect(coValue.tryAddTransactions(node.ownSessionID, [transaction], expectedNewHash, sign(getAgentSignerSecret(wrongAgent), expectedNewHash))).toBe(false);
|
|
46
46
|
});
|
|
47
47
|
test("transactions with correctly signed, but wrong hash are rejected", () => {
|
|
48
|
-
const
|
|
49
|
-
const node = new LocalNode(
|
|
48
|
+
const [account, sessionID] = randomAnonymousAccountAndSessionID();
|
|
49
|
+
const node = new LocalNode(account, sessionID);
|
|
50
50
|
const coValue = node.createCoValue({
|
|
51
51
|
type: "costream",
|
|
52
52
|
ruleset: { type: "unsafeAllowAll" },
|
|
53
53
|
meta: null,
|
|
54
|
-
...createdNowUnique()
|
|
54
|
+
...createdNowUnique(),
|
|
55
55
|
});
|
|
56
56
|
const transaction = {
|
|
57
57
|
privacy: "trusting",
|
|
@@ -73,6 +73,6 @@ test("transactions with correctly signed, but wrong hash are rejected", () => {
|
|
|
73
73
|
],
|
|
74
74
|
},
|
|
75
75
|
]);
|
|
76
|
-
expect(coValue.tryAddTransactions(node.ownSessionID, [transaction], expectedNewHash, sign(
|
|
76
|
+
expect(coValue.tryAddTransactions(node.ownSessionID, [transaction], expectedNewHash, sign(account.currentSignerSecret(), expectedNewHash))).toBe(false);
|
|
77
77
|
});
|
|
78
78
|
//# sourceMappingURL=coValue.test.js.map
|
package/dist/coValue.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coValue.test.js","sourceRoot":"","sources":["../src/coValue.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"coValue.test.js","sourceRoot":"","sources":["../src/coValue.test.ts"],"names":[],"mappings":"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"}
|
package/dist/contentType.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { JsonValue } from
|
|
2
|
-
import {
|
|
3
|
-
import { CoMap } from
|
|
4
|
-
import { CoStream } from
|
|
5
|
-
import { Static } from
|
|
6
|
-
import { CoList } from
|
|
7
|
-
export type
|
|
1
|
+
import { JsonObject, JsonValue } from "./jsonValue.js";
|
|
2
|
+
import { RawCoID } from "./ids.js";
|
|
3
|
+
import { CoMap } from "./contentTypes/coMap.js";
|
|
4
|
+
import { CoStream } from "./contentTypes/coStream.js";
|
|
5
|
+
import { Static } from "./contentTypes/static.js";
|
|
6
|
+
import { CoList } from "./contentTypes/coList.js";
|
|
7
|
+
export type CoID<T extends ContentType> = RawCoID & {
|
|
8
8
|
readonly __type: T;
|
|
9
9
|
};
|
|
10
10
|
export type ContentType = CoMap<{
|
|
11
11
|
[key: string]: JsonValue;
|
|
12
|
-
},
|
|
12
|
+
}, JsonObject | null> | CoList<JsonValue, JsonObject | null> | CoStream<JsonValue, JsonObject | null> | Static<JsonObject>;
|
|
13
13
|
export declare function expectMap(content: ContentType): CoMap<{
|
|
14
14
|
[key: string]: string;
|
|
15
|
-
},
|
|
15
|
+
}, JsonObject | null>;
|
package/dist/contentType.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contentType.js","sourceRoot":"","sources":["../src/contentType.ts"],"names":[],"mappings":"AAiBA,MAAM,UAAU,SAAS,
|
|
1
|
+
{"version":3,"file":"contentType.js","sourceRoot":"","sources":["../src/contentType.ts"],"names":[],"mappings":"AAiBA,MAAM,UAAU,SAAS,CACrB,OAAoB;IAEpB,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;KACnC;IAED,OAAO,OAA8D,CAAC;AAC1E,CAAC"}
|
package/dist/contentType.test.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { accountOrAgentIDfromSessionID } from "./coValue.js";
|
|
2
2
|
import { createdNowUnique } from "./crypto.js";
|
|
3
3
|
import { LocalNode } from "./node.js";
|
|
4
|
+
import { randomAnonymousAccountAndSessionID } from "./testUtils.js";
|
|
4
5
|
test("Empty COJSON Map works", () => {
|
|
5
|
-
const
|
|
6
|
-
const node = new LocalNode(agentCredential, newRandomSessionID(getAgentID(getAgent(agentCredential))));
|
|
6
|
+
const node = new LocalNode(...randomAnonymousAccountAndSessionID());
|
|
7
7
|
const coValue = node.createCoValue({
|
|
8
8
|
type: "comap",
|
|
9
9
|
ruleset: { type: "unsafeAllowAll" },
|
|
10
10
|
meta: null,
|
|
11
|
-
...createdNowUnique()
|
|
11
|
+
...createdNowUnique(),
|
|
12
12
|
});
|
|
13
13
|
const content = coValue.getCurrentContent();
|
|
14
14
|
if (content.type !== "comap") {
|
|
@@ -19,13 +19,12 @@ test("Empty COJSON Map works", () => {
|
|
|
19
19
|
expect(content.toJSON()).toEqual({});
|
|
20
20
|
});
|
|
21
21
|
test("Can insert and delete Map entries in edit()", () => {
|
|
22
|
-
const
|
|
23
|
-
const node = new LocalNode(agentCredential, newRandomSessionID(getAgentID(getAgent(agentCredential))));
|
|
22
|
+
const node = new LocalNode(...randomAnonymousAccountAndSessionID());
|
|
24
23
|
const coValue = node.createCoValue({
|
|
25
24
|
type: "comap",
|
|
26
25
|
ruleset: { type: "unsafeAllowAll" },
|
|
27
26
|
meta: null,
|
|
28
|
-
...createdNowUnique()
|
|
27
|
+
...createdNowUnique(),
|
|
29
28
|
});
|
|
30
29
|
const content = coValue.getCurrentContent();
|
|
31
30
|
if (content.type !== "comap") {
|
|
@@ -43,13 +42,12 @@ test("Can insert and delete Map entries in edit()", () => {
|
|
|
43
42
|
});
|
|
44
43
|
});
|
|
45
44
|
test("Can get map entry values at different points in time", () => {
|
|
46
|
-
const
|
|
47
|
-
const node = new LocalNode(agentCredential, newRandomSessionID(getAgentID(getAgent(agentCredential))));
|
|
45
|
+
const node = new LocalNode(...randomAnonymousAccountAndSessionID());
|
|
48
46
|
const coValue = node.createCoValue({
|
|
49
47
|
type: "comap",
|
|
50
48
|
ruleset: { type: "unsafeAllowAll" },
|
|
51
49
|
meta: null,
|
|
52
|
-
...createdNowUnique()
|
|
50
|
+
...createdNowUnique(),
|
|
53
51
|
});
|
|
54
52
|
const content = coValue.getCurrentContent();
|
|
55
53
|
if (content.type !== "comap") {
|
|
@@ -74,13 +72,12 @@ test("Can get map entry values at different points in time", () => {
|
|
|
74
72
|
});
|
|
75
73
|
});
|
|
76
74
|
test("Can get all historic values of key", () => {
|
|
77
|
-
const
|
|
78
|
-
const node = new LocalNode(agentCredential, newRandomSessionID(getAgentID(getAgent(agentCredential))));
|
|
75
|
+
const node = new LocalNode(...randomAnonymousAccountAndSessionID());
|
|
79
76
|
const coValue = node.createCoValue({
|
|
80
77
|
type: "comap",
|
|
81
78
|
ruleset: { type: "unsafeAllowAll" },
|
|
82
79
|
meta: null,
|
|
83
|
-
...createdNowUnique()
|
|
80
|
+
...createdNowUnique(),
|
|
84
81
|
});
|
|
85
82
|
const content = coValue.getCurrentContent();
|
|
86
83
|
if (content.type !== "comap") {
|
|
@@ -121,13 +118,12 @@ test("Can get all historic values of key", () => {
|
|
|
121
118
|
});
|
|
122
119
|
});
|
|
123
120
|
test("Can get last tx ID for a key", () => {
|
|
124
|
-
const
|
|
125
|
-
const node = new LocalNode(agentCredential, newRandomSessionID(getAgentID(getAgent(agentCredential))));
|
|
121
|
+
const node = new LocalNode(...randomAnonymousAccountAndSessionID());
|
|
126
122
|
const coValue = node.createCoValue({
|
|
127
123
|
type: "comap",
|
|
128
124
|
ruleset: { type: "unsafeAllowAll" },
|
|
129
125
|
meta: null,
|
|
130
|
-
...createdNowUnique()
|
|
126
|
+
...createdNowUnique(),
|
|
131
127
|
});
|
|
132
128
|
const content = coValue.getCurrentContent();
|
|
133
129
|
if (content.type !== "comap") {
|
|
@@ -138,7 +134,7 @@ test("Can get last tx ID for a key", () => {
|
|
|
138
134
|
expect(editable.getLastTxID("hello")).toEqual(undefined);
|
|
139
135
|
editable.set("hello", "A", "trusting");
|
|
140
136
|
const sessionID = editable.getLastTxID("hello")?.sessionID;
|
|
141
|
-
expect(sessionID &&
|
|
137
|
+
expect(sessionID && accountOrAgentIDfromSessionID(sessionID)).toEqual(node.account.id);
|
|
142
138
|
expect(editable.getLastTxID("hello")?.txIndex).toEqual(0);
|
|
143
139
|
editable.set("hello", "B", "trusting");
|
|
144
140
|
expect(editable.getLastTxID("hello")?.txIndex).toEqual(1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contentType.test.js","sourceRoot":"","sources":["../src/contentType.test.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"contentType.test.js","sourceRoot":"","sources":["../src/contentType.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,kCAAkC,EAAE,MAAM,gBAAgB,CAAC;AAEpE,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;IAChC,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,kCAAkC,EAAE,CAAC,CAAC;IAEpE,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/B,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;QACnC,IAAI,EAAE,IAAI;QACV,GAAG,gBAAgB,EAAE;KACxB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAE5C,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;KACnC;IAED,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;IACrD,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,kCAAkC,EAAE,CAAC,CAAC;IAEpE,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/B,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;QACnC,IAAI,EAAE,IAAI;QACV,GAAG,gBAAgB,EAAE;KACxB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAE5C,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;KACnC;IAED,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACtB,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3C,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/C,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACvC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QACvD,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACnC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sDAAsD,EAAE,GAAG,EAAE;IAC9D,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,kCAAkC,EAAE,CAAC,CAAC;IAEpE,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/B,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;QACnC,IAAI,EAAE,IAAI;QACV,GAAG,gBAAgB,EAAE;KACxB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAE5C,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;KACnC;IAED,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,EAAE,EAAE,GAAE;QACpC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,EAAE,EAAE,GAAE;QACpC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,EAAE,EAAE,GAAE;QACpC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACvC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1D,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAC5C,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,kCAAkC,EAAE,CAAC,CAAC;IAEpE,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/B,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;QACnC,IAAI,EAAE,IAAI;QACV,GAAG,gBAAgB,EAAE;KACxB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAE5C,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;KACnC;IAED,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACtB,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC5C,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;YACzC;gBACI,IAAI,EAAE,GAAG;gBACT,KAAK,EAAE,GAAG;gBACV,EAAE,EAAE,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM;aACxC;YACD;gBACI,IAAI,EAAE,GAAG;gBACT,KAAK,EAAE,GAAG;gBACV,EAAE,EAAE,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM;aACxC;YACD;gBACI,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,SAAS;gBAChB,EAAE,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM;aAC5C;YACD;gBACI,IAAI,EAAE,GAAG;gBACT,KAAK,EAAE,GAAG;gBACV,EAAE,EAAE,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM;aACxC;SACJ,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;IACtC,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,kCAAkC,EAAE,CAAC,CAAC;IAEpE,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/B,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;QACnC,IAAI,EAAE,IAAI;QACV,GAAG,gBAAgB,EAAE;KACxB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAE5C,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;KACnC;IAED,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACtB,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACzD,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;QAC3D,MAAM,CAAC,SAAS,IAAI,6BAA6B,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CACjE,IAAI,CAAC,OAAO,CAAC,EAAE,CAClB,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1D,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACvC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1D,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACvC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { JsonObject, JsonValue } from '../jsonValue.js';
|
|
2
|
-
import {
|
|
2
|
+
import { CoID } from '../contentType.js';
|
|
3
3
|
import { CoValue } from '../coValue.js';
|
|
4
|
-
export declare class CoList<T extends JsonValue, Meta extends
|
|
5
|
-
id:
|
|
4
|
+
export declare class CoList<T extends JsonValue, Meta extends JsonObject | null = null> {
|
|
5
|
+
id: CoID<CoList<T, Meta>>;
|
|
6
6
|
type: "colist";
|
|
7
7
|
coValue: CoValue;
|
|
8
8
|
constructor(coValue: CoValue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coList.js","sourceRoot":"","sources":["../../src/contentTypes/coList.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,MAAM;IAKf,YAAY,OAAgB;QAH5B,SAAI,GAAG,QAAiB,CAAC;QAIrB,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"coList.js","sourceRoot":"","sources":["../../src/contentTypes/coList.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,MAAM;IAKf,YAAY,OAAgB;QAH5B,SAAI,GAAG,QAAiB,CAAC;QAIrB,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAA2B,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,MAAM;QACF,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS,CAAC,QAA0C;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;YACtC,QAAQ,CAAC,OAA0B,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { JsonObject, JsonValue } from '../jsonValue.js';
|
|
2
2
|
import { TransactionID } from '../ids.js';
|
|
3
|
-
import {
|
|
3
|
+
import { CoID } from '../contentType.js';
|
|
4
4
|
import { CoValue } from '../coValue.js';
|
|
5
|
+
import { AccountID } from '../account.js';
|
|
5
6
|
type MapOp<K extends string, V extends JsonValue> = {
|
|
6
7
|
txID: TransactionID;
|
|
7
8
|
madeAt: number;
|
|
@@ -15,29 +16,42 @@ export type MapOpPayload<K extends string, V extends JsonValue> = {
|
|
|
15
16
|
op: "delete";
|
|
16
17
|
key: K;
|
|
17
18
|
};
|
|
18
|
-
export
|
|
19
|
+
export type MapK<M extends {
|
|
20
|
+
[key: string]: JsonValue;
|
|
21
|
+
}> = keyof M & string;
|
|
22
|
+
export type MapV<M extends {
|
|
19
23
|
[key: string]: JsonValue;
|
|
20
|
-
}
|
|
24
|
+
}> = M[MapK<M>];
|
|
25
|
+
export type MapM<M extends {
|
|
26
|
+
[key: string]: JsonValue;
|
|
27
|
+
}> = {
|
|
28
|
+
[KK in MapK<M>]: M[KK];
|
|
29
|
+
};
|
|
30
|
+
export declare class CoMap<M extends {
|
|
21
31
|
[key: string]: JsonValue;
|
|
22
|
-
} = {
|
|
23
|
-
|
|
24
|
-
}> {
|
|
25
|
-
id: CoValueID<CoMap<MM, Meta>>;
|
|
32
|
+
}, Meta extends JsonObject | null = null> {
|
|
33
|
+
id: CoID<CoMap<MapM<M>, Meta>>;
|
|
26
34
|
coValue: CoValue;
|
|
27
35
|
type: "comap";
|
|
28
36
|
ops: {
|
|
29
|
-
[KK in
|
|
37
|
+
[KK in MapK<M>]?: MapOp<KK, M[KK]>[];
|
|
30
38
|
};
|
|
31
39
|
constructor(coValue: CoValue);
|
|
32
40
|
protected fillOpsFromCoValue(): void;
|
|
33
|
-
keys():
|
|
34
|
-
get<
|
|
35
|
-
getAtTime<
|
|
36
|
-
|
|
37
|
-
|
|
41
|
+
keys(): MapK<M>[];
|
|
42
|
+
get<K extends MapK<M>>(key: K): M[K] | undefined;
|
|
43
|
+
getAtTime<K extends MapK<M>>(key: K, time: number): M[K] | undefined;
|
|
44
|
+
getLastEditor<K extends MapK<M>>(key: K): AccountID | undefined;
|
|
45
|
+
getLastTxID<K extends MapK<M>>(key: K): TransactionID | undefined;
|
|
46
|
+
getLastEntry<K extends MapK<M>>(key: K): {
|
|
47
|
+
at: number;
|
|
48
|
+
txID: TransactionID;
|
|
49
|
+
value: M[K];
|
|
50
|
+
} | undefined;
|
|
51
|
+
getHistory<K extends MapK<M>>(key: K): {
|
|
38
52
|
at: number;
|
|
39
53
|
txID: TransactionID;
|
|
40
|
-
value: M[
|
|
54
|
+
value: M[K] | undefined;
|
|
41
55
|
}[];
|
|
42
56
|
toJSON(): JsonObject;
|
|
43
57
|
edit(changer: (editable: WriteableCoMap<M, Meta>) => void): CoMap<M, Meta>;
|
|
@@ -45,12 +59,8 @@ export declare class CoMap<M extends {
|
|
|
45
59
|
}
|
|
46
60
|
export declare class WriteableCoMap<M extends {
|
|
47
61
|
[key: string]: JsonValue;
|
|
48
|
-
}, Meta extends
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
[KK in K]: M[KK];
|
|
52
|
-
}> extends CoMap<M, Meta, K, V, MM> {
|
|
53
|
-
set<KK extends K>(key: KK, value: M[KK], privacy?: "private" | "trusting"): void;
|
|
54
|
-
delete(key: K, privacy?: "private" | "trusting"): void;
|
|
62
|
+
}, Meta extends JsonObject | null = null> extends CoMap<M, Meta> {
|
|
63
|
+
set<K extends MapK<M>>(key: K, value: M[K], privacy?: "private" | "trusting"): void;
|
|
64
|
+
delete(key: MapK<M>, privacy?: "private" | "trusting"): void;
|
|
55
65
|
}
|
|
56
66
|
export {};
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { accountOrAgentIDfromSessionID } from '../coValue.js';
|
|
2
|
+
import { isAccountID } from '../account.js';
|
|
1
3
|
export class CoMap {
|
|
2
4
|
constructor(coValue) {
|
|
3
5
|
this.type = "comap";
|
|
@@ -57,6 +59,19 @@ export class CoMap {
|
|
|
57
59
|
return lastOpBeforeOrAtTime.value;
|
|
58
60
|
}
|
|
59
61
|
}
|
|
62
|
+
getLastEditor(key) {
|
|
63
|
+
const tx = this.getLastTxID(key);
|
|
64
|
+
if (!tx) {
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
67
|
+
const accountID = accountOrAgentIDfromSessionID(tx.sessionID);
|
|
68
|
+
if (isAccountID(accountID)) {
|
|
69
|
+
return accountID;
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
return undefined;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
60
75
|
getLastTxID(key) {
|
|
61
76
|
const ops = this.ops[key];
|
|
62
77
|
if (!ops) {
|
|
@@ -65,6 +80,19 @@ export class CoMap {
|
|
|
65
80
|
const lastEntry = ops[ops.length - 1];
|
|
66
81
|
return lastEntry.txID;
|
|
67
82
|
}
|
|
83
|
+
getLastEntry(key) {
|
|
84
|
+
const ops = this.ops[key];
|
|
85
|
+
if (!ops) {
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
88
|
+
const lastEntry = ops[ops.length - 1];
|
|
89
|
+
if (lastEntry.op === "delete") {
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
return { at: lastEntry.madeAt, txID: lastEntry.txID, value: lastEntry.value };
|
|
94
|
+
}
|
|
95
|
+
}
|
|
68
96
|
getHistory(key) {
|
|
69
97
|
const ops = this.ops[key];
|
|
70
98
|
if (!ops) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coMap.js","sourceRoot":"","sources":["../../src/contentTypes/coMap.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"coMap.js","sourceRoot":"","sources":["../../src/contentTypes/coMap.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { JsonObject, JsonValue } from '../jsonValue.js';
|
|
2
|
-
import {
|
|
2
|
+
import { CoID } from '../contentType.js';
|
|
3
3
|
import { CoValue } from '../coValue.js';
|
|
4
|
-
export declare class CoStream<T extends JsonValue, Meta extends
|
|
5
|
-
id:
|
|
4
|
+
export declare class CoStream<T extends JsonValue, Meta extends JsonObject | null = null> {
|
|
5
|
+
id: CoID<CoStream<T, Meta>>;
|
|
6
6
|
type: "costream";
|
|
7
7
|
coValue: CoValue;
|
|
8
8
|
constructor(coValue: CoValue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coStream.js","sourceRoot":"","sources":["../../src/contentTypes/coStream.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,QAAQ;IAKjB,YAAY,OAAgB;QAH5B,SAAI,GAAG,UAAmB,CAAC;QAIvB,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"coStream.js","sourceRoot":"","sources":["../../src/contentTypes/coStream.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,QAAQ;IAKjB,YAAY,OAAgB;QAH5B,SAAI,GAAG,UAAmB,CAAC;QAIvB,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAA6B,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,MAAM;QACF,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS,CAAC,QAA4C;QAClD,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;YACtC,QAAQ,CAAC,OAA4B,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { JsonObject
|
|
2
|
-
import {
|
|
1
|
+
import { JsonObject } from '../jsonValue.js';
|
|
2
|
+
import { CoID } from '../contentType.js';
|
|
3
3
|
import { CoValue } from '../coValue.js';
|
|
4
|
-
export declare class Static<T extends
|
|
5
|
-
id:
|
|
4
|
+
export declare class Static<T extends JsonObject> {
|
|
5
|
+
id: CoID<Static<T>>;
|
|
6
6
|
type: "static";
|
|
7
7
|
coValue: CoValue;
|
|
8
8
|
constructor(coValue: CoValue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static.js","sourceRoot":"","sources":["../../src/contentTypes/static.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,MAAM;IAKf,YAAY,OAAgB;QAH5B,SAAI,GAAG,QAAiB,CAAC;QAIrB,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"static.js","sourceRoot":"","sources":["../../src/contentTypes/static.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,MAAM;IAKf,YAAY,OAAgB;QAH5B,SAAI,GAAG,QAAiB,CAAC;QAIrB,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAqB,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,MAAM;QACF,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS,CAAC,SAAqC;QAC3C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;CACJ"}
|
package/dist/crypto.d.ts
CHANGED
|
@@ -1,33 +1,39 @@
|
|
|
1
1
|
import { JsonValue } from './jsonValue.js';
|
|
2
2
|
import { blake3 } from "@noble/hashes/blake3";
|
|
3
|
-
import {
|
|
4
|
-
export type
|
|
5
|
-
export type
|
|
3
|
+
import { AgentID, RawCoID, TransactionID } from './ids.js';
|
|
4
|
+
export type SignerSecret = `signerSecret_z${string}`;
|
|
5
|
+
export type SignerID = `signer_z${string}`;
|
|
6
6
|
export type Signature = `signature_z${string}`;
|
|
7
|
-
export type
|
|
8
|
-
export type
|
|
7
|
+
export type SealerSecret = `sealerSecret_z${string}`;
|
|
8
|
+
export type SealerID = `sealer_z${string}`;
|
|
9
9
|
export type Sealed<T> = `sealed_U${string}` & {
|
|
10
10
|
__type: T;
|
|
11
11
|
};
|
|
12
|
-
export
|
|
13
|
-
export declare function
|
|
14
|
-
export declare function
|
|
15
|
-
export declare function
|
|
16
|
-
export declare function
|
|
17
|
-
export declare function
|
|
18
|
-
export declare function
|
|
19
|
-
export declare function
|
|
20
|
-
export declare function
|
|
21
|
-
export declare function
|
|
22
|
-
export
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
export declare function
|
|
26
|
-
|
|
12
|
+
export type AgentSecret = `${SealerSecret}/${SignerSecret}`;
|
|
13
|
+
export declare function newRandomSigner(): SignerSecret;
|
|
14
|
+
export declare function signerSecretToBytes(secret: SignerSecret): Uint8Array;
|
|
15
|
+
export declare function signerSecretFromBytes(bytes: Uint8Array): SignerSecret;
|
|
16
|
+
export declare function getSignerID(secret: SignerSecret): SignerID;
|
|
17
|
+
export declare function sign(secret: SignerSecret, message: JsonValue): Signature;
|
|
18
|
+
export declare function verify(signature: Signature, message: JsonValue, id: SignerID): boolean;
|
|
19
|
+
export declare function newRandomSealer(): SealerSecret;
|
|
20
|
+
export declare function sealerSecretToBytes(secret: SealerSecret): Uint8Array;
|
|
21
|
+
export declare function sealerSecretFromBytes(bytes: Uint8Array): SealerSecret;
|
|
22
|
+
export declare function getSealerID(secret: SealerSecret): SealerID;
|
|
23
|
+
export declare function newRandomAgentSecret(): AgentSecret;
|
|
24
|
+
export declare function agentSecretToBytes(secret: AgentSecret): Uint8Array;
|
|
25
|
+
export declare function agentSecretFromBytes(bytes: Uint8Array): AgentSecret;
|
|
26
|
+
export declare function getAgentID(secret: AgentSecret): AgentID;
|
|
27
|
+
export declare function getAgentSignerID(agentId: AgentID): SignerID;
|
|
28
|
+
export declare function getAgentSignerSecret(agentSecret: AgentSecret): SignerSecret;
|
|
29
|
+
export declare function getAgentSealerID(agentId: AgentID): SealerID;
|
|
30
|
+
export declare function getAgentSealerSecret(agentSecret: AgentSecret): SealerSecret;
|
|
31
|
+
export declare function seal<T extends JsonValue>(message: T, from: SealerSecret, to: SealerID, nOnceMaterial: {
|
|
32
|
+
in: RawCoID;
|
|
27
33
|
tx: TransactionID;
|
|
28
|
-
}):
|
|
29
|
-
export declare function
|
|
30
|
-
in:
|
|
34
|
+
}): Sealed<T>;
|
|
35
|
+
export declare function unseal<T extends JsonValue>(sealed: Sealed<T>, sealer: SealerSecret, from: SealerID, nOnceMaterial: {
|
|
36
|
+
in: RawCoID;
|
|
31
37
|
tx: TransactionID;
|
|
32
38
|
}): T | undefined;
|
|
33
39
|
export type Hash = `hash_z${string}`;
|
|
@@ -52,42 +58,42 @@ export declare function newRandomKeySecret(): {
|
|
|
52
58
|
id: KeyID;
|
|
53
59
|
};
|
|
54
60
|
export declare function encryptForTransaction<T extends JsonValue>(value: T, keySecret: KeySecret, nOnceMaterial: {
|
|
55
|
-
in:
|
|
61
|
+
in: RawCoID;
|
|
56
62
|
tx: TransactionID;
|
|
57
63
|
}): Encrypted<T, {
|
|
58
|
-
in:
|
|
64
|
+
in: RawCoID;
|
|
59
65
|
tx: TransactionID;
|
|
60
66
|
}>;
|
|
61
|
-
export declare function
|
|
62
|
-
|
|
67
|
+
export declare function encryptKeySecret(keys: {
|
|
68
|
+
toEncrypt: {
|
|
63
69
|
id: KeyID;
|
|
64
70
|
secret: KeySecret;
|
|
65
71
|
};
|
|
66
|
-
|
|
72
|
+
encrypting: {
|
|
67
73
|
id: KeyID;
|
|
68
74
|
secret: KeySecret;
|
|
69
75
|
};
|
|
70
76
|
}): {
|
|
71
|
-
|
|
72
|
-
|
|
77
|
+
encryptedID: KeyID;
|
|
78
|
+
encryptingID: KeyID;
|
|
73
79
|
encrypted: Encrypted<KeySecret, {
|
|
74
|
-
|
|
75
|
-
|
|
80
|
+
encryptedID: KeyID;
|
|
81
|
+
encryptingID: KeyID;
|
|
76
82
|
}>;
|
|
77
83
|
};
|
|
78
84
|
export declare function decryptForTransaction<T extends JsonValue>(encrypted: Encrypted<T, {
|
|
79
|
-
in:
|
|
85
|
+
in: RawCoID;
|
|
80
86
|
tx: TransactionID;
|
|
81
87
|
}>, keySecret: KeySecret, nOnceMaterial: {
|
|
82
|
-
in:
|
|
88
|
+
in: RawCoID;
|
|
83
89
|
tx: TransactionID;
|
|
84
90
|
}): T | undefined;
|
|
85
|
-
export declare function
|
|
86
|
-
|
|
87
|
-
|
|
91
|
+
export declare function decryptKeySecret(encryptedInfo: {
|
|
92
|
+
encryptedID: KeyID;
|
|
93
|
+
encryptingID: KeyID;
|
|
88
94
|
encrypted: Encrypted<KeySecret, {
|
|
89
|
-
|
|
90
|
-
|
|
95
|
+
encryptedID: KeyID;
|
|
96
|
+
encryptingID: KeyID;
|
|
91
97
|
}>;
|
|
92
98
|
}, sealingSecret: KeySecret): KeySecret | undefined;
|
|
93
99
|
export declare function uniquenessForHeader(): `z${string}`;
|