@verdant-web/common 2.8.0 → 2.9.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.
@@ -1 +1 @@
1
- {"version":3,"file":"authz.js","sourceRoot":"","sources":["../../src/authz.ts"],"names":[],"mappings":"AAGA,SAAS,MAAM,CAAC,GAAW;IAC1B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAChD,OAAO,GAAuB,CAAC;IAChC,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,GAAuB,CAAC;AAChC,CAAC;AAED,SAAS,MAAM,CAAC,GAAW;IAC1B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AAClB,CAAC;AAMD,MAAM,CAAC,MAAM,KAAK,GAAG;IACpB,QAAQ,EAAE,CAAC,MAAc,EAAoB,EAAE,CAAC,MAAM,CAAC,KAAK,MAAM,IAAI,CAAC;IACvE,MAAM,EAAE,GAAqB,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAClE,MAAM,EAAE,CAAC,OAAe,EAAE,EAAE;QAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACzC,CAAC;QACD,OAAO;YACN,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YACf,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YACjB,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;SAChB,CAAC;IACH,CAAC;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAErD;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACrC,IAAkE,EAClE,UAAkB;IAElB,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IACvC,IAAI,UAAU,EAAE,CAAC;QAChB,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;YAC7B,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;gBACd,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,OAAO,CAAC,OAAO,KAAK,kBAAkB,EAAE,CAAC;oBAC5C,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACvC,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IACD,IAAI,SAAS,EAAE,CAAC;QACf,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAClC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC7C,IAAI,OAAO,CAAC,OAAO,KAAK,kBAAkB,EAAE,CAAC;oBAC5C,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAC7C,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"authz.js","sourceRoot":"","sources":["../../src/authz.ts"],"names":[],"mappings":"AAGA,SAAS,MAAM,CAAC,GAAW;IAC1B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAChD,OAAO,GAAuB,CAAC;IAChC,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,GAAuB,CAAC;AAChC,CAAC;AAED,SAAS,MAAM,CAAC,GAAW;IAC1B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AAClB,CAAC;AAQD,MAAM,CAAC,MAAM,KAAK,GAAG;IACpB,QAAQ,EAAE,CAAC,MAAc,EAAoB,EAAE,CAAC,MAAM,CAAC,KAAK,MAAM,IAAI,CAAC;IACvE,MAAM,EAAE,GAAqB,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAClE,MAAM,EAAE,CAAC,OAAe,EAAE,EAAE;QAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACzC,CAAC;QACD,OAAO;YACN,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YACf,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YACjB,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;SAChB,CAAC;IACH,CAAC;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAErD;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACrC,IAAkE,EAClE,UAAkB;IAElB,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IACvC,IAAI,UAAU,EAAE,CAAC;QAChB,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;YAC7B,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;gBACd,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,OAAO,CAAC,OAAO,KAAK,kBAAkB,EAAE,CAAC;oBAC5C,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACvC,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IACD,IAAI,SAAS,EAAE,CAAC;QACf,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAClC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC7C,IAAI,OAAO,CAAC,OAAO,KAAK,kBAAkB,EAAE,CAAC;oBAC5C,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAC7C,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;AACF,CAAC"}
@@ -1,6 +1,7 @@
1
+ import { AuthorizationKey } from './authz.js';
1
2
  export type DocumentBaseline<T extends any = any> = {
2
3
  oid: string;
3
4
  snapshot: T;
4
5
  timestamp: string;
5
- authz?: string;
6
+ authz?: AuthorizationKey;
6
7
  };
@@ -1,3 +1,4 @@
1
+ import { AuthorizationKey } from './authz.js';
1
2
  import { Operation } from './operation.js';
2
3
  import { PatchCreator } from './patch.js';
3
4
  export type DiffContext = {
@@ -15,7 +16,7 @@ export type DiffContext = {
15
16
  /**
16
17
  * Authorization to apply to all created operations
17
18
  */
18
- authz?: string;
19
+ authz?: AuthorizationKey;
19
20
  patchCreator: PatchCreator;
20
21
  };
21
22
  export declare function diffToPatches(from: any, to: any, getNow: () => string, createSubId?: () => string, _?: any, // legacy, TODO: remove
@@ -24,7 +25,7 @@ options?: {
24
25
  merge?: boolean;
25
26
  /** @deprecated - use 'merge' */
26
27
  defaultUndefined?: boolean;
27
- authz?: string;
28
+ authz?: AuthorizationKey;
28
29
  }): Operation[];
29
30
  export declare function diff(from: any, to: any, ctx: DiffContext): void;
30
31
  /**
@@ -1,5 +1,5 @@
1
1
  import { VerdantError } from './error.js';
2
- import { areOidsRelated, assignOid, getOid, maybeGetOid, } from './oids.js';
2
+ import { areOidsRelated, assignOid, createRef, getOid, maybeGetOid, } from './oids.js';
3
3
  import { isOidKey } from './oidsLegacy.js';
4
4
  import { PatchCreator } from './patch.js';
5
5
  import { compareRefs, isRef } from './refs.js';
@@ -39,19 +39,11 @@ function enforceAssignedOid(parentOid, newObject, existingObjectOid, ctx) {
39
39
  assignOid(newObject, existingObjectOid);
40
40
  }
41
41
  // NOTE: new OID assignments are done in patchCreator.
42
- // else {
43
- // assignOid(
44
- // newObject,
45
- // createSubOid(parentOid, ctx.patchCreator.createSubId),
46
- // );
47
- // }
48
42
  }
49
43
  else if (!areOidsRelated(parentOid, oid)) {
50
44
  // when there's any doubt, clone the whole object. false -> do not copy OIDs
51
45
  const clone = cloneDeep(newObject, false);
52
46
  // NOTE: new OID assignments are done in patchCreator.
53
- // const cloneOid = createSubOid(parentOid, ctx.patchCreator.createSubId);
54
- // assignOid(clone, cloneOid);
55
47
  return clone;
56
48
  }
57
49
  return newObject;
@@ -94,7 +86,17 @@ export function diffLists(from, to, ctx) {
94
86
  // from object must be registered with an OID.
95
87
  const oid = getOid(from);
96
88
  // this copy will be mutated to align with inserts, making things easier to compare.
97
- const fromCopy = [...from];
89
+ const fromCopy = [];
90
+ // while iterating from, also collect some metadata.
91
+ const oidsInFrom = new Set();
92
+ for (let i = 0; i < from.length; i++) {
93
+ const value = from[i];
94
+ fromCopy[i] = value;
95
+ const oid = maybeGetOid(value);
96
+ if (oid) {
97
+ oidsInFrom.add(oid);
98
+ }
99
+ }
98
100
  // first, normalize incoming data according to OID rules. this is done early
99
101
  // so future equality checks are according to configuration like mergeUnknownObjects.
100
102
  // for example, if a bare (no oid) object is supplied for an item and mergeUnknownObjects
@@ -108,12 +110,17 @@ export function diffLists(from, to, ctx) {
108
110
  // track whether the new list has gaps in it. a gap
109
111
  // means we can no longer use list-push for new items.
110
112
  let noGaps = true;
113
+ // track any items we move by reference, so we remember to
114
+ // not delete them later.
115
+ const movedItems = new Set();
116
+ const overwrittenItems = new Set();
111
117
  for (let i = 0; i < to.length; i++) {
112
118
  const value = to[i];
113
119
  const oldValue = fromCopy[i];
114
120
  if (value === undefined) {
115
121
  noGaps = false;
116
122
  }
123
+ const itemOid = maybeGetOid(value);
117
124
  // we decide if this item is being added to the end of the list if:
118
125
  // - there were no empty spaces before it in the new list
119
126
  // - the index is beyond the scope of the original list.
@@ -122,13 +129,42 @@ export function diffLists(from, to, ctx) {
122
129
  // defined item even if gaps were there previously. we don't want to
123
130
  // accidentally 'push' into a gap, which would put the item in the wrong place.
124
131
  const isEndOfList = noGaps && i >= fromCopy.length;
125
- if (isEndOfList) {
132
+ // this branch exclusively deals with object references.
133
+ if (itemOid && oidsInFrom.has(itemOid)) {
134
+ // this item was in the old list, so no matter what we want to
135
+ // preserve its identity. the rest of the branches here all
136
+ // assume the item is new and initialize it.
137
+ if (areTheSameIdentity(value, oldValue)) {
138
+ // the item hasn't moved. we just diff it in place.
139
+ diff(oldValue, value, ctx);
140
+ }
141
+ else {
142
+ // the item has moved. we are currently visiting its new index,
143
+ // so we can move it by reference now
144
+ ctx.patches.push(...ctx.patchCreator.createListMoveByRef(oid, createRef(itemOid), i, ctx.authz));
145
+ // the problem is, a move by ref is not the same as what
146
+ // we really observed here, since it's more like an insertion
147
+ // and not an overwrite. to complicate this, the replaced item
148
+ // at this index might actually have moved, not been replaced.
149
+ // we mark the item that was at this index previously, and if
150
+ // we don't see it later, we'll delete it.
151
+ const fromOid = maybeGetOid(oldValue);
152
+ if (fromOid) {
153
+ overwrittenItems.add(fromOid);
154
+ }
155
+ // remember this item so we don't delete it later.
156
+ movedItems.add(itemOid);
157
+ }
158
+ }
159
+ else if (isEndOfList) {
126
160
  // this will initialize all sub-objects in the item, too
127
161
  ctx.patches.push(...ctx.patchCreator.createListPush(oid, value, ctx.authz));
128
162
  }
129
163
  else if (areTheSameIdentity(value, oldValue)) {
130
- // the identity of this item hasn't changed, but we
131
- // still have to diff the contents.
164
+ // note : since the branch above covers object references which
165
+ // were present in the original list, logically this branch only
166
+ // covers primitives. either way, call diff, it's just more
167
+ // proper to do so.
132
168
  diff(oldValue, value, ctx);
133
169
  }
134
170
  else {
@@ -160,18 +196,42 @@ export function diffLists(from, to, ctx) {
160
196
  }
161
197
  }
162
198
  }
163
- // remove any remaining items at the end of the array
199
+ // remove any remaining items at the end of the array.
164
200
  const deletedItemsAtEnd = fromCopy.length - to.length;
165
201
  if (deletedItemsAtEnd > 0) {
202
+ for (let i = fromCopy.length - 1; i >= to.length; i--) {
203
+ const value = fromCopy[i];
204
+ const itemOid = maybeGetOid(value);
205
+ if (itemOid) {
206
+ // avoid deleting moved objects that were at the end of the list before.
207
+ // their reference was moved elsewhere, but their contents must be retained.
208
+ if (!movedItems.has(itemOid)) {
209
+ // if sub-items were objects, we need to delete them all
210
+ // this should recursively delete children of these items
211
+ // also!
212
+ deleteWithSubObjects(value, ctx);
213
+ ctx.patches.push(...ctx.patchCreator.createListRemove(oid, createRef(itemOid), 'last', ctx.authz));
214
+ }
215
+ }
216
+ else {
217
+ ctx.patches.push(...ctx.patchCreator.createListRemove(oid, value, 'last', ctx.authz));
218
+ }
219
+ }
220
+ }
221
+ for (const overwrittenOid of overwrittenItems) {
222
+ if (movedItems.has(overwrittenOid)) {
223
+ // this item was moved, not overwritten. we don't want to delete it.
224
+ continue;
225
+ }
226
+ // this item was overwritten, not moved. we need to delete it.
166
227
  // if sub-items were objects, we need to delete them all
167
228
  // this should recursively delete children of these items
168
229
  // also!
169
- for (let i = to.length; i < fromCopy.length; i++) {
170
- const value = fromCopy[i];
171
- deleteWithSubObjects(value, ctx);
230
+ const item = from.find((x) => maybeGetOid(x) === overwrittenOid);
231
+ if (item) {
232
+ deleteWithSubObjects(item, ctx);
172
233
  }
173
- // push the list-delete for the deleted items
174
- ctx.patches.push(...ctx.patchCreator.createListDelete(oid, to.length, deletedItemsAtEnd, ctx.authz));
234
+ ctx.patches.push(...ctx.patchCreator.createListRemove(oid, createRef(overwrittenOid), 'last', ctx.authz));
175
235
  }
176
236
  }
177
237
  export function diffObjects(from, to, ctx) {
@@ -1 +1 @@
1
- {"version":3,"file":"diffing.js","sourceRoot":"","sources":["../../src/diffing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diffing.js","sourceRoot":"","sources":["../../src/diffing.ts"],"names":[],"mappings":"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"}