@keeper-security/keeper-sdk-javascript 0.1.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/dist/auth/ConsoleAuthUI.d.ts +10 -0
- package/dist/auth/ConsoleAuthUI.js +152 -0
- package/dist/auth/ConsoleAuthUI.js.map +1 -0
- package/dist/auth/ConsoleLogin.d.ts +8 -0
- package/dist/auth/ConsoleLogin.js +266 -0
- package/dist/auth/ConsoleLogin.js.map +1 -0
- package/dist/auth/SessionManager.d.ts +66 -0
- package/dist/auth/SessionManager.js +211 -0
- package/dist/auth/SessionManager.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.js +61 -0
- package/dist/index.js.map +1 -0
- package/dist/records/RecordOperations.d.ts +79 -0
- package/dist/records/RecordOperations.js +346 -0
- package/dist/records/RecordOperations.js.map +1 -0
- package/dist/records/RecordUtils.d.ts +36 -0
- package/dist/records/RecordUtils.js +224 -0
- package/dist/records/RecordUtils.js.map +1 -0
- package/dist/sharing/Sharing.d.ts +27 -0
- package/dist/sharing/Sharing.js +125 -0
- package/dist/sharing/Sharing.js.map +1 -0
- package/dist/src/auth/ConsoleAuthUI.d.ts +10 -0
- package/dist/src/auth/ConsoleAuthUI.js +161 -0
- package/dist/src/auth/ConsoleAuthUI.js.map +1 -0
- package/dist/src/auth/ConsoleLogin.d.ts +8 -0
- package/dist/src/auth/ConsoleLogin.js +311 -0
- package/dist/src/auth/ConsoleLogin.js.map +1 -0
- package/dist/src/auth/SessionManager.d.ts +67 -0
- package/dist/src/auth/SessionManager.js +212 -0
- package/dist/src/auth/SessionManager.js.map +1 -0
- package/dist/src/folders/FolderManager.d.ts +57 -0
- package/dist/src/folders/FolderManager.js +108 -0
- package/dist/src/folders/FolderManager.js.map +1 -0
- package/dist/src/folders/addFolder.d.ts +32 -0
- package/dist/src/folders/addFolder.js +207 -0
- package/dist/src/folders/addFolder.js.map +1 -0
- package/dist/src/folders/changeDirectory.d.ts +19 -0
- package/dist/src/folders/changeDirectory.js +171 -0
- package/dist/src/folders/changeDirectory.js.map +1 -0
- package/dist/src/folders/deleteFolder.d.ts +17 -0
- package/dist/src/folders/deleteFolder.js +237 -0
- package/dist/src/folders/deleteFolder.js.map +1 -0
- package/dist/src/folders/folderHelpers.d.ts +48 -0
- package/dist/src/folders/folderHelpers.js +100 -0
- package/dist/src/folders/folderHelpers.js.map +1 -0
- package/dist/src/folders/folderTree.d.ts +29 -0
- package/dist/src/folders/folderTree.js +250 -0
- package/dist/src/folders/folderTree.js.map +1 -0
- package/dist/src/folders/getFolder.d.ts +56 -0
- package/dist/src/folders/getFolder.js +143 -0
- package/dist/src/folders/getFolder.js.map +1 -0
- package/dist/src/folders/listFolder.d.ts +48 -0
- package/dist/src/folders/listFolder.js +276 -0
- package/dist/src/folders/listFolder.js.map +1 -0
- package/dist/src/folders/updateFolder.d.ts +31 -0
- package/dist/src/folders/updateFolder.js +137 -0
- package/dist/src/folders/updateFolder.js.map +1 -0
- package/dist/src/index.d.ts +49 -0
- package/dist/src/index.js +151 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/records/RecordOperations.d.ts +80 -0
- package/dist/src/records/RecordOperations.js +356 -0
- package/dist/src/records/RecordOperations.js.map +1 -0
- package/dist/src/records/RecordUtils.d.ts +37 -0
- package/dist/src/records/RecordUtils.js +263 -0
- package/dist/src/records/RecordUtils.js.map +1 -0
- package/dist/src/records/Totp.d.ts +14 -0
- package/dist/src/records/Totp.js +111 -0
- package/dist/src/records/Totp.js.map +1 -0
- package/dist/src/sharedFolders/SharedFolderManager.d.ts +20 -0
- package/dist/src/sharedFolders/SharedFolderManager.js +33 -0
- package/dist/src/sharedFolders/SharedFolderManager.js.map +1 -0
- package/dist/src/sharedFolders/listSharedFolders.d.ts +29 -0
- package/dist/src/sharedFolders/listSharedFolders.js +127 -0
- package/dist/src/sharedFolders/listSharedFolders.js.map +1 -0
- package/dist/src/sharedFolders/shareFolder.d.ts +36 -0
- package/dist/src/sharedFolders/shareFolder.js +352 -0
- package/dist/src/sharedFolders/shareFolder.js.map +1 -0
- package/dist/src/sharing/Sharing.d.ts +50 -0
- package/dist/src/sharing/Sharing.js +195 -0
- package/dist/src/sharing/Sharing.js.map +1 -0
- package/dist/src/storage/InMemoryStorage.d.ts +24 -0
- package/dist/src/storage/InMemoryStorage.js +139 -0
- package/dist/src/storage/InMemoryStorage.js.map +1 -0
- package/dist/src/teams/TeamManager.d.ts +17 -0
- package/dist/src/teams/TeamManager.js +38 -0
- package/dist/src/teams/TeamManager.js.map +1 -0
- package/dist/src/teams/enterpriseData.d.ts +106 -0
- package/dist/src/teams/enterpriseData.js +319 -0
- package/dist/src/teams/enterpriseData.js.map +1 -0
- package/dist/src/teams/listTeams.d.ts +42 -0
- package/dist/src/teams/listTeams.js +308 -0
- package/dist/src/teams/listTeams.js.map +1 -0
- package/dist/src/teams/viewTeam.d.ts +35 -0
- package/dist/src/teams/viewTeam.js +177 -0
- package/dist/src/teams/viewTeam.js.map +1 -0
- package/dist/src/utils/Logger.d.ts +28 -0
- package/dist/src/utils/Logger.js +62 -0
- package/dist/src/utils/Logger.js.map +1 -0
- package/dist/src/utils/constants.d.ts +50 -0
- package/dist/src/utils/constants.js +64 -0
- package/dist/src/utils/constants.js.map +1 -0
- package/dist/src/utils/errors.d.ts +10 -0
- package/dist/src/utils/errors.js +117 -0
- package/dist/src/utils/errors.js.map +1 -0
- package/dist/src/utils/guards.d.ts +7 -0
- package/dist/src/utils/guards.js +29 -0
- package/dist/src/utils/guards.js.map +1 -0
- package/dist/src/utils/index.d.ts +7 -0
- package/dist/src/utils/index.js +39 -0
- package/dist/src/utils/index.js.map +1 -0
- package/dist/src/utils/patterns.d.ts +9 -0
- package/dist/src/utils/patterns.js +20 -0
- package/dist/src/utils/patterns.js.map +1 -0
- package/dist/src/utils/types.d.ts +12 -0
- package/dist/src/utils/types.js +3 -0
- package/dist/src/utils/types.js.map +1 -0
- package/dist/src/vault/KeeperVault.d.ts +116 -0
- package/dist/src/vault/KeeperVault.js +443 -0
- package/dist/src/vault/KeeperVault.js.map +1 -0
- package/dist/storage/InMemoryStorage.d.ts +24 -0
- package/dist/storage/InMemoryStorage.js +132 -0
- package/dist/storage/InMemoryStorage.js.map +1 -0
- package/dist/utils/Logger.d.ts +28 -0
- package/dist/utils/Logger.js +62 -0
- package/dist/utils/Logger.js.map +1 -0
- package/dist/utils/constants.d.ts +26 -0
- package/dist/utils/constants.js +37 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/errors.d.ts +10 -0
- package/dist/utils/errors.js +117 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.js +22 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/vault/KeeperVault.d.ts +72 -0
- package/dist/vault/KeeperVault.js +338 -0
- package/dist/vault/KeeperVault.js.map +1 -0
- package/package.json +32 -0
- package/src/auth/ConsoleAuthUI.ts +169 -0
- package/src/auth/ConsoleLogin.ts +351 -0
- package/src/auth/SessionManager.ts +293 -0
- package/src/folders/FolderManager.ts +174 -0
- package/src/folders/addFolder.ts +294 -0
- package/src/folders/changeDirectory.ts +217 -0
- package/src/folders/deleteFolder.ts +293 -0
- package/src/folders/folderHelpers.ts +99 -0
- package/src/folders/folderTree.ts +321 -0
- package/src/folders/getFolder.ts +234 -0
- package/src/folders/listFolder.ts +358 -0
- package/src/folders/updateFolder.ts +210 -0
- package/src/index.ts +242 -0
- package/src/records/RecordOperations.ts +549 -0
- package/src/records/RecordUtils.ts +282 -0
- package/src/records/Totp.ts +119 -0
- package/src/sharedFolders/SharedFolderManager.ts +57 -0
- package/src/sharedFolders/listSharedFolders.ts +173 -0
- package/src/sharedFolders/shareFolder.ts +457 -0
- package/src/sharing/Sharing.ts +282 -0
- package/src/storage/InMemoryStorage.ts +163 -0
- package/src/teams/TeamManager.ts +61 -0
- package/src/teams/enterpriseData.ts +453 -0
- package/src/teams/listTeams.ts +373 -0
- package/src/teams/viewTeam.ts +248 -0
- package/src/utils/Logger.ts +71 -0
- package/src/utils/constants.ts +63 -0
- package/src/utils/errors.ts +108 -0
- package/src/utils/guards.ts +24 -0
- package/src/utils/index.ts +22 -0
- package/src/utils/patterns.ts +20 -0
- package/src/utils/types.ts +11 -0
- package/src/vault/KeeperVault.ts +612 -0
- package/tsconfig.json +16 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { type DeviceConfig, type SessionStorage, type KeeperHost, type SessionParams } from '@keeper-security/keeperapi';
|
|
2
|
+
import type { Nullable } from '../utils';
|
|
3
|
+
export type ConfigurationUser = {
|
|
4
|
+
user?: string;
|
|
5
|
+
server?: string;
|
|
6
|
+
last_device?: {
|
|
7
|
+
device_token?: string;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
export type ConfigurationServerConfig = {
|
|
11
|
+
server?: string;
|
|
12
|
+
clone_code?: string;
|
|
13
|
+
};
|
|
14
|
+
export type ConfigurationDeviceConfig = {
|
|
15
|
+
device_token?: string;
|
|
16
|
+
private_key?: string;
|
|
17
|
+
server_info?: Array<ConfigurationServerConfig>;
|
|
18
|
+
};
|
|
19
|
+
export type KeeperJsonConfig = {
|
|
20
|
+
last_login?: string;
|
|
21
|
+
last_server?: string;
|
|
22
|
+
user?: string;
|
|
23
|
+
server?: string;
|
|
24
|
+
device_token?: string;
|
|
25
|
+
private_key?: string;
|
|
26
|
+
clone_code?: string;
|
|
27
|
+
users?: Array<ConfigurationUser>;
|
|
28
|
+
devices?: Array<ConfigurationDeviceConfig>;
|
|
29
|
+
};
|
|
30
|
+
export interface ConfigLoader {
|
|
31
|
+
load(): Promise<KeeperJsonConfig>;
|
|
32
|
+
save(config: KeeperJsonConfig): Promise<void>;
|
|
33
|
+
readonly configDir: string;
|
|
34
|
+
}
|
|
35
|
+
export declare class FileConfigLoader implements ConfigLoader {
|
|
36
|
+
readonly configDir: string;
|
|
37
|
+
constructor(configDir?: string);
|
|
38
|
+
load(): Promise<KeeperJsonConfig>;
|
|
39
|
+
save(config: KeeperJsonConfig): Promise<void>;
|
|
40
|
+
}
|
|
41
|
+
export declare class SessionManager implements SessionStorage {
|
|
42
|
+
private readonly configLoader;
|
|
43
|
+
private sessionParams;
|
|
44
|
+
private _lastUsername?;
|
|
45
|
+
private _keeperConfig;
|
|
46
|
+
private _deviceCache;
|
|
47
|
+
private sessionDevices;
|
|
48
|
+
private sessionCloneCodes;
|
|
49
|
+
constructor(configDir?: string);
|
|
50
|
+
constructor(loader: ConfigLoader);
|
|
51
|
+
get configDir(): string;
|
|
52
|
+
get lastUsername(): string | undefined;
|
|
53
|
+
getLastUsername(): Promise<string | undefined>;
|
|
54
|
+
getDeviceConfig(host: string): Promise<DeviceConfig>;
|
|
55
|
+
createOnDeviceConfig(host: string): (deviceConfig: DeviceConfig) => Promise<void>;
|
|
56
|
+
private cloneCodeKey;
|
|
57
|
+
getCloneCode(host: KeeperHost, username: string): Promise<Nullable<Uint8Array>>;
|
|
58
|
+
saveCloneCode(host: KeeperHost, username: string, cloneCode: Uint8Array): Promise<void>;
|
|
59
|
+
private updateKeeperConfigCloneCode;
|
|
60
|
+
getSessionParameters(): Promise<Nullable<SessionParams>>;
|
|
61
|
+
saveSessionParameters(params: Partial<SessionParams>): Promise<void>;
|
|
62
|
+
setLastUsername(username: string): void;
|
|
63
|
+
private loadKeeperConfig;
|
|
64
|
+
private findDeviceInKeeperConfig;
|
|
65
|
+
private lookupDeviceInKeeperConfig;
|
|
66
|
+
static isValidKeeperConfig(value: unknown): value is KeeperJsonConfig;
|
|
67
|
+
}
|
|
@@ -0,0 +1,212 @@
|
|
|
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.SessionManager = exports.FileConfigLoader = void 0;
|
|
7
|
+
const promises_1 = __importDefault(require("fs/promises"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const os_1 = __importDefault(require("os"));
|
|
10
|
+
const keeperapi_1 = require("@keeper-security/keeperapi");
|
|
11
|
+
const utils_1 = require("../utils");
|
|
12
|
+
class FileConfigLoader {
|
|
13
|
+
constructor(configDir) {
|
|
14
|
+
this.configDir = configDir || path_1.default.join(os_1.default.homedir(), utils_1.SdkDefaults.CONFIG_DIR);
|
|
15
|
+
}
|
|
16
|
+
async load() {
|
|
17
|
+
const configPath = path_1.default.join(this.configDir, 'config.json');
|
|
18
|
+
try {
|
|
19
|
+
const content = await promises_1.default.readFile(configPath, 'utf-8');
|
|
20
|
+
const parsed = JSON.parse(content);
|
|
21
|
+
if (SessionManager.isValidKeeperConfig(parsed)) {
|
|
22
|
+
return parsed;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
catch (err) {
|
|
26
|
+
utils_1.logger.debug('Failed to load keeper config:', (0, utils_1.extractErrorMessage)(err));
|
|
27
|
+
}
|
|
28
|
+
return {};
|
|
29
|
+
}
|
|
30
|
+
async save(config) {
|
|
31
|
+
const configPath = path_1.default.join(this.configDir, 'config.json');
|
|
32
|
+
await promises_1.default.writeFile(configPath, JSON.stringify(config, null, 2), {
|
|
33
|
+
mode: 0o600,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.FileConfigLoader = FileConfigLoader;
|
|
38
|
+
class SessionManager {
|
|
39
|
+
constructor(configDirOrLoader) {
|
|
40
|
+
this.sessionParams = null;
|
|
41
|
+
this._keeperConfig = null;
|
|
42
|
+
this._deviceCache = null;
|
|
43
|
+
this.sessionDevices = new Map();
|
|
44
|
+
this.sessionCloneCodes = new Map();
|
|
45
|
+
if (typeof configDirOrLoader === 'string' || configDirOrLoader === undefined) {
|
|
46
|
+
this.configLoader = new FileConfigLoader(configDirOrLoader);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
this.configLoader = configDirOrLoader;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
get configDir() {
|
|
53
|
+
return this.configLoader.configDir;
|
|
54
|
+
}
|
|
55
|
+
get lastUsername() {
|
|
56
|
+
return this._lastUsername;
|
|
57
|
+
}
|
|
58
|
+
async getLastUsername() {
|
|
59
|
+
if (this._lastUsername)
|
|
60
|
+
return this._lastUsername;
|
|
61
|
+
const keeperConfig = await this.loadKeeperConfig();
|
|
62
|
+
return keeperConfig.last_login || keeperConfig.user || undefined;
|
|
63
|
+
}
|
|
64
|
+
async getDeviceConfig(host) {
|
|
65
|
+
const username = await this.getLastUsername();
|
|
66
|
+
if (username) {
|
|
67
|
+
const device = await this.findDeviceInKeeperConfig(username);
|
|
68
|
+
if (device) {
|
|
69
|
+
return {
|
|
70
|
+
deviceToken: device.deviceToken,
|
|
71
|
+
privateKey: device.privateKey,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return this.sessionDevices.get(host) || {};
|
|
76
|
+
}
|
|
77
|
+
createOnDeviceConfig(host) {
|
|
78
|
+
return async (deviceConfig) => {
|
|
79
|
+
this.sessionDevices.set(host, { ...deviceConfig });
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
cloneCodeKey(host, username) {
|
|
83
|
+
return `${host}::${username}`;
|
|
84
|
+
}
|
|
85
|
+
async getCloneCode(host, username) {
|
|
86
|
+
const hostStr = String(host);
|
|
87
|
+
const key = this.cloneCodeKey(host, username);
|
|
88
|
+
const sessionCode = this.sessionCloneCodes.get(key);
|
|
89
|
+
if (sessionCode)
|
|
90
|
+
return sessionCode;
|
|
91
|
+
const device = await this.findDeviceInKeeperConfig(username);
|
|
92
|
+
if (device) {
|
|
93
|
+
const serverInfo = device.serverInfo.find((entry) => entry.server === hostStr);
|
|
94
|
+
if (serverInfo) {
|
|
95
|
+
return (0, keeperapi_1.normal64Bytes)(serverInfo.clone_code);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
async saveCloneCode(host, username, cloneCode) {
|
|
101
|
+
const key = this.cloneCodeKey(host, username);
|
|
102
|
+
this.sessionCloneCodes.set(key, cloneCode);
|
|
103
|
+
await this.updateKeeperConfigCloneCode(String(host), username, cloneCode);
|
|
104
|
+
}
|
|
105
|
+
async updateKeeperConfigCloneCode(host, username, cloneCode) {
|
|
106
|
+
var _a, _b;
|
|
107
|
+
try {
|
|
108
|
+
const parsed = await this.configLoader.load();
|
|
109
|
+
if (!parsed || Object.keys(parsed).length === 0)
|
|
110
|
+
return;
|
|
111
|
+
let updated = false;
|
|
112
|
+
const encodedCloneCode = Buffer.from(cloneCode).toString('base64url');
|
|
113
|
+
const server = parsed.last_server || parsed.server;
|
|
114
|
+
if (((_a = parsed.user) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === username.toLowerCase() && server === host) {
|
|
115
|
+
parsed.clone_code = encodedCloneCode;
|
|
116
|
+
updated = true;
|
|
117
|
+
}
|
|
118
|
+
const user = (parsed.users || []).find((configUser) => { var _a; return ((_a = configUser.user) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === username.toLowerCase(); });
|
|
119
|
+
if ((_b = user === null || user === void 0 ? void 0 : user.last_device) === null || _b === void 0 ? void 0 : _b.device_token) {
|
|
120
|
+
const device = (parsed.devices || []).find((configDevice) => configDevice.device_token === user.last_device.device_token);
|
|
121
|
+
if (device === null || device === void 0 ? void 0 : device.server_info) {
|
|
122
|
+
const serverInfo = device.server_info.find((entry) => entry.server === host);
|
|
123
|
+
if (serverInfo) {
|
|
124
|
+
serverInfo.clone_code = encodedCloneCode;
|
|
125
|
+
updated = true;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
if (updated) {
|
|
130
|
+
await this.configLoader.save(parsed);
|
|
131
|
+
this._keeperConfig = null;
|
|
132
|
+
this._deviceCache = null;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
catch (err) {
|
|
136
|
+
utils_1.logger.warn('Failed to update keeper config clone code:', (0, utils_1.extractErrorMessage)(err));
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
async getSessionParameters() {
|
|
140
|
+
return this.sessionParams;
|
|
141
|
+
}
|
|
142
|
+
async saveSessionParameters(params) {
|
|
143
|
+
this.sessionParams = { ...this.sessionParams, ...params };
|
|
144
|
+
if (params.username) {
|
|
145
|
+
this._lastUsername = params.username;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
setLastUsername(username) {
|
|
149
|
+
this._lastUsername = username;
|
|
150
|
+
}
|
|
151
|
+
async loadKeeperConfig() {
|
|
152
|
+
if (this._keeperConfig)
|
|
153
|
+
return this._keeperConfig;
|
|
154
|
+
this._keeperConfig = await this.configLoader.load();
|
|
155
|
+
return this._keeperConfig;
|
|
156
|
+
}
|
|
157
|
+
async findDeviceInKeeperConfig(username) {
|
|
158
|
+
var _a;
|
|
159
|
+
const normalizedUsername = username.toLowerCase();
|
|
160
|
+
if (((_a = this._deviceCache) === null || _a === void 0 ? void 0 : _a.username) === normalizedUsername) {
|
|
161
|
+
return this._deviceCache.device;
|
|
162
|
+
}
|
|
163
|
+
const device = await this.lookupDeviceInKeeperConfig(normalizedUsername);
|
|
164
|
+
this._deviceCache = { username: normalizedUsername, device };
|
|
165
|
+
return device;
|
|
166
|
+
}
|
|
167
|
+
async lookupDeviceInKeeperConfig(normalizedUsername) {
|
|
168
|
+
var _a, _b;
|
|
169
|
+
const keeperConfig = await this.loadKeeperConfig();
|
|
170
|
+
if (keeperConfig.users && keeperConfig.devices) {
|
|
171
|
+
const user = keeperConfig.users.find((configUser) => { var _a; return ((_a = configUser.user) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === normalizedUsername; });
|
|
172
|
+
if ((_a = user === null || user === void 0 ? void 0 : user.last_device) === null || _a === void 0 ? void 0 : _a.device_token) {
|
|
173
|
+
const deviceTokenStr = user.last_device.device_token;
|
|
174
|
+
const device = keeperConfig.devices.find((configDevice) => configDevice.device_token === deviceTokenStr);
|
|
175
|
+
if (device === null || device === void 0 ? void 0 : device.private_key) {
|
|
176
|
+
return {
|
|
177
|
+
deviceToken: (0, keeperapi_1.normal64Bytes)(deviceTokenStr),
|
|
178
|
+
privateKey: (0, keeperapi_1.normal64Bytes)(device.private_key),
|
|
179
|
+
serverInfo: (device.server_info || []).filter((entry) => !!entry.server && !!entry.clone_code),
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
if (keeperConfig.device_token &&
|
|
185
|
+
keeperConfig.private_key &&
|
|
186
|
+
((_b = keeperConfig.user) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === normalizedUsername) {
|
|
187
|
+
const serverInfo = [];
|
|
188
|
+
const server = keeperConfig.last_server || keeperConfig.server;
|
|
189
|
+
if (server && keeperConfig.clone_code) {
|
|
190
|
+
serverInfo.push({ server, clone_code: keeperConfig.clone_code });
|
|
191
|
+
}
|
|
192
|
+
return {
|
|
193
|
+
deviceToken: (0, keeperapi_1.normal64Bytes)(keeperConfig.device_token),
|
|
194
|
+
privateKey: (0, keeperapi_1.normal64Bytes)(keeperConfig.private_key),
|
|
195
|
+
serverInfo,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
return null;
|
|
199
|
+
}
|
|
200
|
+
static isValidKeeperConfig(value) {
|
|
201
|
+
if (typeof value !== 'object' || value === null)
|
|
202
|
+
return false;
|
|
203
|
+
const obj = value;
|
|
204
|
+
if (obj.users !== undefined && !Array.isArray(obj.users))
|
|
205
|
+
return false;
|
|
206
|
+
if (obj.devices !== undefined && !Array.isArray(obj.devices))
|
|
207
|
+
return false;
|
|
208
|
+
return true;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
exports.SessionManager = SessionManager;
|
|
212
|
+
//# sourceMappingURL=SessionManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionManager.js","sourceRoot":"","sources":["../../../src/auth/SessionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { Auth } from '@keeper-security/keeperapi';
|
|
2
|
+
import { InMemoryStorage } from '../storage/InMemoryStorage';
|
|
3
|
+
import type { AddFolderInput, AddFolderResult, MkdirOptions } from './addFolder';
|
|
4
|
+
import type { ChangeDirectoryResult, TryResolvePathResult, VaultFolderSession } from './changeDirectory';
|
|
5
|
+
import type { DeleteFolderResult, RmdirOptions } from './deleteFolder';
|
|
6
|
+
import type { FolderTreeBuildOptions, FolderTreeResult } from './folderTree';
|
|
7
|
+
import type { FoundFolder, GetFolderOptions, GetFolderResult } from './getFolder';
|
|
8
|
+
import type { ListFolderFolderSimple, ListFolderOptions, ListFolderResult } from './listFolder';
|
|
9
|
+
import type { RenameFolderResult, UpdateFolderInput, UpdateFolderResult } from './updateFolder';
|
|
10
|
+
export type AuthProvider = () => Auth;
|
|
11
|
+
export type SharedFolderPermissionsInput = {
|
|
12
|
+
manageUsers?: boolean | null;
|
|
13
|
+
manageRecords?: boolean | null;
|
|
14
|
+
canShare?: boolean | null;
|
|
15
|
+
canEdit?: boolean | null;
|
|
16
|
+
};
|
|
17
|
+
export declare class FolderManager {
|
|
18
|
+
private readonly storage;
|
|
19
|
+
private readonly session;
|
|
20
|
+
private readonly authProvider;
|
|
21
|
+
constructor(storage: InMemoryStorage, session: VaultFolderSession, authProvider: AuthProvider);
|
|
22
|
+
static createSession(): VaultFolderSession;
|
|
23
|
+
static splitPathComponents(path: string): string[];
|
|
24
|
+
getSession(): VaultFolderSession;
|
|
25
|
+
getCurrentFolderUid(): string | null;
|
|
26
|
+
getWorkingFolderDisplayName(): string;
|
|
27
|
+
private requireAuth;
|
|
28
|
+
listFolder(options?: ListFolderOptions): Promise<ListFolderResult>;
|
|
29
|
+
listRootUserFolders(): Promise<import("@keeper-security/keeperapi").DUserFolder[]>;
|
|
30
|
+
listVaultRootFolders(): Promise<{
|
|
31
|
+
rows: ListFolderFolderSimple[];
|
|
32
|
+
promotedRootSharedUids: Set<string>;
|
|
33
|
+
}>;
|
|
34
|
+
findFolderUidByNameOrUid(nameOrUid: string): string | undefined;
|
|
35
|
+
findFolder(nameOrUid: string): FoundFolder | undefined;
|
|
36
|
+
findParentFolderUid(folderUid: string): Promise<string | null>;
|
|
37
|
+
getFolder(uidOrName: string, options?: GetFolderOptions): Promise<GetFolderResult>;
|
|
38
|
+
changeDirectory(path: string): Promise<ChangeDirectoryResult>;
|
|
39
|
+
tryResolvePath(path: string): Promise<TryResolvePathResult>;
|
|
40
|
+
resolveSingleFolder(folderName: string): Promise<ChangeDirectoryResult>;
|
|
41
|
+
addFolder(input: AddFolderInput): Promise<AddFolderResult>;
|
|
42
|
+
mkdir(path: string, options?: MkdirOptions): Promise<{
|
|
43
|
+
folderUid: string;
|
|
44
|
+
success: boolean;
|
|
45
|
+
message?: string;
|
|
46
|
+
}>;
|
|
47
|
+
updateFolder(input: UpdateFolderInput): Promise<UpdateFolderResult>;
|
|
48
|
+
renameFolder(folderPath: string, newName: string): Promise<RenameFolderResult>;
|
|
49
|
+
updateSharedFolderPermissions(sharedFolderUid: string, permissions: SharedFolderPermissionsInput): Promise<UpdateFolderResult>;
|
|
50
|
+
deleteFolder(folderRefs: string[], confirm?: (summary: string) => boolean | Promise<boolean>): Promise<DeleteFolderResult>;
|
|
51
|
+
rmdir(patterns: string[], options?: RmdirOptions): Promise<DeleteFolderResult>;
|
|
52
|
+
resolveRmdirPatternsToFolderUids(pattern: string): Promise<Set<string>>;
|
|
53
|
+
buildFolderDeleteObject(folderUid: string): Promise<import("@keeper-security/keeperapi").DeleteObject>;
|
|
54
|
+
buildFolderTree(options?: FolderTreeBuildOptions): Promise<FolderTreeResult>;
|
|
55
|
+
folderTreeAscii(options?: FolderTreeBuildOptions): Promise<string>;
|
|
56
|
+
renderFolderTreeAscii(tree: FolderTreeResult): string;
|
|
57
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FolderManager = void 0;
|
|
4
|
+
const utils_1 = require("../utils");
|
|
5
|
+
const addFolder_1 = require("./addFolder");
|
|
6
|
+
const changeDirectory_1 = require("./changeDirectory");
|
|
7
|
+
const deleteFolder_1 = require("./deleteFolder");
|
|
8
|
+
const folderTree_1 = require("./folderTree");
|
|
9
|
+
const getFolder_1 = require("./getFolder");
|
|
10
|
+
const listFolder_1 = require("./listFolder");
|
|
11
|
+
const updateFolder_1 = require("./updateFolder");
|
|
12
|
+
class FolderManager {
|
|
13
|
+
constructor(storage, session, authProvider) {
|
|
14
|
+
this.storage = storage;
|
|
15
|
+
this.session = session;
|
|
16
|
+
this.authProvider = authProvider;
|
|
17
|
+
}
|
|
18
|
+
static createSession() {
|
|
19
|
+
return (0, changeDirectory_1.createVaultFolderSession)();
|
|
20
|
+
}
|
|
21
|
+
static splitPathComponents(path) {
|
|
22
|
+
return (0, changeDirectory_1.splitPathComponents)(path);
|
|
23
|
+
}
|
|
24
|
+
getSession() {
|
|
25
|
+
return this.session;
|
|
26
|
+
}
|
|
27
|
+
getCurrentFolderUid() {
|
|
28
|
+
return this.session.currentFolderUid;
|
|
29
|
+
}
|
|
30
|
+
getWorkingFolderDisplayName() {
|
|
31
|
+
return (0, changeDirectory_1.getWorkingFolderDisplayName)(this.storage, this.session.currentFolderUid);
|
|
32
|
+
}
|
|
33
|
+
requireAuth() {
|
|
34
|
+
const auth = this.authProvider();
|
|
35
|
+
if (!auth) {
|
|
36
|
+
throw new utils_1.KeeperSdkError('Not logged in. Call login() first.', utils_1.ResultCodes.NOT_LOGGED_IN);
|
|
37
|
+
}
|
|
38
|
+
return auth;
|
|
39
|
+
}
|
|
40
|
+
async listFolder(options = {}) {
|
|
41
|
+
return (0, listFolder_1.listFolder)(this.storage, options);
|
|
42
|
+
}
|
|
43
|
+
listRootUserFolders() {
|
|
44
|
+
return (0, listFolder_1.listRootUserFolders)(this.storage);
|
|
45
|
+
}
|
|
46
|
+
async listVaultRootFolders() {
|
|
47
|
+
return (0, listFolder_1.listVaultRootFolders)(this.storage);
|
|
48
|
+
}
|
|
49
|
+
findFolderUidByNameOrUid(nameOrUid) {
|
|
50
|
+
return (0, listFolder_1.findFolderUidByNameOrUid)(this.storage, nameOrUid);
|
|
51
|
+
}
|
|
52
|
+
findFolder(nameOrUid) {
|
|
53
|
+
return (0, getFolder_1.findFolder)(this.storage, nameOrUid);
|
|
54
|
+
}
|
|
55
|
+
async findParentFolderUid(folderUid) {
|
|
56
|
+
return (0, changeDirectory_1.findParentFolderUid)(this.storage, folderUid);
|
|
57
|
+
}
|
|
58
|
+
async getFolder(uidOrName, options = {}) {
|
|
59
|
+
return (0, getFolder_1.getFolder)(this.storage, uidOrName, options);
|
|
60
|
+
}
|
|
61
|
+
async changeDirectory(path) {
|
|
62
|
+
return (0, changeDirectory_1.changeDirectory)(this.storage, this.session, path);
|
|
63
|
+
}
|
|
64
|
+
async tryResolvePath(path) {
|
|
65
|
+
return (0, changeDirectory_1.tryResolvePath)(this.storage, this.session, path);
|
|
66
|
+
}
|
|
67
|
+
async resolveSingleFolder(folderName) {
|
|
68
|
+
return (0, changeDirectory_1.resolveSingleFolder)(this.storage, this.session, folderName);
|
|
69
|
+
}
|
|
70
|
+
async addFolder(input) {
|
|
71
|
+
return (0, addFolder_1.addFolder)(this.requireAuth(), this.storage, input);
|
|
72
|
+
}
|
|
73
|
+
async mkdir(path, options = {}) {
|
|
74
|
+
return (0, addFolder_1.mkdir)(this.requireAuth(), this.storage, this.session, path, options);
|
|
75
|
+
}
|
|
76
|
+
async updateFolder(input) {
|
|
77
|
+
return (0, updateFolder_1.updateFolder)(this.requireAuth(), this.storage, input);
|
|
78
|
+
}
|
|
79
|
+
async renameFolder(folderPath, newName) {
|
|
80
|
+
return (0, updateFolder_1.renameFolder)(this.requireAuth(), this.storage, this.session, folderPath, newName);
|
|
81
|
+
}
|
|
82
|
+
async updateSharedFolderPermissions(sharedFolderUid, permissions) {
|
|
83
|
+
return (0, updateFolder_1.updateSharedFolderPermissions)(this.requireAuth(), this.storage, sharedFolderUid, permissions);
|
|
84
|
+
}
|
|
85
|
+
async deleteFolder(folderRefs, confirm) {
|
|
86
|
+
return (0, deleteFolder_1.deleteFolder)(this.requireAuth(), this.storage, folderRefs, confirm);
|
|
87
|
+
}
|
|
88
|
+
async rmdir(patterns, options = {}) {
|
|
89
|
+
return (0, deleteFolder_1.rmdir)(this.requireAuth(), this.storage, this.session, patterns, options);
|
|
90
|
+
}
|
|
91
|
+
async resolveRmdirPatternsToFolderUids(pattern) {
|
|
92
|
+
return (0, deleteFolder_1.resolveRmdirPatternsToFolderUids)(this.storage, this.session, pattern);
|
|
93
|
+
}
|
|
94
|
+
async buildFolderDeleteObject(folderUid) {
|
|
95
|
+
return (0, deleteFolder_1.buildFolderDeleteObject)(this.storage, folderUid);
|
|
96
|
+
}
|
|
97
|
+
async buildFolderTree(options = {}) {
|
|
98
|
+
return (0, folderTree_1.buildFolderTree)(this.storage, this.session, options);
|
|
99
|
+
}
|
|
100
|
+
async folderTreeAscii(options = {}) {
|
|
101
|
+
return (0, folderTree_1.folderTreeAscii)(this.storage, this.session, options);
|
|
102
|
+
}
|
|
103
|
+
renderFolderTreeAscii(tree) {
|
|
104
|
+
return (0, folderTree_1.renderFolderTreeAscii)(tree);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.FolderManager = FolderManager;
|
|
108
|
+
//# sourceMappingURL=FolderManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FolderManager.js","sourceRoot":"","sources":["../../../src/folders/FolderManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Auth } from '@keeper-security/keeperapi';
|
|
2
|
+
import { InMemoryStorage } from '../storage/InMemoryStorage';
|
|
3
|
+
import { type VaultFolderSession } from './changeDirectory';
|
|
4
|
+
export type AddFolderInput = {
|
|
5
|
+
folderName: string;
|
|
6
|
+
isSharedFolder?: boolean;
|
|
7
|
+
parentUid?: string | null;
|
|
8
|
+
manageUsers?: boolean;
|
|
9
|
+
manageRecords?: boolean;
|
|
10
|
+
canShare?: boolean;
|
|
11
|
+
canEdit?: boolean;
|
|
12
|
+
};
|
|
13
|
+
export type AddFolderResult = {
|
|
14
|
+
folderUid: string;
|
|
15
|
+
success: boolean;
|
|
16
|
+
message?: string;
|
|
17
|
+
};
|
|
18
|
+
export type MkdirOptions = {
|
|
19
|
+
sharedFolder?: boolean;
|
|
20
|
+
userFolder?: boolean;
|
|
21
|
+
grantAll?: boolean;
|
|
22
|
+
manageUsers?: boolean;
|
|
23
|
+
manageRecords?: boolean;
|
|
24
|
+
canShare?: boolean;
|
|
25
|
+
canEdit?: boolean;
|
|
26
|
+
};
|
|
27
|
+
export declare function addFolder(auth: Auth, storage: InMemoryStorage, input: AddFolderInput): Promise<AddFolderResult>;
|
|
28
|
+
export declare function mkdir(auth: Auth, storage: InMemoryStorage, session: VaultFolderSession, path: string, options?: MkdirOptions): Promise<{
|
|
29
|
+
folderUid: string;
|
|
30
|
+
success: boolean;
|
|
31
|
+
message?: string;
|
|
32
|
+
}>;
|