cojson 0.2.2 → 0.3.0-alpha.0
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/.eslintrc.cjs +1 -0
- package/dist/account.d.ts +8 -8
- package/dist/account.js +2 -2
- package/dist/account.js.map +1 -1
- package/dist/coValue.d.ts +22 -27
- package/dist/coValue.js +21 -0
- package/dist/coValue.js.map +1 -1
- package/dist/coValueCore.d.ts +7 -7
- package/dist/coValueCore.js +11 -14
- package/dist/coValueCore.js.map +1 -1
- package/dist/coValues/coList.d.ts +107 -42
- package/dist/coValues/coList.js +163 -72
- package/dist/coValues/coList.js.map +1 -1
- package/dist/coValues/coMap.d.ts +109 -50
- package/dist/coValues/coMap.js +161 -109
- package/dist/coValues/coMap.js.map +1 -1
- package/dist/coValues/coStream.d.ts +78 -33
- package/dist/coValues/coStream.js +134 -53
- package/dist/coValues/coStream.js.map +1 -1
- package/dist/crypto.d.ts +8 -3
- package/dist/crypto.js +6 -6
- package/dist/crypto.js.map +1 -1
- package/dist/group.d.ts +59 -23
- package/dist/group.js +83 -25
- package/dist/group.js.map +1 -1
- package/dist/index.d.ts +14 -11
- package/dist/index.js +8 -8
- package/dist/index.js.map +1 -1
- package/dist/{node.d.ts → localNode.d.ts} +23 -11
- package/dist/{node.js → localNode.js} +80 -42
- package/dist/localNode.js.map +1 -0
- package/dist/media.d.ts +1 -2
- package/dist/permissions.js +6 -3
- package/dist/permissions.js.map +1 -1
- package/dist/queriedCoValues/queriedCoList.d.ts +66 -0
- package/dist/queriedCoValues/queriedCoList.js +120 -0
- package/dist/queriedCoValues/queriedCoList.js.map +1 -0
- package/dist/queriedCoValues/queriedCoMap.d.ts +47 -0
- package/dist/queriedCoValues/queriedCoMap.js +83 -0
- package/dist/queriedCoValues/queriedCoMap.js.map +1 -0
- package/dist/queriedCoValues/queriedCoStream.d.ts +40 -0
- package/dist/queriedCoValues/queriedCoStream.js +72 -0
- package/dist/queriedCoValues/queriedCoStream.js.map +1 -0
- package/dist/queries.d.ts +31 -0
- package/dist/queries.js +77 -0
- package/dist/queries.js.map +1 -0
- package/dist/sync.d.ts +1 -1
- package/dist/sync.js +1 -1
- package/dist/sync.js.map +1 -1
- package/dist/{testUtils.d.ts → tests/testUtils.d.ts} +9 -9
- package/dist/{testUtils.js → tests/testUtils.js} +9 -7
- package/dist/tests/testUtils.js.map +1 -0
- package/package.json +2 -2
- package/src/account.ts +6 -6
- package/src/coValue.ts +65 -34
- package/src/coValueCore.ts +18 -22
- package/src/coValues/coList.ts +272 -122
- package/src/coValues/coMap.ts +349 -152
- package/src/coValues/coStream.ts +258 -94
- package/src/crypto.ts +37 -24
- package/src/group.ts +112 -46
- package/src/index.ts +42 -30
- package/src/{node.ts → localNode.ts} +117 -66
- package/src/media.ts +1 -2
- package/src/permissions.ts +15 -18
- package/src/queriedCoValues/queriedCoList.ts +248 -0
- package/src/queriedCoValues/queriedCoMap.ts +180 -0
- package/src/queriedCoValues/queriedCoStream.ts +125 -0
- package/src/queries.ts +142 -0
- package/src/sync.ts +2 -2
- package/src/{account.test.ts → tests/account.test.ts} +6 -9
- package/src/{coValue.test.ts → tests/coValue.test.ts} +120 -114
- package/src/{coValueCore.test.ts → tests/coValueCore.test.ts} +7 -7
- package/src/{crypto.test.ts → tests/crypto.test.ts} +19 -21
- package/src/{group.test.ts → tests/group.test.ts} +2 -2
- package/src/{permissions.test.ts → tests/permissions.test.ts} +260 -247
- package/src/tests/queries.test.ts +318 -0
- package/src/{sync.test.ts → tests/sync.test.ts} +39 -39
- package/src/{testUtils.ts → tests/testUtils.ts} +10 -8
- package/dist/coValues/static.d.ts +0 -14
- package/dist/coValues/static.js +0 -20
- package/dist/coValues/static.js.map +0 -1
- package/dist/node.js.map +0 -1
- package/dist/testUtils.js.map +0 -1
- package/src/coValues/static.ts +0 -31
package/dist/media.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { CoMap } from './coValues/coMap.js';
|
|
2
|
-
import { CoID } from './coValue.js';
|
|
3
2
|
import { BinaryCoStream } from './coValues/coStream.js';
|
|
4
3
|
export type ImageDefinition = CoMap<{
|
|
5
4
|
originalSize: [number, number];
|
|
6
5
|
placeholderDataURL?: string;
|
|
7
|
-
[res: `${number}x${number}`]:
|
|
6
|
+
[res: `${number}x${number}`]: BinaryCoStream;
|
|
8
7
|
}>;
|
package/dist/permissions.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { accountOrAgentIDfromSessionID, } from "./coValueCore.js";
|
|
2
2
|
import { parseJSON } from "./jsonStringify.js";
|
|
3
|
+
import { expectGroupContent } from "./group.js";
|
|
3
4
|
export function determineValidTransactions(coValue) {
|
|
4
5
|
if (coValue.header.ruleset.type === "group") {
|
|
5
6
|
const allTrustingTransactionsSorted = Object.entries(coValue.sessions).flatMap(([sessionID, sessionLog]) => {
|
|
@@ -122,9 +123,9 @@ export function determineValidTransactions(coValue) {
|
|
|
122
123
|
return validTransactions;
|
|
123
124
|
}
|
|
124
125
|
else if (coValue.header.ruleset.type === "ownedByGroup") {
|
|
125
|
-
const groupContent = coValue.node
|
|
126
|
+
const groupContent = expectGroupContent(coValue.node
|
|
126
127
|
.expectCoValueLoaded(coValue.header.ruleset.group, "Determining valid transaction in owned object but its group wasn't loaded")
|
|
127
|
-
.getCurrentContent();
|
|
128
|
+
.getCurrentContent());
|
|
128
129
|
if (groupContent.type !== "comap") {
|
|
129
130
|
throw new Error("Group must be a map");
|
|
130
131
|
}
|
|
@@ -132,7 +133,9 @@ export function determineValidTransactions(coValue) {
|
|
|
132
133
|
const transactor = accountOrAgentIDfromSessionID(sessionID);
|
|
133
134
|
return sessionLog.transactions
|
|
134
135
|
.filter((tx) => {
|
|
135
|
-
const transactorRoleAtTxTime = groupContent
|
|
136
|
+
const transactorRoleAtTxTime = groupContent
|
|
137
|
+
.atTime(tx.madeAt)
|
|
138
|
+
.get(transactor);
|
|
136
139
|
return (transactorRoleAtTxTime === "admin" ||
|
|
137
140
|
transactorRoleAtTxTime === "writer");
|
|
138
141
|
})
|
package/dist/permissions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { MutableCoList } from "../coValues/coList.js";
|
|
2
|
+
import { CoValueCore } from "../coValueCore.js";
|
|
3
|
+
import { Group } from "../group.js";
|
|
4
|
+
import { AnyCoList, CoID, CoValue } from "../coValue.js";
|
|
5
|
+
import { TransactionID } from "../ids.js";
|
|
6
|
+
import { QueriedAccountAndProfile } from "./queriedCoMap.js";
|
|
7
|
+
import { ValueOrSubQueried, QueryContext } from "../queries.js";
|
|
8
|
+
export declare class QueriedCoList<L extends AnyCoList> extends Array<ValueOrSubQueried<L["_item"]>> {
|
|
9
|
+
coList: L;
|
|
10
|
+
id: CoID<L>;
|
|
11
|
+
type: "colist";
|
|
12
|
+
/** @internal */
|
|
13
|
+
constructor(coList: L, queryContext: QueryContext);
|
|
14
|
+
get meta(): L["meta"];
|
|
15
|
+
get group(): Group;
|
|
16
|
+
get core(): CoValueCore;
|
|
17
|
+
append(item: L["_item"] extends CoValue ? L["_item"] | CoID<L["_item"]> : L["_item"], after?: number, privacy?: "private" | "trusting"): L;
|
|
18
|
+
prepend(item: L["_item"] extends CoValue ? L["_item"] | CoID<L["_item"]> : L["_item"], before?: number, privacy?: "private" | "trusting"): L;
|
|
19
|
+
delete(at: number, privacy: "private" | "trusting"): L;
|
|
20
|
+
mutate(mutator: (mutable: MutableCoList<L["_item"], L["meta"]>) => void): L;
|
|
21
|
+
edits: {
|
|
22
|
+
by?: QueriedAccountAndProfile;
|
|
23
|
+
tx: TransactionID;
|
|
24
|
+
at: Date;
|
|
25
|
+
value: L["_item"] extends CoValue ? CoID<L["_item"]> : Exclude<L["_item"], CoValue>;
|
|
26
|
+
}[];
|
|
27
|
+
deletions: {
|
|
28
|
+
by?: QueriedAccountAndProfile;
|
|
29
|
+
tx: TransactionID;
|
|
30
|
+
at: Date;
|
|
31
|
+
}[];
|
|
32
|
+
/** @internal */
|
|
33
|
+
static isArray(arg: any): arg is any[];
|
|
34
|
+
/** @internal */
|
|
35
|
+
static from<T>(arrayLike: ArrayLike<T>): T[];
|
|
36
|
+
/** @internal */
|
|
37
|
+
static from<T, U>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];
|
|
38
|
+
/** @internal */
|
|
39
|
+
static from<T>(iterable: Iterable<T> | ArrayLike<T>): T[];
|
|
40
|
+
/** @internal */
|
|
41
|
+
static from<T, U>(iterable: Iterable<T> | ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];
|
|
42
|
+
/** @internal */
|
|
43
|
+
static of<T>(..._items: T[]): T[];
|
|
44
|
+
/** @internal */
|
|
45
|
+
pop(): ValueOrSubQueried<L["_item"]> | undefined;
|
|
46
|
+
/** @internal */
|
|
47
|
+
push(..._items: ValueOrSubQueried<L["_item"]>[]): number;
|
|
48
|
+
/** @internal */
|
|
49
|
+
concat(..._items: ConcatArray<ValueOrSubQueried<L["_item"]>>[]): ValueOrSubQueried<L["_item"]>[];
|
|
50
|
+
/** @internal */
|
|
51
|
+
concat(..._items: (ValueOrSubQueried<L["_item"]> | ConcatArray<ValueOrSubQueried<L["_item"]>>)[]): ValueOrSubQueried<L["_item"]>[];
|
|
52
|
+
/** @internal */
|
|
53
|
+
reverse(): ValueOrSubQueried<L["_item"]>[];
|
|
54
|
+
/** @internal */
|
|
55
|
+
shift(): ValueOrSubQueried<L["_item"]> | undefined;
|
|
56
|
+
/** @internal */
|
|
57
|
+
sort(_compareFn?: ((a: ValueOrSubQueried<L["_item"]>, b: ValueOrSubQueried<L["_item"]>) => number) | undefined): this;
|
|
58
|
+
/** @internal */
|
|
59
|
+
splice(_start: number, _deleteCount?: number | undefined): ValueOrSubQueried<L["_item"]>[];
|
|
60
|
+
/** @internal */
|
|
61
|
+
unshift(..._items: ValueOrSubQueried<L["_item"]>[]): number;
|
|
62
|
+
/** @internal */
|
|
63
|
+
fill(_value: ValueOrSubQueried<L["_item"]>, _start?: number | undefined, _end?: number | undefined): this;
|
|
64
|
+
/** @internal */
|
|
65
|
+
copyWithin(_target: number, _start: number, _end?: number | undefined): this;
|
|
66
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { CoList } from "../coValues/coList.js";
|
|
2
|
+
import { isAccountID } from "../account.js";
|
|
3
|
+
export class QueriedCoList extends Array {
|
|
4
|
+
/** @internal */
|
|
5
|
+
constructor(coList, queryContext) {
|
|
6
|
+
if (!(coList instanceof CoList)) {
|
|
7
|
+
// this might be called from an intrinsic, like map, trying to create an empty array
|
|
8
|
+
// passing `0` as the only parameter
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10
|
+
return new Array(coList);
|
|
11
|
+
}
|
|
12
|
+
super(...coList
|
|
13
|
+
.asArray()
|
|
14
|
+
.map((item) => queryContext.resolveValue(item)));
|
|
15
|
+
Object.defineProperties(this, {
|
|
16
|
+
coList: { value: coList },
|
|
17
|
+
id: { value: coList.id },
|
|
18
|
+
type: { value: "colist" },
|
|
19
|
+
edits: {
|
|
20
|
+
value: [...this.keys()].map((i) => {
|
|
21
|
+
const edit = coList.editAt(i);
|
|
22
|
+
return {
|
|
23
|
+
by: edit.by && isAccountID(edit.by)
|
|
24
|
+
? queryContext.resolveAccount(edit.by)
|
|
25
|
+
: undefined,
|
|
26
|
+
tx: edit.tx,
|
|
27
|
+
at: new Date(edit.at),
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
29
|
+
value: queryContext.resolveValue(edit.value),
|
|
30
|
+
};
|
|
31
|
+
}),
|
|
32
|
+
},
|
|
33
|
+
deletions: {
|
|
34
|
+
value: coList.deletionEdits().map((deletion) => ({
|
|
35
|
+
by: deletion.by && isAccountID(deletion.by)
|
|
36
|
+
? queryContext.resolveAccount(deletion.by)
|
|
37
|
+
: undefined,
|
|
38
|
+
tx: deletion.tx,
|
|
39
|
+
at: new Date(deletion.at),
|
|
40
|
+
})),
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
get meta() {
|
|
45
|
+
return this.coList.meta;
|
|
46
|
+
}
|
|
47
|
+
get group() {
|
|
48
|
+
return this.coList.group;
|
|
49
|
+
}
|
|
50
|
+
get core() {
|
|
51
|
+
return this.coList.core;
|
|
52
|
+
}
|
|
53
|
+
append(item, after, privacy) {
|
|
54
|
+
return this.coList.append(item, after, privacy);
|
|
55
|
+
}
|
|
56
|
+
prepend(item, before, privacy) {
|
|
57
|
+
return this.coList.prepend(item, before, privacy);
|
|
58
|
+
}
|
|
59
|
+
delete(at, privacy) {
|
|
60
|
+
return this.coList.delete(at, privacy);
|
|
61
|
+
}
|
|
62
|
+
mutate(mutator) {
|
|
63
|
+
return this.coList.mutate(mutator);
|
|
64
|
+
}
|
|
65
|
+
/** @internal */
|
|
66
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
67
|
+
static isArray(arg) {
|
|
68
|
+
return Array.isArray(arg);
|
|
69
|
+
}
|
|
70
|
+
/** @internal */
|
|
71
|
+
static from(_iterable, _mapfn, _thisArg) {
|
|
72
|
+
throw new Error("Array method 'from' not supported on QueriedCoList");
|
|
73
|
+
}
|
|
74
|
+
/** @internal */
|
|
75
|
+
static of(..._items) {
|
|
76
|
+
throw new Error("Array method 'of' not supported on QueriedCoList");
|
|
77
|
+
}
|
|
78
|
+
/** @internal */
|
|
79
|
+
pop() {
|
|
80
|
+
throw new Error("Array method 'pop' not supported on QueriedCoList");
|
|
81
|
+
}
|
|
82
|
+
/** @internal */
|
|
83
|
+
push(..._items) {
|
|
84
|
+
throw new Error("Array method 'push' not supported on QueriedCoList");
|
|
85
|
+
}
|
|
86
|
+
/** @internal */
|
|
87
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
88
|
+
concat(..._items) {
|
|
89
|
+
throw new Error("Array method 'concat' not supported on QueriedCoList");
|
|
90
|
+
}
|
|
91
|
+
/** @internal */
|
|
92
|
+
reverse() {
|
|
93
|
+
throw new Error("Array method 'reverse' not supported on QueriedCoList");
|
|
94
|
+
}
|
|
95
|
+
/** @internal */
|
|
96
|
+
shift() {
|
|
97
|
+
throw new Error("Array method 'shift' not supported on QueriedCoList");
|
|
98
|
+
}
|
|
99
|
+
/** @internal */
|
|
100
|
+
sort(_compareFn) {
|
|
101
|
+
throw new Error("Array method 'sort' not supported on QueriedCoList");
|
|
102
|
+
}
|
|
103
|
+
/** @internal */
|
|
104
|
+
splice(_start, _deleteCount) {
|
|
105
|
+
throw new Error("Array method 'splice' not supported on QueriedCoList");
|
|
106
|
+
}
|
|
107
|
+
/** @internal */
|
|
108
|
+
unshift(..._items) {
|
|
109
|
+
throw new Error("Array method 'unshift' not supported on QueriedCoList");
|
|
110
|
+
}
|
|
111
|
+
/** @internal */
|
|
112
|
+
fill(_value, _start, _end) {
|
|
113
|
+
throw new Error("Array method 'fill' not supported on QueriedCoList");
|
|
114
|
+
}
|
|
115
|
+
/** @internal */
|
|
116
|
+
copyWithin(_target, _start, _end) {
|
|
117
|
+
throw new Error("Array method 'copyWithin' not supported on QueriedCoList");
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=queriedCoList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queriedCoList.js","sourceRoot":"","sources":["../../src/queriedCoValues/queriedCoList.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { MutableCoMap } from "../coValues/coMap.js";
|
|
2
|
+
import { CoValueCore } from "../coValueCore.js";
|
|
3
|
+
import { Group } from "../group.js";
|
|
4
|
+
import { AccountID, Profile } from "../account.js";
|
|
5
|
+
import { AnyCoMap, CoID, CoValue } from "../coValue.js";
|
|
6
|
+
import { TransactionID } from "../ids.js";
|
|
7
|
+
import { ValueOrSubQueried, QueryContext } from "../queries.js";
|
|
8
|
+
export type QueriedCoMap<M extends AnyCoMap> = {
|
|
9
|
+
[K in keyof M["_shape"] & string]: ValueOrSubQueried<M["_shape"][K]>;
|
|
10
|
+
} & QueriedCoMapBase<M>;
|
|
11
|
+
export type QueriedCoMapEdit<M extends AnyCoMap, K extends keyof M["_shape"]> = {
|
|
12
|
+
by?: QueriedAccountAndProfile;
|
|
13
|
+
tx: TransactionID;
|
|
14
|
+
at: Date;
|
|
15
|
+
value: M["_shape"][K] extends CoValue ? CoID<M["_shape"][K]> : Exclude<M["_shape"][K], CoValue>;
|
|
16
|
+
};
|
|
17
|
+
export declare class QueriedCoMapBase<M extends AnyCoMap> {
|
|
18
|
+
coMap: M;
|
|
19
|
+
id: CoID<M>;
|
|
20
|
+
type: "comap";
|
|
21
|
+
/** @internal */
|
|
22
|
+
static newWithKVPairs<M extends AnyCoMap>(coMap: M, queryContext: QueryContext): QueriedCoMap<M>;
|
|
23
|
+
/** @internal */
|
|
24
|
+
constructor(coMap: M, queryContext: QueryContext);
|
|
25
|
+
edits: {
|
|
26
|
+
[K in keyof M["_shape"] & string]: (QueriedCoMapEdit<M, K> & {
|
|
27
|
+
all: QueriedCoMapEdit<M, K>[];
|
|
28
|
+
}) | undefined;
|
|
29
|
+
};
|
|
30
|
+
get meta(): M["meta"];
|
|
31
|
+
get group(): Group;
|
|
32
|
+
get core(): CoValueCore;
|
|
33
|
+
set<K extends keyof M["_shape"] & string>(key: K, value: M["_shape"][K] extends CoValue ? M["_shape"][K] | CoID<M["_shape"][K]> : M["_shape"][K], privacy?: "private" | "trusting"): M;
|
|
34
|
+
set(kv: {
|
|
35
|
+
[K in keyof M["_shape"] & string]?: M["_shape"][K] extends CoValue ? M["_shape"][K] | CoID<M["_shape"][K]> : M["_shape"][K];
|
|
36
|
+
}, privacy?: "private" | "trusting"): M;
|
|
37
|
+
delete(key: keyof M["_shape"] & string, privacy?: "private" | "trusting"): M;
|
|
38
|
+
mutate(mutator: (mutable: MutableCoMap<M["_shape"], M["meta"]>) => void): M;
|
|
39
|
+
}
|
|
40
|
+
export type QueriedAccountAndProfile = {
|
|
41
|
+
profile?: {
|
|
42
|
+
name?: string;
|
|
43
|
+
id: CoID<Profile>;
|
|
44
|
+
};
|
|
45
|
+
isMe?: boolean;
|
|
46
|
+
id: AccountID;
|
|
47
|
+
};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { isAccountID } from "../account.js";
|
|
2
|
+
export class QueriedCoMapBase {
|
|
3
|
+
/** @internal */
|
|
4
|
+
static newWithKVPairs(coMap, queryContext) {
|
|
5
|
+
const kv = {};
|
|
6
|
+
if (coMap.meta?.type === "account") {
|
|
7
|
+
const profileID = coMap.get("profile");
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
9
|
+
kv.profile =
|
|
10
|
+
profileID && queryContext.resolveValue(profileID);
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12
|
+
kv.isMe =
|
|
13
|
+
coMap.id ===
|
|
14
|
+
queryContext.node.account.id;
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
for (const key of coMap.keys()) {
|
|
18
|
+
const value = coMap.get(key);
|
|
19
|
+
if (value === undefined)
|
|
20
|
+
continue;
|
|
21
|
+
kv[key] = queryContext.resolveValue(value
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return Object.assign(new QueriedCoMapBase(coMap, queryContext), kv);
|
|
27
|
+
}
|
|
28
|
+
/** @internal */
|
|
29
|
+
constructor(coMap, queryContext) {
|
|
30
|
+
Object.defineProperties(this, {
|
|
31
|
+
coMap: { value: coMap, enumerable: false },
|
|
32
|
+
id: { value: coMap.id, enumerable: false },
|
|
33
|
+
type: { value: "comap", enumerable: false },
|
|
34
|
+
edits: {
|
|
35
|
+
value: Object.fromEntries(coMap.keys().flatMap((key) => {
|
|
36
|
+
const edits = [...coMap.editsAt(key)].map((edit) => ({
|
|
37
|
+
by: edit.by && isAccountID(edit.by)
|
|
38
|
+
? queryContext.resolveAccount(edit.by)
|
|
39
|
+
: undefined,
|
|
40
|
+
tx: edit.tx,
|
|
41
|
+
at: new Date(edit.at),
|
|
42
|
+
value: edit.value &&
|
|
43
|
+
queryContext.resolveValue(edit.value),
|
|
44
|
+
}));
|
|
45
|
+
const lastEdit = edits[edits.length - 1];
|
|
46
|
+
if (!lastEdit)
|
|
47
|
+
return [];
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
49
|
+
const editsAtKey = {
|
|
50
|
+
by: lastEdit.by,
|
|
51
|
+
tx: lastEdit.tx,
|
|
52
|
+
at: lastEdit.at,
|
|
53
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
54
|
+
value: lastEdit.value,
|
|
55
|
+
all: edits,
|
|
56
|
+
};
|
|
57
|
+
return [[key, editsAtKey]];
|
|
58
|
+
})),
|
|
59
|
+
enumerable: false,
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
get meta() {
|
|
64
|
+
return this.coMap.meta;
|
|
65
|
+
}
|
|
66
|
+
get group() {
|
|
67
|
+
return this.coMap.group;
|
|
68
|
+
}
|
|
69
|
+
get core() {
|
|
70
|
+
return this.coMap.core;
|
|
71
|
+
}
|
|
72
|
+
set(...args) {
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
74
|
+
return this.coMap.set(...args);
|
|
75
|
+
}
|
|
76
|
+
delete(key, privacy) {
|
|
77
|
+
return this.coMap.delete(key, privacy);
|
|
78
|
+
}
|
|
79
|
+
mutate(mutator) {
|
|
80
|
+
return this.coMap.mutate(mutator);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=queriedCoMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queriedCoMap.js","sourceRoot":"","sources":["../../src/queriedCoValues/queriedCoMap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { JsonValue } from "../jsonValue.js";
|
|
2
|
+
import { MutableCoStream } from "../coValues/coStream.js";
|
|
3
|
+
import { CoValueCore } from "../coValueCore.js";
|
|
4
|
+
import { Group } from "../group.js";
|
|
5
|
+
import { AccountID } from "../account.js";
|
|
6
|
+
import { AnyCoStream, CoID, CoValue } from "../coValue.js";
|
|
7
|
+
import { SessionID, TransactionID } from "../ids.js";
|
|
8
|
+
import { QueriedAccountAndProfile } from "./queriedCoMap.js";
|
|
9
|
+
import { ValueOrSubQueried, QueryContext } from "../queries.js";
|
|
10
|
+
export type QueriedCoStreamItems<Item extends JsonValue | CoValue> = {
|
|
11
|
+
last?: ValueOrSubQueried<Item>;
|
|
12
|
+
by?: QueriedAccountAndProfile;
|
|
13
|
+
tx?: TransactionID;
|
|
14
|
+
at?: Date;
|
|
15
|
+
all: {
|
|
16
|
+
value: ValueOrSubQueried<Item>;
|
|
17
|
+
by?: QueriedAccountAndProfile;
|
|
18
|
+
tx: TransactionID;
|
|
19
|
+
at: Date;
|
|
20
|
+
}[];
|
|
21
|
+
};
|
|
22
|
+
export declare class QueriedCoStream<S extends AnyCoStream> {
|
|
23
|
+
coStream: S;
|
|
24
|
+
id: CoID<S>;
|
|
25
|
+
type: "costream";
|
|
26
|
+
/** @internal */
|
|
27
|
+
constructor(coStream: S, queryContext: QueryContext);
|
|
28
|
+
get meta(): S["meta"];
|
|
29
|
+
get group(): Group;
|
|
30
|
+
get core(): CoValueCore;
|
|
31
|
+
me?: QueriedCoStreamItems<S["_item"]>;
|
|
32
|
+
perAccount: {
|
|
33
|
+
[account: AccountID]: QueriedCoStreamItems<S["_item"]>;
|
|
34
|
+
};
|
|
35
|
+
perSession: {
|
|
36
|
+
[session: SessionID]: QueriedCoStreamItems<S["_item"]>;
|
|
37
|
+
};
|
|
38
|
+
push(item: S["_item"] extends CoValue ? S["_item"] | CoID<S["_item"]> : S["_item"], privacy?: "private" | "trusting"): S;
|
|
39
|
+
mutate(mutator: (mutable: MutableCoStream<S["_item"], S["meta"]>) => void): S;
|
|
40
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { isAccountID } from "../account.js";
|
|
2
|
+
export class QueriedCoStream {
|
|
3
|
+
/** @internal */
|
|
4
|
+
constructor(coStream, queryContext) {
|
|
5
|
+
this.type = "costream";
|
|
6
|
+
this.coStream = coStream;
|
|
7
|
+
this.id = coStream.id;
|
|
8
|
+
this.perSession = Object.fromEntries(coStream.sessions().map((sessionID) => {
|
|
9
|
+
const items = [...coStream.itemsIn(sessionID)].map((item) => ({
|
|
10
|
+
by: item.by && isAccountID(item.by)
|
|
11
|
+
? queryContext.resolveAccount(item.by)
|
|
12
|
+
: undefined,
|
|
13
|
+
tx: item.tx,
|
|
14
|
+
at: new Date(item.at),
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
16
|
+
value: queryContext.resolveValue(item.value),
|
|
17
|
+
}));
|
|
18
|
+
const lastItem = items[items.length - 1];
|
|
19
|
+
return [
|
|
20
|
+
sessionID,
|
|
21
|
+
{
|
|
22
|
+
last: lastItem?.value,
|
|
23
|
+
by: lastItem?.by,
|
|
24
|
+
tx: lastItem?.tx,
|
|
25
|
+
at: lastItem?.at,
|
|
26
|
+
all: items,
|
|
27
|
+
},
|
|
28
|
+
];
|
|
29
|
+
}));
|
|
30
|
+
this.perAccount = Object.fromEntries([...coStream.accounts()].map((accountID) => {
|
|
31
|
+
const items = [...coStream.itemsBy(accountID)].map((item) => ({
|
|
32
|
+
by: item.by && isAccountID(item.by)
|
|
33
|
+
? queryContext.resolveAccount(item.by)
|
|
34
|
+
: undefined,
|
|
35
|
+
tx: item.tx,
|
|
36
|
+
at: new Date(item.at),
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
38
|
+
value: queryContext.resolveValue(item.value),
|
|
39
|
+
}));
|
|
40
|
+
const lastItem = items[items.length - 1];
|
|
41
|
+
return [
|
|
42
|
+
accountID,
|
|
43
|
+
{
|
|
44
|
+
last: lastItem?.value,
|
|
45
|
+
by: lastItem?.by,
|
|
46
|
+
tx: lastItem?.tx,
|
|
47
|
+
at: lastItem?.at,
|
|
48
|
+
all: items,
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
}));
|
|
52
|
+
this.me = isAccountID(queryContext.node.account.id)
|
|
53
|
+
? this.perAccount[queryContext.node.account.id]
|
|
54
|
+
: undefined;
|
|
55
|
+
}
|
|
56
|
+
get meta() {
|
|
57
|
+
return this.coStream.meta;
|
|
58
|
+
}
|
|
59
|
+
get group() {
|
|
60
|
+
return this.coStream.group;
|
|
61
|
+
}
|
|
62
|
+
get core() {
|
|
63
|
+
return this.coStream.core;
|
|
64
|
+
}
|
|
65
|
+
push(item, privacy) {
|
|
66
|
+
return this.coStream.push(item, privacy);
|
|
67
|
+
}
|
|
68
|
+
mutate(mutator) {
|
|
69
|
+
return this.coStream.mutate(mutator);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=queriedCoStream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queriedCoStream.js","sourceRoot":"","sources":["../../src/queriedCoValues/queriedCoStream.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { JsonValue } from "./jsonValue.js";
|
|
2
|
+
import { AccountID } from "./account.js";
|
|
3
|
+
import { AnyCoList, AnyCoMap, AnyCoStream, CoID, CoValue } from "./coValue.js";
|
|
4
|
+
import { LocalNode } from "./localNode.js";
|
|
5
|
+
import { QueriedAccountAndProfile, QueriedCoMap } from "./queriedCoValues/queriedCoMap.js";
|
|
6
|
+
import { QueriedCoList } from "./queriedCoValues/queriedCoList.js";
|
|
7
|
+
import { QueriedCoStream } from "./queriedCoValues/queriedCoStream.js";
|
|
8
|
+
export type Queried<T extends CoValue> = T extends AnyCoMap ? QueriedCoMap<T> : T extends AnyCoList ? QueriedCoList<T> : T extends AnyCoStream ? T["meta"] extends {
|
|
9
|
+
type: "binary";
|
|
10
|
+
} ? never : QueriedCoStream<T> : never;
|
|
11
|
+
export type ValueOrSubQueried<V extends JsonValue | CoValue | CoID<CoValue> | undefined> = V extends CoID<infer C> ? Queried<C> | undefined : V extends CoValue ? Queried<V> | undefined : V;
|
|
12
|
+
export interface CleanupCallbackAndUsable {
|
|
13
|
+
(): void;
|
|
14
|
+
[Symbol.dispose]: () => void;
|
|
15
|
+
}
|
|
16
|
+
export declare class QueryContext {
|
|
17
|
+
values: {
|
|
18
|
+
[id: CoID<CoValue>]: {
|
|
19
|
+
lastQueried: Queried<CoValue> | undefined;
|
|
20
|
+
unsubscribe: () => void;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
node: LocalNode;
|
|
24
|
+
onUpdate: () => void;
|
|
25
|
+
constructor(node: LocalNode, onUpdate: () => void);
|
|
26
|
+
getChildLastQueriedOrSubscribe<T extends CoValue>(valueID: CoID<T>): Queried<T> | undefined;
|
|
27
|
+
resolveAccount(accountID: AccountID): QueriedAccountAndProfile;
|
|
28
|
+
resolveValue<T extends JsonValue>(value: T): T extends CoID<infer C> ? Queried<C> | undefined : T;
|
|
29
|
+
cleanup(): void;
|
|
30
|
+
}
|
|
31
|
+
export declare function query<T extends CoValue>(id: CoID<T>, node: LocalNode, callback: (queried: Queried<T> | undefined) => void, parentContext?: QueryContext): CleanupCallbackAndUsable;
|
package/dist/queries.js
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { CoMap } from "./coValues/coMap.js";
|
|
2
|
+
import { CoStream } from "./coValues/coStream.js";
|
|
3
|
+
import { CoList } from "./coValues/coList.js";
|
|
4
|
+
import { QueriedCoMapBase, } from "./queriedCoValues/queriedCoMap.js";
|
|
5
|
+
import { QueriedCoList } from "./queriedCoValues/queriedCoList.js";
|
|
6
|
+
import { QueriedCoStream } from "./queriedCoValues/queriedCoStream.js";
|
|
7
|
+
export class QueryContext {
|
|
8
|
+
constructor(node, onUpdate) {
|
|
9
|
+
this.values = {};
|
|
10
|
+
this.node = node;
|
|
11
|
+
this.onUpdate = onUpdate;
|
|
12
|
+
}
|
|
13
|
+
getChildLastQueriedOrSubscribe(valueID) {
|
|
14
|
+
let value = this.values[valueID];
|
|
15
|
+
if (!value) {
|
|
16
|
+
value = {
|
|
17
|
+
lastQueried: undefined,
|
|
18
|
+
unsubscribe: query(valueID, this.node, (childQueried) => {
|
|
19
|
+
value.lastQueried = childQueried;
|
|
20
|
+
this.onUpdate();
|
|
21
|
+
}),
|
|
22
|
+
};
|
|
23
|
+
this.values[valueID] = value;
|
|
24
|
+
}
|
|
25
|
+
return value.lastQueried;
|
|
26
|
+
}
|
|
27
|
+
resolveAccount(accountID) {
|
|
28
|
+
return this.getChildLastQueriedOrSubscribe(accountID);
|
|
29
|
+
}
|
|
30
|
+
resolveValue(value) {
|
|
31
|
+
return (typeof value === "string" && value.startsWith("co_")
|
|
32
|
+
? this.getChildLastQueriedOrSubscribe(value)
|
|
33
|
+
: value);
|
|
34
|
+
}
|
|
35
|
+
cleanup() {
|
|
36
|
+
for (const child of Object.values(this.values)) {
|
|
37
|
+
child.unsubscribe();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export function query(id, node, callback, parentContext) {
|
|
42
|
+
console.log("querying", id);
|
|
43
|
+
const context = parentContext || new QueryContext(node, onUpdate);
|
|
44
|
+
const unsubscribe = node.subscribe(id, (update) => {
|
|
45
|
+
lastRootValue = update;
|
|
46
|
+
onUpdate();
|
|
47
|
+
});
|
|
48
|
+
let lastRootValue;
|
|
49
|
+
function onUpdate() {
|
|
50
|
+
const rootValue = lastRootValue;
|
|
51
|
+
if (rootValue === undefined) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
if (rootValue instanceof CoMap) {
|
|
55
|
+
callback(QueriedCoMapBase.newWithKVPairs(rootValue, context));
|
|
56
|
+
}
|
|
57
|
+
else if (rootValue instanceof CoList) {
|
|
58
|
+
callback(new QueriedCoList(rootValue, context));
|
|
59
|
+
}
|
|
60
|
+
else if (rootValue instanceof CoStream) {
|
|
61
|
+
if (rootValue.meta?.type === "binary") {
|
|
62
|
+
// Querying binary string not yet implemented
|
|
63
|
+
return {};
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
callback(new QueriedCoStream(rootValue, context));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
const cleanup = function cleanup() {
|
|
71
|
+
context.cleanup();
|
|
72
|
+
unsubscribe();
|
|
73
|
+
};
|
|
74
|
+
cleanup[Symbol.dispose] = cleanup;
|
|
75
|
+
return cleanup;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=queries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../src/queries.ts"],"names":[],"mappings":"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"}
|
package/dist/sync.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Signature } from "./crypto.js";
|
|
2
2
|
import { CoValueHeader, Transaction } from "./coValueCore.js";
|
|
3
3
|
import { CoValueCore } from "./coValueCore.js";
|
|
4
|
-
import { LocalNode } from "./
|
|
4
|
+
import { LocalNode } from "./localNode.js";
|
|
5
5
|
import { ReadableStream, WritableStream, WritableStreamDefaultWriter } from "isomorphic-streams";
|
|
6
6
|
import { RawCoID, SessionID } from "./ids.js";
|
|
7
7
|
export type CoValueKnownState = {
|