core-3nweb-client-lib 0.43.16 → 0.43.18
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/build/api-defs/files.d.ts +50 -2
- package/build/core/id-manager/index.js +1 -4
- package/build/core-ipc/fs.d.ts +0 -9
- package/build/core-ipc/fs.js +99 -27
- package/build/lib-client/fs-utils/files.js +4 -1
- package/build/lib-client/xsp-fs/folder-node.d.ts +13 -0
- package/build/lib-client/xsp-fs/folder-node.js +149 -87
- package/build/lib-client/xsp-fs/fs.d.ts +4 -0
- package/build/lib-client/xsp-fs/fs.js +25 -13
- package/build/protos/asmail.proto.js +711 -0
- package/build/protos/fs.proto.js +711 -0
- package/package.json +1 -1
- package/protos/fs.proto +36 -16
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
Copyright (C) 2016 - 2018, 2020, 2022, 2025 3NSoft Inc.
|
|
2
|
+
Copyright (C) 2016 - 2018, 2020, 2022, 2025 - 2026 3NSoft Inc.
|
|
3
3
|
|
|
4
4
|
This program is free software: you can redistribute it and/or modify it under
|
|
5
5
|
the terms of the GNU General Public License as published by the Free Software
|
|
@@ -1331,8 +1331,22 @@ declare namespace web3n.files {
|
|
|
1331
1331
|
*/
|
|
1332
1332
|
getRemoteFileItem(path: string, remoteItemName: string, remoteVersion?: number): Promise<ReadonlyFile>;
|
|
1333
1333
|
|
|
1334
|
+
/**
|
|
1335
|
+
* Returns child folder from remote version of a folder.
|
|
1336
|
+
* @param path of folder
|
|
1337
|
+
* @param remoteItemName
|
|
1338
|
+
* @param remoteVersion of folder. Default is current remote.
|
|
1339
|
+
*/
|
|
1340
|
+
getRemoteFolderItem(path: string, remoteItemName: string, remoteVersion?: number): Promise<ReadonlyFS>;
|
|
1341
|
+
|
|
1342
|
+
// XXX method to work around demaged files
|
|
1343
|
+
// reloadFromServer(path: string): Promise<SyncStatus>;
|
|
1344
|
+
|
|
1334
1345
|
}
|
|
1335
1346
|
|
|
1347
|
+
/**
|
|
1348
|
+
*
|
|
1349
|
+
*/
|
|
1336
1350
|
interface FolderDiff {
|
|
1337
1351
|
currentVersion: number;
|
|
1338
1352
|
isCurrentLocal: boolean;
|
|
@@ -1340,6 +1354,14 @@ declare namespace web3n.files {
|
|
|
1340
1354
|
isRemoteArchived: boolean;
|
|
1341
1355
|
inCurrent?: ListingEntry[];
|
|
1342
1356
|
inRemote?: ListingEntry[];
|
|
1357
|
+
|
|
1358
|
+
// XXX add indication for items that have different name
|
|
1359
|
+
differentNames?: {
|
|
1360
|
+
localName: string;
|
|
1361
|
+
remoteName: string;
|
|
1362
|
+
}[];
|
|
1363
|
+
differentKeys?: string[];
|
|
1364
|
+
|
|
1343
1365
|
nameOverlaps?: string[];
|
|
1344
1366
|
ctime: {
|
|
1345
1367
|
remote?: Date;
|
|
@@ -1382,7 +1404,8 @@ declare namespace web3n.files {
|
|
|
1382
1404
|
|
|
1383
1405
|
/**
|
|
1384
1406
|
* This method is for resolving conflicts on folders.
|
|
1385
|
-
* It adopts
|
|
1407
|
+
* It adopts given folder item, that is present in remote version and is missing in local version.
|
|
1408
|
+
* Returns new local version.
|
|
1386
1409
|
* @param path
|
|
1387
1410
|
* @param remoteItemName
|
|
1388
1411
|
* @param opts
|
|
@@ -1391,6 +1414,15 @@ declare namespace web3n.files {
|
|
|
1391
1414
|
path: string, remoteItemName: string, opts?: OptionsToAdoptRemoteItem
|
|
1392
1415
|
): Promise<number>;
|
|
1393
1416
|
|
|
1417
|
+
/**
|
|
1418
|
+
* This method is for resolving conflicts on folders.
|
|
1419
|
+
* It adopts all folder items, that are present in remote version and are missing in local version.
|
|
1420
|
+
* Returns new local version, if there were remote items to adopt and their were added to local state.
|
|
1421
|
+
* @param path
|
|
1422
|
+
* @param opts
|
|
1423
|
+
*/
|
|
1424
|
+
adoptAllRemoteItems(path: string, opts?: OptionsToAdoptAllRemoteItems): Promise<number|undefined>;
|
|
1425
|
+
|
|
1394
1426
|
}
|
|
1395
1427
|
|
|
1396
1428
|
interface OptionsToAdoptRemoteItem {
|
|
@@ -1413,6 +1445,22 @@ declare namespace web3n.files {
|
|
|
1413
1445
|
newItemName?: string;
|
|
1414
1446
|
}
|
|
1415
1447
|
|
|
1448
|
+
interface OptionsToAdoptAllRemoteItems {
|
|
1449
|
+
/**
|
|
1450
|
+
* Folder's local version. If not given, current local version is used.
|
|
1451
|
+
*/
|
|
1452
|
+
localVersion?: number;
|
|
1453
|
+
/**
|
|
1454
|
+
* Folder's remote version. If not given, current remote version is used.
|
|
1455
|
+
*/
|
|
1456
|
+
remoteVersion?: number;
|
|
1457
|
+
/**
|
|
1458
|
+
* Postfix to add to remote item names that have overlapping names with existing local items.
|
|
1459
|
+
* If there are name overlaps and postfix isn't given, then exception is thrown.
|
|
1460
|
+
*/
|
|
1461
|
+
postfixForNameOverlaps?: string;
|
|
1462
|
+
}
|
|
1463
|
+
|
|
1416
1464
|
interface FSEvent {
|
|
1417
1465
|
path: string;
|
|
1418
1466
|
}
|
|
@@ -66,10 +66,7 @@ class IdManager {
|
|
|
66
66
|
}
|
|
67
67
|
return {
|
|
68
68
|
idManager,
|
|
69
|
-
setupManagerStorage: (fs, keys) => setupManagerStorage(fs, (keys ? {
|
|
70
|
-
address: idManager.address,
|
|
71
|
-
keys
|
|
72
|
-
} : undefined))
|
|
69
|
+
setupManagerStorage: (fs, keys) => setupManagerStorage(fs, (keys ? { address: idManager.address, keys } : undefined))
|
|
73
70
|
};
|
|
74
71
|
};
|
|
75
72
|
}
|
package/build/core-ipc/fs.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ import { Caller, CoreSideServices } from "../ipc-via-protobuf/connector";
|
|
|
4
4
|
import { FileMsg } from "./file";
|
|
5
5
|
type FS = web3n.files.FS;
|
|
6
6
|
type FSItem = web3n.files.FSItem;
|
|
7
|
-
type OptionsToAdoptRemoteItem = web3n.files.OptionsToAdoptRemoteItem;
|
|
8
7
|
export declare function makeFSCaller(caller: Caller, fsMsg: FSMsg): FS;
|
|
9
8
|
export declare function exposeFSService(fs: FS, expServices: CoreSideServices): FSMsg;
|
|
10
9
|
export interface FSMsg {
|
|
@@ -38,12 +37,4 @@ export declare namespace fsItem {
|
|
|
38
37
|
function exposeFSItem(expServices: CoreSideServices, item: FSItem): FSItemMsg;
|
|
39
38
|
function fsItemFromMsg(caller: Caller, msg: FSItemMsg): FSItem;
|
|
40
39
|
}
|
|
41
|
-
interface OptionsToAdoptRemoteItemMsg {
|
|
42
|
-
localVersion?: Value<number>;
|
|
43
|
-
remoteVersion?: Value<number>;
|
|
44
|
-
replaceLocalItem?: Value<boolean>;
|
|
45
|
-
newItemName?: Value<string>;
|
|
46
|
-
}
|
|
47
|
-
export declare function optionsToAdoptRemoteItemToMsg(opts: OptionsToAdoptRemoteItem | undefined): OptionsToAdoptRemoteItemMsg | undefined;
|
|
48
|
-
export declare function optionsToAdoptRemoteItemFromMsg(msg: OptionsToAdoptRemoteItemMsg | undefined): OptionsToAdoptRemoteItem | undefined;
|
|
49
40
|
export {};
|
package/build/core-ipc/fs.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/*
|
|
3
|
-
Copyright (C) 2020, 2022, 2025 3NSoft Inc.
|
|
3
|
+
Copyright (C) 2020, 2022, 2025 - 2026 3NSoft Inc.
|
|
4
4
|
|
|
5
5
|
This program is free software: you can redistribute it and/or modify it under
|
|
6
6
|
the terms of the GNU General Public License as published by the Free Software
|
|
@@ -19,8 +19,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
19
19
|
exports.fsItem = exports.fsMsgType = void 0;
|
|
20
20
|
exports.makeFSCaller = makeFSCaller;
|
|
21
21
|
exports.exposeFSService = exposeFSService;
|
|
22
|
-
exports.optionsToAdoptRemoteItemToMsg = optionsToAdoptRemoteItemToMsg;
|
|
23
|
-
exports.optionsToAdoptRemoteItemFromMsg = optionsToAdoptRemoteItemFromMsg;
|
|
24
22
|
const protobuf_msg_1 = require("../ipc-via-protobuf/protobuf-msg");
|
|
25
23
|
const protobuf_type_1 = require("../lib-client/protobuf-type");
|
|
26
24
|
const fs_proto_1 = require("../protos/fs.proto");
|
|
@@ -111,11 +109,13 @@ function makeFSCaller(caller, fsMsg) {
|
|
|
111
109
|
statRemoteItem: vsStatRemoteItem.makeCaller(caller, vsPath),
|
|
112
110
|
listRemoteFolderItem: vsListRemoteFolderItem.makeCaller(caller, vsPath),
|
|
113
111
|
getRemoteFileItem: vsGetRemoteFileItem.makeCaller(caller, vsPath),
|
|
112
|
+
getRemoteFolderItem: vsGetRemoteFolderItem.makeCaller(caller, vsPath),
|
|
114
113
|
};
|
|
115
114
|
if (fs.writable) {
|
|
116
115
|
fs.v.sync.startUpload = vsStartUpload.makeCaller(caller, vsPath);
|
|
117
116
|
fs.v.sync.upload = vsUpload.makeCaller(caller, vsPath);
|
|
118
117
|
fs.v.sync.adoptRemoteFolderItem = vsAdoptRemoteFolderItem.makeCaller(caller, vsPath);
|
|
118
|
+
fs.v.sync.adoptAllRemoteItems = vsAdoptAllRemoteItems.makeCaller(caller, vsPath);
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
}
|
|
@@ -192,12 +192,14 @@ function exposeFSService(fs, expServices) {
|
|
|
192
192
|
statRemoteItem: vsStatRemoteItem.wrapService(fs.v.sync.statRemoteItem),
|
|
193
193
|
listRemoteFolderItem: vsListRemoteFolderItem.wrapService(fs.v.sync.listRemoteFolderItem),
|
|
194
194
|
getRemoteFileItem: vsGetRemoteFileItem.wrapService(fs.v.sync.getRemoteFileItem, expServices),
|
|
195
|
+
getRemoteFolderItem: vsGetRemoteFolderItem.wrapService(fs.v.sync.getRemoteFolderItem, expServices),
|
|
195
196
|
diffCurrentAndRemoteFolderVersions: vsDiffCurrentAndRemoteFolderVersions.wrapService(fs.v.sync.diffCurrentAndRemoteFolderVersions)
|
|
196
197
|
};
|
|
197
198
|
if (fs.writable) {
|
|
198
199
|
implExp.v.sync.startUpload = vsStartUpload.wrapService(fs.v.sync.startUpload);
|
|
199
200
|
implExp.v.sync.upload = vsUpload.wrapService(fs.v.sync.upload);
|
|
200
201
|
implExp.v.sync.adoptRemoteFolderItem = vsAdoptRemoteFolderItem.wrapService(fs.v.sync.adoptRemoteFolderItem);
|
|
202
|
+
implExp.v.sync.adoptAllRemoteFolderItems = vsAdoptAllRemoteItems.wrapService(fs.v.sync.adoptAllRemoteItems);
|
|
201
203
|
}
|
|
202
204
|
}
|
|
203
205
|
}
|
|
@@ -1928,35 +1930,35 @@ var vsUpload;
|
|
|
1928
1930
|
vsUpload.makeCaller = makeCaller;
|
|
1929
1931
|
})(vsUpload || (vsUpload = {}));
|
|
1930
1932
|
Object.freeze(vsUpload);
|
|
1931
|
-
function optionsToAdoptRemoteItemToMsg(opts) {
|
|
1932
|
-
if (!opts) {
|
|
1933
|
-
return;
|
|
1934
|
-
}
|
|
1935
|
-
return {
|
|
1936
|
-
localVersion: (0, protobuf_msg_1.toOptVal)(opts.localVersion),
|
|
1937
|
-
remoteVersion: (0, protobuf_msg_1.toOptVal)(opts.remoteVersion),
|
|
1938
|
-
replaceLocalItem: (0, protobuf_msg_1.toOptVal)(opts.replaceLocalItem),
|
|
1939
|
-
newItemName: (0, protobuf_msg_1.toOptVal)(opts.newItemName)
|
|
1940
|
-
};
|
|
1941
|
-
}
|
|
1942
|
-
function optionsToAdoptRemoteItemFromMsg(msg) {
|
|
1943
|
-
if (!msg) {
|
|
1944
|
-
return;
|
|
1945
|
-
}
|
|
1946
|
-
return {
|
|
1947
|
-
localVersion: (0, protobuf_msg_1.valOfOptInt)(msg.localVersion),
|
|
1948
|
-
remoteVersion: (0, protobuf_msg_1.valOfOptInt)(msg.remoteVersion),
|
|
1949
|
-
replaceLocalItem: (0, protobuf_msg_1.valOfOpt)(msg.replaceLocalItem),
|
|
1950
|
-
newItemName: (0, protobuf_msg_1.valOfOpt)(msg.newItemName)
|
|
1951
|
-
};
|
|
1952
|
-
}
|
|
1953
1933
|
var vsAdoptRemoteFolderItem;
|
|
1954
1934
|
(function (vsAdoptRemoteFolderItem) {
|
|
1955
1935
|
const requestType = protobuf_type_1.ProtoType.for(fs_proto_1.fs.AdoptRemoteFolderItemRequestBody);
|
|
1936
|
+
function optionsFromMsg(msg) {
|
|
1937
|
+
if (!msg) {
|
|
1938
|
+
return;
|
|
1939
|
+
}
|
|
1940
|
+
return {
|
|
1941
|
+
localVersion: (0, protobuf_msg_1.valOfOptInt)(msg.localVersion),
|
|
1942
|
+
remoteVersion: (0, protobuf_msg_1.valOfOptInt)(msg.remoteVersion),
|
|
1943
|
+
replaceLocalItem: (0, protobuf_msg_1.valOfOpt)(msg.replaceLocalItem),
|
|
1944
|
+
newItemName: (0, protobuf_msg_1.valOfOpt)(msg.newItemName)
|
|
1945
|
+
};
|
|
1946
|
+
}
|
|
1947
|
+
function optionsToMsg(opts) {
|
|
1948
|
+
if (!opts) {
|
|
1949
|
+
return;
|
|
1950
|
+
}
|
|
1951
|
+
return {
|
|
1952
|
+
localVersion: (0, protobuf_msg_1.toOptVal)(opts.localVersion),
|
|
1953
|
+
remoteVersion: (0, protobuf_msg_1.toOptVal)(opts.remoteVersion),
|
|
1954
|
+
replaceLocalItem: (0, protobuf_msg_1.toOptVal)(opts.replaceLocalItem),
|
|
1955
|
+
newItemName: (0, protobuf_msg_1.toOptVal)(opts.newItemName)
|
|
1956
|
+
};
|
|
1957
|
+
}
|
|
1956
1958
|
function wrapService(fn) {
|
|
1957
1959
|
return buf => {
|
|
1958
1960
|
const { path, itemName, opts } = requestType.unpack(buf);
|
|
1959
|
-
const promise = fn(path, itemName,
|
|
1961
|
+
const promise = fn(path, itemName, optionsFromMsg(opts))
|
|
1960
1962
|
.then(protobuf_msg_1.packInt);
|
|
1961
1963
|
return { promise };
|
|
1962
1964
|
};
|
|
@@ -1966,13 +1968,55 @@ var vsAdoptRemoteFolderItem;
|
|
|
1966
1968
|
const ipcPath = (0, protobuf_msg_1.methodPathFor)(objPath, 'adoptRemoteFolderItem');
|
|
1967
1969
|
return (path, itemName, opts) => caller
|
|
1968
1970
|
.startPromiseCall(ipcPath, requestType.pack({
|
|
1969
|
-
path, itemName, opts:
|
|
1971
|
+
path, itemName, opts: optionsToMsg(opts)
|
|
1970
1972
|
}))
|
|
1971
1973
|
.then(protobuf_msg_1.unpackInt);
|
|
1972
1974
|
}
|
|
1973
1975
|
vsAdoptRemoteFolderItem.makeCaller = makeCaller;
|
|
1974
1976
|
})(vsAdoptRemoteFolderItem || (vsAdoptRemoteFolderItem = {}));
|
|
1975
1977
|
Object.freeze(vsAdoptRemoteFolderItem);
|
|
1978
|
+
var vsAdoptAllRemoteItems;
|
|
1979
|
+
(function (vsAdoptAllRemoteItems) {
|
|
1980
|
+
const requestType = protobuf_type_1.ProtoType.for(fs_proto_1.fs.AdoptAllRemoteFolderItemsRequestBody);
|
|
1981
|
+
function optionsFromMsg(msg) {
|
|
1982
|
+
if (!msg) {
|
|
1983
|
+
return;
|
|
1984
|
+
}
|
|
1985
|
+
return {
|
|
1986
|
+
localVersion: (0, protobuf_msg_1.valOfOptInt)(msg.localVersion),
|
|
1987
|
+
remoteVersion: (0, protobuf_msg_1.valOfOptInt)(msg.remoteVersion),
|
|
1988
|
+
postfixForNameOverlaps: (0, protobuf_msg_1.valOfOpt)(msg.postfixForNameOverlaps),
|
|
1989
|
+
};
|
|
1990
|
+
}
|
|
1991
|
+
function optionsToMsg(opts) {
|
|
1992
|
+
if (!opts) {
|
|
1993
|
+
return;
|
|
1994
|
+
}
|
|
1995
|
+
return {
|
|
1996
|
+
localVersion: (0, protobuf_msg_1.toOptVal)(opts.localVersion),
|
|
1997
|
+
remoteVersion: (0, protobuf_msg_1.toOptVal)(opts.remoteVersion),
|
|
1998
|
+
postfixForNameOverlaps: (0, protobuf_msg_1.toOptVal)(opts.postfixForNameOverlaps),
|
|
1999
|
+
};
|
|
2000
|
+
}
|
|
2001
|
+
const replyType = protobuf_type_1.ProtoType.for(fs_proto_1.fs.AdoptAllRemoteFolderItemsReplyBody);
|
|
2002
|
+
function wrapService(fn) {
|
|
2003
|
+
return buf => {
|
|
2004
|
+
const { path, opts } = requestType.unpack(buf);
|
|
2005
|
+
const promise = fn(path, optionsFromMsg(opts))
|
|
2006
|
+
.then(newVersion => replyType.pack({ newVersion: (0, protobuf_msg_1.toOptVal)(newVersion) }));
|
|
2007
|
+
return { promise };
|
|
2008
|
+
};
|
|
2009
|
+
}
|
|
2010
|
+
vsAdoptAllRemoteItems.wrapService = wrapService;
|
|
2011
|
+
function makeCaller(caller, objPath) {
|
|
2012
|
+
const ipcPath = (0, protobuf_msg_1.methodPathFor)(objPath, 'adoptAllRemoteItems');
|
|
2013
|
+
return (path, opts) => caller
|
|
2014
|
+
.startPromiseCall(ipcPath, requestType.pack({ path, opts: optionsToMsg(opts) }))
|
|
2015
|
+
.then(buf => (0, protobuf_msg_1.valOfOpt)(replyType.unpack(buf).newVersion));
|
|
2016
|
+
}
|
|
2017
|
+
vsAdoptAllRemoteItems.makeCaller = makeCaller;
|
|
2018
|
+
})(vsAdoptAllRemoteItems || (vsAdoptAllRemoteItems = {}));
|
|
2019
|
+
Object.freeze(vsAdoptAllRemoteItems);
|
|
1976
2020
|
var vsAdoptRemote;
|
|
1977
2021
|
(function (vsAdoptRemote) {
|
|
1978
2022
|
const requestType = protobuf_type_1.ProtoType.for(fs_proto_1.fs.AdoptRemoteRequestBody);
|
|
@@ -2068,6 +2112,34 @@ var vsGetRemoteFileItem;
|
|
|
2068
2112
|
vsGetRemoteFileItem.makeCaller = makeCaller;
|
|
2069
2113
|
})(vsGetRemoteFileItem || (vsGetRemoteFileItem = {}));
|
|
2070
2114
|
Object.freeze(vsGetRemoteFileItem);
|
|
2115
|
+
var vsGetRemoteFolderItem;
|
|
2116
|
+
(function (vsGetRemoteFolderItem) {
|
|
2117
|
+
function wrapService(fn, expServices) {
|
|
2118
|
+
return buf => {
|
|
2119
|
+
const { path, remoteItemName, remoteVersion } = remoteChildReqType.unpack(buf);
|
|
2120
|
+
const promise = fn(path, remoteItemName, (0, protobuf_msg_1.valOfOptInt)(remoteVersion))
|
|
2121
|
+
.then(fs => {
|
|
2122
|
+
const fsMsg = exposeFSService(fs, expServices);
|
|
2123
|
+
return exports.fsMsgType.pack(fsMsg);
|
|
2124
|
+
});
|
|
2125
|
+
return { promise };
|
|
2126
|
+
};
|
|
2127
|
+
}
|
|
2128
|
+
vsGetRemoteFolderItem.wrapService = wrapService;
|
|
2129
|
+
function makeCaller(caller, objPath) {
|
|
2130
|
+
const ipcPath = (0, protobuf_msg_1.methodPathFor)(objPath, 'getRemoteFolderItem');
|
|
2131
|
+
return (path, remoteItemName, remoteVersion) => caller
|
|
2132
|
+
.startPromiseCall(ipcPath, remoteChildReqType.pack({
|
|
2133
|
+
path, remoteItemName, remoteVersion: (0, protobuf_msg_1.toOptVal)(remoteVersion)
|
|
2134
|
+
}))
|
|
2135
|
+
.then(buf => {
|
|
2136
|
+
const fsMsg = exports.fsMsgType.unpack(buf);
|
|
2137
|
+
return makeFSCaller(caller, fsMsg);
|
|
2138
|
+
});
|
|
2139
|
+
}
|
|
2140
|
+
vsGetRemoteFolderItem.makeCaller = makeCaller;
|
|
2141
|
+
})(vsGetRemoteFolderItem || (vsGetRemoteFolderItem = {}));
|
|
2142
|
+
Object.freeze(vsGetRemoteFolderItem);
|
|
2071
2143
|
var vListVersions;
|
|
2072
2144
|
(function (vListVersions) {
|
|
2073
2145
|
function wrapService(fn) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/*
|
|
3
|
-
Copyright (C) 2016 - 2022, 2025 3NSoft Inc.
|
|
3
|
+
Copyright (C) 2016 - 2022, 2025 - 2026 3NSoft Inc.
|
|
4
4
|
|
|
5
5
|
This program is free software: you can redistribute it and/or modify it under
|
|
6
6
|
the terms of the GNU General Public License as published by the Free Software
|
|
@@ -241,9 +241,11 @@ function wrapWritableFSSyncAPI(sImpl) {
|
|
|
241
241
|
startUpload: sImpl.startUpload.bind(sImpl),
|
|
242
242
|
upload: sImpl.upload.bind(sImpl),
|
|
243
243
|
adoptRemoteFolderItem: sImpl.adoptRemoteFolderItem.bind(sImpl),
|
|
244
|
+
adoptAllRemoteItems: sImpl.adoptAllRemoteItems.bind(sImpl),
|
|
244
245
|
statRemoteItem: sImpl.statRemoteItem.bind(sImpl),
|
|
245
246
|
listRemoteFolderItem: sImpl.listRemoteFolderItem.bind(sImpl),
|
|
246
247
|
getRemoteFileItem: sImpl.getRemoteFileItem.bind(sImpl),
|
|
248
|
+
getRemoteFolderItem: sImpl.getRemoteFolderItem.bind(sImpl),
|
|
247
249
|
};
|
|
248
250
|
return Object.freeze(w);
|
|
249
251
|
}
|
|
@@ -305,6 +307,7 @@ function wrapReadonlyFSSyncAPI(sImpl) {
|
|
|
305
307
|
statRemoteItem: sImpl.statRemoteItem.bind(sImpl),
|
|
306
308
|
listRemoteFolderItem: sImpl.listRemoteFolderItem.bind(sImpl),
|
|
307
309
|
getRemoteFileItem: sImpl.getRemoteFileItem.bind(sImpl),
|
|
310
|
+
getRemoteFolderItem: sImpl.getRemoteFolderItem.bind(sImpl),
|
|
308
311
|
diffCurrentAndRemoteFolderVersions: sImpl.diffCurrentAndRemoteFolderVersions.bind(sImpl),
|
|
309
312
|
};
|
|
310
313
|
return Object.freeze(w);
|
|
@@ -11,6 +11,7 @@ type XAttrsChanges = web3n.files.XAttrsChanges;
|
|
|
11
11
|
type FolderDiff = web3n.files.FolderDiff;
|
|
12
12
|
type OptionsToAdopteRemote = web3n.files.OptionsToAdopteRemote;
|
|
13
13
|
type OptionsToAdoptRemoteItem = web3n.files.OptionsToAdoptRemoteItem;
|
|
14
|
+
type OptionsToAdoptAllRemoteItems = web3n.files.OptionsToAdoptAllRemoteItems;
|
|
14
15
|
type OptionsToUploadLocal = web3n.files.OptionsToUploadLocal;
|
|
15
16
|
type VersionedReadFlags = web3n.files.VersionedReadFlags;
|
|
16
17
|
type Stats = web3n.files.Stats;
|
|
@@ -96,6 +97,16 @@ export declare class FolderNode extends NodeInFS<FolderPersistance> {
|
|
|
96
97
|
getFile(name: string, undefOnMissing?: boolean): Promise<FileNode | undefined>;
|
|
97
98
|
getLink(name: string, undefOnMissing?: boolean): Promise<LinkNode | undefined>;
|
|
98
99
|
private fixMissingChildAndThrow;
|
|
100
|
+
adoptItemsFromRemoteVersion(opts: OptionsToAdoptAllRemoteItems | undefined): Promise<number | undefined>;
|
|
101
|
+
/**
|
|
102
|
+
* If no initial local version given, then this performs like doTransition(change) method.
|
|
103
|
+
* When initial local version is given and check, exceptions are thrown if versions mismatch,
|
|
104
|
+
* or when there is another concurrent process that is already transitioning folder state to new state.
|
|
105
|
+
* This returns value of new local version.
|
|
106
|
+
* @param initLocalVersion
|
|
107
|
+
* @param change
|
|
108
|
+
*/
|
|
109
|
+
private doChangeWhileTrackingVersion;
|
|
99
110
|
/**
|
|
100
111
|
* This method prepares a transition state, runs given action, and completes
|
|
101
112
|
* transition to a new version.
|
|
@@ -161,9 +172,11 @@ export declare class FolderNode extends NodeInFS<FolderPersistance> {
|
|
|
161
172
|
private getRemoteChildNodeInfo;
|
|
162
173
|
private addRemoteChild;
|
|
163
174
|
private replaceLocalChildWithRemote;
|
|
175
|
+
private readRemoteVersion;
|
|
164
176
|
diffCurrentAndRemote(remoteVersion: number | undefined): Promise<FolderDiff | undefined>;
|
|
165
177
|
private diffWithArchivedRemote;
|
|
166
178
|
private diffWithRemote;
|
|
167
179
|
getRemoteItemNode<T extends NodeInFS<any>>(remoteItemName: string, remoteVersion: number | undefined): Promise<T>;
|
|
180
|
+
getStorage(): Storage;
|
|
168
181
|
}
|
|
169
182
|
export {};
|