{"version":3,"file":"shared-deps.mjs","names":[],"sources":["../../src/build/shared-deps.ts"],"sourcesContent":["import { existsSync, readFileSync } from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nconst require = createRequire(import.meta.url);\n\nlet pkg: typeof import(\"../../package.json\");\n\ntry {\n  pkg = JSON.parse(readFileSync(join(__dirname, \"../../package.json\"), \"utf-8\"));\n} catch {\n  pkg = require(\"every-plugin/package.json\");\n}\n\nexport interface SharedDependencyConfig {\n  version: string;\n  requiredVersion: string | false;\n  singleton: boolean;\n  strictVersion: boolean;\n  eager: boolean;\n  shareScope: string;\n}\n\nexport type SharedDependencies = Record<string, SharedDependencyConfig>;\n\nconst DEFAULT_SHARE_CONFIG: Omit<SharedDependencyConfig, \"version\"> = {\n  requiredVersion: false,\n  singleton: true,\n  strictVersion: false,\n  eager: false,\n  shareScope: \"default\",\n};\n\nfunction extractExactVersion(input: string): string {\n  const match = input.match(/\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?/);\n  return match ? match[0] : input.replace(/^[\\^~>=<\\s]+/, \"\");\n}\n\nfunction getInstalledPackageVersion(packageName: string, fallbackVersion: string): string {\n  try {\n    let currentDir = dirname(require.resolve(packageName));\n    for (let i = 0; i < 5; i += 1) {\n      const packageJsonPath = join(currentDir, \"package.json\");\n      if (existsSync(packageJsonPath)) {\n        return (JSON.parse(readFileSync(packageJsonPath, \"utf-8\")) as { version: string }).version;\n      }\n      currentDir = dirname(currentDir);\n    }\n\n    throw new Error(`Could not resolve installed version for ${packageName}`);\n  } catch {\n    return extractExactVersion(fallbackVersion);\n  }\n}\n\nexport const pluginSharedDependencies = {\n  \"every-plugin\": { version: pkg.version, ...DEFAULT_SHARE_CONFIG },\n  effect: {\n    version: getInstalledPackageVersion(\"effect\", pkg.peerDependencies.effect),\n    ...DEFAULT_SHARE_CONFIG,\n  },\n  zod: {\n    version: getInstalledPackageVersion(\"zod\", pkg.peerDependencies.zod),\n    ...DEFAULT_SHARE_CONFIG,\n  },\n  \"@orpc/contract\": {\n    version: getInstalledPackageVersion(\"@orpc/contract\", pkg.peerDependencies[\"@orpc/contract\"]),\n    ...DEFAULT_SHARE_CONFIG,\n  },\n  \"@orpc/client\": {\n    version: getInstalledPackageVersion(\"@orpc/client\", pkg.peerDependencies[\"@orpc/client\"]),\n    ...DEFAULT_SHARE_CONFIG,\n  },\n  \"@orpc/server\": {\n    version: getInstalledPackageVersion(\"@orpc/server\", pkg.peerDependencies[\"@orpc/server\"]),\n    ...DEFAULT_SHARE_CONFIG,\n  },\n} satisfies SharedDependencies;\n\nexport type PluginSharedDependencyName = keyof typeof pluginSharedDependencies;\n\nexport function getPluginSharedDependencies(): SharedDependencies {\n  return pluginSharedDependencies;\n}\n\nexport function getPluginSharedDependenciesVersionRange(): Record<string, string> {\n  return Object.fromEntries(\n    Object.entries(getPluginSharedDependencies()).map(([name, config]) => [\n      name,\n      getMajorMinorVersion(config.version),\n    ]),\n  );\n}\n\nexport function getMajorMinorVersion(version: string): string {\n  const clean = version.replace(/^[\\^~>=<]+/, \"\");\n  const match = clean.match(/^(\\d+)\\.(\\d+)/);\n  if (!match) return \"^0.0.0\";\n  return `^${match[1]}.${match[2]}.0`;\n}\n"],"mappings":";;;;;;AAKA,MAAM,YAAY,QAAQ,cAAc,OAAO,KAAK,GAAG,CAAC;AACxD,MAAM,UAAU,cAAc,OAAO,KAAK,GAAG;AAE7C,IAAI;AAEJ,IAAI;CACF,MAAM,KAAK,MAAM,aAAa,KAAK,WAAW,oBAAoB,GAAG,OAAO,CAAC;AAC/E,QAAQ;CACN,MAAM,QAAQ,2BAA2B;AAC3C;AAaA,MAAM,uBAAgE;CACpE,iBAAiB;CACjB,WAAW;CACX,eAAe;CACf,OAAO;CACP,YAAY;AACd;AAEA,SAAS,oBAAoB,OAAuB;CAClD,MAAM,QAAQ,MAAM,MAAM,mCAAmC;CAC7D,OAAO,QAAQ,MAAM,KAAK,MAAM,QAAQ,gBAAgB,EAAE;AAC5D;AAEA,SAAS,2BAA2B,aAAqB,iBAAiC;CACxF,IAAI;EACF,IAAI,aAAa,QAAQ,QAAQ,QAAQ,WAAW,CAAC;EACrD,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG;GAC7B,MAAM,kBAAkB,KAAK,YAAY,cAAc;GACvD,IAAI,WAAW,eAAe,GAC5B,OAAQ,KAAK,MAAM,aAAa,iBAAiB,OAAO,CAAC,CAAC,CAAyB;GAErF,aAAa,QAAQ,UAAU;EACjC;EAEA,MAAM,IAAI,MAAM,2CAA2C,aAAa;CAC1E,QAAQ;EACN,OAAO,oBAAoB,eAAe;CAC5C;AACF;AAEA,MAAa,2BAA2B;CACtC,gBAAgB;EAAE,SAAS,IAAI;EAAS,GAAG;CAAqB;CAChE,QAAQ;EACN,SAAS,2BAA2B,UAAU,IAAI,iBAAiB,MAAM;EACzE,GAAG;CACL;CACA,KAAK;EACH,SAAS,2BAA2B,OAAO,IAAI,iBAAiB,GAAG;EACnE,GAAG;CACL;CACA,kBAAkB;EAChB,SAAS,2BAA2B,kBAAkB,IAAI,iBAAiB,iBAAiB;EAC5F,GAAG;CACL;CACA,gBAAgB;EACd,SAAS,2BAA2B,gBAAgB,IAAI,iBAAiB,eAAe;EACxF,GAAG;CACL;CACA,gBAAgB;EACd,SAAS,2BAA2B,gBAAgB,IAAI,iBAAiB,eAAe;EACxF,GAAG;CACL;AACF;AAIA,SAAgB,8BAAkD;CAChE,OAAO;AACT;AAEA,SAAgB,0CAAkE;CAChF,OAAO,OAAO,YACZ,OAAO,QAAQ,4BAA4B,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,YAAY,CACpE,MACA,qBAAqB,OAAO,OAAO,CACrC,CAAC,CACH;AACF;AAEA,SAAgB,qBAAqB,SAAyB;CAE5D,MAAM,QADQ,QAAQ,QAAQ,cAAc,EAC1B,CAAC,CAAC,MAAM,eAAe;CACzC,IAAI,CAAC,OAAO,OAAO;CACnB,OAAO,IAAI,MAAM,GAAG,GAAG,MAAM,GAAG;AAClC"}