core-3nweb-client-lib 0.44.3 → 0.44.4

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.
@@ -1669,15 +1669,18 @@ declare namespace web3n.files {
1669
1669
 
1670
1670
  /**
1671
1671
  * This method is for resolving conflicts on folders.
1672
- * It merges folder changes from remote version.
1672
+ * It absorbs folder changes done in remote version.
1673
1673
  * Returns new local version, if there were remote items to adopt and their were added to local state.
1674
1674
  * @param path
1675
1675
  * @param opts
1676
1676
  */
1677
- mergeFolderCurrentAndRemoteVersions(
1678
- path: string, opts?: OptionsToMergeFolderVersions
1677
+ absorbRemoteFolderChanges(
1678
+ path: string, opts?: OptionsToAdoptRemoteFolderChanges
1679
1679
  ): Promise<number|undefined>;
1680
1680
 
1681
+ // XXX
1682
+ // makeSnapshot(path: string); // -> snapshot points and archives current versions of tree elements
1683
+
1681
1684
  }
1682
1685
 
1683
1686
  interface OptionsToAdoptRemoteItem {
@@ -1700,7 +1703,7 @@ declare namespace web3n.files {
1700
1703
  newItemName?: string;
1701
1704
  }
1702
1705
 
1703
- interface OptionsToMergeFolderVersions {
1706
+ interface OptionsToAdoptRemoteFolderChanges {
1704
1707
  /**
1705
1708
  * Folder's local version. If not given, current local version is used.
1706
1709
  */
@@ -194,7 +194,7 @@ class SyncedStore {
194
194
  return obj.getObjSrcFromLocalAndSyncedBranch(version);
195
195
  }
196
196
  async getObjSrcOfRemoteVersion(objId, version) {
197
- const obj = await this.getObjOrThrow(objId);
197
+ const obj = await this.getObjOrThrow(objId, true);
198
198
  return obj.getObjSrcFromRemoteAndSyncedBranch(version);
199
199
  }
200
200
  async saveObj(objId, version, encSub) {
@@ -225,7 +225,7 @@ class SyncedStore {
225
225
  await obj.removeCurrentVersion();
226
226
  }
227
227
  async getNumOfBytesNeedingDownload(objId, version) {
228
- const obj = await this.getObjOrThrow(objId);
228
+ const obj = await this.getObjOrThrow(objId, true);
229
229
  return obj.getNumOfBytesNeedingDownload(version);
230
230
  }
231
231
  async close() {
@@ -117,7 +117,7 @@ function makeFSCaller(caller, fsMsg) {
117
117
  fs.v.sync.startUpload = vsStartUpload.makeCaller(caller, vsPath);
118
118
  fs.v.sync.upload = vsUpload.makeCaller(caller, vsPath);
119
119
  fs.v.sync.adoptRemoteFolderItem = vsAdoptRemoteFolderItem.makeCaller(caller, vsPath);
120
- fs.v.sync.mergeFolderCurrentAndRemoteVersions = vsMergeFolderCurrentAndRemoteVersions.makeCaller(caller, vsPath);
120
+ fs.v.sync.absorbRemoteFolderChanges = vsAbsorbRemoteFolderChanges.makeCaller(caller, vsPath);
121
121
  }
122
122
  }
123
123
  }
@@ -203,7 +203,7 @@ function exposeFSService(fs, expServices) {
203
203
  implExp.v.sync.startUpload = vsStartUpload.wrapService(fs.v.sync.startUpload);
204
204
  implExp.v.sync.upload = vsUpload.wrapService(fs.v.sync.upload);
205
205
  implExp.v.sync.adoptRemoteFolderItem = vsAdoptRemoteFolderItem.wrapService(fs.v.sync.adoptRemoteFolderItem);
206
- implExp.v.sync.mergeFolderCurrentAndRemoteVersions = vsMergeFolderCurrentAndRemoteVersions.wrapService(fs.v.sync.mergeFolderCurrentAndRemoteVersions);
206
+ implExp.v.sync.absorbRemoteFolderChanges = vsAbsorbRemoteFolderChanges.wrapService(fs.v.sync.absorbRemoteFolderChanges);
207
207
  }
208
208
  }
209
209
  }
@@ -1979,9 +1979,9 @@ var vsAdoptRemoteFolderItem;
1979
1979
  vsAdoptRemoteFolderItem.makeCaller = makeCaller;
1980
1980
  })(vsAdoptRemoteFolderItem || (vsAdoptRemoteFolderItem = {}));
1981
1981
  Object.freeze(vsAdoptRemoteFolderItem);
1982
- var vsMergeFolderCurrentAndRemoteVersions;
1983
- (function (vsMergeFolderCurrentAndRemoteVersions) {
1984
- const requestType = protobuf_type_1.ProtoType.for(fs_proto_1.fs.MergeFolderCurrentAndRemoteVersionsRequestBody);
1982
+ var vsAbsorbRemoteFolderChanges;
1983
+ (function (vsAbsorbRemoteFolderChanges) {
1984
+ const requestType = protobuf_type_1.ProtoType.for(fs_proto_1.fs.AbsorbRemoteFolderChangesRequestBody);
1985
1985
  function optionsFromMsg(msg) {
1986
1986
  if (!msg) {
1987
1987
  return;
@@ -2002,7 +2002,7 @@ var vsMergeFolderCurrentAndRemoteVersions;
2002
2002
  postfixForNameOverlaps: (0, protobuf_msg_1.toOptVal)(opts.postfixForNameOverlaps),
2003
2003
  };
2004
2004
  }
2005
- const replyType = protobuf_type_1.ProtoType.for(fs_proto_1.fs.MergeFolderCurrentAndRemoteVersionsReplyBody);
2005
+ const replyType = protobuf_type_1.ProtoType.for(fs_proto_1.fs.AbsorbRemoteFolderChangesReplyBody);
2006
2006
  function wrapService(fn) {
2007
2007
  return buf => {
2008
2008
  const { path, opts } = requestType.unpack(buf);
@@ -2011,16 +2011,16 @@ var vsMergeFolderCurrentAndRemoteVersions;
2011
2011
  return { promise };
2012
2012
  };
2013
2013
  }
2014
- vsMergeFolderCurrentAndRemoteVersions.wrapService = wrapService;
2014
+ vsAbsorbRemoteFolderChanges.wrapService = wrapService;
2015
2015
  function makeCaller(caller, objPath) {
2016
- const ipcPath = (0, protobuf_msg_1.methodPathFor)(objPath, 'mergeFolderCurrentAndRemoteVersions');
2016
+ const ipcPath = (0, protobuf_msg_1.methodPathFor)(objPath, 'absorbRemoteFolderChanges');
2017
2017
  return (path, opts) => caller
2018
2018
  .startPromiseCall(ipcPath, requestType.pack({ path, opts: optionsToMsg(opts) }))
2019
2019
  .then(buf => (0, protobuf_msg_1.valOfOptInt)(replyType.unpack(buf).newVersion));
2020
2020
  }
2021
- vsMergeFolderCurrentAndRemoteVersions.makeCaller = makeCaller;
2022
- })(vsMergeFolderCurrentAndRemoteVersions || (vsMergeFolderCurrentAndRemoteVersions = {}));
2023
- Object.freeze(vsMergeFolderCurrentAndRemoteVersions);
2021
+ vsAbsorbRemoteFolderChanges.makeCaller = makeCaller;
2022
+ })(vsAbsorbRemoteFolderChanges || (vsAbsorbRemoteFolderChanges = {}));
2023
+ Object.freeze(vsAbsorbRemoteFolderChanges);
2024
2024
  var vsAdoptRemote;
2025
2025
  (function (vsAdoptRemote) {
2026
2026
  const requestType = protobuf_type_1.ProtoType.for(fs_proto_1.fs.AdoptRemoteRequestBody);
@@ -251,7 +251,7 @@ function wrapWritableFSSyncAPI(sImpl) {
251
251
  getRemoteFileItem: sImpl.getRemoteFileItem.bind(sImpl),
252
252
  getRemoteFolderItem: sImpl.getRemoteFolderItem.bind(sImpl),
253
253
  diffCurrentAndRemoteFileVersions: sImpl.diffCurrentAndRemoteFileVersions.bind(sImpl),
254
- mergeFolderCurrentAndRemoteVersions: sImpl.mergeFolderCurrentAndRemoteVersions.bind(sImpl),
254
+ absorbRemoteFolderChanges: sImpl.absorbRemoteFolderChanges.bind(sImpl),
255
255
  };
256
256
  return Object.freeze(w);
257
257
  }
@@ -41,7 +41,7 @@ export declare class FileNode extends NodeInFS<FilePersistance> {
41
41
  static makeForNew(storage: Storage, parentId: string, name: string, key: Uint8Array): Promise<FileNode>;
42
42
  static makeForExisting(storage: Storage, parentId: string, fileName: string, objId: string, key: Uint8Array): Promise<FileNode>;
43
43
  static makeFromLinkParams(storage: Storage, params: FileLinkParams): Promise<FileNode>;
44
- private static initWithAttrs;
44
+ static readNodeFromObjBytes(storage: Storage, parentId: string | undefined, fileName: string, objId: string, src: ObjSource, key: Uint8Array): Promise<FileNode>;
45
45
  protected setCurrentStateFrom(src: ObjSource): Promise<void>;
46
46
  private setUpdatedState;
47
47
  getStorage(): Storage;
@@ -103,17 +103,18 @@ class FileNode extends node_in_fs_1.NodeInFS {
103
103
  if (!parentId) {
104
104
  throw new Error("Bad parent id");
105
105
  }
106
- const file = await FileNode.initWithAttrs(storage, parentId, fileName, objId, key);
106
+ const src = await storage.getObjSrc(objId);
107
+ const file = await FileNode.readNodeFromObjBytes(storage, parentId, fileName, objId, src, key);
107
108
  return file;
108
109
  }
109
110
  static async makeFromLinkParams(storage, params) {
110
111
  const { objId, fileName } = params;
111
112
  const key = buffer_utils_1.base64.open(params.fKey);
112
- const file = await FileNode.initWithAttrs(storage, undefined, fileName, objId, key);
113
+ const src = await storage.getObjSrc(objId);
114
+ const file = await FileNode.readNodeFromObjBytes(storage, undefined, fileName, objId, src, key);
113
115
  return file;
114
116
  }
115
- static async initWithAttrs(storage, parentId, fileName, objId, key) {
116
- const src = await storage.getObjSrc(objId);
117
+ static async readNodeFromObjBytes(storage, parentId, fileName, objId, src, key) {
117
118
  const file = new FileNode(storage, fileName, objId, src.version, parentId, key);
118
119
  await file.setCurrentStateFrom(src);
119
120
  return file;
@@ -14,7 +14,7 @@ type OptionsToAdoptRemoteItem = web3n.files.OptionsToAdoptRemoteItem;
14
14
  type OptionsToUploadLocal = web3n.files.OptionsToUploadLocal;
15
15
  type VersionedReadFlags = web3n.files.VersionedReadFlags;
16
16
  type Stats = web3n.files.Stats;
17
- type OptionsToMergeFolderVersions = web3n.files.OptionsToMergeFolderVersions;
17
+ type OptionsToAdoptRemoteFolderChanges = web3n.files.OptionsToAdoptRemoteFolderChanges;
18
18
  export interface NodeInfo {
19
19
  /**
20
20
  * This is a usual file name.
@@ -96,6 +96,7 @@ export declare class FolderNode extends NodeInFS<FolderPersistance> {
96
96
  hasChild(childName: string, throwIfMissing?: boolean): boolean;
97
97
  getNode<T extends NodeInFS<any>>(type: NodeType | undefined, name: string, undefOnMissing?: boolean): Promise<T | undefined>;
98
98
  private getOrMakeChildNodeForInfo;
99
+ private getNonLocal;
99
100
  getFolder(name: string, undefOnMissing?: boolean): Promise<FolderNode | undefined>;
100
101
  getFile(name: string, undefOnMissing?: boolean): Promise<FileNode | undefined>;
101
102
  getLink(name: string, undefOnMissing?: boolean): Promise<LinkNode | undefined>;
@@ -178,6 +179,6 @@ export declare class FolderNode extends NodeInFS<FolderPersistance> {
178
179
  diffCurrentAndRemote(remoteVersion: number | undefined): Promise<FolderDiff | undefined>;
179
180
  getRemoteItemNode<T extends NodeInFS<any>>(remoteItemName: string, remoteVersion: number | undefined): Promise<T>;
180
181
  getStorage(): Storage;
181
- mergeCurrentAndRemoteVersions(opts: OptionsToMergeFolderVersions | undefined): Promise<number | undefined>;
182
+ absorbRemoteChanges(opts: OptionsToAdoptRemoteFolderChanges | undefined): Promise<number | undefined>;
182
183
  }
183
184
  export {};
@@ -344,17 +344,59 @@ class FolderNode extends node_in_fs_1.NodeInFS {
344
344
  return nodeSet;
345
345
  }
346
346
  catch (exc) {
347
- if (exc.objNotFound && fromCurrentNodes) {
348
- await this.fixMissingChildAndThrow(exc, info);
349
- }
350
- else if (exc.failedCipherVerification) {
347
+ if (exc.failedCipherVerification) {
351
348
  exc = (0, file_1.makeFileException)('ioError', `${this.name}/${info.name}`, exc);
352
349
  }
353
- // XXX why and what ?
350
+ else if (exc.objNotFound) {
351
+ if (fromCurrentNodes) {
352
+ await this.fixMissingChildAndThrow(exc, info);
353
+ }
354
+ else {
355
+ try {
356
+ const node = await this.getNonLocal(info);
357
+ if (node) {
358
+ deferred.resolve(node);
359
+ return nodeSet;
360
+ }
361
+ else {
362
+ throw exc;
363
+ }
364
+ }
365
+ catch (exc2) {
366
+ exc = exc2;
367
+ }
368
+ }
369
+ }
354
370
  deferred.reject((0, error_1.errWithCause)(exc, `Failed to instantiate fs node '${this.name}/${info.name}'`));
355
371
  return nodeSet;
356
372
  }
357
373
  }
374
+ async getNonLocal(info) {
375
+ var _a;
376
+ const storage = this.syncedStorage();
377
+ const { objId, name, key } = info;
378
+ const status = await storage.status(objId);
379
+ const { remote, synced } = status.syncStatus();
380
+ const remoteVersion = (_a = remote === null || remote === void 0 ? void 0 : remote.latest) !== null && _a !== void 0 ? _a : synced === null || synced === void 0 ? void 0 : synced.latest;
381
+ if (!remoteVersion) {
382
+ return;
383
+ }
384
+ const src = await storage.getObjSrcOfRemoteVersion(info.objId, remoteVersion);
385
+ let node;
386
+ if (info.isFile) {
387
+ node = await file_node_1.FileNode.readNodeFromObjBytes(storage, undefined, name, objId, src, key);
388
+ }
389
+ else if (info.isFolder) {
390
+ node = await FolderNode.readNodeFromObjBytes(storage, undefined, objId, src, key);
391
+ }
392
+ else if (info.isLink) {
393
+ node = await link_node_1.LinkNode.readNodeFromObjBytes(storage, undefined, name, objId, src, key);
394
+ }
395
+ else {
396
+ throw new Error(`Unknown type of fs node`);
397
+ }
398
+ return node;
399
+ }
358
400
  getFolder(name, undefOnMissing = false) {
359
401
  return this.getNode('folder', name, undefOnMissing);
360
402
  }
@@ -377,61 +419,6 @@ class FolderNode extends node_in_fs_1.NodeInFS {
377
419
  fileExc.inconsistentStateOfFS = true;
378
420
  throw fileExc;
379
421
  }
380
- // XXX should we keep this, when merge with certain inputs will do same action
381
- // async adoptItemsFromRemoteVersion(opts: OptionsToAdoptAllRemoteItems|undefined): Promise<number|undefined> {
382
- // const { state, remote } = await this.syncStatus();
383
- // if ((state !== 'conflicting') && (state !== 'behind')) {
384
- // return;
385
- // }
386
- // const remoteVersion = versionFromRemoteBranch(remote!, opts?.remoteVersion);
387
- // if (!remoteVersion) {
388
- // throw 'something';
389
- // }
390
- // const { folderInfo: remoteState } = await this.readRemoteVersion(remoteVersion);
391
- // const synced = undefined;
392
- // return await this.doChangeWhileTrackingVersion(opts?.localVersion, async (state, newVersion) => {
393
- // const { inRemote, nameOverlaps, differentKeys } = diffNodes(state, remoteState, synced);
394
- // if (differentKeys) {
395
- // throw makeFSSyncException(this.name, {
396
- // message: `There are different keys, and implementation for it is not implemented, yet.`
397
- // });
398
- // }
399
- // const events: { event: FSEvent; childObjId: string; }[] = [];
400
- // if (!inRemote) {
401
- // return events;
402
- // }
403
- // const addedNodes = new Set<string>();
404
- // if (nameOverlaps) {
405
- // const postfix = opts?.postfixForNameOverlaps;
406
- // if ((postfix === undefined) || (postfix.length < 0)) {
407
- // // XXX better exception
408
- // throw 'something';
409
- // }
410
- // for (const itemName of nameOverlaps) {
411
- // const node = remoteState.nodes[itemName];
412
- // let newName = `${itemName}${postfix}`;
413
- // while (state.nodes[newName]) {
414
- // newName = `${newName}${postfix}`;
415
- // }
416
- // node.name = newName;
417
- // state.nodes[newName] = node;
418
- // addedNodes.add(itemName);
419
- // const { event, childObjId } = this.makeEntryAdditionEvent(newVersion, 'sync', node);
420
- // events.push({ event, childObjId });
421
- // }
422
- // }
423
- // for (const { name: itemName } of inRemote) {
424
- // if (addedNodes.has(itemName)) {
425
- // continue;
426
- // }
427
- // const node = remoteState.nodes[itemName];
428
- // state.nodes[itemName] = node;
429
- // const { event, childObjId } = this.makeEntryAdditionEvent(newVersion, 'sync', node);
430
- // events.push({ event, childObjId });
431
- // }
432
- // return events;
433
- // });
434
- // }
435
422
  /**
436
423
  * If no initial local version given, then this performs like doTransition(change) method.
437
424
  * When initial local version is given and check, exceptions are thrown if versions mismatch,
@@ -1061,7 +1048,7 @@ class FolderNode extends node_in_fs_1.NodeInFS {
1061
1048
  getStorage() {
1062
1049
  return this.storage;
1063
1050
  }
1064
- async mergeCurrentAndRemoteVersions(opts) {
1051
+ async absorbRemoteChanges(opts) {
1065
1052
  const diff = await this.diffCurrentAndRemote(opts === null || opts === void 0 ? void 0 : opts.remoteVersion);
1066
1053
  if (!diff) {
1067
1054
  return;
@@ -32,7 +32,7 @@ type OptionsToDiffFileVersions = web3n.files.OptionsToDiffFileVersions;
32
32
  type OptionsToUploadLocal = web3n.files.OptionsToUploadLocal;
33
33
  type FolderDiff = web3n.files.FolderDiff;
34
34
  type FileDiff = web3n.files.FileDiff;
35
- type OptionsToMergeFolderVersions = web3n.files.OptionsToMergeFolderVersions;
35
+ type OptionsToAdoptRemoteFolderChanges = web3n.files.OptionsToAdoptRemoteFolderChanges;
36
36
  export declare class XspFS implements WritableFS {
37
37
  readonly writable: boolean;
38
38
  name: string;
@@ -188,6 +188,6 @@ declare class S implements WritableFSSyncAPI {
188
188
  listRemoteFolderItem(path: string, remoteItemName: string, remoteVersion?: number): Promise<ListingEntry[]>;
189
189
  getRemoteFileItem(path: string, remoteItemName: string, remoteVersion?: number): Promise<ReadonlyFile>;
190
190
  getRemoteFolderItem(path: string, remoteItemName: string, remoteVersion?: number): Promise<ReadonlyFS>;
191
- mergeFolderCurrentAndRemoteVersions(path: string, opts?: OptionsToMergeFolderVersions): Promise<number | undefined>;
191
+ absorbRemoteFolderChanges(path: string, opts?: OptionsToAdoptRemoteFolderChanges): Promise<number | undefined>;
192
192
  }
193
193
  export {};
@@ -862,9 +862,9 @@ class S {
862
862
  throw (0, file_1.makeFileException)('notDirectory', `${path}/${remoteItemName}`);
863
863
  }
864
864
  }
865
- async mergeFolderCurrentAndRemoteVersions(path, opts) {
865
+ async absorbRemoteFolderChanges(path, opts) {
866
866
  const folderNode = await this.getFolderNode(path);
867
- return await folderNode.mergeCurrentAndRemoteVersions(opts);
867
+ return await folderNode.absorbRemoteChanges(opts);
868
868
  }
869
869
  }
870
870
  Object.freeze(S.prototype);
@@ -26,6 +26,7 @@ export declare class LinkNode extends NodeInFS<LinkPersistance> {
26
26
  constructor(storage: Storage, name: string, objId: string, version: number, parentId: string | undefined, key: Uint8Array);
27
27
  static makeForNew(storage: Storage, parentId: string, name: string, key: Uint8Array): Promise<LinkNode>;
28
28
  static makeForExisting(storage: Storage, parentId: string, name: string, objId: string, key: Uint8Array): Promise<LinkNode>;
29
+ static readNodeFromObjBytes(storage: Storage, parentId: string | undefined, name: string, objId: string, src: ObjSource, key: Uint8Array): Promise<LinkNode>;
29
30
  protected setCurrentStateFrom(src: ObjSource): Promise<void>;
30
31
  getStats(flags?: VersionedReadFlags): Promise<Stats>;
31
32
  private setUpdatedState;
@@ -93,6 +93,9 @@ class LinkNode extends node_in_fs_1.NodeInFS {
93
93
  }
94
94
  static async makeForExisting(storage, parentId, name, objId, key) {
95
95
  const src = await storage.getObjSrc(objId);
96
+ return await LinkNode.readNodeFromObjBytes(storage, parentId, name, objId, src, key);
97
+ }
98
+ static async readNodeFromObjBytes(storage, parentId, name, objId, src, key) {
96
99
  const link = new LinkNode(storage, name, objId, src.version, parentId, key);
97
100
  const { params, attrs, xattrs } = await link.crypto.read(src);
98
101
  link.setUpdatedState(params, src.version, attrs, xattrs);
@@ -124,5 +124,5 @@ export declare abstract class NodeInFS<P extends NodePersistance> implements Nod
124
124
  }
125
125
  export declare function shouldReadCurrentVersion(flags: VersionedReadFlags | undefined): boolean;
126
126
  export declare function areBytesEqual(b1: Uint8Array, b2: Uint8Array): boolean;
127
- export declare function versionFromRemoteBranch(remote: SyncVersionsBranch, remoteVersion: number | undefined): number | undefined;
127
+ export declare function versionFromBranch(branch: SyncVersionsBranch, versionInBranch: number | undefined): number | undefined;
128
128
  export {};
@@ -19,7 +19,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
19
19
  exports.NodeInFS = void 0;
20
20
  exports.shouldReadCurrentVersion = shouldReadCurrentVersion;
21
21
  exports.areBytesEqual = areBytesEqual;
22
- exports.versionFromRemoteBranch = versionFromRemoteBranch;
22
+ exports.versionFromBranch = versionFromBranch;
23
23
  /**
24
24
  * Everything in this module is assumed to be inside of a file system
25
25
  * reliance set.
@@ -550,14 +550,19 @@ class NodeInFS {
550
550
  let isCurrentLocal;
551
551
  if (state === 'behind') {
552
552
  isCurrentLocal = false;
553
+ remoteVersion = versionFromBranch(remote, remoteVersion);
553
554
  }
554
555
  else if (state === 'conflicting') {
555
556
  isCurrentLocal = true;
557
+ remoteVersion = versionFromBranch(remote, remoteVersion);
558
+ }
559
+ else if (state === 'unsynced') {
560
+ isCurrentLocal = true;
561
+ remoteVersion = versionFromBranch(synced, remoteVersion);
556
562
  }
557
563
  else {
558
564
  return;
559
565
  }
560
- remoteVersion = versionFromRemoteBranch(remote, remoteVersion);
561
566
  if (remoteVersion) {
562
567
  return { rm: false, isCurrentLocal, remoteVersion, syncedVersion: synced === null || synced === void 0 ? void 0 : synced.latest };
563
568
  }
@@ -708,23 +713,20 @@ function areBytesEqual(b1, b2) {
708
713
  }
709
714
  return true;
710
715
  }
711
- function versionFromRemoteBranch(remote, remoteVersion) {
716
+ function versionFromBranch(branch, versionInBranch) {
712
717
  var _a;
713
- if (remote.isArchived) {
714
- return;
715
- }
716
- if (remoteVersion) {
717
- if ((remoteVersion !== remote.latest)
718
- && !((_a = remote.archived) === null || _a === void 0 ? void 0 : _a.includes(remoteVersion))) {
718
+ if (versionInBranch) {
719
+ if ((versionInBranch !== branch.latest)
720
+ && !((_a = branch.archived) === null || _a === void 0 ? void 0 : _a.includes(versionInBranch))) {
719
721
  throw (0, exceptions_1.makeFSSyncException)(this.name, {
720
722
  versionMismatch: true,
721
- message: `Unknown remote version ${remoteVersion}`
723
+ message: `Unknown version in branch: ${versionInBranch}`
722
724
  });
723
725
  }
724
- return remoteVersion;
726
+ return versionInBranch;
725
727
  }
726
728
  else {
727
- return remote.latest;
729
+ return branch.latest;
728
730
  }
729
731
  }
730
732
  Object.freeze(exports);
@@ -13,7 +13,8 @@
13
13
  See the GNU General Public License for more details.
14
14
 
15
15
  You should have received a copy of the GNU General Public License along with
16
- this program. If not, see <http://www.gnu.org/licenses/>. */
16
+ this program. If not, see <http://www.gnu.org/licenses/>.
17
+ */
17
18
  Object.defineProperty(exports, "__esModule", { value: true });
18
19
  exports.errWithCause = errWithCause;
19
20
  exports.recursiveErrJSONify = recursiveErrJSONify;