import { Field } from 'contensis-core-api'; import { Entry } from 'contensis-management-api'; import { DependenciesMeta, EntryDependenciesMeta, EntryDependencyMeta, EntryDependencyOrigin, ExistingDependenciesMeta, NodeDependenciesMeta, TagDependenciesMeta, TagDependencyMeta } from '../models/EntryDependencies'; import ContensisRepository from '../repositories/ContensisRepository'; import ContentTypeHelper from '../util/content-type/ContentTypeHelper'; /** * Use for every field in an entry, component or composer, * providing the field's configuration and value and a content type * helper so we can locate and check fields in any composers or components */ export declare class EntryFieldCheck { #private; private value; private field; private entry; private context; private dependencies; dependencyLevel: number; private parentFields?; assetUris: Map; entryIds: EntryDependencyMeta[]; nodeIds: Map; tagIds: TagDependencyMeta[]; tagGroupIds: Map; dependencyIds: { [id: string]: EntryDependencyOrigin[]; }; total: number; required: number; get fieldAndAncestors(): Field[]; get fieldIdPath(): string; get hasDependencies(): boolean; get isAssetField(): boolean; get isRequiredField(): boolean; constructor(value: any, field: Field, entry: Entry, context: ContentTypeHelper, dependencies: ExistingDependenciesMeta, dependencyLevel: number, parentFields?: Field[] | undefined); } /** * Use for each entry providing the entry value and a content type * helper so we can resolve the content type and check every field */ export declare class EntryDependencyCheck { #private; entry: Entry; private context; private dependencies; dependencyLevel: number; private contentType; assetUris: Map; entryIds: EntryDependencyMeta[]; nodeIds: Map; tagIds: TagDependencyMeta[]; tagGroupIds: Map; dependencyIds: { [id: string]: EntryDependencyOrigin[]; }; fields: { [fieldId: string]: EntryFieldCheck; }; hasDependencies: boolean; total: number; required: number; requiredFields: { [fieldId: string]: EntryFieldCheck; }; constructor(entry: Entry, context: ContentTypeHelper, dependencies: DependenciesMeta, dependencyLevel: number); } type EntryDependencyLevel = { /** Length is the number of unique entries found as unresolved dependencies at this level */ length: number; /** Total is the sum of all references to linked content, * this may be higher than the number of dependencies if the * same content dependency is linked multiple times */ total: number; /** Required is the sum of all references to linked content that * are in required fields */ required: number; } & { [entryId: Exclude]: EntryDependencyCheck; }; declare class EntriesDependencyService { target: ContensisRepository; assetUris: Set; entryIds: EntryDependenciesMeta; nodeIds: NodeDependenciesMeta[]; tagGroupIds: Set; tagIds: TagDependenciesMeta; dependencyIds: { [id: string]: EntryDependencyOrigin[]; }; levels: EntryDependencyLevel[]; total: number; required: number; dependencyLevels: EntryDependencyLevel[]; requiredLevels: EntryDependencyLevel[]; cutoffLevels: EntryDependencyLevel[]; stopLevel?: number | undefined; constructor(target: ContensisRepository); /** * Find all dependencies in the given entry and merge the found dependencies * in with all the other dependencies for this job instance * @param entry * @returns metadata of dependent entries for this entry */ FindEntryDependencies: (entry: Entry, level?: number) => EntryDependencyMeta[]; /** Get the levels from where this dependency was found, * the first level is the farthest level it was found at * @param entryId * @returns array of levels where this entry id was found as a dependency */ getEntryDependencyLevels(entryId: string): number[] | undefined; } export default EntriesDependencyService;