{"version":3,"sources":["../core/types/variable/TypeGuards.ts"],"names":["isSimpleText","variable","type","isInterpolatedText","isTemplate","isFileContent","isSectionContent","isObject","isArray","isComputed","isCommandResult","isPath","isImported","isExecutable","isPipelineInput","isStructuredValueVariable","isPrimitive","isTextLike","isStructured","isExternal","VariableTypeGuards","hasType","getMatchingTypes","types","push","validateType","expectedType","isAnyType","includes","filterByType","variables","guard","filter","findByType","find","countByType","v","length","groupByType","groups","Map","existing","get","set","isStructuredValue","FastTypeGuards","isAnyTextType","isAnyDataType","isComplexType","requiresLazyEvaluation","internal","isComplex"],"mappings":"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","file":"chunk-EIWSEMQ4.mjs","sourcesContent":["/**\n * Variable Type Guards\n * \n * Runtime type checking and TypeScript type narrowing functions for all variable types.\n */\n\nimport {\n  Variable,\n  VariableTypeDiscriminator,\n  SimpleTextVariable,\n  InterpolatedTextVariable,\n  TemplateVariable,\n  FileContentVariable,\n  SectionContentVariable,\n  ObjectVariable,\n  ArrayVariable,\n  ComputedVariable,\n  CommandResultVariable,\n  PathVariable,\n  ImportedVariable,\n  ExecutableVariable,\n  PipelineInputVariable,\n  PrimitiveVariable,\n  TextLikeVariable,\n  StructuredVariable,\n  ExternalVariable,\n  StructuredValueVariable\n} from './VariableTypes';\n\n// =========================================================================\n// INDIVIDUAL TYPE GUARDS\n// =========================================================================\n\n/**\n * Type guard for SimpleTextVariable\n */\nexport function isSimpleText(variable: Variable): variable is SimpleTextVariable {\n  return variable.type === 'simple-text';\n}\n\n/**\n * Type guard for InterpolatedTextVariable\n */\nexport function isInterpolatedText(variable: Variable): variable is InterpolatedTextVariable {\n  return variable.type === 'interpolated-text';\n}\n\n/**\n * Type guard for TemplateVariable\n */\nexport function isTemplate(variable: Variable): variable is TemplateVariable {\n  return variable.type === 'template';\n}\n\n/**\n * Type guard for FileContentVariable\n */\nexport function isFileContent(variable: Variable): variable is FileContentVariable {\n  return variable.type === 'file-content';\n}\n\n/**\n * Type guard for SectionContentVariable\n */\nexport function isSectionContent(variable: Variable): variable is SectionContentVariable {\n  return variable.type === 'section-content';\n}\n\n/**\n * Type guard for ObjectVariable\n */\nexport function isObject(variable: Variable): variable is ObjectVariable {\n  return variable.type === 'object';\n}\n\n/**\n * Type guard for ArrayVariable\n */\nexport function isArray(variable: Variable): variable is ArrayVariable {\n  return variable.type === 'array';\n}\n\n/**\n * Type guard for ComputedVariable\n */\nexport function isComputed(variable: Variable): variable is ComputedVariable {\n  return variable.type === 'computed';\n}\n\n/**\n * Type guard for CommandResultVariable\n */\nexport function isCommandResult(variable: Variable): variable is CommandResultVariable {\n  return variable.type === 'command-result';\n}\n\n/**\n * Type guard for PathVariable\n */\nexport function isPath(variable: Variable): variable is PathVariable {\n  return variable.type === 'path';\n}\n\n/**\n * Type guard for ImportedVariable\n */\nexport function isImported(variable: Variable): variable is ImportedVariable {\n  return variable.type === 'imported';\n}\n\n/**\n * Type guard for ExecutableVariable\n */\nexport function isExecutable(variable: Variable): variable is ExecutableVariable {\n  return variable.type === 'executable';\n}\n\n/**\n * Type guard for PipelineInputVariable\n */\nexport function isPipelineInput(variable: Variable): variable is PipelineInputVariable {\n  return variable.type === 'pipeline-input';\n}\n\n/**\n * Type guard for StructuredValueVariable\n */\nexport function isStructuredValueVariable(variable: Variable): variable is StructuredValueVariable {\n  return variable.type === 'structured';\n}\n\n/**\n * Type guard for PrimitiveVariable\n */\nexport function isPrimitive(variable: Variable): variable is PrimitiveVariable {\n  return variable.type === 'primitive';\n}\n\n\n// =========================================================================\n// COMPOSITE TYPE GUARDS\n// =========================================================================\n\n/**\n * Check if variable contains text-like content\n */\nexport function isTextLike(variable: Variable): variable is TextLikeVariable {\n  return isSimpleText(variable) || \n         isInterpolatedText(variable) || \n         isTemplate(variable) || \n         isFileContent(variable) || \n         isSectionContent(variable) ||\n         isCommandResult(variable);\n}\n\n/**\n * Check if variable contains structured data\n */\nexport function isStructured(variable: Variable): variable is StructuredVariable {\n  return isObject(variable) || isArray(variable) || isStructuredValueVariable(variable);\n}\n\n/**\n * Check if variable was created from external content\n */\nexport function isExternal(variable: Variable): variable is ExternalVariable {\n  return isFileContent(variable) || \n         isSectionContent(variable) || \n         isImported(variable) || \n         isCommandResult(variable) ||\n         isComputed(variable);\n}\n\n// =========================================================================\n// UTILITY TYPE GUARDS\n// =========================================================================\n\n/**\n * Type guard class for organized access to all type checking functions\n */\nexport class VariableTypeGuards {\n  // Individual type guards\n  static isSimpleText = isSimpleText;\n  static isInterpolatedText = isInterpolatedText;\n  static isTemplate = isTemplate;\n  static isFileContent = isFileContent;\n  static isSectionContent = isSectionContent;\n  static isObject = isObject;\n  static isArray = isArray;\n  static isComputed = isComputed;\n  static isCommandResult = isCommandResult;\n  static isPath = isPath;\n  static isImported = isImported;\n  static isExecutable = isExecutable;\n  static isPipelineInput = isPipelineInput;\n  static isStructuredValue = isStructuredValueVariable;\n  static isPrimitive = isPrimitive;\n\n  // Composite type guards\n  static isTextLike = isTextLike;\n  static isStructured = isStructured;\n  static isExternal = isExternal;\n\n  /**\n   * Check if variable has a specific type discriminator\n   */\n  static hasType(variable: Variable, type: VariableTypeDiscriminator): boolean {\n    return variable.type === type;\n  }\n\n  /**\n   * Get all type discriminators that match the variable\n   */\n  static getMatchingTypes(variable: Variable): VariableTypeDiscriminator[] {\n    const types: VariableTypeDiscriminator[] = [variable.type];\n    \n    // Add composite type categories\n    if (this.isTextLike(variable)) {\n      types.push('simple-text'); // Representing text-like category\n    }\n    \n    if (this.isStructured(variable)) {\n      types.push('object'); // Representing structured category\n    }\n    \n    if (this.isExternal(variable)) {\n      types.push('imported'); // Representing external category\n    }\n    \n    return types;\n  }\n\n  /**\n   * Validate that a variable matches expected type\n   */\n  static validateType(\n    variable: Variable, \n    expectedType: VariableTypeDiscriminator\n  ): boolean {\n    return variable.type === expectedType;\n  }\n\n  /**\n   * Check if variable is of any of the specified types\n   */\n  static isAnyType(\n    variable: Variable, \n    types: VariableTypeDiscriminator[]\n  ): boolean {\n    return types.includes(variable.type);\n  }\n\n  /**\n   * Filter variables by type\n   */\n  static filterByType<T extends Variable>(\n    variables: Variable[],\n    guard: (variable: Variable) => variable is T\n  ): T[] {\n    return variables.filter(guard);\n  }\n\n  /**\n   * Find first variable of specified type\n   */\n  static findByType<T extends Variable>(\n    variables: Variable[],\n    guard: (variable: Variable) => variable is T\n  ): T | undefined {\n    return variables.find(guard);\n  }\n\n  /**\n   * Count variables by type\n   */\n  static countByType(\n    variables: Variable[],\n    type: VariableTypeDiscriminator\n  ): number {\n    return variables.filter(v => v.type === type).length;\n  }\n\n  /**\n   * Group variables by their types\n   */\n  static groupByType(variables: Variable[]): Map<VariableTypeDiscriminator, Variable[]> {\n    const groups = new Map<VariableTypeDiscriminator, Variable[]>();\n    \n    for (const variable of variables) {\n      const existing = groups.get(variable.type) || [];\n      existing.push(variable);\n      groups.set(variable.type, existing);\n    }\n    \n    return groups;\n  }\n}\n\n// =========================================================================\n// PERFORMANCE OPTIMIZED TYPE CHECKING\n// =========================================================================\n\n/**\n * Fast type checking utilities for performance-critical paths\n */\nexport class FastTypeGuards {\n  /**\n   * Fast check for text types (most common)\n   */\n  static isAnyTextType(variable: Variable): boolean {\n    const type = variable.type;\n    return type === 'simple-text' || \n           type === 'interpolated-text' || \n           type === 'template' ||\n           type === 'file-content' ||\n           type === 'section-content' ||\n           type === 'command-result';\n  }\n\n  /**\n   * Fast check for data types\n   */\n  static isAnyDataType(variable: Variable): boolean {\n    const type = variable.type;\n    return type === 'object' || \n           type === 'array' || \n           type === 'computed' || \n           type === 'primitive';\n  }\n\n  /**\n   * Fast check for complex types that might need special handling\n   */\n  static isComplexType(variable: Variable): boolean {\n    const type = variable.type;\n    return type === 'imported' || \n           type === 'executable' || \n           type === 'pipeline-input' ||\n           type === 'path';\n  }\n\n  /**\n   * Check if variable type requires lazy evaluation\n   */\n  static requiresLazyEvaluation(variable: Variable): boolean {\n    return isTemplate(variable) ||\n           isPipelineInput(variable) ||\n           (isImported(variable) && variable.internal?.isComplex);\n  }\n}\n"]}