Skip to content

ComponentMetadataFileSchema

const ComponentMetadataFileSchema: ZodObject<{
components: ZodRecord<ZodString, ZodDiscriminatedUnion<"kind", [ZodObject<{
analysis: ZodArray<ZodObject<{
components: ZodArray<..., ...>;
directives: ZodArray<..., ...>;
exportedFunctions: ZodArray<..., ...>;
exportedTypes: ZodArray<..., ...>;
filePath: ZodString;
pipes: ZodArray<..., ...>;
services: ZodArray<..., ...>;
}, "strip", ZodTypeAny, {
components: ...[];
directives: ...[];
exportedFunctions: ...[];
exportedTypes: ...[];
filePath: string;
pipes: ...[];
services: ...[];
}, {
components: ...[];
directives: ...[];
exportedFunctions: ...[];
exportedTypes: ...[];
filePath: string;
pipes: ...[];
services: ...[];
}>, "many">;
commonPatterns: ZodOptional<ZodArray<ZodString, "many">>;
configTokens: ZodOptional<ZodArray<ZodObject<{
configKey: ...;
defaultValues: ...;
filePath: ...;
interface: ...;
kind: ...;
properties: ...;
token: ...;
}, "strip", ZodTypeAny, {
configKey?: ...;
defaultValues?: ...;
filePath: ...;
interface: ...;
kind?: ...;
properties: ...;
token: ...;
}, {
configKey?: ...;
defaultValues?: ...;
filePath: ...;
interface: ...;
kind?: ...;
properties: ...;
token: ...;
}>, "many">>;
contentProjection: ZodOptional<ZodArray<ZodObject<{
multiple: ...;
name: ...;
required: ...;
selector: ...;
selectorAlternates: ...;
}, "strip", ZodTypeAny, {
multiple: ...;
name: ...;
required: ...;
selector?: ...;
selectorAlternates?: ...;
}, {
multiple: ...;
name: ...;
required: ...;
selector?: ...;
selectorAlternates?: ...;
}>, "many">>;
dependencies: ZodObject<{
optional: ZodArray<ZodString, "many">;
providers: ZodObject<{
optional: ...;
required: ...;
}, "strip", ZodTypeAny, {
optional: ...;
required: ...;
}, {
optional: ...;
required: ...;
}>;
required: ZodArray<ZodString, "many">;
}, "strip", ZodTypeAny, {
optional: string[];
providers: {
optional: ...[];
required: ...[];
};
required: string[];
}, {
optional: string[];
providers: {
optional: ...[];
required: ...[];
};
required: string[];
}>;
deprecation: ZodOptional<ZodObject<{
deprecated: ZodLiteral<...>;
reason: ZodOptional<...>;
removeIn: ZodOptional<...>;
replacement: ZodOptional<...>;
since: ZodOptional<...>;
}, "strip", ZodTypeAny, {
deprecated: true;
reason?: ... | ...;
removeIn?: ... | ...;
replacement?: ... | ...;
since?: ... | ...;
}, {
deprecated: true;
reason?: ... | ...;
removeIn?: ... | ...;
replacement?: ... | ...;
since?: ... | ...;
}>>;
examples: ZodArray<ZodObject<{
description: ZodString;
name: ZodString;
scss: ZodOptional<...>;
template: ZodOptional<...>;
typescript: ZodOptional<...>;
}, "strip", ZodTypeAny, {
description: string;
name: string;
scss?: ... | ...;
template?: ... | ...;
typescript?: ... | ...;
}, {
description: string;
name: string;
scss?: ... | ...;
template?: ... | ...;
typescript?: ... | ...;
}>, "many">;
exports: ZodArray<ZodString, "many">;
files: ZodArray<ZodString, "many">;
importsFrom: ZodOptional<ZodArray<ZodString, "many">>;
inheritance: ZodOptional<ZodRecord<ZodString, ZodObject<{
baseClass: ...;
baseClassPath: ...;
inheritedInputs: ...;
inheritedOutputs: ...;
mixins: ...;
}, "strip", ZodTypeAny, {
baseClass?: ...;
baseClassPath?: ...;
inheritedInputs: ...;
inheritedOutputs: ...;
mixins: ...;
}, {
baseClass?: ...;
baseClassPath?: ...;
inheritedInputs: ...;
inheritedOutputs: ...;
mixins: ...;
}>>>;
inheritanceResolved: ZodBoolean;
kind: ZodLiteral<"analyzed">;
llmSummary: ZodOptional<ZodString>;
name: ZodString;
readme: ZodOptional<ZodString>;
relatedComponents: ZodOptional<ZodArray<ZodObject<{
name: ...;
reason: ...;
relationship: ...;
}, "strip", ZodTypeAny, {
name: ...;
reason: ...;
relationship: ...;
}, {
name: ...;
reason: ...;
relationship: ...;
}>, "many">>;
storybookExamples: ZodOptional<ZodArray<ZodObject<{
args: ...;
argTypes: ...;
filePath: ...;
storyName: ...;
template: ...;
usedComponentRefs: ...;
usedComponents: ...;
}, "strip", ZodTypeAny, {
args: ...;
argTypes?: ...;
filePath: ...;
storyName: ...;
template: ...;
usedComponentRefs?: ...;
usedComponents: ...;
}, {
args: ...;
argTypes?: ...;
filePath: ...;
storyName: ...;
template: ...;
usedComponentRefs?: ...;
usedComponents: ...;
}>, "many">>;
}, "strip", ZodTypeAny, {
analysis: {
components: {
className: ...;
dependencies: ...;
exportedTypes: ...;
filePath: ...;
inputs: ...;
jsDocDescription?: ...;
lifecycleHooks: ...;
metadata: ...;
outputs: ...;
publicMethods: ...;
}[];
directives: {
className: ...;
dependencies: ...;
exportedTypes: ...;
filePath: ...;
inputs: ...;
jsDocDescription?: ...;
lifecycleHooks: ...;
metadata: ...;
outputs: ...;
publicMethods: ...;
}[];
exportedFunctions: {
description?: ...;
isAsync: ...;
name: ...;
parameters: ...;
returnType: ...;
returnTypeResolved: ...;
}[];
exportedTypes: (... | ... | ... | ...)[];
filePath: string;
pipes: {
className: ...;
pipeName: ...;
pure: ...;
standalone: ...;
transformMethod?: ...;
}[];
services: {
className: ...;
dependencies: ...;
providedIn?: ...;
publicMethods: ...;
}[];
}[];
commonPatterns?: string[];
configTokens?: {
configKey?: ... | ...;
defaultValues?: ... | ...;
filePath: string;
interface: string;
kind?: ... | ... | ...;
properties: ...[];
token: string;
}[];
contentProjection?: {
multiple: boolean;
name: string;
required: boolean;
selector?: ... | ...;
selectorAlternates?: ... | ...;
}[];
dependencies: {
optional: string[];
providers: {
optional: string[];
required: string[];
};
required: string[];
};
deprecation?: {
deprecated: true;
reason?: string;
removeIn?: string;
replacement?: string;
since?: string;
};
examples: {
description: string;
name: string;
scss?: string;
template?: string;
typescript?: string;
}[];
exports: string[];
files: string[];
importsFrom?: string[];
inheritance?: Record<string, {
baseClass?: ... | ...;
baseClassPath?: ... | ...;
inheritedInputs: ...[];
inheritedOutputs: ...[];
mixins: ...[];
}>;
inheritanceResolved: boolean;
kind: "analyzed";
llmSummary?: string;
name: string;
readme?: string;
relatedComponents?: {
name: string;
reason: string;
relationship: ... | ... | ...;
}[];
storybookExamples?: {
args: Record<..., ...>;
argTypes?: ... | ...;
filePath: string;
storyName: string;
template: string;
usedComponentRefs?: ... | ...;
usedComponents: ...[];
}[];
}, {
analysis: {
components: {
className: ...;
dependencies: ...;
exportedTypes: ...;
filePath: ...;
inputs: ...;
jsDocDescription?: ...;
lifecycleHooks: ...;
metadata: ...;
outputs: ...;
publicMethods: ...;
}[];
directives: {
className: ...;
dependencies: ...;
exportedTypes: ...;
filePath: ...;
inputs: ...;
jsDocDescription?: ...;
lifecycleHooks: ...;
metadata: ...;
outputs: ...;
publicMethods: ...;
}[];
exportedFunctions: {
description?: ...;
isAsync: ...;
name: ...;
parameters: ...;
returnType: ...;
returnTypeResolved: ...;
}[];
exportedTypes: (... | ... | ... | ...)[];
filePath: string;
pipes: {
className: ...;
pipeName: ...;
pure: ...;
standalone: ...;
transformMethod?: ...;
}[];
services: {
className: ...;
dependencies: ...;
providedIn?: ...;
publicMethods: ...;
}[];
}[];
commonPatterns?: string[];
configTokens?: {
configKey?: ... | ...;
defaultValues?: ... | ...;
filePath: string;
interface: string;
kind?: ... | ... | ...;
properties: ...[];
token: string;
}[];
contentProjection?: {
multiple: boolean;
name: string;
required: boolean;
selector?: ... | ...;
selectorAlternates?: ... | ...;
}[];
dependencies: {
optional: string[];
providers: {
optional: string[];
required: string[];
};
required: string[];
};
deprecation?: {
deprecated: true;
reason?: string;
removeIn?: string;
replacement?: string;
since?: string;
};
examples: {
description: string;
name: string;
scss?: string;
template?: string;
typescript?: string;
}[];
exports: string[];
files: string[];
importsFrom?: string[];
inheritance?: Record<string, {
baseClass?: ... | ...;
baseClassPath?: ... | ...;
inheritedInputs: ...[];
inheritedOutputs: ...[];
mixins: ...[];
}>;
inheritanceResolved: boolean;
kind: "analyzed";
llmSummary?: string;
name: string;
readme?: string;
relatedComponents?: {
name: string;
reason: string;
relationship: ... | ... | ...;
}[];
storybookExamples?: {
args: Record<..., ...>;
argTypes?: ... | ...;
filePath: string;
storyName: string;
template: string;
usedComponentRefs?: ... | ...;
usedComponents: ...[];
}[];
}>, ZodObject<{
kind: ZodLiteral<"skipped">;
name: ZodString;
reason: ZodString;
}, "strip", ZodTypeAny, {
kind: "skipped";
name: string;
reason: string;
}, {
kind: "skipped";
name: string;
reason: string;
}>, ZodObject<{
kind: ZodLiteral<"failed">;
name: ZodString;
reason: ZodString;
}, "strip", ZodTypeAny, {
kind: "failed";
name: string;
reason: string;
}, {
kind: "failed";
name: string;
reason: string;
}>]>>;
componentsPath: ZodString;
diagnostics: ZodOptional<ZodArray<ZodObject<{
code: ZodString;
component: ZodOptional<ZodString>;
file: ZodOptional<ZodString>;
message: ZodString;
severity: ZodEnum<["error", "warn"]>;
stack: ZodOptional<ZodString>;
}, "strip", ZodTypeAny, {
code: string;
component?: string;
file?: string;
message: string;
severity: "error" | "warn";
stack?: string;
}, {
code: string;
component?: string;
file?: string;
message: string;
severity: "error" | "warn";
stack?: string;
}>, "many">>;
framework: ZodOptional<ZodEnum<["angular", "react"]>>;
generatedAt: ZodString;
importPrefix: ZodOptional<ZodString>;
libraryDocumentation: ZodOptional<ZodString>;
libraryName: ZodOptional<ZodString>;
selectorMap: ZodOptional<ZodRecord<ZodString, ZodObject<{
component: ZodString;
configRequired: ZodOptional<ZodArray<ZodString, "many">>;
deprecated: ZodOptional<ZodBoolean>;
formControl: ZodOptional<ZodBoolean>;
hasContentSlots: ZodOptional<ZodBoolean>;
mainInputs: ZodArray<ZodString, "many">;
mainOutputs: ZodArray<ZodString, "many">;
type: ZodOptional<ZodEnum<["component", "directive"]>>;
}, "strip", ZodTypeAny, {
component: string;
configRequired?: string[];
deprecated?: boolean;
formControl?: boolean;
hasContentSlots?: boolean;
mainInputs: string[];
mainOutputs: string[];
type?: "component" | "directive";
}, {
component: string;
configRequired?: string[];
deprecated?: boolean;
formControl?: boolean;
hasContentSlots?: boolean;
mainInputs: string[];
mainOutputs: string[];
type?: "component" | "directive";
}>>>;
version: ZodString;
}, "strip", ZodTypeAny, {
components: Record<string,
| {
analysis: {
components: {
className: string;
dependencies: (... | ...)[];
exportedTypes: (... | ... | ... | ...)[];
filePath: string;
inputs: (... | ...)[];
jsDocDescription?: string;
lifecycleHooks: {
implemented: ...;
name: ...;
}[];
metadata: {
changeDetection?: ... | ... | ... | ...;
encapsulation?: ... | ... | ... | ... | ...;
exportAs?: ... | ...;
imports?: ... | ...;
providers?: ... | ...;
selector: string;
standalone: boolean;
styleUrls?: ... | ...;
template?: ... | ...;
templateUrl?: ... | ...;
};
outputs: {
alias?: ...;
description?: ...;
eventType: ...;
eventTypeResolved: ...;
name: ...;
}[];
publicMethods: {
description?: ...;
isAsync: ...;
name: ...;
parameters: ...;
returnType: ...;
returnTypeResolved: ...;
}[];
}[];
directives: {
className: string;
dependencies: (... | ...)[];
exportedTypes: (... | ... | ... | ...)[];
filePath: string;
inputs: (... | ...)[];
jsDocDescription?: string;
lifecycleHooks: {
implemented: ...;
name: ...;
}[];
metadata: {
changeDetection?: ... | ... | ... | ...;
encapsulation?: ... | ... | ... | ... | ...;
exportAs?: ... | ...;
imports?: ... | ...;
providers?: ... | ...;
selector: string;
standalone: boolean;
styleUrls?: ... | ...;
template?: ... | ...;
templateUrl?: ... | ...;
};
outputs: {
alias?: ...;
description?: ...;
eventType: ...;
eventTypeResolved: ...;
name: ...;
}[];
publicMethods: {
description?: ...;
isAsync: ...;
name: ...;
parameters: ...;
returnType: ...;
returnTypeResolved: ...;
}[];
}[];
exportedFunctions: {
description?: string;
isAsync: boolean;
name: string;
parameters: {
defaultValue?: ...;
name: ...;
optional: ...;
type: ...;
typeResolved: ...;
}[];
returnType: string | null;
returnTypeResolved: boolean;
}[];
exportedTypes: (
| {
definition: string;
kind: "interface";
members?: ... | ...;
name: string;
}
| {
definition: string;
kind: "class";
members?: ... | ...;
name: string;
}
| {
definition: string;
kind: "type";
name: string;
}
| {
definition: string;
kind: "enum";
members?: ... | ...;
name: string;
})[];
filePath: string;
pipes: {
className: string;
pipeName: string;
pure: boolean;
standalone: boolean;
transformMethod?: {
description?: ...;
isAsync: ...;
name: ...;
parameters: ...;
returnType: ...;
returnTypeResolved: ...;
};
}[];
services: {
className: string;
dependencies: (... | ...)[];
providedIn?: "root" | "platform" | "any" | null;
publicMethods: {
description?: ...;
isAsync: ...;
name: ...;
parameters: ...;
returnType: ...;
returnTypeResolved: ...;
}[];
}[];
}[];
commonPatterns?: string[];
configTokens?: {
configKey?: string;
defaultValues?: Record<string, unknown>;
filePath: string;
interface: string;
kind?: "injection-token" | "with-config";
properties: {
description?: ... | ...;
name: string;
optional: boolean;
type: ... | ...;
typeResolved: boolean;
}[];
token: string;
}[];
contentProjection?: {
multiple: boolean;
name: string;
required: boolean;
selector?: string;
selectorAlternates?: string[];
}[];
dependencies: {
optional: string[];
providers: {
optional: string[];
required: string[];
};
required: string[];
};
deprecation?: {
deprecated: true;
reason?: string;
removeIn?: string;
replacement?: string;
since?: string;
};
examples: {
description: string;
name: string;
scss?: string;
template?: string;
typescript?: string;
}[];
exports: string[];
files: string[];
importsFrom?: string[];
inheritance?: Record<string, {
baseClass?: string;
baseClassPath?: string;
inheritedInputs: (
| {
alias?: ...;
description?: ...;
name: ...;
required: ...;
resolvedValues: ...;
transform?: ...;
type: ...;
typeResolved: ...;
}
| {
alias?: ...;
defaultValue?: ...;
description?: ...;
name: ...;
required: ...;
resolvedValues: ...;
transform?: ...;
type: ...;
typeResolved: ...;
})[];
inheritedOutputs: {
alias?: ... | ...;
description?: ... | ...;
eventType: ... | ...;
eventTypeResolved: boolean;
name: string;
}[];
mixins: string[];
}>;
inheritanceResolved: boolean;
kind: "analyzed";
llmSummary?: string;
name: string;
readme?: string;
relatedComponents?: {
name: string;
reason: string;
relationship: "requires" | "often-used-with" | "alternative-to";
}[];
storybookExamples?: {
args: Record<string, unknown>;
argTypes?: Record<string, {
options?: ...;
}>;
filePath: string;
storyName: string;
template: string;
usedComponentRefs?: {
kind: ...;
selector: ...;
}[];
usedComponents: string[];
}[];
}
| {
kind: "skipped";
name: string;
reason: string;
}
| {
kind: "failed";
name: string;
reason: string;
}>;
componentsPath: string;
diagnostics?: {
code: string;
component?: string;
file?: string;
message: string;
severity: "error" | "warn";
stack?: string;
}[];
framework?: "angular" | "react";
generatedAt: string;
importPrefix?: string;
libraryDocumentation?: string;
libraryName?: string;
selectorMap?: Record<string, {
component: string;
configRequired?: string[];
deprecated?: boolean;
formControl?: boolean;
hasContentSlots?: boolean;
mainInputs: string[];
mainOutputs: string[];
type?: "component" | "directive";
}>;
version: string;
}, {
components: Record<string,
| {
analysis: {
components: {
className: string;
dependencies: (... | ...)[];
exportedTypes: (... | ... | ... | ...)[];
filePath: string;
inputs: (... | ...)[];
jsDocDescription?: string;
lifecycleHooks: {
implemented: ...;
name: ...;
}[];
metadata: {
changeDetection?: ... | ... | ... | ...;
encapsulation?: ... | ... | ... | ... | ...;
exportAs?: ... | ...;
imports?: ... | ...;
providers?: ... | ...;
selector: string;
standalone: boolean;
styleUrls?: ... | ...;
template?: ... | ...;
templateUrl?: ... | ...;
};
outputs: {
alias?: ...;
description?: ...;
eventType: ...;
eventTypeResolved: ...;
name: ...;
}[];
publicMethods: {
description?: ...;
isAsync: ...;
name: ...;
parameters: ...;
returnType: ...;
returnTypeResolved: ...;
}[];
}[];
directives: {
className: string;
dependencies: (... | ...)[];
exportedTypes: (... | ... | ... | ...)[];
filePath: string;
inputs: (... | ...)[];
jsDocDescription?: string;
lifecycleHooks: {
implemented: ...;
name: ...;
}[];
metadata: {
changeDetection?: ... | ... | ... | ...;
encapsulation?: ... | ... | ... | ... | ...;
exportAs?: ... | ...;
imports?: ... | ...;
providers?: ... | ...;
selector: string;
standalone: boolean;
styleUrls?: ... | ...;
template?: ... | ...;
templateUrl?: ... | ...;
};
outputs: {
alias?: ...;
description?: ...;
eventType: ...;
eventTypeResolved: ...;
name: ...;
}[];
publicMethods: {
description?: ...;
isAsync: ...;
name: ...;
parameters: ...;
returnType: ...;
returnTypeResolved: ...;
}[];
}[];
exportedFunctions: {
description?: string;
isAsync: boolean;
name: string;
parameters: {
defaultValue?: ...;
name: ...;
optional: ...;
type: ...;
typeResolved: ...;
}[];
returnType: string | null;
returnTypeResolved: boolean;
}[];
exportedTypes: (
| {
definition: string;
kind: "interface";
members?: ... | ...;
name: string;
}
| {
definition: string;
kind: "class";
members?: ... | ...;
name: string;
}
| {
definition: string;
kind: "type";
name: string;
}
| {
definition: string;
kind: "enum";
members?: ... | ...;
name: string;
})[];
filePath: string;
pipes: {
className: string;
pipeName: string;
pure: boolean;
standalone: boolean;
transformMethod?: {
description?: ...;
isAsync: ...;
name: ...;
parameters: ...;
returnType: ...;
returnTypeResolved: ...;
};
}[];
services: {
className: string;
dependencies: (... | ...)[];
providedIn?: "root" | "platform" | "any" | null;
publicMethods: {
description?: ...;
isAsync: ...;
name: ...;
parameters: ...;
returnType: ...;
returnTypeResolved: ...;
}[];
}[];
}[];
commonPatterns?: string[];
configTokens?: {
configKey?: string;
defaultValues?: Record<string, unknown>;
filePath: string;
interface: string;
kind?: "injection-token" | "with-config";
properties: {
description?: ... | ...;
name: string;
optional: boolean;
type: ... | ...;
typeResolved: boolean;
}[];
token: string;
}[];
contentProjection?: {
multiple: boolean;
name: string;
required: boolean;
selector?: string;
selectorAlternates?: string[];
}[];
dependencies: {
optional: string[];
providers: {
optional: string[];
required: string[];
};
required: string[];
};
deprecation?: {
deprecated: true;
reason?: string;
removeIn?: string;
replacement?: string;
since?: string;
};
examples: {
description: string;
name: string;
scss?: string;
template?: string;
typescript?: string;
}[];
exports: string[];
files: string[];
importsFrom?: string[];
inheritance?: Record<string, {
baseClass?: string;
baseClassPath?: string;
inheritedInputs: (
| {
alias?: ...;
description?: ...;
name: ...;
required: ...;
resolvedValues: ...;
transform?: ...;
type: ...;
typeResolved: ...;
}
| {
alias?: ...;
defaultValue?: ...;
description?: ...;
name: ...;
required: ...;
resolvedValues: ...;
transform?: ...;
type: ...;
typeResolved: ...;
})[];
inheritedOutputs: {
alias?: ... | ...;
description?: ... | ...;
eventType: ... | ...;
eventTypeResolved: boolean;
name: string;
}[];
mixins: string[];
}>;
inheritanceResolved: boolean;
kind: "analyzed";
llmSummary?: string;
name: string;
readme?: string;
relatedComponents?: {
name: string;
reason: string;
relationship: "requires" | "often-used-with" | "alternative-to";
}[];
storybookExamples?: {
args: Record<string, unknown>;
argTypes?: Record<string, {
options?: ...;
}>;
filePath: string;
storyName: string;
template: string;
usedComponentRefs?: {
kind: ...;
selector: ...;
}[];
usedComponents: string[];
}[];
}
| {
kind: "skipped";
name: string;
reason: string;
}
| {
kind: "failed";
name: string;
reason: string;
}>;
componentsPath: string;
diagnostics?: {
code: string;
component?: string;
file?: string;
message: string;
severity: "error" | "warn";
stack?: string;
}[];
framework?: "angular" | "react";
generatedAt: string;
importPrefix?: string;
libraryDocumentation?: string;
libraryName?: string;
selectorMap?: Record<string, {
component: string;
configRequired?: string[];
deprecated?: boolean;
formControl?: boolean;
hasContentSlots?: boolean;
mainInputs: string[];
mainOutputs: string[];
type?: "component" | "directive";
}>;
version: string;
}>;

Defined in: packages/core/src/data/schema.ts:362