{"version":3,"sources":["../core/types/variable/VariableFactories.ts"],"names":["createSimpleTextVariable","name","value","source","metadata","VariableFactory","createSimpleText","createInterpolatedTextVariable","interpolationPoints","createInterpolatedText","createTemplateVariable","parameters","templateSyntax","createTemplate","createFileContentVariable","filePath","createFileContent","undefined","createSectionContentVariable","sectionName","sectionSyntax","createSectionContent","createObjectVariable","isComplex","createObject","createArrayVariable","createArray","createComputedVariable","language","sourceCode","createComputed","createCommandResultVariable","command","exitCode","stderr","createCommandResult","createPathVariable","resolvedPath","originalPath","isURL","isAbsolute","security","createPath","createImportedVariable","originalType","importPath","isModule","variableName","createImported","createExecutableVariable","type","template","paramNames","createExecutable","createPipelineInputVariable","format","rawText","pipelineStage","createPipelineInput","createPrimitiveVariable","createPrimitive","createWhenExpressionVariable","definition","createWhenExpression","createdAt","Date","now","modifiedAt","encoding","importSource","path","isPipelineInput","primitiveType","fullMetadata","isEvaluated","conditionCount","conditions","length","hasParameters","parameterNames","createAutoTyped","Array","isArray","String","createTemplateAutoSyntax","includes","finalSource","directive","syntax","wrapperType","hasInterpolation","isMultiLine","createObjectWithComplexityDetection","detectComplexity","createArrayWithComplexityDetection","some","item","key","validateCreationParams","errors","push","match","valid","cloneWithMetadata","variable","newMetadata","updateValue","newValue"],"mappings":"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","file":"chunk-TU56GBG3.mjs","sourcesContent":["/**\n * Variable Factory Functions\n * \n * Consistent creation functions for all variable types with proper metadata handling.\n */\n\nimport {\n  VariableSource,\n  VariableMetadata,\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  PipelineInput,\n  WhenExpressionVariable,\n  Variable\n} from './VariableTypes';\n\n// =========================================================================\n// INDIVIDUAL FACTORY FUNCTION EXPORTS (for backward compatibility)\n// =========================================================================\n\n/**\n * Create a SimpleTextVariable\n */\nexport function createSimpleTextVariable(\n  name: string,\n  value: string,\n  source: VariableSource,\n  metadata?: VariableMetadata\n): SimpleTextVariable {\n  return VariableFactory.createSimpleText(name, value, source, metadata);\n}\n\n/**\n * Create an InterpolatedTextVariable\n */\nexport function createInterpolatedTextVariable(\n  name: string,\n  value: string,\n  interpolationPoints: Array<{ start: number; end: number; expression: string }>,\n  source: VariableSource,\n  metadata?: VariableMetadata\n): InterpolatedTextVariable {\n  return VariableFactory.createInterpolatedText(name, value, interpolationPoints, source, metadata);\n}\n\n/**\n * Create a TemplateVariable\n */\nexport function createTemplateVariable(\n  name: string,\n  value: string | any[],\n  parameters: string[] | undefined,\n  templateSyntax: 'double-bracket' | 'backtick' | 'doubleColon' | 'tripleColon',\n  source: VariableSource,\n  metadata?: VariableMetadata\n): TemplateVariable {\n  return VariableFactory.createTemplate(name, value, parameters, templateSyntax, source, metadata);\n}\n\n/**\n * Create a FileContentVariable\n */\nexport function createFileContentVariable(\n  name: string,\n  value: string,\n  filePath: string,\n  source: VariableSource,\n  metadata?: VariableMetadata\n): FileContentVariable {\n  return VariableFactory.createFileContent(name, value, filePath, source, undefined, metadata);\n}\n\n/**\n * Create a SectionContentVariable\n */\nexport function createSectionContentVariable(\n  name: string,\n  value: string,\n  filePath: string,\n  sectionName: string,\n  sectionSyntax: 'hash' | 'bracket',\n  source: VariableSource,\n  metadata?: VariableMetadata\n): SectionContentVariable {\n  return VariableFactory.createSectionContent(name, value, filePath, sectionName, sectionSyntax, source, metadata);\n}\n\n/**\n * Create an ObjectVariable\n */\nexport function createObjectVariable(\n  name: string,\n  value: Record<string, any>,\n  isComplex: boolean,\n  source: VariableSource,\n  metadata?: VariableMetadata\n): ObjectVariable {\n  return VariableFactory.createObject(name, value, isComplex, source, metadata);\n}\n\n/**\n * Create an ArrayVariable\n */\nexport function createArrayVariable(\n  name: string,\n  value: any[],\n  isComplex: boolean,\n  source: VariableSource,\n  metadata?: VariableMetadata\n): ArrayVariable {\n  return VariableFactory.createArray(name, value, isComplex, source, metadata);\n}\n\n/**\n * Create a ComputedVariable\n */\nexport function createComputedVariable(\n  name: string,\n  value: any,\n  language: 'js' | 'node' | 'python' | 'sh',\n  sourceCode: string,\n  source: VariableSource,\n  metadata?: VariableMetadata\n): ComputedVariable {\n  return VariableFactory.createComputed(name, value, language, sourceCode, source, metadata);\n}\n\n/**\n * Create a CommandResultVariable\n */\nexport function createCommandResultVariable(\n  name: string,\n  value: string,\n  command: string,\n  source: VariableSource,\n  exitCode?: number,\n  stderr?: string,\n  metadata?: VariableMetadata\n): CommandResultVariable {\n  return VariableFactory.createCommandResult(name, value, command, source, exitCode, stderr, metadata);\n}\n\n/**\n * Create a PathVariable\n */\nexport function createPathVariable(\n  name: string,\n  resolvedPath: string,\n  originalPath: string,\n  isURL: boolean,\n  isAbsolute: boolean,\n  source: VariableSource,\n  security?: { trust?: 'high' | 'medium' | 'low'; ttl?: number },\n  metadata?: VariableMetadata\n): PathVariable {\n  return VariableFactory.createPath(name, resolvedPath, originalPath, isURL, isAbsolute, source, security, metadata);\n}\n\n/**\n * Create an ImportedVariable\n */\nexport function createImportedVariable(\n  name: string,\n  value: any,\n  originalType: VariableTypeDiscriminator,\n  importPath: string,\n  isModule: boolean,\n  variableName: string,\n  source: VariableSource,\n  metadata?: VariableMetadata\n): ImportedVariable {\n  return VariableFactory.createImported(name, value, originalType, importPath, isModule, variableName, source, metadata);\n}\n\n/**\n * Create an ExecutableVariable\n */\nexport function createExecutableVariable(\n  name: string,\n  type: 'command' | 'code',\n  template: string,\n  paramNames: string[],\n  language: 'js' | 'node' | 'python' | 'sh' | 'bash' | undefined,\n  source: VariableSource,\n  metadata?: VariableMetadata\n): ExecutableVariable {\n  return VariableFactory.createExecutable(name, type, template, paramNames, language, source, metadata);\n}\n\n/**\n * Create a PipelineInputVariable\n */\nexport function createPipelineInputVariable(\n  name: string,\n  value: PipelineInput,\n  format: 'json' | 'csv' | 'xml' | 'text',\n  rawText: string,\n  source: VariableSource,\n  pipelineStage?: number\n): PipelineInputVariable {\n  return VariableFactory.createPipelineInput(name, value, format, rawText, source, pipelineStage);\n}\n\n/**\n * Create a PrimitiveVariable\n */\nexport function createPrimitiveVariable(\n  name: string,\n  value: number | boolean | null,\n  source: VariableSource,\n  metadata?: VariableMetadata\n): PrimitiveVariable {\n  return VariableFactory.createPrimitive(name, value, source, metadata);\n}\n\n/**\n * Create a WhenExpressionVariable\n */\nexport function createWhenExpressionVariable(\n  name: string,\n  definition: any, // WhenExpressionNode - using any to avoid circular dependency\n  source: VariableSource,\n  metadata?: VariableMetadata\n): WhenExpressionVariable {\n  return VariableFactory.createWhenExpression(name, definition, source, metadata);\n}\n\n// =========================================================================\n// FACTORY CLASS\n// =========================================================================\n\n/**\n * Factory class for creating variables with consistent patterns\n */\nexport class VariableFactory {\n  \n  // =========================================================================\n  // TEXT VARIABLE FACTORIES\n  // =========================================================================\n\n  /**\n   * Create a SimpleTextVariable\n   */\n  static createSimpleText(\n    name: string,\n    value: string,\n    source: VariableSource,\n    metadata?: VariableMetadata\n  ): SimpleTextVariable {\n    return {\n      type: 'simple-text',\n      name,\n      value,\n      source,\n      createdAt: Date.now(),\n      modifiedAt: Date.now(),\n      metadata\n    };\n  }\n\n  /**\n   * Create an InterpolatedTextVariable\n   */\n  static createInterpolatedText(\n    name: string,\n    value: string,\n    interpolationPoints: Array<{ start: number; end: number; expression: string }>,\n    source: VariableSource,\n    metadata?: VariableMetadata\n  ): InterpolatedTextVariable {\n    return {\n      type: 'interpolated-text',\n      name,\n      value,\n      interpolationPoints,\n      source,\n      createdAt: Date.now(),\n      modifiedAt: Date.now(),\n      metadata\n    };\n  }\n\n  /**\n   * Create a TemplateVariable\n   */\n  static createTemplate(\n    name: string,\n    value: string | any[],\n    parameters: string[] | undefined,\n    templateSyntax: 'double-bracket' | 'backtick' | 'doubleColon' | 'tripleColon',\n    source: VariableSource,\n    metadata?: VariableMetadata\n  ): TemplateVariable {\n    return {\n      type: 'template',\n      name,\n      value,\n      parameters,\n      templateSyntax,\n      source,\n      createdAt: Date.now(),\n      modifiedAt: Date.now(),\n      metadata\n    };\n  }\n\n  // =========================================================================\n  // CONTENT VARIABLE FACTORIES\n  // =========================================================================\n\n  /**\n   * Create a FileContentVariable\n   */\n  static createFileContent(\n    name: string,\n    value: string,\n    filePath: string,\n    source: VariableSource,\n    encoding?: string,\n    metadata?: VariableMetadata\n  ): FileContentVariable {\n    return {\n      type: 'file-content',\n      name,\n      value,\n      filePath,\n      encoding,\n      source,\n      createdAt: Date.now(),\n      modifiedAt: Date.now(),\n      metadata\n    };\n  }\n\n  /**\n   * Create a SectionContentVariable\n   */\n  static createSectionContent(\n    name: string,\n    value: string,\n    filePath: string,\n    sectionName: string,\n    sectionSyntax: 'hash' | 'bracket',\n    source: VariableSource,\n    metadata?: VariableMetadata\n  ): SectionContentVariable {\n    return {\n      type: 'section-content',\n      name,\n      value,\n      filePath,\n      sectionName,\n      sectionSyntax,\n      source,\n      createdAt: Date.now(),\n      modifiedAt: Date.now(),\n      metadata\n    };\n  }\n\n  // =========================================================================\n  // STRUCTURED DATA FACTORIES\n  // =========================================================================\n\n  /**\n   * Create an ObjectVariable\n   */\n  static createObject(\n    name: string,\n    value: Record<string, any>,\n    isComplex: boolean,\n    source: VariableSource,\n    metadata?: VariableMetadata\n  ): ObjectVariable {\n    return {\n      type: 'object',\n      name,\n      value,\n      isComplex,\n      source,\n      createdAt: Date.now(),\n      modifiedAt: Date.now(),\n      metadata\n    };\n  }\n\n  /**\n   * Create an ArrayVariable\n   */\n  static createArray(\n    name: string,\n    value: any[],\n    isComplex: boolean,\n    source: VariableSource,\n    metadata?: VariableMetadata\n  ): ArrayVariable {\n    return {\n      type: 'array',\n      name,\n      value,\n      isComplex,\n      source,\n      createdAt: Date.now(),\n      modifiedAt: Date.now(),\n      metadata\n    };\n  }\n\n  // =========================================================================\n  // COMPUTED VARIABLE FACTORIES\n  // =========================================================================\n\n  /**\n   * Create a ComputedVariable\n   */\n  static createComputed(\n    name: string,\n    value: any,\n    language: 'js' | 'node' | 'python' | 'sh',\n    sourceCode: string,\n    source: VariableSource,\n    metadata?: VariableMetadata\n  ): ComputedVariable {\n    return {\n      type: 'computed',\n      name,\n      value,\n      language,\n      sourceCode,\n      source,\n      createdAt: Date.now(),\n      modifiedAt: Date.now(),\n      metadata\n    };\n  }\n\n  /**\n   * Create a CommandResultVariable\n   */\n  static createCommandResult(\n    name: string,\n    value: string,\n    command: string,\n    source: VariableSource,\n    exitCode?: number,\n    stderr?: string,\n    metadata?: VariableMetadata\n  ): CommandResultVariable {\n    return {\n      type: 'command-result',\n      name,\n      value,\n      command,\n      exitCode,\n      stderr,\n      source,\n      createdAt: Date.now(),\n      modifiedAt: Date.now(),\n      metadata\n    };\n  }\n\n  // =========================================================================\n  // SPECIAL VARIABLE FACTORIES\n  // =========================================================================\n\n  /**\n   * Create a PathVariable\n   */\n  static createPath(\n    name: string,\n    resolvedPath: string,\n    originalPath: string,\n    isURL: boolean,\n    isAbsolute: boolean,\n    source: VariableSource,\n    security?: { trust?: 'high' | 'medium' | 'low'; ttl?: number },\n    metadata?: VariableMetadata\n  ): PathVariable {\n    return {\n      type: 'path',\n      name,\n      value: {\n        resolvedPath,\n        originalPath,\n        isURL,\n        isAbsolute,\n        security\n      },\n      source,\n      createdAt: Date.now(),\n      modifiedAt: Date.now(),\n      metadata\n    };\n  }\n\n  /**\n   * Create an ImportedVariable\n   */\n  static createImported(\n    name: string,\n    value: any,\n    originalType: VariableTypeDiscriminator,\n    importPath: string,\n    isModule: boolean,\n    variableName: string,\n    source: VariableSource,\n    metadata?: VariableMetadata\n  ): ImportedVariable {\n    return {\n      type: 'imported',\n      name,\n      value,\n      originalType,\n      importSource: {\n        path: importPath,\n        isModule,\n        variableName\n      },\n      source,\n      createdAt: Date.now(),\n      modifiedAt: Date.now(),\n      metadata\n    };\n  }\n\n  /**\n   * Create an ExecutableVariable\n   */\n  static createExecutable(\n    name: string,\n    type: 'command' | 'code',\n    template: string,\n    paramNames: string[],\n    language: 'js' | 'node' | 'python' | 'sh' | 'bash' | undefined,\n    source: VariableSource,\n    metadata?: VariableMetadata\n  ): ExecutableVariable {\n    return {\n      type: 'executable',\n      name,\n      value: {\n        type,\n        template,\n        language\n      },\n      paramNames,\n      source,\n      createdAt: Date.now(),\n      modifiedAt: Date.now(),\n      metadata\n    };\n  }\n\n  /**\n   * Create a PipelineInputVariable\n   */\n  static createPipelineInput(\n    name: string,\n    value: PipelineInput,\n    format: 'json' | 'csv' | 'xml' | 'text',\n    rawText: string,\n    source: VariableSource,\n    pipelineStage?: number\n  ): PipelineInputVariable {\n    return {\n      type: 'pipeline-input',\n      name,\n      value,\n      format,\n      rawText,\n      source,\n      createdAt: Date.now(),\n      modifiedAt: Date.now(),\n      metadata: {\n        isPipelineInput: true,\n        pipelineStage\n      }\n    };\n  }\n\n  /**\n   * Create a PrimitiveVariable\n   */\n  static createPrimitive(\n    name: string,\n    value: number | boolean | null,\n    source: VariableSource,\n    metadata?: VariableMetadata\n  ): PrimitiveVariable {\n    return {\n      type: 'primitive',\n      name,\n      value,\n      primitiveType: value === null ? 'null' : typeof value as 'number' | 'boolean',\n      source,\n      createdAt: Date.now(),\n      modifiedAt: Date.now(),\n      metadata\n    };\n  }\n\n  /**\n   * Create a WhenExpressionVariable\n   */\n  static createWhenExpression(\n    name: string,\n    definition: any, // WhenExpressionNode - using any to avoid circular dependency\n    source: VariableSource,\n    metadata?: VariableMetadata\n  ): WhenExpressionVariable {\n    const fullMetadata: VariableMetadata & WhenExpressionVariable['metadata'] = {\n      ...metadata,\n      isEvaluated: false,\n      conditionCount: definition.conditions?.length || 0,\n      hasParameters: false,\n      parameterNames: []\n    };\n\n    return {\n      type: 'when-expression',\n      name,\n      value: null, // Will be populated on first evaluation\n      definition,\n      source,\n      createdAt: Date.now(),\n      modifiedAt: Date.now(),\n      metadata: fullMetadata\n    };\n  }\n\n  // =========================================================================\n  // CONVENIENCE FACTORY METHODS\n  // =========================================================================\n\n  /**\n   * Create a variable with auto-detected type based on value\n   */\n  static createAutoTyped(\n    name: string,\n    value: any,\n    source: VariableSource,\n    metadata?: VariableMetadata\n  ): SimpleTextVariable | ObjectVariable | ArrayVariable | PrimitiveVariable {\n    // Auto-detect type based on value\n    if (typeof value === 'string') {\n      return this.createSimpleText(name, value, source, metadata);\n    } else if (typeof value === 'number' || typeof value === 'boolean' || value === null) {\n      return this.createPrimitive(name, value, source, metadata);\n    } else if (Array.isArray(value)) {\n      return this.createArray(name, value, false, source, metadata);\n    } else if (typeof value === 'object' && value !== null) {\n      return this.createObject(name, value, false, source, metadata);\n    } else {\n      // Fallback to simple text with string conversion\n      return this.createSimpleText(name, String(value), source, metadata);\n    }\n  }\n\n  /**\n   * Create a template variable with auto-detected syntax\n   */\n  static createTemplateAutoSyntax(\n    name: string,\n    value: string,\n    parameters?: string[],\n    source?: VariableSource,\n    metadata?: VariableMetadata\n  ): TemplateVariable {\n    // Detect template syntax from content\n    const templateSyntax = value.includes('{{') && value.includes('}}') \n      ? 'double-bracket' \n      : 'backtick';\n    \n    const finalSource = source || {\n      directive: 'var' as const,\n      syntax: 'template' as const,\n      wrapperType: templateSyntax === 'double-bracket' ? undefined : 'backtick',\n      hasInterpolation: true,\n      isMultiLine: value.includes('\\n')\n    };\n\n    return this.createTemplate(name, value, parameters, templateSyntax, finalSource, metadata);\n  }\n\n  /**\n   * Create an object variable with complexity detection\n   */\n  static createObjectWithComplexityDetection(\n    name: string,\n    value: Record<string, any>,\n    source: VariableSource,\n    metadata?: VariableMetadata\n  ): ObjectVariable {\n    // Simple heuristic for complexity detection\n    const isComplex = this.detectComplexity(value);\n    return this.createObject(name, value, isComplex, source, metadata);\n  }\n\n  /**\n   * Create an array variable with complexity detection\n   */\n  static createArrayWithComplexityDetection(\n    name: string,\n    value: any[],\n    source: VariableSource,\n    metadata?: VariableMetadata\n  ): ArrayVariable {\n    // Simple heuristic for complexity detection\n    const isComplex = value.some(item => \n      typeof item === 'object' && item !== null && this.detectComplexity(item)\n    );\n    return this.createArray(name, value, isComplex, source, metadata);\n  }\n\n  // =========================================================================\n  // HELPER METHODS\n  // =========================================================================\n\n  /**\n   * Simple complexity detection heuristic\n   */\n  private static detectComplexity(value: any): boolean {\n    if (typeof value !== 'object' || value === null) {\n      return false;\n    }\n\n    // Check for nested objects or arrays\n    for (const key in value) {\n      const item = value[key];\n      if (typeof item === 'object' && item !== null) {\n        return true;\n      }\n      // Check for strings that might contain directives\n      if (typeof item === 'string' && (item.includes('/') || item.includes('@'))) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  /**\n   * Validate variable creation parameters\n   */\n  static validateCreationParams(\n    name: string,\n    value: any,\n    source: VariableSource\n  ): { valid: boolean; errors: string[] } {\n    const errors: string[] = [];\n\n    if (!name || typeof name !== 'string') {\n      errors.push('Variable name must be a non-empty string');\n    }\n\n    if (name && !name.match(/^[a-zA-Z_][a-zA-Z0-9_]*$/)) {\n      errors.push('Variable name must be a valid identifier');\n    }\n\n    if (!source || typeof source !== 'object') {\n      errors.push('Variable source must be provided');\n    }\n\n    if (source && !source.directive) {\n      errors.push('Variable source must have a directive');\n    }\n\n    return {\n      valid: errors.length === 0,\n      errors\n    };\n  }\n\n  /**\n   * Clone a variable with updated metadata\n   */\n  static cloneWithMetadata<T extends import('./VariableTypes').Variable = import('./VariableTypes').Variable>(\n    variable: T,\n    newMetadata: VariableMetadata\n  ): T {\n    return {\n      ...variable,\n      metadata: { ...variable.metadata, ...newMetadata },\n      modifiedAt: Date.now()\n    } as T;\n  }\n\n  /**\n   * Update variable value while preserving type safety\n   */\n  static updateValue<T extends import('./VariableTypes').Variable = import('./VariableTypes').Variable>(\n    variable: T,\n    newValue: any\n  ): T {\n    return {\n      ...variable,\n      value: newValue,\n      modifiedAt: Date.now()\n    } as T;\n  }\n}"]}