chore: display shared vault file usage (#2399)
* chore: display shared vault file usage * fix: specs * fix: reshape filtering result * fix: resolving invalid server items * fix: get revisions specs * fix: processing issue * fix: tests --------- Co-authored-by: Mo <mo@standardnotes.com>
This commit is contained in:
@@ -12,14 +12,38 @@ function CreateFilteredServerItem(item: ServerItemResponse): FilteredServerItem
|
||||
}
|
||||
}
|
||||
|
||||
export function FilterDisallowedRemotePayloadsAndMap(payloads: ServerItemResponse[]): FilteredServerItem[] {
|
||||
return payloads.filter(isRemotePayloadAllowed).map(CreateFilteredServerItem)
|
||||
}
|
||||
|
||||
export function isRemotePayloadAllowed(payload: ServerItemResponse): boolean {
|
||||
if (isCorruptTransferPayload(payload)) {
|
||||
return false
|
||||
export function FilterDisallowedRemotePayloadsAndMap(payloads: ServerItemResponse[]): {
|
||||
filtered: FilteredServerItem[]
|
||||
disallowed: ServerItemResponse[]
|
||||
} {
|
||||
const filtered = []
|
||||
const disallowed = []
|
||||
for (const payload of payloads) {
|
||||
const result = checkRemotePayloadAllowed(payload)
|
||||
if (result.allowed === undefined) {
|
||||
disallowed.push(payload)
|
||||
} else {
|
||||
filtered.push(CreateFilteredServerItem(result.allowed))
|
||||
}
|
||||
}
|
||||
|
||||
return isEncryptedTransferPayload(payload) || payload.content == undefined
|
||||
return {
|
||||
filtered,
|
||||
disallowed,
|
||||
}
|
||||
}
|
||||
|
||||
export function checkRemotePayloadAllowed(payload: ServerItemResponse): {
|
||||
allowed?: ServerItemResponse
|
||||
disallowed?: ServerItemResponse
|
||||
} {
|
||||
if (isCorruptTransferPayload(payload)) {
|
||||
return { disallowed: payload }
|
||||
}
|
||||
|
||||
if (isEncryptedTransferPayload(payload) || payload.content == undefined) {
|
||||
return { allowed: payload }
|
||||
} else {
|
||||
return { disallowed: payload }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ProtocolVersion } from '@standardnotes/common'
|
||||
import { ProtocolVersion } from '../../../Local/Protocol/ProtocolVersion'
|
||||
import { EncryptedPayloadInterface } from '../../Payload/Interfaces/EncryptedPayload'
|
||||
import { ItemInterface } from './ItemInterface'
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { ProtocolVersion, protocolVersionFromEncryptedString } from '@standardnotes/common'
|
||||
import { ProtocolVersion } from '../../../Local/Protocol/ProtocolVersion'
|
||||
import { ProtocolVersionFromEncryptedString } from '../../../Local/Protocol/ProtocolVersionFromEncryptedString'
|
||||
import { SyncResolvedParams, SyncResolvedPayload } from '../../../Runtime/Deltas/Utilities/SyncResolvedPayload'
|
||||
import { EncryptedTransferPayload } from '../../TransferPayload/Interfaces/EncryptedTransferPayload'
|
||||
import { EncryptedPayloadInterface } from '../Interfaces/EncryptedPayload'
|
||||
@@ -18,13 +19,18 @@ export class EncryptedPayload extends PurePayload<EncryptedTransferPayload> impl
|
||||
constructor(rawPayload: EncryptedTransferPayload, source = PayloadSource.Constructor) {
|
||||
super(rawPayload, source)
|
||||
|
||||
const versionResult = ProtocolVersionFromEncryptedString(rawPayload.content)
|
||||
if (versionResult.isFailed()) {
|
||||
throw new Error('EncryptedPayload constructor versionResult is failed')
|
||||
}
|
||||
|
||||
this.auth_hash = rawPayload.auth_hash
|
||||
this.content = rawPayload.content
|
||||
this.deleted = false
|
||||
this.enc_item_key = rawPayload.enc_item_key
|
||||
this.errorDecrypting = rawPayload.errorDecrypting
|
||||
this.items_key_id = rawPayload.items_key_id
|
||||
this.version = protocolVersionFromEncryptedString(this.content)
|
||||
this.version = versionResult.getValue()
|
||||
this.waitingForKey = rawPayload.waitingForKey
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ProtocolVersion } from '@standardnotes/common'
|
||||
import { ProtocolVersion } from '../../../Local/Protocol/ProtocolVersion'
|
||||
import { EncryptedTransferPayload } from '../../TransferPayload/Interfaces/EncryptedTransferPayload'
|
||||
import { PayloadInterface } from './PayloadInterface'
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ describe('type check', () => {
|
||||
expect(
|
||||
isCorruptTransferPayload({
|
||||
uuid: '123',
|
||||
content_type: ContentType.TYPES.Unknown,
|
||||
content_type: 'Unknown',
|
||||
content: '123',
|
||||
...PayloadTimestampDefaults(),
|
||||
}),
|
||||
|
||||
@@ -26,5 +26,7 @@ export function isDeletedTransferPayload(payload: TransferPayload): payload is D
|
||||
export function isCorruptTransferPayload(payload: TransferPayload): boolean {
|
||||
const invalidDeletedState = payload.deleted === true && payload.content != undefined
|
||||
|
||||
return payload.uuid == undefined || invalidDeletedState || payload.content_type === ContentType.TYPES.Unknown
|
||||
const contenTypeOrError = ContentType.create(payload.content_type)
|
||||
|
||||
return payload.uuid == undefined || invalidDeletedState || contenTypeOrError.isFailed()
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
export type ApplicationIdentifier = string
|
||||
@@ -1,5 +1,5 @@
|
||||
import { ProtocolVersion } from '@standardnotes/common'
|
||||
import { KeySystemIdentifier } from '../../Syncable/KeySystemRootKey/KeySystemIdentifier'
|
||||
import { ProtocolVersion } from '../Protocol/ProtocolVersion'
|
||||
import { KeySystemPasswordType } from './KeySystemPasswordType'
|
||||
|
||||
/**
|
||||
|
||||
47
packages/models/src/Domain/Local/Protocol/ProtocolVersion.ts
Normal file
47
packages/models/src/Domain/Local/Protocol/ProtocolVersion.ts
Normal file
@@ -0,0 +1,47 @@
|
||||
export enum ProtocolVersion {
|
||||
V001 = '001',
|
||||
V002 = '002',
|
||||
V003 = '003',
|
||||
V004 = '004',
|
||||
}
|
||||
|
||||
export const ProtocolVersionLatest = ProtocolVersion.V004
|
||||
|
||||
/** The last protocol version to not use root-key based items keys */
|
||||
export const ProtocolVersionLastNonrootItemsKey = ProtocolVersion.V003
|
||||
|
||||
export const ProtocolExpirationDates: Partial<Record<ProtocolVersion, number>> = Object.freeze({
|
||||
[ProtocolVersion.V001]: Date.parse('2018-01-01'),
|
||||
[ProtocolVersion.V002]: Date.parse('2020-01-01'),
|
||||
})
|
||||
|
||||
export function isProtocolVersionExpired(version: ProtocolVersion) {
|
||||
const expireDate = ProtocolExpirationDates[version]
|
||||
if (!expireDate) {
|
||||
return false
|
||||
}
|
||||
|
||||
const expired = new Date().getTime() > expireDate
|
||||
return expired
|
||||
}
|
||||
|
||||
export const ProtocolVersionLength = 3
|
||||
|
||||
/**
|
||||
* -1 if a < b
|
||||
* 0 if a == b
|
||||
* 1 if a > b
|
||||
*/
|
||||
export function compareVersions(a: ProtocolVersion, b: ProtocolVersion): number {
|
||||
const aNum = Number(a)
|
||||
const bNum = Number(b)
|
||||
return aNum - bNum
|
||||
}
|
||||
|
||||
export function leftVersionGreaterThanOrEqualToRight(a: ProtocolVersion, b: ProtocolVersion): boolean {
|
||||
return compareVersions(a, b) >= 0
|
||||
}
|
||||
|
||||
export function isVersionLessThanOrEqualTo(input: ProtocolVersion, compareTo: ProtocolVersion): boolean {
|
||||
return compareVersions(input, compareTo) <= 0
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
import { Result } from '@standardnotes/domain-core'
|
||||
import { ProtocolVersion, ProtocolVersionLength } from './ProtocolVersion'
|
||||
|
||||
export function ProtocolVersionFromEncryptedString(string: string): Result<ProtocolVersion> {
|
||||
try {
|
||||
const version = string.substring(0, ProtocolVersionLength) as ProtocolVersion
|
||||
if (Object.values(ProtocolVersion).includes(version)) {
|
||||
return Result.ok(version)
|
||||
}
|
||||
} catch (error) {
|
||||
return Result.fail(JSON.stringify(error))
|
||||
}
|
||||
|
||||
return Result.fail(`Invalid encrypted string ${string}`)
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
import { PkcKeyPair } from '@standardnotes/sncrypto-common'
|
||||
import { ProtocolVersion } from '@standardnotes/common'
|
||||
import { DecryptedItemInterface } from '../../Abstract/Item/Interfaces/DecryptedItem'
|
||||
import { RootKeyParamsInterface } from '../KeyParams/RootKeyParamsInterface'
|
||||
import { NamespacedRootKeyInKeychain, RootKeyContentInStorage } from './KeychainTypes'
|
||||
import { RootKeyContent } from './RootKeyContent'
|
||||
import { ProtocolVersion } from '../Protocol/ProtocolVersion'
|
||||
|
||||
export interface RootKeyInterface extends DecryptedItemInterface<RootKeyContent> {
|
||||
readonly keyParams: RootKeyParamsInterface
|
||||
|
||||
@@ -19,6 +19,7 @@ export type AsymmetricMessageSharedVaultInvite = {
|
||||
name: string
|
||||
description?: string
|
||||
iconString: IconType | EmojiString
|
||||
fileBytesUsed: number
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { ProtocolVersion } from '@standardnotes/common'
|
||||
import { DecryptedItemInterface } from './../../Abstract/Item/Interfaces/DecryptedItem'
|
||||
import { ItemContent, SpecializedContent } from '../../Abstract/Content/ItemContent'
|
||||
import { ProtocolVersion } from '../../Local/Protocol/ProtocolVersion'
|
||||
|
||||
export interface ItemsKeyContentSpecialized extends SpecializedContent {
|
||||
version: ProtocolVersion
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { ProtocolVersion } from '@standardnotes/common'
|
||||
import { ItemContent, SpecializedContent } from '../../Abstract/Content/ItemContent'
|
||||
import { ProtocolVersion } from '../../Local/Protocol/ProtocolVersion'
|
||||
|
||||
export interface KeySystemItemsKeyContentSpecialized extends SpecializedContent {
|
||||
version: ProtocolVersion
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { ProtocolVersion } from '@standardnotes/common'
|
||||
import { DecryptedItemInterface } from '../../Abstract/Item/Interfaces/DecryptedItem'
|
||||
import { ProtocolVersion } from '../../Local/Protocol/ProtocolVersion'
|
||||
import { KeySystemItemsKeyContent } from './KeySystemItemsKeyContent'
|
||||
|
||||
export interface KeySystemItemsKeyInterface extends DecryptedItemInterface<KeySystemItemsKeyContent> {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { ProtocolVersion } from '@standardnotes/common'
|
||||
import { ConflictStrategy, DecryptedItem } from '../../Abstract/Item'
|
||||
import { DecryptedPayloadInterface } from '../../Abstract/Payload'
|
||||
import { HistoryEntryInterface } from '../../Runtime/History'
|
||||
@@ -7,6 +6,7 @@ import { KeySystemRootKeyInterface } from './KeySystemRootKeyInterface'
|
||||
import { KeySystemIdentifier } from './KeySystemIdentifier'
|
||||
import { KeySystemRootKeyParamsInterface } from '../../Local/KeyParams/KeySystemRootKeyParamsInterface'
|
||||
import { ContentType } from '@standardnotes/domain-core'
|
||||
import { ProtocolVersion } from '../../Local/Protocol/ProtocolVersion'
|
||||
|
||||
export function isKeySystemRootKey(x: { content_type: string }): x is KeySystemRootKey {
|
||||
return x.content_type === ContentType.TYPES.KeySystemRootKey
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { ProtocolVersion } from '@standardnotes/common'
|
||||
import { ItemContent } from '../../Abstract/Content/ItemContent'
|
||||
import { KeySystemIdentifier } from './KeySystemIdentifier'
|
||||
import { KeySystemRootKeyParamsInterface } from '../../Local/KeyParams/KeySystemRootKeyParamsInterface'
|
||||
import { ProtocolVersion } from '../../Local/Protocol/ProtocolVersion'
|
||||
|
||||
export type KeySystemRootKeyContentSpecialized = {
|
||||
keyParams: KeySystemRootKeyParamsInterface
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { ProtocolVersion } from '@standardnotes/common'
|
||||
import { DecryptedItemInterface } from '../../Abstract/Item/Interfaces/DecryptedItem'
|
||||
import { KeySystemRootKeyContent } from './KeySystemRootKeyContent'
|
||||
import { KeySystemIdentifier } from './KeySystemIdentifier'
|
||||
import { KeySystemRootKeyParamsInterface } from '../../Local/KeyParams/KeySystemRootKeyParamsInterface'
|
||||
import { ProtocolVersion } from '../../Local/Protocol/ProtocolVersion'
|
||||
|
||||
export interface KeySystemRootKeyInterface extends DecryptedItemInterface<KeySystemRootKeyContent> {
|
||||
keyParams: KeySystemRootKeyParamsInterface
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
export type VaultListingSharingInfo = {
|
||||
sharedVaultUuid: string
|
||||
ownerUserUuid: string
|
||||
fileBytesUsed: number
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@ export * from './Abstract/Contextual/ComponentCreate'
|
||||
export * from './Abstract/Contextual/ComponentRetrieved'
|
||||
export * from './Abstract/Contextual/ContextPayload'
|
||||
export * from './Abstract/Contextual/FilteredServerItem'
|
||||
export * from './Abstract/Contextual/TrustedConflictParams'
|
||||
export * from './Abstract/Contextual/Functions'
|
||||
export * from './Abstract/Contextual/LocalStorage'
|
||||
export * from './Abstract/Contextual/OfflineSyncPush'
|
||||
@@ -23,30 +22,33 @@ export * from './Abstract/Contextual/OfflineSyncSaved'
|
||||
export * from './Abstract/Contextual/ServerSyncPush'
|
||||
export * from './Abstract/Contextual/ServerSyncSaved'
|
||||
export * from './Abstract/Contextual/SessionHistory'
|
||||
export * from './Abstract/Contextual/TrustedConflictParams'
|
||||
export * from './Abstract/Item'
|
||||
export * from './Abstract/Payload'
|
||||
export * from './Abstract/TransferPayload'
|
||||
|
||||
export * from './Api/Subscription/Invitation'
|
||||
export * from './Api/Subscription/InvitationStatus'
|
||||
export * from './Api/Subscription/InviteeIdentifierType'
|
||||
export * from './Api/Subscription/InviterIdentifierType'
|
||||
|
||||
export * from './Device/Environment'
|
||||
export * from './Device/Platform'
|
||||
|
||||
export * from './Local/KeyParams/RootKeyParamsInterface'
|
||||
export * from './Local/KeyParams/KeySystemRootKeyParamsInterface'
|
||||
export * from './Local/ApplicationIdentifier'
|
||||
export * from './Local/KeyParams/KeySystemPasswordType'
|
||||
export * from './Local/KeyParams/KeySystemRootKeyParamsInterface'
|
||||
export * from './Local/KeyParams/RootKeyParamsInterface'
|
||||
export * from './Local/Protocol/ProtocolVersion'
|
||||
export * from './Local/Protocol/ProtocolVersionFromEncryptedString'
|
||||
export * from './Local/RootKey/KeychainTypes'
|
||||
export * from './Local/RootKey/RootKeyContent'
|
||||
export * from './Local/RootKey/RootKeyInterface'
|
||||
export * from './Local/RootKey/RootKeyWithKeyPairsInterface'
|
||||
|
||||
export * from './Runtime/Feature/TypeGuards'
|
||||
export * from './Runtime/Feature/UIFeature'
|
||||
export * from './Runtime/Feature/UIFeatureInterface'
|
||||
|
||||
export * from './Runtime/AsymmetricMessage/AsymmetricMessagePayload'
|
||||
export * from './Runtime/AsymmetricMessage/AsymmetricMessagePayloadType'
|
||||
export * from './Runtime/AsymmetricMessage/MessageTypes/AsymmetricMessageSenderKeypairChanged'
|
||||
export * from './Runtime/AsymmetricMessage/MessageTypes/AsymmetricMessageSharedVaultInvite'
|
||||
export * from './Runtime/AsymmetricMessage/MessageTypes/AsymmetricMessageSharedVaultMetadataChanged'
|
||||
export * from './Runtime/AsymmetricMessage/MessageTypes/AsymmetricMessageSharedVaultRootKeyChanged'
|
||||
export * from './Runtime/AsymmetricMessage/MessageTypes/AsymmetricMessageTrustedContactShare'
|
||||
export * from './Runtime/Collection/CollectionSort'
|
||||
export * from './Runtime/Collection/Item/ItemCollection'
|
||||
export * from './Runtime/Collection/Item/ItemCounter'
|
||||
@@ -57,6 +59,13 @@ export * from './Runtime/DirtyCounter/DirtyCounter'
|
||||
export * from './Runtime/Display'
|
||||
export * from './Runtime/Display/ItemDisplayController'
|
||||
export * from './Runtime/Display/Types'
|
||||
export * from './Runtime/Encryption/ContentTypesUsingRootKeyEncryption'
|
||||
export * from './Runtime/Encryption/ContentTypeUsesKeySystemRootKeyEncryption'
|
||||
export * from './Runtime/Encryption/ContentTypeUsesRootKeyEncryption'
|
||||
export * from './Runtime/Encryption/PersistentSignatureData'
|
||||
export * from './Runtime/Feature/TypeGuards'
|
||||
export * from './Runtime/Feature/UIFeature'
|
||||
export * from './Runtime/Feature/UIFeatureInterface'
|
||||
export * from './Runtime/History'
|
||||
export * from './Runtime/Index/ItemDelta'
|
||||
export * from './Runtime/Index/SNIndex'
|
||||
@@ -69,20 +78,6 @@ export * from './Runtime/Predicate/NotPredicate'
|
||||
export * from './Runtime/Predicate/Operator'
|
||||
export * from './Runtime/Predicate/Predicate'
|
||||
export * from './Runtime/Predicate/Utils'
|
||||
|
||||
export * from './Runtime/AsymmetricMessage/AsymmetricMessagePayload'
|
||||
export * from './Runtime/AsymmetricMessage/AsymmetricMessagePayloadType'
|
||||
export * from './Runtime/AsymmetricMessage/MessageTypes/AsymmetricMessageSenderKeypairChanged'
|
||||
export * from './Runtime/AsymmetricMessage/MessageTypes/AsymmetricMessageSharedVaultInvite'
|
||||
export * from './Runtime/AsymmetricMessage/MessageTypes/AsymmetricMessageSharedVaultMetadataChanged'
|
||||
export * from './Runtime/AsymmetricMessage/MessageTypes/AsymmetricMessageSharedVaultRootKeyChanged'
|
||||
export * from './Runtime/AsymmetricMessage/MessageTypes/AsymmetricMessageTrustedContactShare'
|
||||
|
||||
export * from './Runtime/Encryption/PersistentSignatureData'
|
||||
export * from './Runtime/Encryption/ContentTypeUsesRootKeyEncryption'
|
||||
export * from './Runtime/Encryption/ContentTypesUsingRootKeyEncryption'
|
||||
export * from './Runtime/Encryption/ContentTypeUsesKeySystemRootKeyEncryption'
|
||||
|
||||
export * from './Syncable/ActionsExtension'
|
||||
export * from './Syncable/Component'
|
||||
export * from './Syncable/Editor'
|
||||
@@ -90,36 +85,32 @@ export * from './Syncable/FeatureRepo'
|
||||
export * from './Syncable/File'
|
||||
export * from './Syncable/ItemsKey/ItemsKeyInterface'
|
||||
export * from './Syncable/ItemsKey/ItemsKeyMutatorInterface'
|
||||
export * from './Syncable/KeySystemItemsKey/KeySystemItemsKeyContent'
|
||||
export * from './Syncable/KeySystemItemsKey/KeySystemItemsKeyInterface'
|
||||
export * from './Syncable/KeySystemItemsKey/KeySystemItemsKeyMutatorInterface'
|
||||
export * from './Syncable/KeySystemRootKey/KeySystemIdentifier'
|
||||
export * from './Syncable/KeySystemRootKey/KeySystemRootKey'
|
||||
export * from './Syncable/KeySystemRootKey/KeySystemRootKeyContent'
|
||||
export * from './Syncable/KeySystemRootKey/KeySystemRootKeyInterface'
|
||||
export * from './Syncable/KeySystemRootKey/KeySystemRootKeyMutator'
|
||||
export * from './Syncable/KeySystemRootKey/KeySystemRootKeyStorageMode'
|
||||
export * from './Syncable/Note'
|
||||
export * from './Syncable/SmartView'
|
||||
export * from './Syncable/Tag'
|
||||
export * from './Syncable/UserPrefs'
|
||||
|
||||
export * from './Syncable/TrustedContact/TrustedContact'
|
||||
export * from './Syncable/TrustedContact/Mutator/TrustedContactMutator'
|
||||
export * from './Syncable/TrustedContact/Content/TrustedContactContent'
|
||||
export * from './Syncable/TrustedContact/TrustedContactInterface'
|
||||
export * from './Syncable/TrustedContact/PublicKeySet/ContactPublicKeySetInterface'
|
||||
export * from './Syncable/TrustedContact/Mutator/TrustedContactMutator'
|
||||
export * from './Syncable/TrustedContact/PublicKeySet/ContactPublicKeySet'
|
||||
export * from './Syncable/TrustedContact/PublicKeySet/ContactPublicKeySetInterface'
|
||||
export * from './Syncable/TrustedContact/TrustedContact'
|
||||
export * from './Syncable/TrustedContact/TrustedContactInterface'
|
||||
export * from './Syncable/TrustedContact/Types/PortablePublicKeySet'
|
||||
export * from './Syncable/TrustedContact/Types/PublicKeyTrustStatus'
|
||||
|
||||
export * from './Syncable/KeySystemRootKey/KeySystemRootKey'
|
||||
export * from './Syncable/KeySystemRootKey/KeySystemRootKeyMutator'
|
||||
export * from './Syncable/KeySystemRootKey/KeySystemRootKeyContent'
|
||||
export * from './Syncable/KeySystemRootKey/KeySystemRootKeyInterface'
|
||||
export * from './Syncable/KeySystemRootKey/KeySystemRootKeyStorageMode'
|
||||
|
||||
export * from './Syncable/KeySystemItemsKey/KeySystemItemsKeyInterface'
|
||||
export * from './Syncable/KeySystemItemsKey/KeySystemItemsKeyContent'
|
||||
export * from './Syncable/KeySystemItemsKey/KeySystemItemsKeyMutatorInterface'
|
||||
|
||||
export * from './Syncable/UserPrefs'
|
||||
export * from './Syncable/VaultListing/VaultListing'
|
||||
export * from './Syncable/VaultListing/VaultListingContent'
|
||||
export * from './Syncable/VaultListing/VaultListingInterface'
|
||||
export * from './Syncable/VaultListing/VaultListingMutator'
|
||||
export * from './Syncable/VaultListing/VaultListingSharingInfo'
|
||||
|
||||
export * from './Utilities/Icon/IconType'
|
||||
export * from './Utilities/Item/FindItem'
|
||||
export * from './Utilities/Item/ItemContentsDiffer'
|
||||
@@ -132,4 +123,3 @@ export * from './Utilities/Payload/PayloadContentsEqual'
|
||||
export * from './Utilities/Payload/PayloadsByAlternatingUuid'
|
||||
export * from './Utilities/Payload/PayloadsByDuplicating'
|
||||
export * from './Utilities/Payload/PayloadSplit'
|
||||
export * from './Syncable/KeySystemRootKey/KeySystemIdentifier'
|
||||
|
||||
Reference in New Issue
Block a user