{"version":3,"file":"index.cjs","sources":["../src/index.js"],"sourcesContent":["import * as babelCore from \"@babel/core\";\nimport * as babelParser from \"@babel/parser\";\nimport * as babelTypes from \"@babel/types\";\nimport transformTypescript from \"@babel/plugin-transform-typescript\";\nimport transformJsxHtmlTemplate from \"@litsx/babel-plugin-transform-jsx-html-template\";\nimport { componentNameToTagName, decodeVirtualAttributeName } from \"@litsx/authoring\";\nimport {\n  createLitsxPresetPlugins,\n  detectLitsxSourceFeatures,\n} from \"@litsx/babel-preset-litsx\";\nimport { createReactCompatPresetPlugins } from \"@litsx/babel-preset-react-compat\";\nimport { ensureTypescriptModule } from \"@litsx/babel-preset-litsx/internal/transform-litsx-properties\";\nimport { parseWithLitsxVirtualization } from \"@litsx/authoring/internal/parser\";\nimport {\n  createProjectTsSession,\n  createStandaloneTsSession,\n  normalizeFilePath,\n} from \"@litsx/typescript-session\";\nimport { SourceMapConsumer } from \"source-map-js\";\nimport {\n  patchLitAttributeSourcemap,\n} from \"@litsx/babel-plugin-transform-jsx-html-template\";\nimport {\n  ensureLitsxParserPlugins,\n  prepareLitsxAuthoredInput,\n} from \"./authored-input.js\";\nimport { resolveLitsxRequireJsx } from \"./filename-syntax.js\";\nimport { mergeLitsxWarnings } from \"./warnings.js\";\nexport {\n  ensureLitsxParserPlugins,\n  prepareLitsxAuthoredInput,\n} from \"./authored-input.js\";\n\nconst { transformFromAstAsync, transformFromAstSync } = babelCore;\nconst PROFILE_ENABLED = process.env.LITSX_PROFILE === \"1\";\nconst PRESET_PLUGIN_CACHE = new WeakMap();\nconst DEFAULT_PRESET_PLUGIN_CACHE = new Map();\n\nexport function createStandaloneTsCompilerOptions(ts) {\n  return {\n    target: ts.ScriptTarget.ESNext,\n    module: ts.ModuleKind.ESNext,\n    moduleResolution: ts.ModuleResolutionKind.Bundler,\n    jsx: ts.JsxEmit.Preserve,\n    allowJs: true,\n    checkJs: false,\n    skipLibCheck: true,\n    strict: false,\n    esModuleInterop: true,\n    allowSyntheticDefaultImports: true,\n    types: [],\n  };\n}\n\nexport function getSourceFeaturesCacheKey(sourceFeatures) {\n  if (!sourceFeatures) {\n    return \"all\";\n  }\n\n  return [\n    sourceFeatures.hooks ? \"1\" : \"0\",\n    sourceFeatures.domRefs ? \"1\" : \"0\",\n    sourceFeatures.scopedElements ? \"1\" : \"0\",\n  ].join(\"\");\n}\n\nexport function profilePhase(name, callback, profile = null) {\n  if (!PROFILE_ENABLED) {\n    return callback();\n  }\n\n  const start = performance.now();\n  try {\n    return callback();\n  } finally {\n    const durationMs = performance.now() - start;\n    if (profile) {\n      profile.push({ name, durationMs });\n    }\n    if (PROFILE_ENABLED) {\n      globalThis.__litsxProfileEvents ??= [];\n      globalThis.__litsxProfileEvents.push({\n        namespace: \"compiler\",\n        name,\n        durationMs,\n      });\n    }\n  }\n}\n\nexport function normalizePluginList(plugins) {\n  return Array.isArray(plugins) ? plugins : [];\n}\n\nexport function shouldStripTypescriptSyntax(filename = \"\") {\n  return /\\.(?:[cm]?ts|[cm]?tsx)$/.test(String(filename).split(/[?#]/, 1)[0]);\n}\n\nexport function reparseTemplateLoweringAst(source, options = {}) {\n  return parseWithLitsxVirtualization(babelParser.parse, source, {\n    sourceType: \"module\",\n    plugins: ensureLitsxParserPlugins(\n      options.filename,\n      options.parserPlugins,\n      {\n        requireJsx: resolveLitsxRequireJsx(\n          options.filename,\n          options.requireJsx,\n        ),\n      },\n    ),\n    sourceFileName: options.filename,\n    litsxSourceMap: false,\n  });\n}\n\nexport function collectAuthoredTemplateAttributeMappings(\n  node,\n  mappings = [],\n  options = {},\n) {\n  if (!node || typeof node !== \"object\") {\n    return mappings;\n  }\n\n  if (node.type === \"JSXElement\") {\n    for (const attr of node.openingElement?.attributes || []) {\n      if (attr?.type !== \"JSXAttribute\") {\n        continue;\n      }\n\n      const rawName = decodeVirtualAttributeName(attr.name.name) ?? attr.name.name;\n      const prefix = rawName[0];\n      const generatedName =\n        prefix === \".\" || prefix === \"@\" || prefix === \"?\"\n          ? `${prefix}${rawName.slice(1)}`\n          : rawName;\n      const sourceLocation = attr.name?.loc ?? attr.loc ?? null;\n\n      mappings.push({\n        generatedNeedle: attr.value\n          ? ` ${generatedName}=`\n          : ` ${generatedName}`,\n        generatedOffset: 1,\n        generatedScope: \"html-template\",\n        source: sourceLocation?.filename ?? options.sourceFileName ?? null,\n        line: sourceLocation?.start?.line ?? null,\n        column: sourceLocation?.start?.column ?? null,\n      });\n    }\n  }\n\n  const visitorKeys = babelTypes.VISITOR_KEYS?.[node.type];\n  if (!visitorKeys) {\n    return mappings;\n  }\n\n  for (const key of visitorKeys) {\n    const value = node[key];\n    if (Array.isArray(value)) {\n      for (const child of value) {\n        collectAuthoredTemplateAttributeMappings(child, mappings, options);\n      }\n      continue;\n    }\n\n    collectAuthoredTemplateAttributeMappings(value, mappings, options);\n  }\n\n  return mappings;\n}\n\nexport function jsxTagName(name) {\n  if (name?.type !== \"JSXIdentifier\") {\n    return null;\n  }\n\n  return /^[A-Z]/.test(name.name)\n    ? componentNameToTagName(name.name)\n    : name.name;\n}\n\nexport function isChildrenExpression(node) {\n  return node?.type === \"MemberExpression\" &&\n    node.computed !== true &&\n    node.property?.type === \"Identifier\" &&\n    node.property.name === \"children\";\n}\n\nexport function componentNameFromFunctionNode(node) {\n  if (\n    node?.type === \"FunctionDeclaration\" &&\n    node.id?.type === \"Identifier\" &&\n    /^[A-Z]/.test(node.id.name)\n  ) {\n    return node.id.name;\n  }\n\n  return null;\n}\n\nexport function componentNameFromVariableNode(node) {\n  if (\n    node?.type === \"VariableDeclarator\" &&\n    node.id?.type === \"Identifier\" &&\n    (node.init?.type === \"ArrowFunctionExpression\" || node.init?.type === \"FunctionExpression\") &&\n    /^[A-Z]/.test(node.id.name)\n  ) {\n    return node.id.name;\n  }\n\n  return null;\n}\n\n// The component lowering pass creates a class around the authored function.\n// Preserve direct anchors for the user-authored render boundary and template\n// nodes, because generated class members intentionally have no source location.\nexport function collectAuthoredRenderSourcemapMappings(\n  node,\n  mappings = [],\n  options = {},\n  context = { componentRender: false },\n) {\n  if (!node || typeof node !== \"object\") {\n    return mappings;\n  }\n\n  if (node.type === \"ReturnStatement\" && node.argument?.type === \"JSXElement\") {\n    const returnLocation = node.loc;\n    mappings.push({\n      generatedNeedle: \"return html`\",\n      generatedScope: \"render-return\",\n      source: returnLocation?.filename ?? options.sourceFileName ?? null,\n      line: returnLocation?.start?.line ?? null,\n      column: returnLocation?.start?.column ?? null,\n    });\n    if (context.componentRender) {\n      mappings.push({\n        generatedNeedle: \"render()\",\n        generatedScope: \"render\",\n        source: returnLocation?.filename ?? options.sourceFileName ?? null,\n        line: returnLocation?.start?.line ?? null,\n        column: returnLocation?.start?.column ?? null,\n      });\n    }\n  }\n\n  const componentName =\n    componentNameFromFunctionNode(node) ?? componentNameFromVariableNode(node);\n  if (componentName) {\n    const componentLocation = node.loc;\n    mappings.push({\n      generatedNeedle: `class ${componentName}`,\n      generatedScope: \"class\",\n      componentName,\n      source: componentLocation?.filename ?? options.sourceFileName ?? null,\n      line: componentLocation?.start?.line ?? null,\n      column: componentLocation?.start?.column ?? null,\n    });\n  }\n\n  if (node.type === \"JSXElement\") {\n    const tagName = jsxTagName(node.openingElement?.name);\n    const tagLocation = node.openingElement?.name?.loc ?? node.openingElement?.loc;\n    if (tagName) {\n      mappings.push({\n        generatedNeedle: `<${tagName}`,\n        generatedScope: \"html-template\",\n        source: tagLocation?.filename ?? options.sourceFileName ?? null,\n        line: tagLocation?.start?.line ?? null,\n        column: tagLocation?.start?.column ?? null,\n      });\n    }\n  }\n\n  if (node.type === \"JSXExpressionContainer\" && isChildrenExpression(node.expression)) {\n    const expressionLocation = node.expression.loc ?? node.loc;\n    mappings.push({\n      generatedNeedle: \"<slot\",\n      generatedScope: \"html-template\",\n      source: expressionLocation?.filename ?? options.sourceFileName ?? null,\n      line: expressionLocation?.start?.line ?? null,\n      column: expressionLocation?.start?.column ?? null,\n    });\n  }\n\n  const visitorKeys = babelTypes.VISITOR_KEYS?.[node.type];\n  if (!visitorKeys) {\n    return mappings;\n  }\n\n  const nextContext = babelTypes.isFunction(node)\n    ? { componentRender: context.componentFunctionRoot === true || componentName !== null }\n    : context;\n\n  for (const key of visitorKeys) {\n    const value = node[key];\n    const childContext =\n      componentNameFromVariableNode(node) !== null && key === \"init\"\n        ? { componentRender: true, componentFunctionRoot: true }\n        : nextContext;\n    if (Array.isArray(value)) {\n      for (const child of value) {\n        collectAuthoredRenderSourcemapMappings(child, mappings, options, childContext);\n      }\n      continue;\n    }\n\n    collectAuthoredRenderSourcemapMappings(value, mappings, options, childContext);\n  }\n\n  return mappings;\n}\n\nexport function remapTemplateAttributeMappings(mappings = [], inputSourceMap = null) {\n  if (!Array.isArray(mappings) || mappings.length === 0 || !inputSourceMap) {\n    return mappings;\n  }\n\n  const consumer = new SourceMapConsumer(inputSourceMap);\n\n  try {\n    return mappings.map((mapping) => {\n      if (!mapping?.source || mapping.line == null || mapping.column == null) {\n        return mapping;\n      }\n\n      const original = consumer.originalPositionFor({\n        line: mapping.line,\n        column: mapping.column,\n      });\n\n      if (original.source == null || original.line == null || original.column == null) {\n        return mapping;\n      }\n\n      return {\n        ...mapping,\n        source: original.source,\n        line: original.line,\n        column: original.column,\n      };\n    });\n  } finally {\n    consumer.destroy?.();\n  }\n}\n\nexport function mergeTemplateLoweringMetadata(\n  firstPassMetadata = {},\n  secondPassMetadata = {},\n  firstPassMap = null,\n  authoredTemplateAttributeMappings = [],\n) {\n  const remappedTemplateAttributeMappings = remapTemplateAttributeMappings(\n    secondPassMetadata.litsxTemplateAttributeMappings || [],\n    firstPassMap,\n  );\n  const templateAttributeMappings = authoredTemplateAttributeMappings.length > 0\n    ? authoredTemplateAttributeMappings.map((mapping, index) => {\n        // The first pass can rename an authored JSX attribute (`on:click` ->\n        // `@click`, or react-compat's `onClick` -> `@click`) while retaining its\n        // position in traversal order. Babel's\n        // intermediate map points generated attribute names at the preceding\n        // token in some JSX shapes, so location matching is not reliable here.\n        const generated = remappedTemplateAttributeMappings[index];\n        return generated\n          ? {\n              ...mapping,\n              generatedNeedle: generated.generatedNeedle,\n              generatedOffset: generated.generatedOffset,\n            }\n          : mapping;\n      })\n    : remappedTemplateAttributeMappings;\n\n  return {\n    ...firstPassMetadata,\n    ...secondPassMetadata,\n    ...(templateAttributeMappings.length > 0\n      ? { litsxTemplateAttributeMappings: templateAttributeMappings }\n      : {}),\n  };\n}\n\nfunction getStandaloneTsSessionKey(filename = \"\", ts = ensureTypescriptModule()) {\n  const normalizedFilename = normalizeFilePath(filename);\n  const directory = normalizedFilename ? normalizedFilename.slice(0, normalizedFilename.lastIndexOf(\"/\")) || \"/\" : \"/\";\n  return JSON.stringify({\n    directory,\n    compilerOptions: createStandaloneTsCompilerOptions(ts),\n  });\n}\n\nfunction getMemoizedPresetPlugins(options, sourceFeatures = null, session = null) {\n  const reactCompatOptions = options?.reactCompat === true\n    ? {}\n    : options?.reactCompat && typeof options.reactCompat === \"object\"\n      ? options.reactCompat\n      : null;\n  const featureKey = reactCompatOptions == null\n    ? getSourceFeaturesCacheKey(sourceFeatures)\n    : \"react-compat\";\n  const createPlugins = () => {\n    if (reactCompatOptions == null) {\n      return createLitsxPresetPlugins(options || {}, sourceFeatures);\n    }\n    const { reactCompat: _reactCompat, ...baseOptions } = options || {};\n    return createReactCompatPresetPlugins({\n      ...baseOptions,\n      ...reactCompatOptions,\n    });\n  };\n  if (session) {\n    const cache = session.presetPluginsByOptions;\n    const optionsKey = options && typeof options === \"object\" ? options : null;\n\n    if (!optionsKey) {\n      if (!cache.default.has(featureKey)) {\n        cache.default.set(featureKey, createPlugins());\n      }\n      return cache.default.get(featureKey);\n    }\n\n    let cachedPluginsByFeature = cache.byOptions.get(optionsKey);\n    if (!cachedPluginsByFeature) {\n      cachedPluginsByFeature = new Map();\n      cache.byOptions.set(optionsKey, cachedPluginsByFeature);\n    }\n\n    const cachedPlugins = cachedPluginsByFeature.get(featureKey);\n    if (cachedPlugins) {\n      return cachedPlugins;\n    }\n\n    const plugins = createPlugins();\n    cachedPluginsByFeature.set(featureKey, plugins);\n    return plugins;\n  }\n\n  if (!options || typeof options !== \"object\") {\n    if (!DEFAULT_PRESET_PLUGIN_CACHE.has(featureKey)) {\n      DEFAULT_PRESET_PLUGIN_CACHE.set(\n        featureKey,\n        createPlugins(),\n      );\n    }\n    return DEFAULT_PRESET_PLUGIN_CACHE.get(featureKey);\n  }\n\n  let cachedPluginsByFeature = PRESET_PLUGIN_CACHE.get(options);\n  if (!cachedPluginsByFeature) {\n    cachedPluginsByFeature = new Map();\n    PRESET_PLUGIN_CACHE.set(options, cachedPluginsByFeature);\n  }\n\n  const cachedPlugins = cachedPluginsByFeature.get(featureKey);\n  if (cachedPlugins) {\n    return cachedPlugins;\n  }\n\n  const plugins = createPlugins();\n  cachedPluginsByFeature.set(featureKey, plugins);\n  return plugins;\n}\n\nexport function getSessionFeatureCacheKey(source, options = {}) {\n  const requireJsx = resolveLitsxRequireJsx(\n    options.filename,\n    options.requireJsx,\n  );\n  return `${options.filename || \"\"}:${requireJsx ? \"jsx\" : \"no-jsx\"}:${source}`;\n}\n\nexport function createCompilerCaches() {\n  return {\n    sourceFeatures: new Map(),\n    authoredInput: new Map(),\n    importedModuleAnalyses: new Map(),\n    importedHookModuleAnalyses: new Map(),\n    resolvedImports: new Map(),\n    resolvedHookImports: new Map(),\n    presetPluginsByOptions: {\n      default: new Map(),\n      byOptions: new WeakMap(),\n    },\n  };\n}\n\nexport function normalizeFinalSourceMap(map, source, options = {}) {\n  if (!map || typeof map !== \"object\") {\n    return map ?? null;\n  }\n\n  const filename = typeof options.filename === \"string\" && options.filename.length > 0\n    ? options.filename\n    : null;\n\n  if (!filename || typeof source !== \"string\") {\n    return map;\n  }\n\n  const sources = Array.isArray(map.sources) ? [...map.sources] : [];\n  if (sources.length === 0) {\n    return map;\n  }\n\n  const sourcesContent = Array.isArray(map.sourcesContent)\n    ? [...map.sourcesContent]\n    : new Array(sources.length).fill(null);\n\n  let changed = false;\n  let matched = false;\n\n  for (let index = 0; index < sources.length; index += 1) {\n    if (sources[index] !== filename) {\n      continue;\n    }\n\n    matched = true;\n    if (sourcesContent[index] !== source) {\n      sourcesContent[index] = source;\n      changed = true;\n    }\n  }\n\n  if (!matched && sources.length === 1) {\n    matched = true;\n    if (sources[0] !== filename) {\n      sources[0] = filename;\n      changed = true;\n    }\n    if (sourcesContent[0] !== source) {\n      sourcesContent[0] = source;\n      changed = true;\n    }\n  }\n\n  if (!changed) {\n    return map;\n  }\n\n  return {\n    ...map,\n    sources,\n    sourcesContent,\n  };\n}\n\nfunction createStandaloneCompilerTsSession(options = {}) {\n  const typescriptModule = options.typescriptModule || ensureTypescriptModule();\n  return createStandaloneTsSession({\n    sessionKey: getStandaloneTsSessionKey(options.filename, typescriptModule),\n    typescript: typescriptModule,\n    compilerOptions: createStandaloneTsCompilerOptions(typescriptModule),\n  });\n}\n\nfunction createProjectCompilerTsSession(projectPath, typescriptModule = ensureTypescriptModule()) {\n  const configFile = typescriptModule.readConfigFile(projectPath, typescriptModule.sys.readFile);\n  if (configFile.error) {\n    throw new Error(typescriptModule.flattenDiagnosticMessageText(configFile.error.messageText, \"\\n\"));\n  }\n\n  const normalizedProjectPath = normalizeFilePath(projectPath);\n  const lastSlash = normalizedProjectPath.lastIndexOf(\"/\");\n  const basePath = lastSlash > 0 ? normalizedProjectPath.slice(0, lastSlash) : \".\";\n  const parsedCommandLine = typescriptModule.parseJsonConfigFileContent(\n    configFile.config,\n    typescriptModule.sys,\n    basePath,\n    undefined,\n    normalizedProjectPath,\n  );\n  const configErrors = (parsedCommandLine.errors || [])\n    .filter((diagnostic) => diagnostic.code !== 18003);\n  if (configErrors.length) {\n    throw new Error(configErrors\n      .map((diagnostic) => typescriptModule.flattenDiagnosticMessageText(diagnostic.messageText, \"\\n\"))\n      .join(\"\\n\"));\n  }\n\n  return createProjectTsSession({\n    sessionKey: `project:${normalizedProjectPath}`,\n    typescript: typescriptModule,\n    parsedCommandLine,\n  });\n}\n\nexport function createLitsxCompilationSession(sessionOptions = {}) {\n  const caches = createCompilerCaches();\n  const session = {\n    projectPath: sessionOptions.projectPath || null,\n    transformOptions: sessionOptions.transformOptions || {},\n    typescriptSession:\n      sessionOptions.projectPath\n        ? createProjectCompilerTsSession(\n            sessionOptions.projectPath,\n            sessionOptions.typescriptModule,\n          )\n        : createStandaloneCompilerTsSession({\n            filename: sessionOptions.transformOptions?.filename,\n            typescriptModule: sessionOptions.typescriptModule,\n          }),\n    presetPluginsByOptions: caches.presetPluginsByOptions,\n    sourceFeaturesCache: caches.sourceFeatures,\n    authoredInputCache: caches.authoredInput,\n    importedModuleAnalysisCache: caches.importedModuleAnalyses,\n    importedHookModuleAnalysisCache: caches.importedHookModuleAnalyses,\n    resolvedImportCache: caches.resolvedImports,\n    resolvedHookImportCache: caches.resolvedHookImports,\n    transform(source, options = {}) {\n      return transformLitsx(source, {\n        ...this.transformOptions,\n        ...options,\n        typescriptSession: this.typescriptSession,\n        __litsxCompilationSession: this,\n      });\n    },\n    transformSync(source, options = {}) {\n      return transformLitsxSync(source, {\n        ...this.transformOptions,\n        ...options,\n        typescriptSession: this.typescriptSession,\n        __litsxCompilationSession: this,\n      });\n    },\n    invalidate(files = null) {\n      if (!files || files.length === 0) {\n        this.sourceFeaturesCache.clear();\n        this.authoredInputCache.clear();\n        this.importedModuleAnalysisCache.clear();\n        this.importedHookModuleAnalysisCache.clear();\n        this.resolvedImportCache.clear();\n        this.resolvedHookImportCache.clear();\n        this.typescriptSession?.invalidate?.({ host: true });\n        return;\n      }\n\n      for (const file of files) {\n        const normalizedFile = normalizeFilePath(file);\n        for (const key of [...this.sourceFeaturesCache.keys()]) {\n          if (key.startsWith(`${normalizedFile}:`)) {\n            this.sourceFeaturesCache.delete(key);\n          }\n        }\n        for (const key of [...this.authoredInputCache.keys()]) {\n          if (key.startsWith(`${normalizedFile}:`)) {\n            this.authoredInputCache.delete(key);\n          }\n        }\n        this.importedModuleAnalysisCache.delete(normalizedFile);\n        this.importedHookModuleAnalysisCache.delete(normalizedFile);\n        for (const key of [...this.resolvedImportCache.keys()]) {\n          if (key.startsWith(`${normalizedFile}::`)) {\n            this.resolvedImportCache.delete(key);\n          }\n        }\n        for (const key of [...this.resolvedHookImportCache.keys()]) {\n          if (key.startsWith(`${normalizedFile}::`)) {\n            this.resolvedHookImportCache.delete(key);\n          }\n        }\n        if (/\\.[cm]?[jt]sx?$/.test(file)) {\n          this.typescriptSession?.invalidate?.();\n        }\n      }\n    },\n    dispose() {\n      this.invalidate();\n      this.typescriptSession?.clearOverlayFiles?.();\n      this.typescriptSession = null;\n    },\n  };\n  return session;\n}\n\nexport function createLitsxTransformConfig(source, options = {}) {\n  const profile = PROFILE_ENABLED ? [] : null;\n  const compilationSession = options.__litsxCompilationSession || null;\n  const memoizationOptions = options.__litsxMemoizeOptions || options;\n  const featureCacheKey = getSessionFeatureCacheKey(source, options);\n  const sourceFeatures = profilePhase(\n    \"feature-detection\",\n    () => {\n      if (compilationSession?.sourceFeaturesCache?.has(featureCacheKey)) {\n        return compilationSession.sourceFeaturesCache.get(featureCacheKey);\n      }\n      const detected = detectLitsxSourceFeatures(source, options);\n      compilationSession?.sourceFeaturesCache?.set(featureCacheKey, detected);\n      return detected;\n    },\n    profile,\n  );\n  const authoredInputCacheKey = featureCacheKey;\n  const { filename, inputAst, authoredWarnings, moduleAnalysis } = profilePhase(\n    \"authored-input\",\n    () => {\n      if (compilationSession?.authoredInputCache?.has(authoredInputCacheKey)) {\n        return compilationSession.authoredInputCache.get(authoredInputCacheKey);\n      }\n      const prepared = prepareLitsxAuthoredInput(\n        source,\n        options,\n        {\n          transformFromAstSync,\n        }\n      );\n      compilationSession?.authoredInputCache?.set(authoredInputCacheKey, prepared);\n      return prepared;\n    },\n    profile,\n  );\n  const shouldRunFinalTemplatePass = options.jsxTemplate !== false;\n  const outputPlugins = normalizePluginList(options.outputPlugins);\n  const presetOptions = shouldRunFinalTemplatePass\n    ? {\n        ...memoizationOptions,\n        jsxTemplate: false,\n      }\n    : memoizationOptions;\n  const presetPlugins = profilePhase(\n    \"preset-plugins\",\n    () => getMemoizedPresetPlugins(presetOptions, sourceFeatures, compilationSession),\n    profile,\n  );\n\n  const finalTemplatePlugins = shouldRunFinalTemplatePass\n    ? [\n        [transformJsxHtmlTemplate, {\n          ssr: options.ssr === true,\n          componentAttributeFallback: false,\n          componentRestProps: true,\n          importedComponentRestProps: options.reactCompat != null && options.reactCompat !== false,\n          ...(options.jsxTemplateOptions || {}),\n        }],\n        ...outputPlugins,\n        ...(shouldStripTypescriptSyntax(filename)\n          ? [[transformTypescript, {\n              isTSX: resolveLitsxRequireJsx(filename, options.requireJsx),\n              allowDeclareFields: true,\n            }]]\n          : []),\n      ]\n    : [];\n  const authoredTemplateAttributeMappings =\n    shouldRunFinalTemplatePass && options.sourceMaps === true\n      ? [\n          ...collectAuthoredTemplateAttributeMappings(inputAst.program, [], {\n            sourceFileName: filename,\n          }),\n          ...collectAuthoredRenderSourcemapMappings(inputAst.program, [], {\n            sourceFileName: filename,\n          }),\n        ]\n      : [];\n\n  return {\n    filename,\n    inputAst,\n    authoredWarnings,\n    moduleAnalysis,\n    profile,\n    shouldRunFinalTemplatePass,\n    finalTemplatePlugins,\n    authoredTemplateAttributeMappings,\n    babelOptions: {\n      filename,\n      sourceFileName: filename,\n      configFile: false,\n      babelrc: false,\n      sourceMaps: options.sourceMaps === true,\n      plugins: shouldRunFinalTemplatePass\n        ? [...presetPlugins]\n        : [\n            ...presetPlugins,\n            ...outputPlugins,\n            ...(shouldStripTypescriptSyntax(filename)\n              ? [[transformTypescript, {\n                  isTSX: resolveLitsxRequireJsx(filename, options.requireJsx),\n                  allowDeclareFields: true,\n                }]]\n              : []),\n          ],\n    },\n  };\n}\n\nfunction finalizeTransformResult(\n  result,\n  source,\n  options,\n  authoredWarnings = [],\n  moduleAnalysis = null,\n  profile = [],\n) {\n  if (!result) {\n    return {\n      code: \"\",\n      map: null,\n      metadata: {\n        ...(moduleAnalysis ? { litsxModuleAnalysis: moduleAnalysis } : {}),\n        ...(profile?.length > 0 ? { litsxProfile: profile } : {}),\n      },\n    };\n  }\n\n  const metadata = {\n    ...(result.metadata || {}),\n  };\n  if (moduleAnalysis) {\n    metadata.litsxModuleAnalysis = moduleAnalysis;\n  }\n  const mergedWarnings = mergeLitsxWarnings(\n    metadata.litsxWarnings || [],\n    authoredWarnings,\n    { filename: options.filename }\n  );\n  if (mergedWarnings.length > 0) {\n    metadata.litsxWarnings = mergedWarnings;\n  }\n  if (profile?.length > 0) {\n    metadata.litsxProfile = profile;\n  }\n  const templateAttributeMappings = metadata.litsxTemplateAttributeMappings || [];\n  const map =\n    options.sourceMaps === true\n      ? options.jsxTemplate === false\n        ? normalizeFinalSourceMap(result.map ?? null, source, options)\n        : templateAttributeMappings.length === 0\n          ? normalizeFinalSourceMap(result.map ?? null, source, options)\n          : profilePhase(\n            \"sourcemap-patching\",\n            () => patchLitAttributeSourcemap(\n              result.code || \"\",\n              result.map ?? null,\n              templateAttributeMappings,\n            ),\n            profile,\n          )\n      : null;\n  const normalizedMap =\n    options.sourceMaps === true\n      ? normalizeFinalSourceMap(map, source, options)\n      : null;\n\n  return {\n    code: result.code || \"\",\n    map: normalizedMap,\n    metadata,\n  };\n}\n\nexport async function transformLitsx(source, options = {}) {\n  if (!options.__litsxCompilationSession) {\n    const standaloneTsSession = createStandaloneCompilerTsSession({\n      filename: options.filename,\n    });\n    const nextOptions = {\n      ...options,\n      typescriptSession: standaloneTsSession,\n      __litsxMemoizeOptions: options,\n    };\n    const {\n      inputAst,\n      babelOptions,\n      shouldRunFinalTemplatePass,\n      finalTemplatePlugins,\n      authoredTemplateAttributeMappings,\n      authoredWarnings,\n      moduleAnalysis,\n      profile,\n    } = createLitsxTransformConfig(source, nextOptions);\n    const firstPassResult = await profilePhase(\n      \"babel-transform\",\n      () => transformFromAstAsync(inputAst, source, {\n        ...babelOptions,\n        ast: shouldRunFinalTemplatePass,\n        plugins: babelOptions.plugins,\n      }),\n      profile,\n    );\n    const result = shouldRunFinalTemplatePass\n      ? await profilePhase(\n          \"template-lowering\",\n          async () => {\n            const reparsedTemplateAst = reparseTemplateLoweringAst(\n              firstPassResult?.code ?? source,\n              nextOptions,\n            );\n            const secondPassResult = await transformFromAstAsync(\n              reparsedTemplateAst,\n              firstPassResult?.code ?? source,\n              {\n                filename: babelOptions.filename,\n                sourceFileName: babelOptions.sourceFileName,\n                configFile: false,\n                babelrc: false,\n                inputSourceMap:\n                  options.sourceMaps === true ? firstPassResult?.map ?? undefined : undefined,\n                sourceMaps: options.sourceMaps === true,\n                plugins: finalTemplatePlugins,\n              }\n            );\n\n            return {\n              ...secondPassResult,\n              metadata: mergeTemplateLoweringMetadata(\n                firstPassResult?.metadata || {},\n                secondPassResult?.metadata || {},\n                firstPassResult?.map ?? null,\n                authoredTemplateAttributeMappings,\n              ),\n            };\n          },\n          profile,\n        )\n      : firstPassResult;\n    return finalizeTransformResult(\n      result,\n      source,\n      nextOptions,\n      authoredWarnings,\n      moduleAnalysis,\n      profile,\n    );\n  }\n\n  const {\n    inputAst,\n    babelOptions,\n    shouldRunFinalTemplatePass,\n    finalTemplatePlugins,\n    authoredTemplateAttributeMappings,\n    authoredWarnings,\n    moduleAnalysis,\n    profile,\n  } = createLitsxTransformConfig(source, options);\n  const firstPassResult = await profilePhase(\n    \"babel-transform\",\n    () => transformFromAstAsync(inputAst, source, {\n      ...babelOptions,\n      ast: shouldRunFinalTemplatePass,\n      plugins: babelOptions.plugins,\n    }),\n    profile,\n  );\n  const result = shouldRunFinalTemplatePass\n    ? await profilePhase(\n        \"template-lowering\",\n        async () => {\n          const reparsedTemplateAst = reparseTemplateLoweringAst(\n            firstPassResult?.code ?? source,\n            options,\n          );\n          const secondPassResult = await transformFromAstAsync(\n            reparsedTemplateAst,\n            firstPassResult?.code ?? source,\n            {\n              filename: babelOptions.filename,\n              sourceFileName: babelOptions.sourceFileName,\n              configFile: false,\n              babelrc: false,\n              inputSourceMap:\n                options.sourceMaps === true ? firstPassResult?.map ?? undefined : undefined,\n              sourceMaps: options.sourceMaps === true,\n              plugins: finalTemplatePlugins,\n            }\n          );\n\n          return {\n            ...secondPassResult,\n            metadata: mergeTemplateLoweringMetadata(\n              firstPassResult?.metadata || {},\n              secondPassResult?.metadata || {},\n              firstPassResult?.map ?? null,\n              authoredTemplateAttributeMappings,\n            ),\n          };\n        },\n        profile,\n      )\n    : firstPassResult;\n  return finalizeTransformResult(\n    result,\n    source,\n    options,\n    authoredWarnings,\n    moduleAnalysis,\n    profile,\n  );\n}\n\nexport function transformLitsxSync(source, options = {}) {\n  if (!options.__litsxCompilationSession) {\n    const standaloneTsSession = createStandaloneCompilerTsSession({\n      filename: options.filename,\n    });\n    const nextOptions = {\n      ...options,\n      typescriptSession: standaloneTsSession,\n      __litsxMemoizeOptions: options,\n    };\n    const {\n      inputAst,\n      babelOptions,\n      shouldRunFinalTemplatePass,\n      finalTemplatePlugins,\n      authoredTemplateAttributeMappings,\n      authoredWarnings,\n      moduleAnalysis,\n      profile,\n    } = createLitsxTransformConfig(source, nextOptions);\n    const firstPassResult = profilePhase(\n      \"babel-transform\",\n      () => transformFromAstSync(inputAst, source, {\n        ...babelOptions,\n        ast: shouldRunFinalTemplatePass,\n      }),\n      profile,\n    );\n    const result = shouldRunFinalTemplatePass\n      ? profilePhase(\n          \"template-lowering\",\n          () => {\n            const reparsedTemplateAst = reparseTemplateLoweringAst(\n              firstPassResult?.code ?? source,\n              nextOptions,\n            );\n            const secondPassResult = transformFromAstSync(\n              reparsedTemplateAst,\n              firstPassResult?.code ?? source,\n              {\n                filename: babelOptions.filename,\n                sourceFileName: babelOptions.sourceFileName,\n                configFile: false,\n                babelrc: false,\n                inputSourceMap:\n                  options.sourceMaps === true ? firstPassResult?.map ?? undefined : undefined,\n                sourceMaps: options.sourceMaps === true,\n                plugins: finalTemplatePlugins,\n              }\n            );\n\n            return {\n              ...secondPassResult,\n              metadata: mergeTemplateLoweringMetadata(\n                firstPassResult?.metadata || {},\n                secondPassResult?.metadata || {},\n                firstPassResult?.map ?? null,\n                authoredTemplateAttributeMappings,\n              ),\n            };\n          },\n          profile,\n        )\n      : firstPassResult;\n    return finalizeTransformResult(\n      result,\n      source,\n      nextOptions,\n      authoredWarnings,\n      moduleAnalysis,\n      profile,\n    );\n  }\n\n  const {\n    inputAst,\n    babelOptions,\n    shouldRunFinalTemplatePass,\n    finalTemplatePlugins,\n    authoredTemplateAttributeMappings,\n    authoredWarnings,\n    moduleAnalysis,\n    profile,\n  } = createLitsxTransformConfig(source, options);\n  const firstPassResult = profilePhase(\n    \"babel-transform\",\n    () => transformFromAstSync(inputAst, source, {\n      ...babelOptions,\n      ast: shouldRunFinalTemplatePass,\n    }),\n    profile,\n  );\n  const result = shouldRunFinalTemplatePass\n    ? profilePhase(\n        \"template-lowering\",\n        () => {\n          const reparsedTemplateAst = reparseTemplateLoweringAst(\n            firstPassResult?.code ?? source,\n            options,\n          );\n          const secondPassResult = transformFromAstSync(\n            reparsedTemplateAst,\n            firstPassResult?.code ?? source,\n            {\n              filename: babelOptions.filename,\n              sourceFileName: babelOptions.sourceFileName,\n              configFile: false,\n              babelrc: false,\n              inputSourceMap:\n                options.sourceMaps === true ? firstPassResult?.map ?? undefined : undefined,\n              sourceMaps: options.sourceMaps === true,\n              plugins: finalTemplatePlugins,\n            }\n          );\n\n          return {\n            ...secondPassResult,\n            metadata: mergeTemplateLoweringMetadata(\n              firstPassResult?.metadata || {},\n              secondPassResult?.metadata || {},\n              firstPassResult?.map ?? null,\n              authoredTemplateAttributeMappings,\n            ),\n          };\n        },\n        profile,\n      )\n    : firstPassResult;\n  return finalizeTransformResult(\n    result,\n    source,\n    options,\n    authoredWarnings,\n    moduleAnalysis,\n    profile,\n  );\n}\n\nexport default transformLitsx;\n"],"names":["babelCore","parseWithLitsxVirtualization","babelParser","ensureLitsxParserPlugins","resolveLitsxRequireJsx","decodeVirtualAttributeName","babelTypes","componentNameToTagName","SourceMapConsumer","ensureTypescriptModule","normalizeFilePath","createLitsxPresetPlugins","createReactCompatPresetPlugins","createStandaloneTsSession","createProjectTsSession","detectLitsxSourceFeatures","prepareLitsxAuthoredInput","mergeLitsxWarnings","patchLitAttributeSourcemap"],"mappings":"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"}