{"version":3,"file":"cloudflareWranglerConfig.js","names":[],"sources":["esm/vite/cloudflareWranglerConfig.js"],"sourcesContent":["import { existsSync, readFileSync } from \"node:fs\";\nimport { join, relative } from \"node:path\";\nimport FSExtra from \"fs-extra\";\nconst GENERATED_CLOUDFLARE_WRANGLER_RULES = [\n  { type: \"ESModule\", globs: [\"./server/**/*.js\"], fallthrough: true },\n  { type: \"ESModule\", globs: [\"./api/**/*.js\"], fallthrough: true },\n  { type: \"ESModule\", globs: [\"./middlewares/**/*.js\"], fallthrough: true },\n  { type: \"ESModule\", globs: [\"./assets/**/*.js\"], fallthrough: true }\n];\nfunction isPlainObject(value) {\n  return !!value && typeof value === \"object\" && !Array.isArray(value);\n}\nfunction mergeJsonObjects(base, overrides) {\n  const merged = { ...base };\n  for (const [key, value] of Object.entries(overrides)) {\n    const baseValue = merged[key];\n    if (isPlainObject(baseValue) && isPlainObject(value)) {\n      merged[key] = mergeJsonObjects(baseValue, value);\n    } else {\n      merged[key] = value;\n    }\n  }\n  return merged;\n}\nfunction dedupeJsonValues(values) {\n  const seen = /* @__PURE__ */ new Set();\n  return values.filter((value) => {\n    const key = JSON.stringify(value);\n    if (seen.has(key)) return false;\n    seen.add(key);\n    return true;\n  });\n}\nfunction mergeCloudflareCompatibilityFlags(flags) {\n  const userFlags = Array.isArray(flags) ? flags.filter((flag) => typeof flag === \"string\") : [];\n  return dedupeJsonValues([\"nodejs_compat\", ...userFlags]);\n}\nfunction mergeCloudflareRules(rules) {\n  const userRules = Array.isArray(rules) ? rules.filter((rule) => isPlainObject(rule)) : [];\n  return dedupeJsonValues([\n    ...GENERATED_CLOUDFLARE_WRANGLER_RULES,\n    ...userRules\n  ]);\n}\nfunction parseJsonc(text) {\n  let out = \"\";\n  let i = 0;\n  let inString = false;\n  let quote = \"\";\n  while (i < text.length) {\n    const ch = text[i];\n    const next = text[i + 1];\n    if (inString) {\n      if (ch === \"\\\\\") {\n        out += ch + (next ?? \"\");\n        i += 2;\n        continue;\n      }\n      if (ch === quote) inString = false;\n      out += ch;\n      i++;\n      continue;\n    }\n    if (ch === '\"' || ch === \"'\") {\n      inString = true;\n      quote = ch;\n      out += ch;\n      i++;\n      continue;\n    }\n    if (ch === \"/\" && next === \"/\") {\n      while (i < text.length && text[i] !== \"\\n\") i++;\n      continue;\n    }\n    if (ch === \"/\" && next === \"*\") {\n      i += 2;\n      while (i < text.length - 1 && !(text[i] === \"*\" && text[i + 1] === \"/\")) i++;\n      i += 2;\n      continue;\n    }\n    out += ch;\n    i++;\n  }\n  return JSON.parse(out.replace(/,(\\s*[}\\]])/g, \"$1\"));\n}\nconst WRANGLER_FILE_NAMES = [\"wrangler.jsonc\", \"wrangler.json\"];\nfunction wranglerCandidateRoots(root) {\n  return [.../* @__PURE__ */ new Set([root, process.cwd()])];\n}\nfunction hasUserWranglerConfig(root) {\n  for (const candidateRoot of wranglerCandidateRoots(root)) {\n    for (const fileName of WRANGLER_FILE_NAMES) {\n      if (existsSync(join(candidateRoot, fileName))) return true;\n    }\n  }\n  return false;\n}\nfunction parseUserWranglerFile(configPath) {\n  const contents = readFileSync(configPath, \"utf-8\");\n  let parsed;\n  try {\n    parsed = parseJsonc(contents);\n  } catch (err) {\n    throw new Error(\n      `Failed to parse ${relative(process.cwd(), configPath)}: ${err.message}`\n    );\n  }\n  if (!isPlainObject(parsed)) {\n    throw new Error(\n      `Expected ${relative(process.cwd(), configPath)} to contain a top-level JSON object`\n    );\n  }\n  return {\n    path: configPath,\n    config: parsed\n  };\n}\nfunction loadUserWranglerConfigSync(root) {\n  for (const candidateRoot of wranglerCandidateRoots(root)) {\n    for (const fileName of WRANGLER_FILE_NAMES) {\n      const configPath = join(candidateRoot, fileName);\n      if (!existsSync(configPath)) continue;\n      return parseUserWranglerFile(configPath);\n    }\n  }\n  return null;\n}\nasync function loadUserWranglerConfig(root) {\n  const candidateRoots = wranglerCandidateRoots(root);\n  for (const candidateRoot of candidateRoots) {\n    for (const fileName of WRANGLER_FILE_NAMES) {\n      const configPath = join(candidateRoot, fileName);\n      if (!await FSExtra.pathExists(configPath)) {\n        continue;\n      }\n      return parseUserWranglerFile(configPath);\n    }\n  }\n  return null;\n}\nfunction createCloudflareWranglerConfig(projectName, userConfig) {\n  const generatedConfig = {\n    name: projectName,\n    main: \"worker.js\",\n    compatibility_date: \"2024-12-05\",\n    compatibility_flags: [\"nodejs_compat\"],\n    find_additional_modules: true,\n    rules: GENERATED_CLOUDFLARE_WRANGLER_RULES,\n    assets: {\n      directory: \"client\",\n      binding: \"ASSETS\",\n      run_worker_first: true\n    }\n  };\n  const mergedConfig = userConfig ? mergeJsonObjects(generatedConfig, userConfig) : generatedConfig;\n  mergedConfig.main = \"worker.js\";\n  mergedConfig.find_additional_modules = true;\n  mergedConfig.compatibility_flags = mergeCloudflareCompatibilityFlags(\n    mergedConfig.compatibility_flags\n  );\n  mergedConfig.rules = mergeCloudflareRules(mergedConfig.rules);\n  mergedConfig.assets = {\n    ...isPlainObject(mergedConfig.assets) ? mergedConfig.assets : {},\n    directory: \"client\",\n    binding: \"ASSETS\",\n    run_worker_first: true\n  };\n  return mergedConfig;\n}\nfunction getCloudflareProjectNameSync(root) {\n  try {\n    const pkg = JSON.parse(readFileSync(join(root, \"package.json\"), \"utf-8\"));\n    if (pkg.name) {\n      return String(pkg.name).replace(/^@[^/]+\\//, \"\");\n    }\n  } catch {\n  }\n  return \"one-app\";\n}\nasync function getCloudflareProjectName(root) {\n  try {\n    const pkg = JSON.parse(await FSExtra.readFile(join(root, \"package.json\"), \"utf-8\"));\n    if (pkg.name) {\n      return pkg.name.replace(/^@[^/]+\\//, \"\");\n    }\n  } catch {\n  }\n  return \"one-app\";\n}\nfunction isExperimentalWorkerDevEnabled() {\n  return process.env.ONE_EXPERIMENTAL_WORKER_DEV === \"1\";\n}\nfunction shouldEnableWorkerdDev(deploy, root) {\n  if (!isExperimentalWorkerDevEnabled()) return false;\n  const target = typeof deploy === \"string\" ? deploy : deploy?.target;\n  if (target === \"cloudflare\") return true;\n  return hasUserWranglerConfig(root);\n}\nexport {\n  GENERATED_CLOUDFLARE_WRANGLER_RULES,\n  createCloudflareWranglerConfig,\n  getCloudflareProjectName,\n  getCloudflareProjectNameSync,\n  hasUserWranglerConfig,\n  isExperimentalWorkerDevEnabled,\n  isPlainObject,\n  loadUserWranglerConfig,\n  loadUserWranglerConfigSync,\n  shouldEnableWorkerdDev\n};\n//# sourceMappingURL=cloudflareWranglerConfig.js.map\n"],"mappings":"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"}