Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
624 changes: 624 additions & 0 deletions KeeperSdk/package-lock.json

Large diffs are not rendered by default.

54 changes: 54 additions & 0 deletions KeeperSdk/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ export {
SdkDefaults,
AuthDefaults,
ResultCodes,
AuthErrorCode,
SessionErrorCode,
TeamErrorCode,
KEEPER_PUBLIC_HOSTS,
isBoolean,
isString,
Expand Down Expand Up @@ -173,6 +176,57 @@ export type { AuthProvider, SharedFolderPermissionsInput } from './folders/Folde

export { SharedFolderManager } from './sharedFolders/SharedFolderManager'

export {
listTeams,
formatTeamsTable,
renderTeamsAsciiTable,
formatTeamRestricts,
TeamColumn,
SUPPORTED_TEAM_COLUMNS,
DEFAULT_TEAM_COLUMNS,
} from './teams/listTeams'
export type {
ListTeamsOptions,
ListTeamRow,
TeamColumnInput,
FormattedTeamsTable,
FormatTeamsTableOptions,
} from './teams/listTeams'

export {
EnterpriseDataInclude,
EnterpriseDataManager,
getEnterpriseData,
getEnterpriseDisplayNames,
getNodePath,
} from './teams/enterpriseData'
export type {
GetEnterpriseDataResponse,
EnterpriseTeamRecord,
EnterpriseTeamUserLink,
EnterpriseRoleUserLink,
EnterpriseRoleTeamLink,
EnterpriseUser,
EnterpriseRole,
EnterpriseNode,
DecryptedNodeNames,
DecryptedRoleNames,
EnterpriseDisplayNames,
NodePathOptions,
} from './teams/enterpriseData'

export { viewTeam, formatTeamView, teamViewTable } from './teams/viewTeam'
export type {
TeamView,
TeamRoleInfo,
TeamUserInfo,
FormatTeamViewOptions,
FormattedTeamViewTable,
TeamViewTableRow,
} from './teams/viewTeam'

export { TeamManager } from './teams/TeamManager'

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

export type {
Expand Down
61 changes: 61 additions & 0 deletions KeeperSdk/src/teams/TeamManager.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
import type { Auth } from '@keeper-security/keeperapi'
import { KeeperSdkError, ResultCodes } from '../utils'
import {
formatTeamsTable,
listTeams,
renderTeamsAsciiTable,
type FormatTeamsTableOptions,
type FormattedTeamsTable,
type ListTeamRow,
type ListTeamsOptions,
} from './listTeams'
import {
formatTeamView,
teamViewTable,
viewTeam,
type FormatTeamViewOptions,
type FormattedTeamViewTable,
type TeamView,
} from './viewTeam'

export type AuthProvider = () => Auth

export class TeamManager {
private readonly authProvider: AuthProvider

constructor(authProvider: AuthProvider) {
this.authProvider = authProvider
}

public async listTeams(options: ListTeamsOptions = {}): Promise<ListTeamRow[]> {
return listTeams(this.requireAuth(), options)
}

public formatTeamsTable(rows: ListTeamRow[], options: FormatTeamsTableOptions = {}): FormattedTeamsTable {
return formatTeamsTable(rows, options)
}

public renderTeamsAsciiTable(table: FormattedTeamsTable, options: { minColWidth?: number } = {}): string {
return renderTeamsAsciiTable(table, options)
}

public async viewTeam(identifier: string): Promise<TeamView> {
return viewTeam(this.requireAuth(), identifier)
}

public formatTeamView(view: TeamView, options: FormatTeamViewOptions = {}): FormattedTeamViewTable {
return formatTeamView(view, options)
}

public teamViewTable(table: FormattedTeamViewTable): string {
return teamViewTable(table)
}

private requireAuth(): Auth {
const auth = this.authProvider()
if (!auth) {
throw new KeeperSdkError('You are not logged in. Please log in first.', ResultCodes.NOT_LOGGED_IN)
}
return auth
}
}
Loading
Loading