node-leek 1.0.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/README.md +109 -0
- package/dist/app.d.ts +1 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +1 -0
- package/dist/autofighter.d.ts +2 -0
- package/dist/autofighter.d.ts.map +1 -0
- package/dist/autofighter.js +27 -0
- package/dist/boss_farming.d.ts +2 -0
- package/dist/boss_farming.d.ts.map +1 -0
- package/dist/boss_farming.js +33 -0
- package/dist/codegen/api/apis.d.ts +12 -0
- package/dist/codegen/api/apis.d.ts.map +1 -0
- package/dist/codegen/api/apis.js +33 -0
- package/dist/codegen/api/defaultApi.d.ts +239 -0
- package/dist/codegen/api/defaultApi.d.ts.map +1 -0
- package/dist/codegen/api/defaultApi.js +1071 -0
- package/dist/codegen/api.d.ts +3 -0
- package/dist/codegen/api.d.ts.map +1 -0
- package/dist/codegen/api.js +19 -0
- package/dist/codegen/model/aicode.d.ts +34 -0
- package/dist/codegen/model/aicode.d.ts.map +1 -0
- package/dist/codegen/model/aicode.js +47 -0
- package/dist/codegen/model/buy200Response.d.ts +27 -0
- package/dist/codegen/model/buy200Response.d.ts.map +1 -0
- package/dist/codegen/model/buy200Response.js +35 -0
- package/dist/codegen/model/buyRequest.d.ts +27 -0
- package/dist/codegen/model/buyRequest.d.ts.map +1 -0
- package/dist/codegen/model/buyRequest.js +35 -0
- package/dist/codegen/model/createFile200Response.d.ts +27 -0
- package/dist/codegen/model/createFile200Response.d.ts.map +1 -0
- package/dist/codegen/model/createFile200Response.js +29 -0
- package/dist/codegen/model/createFile200ResponseAi.d.ts +30 -0
- package/dist/codegen/model/createFile200ResponseAi.d.ts.map +1 -0
- package/dist/codegen/model/createFile200ResponseAi.js +53 -0
- package/dist/codegen/model/createFileRequest.d.ts +31 -0
- package/dist/codegen/model/createFileRequest.d.ts.map +1 -0
- package/dist/codegen/model/createFileRequest.js +44 -0
- package/dist/codegen/model/createFolder200Response.d.ts +26 -0
- package/dist/codegen/model/createFolder200Response.d.ts.map +1 -0
- package/dist/codegen/model/createFolder200Response.js +29 -0
- package/dist/codegen/model/createFolderRequest.d.ts +27 -0
- package/dist/codegen/model/createFolderRequest.d.ts.map +1 -0
- package/dist/codegen/model/createFolderRequest.js +35 -0
- package/dist/codegen/model/credentials.d.ts +31 -0
- package/dist/codegen/model/credentials.d.ts.map +1 -0
- package/dist/codegen/model/credentials.js +44 -0
- package/dist/codegen/model/deleteFileRequest.d.ts +26 -0
- package/dist/codegen/model/deleteFileRequest.d.ts.map +1 -0
- package/dist/codegen/model/deleteFileRequest.js +29 -0
- package/dist/codegen/model/deleteFolderRequest.d.ts +26 -0
- package/dist/codegen/model/deleteFolderRequest.d.ts.map +1 -0
- package/dist/codegen/model/deleteFolderRequest.js +29 -0
- package/dist/codegen/model/farmer.d.ts +110 -0
- package/dist/codegen/model/farmer.d.ts.map +1 -0
- package/dist/codegen/model/farmer.js +299 -0
- package/dist/codegen/model/farmerOpponent.d.ts +35 -0
- package/dist/codegen/model/farmerOpponent.d.ts.map +1 -0
- package/dist/codegen/model/farmerOpponent.js +68 -0
- package/dist/codegen/model/fightResult.d.ts +38 -0
- package/dist/codegen/model/fightResult.d.ts.map +1 -0
- package/dist/codegen/model/fightResult.js +80 -0
- package/dist/codegen/model/fightResume.d.ts +95 -0
- package/dist/codegen/model/fightResume.d.ts.map +1 -0
- package/dist/codegen/model/fightResume.js +182 -0
- package/dist/codegen/model/fightResumeLeeks1Inner.d.ts +27 -0
- package/dist/codegen/model/fightResumeLeeks1Inner.d.ts.map +1 -0
- package/dist/codegen/model/fightResumeLeeks1Inner.js +35 -0
- package/dist/codegen/model/folder.d.ts +31 -0
- package/dist/codegen/model/folder.d.ts.map +1 -0
- package/dist/codegen/model/folder.js +44 -0
- package/dist/codegen/model/garden.d.ts +30 -0
- package/dist/codegen/model/garden.d.ts.map +1 -0
- package/dist/codegen/model/garden.js +32 -0
- package/dist/codegen/model/gardenGarden.d.ts +52 -0
- package/dist/codegen/model/gardenGarden.d.ts.map +1 -0
- package/dist/codegen/model/gardenGarden.js +113 -0
- package/dist/codegen/model/gardenGardenMyCompositionsInner.d.ts +38 -0
- package/dist/codegen/model/gardenGardenMyCompositionsInner.d.ts.map +1 -0
- package/dist/codegen/model/gardenGardenMyCompositionsInner.js +86 -0
- package/dist/codegen/model/gardenGardenMyTeam.d.ts +32 -0
- package/dist/codegen/model/gardenGardenMyTeam.d.ts.map +1 -0
- package/dist/codegen/model/gardenGardenMyTeam.js +50 -0
- package/dist/codegen/model/getFarmerOpponents200Response.d.ts +27 -0
- package/dist/codegen/model/getFarmerOpponents200Response.d.ts.map +1 -0
- package/dist/codegen/model/getFarmerOpponents200Response.js +29 -0
- package/dist/codegen/model/getFilesContentRequest.d.ts +29 -0
- package/dist/codegen/model/getFilesContentRequest.d.ts.map +1 -0
- package/dist/codegen/model/getFilesContentRequest.js +32 -0
- package/dist/codegen/model/getSoloOpponents200Response.d.ts +27 -0
- package/dist/codegen/model/getSoloOpponents200Response.d.ts.map +1 -0
- package/dist/codegen/model/getSoloOpponents200Response.js +29 -0
- package/dist/codegen/model/ia.d.ts +37 -0
- package/dist/codegen/model/ia.d.ts.map +1 -0
- package/dist/codegen/model/ia.js +80 -0
- package/dist/codegen/model/item.d.ts +35 -0
- package/dist/codegen/model/item.d.ts.map +1 -0
- package/dist/codegen/model/item.js +68 -0
- package/dist/codegen/model/leek.d.ts +172 -0
- package/dist/codegen/model/leek.d.ts.map +1 -0
- package/dist/codegen/model/leek.js +350 -0
- package/dist/codegen/model/logindump.d.ts +34 -0
- package/dist/codegen/model/logindump.d.ts.map +1 -0
- package/dist/codegen/model/logindump.js +41 -0
- package/dist/codegen/model/models.d.ts +87 -0
- package/dist/codegen/model/models.d.ts.map +1 -0
- package/dist/codegen/model/models.js +331 -0
- package/dist/codegen/model/opponent.d.ts +32 -0
- package/dist/codegen/model/opponent.d.ts.map +1 -0
- package/dist/codegen/model/opponent.js +50 -0
- package/dist/codegen/model/publicLeek.d.ts +225 -0
- package/dist/codegen/model/publicLeek.d.ts.map +1 -0
- package/dist/codegen/model/publicLeek.js +494 -0
- package/dist/codegen/model/publicLeekAi.d.ts +30 -0
- package/dist/codegen/model/publicLeekAi.d.ts.map +1 -0
- package/dist/codegen/model/publicLeekAi.js +53 -0
- package/dist/codegen/model/publicLeekChipsInner.d.ts +27 -0
- package/dist/codegen/model/publicLeekChipsInner.d.ts.map +1 -0
- package/dist/codegen/model/publicLeekChipsInner.js +35 -0
- package/dist/codegen/model/saveFile200Response.d.ts +29 -0
- package/dist/codegen/model/saveFile200Response.d.ts.map +1 -0
- package/dist/codegen/model/saveFile200Response.js +32 -0
- package/dist/codegen/model/saveFileRequest.d.ts +27 -0
- package/dist/codegen/model/saveFileRequest.d.ts.map +1 -0
- package/dist/codegen/model/saveFileRequest.js +35 -0
- package/dist/codegen/model/startFarmerFightRequest.d.ts +26 -0
- package/dist/codegen/model/startFarmerFightRequest.d.ts.map +1 -0
- package/dist/codegen/model/startFarmerFightRequest.js +29 -0
- package/dist/codegen/model/startSoloFight200Response.d.ts +26 -0
- package/dist/codegen/model/startSoloFight200Response.d.ts.map +1 -0
- package/dist/codegen/model/startSoloFight200Response.js +29 -0
- package/dist/codegen/model/startSoloFightRequest.d.ts +27 -0
- package/dist/codegen/model/startSoloFightRequest.d.ts.map +1 -0
- package/dist/codegen/model/startSoloFightRequest.js +35 -0
- package/dist/codegen/model/team.d.ts +34 -0
- package/dist/codegen/model/team.d.ts.map +1 -0
- package/dist/codegen/model/team.js +62 -0
- package/dist/codegen/model/tournamentResume.d.ts +36 -0
- package/dist/codegen/model/tournamentResume.d.ts.map +1 -0
- package/dist/codegen/model/tournamentResume.js +47 -0
- package/dist/credentials/credentials-manager.d.ts +19 -0
- package/dist/credentials/credentials-manager.d.ts.map +1 -0
- package/dist/credentials/credentials-manager.js +80 -0
- package/dist/leek-sync/filelist/cached-filelist.d.ts +13 -0
- package/dist/leek-sync/filelist/cached-filelist.d.ts.map +1 -0
- package/dist/leek-sync/filelist/cached-filelist.js +49 -0
- package/dist/leek-sync/filelist/filelist.d.ts +24 -0
- package/dist/leek-sync/filelist/filelist.d.ts.map +1 -0
- package/dist/leek-sync/filelist/filelist.js +77 -0
- package/dist/leek-sync/filelist/leekfile.d.ts +18 -0
- package/dist/leek-sync/filelist/leekfile.d.ts.map +1 -0
- package/dist/leek-sync/filelist/leekfile.js +54 -0
- package/dist/leek-sync/leek-sync-client.d.ts +13 -0
- package/dist/leek-sync/leek-sync-client.d.ts.map +1 -0
- package/dist/leek-sync/leek-sync-client.js +95 -0
- package/dist/leek-sync/leekfile-source/leekfile-source.d.ts +15 -0
- package/dist/leek-sync/leekfile-source/leekfile-source.d.ts.map +1 -0
- package/dist/leek-sync/leekfile-source/leekfile-source.js +37 -0
- package/dist/leek-sync/leekfile-source/leekwars-source.d.ts +22 -0
- package/dist/leek-sync/leekfile-source/leekwars-source.d.ts.map +1 -0
- package/dist/leek-sync/leekfile-source/leekwars-source.js +114 -0
- package/dist/leek-sync/leekfile-source/localfile-source.d.ts +22 -0
- package/dist/leek-sync/leekfile-source/localfile-source.d.ts.map +1 -0
- package/dist/leek-sync/leekfile-source/localfile-source.js +184 -0
- package/dist/leeksync.d.ts +2 -0
- package/dist/leeksync.d.ts.map +1 -0
- package/dist/leeksync.js +15 -0
- package/dist/login.d.ts +2 -0
- package/dist/login.d.ts.map +1 -0
- package/dist/login.js +12 -0
- package/dist/node-leek-client/leek-wars-client.d.ts +46 -0
- package/dist/node-leek-client/leek-wars-client.d.ts.map +1 -0
- package/dist/node-leek-client/leek-wars-client.js +541 -0
- package/dist/node-leek-client/leekwars-frontend/Item.d.ts +80 -0
- package/dist/node-leek-client/leekwars-frontend/Item.d.ts.map +1 -0
- package/dist/node-leek-client/leekwars-frontend/Item.js +88 -0
- package/dist/node-leek-client/leekwars-frontend/Items.d.ts +5 -0
- package/dist/node-leek-client/leekwars-frontend/Items.d.ts.map +1 -0
- package/dist/node-leek-client/leekwars-frontend/Items.js +7077 -0
- package/dist/node-leek-client/leekwars-frontend/Notification.d.ts +41 -0
- package/dist/node-leek-client/leekwars-frontend/Notification.d.ts.map +1 -0
- package/dist/node-leek-client/leekwars-frontend/Notification.js +44 -0
- package/dist/node-leek-client/leekwars-frontend/SocketMessage.d.ts +76 -0
- package/dist/node-leek-client/leekwars-frontend/SocketMessage.d.ts.map +1 -0
- package/dist/node-leek-client/leekwars-frontend/SocketMessage.js +88 -0
- package/dist/node-leek-client/node-leek-client.d.ts +37 -0
- package/dist/node-leek-client/node-leek-client.d.ts.map +1 -0
- package/dist/node-leek-client/node-leek-client.js +203 -0
- package/package.json +25 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare class Credentials {
|
|
2
|
+
username: string;
|
|
3
|
+
password: string;
|
|
4
|
+
}
|
|
5
|
+
export declare class CredentialsManager {
|
|
6
|
+
private credentials;
|
|
7
|
+
private clients;
|
|
8
|
+
constructor(path: string);
|
|
9
|
+
private load;
|
|
10
|
+
private connectClient;
|
|
11
|
+
private disconnectClient;
|
|
12
|
+
forEachAccount(input: any, readonly?: boolean): Promise<void>;
|
|
13
|
+
forFirstAccount(input: any, readonly?: boolean): Promise<void>;
|
|
14
|
+
forOtherAccount(input: any, readonly?: boolean): Promise<void>;
|
|
15
|
+
forEachAccountSimultaneous(input: any, readonly?: boolean): Promise<void[]>;
|
|
16
|
+
connectEachAccount(readonly?: boolean): Promise<void>;
|
|
17
|
+
disconnectEachAccount(): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=credentials-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials-manager.d.ts","sourceRoot":"","sources":["../../src/credentials/credentials-manager.ts"],"names":[],"mappings":"AAGA,qBAAa,WAAW;IACb,QAAQ,EAAE,MAAM,CAAK;IACrB,QAAQ,EAAE,MAAM,CAAK;CAC/B;AAED,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,OAAO,CAAiC;gBAEpC,IAAI,EAAE,MAAM;IAIxB,OAAO,CAAC,IAAI;YAUE,aAAa;YAiBb,gBAAgB;IAWjB,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,GAAE,OAAe;IAMpD,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,GAAE,OAAe;IAIrD,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,GAAE,OAAe;IAMrD,0BAA0B,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,GAAE,OAAe;IAOhE,kBAAkB,CAAC,QAAQ,GAAE,OAAe;IAM5C,qBAAqB;CAKrC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CredentialsManager = exports.Credentials = void 0;
|
|
7
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
+
const node_leek_client_js_1 = __importDefault(require("../node-leek-client/node-leek-client.js"));
|
|
9
|
+
class Credentials {
|
|
10
|
+
username = "";
|
|
11
|
+
password = "";
|
|
12
|
+
}
|
|
13
|
+
exports.Credentials = Credentials;
|
|
14
|
+
class CredentialsManager {
|
|
15
|
+
credentials = [];
|
|
16
|
+
clients = [];
|
|
17
|
+
constructor(path) {
|
|
18
|
+
this.load(path);
|
|
19
|
+
}
|
|
20
|
+
load(path) {
|
|
21
|
+
const credentials = JSON.parse(node_fs_1.default.readFileSync(path, "utf8"));
|
|
22
|
+
if (Array.isArray(credentials)) {
|
|
23
|
+
this.credentials = credentials;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
this.credentials = [credentials];
|
|
27
|
+
}
|
|
28
|
+
this.clients = this.credentials.map(credential => null);
|
|
29
|
+
}
|
|
30
|
+
async connectClient(index, readonly = false) {
|
|
31
|
+
if (index < 0 || index > this.credentials.length) {
|
|
32
|
+
console.error("CredentialsManager attempt to get client #" + index + " but it doesn't exist, please report this issue");
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
if (this.clients[index] == null) {
|
|
36
|
+
this.clients[index] = new node_leek_client_js_1.default(this.credentials[index].username, this.credentials[index].password, readonly);
|
|
37
|
+
await this.clients[index]?.login();
|
|
38
|
+
}
|
|
39
|
+
return this.clients[index];
|
|
40
|
+
}
|
|
41
|
+
async disconnectClient(index) {
|
|
42
|
+
if (index < 0 || index > this.credentials.length) {
|
|
43
|
+
console.error("CredentialsManager attempt to get client #" + index + " but it doesn't exist, please report this issue");
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (this.clients[index] != null) {
|
|
47
|
+
await this.clients[index]?.close();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
async forEachAccount(input, readonly = false) {
|
|
51
|
+
for (let i = 0; i < this.credentials.length; i++) {
|
|
52
|
+
await input(await this.connectClient(i, readonly), i);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async forFirstAccount(input, readonly = false) {
|
|
56
|
+
await input(await this.connectClient(0, readonly), 0);
|
|
57
|
+
}
|
|
58
|
+
async forOtherAccount(input, readonly = false) {
|
|
59
|
+
for (let i = 1; i < this.credentials.length; i++) {
|
|
60
|
+
await input(await this.connectClient(i, readonly), i);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async forEachAccountSimultaneous(input, readonly = false) {
|
|
64
|
+
await this.connectEachAccount();
|
|
65
|
+
return Promise.all(this.clients.map(async (client, index) => {
|
|
66
|
+
await input(client, index);
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
async connectEachAccount(readonly = false) {
|
|
70
|
+
for (var i = 0; i < this.credentials.length; i++) {
|
|
71
|
+
await this.connectClient(i, readonly);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
async disconnectEachAccount() {
|
|
75
|
+
for (var i = 0; i < this.credentials.length; i++) {
|
|
76
|
+
await this.disconnectClient(i);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.CredentialsManager = CredentialsManager;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import Filelist from "./filelist.js";
|
|
2
|
+
import LeekFile from "./leekfile.js";
|
|
3
|
+
declare class CachedFilelist extends Filelist {
|
|
4
|
+
protected path: string;
|
|
5
|
+
constructor(path: string);
|
|
6
|
+
private loadCacheFile;
|
|
7
|
+
private saveCacheFile;
|
|
8
|
+
set(name: string, leekFile: LeekFile): void;
|
|
9
|
+
remove(name: string): void;
|
|
10
|
+
save(): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
export default CachedFilelist;
|
|
13
|
+
//# sourceMappingURL=cached-filelist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cached-filelist.d.ts","sourceRoot":"","sources":["../../../src/leek-sync/filelist/cached-filelist.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AAGrC,OAAO,QAAQ,MAAM,eAAe,CAAC;AAErC,cAAM,cAAe,SAAQ,QAAQ;IACjC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEX,IAAI,EAAE,MAAM;IAMxB,OAAO,CAAC,aAAa;YAYP,aAAa;IASlB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAMpC,MAAM,CAAC,IAAI,EAAE,MAAM;IAMb,IAAI;CAGtB;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const filelist_js_1 = __importDefault(require("./filelist.js"));
|
|
7
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
+
const debounce_1 = __importDefault(require("debounce"));
|
|
9
|
+
const leekfile_js_1 = __importDefault(require("./leekfile.js"));
|
|
10
|
+
class CachedFilelist extends filelist_js_1.default {
|
|
11
|
+
path;
|
|
12
|
+
constructor(path) {
|
|
13
|
+
super();
|
|
14
|
+
this.path = path;
|
|
15
|
+
this.loadCacheFile();
|
|
16
|
+
}
|
|
17
|
+
loadCacheFile() {
|
|
18
|
+
try {
|
|
19
|
+
const fakeFileList = JSON.parse(node_fs_1.default.readFileSync(this.path, "utf8"));
|
|
20
|
+
this.fileList = {};
|
|
21
|
+
for (const file of Object.values(fakeFileList)) {
|
|
22
|
+
this.fileList[file.name] = new leekfile_js_1.default(file.name, file.id, file.code, file.timestamp, file.folder, file.hash);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
catch (e) {
|
|
26
|
+
this.fileList = {};
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
async saveCacheFile() {
|
|
30
|
+
return node_fs_1.default.writeFile(this.path, JSON.stringify(this.fileList), 'utf-8', (err) => {
|
|
31
|
+
if (err != null) {
|
|
32
|
+
console.error("Can't save local cache to " + this.path + " : ");
|
|
33
|
+
console.error(err);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
set(name, leekFile) {
|
|
38
|
+
super.set(name, leekFile);
|
|
39
|
+
(0, debounce_1.default)(this.save, 1000);
|
|
40
|
+
}
|
|
41
|
+
remove(name) {
|
|
42
|
+
super.remove(name);
|
|
43
|
+
(0, debounce_1.default)(this.save, 1000);
|
|
44
|
+
}
|
|
45
|
+
async save() {
|
|
46
|
+
await this.saveCacheFile();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.default = CachedFilelist;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import LeekFile from "./leekfile.js";
|
|
2
|
+
declare class Filelist {
|
|
3
|
+
protected fileList: {
|
|
4
|
+
[file: string]: LeekFile;
|
|
5
|
+
};
|
|
6
|
+
pristine: boolean;
|
|
7
|
+
logs: string;
|
|
8
|
+
constructor();
|
|
9
|
+
addLog(log: string): void;
|
|
10
|
+
get(name: string): LeekFile;
|
|
11
|
+
set(name: string, leekFile: LeekFile): void;
|
|
12
|
+
contains(name: string): boolean;
|
|
13
|
+
getCount(): number;
|
|
14
|
+
getTimestamp(name: string): number;
|
|
15
|
+
getFileNames(): string[];
|
|
16
|
+
getFiles(): LeekFile[];
|
|
17
|
+
remove(filename: string): void;
|
|
18
|
+
removeAllNotIn(elements: string[]): void;
|
|
19
|
+
compare(filelist: Filelist): boolean;
|
|
20
|
+
save(): Promise<void>;
|
|
21
|
+
fileIsSimilar(file: LeekFile): boolean;
|
|
22
|
+
}
|
|
23
|
+
export default Filelist;
|
|
24
|
+
//# sourceMappingURL=filelist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filelist.d.ts","sourceRoot":"","sources":["../../../src/leek-sync/filelist/filelist.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AAGrC,cAAM,QAAQ;IAMV,SAAS,CAAC,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAA;KAAE,CAAM;IAC/C,QAAQ,EAAE,OAAO,CAAQ;IACzB,IAAI,EAAE,MAAM,CAAK;;IAMxB,MAAM,CAAC,GAAG,EAAE,MAAM;IAKlB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ;IAI3B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKpC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI/B,QAAQ,IAAI,MAAM;IAIlB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAKlC,YAAY,IAAI,MAAM,EAAE;IAIxB,QAAQ;IAIR,MAAM,CAAC,QAAQ,EAAE,MAAM;IAKvB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE;IAOjC,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAkB9B,IAAI;IAIV,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;CAGzC;AAED,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class Filelist {
|
|
4
|
+
/*
|
|
5
|
+
Filelist represent some LeekFile mapped by their path
|
|
6
|
+
You can add or remove file
|
|
7
|
+
*/
|
|
8
|
+
fileList = {};
|
|
9
|
+
pristine = true;
|
|
10
|
+
logs = "";
|
|
11
|
+
constructor() {
|
|
12
|
+
this.fileList = {};
|
|
13
|
+
}
|
|
14
|
+
addLog(log) {
|
|
15
|
+
this.pristine = false;
|
|
16
|
+
this.logs += log + "\n";
|
|
17
|
+
}
|
|
18
|
+
get(name) {
|
|
19
|
+
return this.fileList[name];
|
|
20
|
+
}
|
|
21
|
+
set(name, leekFile) {
|
|
22
|
+
this.addLog("+ " + name);
|
|
23
|
+
this.fileList[name] = leekFile;
|
|
24
|
+
}
|
|
25
|
+
contains(name) {
|
|
26
|
+
return name in this.fileList;
|
|
27
|
+
}
|
|
28
|
+
getCount() {
|
|
29
|
+
return Object.keys(this.fileList).length;
|
|
30
|
+
}
|
|
31
|
+
getTimestamp(name) {
|
|
32
|
+
if (!this.contains(name))
|
|
33
|
+
return 0;
|
|
34
|
+
return this.get(name).timestamp;
|
|
35
|
+
}
|
|
36
|
+
getFileNames() {
|
|
37
|
+
return Object.keys(this.fileList);
|
|
38
|
+
}
|
|
39
|
+
getFiles() {
|
|
40
|
+
return Object.values(this.fileList);
|
|
41
|
+
}
|
|
42
|
+
remove(filename) {
|
|
43
|
+
this.addLog("- " + filename);
|
|
44
|
+
delete this.fileList[filename];
|
|
45
|
+
}
|
|
46
|
+
removeAllNotIn(elements) {
|
|
47
|
+
this.getFileNames().forEach(filename => {
|
|
48
|
+
if (elements.includes(filename))
|
|
49
|
+
return;
|
|
50
|
+
this.remove(filename);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
compare(filelist) {
|
|
54
|
+
// Check file count match
|
|
55
|
+
if (filelist.getCount() != this.getCount())
|
|
56
|
+
return false;
|
|
57
|
+
// Check other files all exists in this filelist
|
|
58
|
+
for (let file of filelist.getFiles()) {
|
|
59
|
+
if (this.contains(file.name))
|
|
60
|
+
continue;
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
// Check files doesn't differ in hash
|
|
64
|
+
for (let file of this.getFiles()) {
|
|
65
|
+
if (!filelist.fileIsSimilar(file))
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
async save() {
|
|
71
|
+
// DO NOTHING
|
|
72
|
+
}
|
|
73
|
+
fileIsSimilar(file) {
|
|
74
|
+
return this.contains(file.name) && this.get(file.name).isSimilar(file);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.default = Filelist;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
declare class LeekFile {
|
|
2
|
+
name: string;
|
|
3
|
+
id: number;
|
|
4
|
+
timestamp: number;
|
|
5
|
+
code: string;
|
|
6
|
+
folder: boolean;
|
|
7
|
+
hash: string;
|
|
8
|
+
static Folder(name: string, id?: number): LeekFile;
|
|
9
|
+
constructor(name: string, id: number, code: string, timestamp: number, folder?: boolean, hash?: string | null);
|
|
10
|
+
getHash(code: string): string;
|
|
11
|
+
getFilename(): string;
|
|
12
|
+
getFilenameWithoutExtension(): string;
|
|
13
|
+
getParentFolder(): string;
|
|
14
|
+
isSimilar(file: LeekFile): boolean;
|
|
15
|
+
setCode(code: string): void;
|
|
16
|
+
}
|
|
17
|
+
export default LeekFile;
|
|
18
|
+
//# sourceMappingURL=leekfile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leekfile.d.ts","sourceRoot":"","sources":["../../../src/leek-sync/filelist/leekfile.ts"],"names":[],"mappings":"AAEA,cAAM,QAAQ;IACH,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAM;IAClB,MAAM,EAAE,OAAO,CAAQ;IACvB,IAAI,EAAE,MAAM,CAAM;IAEzB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAE,MAAU,GAAI,QAAQ;gBAI1C,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,OAAe,EAAE,IAAI,GAAE,MAAM,GAAG,IAAW;IAS1H,OAAO,CAAC,IAAI,EAAE,MAAM,GAAI,MAAM;IAI9B,WAAW,IAAI,MAAM;IAQrB,2BAA2B,IAAI,MAAM;IAQrC,eAAe,IAAI,MAAM;IAQlB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAI,OAAO;IAI1C,OAAO,CAAC,IAAI,EAAE,MAAM;CAIvB;AAED,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const node_crypto_1 = require("node:crypto");
|
|
4
|
+
class LeekFile {
|
|
5
|
+
name;
|
|
6
|
+
id;
|
|
7
|
+
timestamp;
|
|
8
|
+
code = "";
|
|
9
|
+
folder = true;
|
|
10
|
+
hash = "";
|
|
11
|
+
static Folder(name, id = 0) {
|
|
12
|
+
return new LeekFile(name, id, "", 0, true);
|
|
13
|
+
}
|
|
14
|
+
constructor(name, id, code, timestamp, folder = false, hash = null) {
|
|
15
|
+
this.name = name;
|
|
16
|
+
this.id = id;
|
|
17
|
+
this.timestamp = timestamp;
|
|
18
|
+
this.hash = hash ?? this.getHash(code);
|
|
19
|
+
this.code = code;
|
|
20
|
+
this.folder = folder;
|
|
21
|
+
}
|
|
22
|
+
getHash(code) {
|
|
23
|
+
return (0, node_crypto_1.createHash)('md5').update(code).digest('hex');
|
|
24
|
+
}
|
|
25
|
+
getFilename() {
|
|
26
|
+
if (this.folder) {
|
|
27
|
+
const withoutLeadingSlash = this.name.substring(0, this.name.length - 1);
|
|
28
|
+
return withoutLeadingSlash.substring(withoutLeadingSlash.lastIndexOf("/") + 1);
|
|
29
|
+
}
|
|
30
|
+
return this.name.substring(this.name.lastIndexOf("/") + 1);
|
|
31
|
+
}
|
|
32
|
+
getFilenameWithoutExtension() {
|
|
33
|
+
const name = this.getFilename();
|
|
34
|
+
if (this.folder) {
|
|
35
|
+
return name;
|
|
36
|
+
}
|
|
37
|
+
return name.substring(0, name.lastIndexOf("."));
|
|
38
|
+
}
|
|
39
|
+
getParentFolder() {
|
|
40
|
+
if (this.folder) {
|
|
41
|
+
const withoutLeadingSlash = this.name.substring(0, this.name.length - 1);
|
|
42
|
+
return withoutLeadingSlash.substring(0, withoutLeadingSlash.lastIndexOf("/") + 1);
|
|
43
|
+
}
|
|
44
|
+
return this.name.substring(0, this.name.lastIndexOf("/") + 1);
|
|
45
|
+
}
|
|
46
|
+
isSimilar(file) {
|
|
47
|
+
return file.folder || file.timestamp === this.timestamp || file.hash === this.hash;
|
|
48
|
+
}
|
|
49
|
+
setCode(code) {
|
|
50
|
+
this.code = code;
|
|
51
|
+
this.hash = this.getHash(code);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.default = LeekFile;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import NodeLeekClient from "../node-leek-client/node-leek-client.js";
|
|
2
|
+
import Filelist from "./filelist/filelist.js";
|
|
3
|
+
export declare class LeekSyncClient {
|
|
4
|
+
leekwarsFilelist: Filelist;
|
|
5
|
+
localFilelist: Filelist;
|
|
6
|
+
private leekwarsSource;
|
|
7
|
+
private localSource;
|
|
8
|
+
constructor(nodeLeekClient: NodeLeekClient, path: string);
|
|
9
|
+
start(watch: boolean, choice: string): Promise<void>;
|
|
10
|
+
private askSourceToUse;
|
|
11
|
+
private processChoice;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=leek-sync-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leek-sync-client.d.ts","sourceRoot":"","sources":["../../src/leek-sync/leek-sync-client.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,yCAAyC,CAAC;AAKrE,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAa9C,qBAAa,cAAc;IAEvB,gBAAgB,EAAE,QAAQ,CAAA;IAC1B,aAAa,EAAE,QAAQ,CAAA;IAEvB,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,WAAW,CAAiB;gBAGxB,cAAc,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM;IAQ3C,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;YAiCnC,cAAc;IA4B5B,OAAO,CAAC,aAAa;CAQxB"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.LeekSyncClient = void 0;
|
|
7
|
+
const cached_filelist_js_1 = __importDefault(require("./filelist/cached-filelist.js"));
|
|
8
|
+
const leekwars_source_js_1 = __importDefault(require("./leekfile-source/leekwars-source.js"));
|
|
9
|
+
const localfile_source_js_1 = __importDefault(require("./leekfile-source/localfile-source.js"));
|
|
10
|
+
const readline_1 = __importDefault(require("readline"));
|
|
11
|
+
const CHOICE_LEEKWARS = 1;
|
|
12
|
+
const CHOICE_LOCAL = 2;
|
|
13
|
+
// Create an interface for input and output
|
|
14
|
+
const rl = readline_1.default.createInterface({
|
|
15
|
+
input: process.stdin,
|
|
16
|
+
output: process.stdout
|
|
17
|
+
});
|
|
18
|
+
class LeekSyncClient {
|
|
19
|
+
leekwarsFilelist;
|
|
20
|
+
localFilelist;
|
|
21
|
+
leekwarsSource;
|
|
22
|
+
localSource;
|
|
23
|
+
constructor(nodeLeekClient, path) {
|
|
24
|
+
this.leekwarsFilelist = new cached_filelist_js_1.default(".local.leekwars.json");
|
|
25
|
+
this.localFilelist = new cached_filelist_js_1.default(".local.filesystem.json");
|
|
26
|
+
this.leekwarsSource = new leekwars_source_js_1.default(nodeLeekClient, this.leekwarsFilelist);
|
|
27
|
+
this.localSource = new localfile_source_js_1.default(path, this.localFilelist);
|
|
28
|
+
}
|
|
29
|
+
async start(watch, choice) {
|
|
30
|
+
// Fetch leekwars file to ensure our filesystem is up to date since last session
|
|
31
|
+
await this.leekwarsSource.init();
|
|
32
|
+
await this.localSource.init();
|
|
33
|
+
// Compare both local filesystem and assert that hash match
|
|
34
|
+
// Ask what to do if something doesn't correspond (maybe have a boolean that indicate which got modified since last session to help understand what changes)
|
|
35
|
+
// Sync toward localfiles or toward leekwars
|
|
36
|
+
// Open watcher, push modifications to leekwars and update filestorage accordingly
|
|
37
|
+
// If both doesn't match, ask which source to use
|
|
38
|
+
if (!this.leekwarsSource.compareWith(this.localSource)) {
|
|
39
|
+
const source = await this.askSourceToUse(choice);
|
|
40
|
+
if (source == CHOICE_LEEKWARS) {
|
|
41
|
+
await this.localSource.importFrom(this.leekwarsSource);
|
|
42
|
+
}
|
|
43
|
+
else if (source == CHOICE_LOCAL) {
|
|
44
|
+
await this.leekwarsSource.importFrom(this.localSource);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
console.error("Invalid choice, please report this bug");
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
await this.leekwarsFilelist.save();
|
|
51
|
+
await this.localFilelist.save();
|
|
52
|
+
if (watch) {
|
|
53
|
+
this.localSource.startWatching(this.leekwarsSource);
|
|
54
|
+
console.log("LeekSync is ready !");
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
console.log("LeekSync done !");
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
async askSourceToUse(choice) {
|
|
61
|
+
var source = this.processChoice(choice);
|
|
62
|
+
const askQuestion = (question) => {
|
|
63
|
+
return new Promise((resolve) => {
|
|
64
|
+
rl.question(question, (answer) => {
|
|
65
|
+
resolve(answer);
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
var response = "";
|
|
70
|
+
console.log("Leekwars (" + this.leekwarsSource.getCount() + " files) and Local files (" + this.localSource.getCount() + " files) aren't sync");
|
|
71
|
+
if (this.leekwarsSource.getCount() == 0)
|
|
72
|
+
source = CHOICE_LOCAL; // Automatically choose the other source
|
|
73
|
+
else if (!this.leekwarsSource.isPristine())
|
|
74
|
+
console.log("Leekwars has been updated since last session : \n" + this.leekwarsFilelist.logs);
|
|
75
|
+
if (this.localSource.getCount() == 0)
|
|
76
|
+
source = CHOICE_LEEKWARS; // Automatically choose the other source
|
|
77
|
+
else if (!this.localSource.isPristine())
|
|
78
|
+
console.log("Local files have been updated since last session : \n" + this.localFilelist.logs);
|
|
79
|
+
while (source == null) {
|
|
80
|
+
choice = await askQuestion("From which one do you want to import files ?\nType leekwars or local : ");
|
|
81
|
+
source = this.processChoice(choice);
|
|
82
|
+
}
|
|
83
|
+
return source;
|
|
84
|
+
}
|
|
85
|
+
processChoice(response) {
|
|
86
|
+
if (response.toLowerCase() == "leekwars") {
|
|
87
|
+
return CHOICE_LEEKWARS;
|
|
88
|
+
}
|
|
89
|
+
else if (response.toLowerCase() == "local") {
|
|
90
|
+
return CHOICE_LOCAL;
|
|
91
|
+
}
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
exports.LeekSyncClient = LeekSyncClient;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import LeekFile from "../filelist/leekfile.js";
|
|
2
|
+
import Filelist from "../filelist/filelist.js";
|
|
3
|
+
declare abstract class LeekfileSource {
|
|
4
|
+
protected filelist: Filelist;
|
|
5
|
+
protected constructor(filelist: Filelist);
|
|
6
|
+
updateFile(file: LeekFile): Promise<void>;
|
|
7
|
+
deleteFile(file: LeekFile): Promise<void>;
|
|
8
|
+
abstract init(): void;
|
|
9
|
+
importFrom(otherSource: LeekfileSource): Promise<void>;
|
|
10
|
+
compareWith(otherSource: LeekfileSource): boolean;
|
|
11
|
+
isPristine(): boolean;
|
|
12
|
+
getCount(): number;
|
|
13
|
+
}
|
|
14
|
+
export default LeekfileSource;
|
|
15
|
+
//# sourceMappingURL=leekfile-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leekfile-source.d.ts","sourceRoot":"","sources":["../../../src/leek-sync/leekfile-source/leekfile-source.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAG/C,uBAAe,cAAc;IAEzB,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAE7B,SAAS,aAAa,QAAQ,EAAE,QAAQ;IAIlC,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,QAAQ,CAAC,IAAI,IAAI,IAAI;IAEf,UAAU,CAAC,WAAW,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAe5D,WAAW,CAAC,WAAW,EAAE,cAAc,GAAG,OAAO;IAIjD,UAAU,IAAI,OAAO;IAIrB,QAAQ,IAAI,MAAM;CAGrB;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class LeekfileSource {
|
|
4
|
+
filelist;
|
|
5
|
+
constructor(filelist) {
|
|
6
|
+
this.filelist = filelist;
|
|
7
|
+
}
|
|
8
|
+
async updateFile(file) {
|
|
9
|
+
this.filelist.set(file.name, file);
|
|
10
|
+
}
|
|
11
|
+
async deleteFile(file) {
|
|
12
|
+
this.filelist.remove(file.name);
|
|
13
|
+
}
|
|
14
|
+
async importFrom(otherSource) {
|
|
15
|
+
// Remove file not present in the otherSource
|
|
16
|
+
for (const file of this.filelist.getFiles()
|
|
17
|
+
.filter((file) => !otherSource.filelist.contains(file.name))) {
|
|
18
|
+
await this.deleteFile(file);
|
|
19
|
+
}
|
|
20
|
+
// Update files
|
|
21
|
+
for (const file of otherSource.filelist.getFiles()
|
|
22
|
+
.filter((file) => !this.filelist.fileIsSimilar(file))) {
|
|
23
|
+
console.log("Updating out of sync : " + file.name);
|
|
24
|
+
await this.updateFile(file);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
compareWith(otherSource) {
|
|
28
|
+
return this.filelist.compare(otherSource.filelist);
|
|
29
|
+
}
|
|
30
|
+
isPristine() {
|
|
31
|
+
return this.filelist.pristine;
|
|
32
|
+
}
|
|
33
|
+
getCount() {
|
|
34
|
+
return this.filelist.getCount() - 1; // Minus 1 because we don't count root folder
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.default = LeekfileSource;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import LeekFile from "../filelist/leekfile.js";
|
|
2
|
+
import LeekfileSource from "./leekfile-source.js";
|
|
3
|
+
import NodeLeekClient from "../../node-leek-client/node-leek-client.js";
|
|
4
|
+
import Filelist from "../filelist/filelist.js";
|
|
5
|
+
declare class LeekwarsSource extends LeekfileSource {
|
|
6
|
+
private nodeLeekClient;
|
|
7
|
+
constructor(nodeLeekClient: NodeLeekClient, filelist: Filelist);
|
|
8
|
+
init(): Promise<void>;
|
|
9
|
+
private fetchFiles;
|
|
10
|
+
private isFolder;
|
|
11
|
+
deleteFile(file: LeekFile): Promise<void>;
|
|
12
|
+
updateFile(file: LeekFile): Promise<void>;
|
|
13
|
+
private createOrUpdateFileInLeekwars;
|
|
14
|
+
private updateFileInLeekwars;
|
|
15
|
+
private createFileInLeekwars;
|
|
16
|
+
private createFolderInLeekwars;
|
|
17
|
+
private getOrCreateFolderId;
|
|
18
|
+
private getFolderParentPath;
|
|
19
|
+
private getFolderName;
|
|
20
|
+
}
|
|
21
|
+
export default LeekwarsSource;
|
|
22
|
+
//# sourceMappingURL=leekwars-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leekwars-source.d.ts","sourceRoot":"","sources":["../../../src/leek-sync/leekfile-source/leekwars-source.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,cAAc,MAAM,4CAA4C,CAAC;AACxE,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAE/C,cAAM,cAAe,SAAQ,cAAc;IACvC,OAAO,CAAC,cAAc,CAAiB;gBAE3B,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ;IAKxD,IAAI;YAuBI,UAAU;IAoBxB,OAAO,CAAC,QAAQ;IAID,UAAU,CAAC,IAAI,EAAE,QAAQ;IAWzB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;YAI1C,4BAA4B;YAO5B,oBAAoB;YASpB,oBAAoB;YAUpB,sBAAsB;YAItB,mBAAmB;IAcjC,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,aAAa;CAIxB;AAED,eAAe,cAAc,CAAC"}
|