{"version":3,"sources":["../../src/hono/utils.ts","../../src/common/packageVersions.ts"],"sourcesContent":["import { Hono } from \"hono\";\nimport { isMiddleware } from \"hono/utils/handler\";\nimport type { ZodError } from \"zod\";\n\nimport { getPackageVersion } from \"../common/packageVersions.js\";\nimport { PathInfo, StartupData, ValidationError } from \"../common/types.js\";\n\nexport function getAppInfo(app: Hono, appVersion?: string): StartupData {\n  const versions: Array<[string, string]> = [];\n  if (process.versions.node) {\n    versions.push([\"nodejs\", process.versions.node]);\n  }\n  if (process.versions.bun) {\n    versions.push([\"bun\", process.versions.bun]);\n  }\n  const honoVersion = getPackageVersion(\"hono\");\n  const apitallyVersion = getPackageVersion(\"../..\");\n  if (honoVersion) {\n    versions.push([\"hono\", honoVersion]);\n  }\n  if (apitallyVersion) {\n    versions.push([\"apitally\", apitallyVersion]);\n  }\n  if (appVersion) {\n    versions.push([\"app\", appVersion]);\n  }\n  return {\n    paths: listEndpoints(app),\n    versions: Object.fromEntries(versions),\n    client: \"js:hono\",\n  };\n}\n\nexport function listEndpoints(app: Hono) {\n  const endpoints: Array<PathInfo> = [];\n  app.routes.forEach((route) => {\n    if (route.method !== \"ALL\" && !isMiddleware(route.handler)) {\n      endpoints.push({\n        method: route.method.toUpperCase(),\n        path: route.path,\n      });\n    }\n  });\n  return endpoints;\n}\n\nexport function extractZodErrors(responseJson: any) {\n  const errors: ValidationError[] = [];\n  if (\n    responseJson &&\n    responseJson.success === false &&\n    responseJson.error &&\n    responseJson.error.name === \"ZodError\"\n  ) {\n    const zodError = responseJson.error as ZodError;\n    zodError.issues?.forEach((zodIssue) => {\n      errors.push({\n        loc: zodIssue.path.join(\".\"),\n        msg: zodIssue.message,\n        type: zodIssue.code,\n      });\n    });\n  }\n  return errors;\n}\n","import { createRequire } from \"module\";\n\nexport function getPackageVersion(name: string): string | null {\n  const packageJsonPath = `${name}/package.json`;\n  try {\n    return require(packageJsonPath).version || null;\n  } catch (error) {\n    try {\n      const _require = createRequire(import.meta.url);\n      return _require(packageJsonPath).version || null;\n    } catch (error) {\n      return null;\n    }\n  }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;;;;;;qBAA6B;;;ACD7B,oBAA8B;AAA9B;AAEO,SAASA,kBAAkBC,MAAY;AAC5C,QAAMC,kBAAkB,GAAGD,IAAAA;AAC3B,MAAI;AACF,WAAOE,QAAQD,eAAAA,EAAiBE,WAAW;EAC7C,SAASC,OAAO;AACd,QAAI;AACF,YAAMC,eAAWC,6BAAc,YAAYC,GAAG;AAC9C,aAAOF,SAASJ,eAAAA,EAAiBE,WAAW;IAC9C,SAASC,QAAO;AACd,aAAO;IACT;EACF;AACF;AAZgBL;;;ADKT,SAASS,WAAWC,KAAWC,YAAmB;AACvD,QAAMC,WAAoC,CAAA;AAC1C,MAAIC,QAAQD,SAASE,MAAM;AACzBF,aAASG,KAAK;MAAC;MAAUF,QAAQD,SAASE;KAAK;EACjD;AACA,MAAID,QAAQD,SAASI,KAAK;AACxBJ,aAASG,KAAK;MAAC;MAAOF,QAAQD,SAASI;KAAI;EAC7C;AACA,QAAMC,cAAcC,kBAAkB,MAAA;AACtC,QAAMC,kBAAkBD,kBAAkB,OAAA;AAC1C,MAAID,aAAa;AACfL,aAASG,KAAK;MAAC;MAAQE;KAAY;EACrC;AACA,MAAIE,iBAAiB;AACnBP,aAASG,KAAK;MAAC;MAAYI;KAAgB;EAC7C;AACA,MAAIR,YAAY;AACdC,aAASG,KAAK;MAAC;MAAOJ;KAAW;EACnC;AACA,SAAO;IACLS,OAAOC,cAAcX,GAAAA;IACrBE,UAAUU,OAAOC,YAAYX,QAAAA;IAC7BY,QAAQ;EACV;AACF;AAxBgBf;AA0BT,SAASY,cAAcX,KAAS;AACrC,QAAMe,YAA6B,CAAA;AACnCf,MAAIgB,OAAOC,QAAQ,CAACC,UAAAA;AAClB,QAAIA,MAAMC,WAAW,SAAS,KAACC,6BAAaF,MAAMG,OAAO,GAAG;AAC1DN,gBAAUV,KAAK;QACbc,QAAQD,MAAMC,OAAOG,YAAW;QAChCC,MAAML,MAAMK;MACd,CAAA;IACF;EACF,CAAA;AACA,SAAOR;AACT;AAXgBJ;AAaT,SAASa,iBAAiBC,cAAiB;AA7ClD;AA8CE,QAAMC,SAA4B,CAAA;AAClC,MACED,gBACAA,aAAaE,YAAY,SACzBF,aAAaG,SACbH,aAAaG,MAAMC,SAAS,YAC5B;AACA,UAAMC,WAAWL,aAAaG;AAC9BE,mBAASC,WAATD,mBAAiBb,QAAQ,CAACe,aAAAA;AACxBN,aAAOrB,KAAK;QACV4B,KAAKD,SAAST,KAAKW,KAAK,GAAA;QACxBC,KAAKH,SAASI;QACdC,MAAML,SAASM;MACjB,CAAA;IACF;EACF;AACA,SAAOZ;AACT;AAlBgBF;","names":["getPackageVersion","name","packageJsonPath","require","version","error","_require","createRequire","url","getAppInfo","app","appVersion","versions","process","node","push","bun","honoVersion","getPackageVersion","apitallyVersion","paths","listEndpoints","Object","fromEntries","client","endpoints","routes","forEach","route","method","isMiddleware","handler","toUpperCase","path","extractZodErrors","responseJson","errors","success","error","name","zodError","issues","zodIssue","loc","join","msg","message","type","code"]}