@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.
Files changed (173) hide show
  1. package/dist/auth/ConsoleAuthUI.d.ts +10 -0
  2. package/dist/auth/ConsoleAuthUI.js +152 -0
  3. package/dist/auth/ConsoleAuthUI.js.map +1 -0
  4. package/dist/auth/ConsoleLogin.d.ts +8 -0
  5. package/dist/auth/ConsoleLogin.js +266 -0
  6. package/dist/auth/ConsoleLogin.js.map +1 -0
  7. package/dist/auth/SessionManager.d.ts +66 -0
  8. package/dist/auth/SessionManager.js +211 -0
  9. package/dist/auth/SessionManager.js.map +1 -0
  10. package/dist/index.d.ts +17 -0
  11. package/dist/index.js +61 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/records/RecordOperations.d.ts +79 -0
  14. package/dist/records/RecordOperations.js +346 -0
  15. package/dist/records/RecordOperations.js.map +1 -0
  16. package/dist/records/RecordUtils.d.ts +36 -0
  17. package/dist/records/RecordUtils.js +224 -0
  18. package/dist/records/RecordUtils.js.map +1 -0
  19. package/dist/sharing/Sharing.d.ts +27 -0
  20. package/dist/sharing/Sharing.js +125 -0
  21. package/dist/sharing/Sharing.js.map +1 -0
  22. package/dist/src/auth/ConsoleAuthUI.d.ts +10 -0
  23. package/dist/src/auth/ConsoleAuthUI.js +161 -0
  24. package/dist/src/auth/ConsoleAuthUI.js.map +1 -0
  25. package/dist/src/auth/ConsoleLogin.d.ts +8 -0
  26. package/dist/src/auth/ConsoleLogin.js +311 -0
  27. package/dist/src/auth/ConsoleLogin.js.map +1 -0
  28. package/dist/src/auth/SessionManager.d.ts +67 -0
  29. package/dist/src/auth/SessionManager.js +212 -0
  30. package/dist/src/auth/SessionManager.js.map +1 -0
  31. package/dist/src/folders/FolderManager.d.ts +57 -0
  32. package/dist/src/folders/FolderManager.js +108 -0
  33. package/dist/src/folders/FolderManager.js.map +1 -0
  34. package/dist/src/folders/addFolder.d.ts +32 -0
  35. package/dist/src/folders/addFolder.js +207 -0
  36. package/dist/src/folders/addFolder.js.map +1 -0
  37. package/dist/src/folders/changeDirectory.d.ts +19 -0
  38. package/dist/src/folders/changeDirectory.js +171 -0
  39. package/dist/src/folders/changeDirectory.js.map +1 -0
  40. package/dist/src/folders/deleteFolder.d.ts +17 -0
  41. package/dist/src/folders/deleteFolder.js +237 -0
  42. package/dist/src/folders/deleteFolder.js.map +1 -0
  43. package/dist/src/folders/folderHelpers.d.ts +48 -0
  44. package/dist/src/folders/folderHelpers.js +100 -0
  45. package/dist/src/folders/folderHelpers.js.map +1 -0
  46. package/dist/src/folders/folderTree.d.ts +29 -0
  47. package/dist/src/folders/folderTree.js +250 -0
  48. package/dist/src/folders/folderTree.js.map +1 -0
  49. package/dist/src/folders/getFolder.d.ts +56 -0
  50. package/dist/src/folders/getFolder.js +143 -0
  51. package/dist/src/folders/getFolder.js.map +1 -0
  52. package/dist/src/folders/listFolder.d.ts +48 -0
  53. package/dist/src/folders/listFolder.js +276 -0
  54. package/dist/src/folders/listFolder.js.map +1 -0
  55. package/dist/src/folders/updateFolder.d.ts +31 -0
  56. package/dist/src/folders/updateFolder.js +137 -0
  57. package/dist/src/folders/updateFolder.js.map +1 -0
  58. package/dist/src/index.d.ts +49 -0
  59. package/dist/src/index.js +151 -0
  60. package/dist/src/index.js.map +1 -0
  61. package/dist/src/records/RecordOperations.d.ts +80 -0
  62. package/dist/src/records/RecordOperations.js +356 -0
  63. package/dist/src/records/RecordOperations.js.map +1 -0
  64. package/dist/src/records/RecordUtils.d.ts +37 -0
  65. package/dist/src/records/RecordUtils.js +263 -0
  66. package/dist/src/records/RecordUtils.js.map +1 -0
  67. package/dist/src/records/Totp.d.ts +14 -0
  68. package/dist/src/records/Totp.js +111 -0
  69. package/dist/src/records/Totp.js.map +1 -0
  70. package/dist/src/sharedFolders/SharedFolderManager.d.ts +20 -0
  71. package/dist/src/sharedFolders/SharedFolderManager.js +33 -0
  72. package/dist/src/sharedFolders/SharedFolderManager.js.map +1 -0
  73. package/dist/src/sharedFolders/listSharedFolders.d.ts +29 -0
  74. package/dist/src/sharedFolders/listSharedFolders.js +127 -0
  75. package/dist/src/sharedFolders/listSharedFolders.js.map +1 -0
  76. package/dist/src/sharedFolders/shareFolder.d.ts +36 -0
  77. package/dist/src/sharedFolders/shareFolder.js +352 -0
  78. package/dist/src/sharedFolders/shareFolder.js.map +1 -0
  79. package/dist/src/sharing/Sharing.d.ts +50 -0
  80. package/dist/src/sharing/Sharing.js +195 -0
  81. package/dist/src/sharing/Sharing.js.map +1 -0
  82. package/dist/src/storage/InMemoryStorage.d.ts +24 -0
  83. package/dist/src/storage/InMemoryStorage.js +139 -0
  84. package/dist/src/storage/InMemoryStorage.js.map +1 -0
  85. package/dist/src/teams/TeamManager.d.ts +17 -0
  86. package/dist/src/teams/TeamManager.js +38 -0
  87. package/dist/src/teams/TeamManager.js.map +1 -0
  88. package/dist/src/teams/enterpriseData.d.ts +106 -0
  89. package/dist/src/teams/enterpriseData.js +319 -0
  90. package/dist/src/teams/enterpriseData.js.map +1 -0
  91. package/dist/src/teams/listTeams.d.ts +42 -0
  92. package/dist/src/teams/listTeams.js +308 -0
  93. package/dist/src/teams/listTeams.js.map +1 -0
  94. package/dist/src/teams/viewTeam.d.ts +35 -0
  95. package/dist/src/teams/viewTeam.js +177 -0
  96. package/dist/src/teams/viewTeam.js.map +1 -0
  97. package/dist/src/utils/Logger.d.ts +28 -0
  98. package/dist/src/utils/Logger.js +62 -0
  99. package/dist/src/utils/Logger.js.map +1 -0
  100. package/dist/src/utils/constants.d.ts +50 -0
  101. package/dist/src/utils/constants.js +64 -0
  102. package/dist/src/utils/constants.js.map +1 -0
  103. package/dist/src/utils/errors.d.ts +10 -0
  104. package/dist/src/utils/errors.js +117 -0
  105. package/dist/src/utils/errors.js.map +1 -0
  106. package/dist/src/utils/guards.d.ts +7 -0
  107. package/dist/src/utils/guards.js +29 -0
  108. package/dist/src/utils/guards.js.map +1 -0
  109. package/dist/src/utils/index.d.ts +7 -0
  110. package/dist/src/utils/index.js +39 -0
  111. package/dist/src/utils/index.js.map +1 -0
  112. package/dist/src/utils/patterns.d.ts +9 -0
  113. package/dist/src/utils/patterns.js +20 -0
  114. package/dist/src/utils/patterns.js.map +1 -0
  115. package/dist/src/utils/types.d.ts +12 -0
  116. package/dist/src/utils/types.js +3 -0
  117. package/dist/src/utils/types.js.map +1 -0
  118. package/dist/src/vault/KeeperVault.d.ts +116 -0
  119. package/dist/src/vault/KeeperVault.js +443 -0
  120. package/dist/src/vault/KeeperVault.js.map +1 -0
  121. package/dist/storage/InMemoryStorage.d.ts +24 -0
  122. package/dist/storage/InMemoryStorage.js +132 -0
  123. package/dist/storage/InMemoryStorage.js.map +1 -0
  124. package/dist/utils/Logger.d.ts +28 -0
  125. package/dist/utils/Logger.js +62 -0
  126. package/dist/utils/Logger.js.map +1 -0
  127. package/dist/utils/constants.d.ts +26 -0
  128. package/dist/utils/constants.js +37 -0
  129. package/dist/utils/constants.js.map +1 -0
  130. package/dist/utils/errors.d.ts +10 -0
  131. package/dist/utils/errors.js +117 -0
  132. package/dist/utils/errors.js.map +1 -0
  133. package/dist/utils/index.d.ts +4 -0
  134. package/dist/utils/index.js +22 -0
  135. package/dist/utils/index.js.map +1 -0
  136. package/dist/vault/KeeperVault.d.ts +72 -0
  137. package/dist/vault/KeeperVault.js +338 -0
  138. package/dist/vault/KeeperVault.js.map +1 -0
  139. package/package.json +32 -0
  140. package/src/auth/ConsoleAuthUI.ts +169 -0
  141. package/src/auth/ConsoleLogin.ts +351 -0
  142. package/src/auth/SessionManager.ts +293 -0
  143. package/src/folders/FolderManager.ts +174 -0
  144. package/src/folders/addFolder.ts +294 -0
  145. package/src/folders/changeDirectory.ts +217 -0
  146. package/src/folders/deleteFolder.ts +293 -0
  147. package/src/folders/folderHelpers.ts +99 -0
  148. package/src/folders/folderTree.ts +321 -0
  149. package/src/folders/getFolder.ts +234 -0
  150. package/src/folders/listFolder.ts +358 -0
  151. package/src/folders/updateFolder.ts +210 -0
  152. package/src/index.ts +242 -0
  153. package/src/records/RecordOperations.ts +549 -0
  154. package/src/records/RecordUtils.ts +282 -0
  155. package/src/records/Totp.ts +119 -0
  156. package/src/sharedFolders/SharedFolderManager.ts +57 -0
  157. package/src/sharedFolders/listSharedFolders.ts +173 -0
  158. package/src/sharedFolders/shareFolder.ts +457 -0
  159. package/src/sharing/Sharing.ts +282 -0
  160. package/src/storage/InMemoryStorage.ts +163 -0
  161. package/src/teams/TeamManager.ts +61 -0
  162. package/src/teams/enterpriseData.ts +453 -0
  163. package/src/teams/listTeams.ts +373 -0
  164. package/src/teams/viewTeam.ts +248 -0
  165. package/src/utils/Logger.ts +71 -0
  166. package/src/utils/constants.ts +63 -0
  167. package/src/utils/errors.ts +108 -0
  168. package/src/utils/guards.ts +24 -0
  169. package/src/utils/index.ts +22 -0
  170. package/src/utils/patterns.ts +20 -0
  171. package/src/utils/types.ts +11 -0
  172. package/src/vault/KeeperVault.ts +612 -0
  173. 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
+ }>;