/** * CASE Package Types * * Types for CASE Framework Packages (CFPackages). * A CFPackage is a complete bundle of a document, its items, and associations. */ import type { CFAssociation } from './associations'; import type { CFDocument } from './documents'; import type { CFItem } from './items'; /** * A complete CASE Framework Package. * * Bundles a CFDocument with all its CFItems and CFAssociations. */ export interface CFPackage { sourcedId: string; CFDocument: CFDocument; CFItems?: CFItem[]; CFAssociations?: CFAssociation[]; } /** * A CASE Framework Package with hierarchical group structure. * * Extends the standard package with a `structuredContent` field * that organizes items into named groups with optional nesting. */ export interface CFPackageWithGroups { sourcedId: string; CFDocument: CFDocument; structuredContent?: Record; } /** * A CFItem extended with optional child group nesting. */ export interface CFItemWithChildGroups extends CFItem { childGroups?: Record; } /** * URI reference used in package input payloads. * * Package inputs use `identifier` and `uri` instead of `sourcedId`. */ export interface InputNodeURI { title: string; identifier: string; uri: string; } /** * Document definition within a package upload. */ export interface CFDocumentInput { identifier: string; uri: string; lastChangeDateTime: string; title: string; creator: string; officialSourceURL?: string; publisher?: string; description?: string; language?: string; version?: string; caseVersion?: string; adoptionStatus?: string; statusStartDate?: string; statusEndDate?: string; licenseUri?: string; notes?: string; subject?: string[]; extensions?: unknown; } /** * Item definition within a package upload. */ export interface CFItemInput { identifier: string; uri: string; lastChangeDateTime: string; fullStatement: string; alternativeLabel?: string; CFItemType?: string; cfItemType?: string; humanCodingScheme?: string; listEnumeration?: string; abbreviatedStatement?: string; conceptKeywords?: string[]; notes?: string; subject?: string[]; language?: string; educationLevel?: string[]; CFItemTypeURI?: unknown; licenseURI?: unknown; statusStartDate?: string; statusEndDate?: string; extensions?: unknown; } /** * Association definition within a package upload. */ export interface CFAssociationInput { identifier: string; uri: string; lastChangeDateTime: string; associationType: string; originNodeURI: InputNodeURI; destinationNodeURI: InputNodeURI; sequenceNumber?: number; extensions?: unknown; } /** * Optional definitions section within a package upload. */ export interface CFDefinitions { CFItemTypes?: unknown[]; CFSubjects?: unknown[]; CFConcepts?: unknown[]; CFLicenses?: unknown[]; CFAssociationGroupings?: unknown[]; extensions?: unknown; } /** * Input payload for creating or replacing a CASE package. */ export interface CFPackageInput { CFDocument: CFDocumentInput; CFItems: CFItemInput[]; CFAssociations: CFAssociationInput[]; CFDefinitions?: CFDefinitions; extensions?: unknown; } /** * Result returned after uploading or replacing a CASE package. */ export interface CFPackageUploadResult { success: boolean; message: string; result: { documentId: string; stats: { documents: number; items: number; associations: number; }; success: boolean; }; } //# sourceMappingURL=packages.d.ts.map