@verdant-web/common 1.11.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/LICENSE +21 -0
- package/dist/cjs/EventSubscriber.d.ts +17 -0
- package/dist/cjs/EventSubscriber.js +67 -0
- package/dist/cjs/EventSubscriber.js.map +1 -0
- package/dist/cjs/baseline.d.ts +5 -0
- package/dist/cjs/baseline.js +3 -0
- package/dist/cjs/baseline.js.map +1 -0
- package/dist/cjs/batching.d.ts +41 -0
- package/dist/cjs/batching.js +89 -0
- package/dist/cjs/batching.js.map +1 -0
- package/dist/cjs/files.d.ts +19 -0
- package/dist/cjs/files.js +19 -0
- package/dist/cjs/files.js.map +1 -0
- package/dist/cjs/files.test.d.ts +1 -0
- package/dist/cjs/files.test.js +81 -0
- package/dist/cjs/files.test.js.map +1 -0
- package/dist/cjs/index.d.ts +18 -0
- package/dist/cjs/index.js +36 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/indexes.d.ts +14 -0
- package/dist/cjs/indexes.js +116 -0
- package/dist/cjs/indexes.js.map +1 -0
- package/dist/cjs/indexes.test.d.ts +1 -0
- package/dist/cjs/indexes.test.js +128 -0
- package/dist/cjs/indexes.test.js.map +1 -0
- package/dist/cjs/migration.d.ts +98 -0
- package/dist/cjs/migration.js +128 -0
- package/dist/cjs/migration.js.map +1 -0
- package/dist/cjs/oids.d.ts +87 -0
- package/dist/cjs/oids.js +375 -0
- package/dist/cjs/oids.js.map +1 -0
- package/dist/cjs/oids.test.d.ts +1 -0
- package/dist/cjs/oids.test.js +282 -0
- package/dist/cjs/oids.test.js.map +1 -0
- package/dist/cjs/operation.d.ts +139 -0
- package/dist/cjs/operation.js +533 -0
- package/dist/cjs/operation.js.map +1 -0
- package/dist/cjs/operation.test.d.ts +1 -0
- package/dist/cjs/operation.test.js +827 -0
- package/dist/cjs/operation.test.js.map +1 -0
- package/dist/cjs/patch.d.ts +26 -0
- package/dist/cjs/patch.js +227 -0
- package/dist/cjs/patch.js.map +1 -0
- package/dist/cjs/presence.d.ts +27 -0
- package/dist/cjs/presence.js +3 -0
- package/dist/cjs/presence.js.map +1 -0
- package/dist/cjs/protocol.d.ts +145 -0
- package/dist/cjs/protocol.js +4 -0
- package/dist/cjs/protocol.js.map +1 -0
- package/dist/cjs/refs.d.ts +5 -0
- package/dist/cjs/refs.js +22 -0
- package/dist/cjs/refs.js.map +1 -0
- package/dist/cjs/replica.d.ts +28 -0
- package/dist/cjs/replica.js +29 -0
- package/dist/cjs/replica.js.map +1 -0
- package/dist/cjs/schema/defaults.d.ts +4 -0
- package/dist/cjs/schema/defaults.js +72 -0
- package/dist/cjs/schema/defaults.js.map +1 -0
- package/dist/cjs/schema/defaults.test.d.ts +1 -0
- package/dist/cjs/schema/defaults.test.js +21 -0
- package/dist/cjs/schema/defaults.test.js.map +1 -0
- package/dist/cjs/schema/index.d.ts +8 -0
- package/dist/cjs/schema/index.js +29 -0
- package/dist/cjs/schema/index.js.map +1 -0
- package/dist/cjs/schema/indexFilters.d.ts +6 -0
- package/dist/cjs/schema/indexFilters.js +31 -0
- package/dist/cjs/schema/indexFilters.js.map +1 -0
- package/dist/cjs/schema/types/collection.d.ts +51 -0
- package/dist/cjs/schema/types/collection.js +3 -0
- package/dist/cjs/schema/types/collection.js.map +1 -0
- package/dist/cjs/schema/types/compounds.d.ts +12 -0
- package/dist/cjs/schema/types/compounds.js +3 -0
- package/dist/cjs/schema/types/compounds.js.map +1 -0
- package/dist/cjs/schema/types/fields.d.ts +59 -0
- package/dist/cjs/schema/types/fields.js +3 -0
- package/dist/cjs/schema/types/fields.js.map +1 -0
- package/dist/cjs/schema/types/filters.d.ts +29 -0
- package/dist/cjs/schema/types/filters.js +3 -0
- package/dist/cjs/schema/types/filters.js.map +1 -0
- package/dist/cjs/schema/types/shapes.d.ts +21 -0
- package/dist/cjs/schema/types/shapes.js +3 -0
- package/dist/cjs/schema/types/shapes.js.map +1 -0
- package/dist/cjs/schema/types/synthetics.d.ts +28 -0
- package/dist/cjs/schema/types/synthetics.js +3 -0
- package/dist/cjs/schema/types/synthetics.js.map +1 -0
- package/dist/cjs/schema/types.d.ts +18 -0
- package/dist/cjs/schema/types.js +23 -0
- package/dist/cjs/schema/types.js.map +1 -0
- package/dist/cjs/timestamp.d.ts +48 -0
- package/dist/cjs/timestamp.js +244 -0
- package/dist/cjs/timestamp.js.map +1 -0
- package/dist/cjs/timestamp.test.d.ts +1 -0
- package/dist/cjs/timestamp.test.js +94 -0
- package/dist/cjs/timestamp.test.js.map +1 -0
- package/dist/cjs/undo.d.ts +3 -0
- package/dist/cjs/undo.js +199 -0
- package/dist/cjs/undo.js.map +1 -0
- package/dist/cjs/utils.d.ts +15 -0
- package/dist/cjs/utils.js +128 -0
- package/dist/cjs/utils.js.map +1 -0
- package/dist/cjs/utils.test.d.ts +1 -0
- package/dist/cjs/utils.test.js +37 -0
- package/dist/cjs/utils.test.js.map +1 -0
- package/dist/esm/EventSubscriber.d.ts +17 -0
- package/dist/esm/EventSubscriber.js +63 -0
- package/dist/esm/EventSubscriber.js.map +1 -0
- package/dist/esm/baseline.d.ts +5 -0
- package/dist/esm/baseline.js +2 -0
- package/dist/esm/baseline.js.map +1 -0
- package/dist/esm/batching.d.ts +41 -0
- package/dist/esm/batching.js +84 -0
- package/dist/esm/batching.js.map +1 -0
- package/dist/esm/files.d.ts +19 -0
- package/dist/esm/files.js +13 -0
- package/dist/esm/files.js.map +1 -0
- package/dist/esm/files.test.d.ts +1 -0
- package/dist/esm/files.test.js +79 -0
- package/dist/esm/files.test.js.map +1 -0
- package/dist/esm/index.d.ts +18 -0
- package/dist/esm/index.js +16 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/indexes.d.ts +14 -0
- package/dist/esm/indexes.js +106 -0
- package/dist/esm/indexes.js.map +1 -0
- package/dist/esm/indexes.test.d.ts +1 -0
- package/dist/esm/indexes.test.js +126 -0
- package/dist/esm/indexes.test.js.map +1 -0
- package/dist/esm/migration.d.ts +98 -0
- package/dist/esm/migration.js +122 -0
- package/dist/esm/migration.js.map +1 -0
- package/dist/esm/oids.d.ts +87 -0
- package/dist/esm/oids.js +348 -0
- package/dist/esm/oids.js.map +1 -0
- package/dist/esm/oids.test.d.ts +1 -0
- package/dist/esm/oids.test.js +280 -0
- package/dist/esm/oids.test.js.map +1 -0
- package/dist/esm/operation.d.ts +139 -0
- package/dist/esm/operation.js +518 -0
- package/dist/esm/operation.js.map +1 -0
- package/dist/esm/operation.test.d.ts +1 -0
- package/dist/esm/operation.test.js +825 -0
- package/dist/esm/operation.test.js.map +1 -0
- package/dist/esm/patch.d.ts +26 -0
- package/dist/esm/patch.js +223 -0
- package/dist/esm/patch.js.map +1 -0
- package/dist/esm/presence.d.ts +27 -0
- package/dist/esm/presence.js +2 -0
- package/dist/esm/presence.js.map +1 -0
- package/dist/esm/protocol.d.ts +145 -0
- package/dist/esm/protocol.js +3 -0
- package/dist/esm/protocol.js.map +1 -0
- package/dist/esm/refs.d.ts +5 -0
- package/dist/esm/refs.js +17 -0
- package/dist/esm/refs.js.map +1 -0
- package/dist/esm/replica.d.ts +28 -0
- package/dist/esm/replica.js +26 -0
- package/dist/esm/replica.js.map +1 -0
- package/dist/esm/schema/defaults.d.ts +4 -0
- package/dist/esm/schema/defaults.js +66 -0
- package/dist/esm/schema/defaults.js.map +1 -0
- package/dist/esm/schema/defaults.test.d.ts +1 -0
- package/dist/esm/schema/defaults.test.js +19 -0
- package/dist/esm/schema/defaults.test.js.map +1 -0
- package/dist/esm/schema/index.d.ts +8 -0
- package/dist/esm/schema/index.js +10 -0
- package/dist/esm/schema/index.js.map +1 -0
- package/dist/esm/schema/indexFilters.d.ts +6 -0
- package/dist/esm/schema/indexFilters.js +23 -0
- package/dist/esm/schema/indexFilters.js.map +1 -0
- package/dist/esm/schema/types/collection.d.ts +51 -0
- package/dist/esm/schema/types/collection.js +2 -0
- package/dist/esm/schema/types/collection.js.map +1 -0
- package/dist/esm/schema/types/compounds.d.ts +12 -0
- package/dist/esm/schema/types/compounds.js +2 -0
- package/dist/esm/schema/types/compounds.js.map +1 -0
- package/dist/esm/schema/types/fields.d.ts +59 -0
- package/dist/esm/schema/types/fields.js +2 -0
- package/dist/esm/schema/types/fields.js.map +1 -0
- package/dist/esm/schema/types/filters.d.ts +29 -0
- package/dist/esm/schema/types/filters.js +2 -0
- package/dist/esm/schema/types/filters.js.map +1 -0
- package/dist/esm/schema/types/shapes.d.ts +21 -0
- package/dist/esm/schema/types/shapes.js +2 -0
- package/dist/esm/schema/types/shapes.js.map +1 -0
- package/dist/esm/schema/types/synthetics.d.ts +28 -0
- package/dist/esm/schema/types/synthetics.js +2 -0
- package/dist/esm/schema/types/synthetics.js.map +1 -0
- package/dist/esm/schema/types.d.ts +18 -0
- package/dist/esm/schema/types.js +7 -0
- package/dist/esm/schema/types.js.map +1 -0
- package/dist/esm/timestamp.d.ts +48 -0
- package/dist/esm/timestamp.js +229 -0
- package/dist/esm/timestamp.js.map +1 -0
- package/dist/esm/timestamp.test.d.ts +1 -0
- package/dist/esm/timestamp.test.js +92 -0
- package/dist/esm/timestamp.test.js.map +1 -0
- package/dist/esm/undo.d.ts +3 -0
- package/dist/esm/undo.js +195 -0
- package/dist/esm/undo.js.map +1 -0
- package/dist/esm/utils.d.ts +15 -0
- package/dist/esm/utils.js +114 -0
- package/dist/esm/utils.js.map +1 -0
- package/dist/esm/utils.test.d.ts +1 -0
- package/dist/esm/utils.test.js +35 -0
- package/dist/esm/utils.test.js.map +1 -0
- package/dist/tsconfig-cjs.tsbuildinfo +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +38 -0
- package/src/EventSubscriber.ts +81 -0
- package/src/baseline.ts +9 -0
- package/src/batching.ts +135 -0
- package/src/files.ts +34 -0
- package/src/index.ts +26 -0
- package/src/indexes.test.ts +158 -0
- package/src/indexes.ts +151 -0
- package/src/migration.ts +391 -0
- package/src/oids.test.ts +395 -0
- package/src/oids.ts +442 -0
- package/src/operation.test.ts +966 -0
- package/src/operation.ts +755 -0
- package/src/patch.ts +277 -0
- package/src/presence.ts +29 -0
- package/src/protocol.ts +184 -0
- package/src/refs.ts +16 -0
- package/src/replica.ts +29 -0
- package/src/schema/defaults.test.ts +19 -0
- package/src/schema/defaults.ts +72 -0
- package/src/schema/index.ts +28 -0
- package/src/schema/indexFilters.ts +49 -0
- package/src/schema/types/collection.ts +133 -0
- package/src/schema/types/compounds.ts +33 -0
- package/src/schema/types/fields.ts +85 -0
- package/src/schema/types/filters.ts +39 -0
- package/src/schema/types/shapes.ts +83 -0
- package/src/schema/types/synthetics.ts +45 -0
- package/src/schema/types.ts +28 -0
- package/src/timestamp.test.ts +113 -0
- package/src/timestamp.ts +284 -0
- package/src/undo.ts +205 -0
- package/src/utils.test.ts +38 -0
- package/src/utils.ts +137 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation.test.js","sourceRoot":"","sources":["../../src/operation.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* High-level patch creation for use with complex nested objects.
|
|
3
|
+
*/
|
|
4
|
+
import { KeyPath, ObjectIdentifier } from './oids.js';
|
|
5
|
+
import { ObjectRef, Operation, PropertyName } from './operation.js';
|
|
6
|
+
export declare class PatchCreator {
|
|
7
|
+
private getNow;
|
|
8
|
+
private createSubId?;
|
|
9
|
+
constructor(getNow: () => string, createSubId?: (() => string) | undefined);
|
|
10
|
+
createDiff: (from: any, to: any, keyPath: KeyPath, options?: {
|
|
11
|
+
mergeUnknownObjects?: boolean;
|
|
12
|
+
defaultUndefined?: boolean;
|
|
13
|
+
}) => Operation[];
|
|
14
|
+
createInitialize: (obj: any, oid: ObjectIdentifier) => Operation[];
|
|
15
|
+
createSet: (oid: ObjectIdentifier, key: PropertyName, value: any, keyPath: KeyPath) => Operation[];
|
|
16
|
+
createRemove: (oid: ObjectIdentifier, key: PropertyName) => Operation[];
|
|
17
|
+
createListPush: (oid: ObjectIdentifier, value: any) => Operation[];
|
|
18
|
+
createListAdd: (oid: ObjectIdentifier, value: any) => Operation[];
|
|
19
|
+
createListInsert: (oid: ObjectIdentifier, index: number, value: any) => Operation[];
|
|
20
|
+
createListRemove: (oid: ObjectIdentifier, value: any, only?: 'first' | 'last') => Operation[];
|
|
21
|
+
createListDelete: (oid: ObjectIdentifier, index: number, count?: number) => Operation[];
|
|
22
|
+
createListMoveByRef: (oid: ObjectIdentifier, value: ObjectRef, index: number) => Operation[];
|
|
23
|
+
createListMoveByIndex: (oid: ObjectIdentifier, fromIndex: number, toIndex: number) => Operation[];
|
|
24
|
+
createDelete: (oid: ObjectIdentifier) => Operation[];
|
|
25
|
+
createDeleteAll: (oids: ObjectIdentifier[]) => Operation[];
|
|
26
|
+
}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* High-level patch creation for use with complex nested objects.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.PatchCreator = void 0;
|
|
7
|
+
const oids_js_1 = require("./oids.js");
|
|
8
|
+
const operation_js_1 = require("./operation.js");
|
|
9
|
+
const refs_js_1 = require("./refs.js");
|
|
10
|
+
const utils_js_1 = require("./utils.js");
|
|
11
|
+
class PatchCreator {
|
|
12
|
+
constructor(getNow, createSubId) {
|
|
13
|
+
this.getNow = getNow;
|
|
14
|
+
this.createSubId = createSubId;
|
|
15
|
+
this.createDiff = (from, to, keyPath, options = {}) => {
|
|
16
|
+
return (0, operation_js_1.diffToPatches)(from, to, this.getNow, keyPath, this.createSubId, [], options);
|
|
17
|
+
};
|
|
18
|
+
this.createInitialize = (obj, oid) => {
|
|
19
|
+
return (0, operation_js_1.initialToPatches)(obj, oid, this.getNow, this.createSubId);
|
|
20
|
+
};
|
|
21
|
+
this.createSet = (oid, key, value, keyPath) => {
|
|
22
|
+
// incoming value must be normalized. if it's not a primitive, it and all sub-objects
|
|
23
|
+
// must be created
|
|
24
|
+
if (!(0, utils_js_1.isObject)(value) || (0, refs_js_1.isRef)(value)) {
|
|
25
|
+
return [
|
|
26
|
+
{
|
|
27
|
+
oid,
|
|
28
|
+
timestamp: this.getNow(),
|
|
29
|
+
data: {
|
|
30
|
+
op: 'set',
|
|
31
|
+
name: key,
|
|
32
|
+
value,
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
];
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
const itemOid = (0, oids_js_1.createSubOid)(oid, key, this.createSubId);
|
|
39
|
+
return [
|
|
40
|
+
// since we're setting a complex nested object, we can initialize it wholesale.
|
|
41
|
+
// no diffing to do.
|
|
42
|
+
...(0, operation_js_1.initialToPatches)(value, itemOid, this.getNow),
|
|
43
|
+
// then set the reference to the object
|
|
44
|
+
{
|
|
45
|
+
oid,
|
|
46
|
+
timestamp: this.getNow(),
|
|
47
|
+
data: {
|
|
48
|
+
op: 'set',
|
|
49
|
+
value: (0, oids_js_1.createRef)(itemOid),
|
|
50
|
+
name: key,
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
this.createRemove = (oid, key) => {
|
|
57
|
+
return [
|
|
58
|
+
{
|
|
59
|
+
oid,
|
|
60
|
+
timestamp: this.getNow(),
|
|
61
|
+
data: {
|
|
62
|
+
op: 'remove',
|
|
63
|
+
name: key,
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
];
|
|
67
|
+
};
|
|
68
|
+
this.createListPush = (oid, value) => {
|
|
69
|
+
if (!(0, utils_js_1.isObject)(value)) {
|
|
70
|
+
return [
|
|
71
|
+
{
|
|
72
|
+
oid,
|
|
73
|
+
timestamp: this.getNow(),
|
|
74
|
+
data: {
|
|
75
|
+
op: 'list-push',
|
|
76
|
+
value,
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
];
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
const itemOid = (0, oids_js_1.createSubOid)(oid, 0, this.createSubId);
|
|
83
|
+
return [
|
|
84
|
+
...(0, operation_js_1.initialToPatches)(value, itemOid, this.getNow),
|
|
85
|
+
{
|
|
86
|
+
oid,
|
|
87
|
+
timestamp: this.getNow(),
|
|
88
|
+
data: {
|
|
89
|
+
op: 'list-push',
|
|
90
|
+
value: (0, oids_js_1.createRef)(itemOid),
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
];
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
this.createListAdd = (oid, value) => {
|
|
97
|
+
if ((0, utils_js_1.isObject)(value)) {
|
|
98
|
+
return [
|
|
99
|
+
{
|
|
100
|
+
oid,
|
|
101
|
+
timestamp: this.getNow(),
|
|
102
|
+
data: {
|
|
103
|
+
op: 'list-add',
|
|
104
|
+
value: (0, oids_js_1.createRef)(value),
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
];
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
return [
|
|
111
|
+
{
|
|
112
|
+
oid,
|
|
113
|
+
timestamp: this.getNow(),
|
|
114
|
+
data: {
|
|
115
|
+
op: 'list-add',
|
|
116
|
+
value,
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
];
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
this.createListInsert = (oid, index, value) => {
|
|
123
|
+
if (!(0, utils_js_1.isObject)(value)) {
|
|
124
|
+
return [
|
|
125
|
+
{
|
|
126
|
+
oid,
|
|
127
|
+
timestamp: this.getNow(),
|
|
128
|
+
data: {
|
|
129
|
+
op: 'list-insert',
|
|
130
|
+
value,
|
|
131
|
+
index,
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
];
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
const itemOid = (0, oids_js_1.createSubOid)(oid, index, this.createSubId);
|
|
138
|
+
return [
|
|
139
|
+
...(0, operation_js_1.initialToPatches)(value, itemOid, this.getNow),
|
|
140
|
+
{
|
|
141
|
+
oid,
|
|
142
|
+
timestamp: this.getNow(),
|
|
143
|
+
data: {
|
|
144
|
+
op: 'list-insert',
|
|
145
|
+
value: (0, oids_js_1.createRef)(itemOid),
|
|
146
|
+
index,
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
];
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
this.createListRemove = (oid, value, only) => {
|
|
153
|
+
return [
|
|
154
|
+
{
|
|
155
|
+
oid,
|
|
156
|
+
timestamp: this.getNow(),
|
|
157
|
+
data: {
|
|
158
|
+
op: 'list-remove',
|
|
159
|
+
value,
|
|
160
|
+
only,
|
|
161
|
+
},
|
|
162
|
+
},
|
|
163
|
+
];
|
|
164
|
+
};
|
|
165
|
+
this.createListDelete = (oid, index, count = 1) => {
|
|
166
|
+
return [
|
|
167
|
+
{
|
|
168
|
+
oid,
|
|
169
|
+
timestamp: this.getNow(),
|
|
170
|
+
data: {
|
|
171
|
+
op: 'list-delete',
|
|
172
|
+
index,
|
|
173
|
+
count,
|
|
174
|
+
},
|
|
175
|
+
},
|
|
176
|
+
];
|
|
177
|
+
};
|
|
178
|
+
this.createListMoveByRef = (oid, value, index) => {
|
|
179
|
+
return [
|
|
180
|
+
{
|
|
181
|
+
oid,
|
|
182
|
+
timestamp: this.getNow(),
|
|
183
|
+
data: {
|
|
184
|
+
op: 'list-move-by-ref',
|
|
185
|
+
value,
|
|
186
|
+
index,
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
];
|
|
190
|
+
};
|
|
191
|
+
this.createListMoveByIndex = (oid, fromIndex, toIndex) => {
|
|
192
|
+
return [
|
|
193
|
+
{
|
|
194
|
+
oid,
|
|
195
|
+
timestamp: this.getNow(),
|
|
196
|
+
data: {
|
|
197
|
+
op: 'list-move-by-index',
|
|
198
|
+
from: fromIndex,
|
|
199
|
+
to: toIndex,
|
|
200
|
+
},
|
|
201
|
+
},
|
|
202
|
+
];
|
|
203
|
+
};
|
|
204
|
+
this.createDelete = (oid) => {
|
|
205
|
+
return [
|
|
206
|
+
{
|
|
207
|
+
oid,
|
|
208
|
+
timestamp: this.getNow(),
|
|
209
|
+
data: {
|
|
210
|
+
op: 'delete',
|
|
211
|
+
},
|
|
212
|
+
},
|
|
213
|
+
];
|
|
214
|
+
};
|
|
215
|
+
this.createDeleteAll = (oids) => {
|
|
216
|
+
return oids.map((oid) => ({
|
|
217
|
+
oid,
|
|
218
|
+
timestamp: this.getNow(),
|
|
219
|
+
data: {
|
|
220
|
+
op: 'delete',
|
|
221
|
+
},
|
|
222
|
+
}));
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
exports.PatchCreator = PatchCreator;
|
|
227
|
+
//# sourceMappingURL=patch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/patch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface UserInfo<Profile, Presence> {
|
|
2
|
+
/**
|
|
3
|
+
* This is the ID representing the user who is utilizing a
|
|
4
|
+
* replica client to connect to the storage network.
|
|
5
|
+
* One user may have multiple replica clients active at once,
|
|
6
|
+
* but their presence will only reflect the most recent
|
|
7
|
+
* replica used.
|
|
8
|
+
*/
|
|
9
|
+
id: string;
|
|
10
|
+
/**
|
|
11
|
+
* This is the ID representing the replica client that is
|
|
12
|
+
* connected to the storage network. This is used to
|
|
13
|
+
* identify the client when sending messages to it.
|
|
14
|
+
*/
|
|
15
|
+
replicaId: string;
|
|
16
|
+
/**
|
|
17
|
+
* This is the user's server profile. This data is associated
|
|
18
|
+
* with the logged in user of the app and cannot be modified
|
|
19
|
+
* by the local replica directly.
|
|
20
|
+
*/
|
|
21
|
+
profile: Profile;
|
|
22
|
+
/**
|
|
23
|
+
* Presence info which can update frequently as a replica
|
|
24
|
+
* makes changes. The shape of presence is up to you.
|
|
25
|
+
*/
|
|
26
|
+
presence: Presence;
|
|
27
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presence.js","sourceRoot":"","sources":["../../src/presence.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { DocumentBaseline } from './baseline.js';
|
|
2
|
+
import { Operation } from './operation.js';
|
|
3
|
+
import { UserInfo } from './presence.js';
|
|
4
|
+
export declare type HeartbeatMessage = {
|
|
5
|
+
type: 'heartbeat';
|
|
6
|
+
timestamp: string;
|
|
7
|
+
replicaId: string;
|
|
8
|
+
};
|
|
9
|
+
export declare type HeartbeatResponseMessage = {
|
|
10
|
+
type: 'heartbeat-response';
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Used by clients to indicate they have
|
|
14
|
+
* successfully applied all operations from the
|
|
15
|
+
* server up to this one. Uses the nonce from the
|
|
16
|
+
* operation rebroadcast message as the ack.
|
|
17
|
+
*/
|
|
18
|
+
export declare type AckMessage = {
|
|
19
|
+
type: 'ack';
|
|
20
|
+
replicaId: string;
|
|
21
|
+
timestamp?: string;
|
|
22
|
+
nonce?: string;
|
|
23
|
+
};
|
|
24
|
+
export declare type OperationMessage = {
|
|
25
|
+
type: 'op';
|
|
26
|
+
replicaId: string;
|
|
27
|
+
operations: Operation[];
|
|
28
|
+
timestamp: string;
|
|
29
|
+
};
|
|
30
|
+
export declare type OperationRebroadcastMessage = {
|
|
31
|
+
type: 'op-re';
|
|
32
|
+
operations: Operation[];
|
|
33
|
+
baselines: DocumentBaseline[];
|
|
34
|
+
replicaId: string;
|
|
35
|
+
globalAckTimestamp: string | undefined;
|
|
36
|
+
ackThisNonce?: string;
|
|
37
|
+
};
|
|
38
|
+
export declare type SyncMessage = {
|
|
39
|
+
type: 'sync';
|
|
40
|
+
/** This client's replica ID */
|
|
41
|
+
replicaId: string;
|
|
42
|
+
/** the logical time this message was sent */
|
|
43
|
+
timestamp: string;
|
|
44
|
+
/** Any new operations created since the requested time */
|
|
45
|
+
operations: Operation[];
|
|
46
|
+
/** Any new baselines created since the requested time */
|
|
47
|
+
baselines: DocumentBaseline[];
|
|
48
|
+
/** the schema version known by this client */
|
|
49
|
+
schemaVersion: number;
|
|
50
|
+
/**
|
|
51
|
+
* the client may have lost its local data, in which
|
|
52
|
+
* case it may set this flag to be treated as a new client
|
|
53
|
+
* and receive a full baseline
|
|
54
|
+
*/
|
|
55
|
+
resyncAll?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* timestamp of when the replica changes began. null means
|
|
58
|
+
* full changeset from start of time
|
|
59
|
+
*/
|
|
60
|
+
since: string | null;
|
|
61
|
+
};
|
|
62
|
+
export declare type SyncResponseMessage = {
|
|
63
|
+
type: 'sync-resp';
|
|
64
|
+
operations: Operation[];
|
|
65
|
+
baselines: DocumentBaseline[];
|
|
66
|
+
/**
|
|
67
|
+
* If this flag is set, the client should discard local data
|
|
68
|
+
* and reset to incoming data only. Used when a client requested
|
|
69
|
+
* resyncAll in its sync message, or for clients which have been
|
|
70
|
+
* offline for too long. When specified true, provideChangesSince
|
|
71
|
+
* should be ignored.
|
|
72
|
+
*/
|
|
73
|
+
overwriteLocalData: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Update client on the global ack
|
|
76
|
+
*/
|
|
77
|
+
globalAckTimestamp: string | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* A map of connected clients' presences values
|
|
80
|
+
*/
|
|
81
|
+
peerPresence: Record<string, UserInfo<any, any>>;
|
|
82
|
+
/**
|
|
83
|
+
* The timestamp sent in the original sync message -
|
|
84
|
+
* this confirms the server has received the client's
|
|
85
|
+
* state up to this point. Subsequent syncs should not
|
|
86
|
+
* include operations or baselines older than this timestamp.
|
|
87
|
+
*/
|
|
88
|
+
ackedTimestamp: string;
|
|
89
|
+
/**
|
|
90
|
+
* The client should respond with a sync-ack containing
|
|
91
|
+
* this nonce to confirm it has received this message if
|
|
92
|
+
* it is not undefined
|
|
93
|
+
*/
|
|
94
|
+
ackThisNonce?: string;
|
|
95
|
+
};
|
|
96
|
+
/** @deprecated use ack */
|
|
97
|
+
export declare type SyncAckMessage = {
|
|
98
|
+
type: 'sync-ack';
|
|
99
|
+
/** The client's replica ID */
|
|
100
|
+
replicaId: string;
|
|
101
|
+
/** the logical time this message was sent */
|
|
102
|
+
timestamp: string;
|
|
103
|
+
/** the nonce sent in the sync-resp message */
|
|
104
|
+
nonce: string;
|
|
105
|
+
};
|
|
106
|
+
export declare type PresenceUpdateMessage = {
|
|
107
|
+
type: 'presence-update';
|
|
108
|
+
/** The client's replica ID */
|
|
109
|
+
replicaId: string;
|
|
110
|
+
/** new presence value */
|
|
111
|
+
presence: any;
|
|
112
|
+
};
|
|
113
|
+
export declare type PresenceChangedMessage = {
|
|
114
|
+
type: 'presence-changed';
|
|
115
|
+
/** The client's replica ID */
|
|
116
|
+
replicaId: string;
|
|
117
|
+
userInfo: UserInfo<any, any>;
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* This is only emitted when all of a user's replicas
|
|
121
|
+
* go offline.
|
|
122
|
+
*/
|
|
123
|
+
export declare type PresenceOfflineMessage = {
|
|
124
|
+
type: 'presence-offline';
|
|
125
|
+
userId: string;
|
|
126
|
+
/** The last replicaID seen by the server before the user was offline */
|
|
127
|
+
replicaId: string;
|
|
128
|
+
};
|
|
129
|
+
export declare type GlobalAckMessage = {
|
|
130
|
+
type: 'global-ack';
|
|
131
|
+
timestamp: string;
|
|
132
|
+
};
|
|
133
|
+
export declare type ForbiddenMessage = {
|
|
134
|
+
type: 'forbidden';
|
|
135
|
+
};
|
|
136
|
+
export declare type ServerAckMessage = {
|
|
137
|
+
type: 'server-ack';
|
|
138
|
+
timestamp: string;
|
|
139
|
+
};
|
|
140
|
+
export declare type ServerNeedSinceMessage = {
|
|
141
|
+
type: 'need-since';
|
|
142
|
+
since: string | null;
|
|
143
|
+
};
|
|
144
|
+
export declare type ClientMessage = HeartbeatMessage | SyncMessage | OperationMessage | AckMessage | SyncAckMessage | PresenceUpdateMessage;
|
|
145
|
+
export declare type ServerMessage = HeartbeatResponseMessage | SyncResponseMessage | OperationRebroadcastMessage | PresenceChangedMessage | PresenceOfflineMessage | GlobalAckMessage | ForbiddenMessage | ServerAckMessage | ServerNeedSinceMessage;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/protocol.ts"],"names":[],"mappings":";AAAA,mDAAmD"}
|
package/dist/cjs/refs.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.compareRefs = exports.isRef = void 0;
|
|
4
|
+
const files_js_1 = require("./files.js");
|
|
5
|
+
const operation_js_1 = require("./operation.js");
|
|
6
|
+
function isRef(obj) {
|
|
7
|
+
return (0, operation_js_1.isObjectRef)(obj) || (0, files_js_1.isFileRef)(obj);
|
|
8
|
+
}
|
|
9
|
+
exports.isRef = isRef;
|
|
10
|
+
function compareRefs(a, b) {
|
|
11
|
+
if (a === b)
|
|
12
|
+
return true;
|
|
13
|
+
if (!isRef(a) || !isRef(b))
|
|
14
|
+
return false;
|
|
15
|
+
if (a['@@type'] !== b['@@type'])
|
|
16
|
+
return false;
|
|
17
|
+
if (a.id !== b.id)
|
|
18
|
+
return false;
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
exports.compareRefs = compareRefs;
|
|
22
|
+
//# sourceMappingURL=refs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refs.js","sourceRoot":"","sources":["../../src/refs.ts"],"names":[],"mappings":";;;AAAA,yCAAgD;AAChD,iDAAwD;AAExD,SAAgB,KAAK,CAAC,GAAQ;IAC7B,OAAO,IAAA,0BAAW,EAAC,GAAG,CAAC,IAAI,IAAA,oBAAS,EAAC,GAAG,CAAC,CAAC;AAC3C,CAAC;AAFD,sBAEC;AAED,SAAgB,WAAW,CAAC,CAAM,EAAE,CAAM;IACzC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IAChC,OAAO,IAAI,CAAC;AACb,CAAC;AAND,kCAMC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface ReplicaInfo {
|
|
2
|
+
id: string;
|
|
3
|
+
ackedLogicalTime: string | null;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Different token types allow different replica client behaviors.
|
|
7
|
+
* - Realtime: allows the client to subscribe to realtime events.
|
|
8
|
+
* - Push: allows the client to push and pull data with HTTP, but not use realtime.
|
|
9
|
+
* - PassivePush: allows the client to push and pull data with HTTP, but offline changes
|
|
10
|
+
* will be discarded on reconnect.
|
|
11
|
+
* - PassiveRealtime: allows the client to subscribe to realtime events, but offline changes
|
|
12
|
+
* will be discarded on reconnect.
|
|
13
|
+
* - ReadOnlyPull: the client may only pull changes using HTTP. It may not subscribe
|
|
14
|
+
* to realtime events or push changes.
|
|
15
|
+
* - ReadOnlyRealtime: the client may only subscribe to realtime events or pull from HTTP.
|
|
16
|
+
* It may not push changes.
|
|
17
|
+
*
|
|
18
|
+
* Choosing the right token type can optimize client storage metrics significantly when
|
|
19
|
+
* many replicas are connecting to a library.
|
|
20
|
+
*/
|
|
21
|
+
export declare enum ReplicaType {
|
|
22
|
+
Realtime = 0,
|
|
23
|
+
Push = 1,
|
|
24
|
+
PassiveRealtime = 2,
|
|
25
|
+
PassivePush = 3,
|
|
26
|
+
ReadOnlyPull = 4,
|
|
27
|
+
ReadOnlyRealtime = 5
|
|
28
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReplicaType = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Different token types allow different replica client behaviors.
|
|
6
|
+
* - Realtime: allows the client to subscribe to realtime events.
|
|
7
|
+
* - Push: allows the client to push and pull data with HTTP, but not use realtime.
|
|
8
|
+
* - PassivePush: allows the client to push and pull data with HTTP, but offline changes
|
|
9
|
+
* will be discarded on reconnect.
|
|
10
|
+
* - PassiveRealtime: allows the client to subscribe to realtime events, but offline changes
|
|
11
|
+
* will be discarded on reconnect.
|
|
12
|
+
* - ReadOnlyPull: the client may only pull changes using HTTP. It may not subscribe
|
|
13
|
+
* to realtime events or push changes.
|
|
14
|
+
* - ReadOnlyRealtime: the client may only subscribe to realtime events or pull from HTTP.
|
|
15
|
+
* It may not push changes.
|
|
16
|
+
*
|
|
17
|
+
* Choosing the right token type can optimize client storage metrics significantly when
|
|
18
|
+
* many replicas are connecting to a library.
|
|
19
|
+
*/
|
|
20
|
+
var ReplicaType;
|
|
21
|
+
(function (ReplicaType) {
|
|
22
|
+
ReplicaType[ReplicaType["Realtime"] = 0] = "Realtime";
|
|
23
|
+
ReplicaType[ReplicaType["Push"] = 1] = "Push";
|
|
24
|
+
ReplicaType[ReplicaType["PassiveRealtime"] = 2] = "PassiveRealtime";
|
|
25
|
+
ReplicaType[ReplicaType["PassivePush"] = 3] = "PassivePush";
|
|
26
|
+
ReplicaType[ReplicaType["ReadOnlyPull"] = 4] = "ReadOnlyPull";
|
|
27
|
+
ReplicaType[ReplicaType["ReadOnlyRealtime"] = 5] = "ReadOnlyRealtime";
|
|
28
|
+
})(ReplicaType = exports.ReplicaType || (exports.ReplicaType = {}));
|
|
29
|
+
//# sourceMappingURL=replica.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replica.js","sourceRoot":"","sources":["../../src/replica.ts"],"names":[],"mappings":";;;AAKA;;;;;;;;;;;;;;;GAeG;AACH,IAAY,WAOX;AAPD,WAAY,WAAW;IACtB,qDAAQ,CAAA;IACR,6CAAI,CAAA;IACJ,mEAAe,CAAA;IACf,2DAAW,CAAA;IACX,6DAAY,CAAA;IACZ,qEAAgB,CAAA;AACjB,CAAC,EAPW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAOtB"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { StorageFieldSchema, StorageCollectionSchema } from './types.js';
|
|
2
|
+
export declare function addFieldDefaults(collection: StorageCollectionSchema, value: any): any;
|
|
3
|
+
export declare function traverseCollectionFieldsAndApplyDefaults(value: any, field: StorageFieldSchema): any;
|
|
4
|
+
export declare function getFieldDefault(field: StorageFieldSchema): any;
|