Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | /**
* @fds-uif/core
*
* Core utilities for Universal Interface Format (UIF).
*
* This package provides utilities for working with UIFs:
*
* **Merge & Resolution:**
* - `merge()`: Deep merge UIF foundations and systems with identifier-based array merging
* - `resolveExtends()`: Resolve `extends` chains to produce fully merged definitions
*
* **Validation:**
* - `validateUif()`: Comprehensive validation of UIF definitions
* - `validateResolved()`: Validate resolved/merged UIFs
* - `validateIdentifiers()`: Validate uniqueness of identifiers in UIF arrays
* - `validateStateReferences()`: Validate state references in stateClasses
* - `validateVariantConflicts()`: Detect conflicting variant structural changes
* - `validateMarkers()`: Validate positional markers ($before/$after)
*
* **Extraction (for resolved UIFs):**
* - `getStates()`, `getModifiers()`, `getVariants()`: Extract definitions
* - `getSlots()`, `getBoundAttributes()`: Traverse structure
* - `isGenReady()`, `hasState()`, `hasModifier()`: Check properties
* - `getPropNames()`: Get all prop names for a UIF
*
* @example
* ```ts
* import {
* merge,
* resolveExtends,
* validateResolved,
* getStates,
* getSlots,
* isGenReady,
* } from '@fds-uif/core';
*
* // Resolve a file's extends chain
* const resolved = await resolveExtends('./badge.slds.uif.json');
*
* // Validate resolved UIF
* const result = validateResolved(resolved);
*
* // Extract information
* const states = getStates(resolved);
* const slots = getSlots(resolved);
* const ready = isGenReady(resolved);
* ```
*
* @packageDocumentation
*/
// Re-export all browser-safe utilities
export * from './shared-exports.js';
// =============================================================================
// Node.js-only exports (require fs/path)
// =============================================================================
// Resolution utilities (require Node.js fs/path)
export { clearResolveCache, hasExtends, resolveExtends, resolveExtendsFromObject } from './resolve.js';
// ResolveOptions type (only needed for Node.js resolution)
export type { ResolveOptions } from './types.js';
// CSS parsing utilities (require PostCSS/Node.js)
export { generateCssMetadata, parseCssSource, extractCssMetadata } from './css/index.js';
// UIF manifest utilities (require Node.js fs)
export {
createManifest,
addComponent,
removeComponent,
readManifest,
writeManifest,
generateManifest,
updateManifestForComponent,
removeFromManifest,
} from './manifest/index.js';
export type { SourceManifest, ComponentEntry, BuildResult } from './manifest/types.js';
|