{"version":3,"file":"index.mjs","names":["__onionScenesMeta: OnionScenesMeta","__onionMetasMeta: OnionMetasMeta"],"sources":["../src/onionScenesMeta.ts","../src/utils.ts"],"sourcesContent":["import type { IModule, OnionMetasMeta, OnionScenesMeta } from './interface.ts';\n\nlet __onionScenesMeta: OnionScenesMeta;\nexport function getOnionScenesMeta(modules: Record<string, IModule>) {\n  if (!__onionScenesMeta) {\n    __onionScenesMeta = _getOnionScenesMeta(modules);\n  }\n  return __onionScenesMeta;\n}\n\nlet __onionMetasMeta: OnionMetasMeta;\nexport function getOnionMetasMeta(modules: Record<string, IModule>) {\n  if (!__onionMetasMeta) {\n    __onionMetasMeta = _getOnionMetasMeta(modules);\n  }\n  return __onionMetasMeta;\n}\n\nexport function _getOnionScenesMeta(modules: Record<string, IModule>) {\n  const result = {};\n  for (const moduleName in modules) {\n    const module = modules[moduleName];\n    const onions = module.info.onionsMeta?.onions;\n    if (!onions) continue;\n    for (const sceneName in onions) {\n      result[sceneName] = { ...onions[sceneName], module };\n    }\n  }\n  return result;\n}\n\nexport function _getOnionMetasMeta(modules: Record<string, IModule>) {\n  const result = {};\n  for (const moduleName in modules) {\n    const module = modules[moduleName];\n    const metas = module.info.onionsMeta?.metas;\n    if (!metas) continue;\n    for (const sceneName in metas) {\n      result[sceneName] = { ...metas[sceneName], module };\n    }\n  }\n  return result;\n}\n","import type { IModuleInfo, TypeProjectEntityType, TypeProjectMode } from './interface.ts';\n\nexport function parseInfoFromPath(pathName?: string | null): IModuleInfo | undefined {\n  if (!pathName) return;\n  pathName = pathName.replace(/\\\\/g, '/');\n  const parts = pathName.split('/');\n  for (let i = parts.length - 1; i >= 0; i--) {\n    const part = parts[i];\n    if (!part.includes('-')) continue;\n    const info = parseInfo(part);\n    if (!info) continue;\n    return info;\n  }\n}\n\nconst PREFIX_A = '/api/';\nconst PREFIX_B = 'vona-module-';\nconst PREFIX_C = './vona-module-';\nconst PREFIX_D = './';\nconst PREFIX_E = '/';\n\n// aa-hello aa/hello\n//   first check / then -\nexport function parseInfo(moduleName: string | undefined): IModuleInfo | undefined {\n  if (!moduleName) return;\n  if (moduleName.includes('://')) return;\n  if (moduleName.charAt(0) === '/') moduleName = moduleName.substring(1);\n  let parts = moduleName.split('/').filter(item => item);\n  if (parts.length < 2) {\n    parts = moduleName.split('-').filter(item => item);\n    if (parts.length < 2) return;\n    if (parts.length === 4) parts = parts.slice(2);\n    if (parts.length === 5) parts = parts.slice(3);\n  }\n  const info = {\n    pid: parts[0],\n    name: parts[1],\n    relativeName: `${parts[0]}-${parts[1]}`,\n    url: `${parts[0]}/${parts[1]}`,\n    originalName: parts.join('-'),\n  } as IModuleInfo;\n  return info;\n}\n\nexport function parseInfoPro(\n  moduleName: string | undefined,\n  projectMode: TypeProjectMode,\n  projectEntityType: TypeProjectEntityType,\n): IModuleInfo | undefined {\n  const info = parseInfo(moduleName);\n  if (!info) return info;\n  if (['zova', 'vona'].includes(projectMode)) {\n    info.fullName = `${projectMode}-${projectEntityType}-${info.relativeName}`;\n  } else {\n    info.fullName = `cabloy-${projectEntityType}-${projectMode}-${info.relativeName}`;\n  }\n  return info;\n}\n\n// /api/aa/hello/home/index\n// vona-module-aa-hello\n// ./aa-hello/\n// ./vona-module-aa-hello/\nexport function parseName(moduleUrl): string | undefined {\n  const moduleName = _parseNameInner(moduleUrl);\n  if (!moduleName) return;\n  const [a, b] = moduleName.split('-');\n  if (!a || !b) return;\n  return moduleName;\n}\n\nfunction _parseNameInner(moduleUrl): string | undefined {\n  if (!moduleUrl) return;\n  if (moduleUrl.indexOf('/api/static/') === 0) {\n    moduleUrl = `/api/${moduleUrl.substring('/api/static/'.length)}`;\n  }\n  if (moduleUrl.indexOf(PREFIX_A) === 0) {\n    return _parseNameLikeUrl(moduleUrl, PREFIX_A);\n  } else if (moduleUrl.indexOf(PREFIX_B) === 0) {\n    return _parseName(moduleUrl, PREFIX_B);\n  } else if (moduleUrl.indexOf(PREFIX_C) === 0) {\n    return _parseName(moduleUrl, PREFIX_C);\n  } else if (moduleUrl.indexOf(PREFIX_D) === 0) {\n    return _parseName(moduleUrl, PREFIX_D);\n  } else if (moduleUrl.indexOf(PREFIX_E) === 0) {\n    return _parseNameLikeUrl(moduleUrl, PREFIX_E);\n  } else {\n    // test-home test/home\n    return _parseName(moduleUrl.replace('/', '-'), '');\n  }\n}\n\nfunction _parseNameLikeUrl(moduleUrl, prefix): string | undefined {\n  const posA = prefix.length;\n  const posB = moduleUrl.indexOf('/', posA) + 1;\n  if (posB === 0) return;\n  let posC = moduleUrl.indexOf('/', posB);\n  if (posC === -1) posC = moduleUrl.length;\n  return moduleUrl.substring(posA, posC).replace('/', '-');\n}\n\nfunction _parseName(moduleUrl, prefix) {\n  const posA = prefix.length;\n  let posB = moduleUrl.indexOf('/', posA);\n  if (posB === -1) posB = moduleUrl.indexOf(':', posA);\n  if (posB === -1) posB = moduleUrl.indexOf('.', posA);\n  if (posB === -1) posB = moduleUrl.length;\n  return moduleUrl.substring(posA, posB);\n}\n\nexport function relativeNameToCapitalize(moduleName: string, firstCharToUpperCase: boolean): string {\n  return moduleName\n    .split('-')\n    .map((name, index) => {\n      if (index === 0 && !firstCharToUpperCase) return name;\n      return name.charAt(0).toUpperCase() + name.substring(1);\n    })\n    .join('');\n}\n"],"mappings":"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"}