/** * GitLab CI JSON Schema parser. * * Parses the single CI schema into multiple entity results — one per CI * entity (Job, Pipeline, Artifacts, Cache, etc.). The schema is a single * document unlike CloudFormation which has one schema per resource type. */ import type { PropertyConstraints } from "@intentius/chant/codegen/json-schema"; import { constraintsIsEmpty as coreConstraintsIsEmpty } from "@intentius/chant/codegen/json-schema"; export type { PropertyConstraints }; export { coreConstraintsIsEmpty as constraintsIsEmpty }; export interface ParsedProperty { name: string; tsType: string; required: boolean; description?: string; enum?: string[]; constraints: PropertyConstraints; } export interface ParsedPropertyType { name: string; /** The definition name in the original schema */ defType: string; properties: ParsedProperty[]; } export interface ParsedEnum { name: string; values: string[]; } export interface ParsedResource { typeName: string; description?: string; properties: ParsedProperty[]; attributes: Array<{ name: string; tsType: string; }>; deprecatedProperties: string[]; } export interface GitLabParseResult { resource: ParsedResource; propertyTypes: ParsedPropertyType[]; enums: ParsedEnum[]; /** Whether this entity is a "property" type (nested inside resources) */ isProperty?: boolean; } /** * Parse the GitLab CI JSON Schema into multiple entity results. * Returns one result per CI entity with its properties and nested types. */ export declare function parseCISchema(data: string | Buffer): GitLabParseResult[]; /** * Extract short name: "GitLab::CI::Job" → "Job" */ export declare function gitlabShortName(typeName: string): string; /** * Extract service name: "GitLab::CI::Job" → "CI" */ export declare function gitlabServiceName(typeName: string): string; //# sourceMappingURL=parse.d.ts.map