Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
7679f64
Folder and shared folder implementation (#131)
ukumar-ks Apr 30, 2026
84ec8ee
added a basic working copy of client-server arch
sgaddala-ks May 11, 2026
ed283eb
removed dev logging
sgaddala-ks May 19, 2026
740a594
added command parsing in sdk as initial commit
sgaddala-ks May 19, 2026
27793ad
added session restore logic
sgaddala-ks May 21, 2026
ea5df0f
added a reverse proxied working copy
sgaddala-ks May 21, 2026
2da052d
added a working copy of code changes
sgaddala-ks May 25, 2026
40689c7
refactored to reduce bloat - iter 1
sgaddala-ks May 27, 2026
4302002
added support for teams, users, roles etc.
sgaddala-ks May 28, 2026
61c09d4
added a fix for hmc fail on browser platform
sgaddala-ks Jun 1, 2026
3bea935
added changes to countertobuffer logic
sgaddala-ks Jun 1, 2026
d0080d0
altered state for refresh rate issue
sgaddala-ks Jun 1, 2026
ce2beb7
added packagejson
sgaddala-ks Jun 1, 2026
608bacb
cli refactor
sgaddala-ks Jun 8, 2026
f4a64f9
refactor to remove old implementations
sgaddala-ks Jun 8, 2026
5ede288
added ascii print to shell
sgaddala-ks Jun 8, 2026
9e76c8c
updated readme
sgaddala-ks Jun 9, 2026
51590e0
refactor to show commander logo and other small changes related to co…
sgaddala-ks Jun 10, 2026
2e9c15e
removed shell proj
sgaddala-ks Jun 15, 2026
ae52d04
Removed cli changes
sgaddala-ks Jun 15, 2026
e27bf40
removed cli references for init commit
sgaddala-ks Jun 15, 2026
3c24977
formatting issues fixed
sgaddala-ks Jun 15, 2026
283b96f
fixed formatting for keeper api
sgaddala-ks Jun 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 11 additions & 7 deletions KeeperSdk/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,21 @@ npm install @keeper-security/keeper-sdk-javascript
## Quickstart

```typescript
import { KeeperVault, ConsoleAuthUI, FileConfigLoader } from '@keeper-security/keeper-sdk-javascript'
import {
KeeperVault,
ConsoleAuthUI,
FileConfigLoader,
} from "@keeper-security/keeper-sdk-javascript";

const vault = new KeeperVault({
authUI: new ConsoleAuthUI(),
configLoader: new FileConfigLoader('./keeper-config.json'),
})
authUI: new ConsoleAuthUI(),
configLoader: new FileConfigLoader("./keeper-config.json"),
});

await vault.login()
await vault.syncDown()
await vault.login();
await vault.syncDown();

console.log(`Loaded ${vault.records.size} records`)
console.log(`Loaded ${vault.records.size} records`);
```

## Supported functionality
Expand Down
1,245 changes: 624 additions & 621 deletions KeeperSdk/package-lock.json

Large diffs are not rendered by default.

66 changes: 36 additions & 30 deletions KeeperSdk/package.json
Original file line number Diff line number Diff line change
@@ -1,32 +1,38 @@
{
"name": "@keeper-security/keeper-sdk-javascript",
"version": "1.1.0",
"description": "High-level wrapper for Keeper Security JavaScript SDK",
"repository": {
"type": "git",
"url": "git+https://github.com/Keeper-Security/keeper-sdk-javascript.git",
"directory": "KeeperSdk"
},
"license": "ISC",
"main": "src/index.ts",
"scripts": {
"build": "tsc",
"clean": "rm -rf dist",
"link-local": "npm link ../keeperapi",
"format": "prettier --write .",
"format:check": "prettier --check .",
"test": "jest",
"types": "tsc --watch",
"types:ci": "tsc",
"prepublishOnly": "npm run build"
},
"dependencies": {
"@keeper-security/keeperapi": "17.2.6",
"ts-node": "^10.7.0",
"typescript": "^4.6.3"
},
"devDependencies": {
"@types/node": "^25.6.0",
"prettier": "^3.8.1"
}
"name": "@keeper-security/keeper-sdk-javascript",
"version": "1.1.0",
"description": "High-level wrapper for Keeper Security JavaScript SDK",
"repository": {
"type": "git",
"url": "git+https://github.com/Keeper-Security/keeper-sdk-javascript.git",
"directory": "KeeperSdk"
},
"license": "ISC",
"main": "dist/index.js",
"browser": "dist/browser.js",
"types": "dist/index.d.ts",
"scripts": {
"build": "tsc",
"clean": "rm -rf dist node_modules",
"rebuild": "npm run clean && npm install && npm run build",
"rebuild:local": "npm run clean && npm install && npm run link-local && npm run build:keeperapi && npm run build",
"build:keeperapi": "npm run build --prefix ../keeperapi",
"link-local": "npm link ../keeperapi",
"format": "prettier --write .",
"format:check": "prettier --check .",
"test": "jest",
"types": "tsc --watch",
"types:ci": "tsc",
"prepublishOnly": "npm run build"
},
"dependencies": {
"@keeper-security/keeperapi": "17.2.6",
"ts-node": "^10.7.0",
"asmcrypto.js": "^2.3.2",
"typescript": "^4.6.3"
},
"devDependencies": {
"@types/node": "^25.6.0",
"prettier": "^3.8.1"
}
}
257 changes: 257 additions & 0 deletions KeeperSdk/src/api.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,257 @@
export { SessionManager } from "./auth/SessionManager";
export type {
KeeperJsonConfig,
ConfigLoader,
ConfigurationUser,
ConfigurationServerConfig,
ConfigurationDeviceConfig,
} from "./auth/SessionManager";
export {
connectSdkPlatform,
getSdkPlatform,
isSdkPlatformConnected,
} from "./platform";
export type { SdkPlatform, SdkReadline, SdkRuntime } from "./platform";

export { InMemoryStorage } from "./storage/InMemoryStorage";

export {
Logger,
ConsoleLogger,
LogLevel,
logger,
setLogger,
getLogger,
resetLogger,
KeeperSdkError,
isKeeperError,
extractErrorMessage,
extractResultCode,
SdkDefaults,
AuthDefaults,
ResultCodes,
KEEPER_PUBLIC_HOSTS,
isBoolean,
isString,
isNonEmptyString,
isNumber,
isObject,
anyIsBoolean,
EMAIL_PATTERN,
EMAIL_LIST_SEPARATOR_PATTERN,
isValidEmail,
} from "./utils";
export type {
ILogger,
Nullable,
Optional,
DeepPartial,
Immutable,
} from "./utils";

export {
searchRecords,
formatRecord,
getRecordTitle,
getRecordType,
getRecordFields,
getRecordSummary,
getRecordPassword,
getRecordLogin,
getRecordUrl,
getRecordTotpUrl,
RecordVersion,
} from "./records/RecordUtils";
export type { RecordSummary } from "./records/RecordUtils";
export { parseTotpUrl, getTotpCode } from "./records/Totp";
export type { TotpAlgorithm, TotpParams, TotpCode } from "./records/Totp";
export {
addRecord,
updateRecord,
deleteRecord,
getRecordHistory,
moveRecord,
} from "./records/RecordOperations";
export type {
PasswordRecordData,
TypedRecordData,
RecordFieldInput,
NewRecordInput,
AddRecordResult,
UpdateRecordResult,
DeleteRecordResult,
HistoryEntry,
RecordHistoryResult,
MoveRecordInput,
MoveRecordResult,
} from "./records/RecordOperations";

export {
shareRecord,
removeRecordShare,
getRecordShareInfo,
} from "./sharing/Sharing";
export type {
ShareRecordInput,
ShareRecordResult,
RemoveShareInput,
RemoveShareResult,
RecordShareInfo,
RecordUserPermission,
RecordSharedFolderPermission,
} from "./sharing/Sharing";

export { KeeperVault } from "./vault/KeeperVault";
export type { KeeperVaultConfig, VaultSummary } from "./vault/KeeperVault";

export type { SessionRestoreInput } from "./auth/sessionRestore";
export {
toSessionParams,
validateSessionRestoreInput,
sessionRestoreFromJson,
resolveSessionRestorePayload,
} from "./auth/sessionRestore";

export { getFolder, findFolder, GetFolderFormat } from "./folders/getFolder";
export type {
GetFolderOptions,
GetFolderResult,
GetFolderResultFolder,
GetFolderResultSharedFolder,
GetFolderFormatInput,
FoundFolder,
} from "./folders/getFolder";

export {
FolderKind,
ParentFolderKind,
FolderObjectType,
FolderResultStatus,
DeleteResolution,
DeleteObjectType,
folderKindFromString,
} from "./folders/folderHelpers";
export type { FolderKindOrLiteral } from "./folders/folderHelpers";

export {
listFolder,
findFolderUidByNameOrUid,
listRootUserFolders,
} from "./folders/listFolder";
export type {
ListFolderOptions,
ListFolderResult,
ListFolderFolderSimple,
ListFolderRecordSimple,
ListFolderFolderDetail,
ListFolderRecordDetail,
} from "./folders/listFolder";

export {
listSharedFolders,
formatSharedFoldersTable,
renderSharedFoldersAsciiTable,
} from "./sharedFolders/listSharedFolders";
export type {
ListSharedFoldersOptions,
ListSharedFolderRow,
FormattedSharedFoldersTable,
} from "./sharedFolders/listSharedFolders";

export {
shareFolder,
ShareFolderAction,
ShareFolderUserResultStatus,
} from "./sharedFolders/shareFolder";
export type {
ShareFolderActionInput,
ShareFolderInput,
ShareFolderResult,
ShareFolderUserStatus,
} from "./sharedFolders/shareFolder";

export {
changeDirectory,
createVaultFolderSession,
tryResolvePath,
resolveSingleFolder,
getWorkingFolderDisplayName,
findParentFolderUid,
splitPathComponents,
} from "./folders/changeDirectory";
export type {
VaultFolderSession,
ChangeDirectoryResult,
TryResolvePathResult,
} from "./folders/changeDirectory";

export { addFolder, mkdir } from "./folders/addFolder";
export type {
AddFolderInput,
AddFolderResult,
MkdirOptions,
} from "./folders/addFolder";

export {
updateFolder,
renameFolder,
updateSharedFolderPermissions,
} from "./folders/updateFolder";
export type {
UpdateFolderInput,
UpdateFolderResult,
RenameFolderResult,
} from "./folders/updateFolder";

export {
deleteFolder,
rmdir,
resolveRmdirPatternsToFolderUids,
buildFolderDeleteObject,
} from "./folders/deleteFolder";
export type { DeleteFolderResult, RmdirOptions } from "./folders/deleteFolder";

export {
buildFolderTree,
renderFolderTreeAscii,
folderTreeAscii,
userPermissionToText,
recordPermissionToText,
} from "./folders/folderTree";
export type {
FolderTreeBuildOptions,
FolderTreeNode,
FolderTreeResult,
} from "./folders/folderTree";

export { FolderManager } from "./folders/FolderManager";
export type {
AuthProvider,
SharedFolderPermissionsInput,
} from "./folders/FolderManager";

export { SharedFolderManager } from "./sharedFolders/SharedFolderManager";

export {
Auth,
KeeperEnvironment,
syncDown,
Authentication,
} from "@keeper-security/keeperapi";

export type {
DRecord,
DRecordMetadata,
DSharedFolder,
DTeam,
DUserFolder,
VaultStorage,
SyncResult,
SyncDownOptions,
ClientConfiguration,
DeviceConfig,
SessionStorage,
AuthUI3,
KeeperError,
LoginError,
} from "@keeper-security/keeperapi";
Loading
Loading