Skip to content
Closed
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
59 changes: 59 additions & 0 deletions KeeperSdk/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -465,16 +465,45 @@ export {
formatListNsfJson,
formatListNsfOutput,
GetNsfFormat,
NsfAccessRoleLabel,
NsfObjectKind,
NSF_ACCESS_ROLE_LABELS,
NSF_MAX_RECORD_BATCH,
resolveRecordPermissionRole,
toNsfAccessRoleLabel,
resolveNsfFolder,
resolveNsfRecord,
getNestedShareFolder,
formatNsfFolderDetail,
formatNsfRecordDetail,
formatNsfDetail,
formatNsfJson,
formatNsfRecordJson,
toNsfRecordJsonView,
linkNestedShareRecord,
NsfRemoveOperation,
removeNestedShareRecords,
formatRemoveNsfPreview,
collectRemoveNsfWarnings,
mkdirNestedShareFolder,
NSF_FOLDER_COLORS,
NsfRemoveFolderOperation,
removeNestedShareFolders,
formatRemoveNsfFolderPreview,
GetNsfRecordDetailsFormat,
getNestedShareRecordDetails,
formatNsfRecordDetailsTable,
formatNsfRecordDetailsOutput,
updateNestedShareRecords,
updateNestedShareRecord,
addNestedShareRecord,
addNestedShareRecords,
buildNsfRecordData,
parseNsfFieldInput,
parseNsfFieldSpaceInput,
resolveNsfFieldValue,
clearNsfRecordTypeCache,
checkRecordEditPermission,
NestedShareFolderManager,
} from './nestedShareFolders'
export type {
Expand All @@ -487,6 +516,10 @@ export type {
GetNsfResult,
NsfFolderView,
NsfRecordView,
NsfRecordFieldView,
NsfRecordFolderView,
NsfRecordJsonView,
NsfRecordJsonUserPermission,
NsfFolderPermission,
NsfFolderAccessRow,
NsfRecordPermission,
Expand All @@ -495,6 +528,32 @@ export type {
RemoveNsfRecordInput,
NsfRemovePreviewItem,
RemoveNsfRecordResult,
MkdirNsfInput,
MkdirNsfResult,
NsfFolderColorInput,
NsfFolderColor,
NsfRemoveFolderOperationInput,
RemoveNsfFolderInput,
NsfRemoveFolderPreviewItem,
RemoveNsfFolderResult,
GetNsfRecordDetailsFormatInput,
GetNsfRecordDetailsInput,
GetNsfRecordDetailsResult,
NsfRecordDetailsItem,
UpdateNsfRecordInput,
UpdateNsfRecordItemInput,
UpdateNsfRecordsInput,
UpdateNsfRecordResult,
UpdateNsfRecordResultItem,
AddNsfRecordInput,
AddNsfRecordResult,
AddNsfRecordsInput,
AddNsfRecordsResult,
RecordAddPayload,
RecordUpdatePayload,
FolderCreatePayload,
ParsedNsfFields,
RecordFieldEntry,
} from './nestedShareFolders'

export type {
Expand Down
110 changes: 60 additions & 50 deletions KeeperSdk/src/nestedShareFolders/NestedShareFolderManager.ts
Original file line number Diff line number Diff line change
@@ -1,33 +1,39 @@
import type { Auth } from '@keeper-security/keeperapi'
import type { InMemoryStorage } from '../storage/InMemoryStorage'
import { KeeperSdkError, ResultCodes } from '../utils'
import {
formatListNsfOutput,
formatListNsfTable,
listNestedShareFolders,
renderListNsfAsciiTable,
type FormattedListNsfTable,
type ListNsfFormatInput,
type ListNsfOptions,
type ListNsfRow,
} from './listNsf'
import {
formatNsfDetail as renderNsfDetail,
formatNsfFolderDetail as renderNsfFolderDetail,
formatNsfRecordDetail as renderNsfRecordDetail,
getNestedShareFolder,
type GetNsfOptions,
type GetNsfResult,
type NsfFolderView,
type NsfRecordView,
} from './getNsf'
import { linkNestedShareRecord, type LinkNsfRecordResult } from './linkNsfRecord'
import {
formatRemoveNsfPreview,
removeNestedShareRecords,
type RemoveNsfRecordInput,
type RemoveNsfRecordResult,
} from './removeNsfRecord'
import { listNestedShareFolders } from './listNsf'
import { getNestedShareFolder } from './getNsf'
import { linkNestedShareRecord } from './linkNsfRecord'
import { removeNestedShareRecords } from './removeNsfRecord'
import { mkdirNestedShareFolder } from './mkdirNsf'
import { removeNestedShareFolders } from './removeNsfFolder'
import { getNestedShareRecordDetails } from './getNsfRecordDetails'
import { updateNestedShareRecords, updateNestedShareRecord } from './updateNsfRecord'
import { addNestedShareRecord, addNestedShareRecords } from './addNsfRecord'
import type {
AddNsfRecordInput,
AddNsfRecordResult,
AddNsfRecordsInput,
AddNsfRecordsResult,
GetNsfOptions,
GetNsfResult,
GetNsfRecordDetailsInput,
GetNsfRecordDetailsResult,
LinkNsfRecordResult,
ListNsfOptions,
ListNsfRow,
MkdirNsfInput,
MkdirNsfResult,
RemoveNsfFolderInput,
RemoveNsfFolderResult,
RemoveNsfRecordInput,
RemoveNsfRecordResult,
UpdateNsfRecordInput,
UpdateNsfRecordItemInput,
UpdateNsfRecordsInput,
UpdateNsfRecordResult,
UpdateNsfRecordResultItem,
} from './nsfTypes'

export type AuthProvider = () => Auth

Expand All @@ -52,46 +58,50 @@ export class NestedShareFolderManager {
return listNestedShareFolders(this.storage, options)
}

public formatListNsfTable(rows: ListNsfRow[], options: { columnWidth?: number } = {}): FormattedListNsfTable {
return formatListNsfTable(rows, options)
public async getNestedShareFolder(identifier: string, options: GetNsfOptions = {}): Promise<GetNsfResult> {
return getNestedShareFolder(this.storage, this.requireAuth(), identifier, options)
}

public renderListNsfAsciiTable(table: FormattedListNsfTable, options: { minColWidth?: number } = {}): string {
return renderListNsfAsciiTable(table, options)
public async linkNestedShareRecord(
recordIdentifier: string,
folderIdentifier: string
): Promise<LinkNsfRecordResult> {
return linkNestedShareRecord(this.storage, this.requireAuth(), recordIdentifier, folderIdentifier)
}

public formatListNsfOutput(rows: ListNsfRow[], format: ListNsfFormatInput = 'table'): string {
return formatListNsfOutput(rows, format)
public async removeNestedShareRecords(input: RemoveNsfRecordInput): Promise<RemoveNsfRecordResult> {
return removeNestedShareRecords(this.storage, this.requireAuth(), input)
}

public async getNestedShareFolder(identifier: string, options: GetNsfOptions = {}): Promise<GetNsfResult> {
return getNestedShareFolder(this.storage, this.requireAuth(), identifier, options)
public async mkdirNestedShareFolder(input: MkdirNsfInput): Promise<MkdirNsfResult> {
return mkdirNestedShareFolder(this.storage, this.requireAuth(), input)
}

public formatNsfDetail(result: GetNsfResult, verbose = false): string {
return renderNsfDetail(result, verbose)
public async removeNestedShareFolders(input: RemoveNsfFolderInput): Promise<RemoveNsfFolderResult> {
return removeNestedShareFolders(this.storage, this.requireAuth(), input)
}

public formatNsfFolderDetail(view: NsfFolderView, verbose = false): string {
return renderNsfFolderDetail(view, verbose)
public async getNestedShareRecordDetails(
input: GetNsfRecordDetailsInput
): Promise<GetNsfRecordDetailsResult> {
return getNestedShareRecordDetails(this.storage, this.requireAuth(), input)
}

public formatNsfRecordDetail(view: NsfRecordView, verbose = false): string {
return renderNsfRecordDetail(view, verbose)
public async updateNestedShareRecords(
input: UpdateNsfRecordInput | UpdateNsfRecordsInput
): Promise<UpdateNsfRecordResult> {
return updateNestedShareRecords(this.storage, this.requireAuth(), input)
}

public async linkNestedShareRecord(
recordIdentifier: string,
folderIdentifier: string
): Promise<LinkNsfRecordResult> {
return linkNestedShareRecord(this.storage, this.requireAuth(), recordIdentifier, folderIdentifier)
public async updateNestedShareRecord(input: UpdateNsfRecordItemInput): Promise<UpdateNsfRecordResultItem> {
return updateNestedShareRecord(this.storage, this.requireAuth(), input)
}

public async removeNestedShareRecords(input: RemoveNsfRecordInput): Promise<RemoveNsfRecordResult> {
return removeNestedShareRecords(this.storage, this.requireAuth(), input)
public async addNestedShareRecords(input: AddNsfRecordsInput): Promise<AddNsfRecordsResult> {
return addNestedShareRecords(this.storage, this.requireAuth(), input)
}

public formatRemoveNsfPreview(preview: RemoveNsfRecordResult['preview']): string {
return formatRemoveNsfPreview(preview)
public async addNestedShareRecord(input: AddNsfRecordInput): Promise<AddNsfRecordResult> {
return addNestedShareRecord(this.storage, this.requireAuth(), input)
}
}
Loading
Loading