@smmachine/launcher 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apps/webapp/.next/BUILD_ID +1 -1
- package/apps/webapp/.next/build-manifest.json +3 -3
- package/apps/webapp/.next/cache/.previewinfo +1 -1
- package/apps/webapp/.next/cache/.rscinfo +1 -1
- package/apps/webapp/.next/cache/.tsbuildinfo +1 -1
- package/apps/webapp/.next/cache/config.json +3 -3
- package/apps/webapp/.next/diagnostics/route-bundle-stats.json +21 -21
- package/apps/webapp/.next/fallback-build-manifest.json +3 -3
- package/apps/webapp/.next/prerender-manifest.json +3 -3
- package/apps/webapp/.next/server/app/_global-error.html +1 -1
- package/apps/webapp/.next/server/app/_global-error.rsc +1 -1
- package/apps/webapp/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/apps/webapp/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/apps/webapp/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/apps/webapp/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/apps/webapp/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/apps/webapp/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/apps/webapp/.next/server/app/_not-found.html +1 -1
- package/apps/webapp/.next/server/app/_not-found.rsc +11 -11
- package/apps/webapp/.next/server/app/_not-found.segments/_full.segment.rsc +11 -11
- package/apps/webapp/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/apps/webapp/.next/server/app/_not-found.segments/_index.segment.rsc +6 -6
- package/apps/webapp/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/apps/webapp/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/apps/webapp/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/apps/webapp/.next/server/app/dashboard/insights/page/server-reference-manifest.json +1 -1
- package/apps/webapp/.next/server/app/dashboard/insights/page.js +1 -1
- package/apps/webapp/.next/server/app/dashboard/insights/page.js.nft.json +1 -1
- package/apps/webapp/.next/server/app/dashboard/insights/page_client-reference-manifest.js +1 -1
- package/apps/webapp/.next/server/app/dashboard/page/server-reference-manifest.json +1 -1
- package/apps/webapp/.next/server/app/dashboard/page.js +1 -1
- package/apps/webapp/.next/server/app/dashboard/page.js.nft.json +1 -1
- package/apps/webapp/.next/server/app/dashboard/page_client-reference-manifest.js +1 -1
- package/apps/webapp/.next/server/app/dashboard/pipelines/page/server-reference-manifest.json +1 -1
- package/apps/webapp/.next/server/app/dashboard/pipelines/page.js +1 -1
- package/apps/webapp/.next/server/app/dashboard/pipelines/page.js.nft.json +1 -1
- package/apps/webapp/.next/server/app/dashboard/pipelines/page_client-reference-manifest.js +1 -1
- package/apps/webapp/.next/server/app/dashboard/pull-requests/page/server-reference-manifest.json +1 -1
- package/apps/webapp/.next/server/app/dashboard/pull-requests/page.js +1 -1
- package/apps/webapp/.next/server/app/dashboard/pull-requests/page.js.nft.json +1 -1
- package/apps/webapp/.next/server/app/dashboard/pull-requests/page_client-reference-manifest.js +1 -1
- package/apps/webapp/.next/server/app/dashboard/source-code/page/server-reference-manifest.json +1 -1
- package/apps/webapp/.next/server/app/dashboard/source-code/page.js +1 -1
- package/apps/webapp/.next/server/app/dashboard/source-code/page.js.nft.json +1 -1
- package/apps/webapp/.next/server/app/dashboard/source-code/page_client-reference-manifest.js +1 -1
- package/apps/webapp/.next/server/app/dashboard.html +1 -1
- package/apps/webapp/.next/server/app/dashboard.rsc +14 -14
- package/apps/webapp/.next/server/app/dashboard.segments/_full.segment.rsc +14 -14
- package/apps/webapp/.next/server/app/dashboard.segments/_head.segment.rsc +4 -4
- package/apps/webapp/.next/server/app/dashboard.segments/_index.segment.rsc +6 -6
- package/apps/webapp/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
- package/apps/webapp/.next/server/app/dashboard.segments/dashboard/__PAGE__.segment.rsc +2 -2
- package/apps/webapp/.next/server/app/dashboard.segments/dashboard.segment.rsc +5 -5
- package/apps/webapp/.next/server/app/index.html +1 -1
- package/apps/webapp/.next/server/app/index.rsc +12 -12
- package/apps/webapp/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/apps/webapp/.next/server/app/index.segments/_full.segment.rsc +12 -12
- package/apps/webapp/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/apps/webapp/.next/server/app/index.segments/_index.segment.rsc +6 -6
- package/apps/webapp/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/apps/webapp/.next/server/app/page_client-reference-manifest.js +1 -1
- package/apps/webapp/.next/server/chunks/ssr/05tt_next_dist_07-on~h._.js +1 -1
- package/apps/webapp/.next/server/chunks/ssr/[root-of-the-server]__00f_2t7._.js +1 -1
- package/apps/webapp/.next/server/chunks/ssr/[root-of-the-server]__00f_2t7._.js.map +1 -1
- package/apps/webapp/.next/server/chunks/ssr/[root-of-the-server]__02--~md._.js.map +1 -1
- package/apps/webapp/.next/server/chunks/ssr/[root-of-the-server]__02kdint._.js +8 -0
- package/apps/webapp/.next/server/chunks/ssr/[root-of-the-server]__02kdint._.js.map +1 -0
- package/apps/webapp/.next/server/chunks/ssr/[root-of-the-server]__0b.kqls._.js.map +1 -1
- package/apps/webapp/.next/server/chunks/ssr/[root-of-the-server]__0gz_uel._.js +1 -1
- package/apps/webapp/.next/server/chunks/ssr/[root-of-the-server]__0gz_uel._.js.map +1 -1
- package/apps/webapp/.next/server/chunks/ssr/[root-of-the-server]__0mqsa53._.js.map +1 -1
- package/apps/webapp/.next/server/chunks/ssr/_042y~1f._.js +1 -1
- package/apps/webapp/.next/server/chunks/ssr/_042y~1f._.js.map +1 -1
- package/apps/webapp/.next/server/chunks/ssr/_07rvj1-._.js +1 -1
- package/apps/webapp/.next/server/chunks/ssr/_07rvj1-._.js.map +1 -1
- package/apps/webapp/.next/server/chunks/ssr/_09pd2a5._.js +1 -1
- package/apps/webapp/.next/server/chunks/ssr/_09pd2a5._.js.map +1 -1
- package/apps/webapp/.next/server/chunks/ssr/_0ff1gqq._.js +1 -1
- package/apps/webapp/.next/server/chunks/ssr/_0ff1gqq._.js.map +1 -1
- package/apps/webapp/.next/server/chunks/ssr/_0m.-wbb._.js +21 -21
- package/apps/webapp/.next/server/chunks/ssr/_0m.-wbb._.js.map +1 -1
- package/apps/webapp/.next/server/chunks/ssr/_0qa1_7s._.js +1 -1
- package/apps/webapp/.next/server/chunks/ssr/_0qa1_7s._.js.map +1 -1
- package/apps/webapp/.next/server/chunks/ssr/_0r1g-0-._.js +1 -1
- package/apps/webapp/.next/server/chunks/ssr/_0r1g-0-._.js.map +1 -1
- package/apps/webapp/.next/server/chunks/ssr/_0yvvkzh._.js +1 -1
- package/apps/webapp/.next/server/chunks/ssr/_0yvvkzh._.js.map +1 -1
- package/apps/webapp/.next/server/chunks/ssr/apps_webapp_components_filters_DashboardFilters_ts_0si3yqv._.js.map +1 -1
- package/apps/webapp/.next/server/middleware-build-manifest.js +3 -3
- package/apps/webapp/.next/server/pages/404.html +1 -1
- package/apps/webapp/.next/server/pages/500.html +1 -1
- package/apps/webapp/.next/server/server-reference-manifest.js +1 -1
- package/apps/webapp/.next/server/server-reference-manifest.json +2 -2
- package/apps/webapp/.next/standalone/apps/webapp/.next/BUILD_ID +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/build-manifest.json +3 -3
- package/apps/webapp/.next/standalone/apps/webapp/.next/prerender-manifest.json +3 -3
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/_global-error.html +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/_global-error.rsc +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/_not-found.html +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/_not-found.rsc +11 -11
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/_not-found.segments/_full.segment.rsc +11 -11
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/_not-found.segments/_index.segment.rsc +6 -6
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard/insights/page/server-reference-manifest.json +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard/insights/page.js +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard/insights/page.js.nft.json +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard/insights/page_client-reference-manifest.js +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard/page/server-reference-manifest.json +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard/page.js +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard/page.js.nft.json +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard/page_client-reference-manifest.js +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard/pipelines/page/server-reference-manifest.json +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard/pipelines/page.js +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard/pipelines/page.js.nft.json +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard/pipelines/page_client-reference-manifest.js +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard/pull-requests/page/server-reference-manifest.json +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard/pull-requests/page.js +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard/pull-requests/page.js.nft.json +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard/pull-requests/page_client-reference-manifest.js +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard/source-code/page/server-reference-manifest.json +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard/source-code/page.js +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard/source-code/page.js.nft.json +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard/source-code/page_client-reference-manifest.js +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard.html +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard.rsc +14 -14
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard.segments/_full.segment.rsc +14 -14
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard.segments/_head.segment.rsc +4 -4
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard.segments/_index.segment.rsc +6 -6
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard.segments/dashboard/__PAGE__.segment.rsc +2 -2
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/dashboard.segments/dashboard.segment.rsc +5 -5
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/index.html +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/index.rsc +12 -12
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/index.segments/_full.segment.rsc +12 -12
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/index.segments/_index.segment.rsc +6 -6
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/app/page_client-reference-manifest.js +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/chunks/ssr/05tt_next_dist_07-on~h._.js +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/chunks/ssr/[root-of-the-server]__00f_2t7._.js +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/chunks/ssr/[root-of-the-server]__02kdint._.js +8 -0
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/chunks/ssr/[root-of-the-server]__0gz_uel._.js +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/chunks/ssr/_042y~1f._.js +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/chunks/ssr/_07rvj1-._.js +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/chunks/ssr/_09pd2a5._.js +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/chunks/ssr/_0ff1gqq._.js +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/chunks/ssr/_0m.-wbb._.js +21 -21
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/chunks/ssr/_0qa1_7s._.js +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/chunks/ssr/_0r1g-0-._.js +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/chunks/ssr/_0yvvkzh._.js +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/middleware-build-manifest.js +3 -3
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/pages/404.html +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/pages/500.html +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/server-reference-manifest.js +1 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/server-reference-manifest.json +2 -2
- package/apps/webapp/.next/standalone/apps/webapp/package.json +1 -0
- package/apps/webapp/.next/static/chunks/03gl2r.i3_2k2.css +3 -0
- package/apps/webapp/.next/static/chunks/0429__h3~-ds1.js +28 -0
- package/apps/webapp/.next/static/chunks/0652i33o~shm8.js +1 -0
- package/apps/webapp/.next/static/chunks/{0rm7qmgsl~p.8.js → 07v-tyusjjnic.js} +1 -1
- package/apps/webapp/.next/static/chunks/0x76u_i-5m~6r.js +103 -0
- package/apps/webapp/.next/trace +1 -1
- package/apps/webapp/.next/trace-build +1 -1
- package/dist/index.cjs +1848 -1394
- package/dist/index.cjs.map +1 -1
- package/dist/rest/main.cjs +1415 -812
- package/dist/rest/main.cjs.map +1 -1
- package/package.json +10 -9
- package/apps/webapp/.next/server/chunks/ssr/[root-of-the-server]__0tdz~ex._.js +0 -8
- package/apps/webapp/.next/server/chunks/ssr/[root-of-the-server]__0tdz~ex._.js.map +0 -1
- package/apps/webapp/.next/standalone/apps/webapp/.next/server/chunks/ssr/[root-of-the-server]__0tdz~ex._.js +0 -8
- package/apps/webapp/.next/static/chunks/0kxu_5kwzoz2u.js +0 -103
- package/apps/webapp/.next/static/chunks/0m_kjg5x2468y.css +0 -3
- package/apps/webapp/.next/static/chunks/0r_oj2_r1n-zt.js +0 -1
- package/apps/webapp/.next/static/chunks/0rfebrbvd95t..js +0 -28
- /package/apps/webapp/.next/static/{C256D1YC2F3R6v1tIKn3w → ANsJiOYvw2k9yQuLjHnBO}/_buildManifest.js +0 -0
- /package/apps/webapp/.next/static/{C256D1YC2F3R6v1tIKn3w → ANsJiOYvw2k9yQuLjHnBO}/_clientMiddlewareManifest.js +0 -0
- /package/apps/webapp/.next/static/{C256D1YC2F3R6v1tIKn3w → ANsJiOYvw2k9yQuLjHnBO}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_wildcard.cjs","../../../../../../node_modules/.pnpm/next%4016.2.1_%40babel%2Bcore%407.29.0_babel-plugin-macros%403.1.0_react-dom%4019.2.3_react%4019.2.3__react%4019.2.3/node_modules/next/src/shared/lib/invariant-error.ts","../../../../../../apps/webapp/server/api/sourceCode.ts","../../../../../../apps/webapp/server/api/pipeline.ts","../../../../../../apps/webapp/server/api/pullRequest.ts","../../../../../../apps/webapp/server/api/configuration.ts","../../../../../../apps/webapp/server/utils/apiParams.ts","../../../../../../apps/webapp/app/favicon.ico.mjs%20%28structured%20image%20object%29","../../../../../../apps/webapp/components/charts/pipeline/PipelineRunsDurationCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/components/charts/pipeline/JobsAverageTimeCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/components/charts/pipeline/JobsByStatusCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/app/dashboard/pipelines/page.tsx"],"sourcesContent":["\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","export class InvariantError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(\n `Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`,\n options\n )\n this.name = 'InvariantError'\n }\n}\n","import { ApiParams, fetchAPI } from './client';\n\nexport const sourceCodeAPI = {\n pairingIndex: (params?: ApiParams) =>\n fetchAPI<{ pairing_index_percentage: number; total_analyzed_commits: number; paired_commits: number }>(\n '/code/pairing-index',\n params\n ),\n \n entityChurn: (params?: ApiParams) =>\n fetchAPI<Array<{ entity: string; added: number; deleted: number; commits: number }>>(\n '/code/entity-churn',\n params\n ),\n \n codeChurn: (params?: ApiParams) =>\n fetchAPI<Array<{ date: string; type: string; value: number }>>(\n '/code/code-churn',\n params\n ),\n \n coupling: (params?: ApiParams) =>\n fetchAPI<Array<{ entity: string; coupled: string; degree: number }>>(\n '/code/coupling',\n params\n ),\n \n entityEffort: (params?: ApiParams) =>\n fetchAPI<Array<{ entity: string; 'total-revs': number }>>(\n '/code/entity-effort',\n params\n ),\n \n entityOwnership: (params?: ApiParams) =>\n fetchAPI<Array<{ entity: string; author: string; added: number; deleted: number }>>(\n '/code/entity-ownership',\n params\n ),\n \n getAuthors: () =>\n fetchAPI<string[]>('/code/authors'),\n};\n","import { ApiParams, fetchAPI } from './client';\n\nexport const pipelineAPI = {\n // Data endpoints\n byStatus: (params?: ApiParams) =>\n fetchAPI<Array<{ status: string; count: number }>>(\n '/pipelines/by-status',\n params\n ),\n \n jobsByStatus: (params?: ApiParams) =>\n fetchAPI<Array<{ Status: string; Count: number }>>(\n '/pipelines/jobs-by-status',\n params\n ),\n \n summary: (params?: ApiParams) =>\n fetchAPI<{\n total_runs: number;\n first_run: string | null;\n last_run: string | null;\n in_progress: number;\n queued: number;\n }>('/pipelines/summary', params),\n \n runsDuration: (params?: ApiParams) =>\n fetchAPI<Array<{ workflow: string; avg_duration: number; total_runs: number }>>(\n '/pipelines/runs-duration',\n params\n ),\n \n deploymentFrequency: (params?: ApiParams) =>\n fetchAPI<Array<{ days: string; weeks: string; months: string; daily_counts: number; weekly_counts: number; monthly_counts: number; commits: string; links: string }>>(\n '/pipelines/deployment-frequency',\n params\n ),\n \n runsBy: (params?: ApiParams) =>\n fetchAPI<Array<{ period: string; workflow: string; runs: number }>>(\n '/pipelines/runs-by',\n params\n ),\n \n jobsAverageTime: (params?: ApiParams) =>\n fetchAPI<Array<{ job_name: string; avg_time: number; count: number }>>(\n '/pipelines/jobs-average-time',\n params\n ),\n\n // Filter option endpoints\n getWorkflows: () =>\n fetchAPI<Array<{ name: string; path: string }>>('/pipelines/workflows'),\n\n getStatuses: () =>\n fetchAPI<string[]>('/pipelines/statuses'),\n\n getConclusions: () =>\n fetchAPI<string[]>('/pipelines/conclusions'),\n\n getBranches: () =>\n fetchAPI<string[]>('/pipelines/branches'),\n\n getEvents: () =>\n fetchAPI<string[]>('/pipelines/events'),\n\n getJobs: () =>\n fetchAPI<Array<{ name: string; id?: string }>>('/pipelines/jobs'),\n};\n","import { ApiParams, fetchAPI } from './client';\n\nexport const pullRequestAPI = {\n // Data endpoints\n summary: (params?: ApiParams) =>\n fetchAPI<{\n total: number;\n merged: number;\n closed: number;\n open: number;\n first_pr: string | null;\n last_pr: string | null;\n }>('/pull-requests/summary', params),\n \n byAuthor: (params?: ApiParams) =>\n fetchAPI<Array<{ author: string; count: number }>>(\n '/pull-requests/by-author',\n params\n ),\n \n averageReviewTime: (params?: ApiParams) =>\n fetchAPI<Array<{ author: string; avg_hours: number }>>(\n '/pull-requests/average-review-time',\n params\n ),\n \n openThroughTime: (params?: ApiParams) =>\n fetchAPI<Array<{ date: string; open_prs: number }>>(\n '/pull-requests/through-time',\n params\n ),\n \n averageOpenBy: (params?: ApiParams) =>\n fetchAPI<Array<{ period: string; avg_days: number }>>(\n '/pull-requests/average-open-by',\n params\n ),\n \n averageComments: (params?: ApiParams) =>\n fetchAPI<{ avg_comments: number }>('/pull-requests/average-comments', params),\n\n // Filter option endpoints\n getAuthors: () =>\n fetchAPI<string[]>('/pull-requests/authors'),\n\n getLabels: () =>\n fetchAPI<string[]>('/pull-requests/labels'),\n};\n","import { fetchAPI } from './client';\n\nexport interface DashboardConfiguration {\n result: {\n git_provider: string;\n github_repository: string;\n git_repository_location: string;\n store_data: boolean;\n deployment_frequency_target_pipeline: string | null;\n deployment_frequency_target_job: string | null;\n main_branch: string;\n dashboard_start_date: string | null;\n dashboard_end_date: string | null;\n dashboard_color: string;\n logging_level: string;\n jira_url: string | null;\n jira_email: string | null;\n jira_token: string | null;\n jira_project: string | null;\n };\n}\n\nexport const configurationAPI = {\n getConfiguration: () =>\n fetchAPI<DashboardConfiguration>('/configuration'),\n};\n","import { ApiParams } from '@/server/api';\n\nexport interface DashboardFilters {\n startDate: string;\n endDate: string;\n workflowSelector?: string;\n workflowStatus?: string[];\n workflowConclusions?: string[];\n jobSelector?: string[];\n branch?: string[];\n event?: string[];\n aggregateMetric?: string;\n ignorePatternFiles?: string;\n includePatternFiles?: string;\n authorSelectSourceCode?: string[];\n topEntries?: number;\n typeChurn?: string;\n authorSelect?: string[];\n labelSelector?: string[];\n aggregateBy?: string;\n}\n\n/**\n * Convert pipeline section filters to API parameters\n */\nexport function buildPipelineApiParams(filters: DashboardFilters): ApiParams {\n return {\n start_date: filters.startDate,\n end_date: filters.endDate,\n workflow_path: filters.workflowSelector,\n status: filters.workflowStatus?.length ? filters.workflowStatus.join(',') : undefined,\n conclusion: filters.workflowConclusions?.length ? filters.workflowConclusions.join(',') : undefined,\n job_name: filters.jobSelector?.length ? filters.jobSelector.join(',') : undefined,\n branch: filters.branch?.length ? filters.branch.join(',') : undefined,\n event: filters.event?.length ? filters.event.join(',') : undefined,\n metric: filters.aggregateMetric,\n };\n}\n\n/**\n * Convert source code section filters to API parameters\n */\nexport function buildSourceCodeApiParams(filters: DashboardFilters): ApiParams {\n return {\n start_date: filters.startDate,\n end_date: filters.endDate,\n ignore_files: filters.ignorePatternFiles || undefined,\n include_only: filters.includePatternFiles || undefined,\n authors: filters.authorSelectSourceCode?.length\n ? filters.authorSelectSourceCode.join(',')\n : undefined,\n top: filters.topEntries,\n type_churn: filters.typeChurn,\n };\n}\n\n/**\n * Convert pull request section filters to API parameters\n */\nexport function buildPullRequestApiParams(filters: DashboardFilters): ApiParams {\n return {\n start_date: filters.startDate,\n end_date: filters.endDate,\n authors: filters.authorSelect?.length ? filters.authorSelect.join(',') : undefined,\n labels: filters.labelSelector?.length ? filters.labelSelector.join(',') : undefined,\n aggregate_by: filters.aggregateBy,\n };\n}\n\n/**\n * Batch export for easy access to all builders\n */\nexport const apiParamBuilders = {\n pipeline: buildPipelineApiParams,\n sourceCode: buildSourceCodeApiParams,\n pullRequest: buildPullRequestApiParams,\n};\n","import src from \"IMAGE\";\nexport default { src, width: 48, height: 48 }\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/pipeline/PipelineRunsDurationCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/pipeline/PipelineRunsDurationCard.tsx\",\n \"default\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/pipeline/JobsAverageTimeCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/pipeline/JobsAverageTimeCard.tsx\",\n \"default\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/pipeline/JobsByStatusCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/pipeline/JobsByStatusCard.tsx\",\n \"default\",\n);\n","import { pipelineAPI } from '@/server/api';\nimport { buildPipelineApiParams } from '@/server/utils/apiParams';\nimport {\n JobsAverageTimeData,\n JobsAverageTimeResponseItem,\n JobByStatusData,\n JobByStatusResponseItem,\n RunsDurationData,\n RunsDurationResponseItem,\n} from '@/components/charts/pipeline/types';\nimport { defaultFilters, parseDashboardFilters } from '@/components/filters/DashboardFilters';\nimport PipelineRunsDurationCard from '@/components/charts/pipeline/PipelineRunsDurationCard';\nimport JobsAverageTimeCard from '@/components/charts/pipeline/JobsAverageTimeCard';\nimport JobsByStatusCard from '@/components/charts/pipeline/JobsByStatusCard';\n\ntype ResultWrapper<T> = {\n result: T;\n};\n\nfunction unwrapResult<T>(data: T | ResultWrapper<T>): T {\n if (typeof data === 'object' && data !== null && 'result' in data) {\n return data.result;\n }\n return data;\n}\n\nexport default async function PipelinesPage({\n searchParams,\n}: {\n searchParams?: Promise<Record<string, string | string[] | undefined>>;\n}) {\n const filters = parseDashboardFilters(await searchParams ?? {}, defaultFilters);\n let jobsByStatus: JobByStatusData[] = [];\n let runsDuration: RunsDurationData[] = [];\n let jobsAvgTime: JobsAverageTimeData[] = [];\n\n try {\n const apiParams = buildPipelineApiParams(filters);\n const [jobs, duration, avgTime] = await Promise.all([\n pipelineAPI.jobsByStatus(apiParams),\n pipelineAPI.runsDuration(apiParams),\n pipelineAPI.jobsAverageTime(apiParams),\n ]);\n\n // Handle jobsByStatus - Status and Count fields\n const jobsResult = unwrapResult(jobs as JobByStatusResponseItem[] | ResultWrapper<JobByStatusResponseItem[]>);\n const jobsData = Array.isArray(jobsResult) ? jobsResult.map((j: JobByStatusResponseItem): JobByStatusData => ({\n status: (j.Status || 'unknown').toLowerCase(),\n count: j.Count || 0,\n })) : [];\n\n // Handle runsDuration - transform name/value to workflow/avg_duration\n const durationResult = unwrapResult(\n duration as RunsDurationResponseItem[] | ResultWrapper<RunsDurationResponseItem[]>\n );\n const durationData = Array.isArray(durationResult) ? durationResult.map((d: RunsDurationResponseItem): RunsDurationData => ({\n workflow: d.workflow || d.name || 'Unknown',\n avg_duration: d.avg_duration || d.value || 0,\n name: d.name,\n value: d.value\n })) : [];\n\n // Handle jobsAverageTime - unwrap if needed and transform\n let avgTimeData: JobsAverageTimeData[] = [];\n const avgTimeResult = unwrapResult(\n avgTime as JobsAverageTimeResponseItem[] | ResultWrapper<JobsAverageTimeResponseItem[]>\n );\n if (Array.isArray(avgTimeResult)) {\n avgTimeData = avgTimeResult.map((a: JobsAverageTimeResponseItem): JobsAverageTimeData => ({\n job_name: a.job_name || 'Unknown',\n avg_time: a.avg_time || 0\n }));\n }\n\n jobsByStatus = jobsData;\n runsDuration = durationData;\n jobsAvgTime = avgTimeData;\n } catch (error) {\n console.error('Error fetching pipeline data:', error);\n // Set empty arrays on error to prevent map errors\n jobsByStatus = [];\n runsDuration = [];\n jobsAvgTime = [];\n }\n\n return (\n <div className=\"space-y-6\">\n <div className=\"grid grid-cols-1 gap-6\">\n <PipelineRunsDurationCard data={runsDuration} />\n <JobsAverageTimeCard data={jobsAvgTime} />\n </div>\n\n <JobsByStatusCard data={jobsByStatus} />\n </div>\n );\n}\n"],"names":["_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_interop_require_wildcard","obj","__esModule","default","cache","has","get","newObj","__proto__","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","exports","_","InvariantError","Error","constructor","message","options","endsWith","name","sourceCodeAPI","pairingIndex","params","entityChurn","codeChurn","coupling","entityEffort","entityOwnership","getAuthors","buildPipelineApiParams","filters","start_date","startDate","end_date","endDate","workflow_path","workflowSelector","status","workflowStatus","length","join","undefined","conclusion","workflowConclusions","job_name","jobSelector","branch","event","metric","aggregateMetric","buildSourceCodeApiParams","ignore_files","ignorePatternFiles","include_only","includePatternFiles","authors","authorSelectSourceCode","top","topEntries","type_churn","typeChurn","buildPullRequestApiParams","authorSelect","labels","labelSelector","aggregate_by","aggregateBy","apiParamBuilders","pipeline","sourceCode","pullRequest","src","width","height","unwrapResult","data","result","PipelinesPage","searchParams","jobsByStatus","runsDuration","jobsAvgTime","apiParams","jobs","duration","avgTime","Promise","all","jobsAverageTime","jobsResult","jobsData","Array","isArray","map","j","Status","toLowerCase","count","Count","durationResult","durationData","d","workflow","avg_duration","value","avgTimeData","avgTimeResult","a","avg_time","error","console","className"],"mappings":"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","ignoreList":[0,1,8,9,10]}
|
|
1
|
+
{"version":3,"sources":["../../../../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_wildcard.cjs","../../../../../../node_modules/.pnpm/next%4016.2.1_%40babel%2Bcore%407.29.0_babel-plugin-macros%403.1.0_react-dom%4019.2.3_react%4019.2.3__react%4019.2.3/node_modules/next/src/shared/lib/invariant-error.ts","../../../../../../apps/webapp/server/api/sourceCode.ts","../../../../../../apps/webapp/server/api/pipeline.ts","../../../../../../apps/webapp/server/api/pullRequest.ts","../../../../../../apps/webapp/server/api/configuration.ts","../../../../../../apps/webapp/server/utils/apiParams.ts","../../../../../../apps/webapp/app/favicon.ico.mjs%20%28structured%20image%20object%29","../../../../../../apps/webapp/components/charts/pipeline/PipelineRunsDurationCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/components/charts/pipeline/JobsAverageTimeCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/components/charts/pipeline/JobsByStatusCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/app/dashboard/pipelines/page.tsx"],"sourcesContent":["\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","export class InvariantError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(\n `Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`,\n options\n )\n this.name = 'InvariantError'\n }\n}\n","import { ApiParams, fetchAPI } from './client';\n\nexport const sourceCodeAPI = {\n pairingIndex: (params?: ApiParams) =>\n fetchAPI<{ pairing_index_percentage: number; total_analyzed_commits: number; paired_commits: number }>(\n '/code/pairing-index',\n params\n ),\n \n entityChurn: (params?: ApiParams) =>\n fetchAPI<Array<{ entity: string; added: number; deleted: number; commits: number }>>(\n '/code/entity-churn',\n params\n ),\n \n codeChurn: (params?: ApiParams) =>\n fetchAPI<Array<{ date: string; type: string; value: number }>>(\n '/code/code-churn',\n params\n ),\n \n coupling: (params?: ApiParams) =>\n fetchAPI<Array<{ entity: string; coupled: string; degree: number; averageRevs: number }>>(\n '/code/coupling',\n params\n ),\n \n entityEffort: (params?: ApiParams) =>\n fetchAPI<Array<{ entity: string; 'total-revs': number }>>(\n '/code/entity-effort',\n params\n ),\n \n entityOwnership: (params?: ApiParams) =>\n fetchAPI<Array<{ entity: string; author: string; added: number; deleted: number }>>(\n '/code/entity-ownership',\n params\n ),\n \n getAuthors: () =>\n fetchAPI<string[]>('/code/authors'),\n};\n","import { ApiParams, fetchAPI } from './client';\n\nexport const pipelineAPI = {\n // Data endpoints\n byStatus: (params?: ApiParams) =>\n fetchAPI<Array<{ status: string; count: number }>>(\n '/pipelines/by-status',\n params\n ),\n \n jobsByStatus: (params?: ApiParams) =>\n fetchAPI<Array<{ Status: string; Count: number }>>(\n '/pipelines/jobs-by-status',\n params\n ),\n \n summary: (params?: ApiParams) =>\n fetchAPI<{\n total_runs: number;\n first_run: string | null;\n last_run: string | null;\n in_progress: number;\n queued: number;\n }>('/pipelines/summary', params),\n \n runsDuration: (params?: ApiParams) =>\n fetchAPI<Array<{ workflow: string; avg_duration: number; total_runs: number }>>(\n '/pipelines/runs-duration',\n params\n ),\n \n deploymentFrequency: (params?: ApiParams) =>\n fetchAPI<Array<{ days: string; weeks: string; months: string; daily_counts: number; weekly_counts: number; monthly_counts: number; commits: string; links: string }>>(\n '/pipelines/deployment-frequency',\n params\n ),\n \n runsBy: (params?: ApiParams) =>\n fetchAPI<Array<{ period: string; workflow: string; runs: number }>>(\n '/pipelines/runs-by',\n params\n ),\n \n jobsAverageTime: (params?: ApiParams) =>\n fetchAPI<Array<{ job_name: string; avg_time: number; count: number }>>(\n '/pipelines/jobs-average-time',\n params\n ),\n\n // Filter option endpoints\n getWorkflows: () =>\n fetchAPI<Array<{ name: string; path: string }>>('/pipelines/workflows'),\n\n getStatuses: () =>\n fetchAPI<string[]>('/pipelines/statuses'),\n\n getConclusions: () =>\n fetchAPI<string[]>('/pipelines/conclusions'),\n\n getBranches: () =>\n fetchAPI<string[]>('/pipelines/branches'),\n\n getEvents: () =>\n fetchAPI<string[]>('/pipelines/events'),\n\n getJobs: () =>\n fetchAPI<Array<{ name: string; id?: string }>>('/pipelines/jobs'),\n};\n","import { ApiParams, fetchAPI } from './client';\n\nexport const pullRequestAPI = {\n // Data endpoints\n summary: (params?: ApiParams) =>\n fetchAPI<{\n total: number;\n merged: number;\n closed: number;\n open: number;\n first_pr: string | null;\n last_pr: string | null;\n top_themes: string[];\n labels: Array<{ label: string; prs: number }>;\n }>('/pull-requests/summary', params),\n \n byAuthor: (params?: ApiParams) =>\n fetchAPI<Array<{ author: string; count: number }>>(\n '/pull-requests/by-author',\n params\n ),\n \n averageReviewTime: (params?: ApiParams) =>\n fetchAPI<Array<{ author: string; avg_hours: number }>>(\n '/pull-requests/average-review-time',\n params\n ),\n \n openThroughTime: (params?: ApiParams) =>\n fetchAPI<Array<{ date: string; open_prs: number }>>(\n '/pull-requests/through-time',\n params\n ),\n \n averageOpenBy: (params?: ApiParams) =>\n fetchAPI<Array<{ period: string; avg_days: number }>>(\n '/pull-requests/average-open-by',\n params\n ),\n \n averageComments: (params?: ApiParams) =>\n fetchAPI<{ avg_comments: number }>('/pull-requests/average-comments', params),\n\n // Filter option endpoints\n getAuthors: () =>\n fetchAPI<string[]>('/pull-requests/authors'),\n\n getLabels: () =>\n fetchAPI<string[]>('/pull-requests/labels'),\n};\n","import { fetchAPI } from './client';\n\nexport interface DashboardConfiguration {\n result: {\n git_provider: string;\n github_repository: string;\n git_repository_location: string;\n store_data: boolean;\n deployment_frequency_target_pipeline: string | null;\n deployment_frequency_target_job: string | null;\n main_branch: string;\n dashboard_start_date: string | null;\n dashboard_end_date: string | null;\n dashboard_color: string;\n logging_level: string;\n jira_url: string | null;\n jira_email: string | null;\n jira_token: string | null;\n jira_project: string | null;\n };\n}\n\nexport const configurationAPI = {\n getConfiguration: () =>\n fetchAPI<DashboardConfiguration>('/configuration'),\n};\n","import { ApiParams } from '@/server/api';\n\nexport interface DashboardFilters {\n startDate: string;\n endDate: string;\n workflowSelector?: string;\n workflowStatus?: string[];\n workflowConclusions?: string[];\n jobSelector?: string[];\n branch?: string[];\n event?: string[];\n aggregateMetric?: string;\n ignorePatternFiles?: string;\n includePatternFiles?: string;\n authorSelectSourceCode?: string[];\n topEntries?: number;\n typeChurn?: string;\n authorSelect?: string[];\n labelSelector?: string[];\n aggregateBy?: string;\n}\n\n/**\n * Convert pipeline section filters to API parameters\n */\nexport function buildPipelineApiParams(filters: DashboardFilters): ApiParams {\n return {\n start_date: filters.startDate,\n end_date: filters.endDate,\n workflow_path: filters.workflowSelector,\n status: filters.workflowStatus?.length ? filters.workflowStatus.join(',') : undefined,\n conclusion: filters.workflowConclusions?.length ? filters.workflowConclusions.join(',') : undefined,\n job_name: filters.jobSelector?.length ? filters.jobSelector.join(',') : undefined,\n branch: filters.branch?.length ? filters.branch.join(',') : undefined,\n event: filters.event?.length ? filters.event.join(',') : undefined,\n metric: filters.aggregateMetric,\n };\n}\n\n/**\n * Convert source code section filters to API parameters\n */\nexport function buildSourceCodeApiParams(filters: DashboardFilters): ApiParams {\n return {\n start_date: filters.startDate,\n end_date: filters.endDate,\n ignore_files: filters.ignorePatternFiles || undefined,\n include_only: filters.includePatternFiles || undefined,\n authors: filters.authorSelectSourceCode?.length\n ? filters.authorSelectSourceCode.join(',')\n : undefined,\n top: filters.topEntries,\n type_churn: filters.typeChurn,\n };\n}\n\n/**\n * Convert pull request section filters to API parameters\n */\nexport function buildPullRequestApiParams(filters: DashboardFilters): ApiParams {\n return {\n start_date: filters.startDate,\n end_date: filters.endDate,\n authors: filters.authorSelect?.length ? filters.authorSelect.join(',') : undefined,\n labels: filters.labelSelector?.length ? filters.labelSelector.join(',') : undefined,\n aggregate_by: filters.aggregateBy,\n };\n}\n\n/**\n * Batch export for easy access to all builders\n */\nexport const apiParamBuilders = {\n pipeline: buildPipelineApiParams,\n sourceCode: buildSourceCodeApiParams,\n pullRequest: buildPullRequestApiParams,\n};\n","import src from \"IMAGE\";\nexport default { src, width: 48, height: 48 }\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/pipeline/PipelineRunsDurationCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/pipeline/PipelineRunsDurationCard.tsx\",\n \"default\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/pipeline/JobsAverageTimeCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/pipeline/JobsAverageTimeCard.tsx\",\n \"default\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/pipeline/JobsByStatusCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/pipeline/JobsByStatusCard.tsx\",\n \"default\",\n);\n","import { pipelineAPI } from '@/server/api';\nimport { buildPipelineApiParams } from '@/server/utils/apiParams';\nimport {\n JobsAverageTimeData,\n JobsAverageTimeResponseItem,\n JobByStatusData,\n JobByStatusResponseItem,\n RunsDurationData,\n RunsDurationResponseItem,\n} from '@/components/charts/pipeline/types';\nimport { defaultFilters, parseDashboardFilters } from '@/components/filters/DashboardFilters';\nimport PipelineRunsDurationCard from '@/components/charts/pipeline/PipelineRunsDurationCard';\nimport JobsAverageTimeCard from '@/components/charts/pipeline/JobsAverageTimeCard';\nimport JobsByStatusCard from '@/components/charts/pipeline/JobsByStatusCard';\n\ntype ResultWrapper<T> = {\n result: T;\n};\n\nfunction unwrapResult<T>(data: T | ResultWrapper<T>): T {\n if (typeof data === 'object' && data !== null && 'result' in data) {\n return data.result;\n }\n return data;\n}\n\nexport default async function PipelinesPage({\n searchParams,\n}: {\n searchParams?: Promise<Record<string, string | string[] | undefined>>;\n}) {\n const filters = parseDashboardFilters(await searchParams ?? {}, defaultFilters);\n let jobsByStatus: JobByStatusData[] = [];\n let runsDuration: RunsDurationData[] = [];\n let jobsAvgTime: JobsAverageTimeData[] = [];\n\n try {\n const apiParams = buildPipelineApiParams(filters);\n const [jobs, duration, avgTime] = await Promise.all([\n pipelineAPI.jobsByStatus(apiParams),\n pipelineAPI.runsDuration(apiParams),\n pipelineAPI.jobsAverageTime(apiParams),\n ]);\n\n // Handle jobsByStatus - Status and Count fields\n const jobsResult = unwrapResult(jobs as JobByStatusResponseItem[] | ResultWrapper<JobByStatusResponseItem[]>);\n const jobsData = Array.isArray(jobsResult) ? jobsResult.map((j: JobByStatusResponseItem): JobByStatusData => ({\n status: (j.Status || 'unknown').toLowerCase(),\n count: j.Count || 0,\n })) : [];\n\n // Handle runsDuration - transform name/value to workflow/avg_duration\n const durationResult = unwrapResult(\n duration as RunsDurationResponseItem[] | ResultWrapper<RunsDurationResponseItem[]>\n );\n const durationData = Array.isArray(durationResult) ? durationResult.map((d: RunsDurationResponseItem): RunsDurationData => ({\n workflow: d.workflow || d.name || 'Unknown',\n avg_duration: d.avg_duration || d.value || 0,\n name: d.name,\n value: d.value\n })) : [];\n\n // Handle jobsAverageTime - unwrap if needed and transform\n let avgTimeData: JobsAverageTimeData[] = [];\n const avgTimeResult = unwrapResult(\n avgTime as JobsAverageTimeResponseItem[] | ResultWrapper<JobsAverageTimeResponseItem[]>\n );\n if (Array.isArray(avgTimeResult)) {\n avgTimeData = avgTimeResult.map((a: JobsAverageTimeResponseItem): JobsAverageTimeData => ({\n job_name: a.job_name || 'Unknown',\n avg_time: a.avg_time || 0\n }));\n }\n\n jobsByStatus = jobsData;\n runsDuration = durationData;\n jobsAvgTime = avgTimeData;\n } catch (error) {\n console.error('Error fetching pipeline data:', error);\n // Set empty arrays on error to prevent map errors\n jobsByStatus = [];\n runsDuration = [];\n jobsAvgTime = [];\n }\n\n return (\n <div className=\"space-y-6\">\n <div className=\"grid grid-cols-1 gap-6\">\n <PipelineRunsDurationCard data={runsDuration} />\n <JobsAverageTimeCard data={jobsAvgTime} />\n </div>\n\n <JobsByStatusCard data={jobsByStatus} />\n </div>\n );\n}\n"],"names":["_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_interop_require_wildcard","obj","__esModule","default","cache","has","get","newObj","__proto__","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","exports","_","InvariantError","Error","constructor","message","options","endsWith","name","sourceCodeAPI","pairingIndex","params","entityChurn","codeChurn","coupling","entityEffort","entityOwnership","getAuthors","buildPipelineApiParams","filters","start_date","startDate","end_date","endDate","workflow_path","workflowSelector","status","workflowStatus","length","join","undefined","conclusion","workflowConclusions","job_name","jobSelector","branch","event","metric","aggregateMetric","buildSourceCodeApiParams","ignore_files","ignorePatternFiles","include_only","includePatternFiles","authors","authorSelectSourceCode","top","topEntries","type_churn","typeChurn","buildPullRequestApiParams","authorSelect","labels","labelSelector","aggregate_by","aggregateBy","apiParamBuilders","pipeline","sourceCode","pullRequest","src","width","height","unwrapResult","data","result","PipelinesPage","searchParams","jobsByStatus","runsDuration","jobsAvgTime","apiParams","jobs","duration","avgTime","Promise","all","jobsAverageTime","jobsResult","jobsData","Array","isArray","map","j","Status","toLowerCase","count","Count","durationResult","durationData","d","workflow","avg_duration","value","avgTimeData","avgTimeResult","a","avg_time","error","console","className"],"mappings":"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","ignoreList":[0,1,8,9,10]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[54508,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},24575,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"InvariantError",{enumerable:!0,get:function(){return d}});class d extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),this.name="InvariantError"}}},20782,86915,5129,79227,a=>{"use strict";var b=a.i(3760);a.s(["sourceCodeAPI",0,{pairingIndex:a=>(0,b.fetchAPI)("/code/pairing-index",a),entityChurn:a=>(0,b.fetchAPI)("/code/entity-churn",a),codeChurn:a=>(0,b.fetchAPI)("/code/code-churn",a),coupling:a=>(0,b.fetchAPI)("/code/coupling",a),entityEffort:a=>(0,b.fetchAPI)("/code/entity-effort",a),entityOwnership:a=>(0,b.fetchAPI)("/code/entity-ownership",a),getAuthors:()=>(0,b.fetchAPI)("/code/authors")}],86915),a.s(["pipelineAPI",0,{byStatus:a=>(0,b.fetchAPI)("/pipelines/by-status",a),jobsByStatus:a=>(0,b.fetchAPI)("/pipelines/jobs-by-status",a),summary:a=>(0,b.fetchAPI)("/pipelines/summary",a),runsDuration:a=>(0,b.fetchAPI)("/pipelines/runs-duration",a),deploymentFrequency:a=>(0,b.fetchAPI)("/pipelines/deployment-frequency",a),runsBy:a=>(0,b.fetchAPI)("/pipelines/runs-by",a),jobsAverageTime:a=>(0,b.fetchAPI)("/pipelines/jobs-average-time",a),getWorkflows:()=>(0,b.fetchAPI)("/pipelines/workflows"),getStatuses:()=>(0,b.fetchAPI)("/pipelines/statuses"),getConclusions:()=>(0,b.fetchAPI)("/pipelines/conclusions"),getBranches:()=>(0,b.fetchAPI)("/pipelines/branches"),getEvents:()=>(0,b.fetchAPI)("/pipelines/events"),getJobs:()=>(0,b.fetchAPI)("/pipelines/jobs")}],5129),a.s(["pullRequestAPI",0,{summary:a=>(0,b.fetchAPI)("/pull-requests/summary",a),byAuthor:a=>(0,b.fetchAPI)("/pull-requests/by-author",a),averageReviewTime:a=>(0,b.fetchAPI)("/pull-requests/average-review-time",a),openThroughTime:a=>(0,b.fetchAPI)("/pull-requests/through-time",a),averageOpenBy:a=>(0,b.fetchAPI)("/pull-requests/average-open-by",a),averageComments:a=>(0,b.fetchAPI)("/pull-requests/average-comments",a),getAuthors:()=>(0,b.fetchAPI)("/pull-requests/authors"),getLabels:()=>(0,b.fetchAPI)("/pull-requests/labels")}],79227),a.s([],20782)},24322,a=>{"use strict";a.s(["buildPipelineApiParams",0,function(a){return{start_date:a.startDate,end_date:a.endDate,workflow_path:a.workflowSelector,status:a.workflowStatus?.length?a.workflowStatus.join(","):void 0,conclusion:a.workflowConclusions?.length?a.workflowConclusions.join(","):void 0,job_name:a.jobSelector?.length?a.jobSelector.join(","):void 0,branch:a.branch?.length?a.branch.join(","):void 0,event:a.event?.length?a.event.join(","):void 0,metric:a.aggregateMetric}},"buildPullRequestApiParams",0,function(a){return{start_date:a.startDate,end_date:a.endDate,authors:a.authorSelect?.length?a.authorSelect.join(","):void 0,labels:a.labelSelector?.length?a.labelSelector.join(","):void 0,aggregate_by:a.aggregateBy}},"buildSourceCodeApiParams",0,function(a){return{start_date:a.startDate,end_date:a.endDate,ignore_files:a.ignorePatternFiles||void 0,include_only:a.includePatternFiles||void 0,authors:a.authorSelectSourceCode?.length?a.authorSelectSourceCode.join(","):void 0,top:a.topEntries,type_churn:a.typeChurn}}])},56902,a=>{"use strict";a.s(["ensureArray",0,function(a){return Array.isArray(a)?a:"object"==typeof a&&null!==a&&"result"in a?Array.isArray(a.result)||Array.isArray(a.result)?a.result:[]:[]}])},3011,a=>{a.v("/_next/static/media/favicon.0etzc3v3hhfg5.ico"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},54431,a=>{"use strict";let b={src:a.i(3011).default,width:48,height:48};a.s(["default",0,b])},73114,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(39527).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/PRsByAuthorCard.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/webapp/components/charts/pull-requests/PRsByAuthorCard.tsx <module evaluation>","default")},58209,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(39527).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/PRsByAuthorCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/webapp/components/charts/pull-requests/PRsByAuthorCard.tsx","default")},83419,a=>{"use strict";a.i(73114);var b=a.i(58209);a.n(b)},59862,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(39527).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/AverageReviewTimeCard.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/webapp/components/charts/pull-requests/AverageReviewTimeCard.tsx <module evaluation>","default")},16959,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(39527).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/AverageReviewTimeCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/webapp/components/charts/pull-requests/AverageReviewTimeCard.tsx","default")},19335,a=>{"use strict";a.i(59862);var b=a.i(16959);a.n(b)},94304,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(39527).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/OpenPRsThroughTimeCard.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/webapp/components/charts/pull-requests/OpenPRsThroughTimeCard.tsx <module evaluation>","default")},71584,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(39527).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/OpenPRsThroughTimeCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/webapp/components/charts/pull-requests/OpenPRsThroughTimeCard.tsx","default")},14528,a=>{"use strict";a.i(94304);var b=a.i(71584);a.n(b)},89929,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(39527).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/TopThemesCard.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/webapp/components/charts/pull-requests/TopThemesCard.tsx <module evaluation>","default")},29669,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(39527).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/TopThemesCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/webapp/components/charts/pull-requests/TopThemesCard.tsx","default")},11591,a=>{"use strict";a.i(89929);var b=a.i(29669);a.n(b)},38873,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(39527).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/AverageDaysPRsRemainOpenCard.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/webapp/components/charts/pull-requests/AverageDaysPRsRemainOpenCard.tsx <module evaluation>","default")},77653,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(39527).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/AverageDaysPRsRemainOpenCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/webapp/components/charts/pull-requests/AverageDaysPRsRemainOpenCard.tsx","default")},12510,a=>{"use strict";a.i(38873);var b=a.i(77653);a.n(b)},1133,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(39527).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/PRStatisticsCard.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/webapp/components/charts/pull-requests/PRStatisticsCard.tsx <module evaluation>","default")},9892,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(39527).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/PRStatisticsCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/webapp/components/charts/pull-requests/PRStatisticsCard.tsx","default")},88294,a=>{"use strict";a.i(1133);var b=a.i(9892);a.n(b)},60305,a=>{"use strict";var b=a.i(76453),c=a.i(14464);a.i(20782);var d=a.i(79227),e=a.i(24322),f=a.i(56902),g=a.i(83419),h=a.i(19335),i=a.i(14528),j=a.i(11591),k=a.i(12510),l=a.i(88294);function m(a){return"object"==typeof a&&null!==a&&"result"in a?a.result:a}async function n({searchParams:a}){let o=(0,c.parseDashboardFilters)(await a??{},c.defaultFilters),p=[],q=[],r=[],s=[],t=null,u=null,v=[];try{let a=(0,e.buildPullRequestApiParams)(o),[b,c,g,h,i,j]=await Promise.all([d.pullRequestAPI.byAuthor(a),d.pullRequestAPI.averageReviewTime(a),d.pullRequestAPI.openThroughTime(a),d.pullRequestAPI.averageOpenBy(a),d.pullRequestAPI.averageComments(a),d.pullRequestAPI.summary(a)]);p=(0,f.ensureArray)(m(b)),q=(0,f.ensureArray)(m(c));let k=(0,f.ensureArray)(m(g));r=k.length>0?k.reduce((a,b)=>{let c=a.find(a=>a.date===b.date);return c?"Opened"===b.kind?c.opened=b.count||0:"Closed"===b.kind&&(c.closed=b.count||0):a.push({date:b.date,opened:"Opened"===b.kind&&b.count||0,closed:"Closed"===b.kind&&b.count||0}),a},[]):k.map(a=>({date:a.date,opened:a.open_prs||0,closed:0})),s=(0,f.ensureArray)(m(h)),t=m(i);let l=m(j);u=l;let n=l?.top_themes||[];v=Array.isArray(n)?n.slice(0,10):[]}catch(a){console.error("Error fetching PR data:",a),p=[],q=[],r=[],s=[],t=null,u=null,v=[]}return(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[(0,b.jsx)(g.default,{data:p}),(0,b.jsx)(h.default,{data:q})]}),(0,b.jsx)(i.default,{data:r}),(0,b.jsx)(j.default,{data:v}),(0,b.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[(0,b.jsx)(k.default,{data:s}),(0,b.jsx)(l.default,{summary:u,avgComments:t})]})]})}a.s(["default",0,n])},89561,a=>{a.n(a.i(60305))}];
|
|
1
|
+
module.exports=[54508,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},24575,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"InvariantError",{enumerable:!0,get:function(){return d}});class d extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),this.name="InvariantError"}}},20782,86915,5129,79227,a=>{"use strict";var b=a.i(3760);a.s(["sourceCodeAPI",0,{pairingIndex:a=>(0,b.fetchAPI)("/code/pairing-index",a),entityChurn:a=>(0,b.fetchAPI)("/code/entity-churn",a),codeChurn:a=>(0,b.fetchAPI)("/code/code-churn",a),coupling:a=>(0,b.fetchAPI)("/code/coupling",a),entityEffort:a=>(0,b.fetchAPI)("/code/entity-effort",a),entityOwnership:a=>(0,b.fetchAPI)("/code/entity-ownership",a),getAuthors:()=>(0,b.fetchAPI)("/code/authors")}],86915),a.s(["pipelineAPI",0,{byStatus:a=>(0,b.fetchAPI)("/pipelines/by-status",a),jobsByStatus:a=>(0,b.fetchAPI)("/pipelines/jobs-by-status",a),summary:a=>(0,b.fetchAPI)("/pipelines/summary",a),runsDuration:a=>(0,b.fetchAPI)("/pipelines/runs-duration",a),deploymentFrequency:a=>(0,b.fetchAPI)("/pipelines/deployment-frequency",a),runsBy:a=>(0,b.fetchAPI)("/pipelines/runs-by",a),jobsAverageTime:a=>(0,b.fetchAPI)("/pipelines/jobs-average-time",a),getWorkflows:()=>(0,b.fetchAPI)("/pipelines/workflows"),getStatuses:()=>(0,b.fetchAPI)("/pipelines/statuses"),getConclusions:()=>(0,b.fetchAPI)("/pipelines/conclusions"),getBranches:()=>(0,b.fetchAPI)("/pipelines/branches"),getEvents:()=>(0,b.fetchAPI)("/pipelines/events"),getJobs:()=>(0,b.fetchAPI)("/pipelines/jobs")}],5129),a.s(["pullRequestAPI",0,{summary:a=>(0,b.fetchAPI)("/pull-requests/summary",a),byAuthor:a=>(0,b.fetchAPI)("/pull-requests/by-author",a),averageReviewTime:a=>(0,b.fetchAPI)("/pull-requests/average-review-time",a),openThroughTime:a=>(0,b.fetchAPI)("/pull-requests/through-time",a),averageOpenBy:a=>(0,b.fetchAPI)("/pull-requests/average-open-by",a),averageComments:a=>(0,b.fetchAPI)("/pull-requests/average-comments",a),getAuthors:()=>(0,b.fetchAPI)("/pull-requests/authors"),getLabels:()=>(0,b.fetchAPI)("/pull-requests/labels")}],79227),a.s([],20782)},24322,a=>{"use strict";a.s(["buildPipelineApiParams",0,function(a){return{start_date:a.startDate,end_date:a.endDate,workflow_path:a.workflowSelector,status:a.workflowStatus?.length?a.workflowStatus.join(","):void 0,conclusion:a.workflowConclusions?.length?a.workflowConclusions.join(","):void 0,job_name:a.jobSelector?.length?a.jobSelector.join(","):void 0,branch:a.branch?.length?a.branch.join(","):void 0,event:a.event?.length?a.event.join(","):void 0,metric:a.aggregateMetric}},"buildPullRequestApiParams",0,function(a){return{start_date:a.startDate,end_date:a.endDate,authors:a.authorSelect?.length?a.authorSelect.join(","):void 0,labels:a.labelSelector?.length?a.labelSelector.join(","):void 0,aggregate_by:a.aggregateBy}},"buildSourceCodeApiParams",0,function(a){return{start_date:a.startDate,end_date:a.endDate,ignore_files:a.ignorePatternFiles||void 0,include_only:a.includePatternFiles||void 0,authors:a.authorSelectSourceCode?.length?a.authorSelectSourceCode.join(","):void 0,top:a.topEntries,type_churn:a.typeChurn}}])},56902,a=>{"use strict";a.s(["ensureArray",0,function(a){return Array.isArray(a)?a:"object"==typeof a&&null!==a&&"result"in a?Array.isArray(a.result)||Array.isArray(a.result)?a.result:[]:[]}])},3011,a=>{a.v("/_next/static/media/favicon.0etzc3v3hhfg5.ico"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},54431,a=>{"use strict";let b={src:a.i(3011).default,width:48,height:48};a.s(["default",0,b])},73114,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(39527).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/PRsByAuthorCard.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/webapp/components/charts/pull-requests/PRsByAuthorCard.tsx <module evaluation>","default")},58209,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(39527).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/PRsByAuthorCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/webapp/components/charts/pull-requests/PRsByAuthorCard.tsx","default")},83419,a=>{"use strict";a.i(73114);var b=a.i(58209);a.n(b)},59862,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(39527).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/AverageReviewTimeCard.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/webapp/components/charts/pull-requests/AverageReviewTimeCard.tsx <module evaluation>","default")},16959,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(39527).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/AverageReviewTimeCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/webapp/components/charts/pull-requests/AverageReviewTimeCard.tsx","default")},19335,a=>{"use strict";a.i(59862);var b=a.i(16959);a.n(b)},94304,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(39527).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/OpenPRsThroughTimeCard.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/webapp/components/charts/pull-requests/OpenPRsThroughTimeCard.tsx <module evaluation>","default")},71584,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(39527).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/OpenPRsThroughTimeCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/webapp/components/charts/pull-requests/OpenPRsThroughTimeCard.tsx","default")},14528,a=>{"use strict";a.i(94304);var b=a.i(71584);a.n(b)},89929,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(39527).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/TopThemesCard.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/webapp/components/charts/pull-requests/TopThemesCard.tsx <module evaluation>","default")},29669,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(39527).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/TopThemesCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/webapp/components/charts/pull-requests/TopThemesCard.tsx","default")},11591,a=>{"use strict";a.i(89929);var b=a.i(29669);a.n(b)},38873,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(39527).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/AverageDaysPRsRemainOpenCard.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/webapp/components/charts/pull-requests/AverageDaysPRsRemainOpenCard.tsx <module evaluation>","default")},77653,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(39527).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/AverageDaysPRsRemainOpenCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/webapp/components/charts/pull-requests/AverageDaysPRsRemainOpenCard.tsx","default")},12510,a=>{"use strict";a.i(38873);var b=a.i(77653);a.n(b)},1133,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(39527).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/PRStatisticsCard.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/webapp/components/charts/pull-requests/PRStatisticsCard.tsx <module evaluation>","default")},9892,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(39527).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/PRStatisticsCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/apps/webapp/components/charts/pull-requests/PRStatisticsCard.tsx","default")},88294,a=>{"use strict";a.i(1133);var b=a.i(9892);a.n(b)},60305,a=>{"use strict";var b=a.i(76453),c=a.i(14464);a.i(20782);var d=a.i(79227),e=a.i(24322),f=a.i(56902),g=a.i(83419),h=a.i(19335),i=a.i(14528),j=a.i(11591),k=a.i(12510),l=a.i(88294);function m(a){return"object"==typeof a&&null!==a&&"result"in a?a.result:a}async function n({searchParams:a}){let o=(0,c.parseDashboardFilters)(await a??{},c.defaultFilters),p=[],q=[],r=[],s=[],t=null,u=null,v=[];try{let a=(0,e.buildPullRequestApiParams)(o),[b,c,g,h,i,j]=await Promise.all([d.pullRequestAPI.byAuthor(a),d.pullRequestAPI.averageReviewTime(a),d.pullRequestAPI.openThroughTime(a),d.pullRequestAPI.averageOpenBy(a),d.pullRequestAPI.averageComments(a),d.pullRequestAPI.summary(a)]);p=(0,f.ensureArray)(m(b)),q=(0,f.ensureArray)(m(c));let k=(0,f.ensureArray)(m(g));r=k.length>0?k.reduce((a,b)=>{let c=a.find(a=>a.date===b.date);return c?"Opened"===b.kind?c.opened=b.count||0:"Closed"===b.kind&&(c.closed=b.count||0):a.push({date:b.date,opened:"Opened"===b.kind&&b.count||0,closed:"Closed"===b.kind&&b.count||0}),a},[]):k.map(a=>({date:a.date,opened:a.open_prs||0,closed:0})),s=(0,f.ensureArray)(m(h)),t=m(i);let l=m(j);u=l,v=Array.isArray(l?.top_themes)?l.top_themes.filter(a=>"string"==typeof a).slice(0,10):[]}catch(a){console.error("Error fetching PR data:",a)}return(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsx)("div",{className:"grid grid-cols-1 gap-6",children:(0,b.jsx)(h.default,{data:q})}),(0,b.jsx)("div",{className:"grid grid-cols-1 gap-6",children:(0,b.jsx)(g.default,{data:p})}),(0,b.jsx)(i.default,{data:r}),(0,b.jsx)(j.default,{data:v}),(0,b.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[(0,b.jsx)(k.default,{data:s}),(0,b.jsx)(l.default,{summary:u,avgComments:t})]})]})}a.s(["default",0,n])},89561,a=>{a.n(a.i(60305))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=%5Broot-of-the-server%5D__0gz_uel._.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_wildcard.cjs","../../../../../../node_modules/.pnpm/next%4016.2.1_%40babel%2Bcore%407.29.0_babel-plugin-macros%403.1.0_react-dom%4019.2.3_react%4019.2.3__react%4019.2.3/node_modules/next/src/shared/lib/invariant-error.ts","../../../../../../apps/webapp/server/api/sourceCode.ts","../../../../../../apps/webapp/server/api/pipeline.ts","../../../../../../apps/webapp/server/api/pullRequest.ts","../../../../../../apps/webapp/server/api/configuration.ts","../../../../../../apps/webapp/server/utils/apiParams.ts","../../../../../../apps/webapp/server/utils/chartData.ts","../../../../../../apps/webapp/app/favicon.ico.mjs%20%28structured%20image%20object%29","../../../../../../apps/webapp/components/charts/pull-requests/PRsByAuthorCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/components/charts/pull-requests/AverageReviewTimeCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/components/charts/pull-requests/OpenPRsThroughTimeCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/components/charts/pull-requests/TopThemesCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/components/charts/pull-requests/AverageDaysPRsRemainOpenCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/components/charts/pull-requests/PRStatisticsCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/app/dashboard/pull-requests/page.tsx"],"sourcesContent":["\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","export class InvariantError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(\n `Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`,\n options\n )\n this.name = 'InvariantError'\n }\n}\n","import { ApiParams, fetchAPI } from './client';\n\nexport const sourceCodeAPI = {\n pairingIndex: (params?: ApiParams) =>\n fetchAPI<{ pairing_index_percentage: number; total_analyzed_commits: number; paired_commits: number }>(\n '/code/pairing-index',\n params\n ),\n \n entityChurn: (params?: ApiParams) =>\n fetchAPI<Array<{ entity: string; added: number; deleted: number; commits: number }>>(\n '/code/entity-churn',\n params\n ),\n \n codeChurn: (params?: ApiParams) =>\n fetchAPI<Array<{ date: string; type: string; value: number }>>(\n '/code/code-churn',\n params\n ),\n \n coupling: (params?: ApiParams) =>\n fetchAPI<Array<{ entity: string; coupled: string; degree: number }>>(\n '/code/coupling',\n params\n ),\n \n entityEffort: (params?: ApiParams) =>\n fetchAPI<Array<{ entity: string; 'total-revs': number }>>(\n '/code/entity-effort',\n params\n ),\n \n entityOwnership: (params?: ApiParams) =>\n fetchAPI<Array<{ entity: string; author: string; added: number; deleted: number }>>(\n '/code/entity-ownership',\n params\n ),\n \n getAuthors: () =>\n fetchAPI<string[]>('/code/authors'),\n};\n","import { ApiParams, fetchAPI } from './client';\n\nexport const pipelineAPI = {\n // Data endpoints\n byStatus: (params?: ApiParams) =>\n fetchAPI<Array<{ status: string; count: number }>>(\n '/pipelines/by-status',\n params\n ),\n \n jobsByStatus: (params?: ApiParams) =>\n fetchAPI<Array<{ Status: string; Count: number }>>(\n '/pipelines/jobs-by-status',\n params\n ),\n \n summary: (params?: ApiParams) =>\n fetchAPI<{\n total_runs: number;\n first_run: string | null;\n last_run: string | null;\n in_progress: number;\n queued: number;\n }>('/pipelines/summary', params),\n \n runsDuration: (params?: ApiParams) =>\n fetchAPI<Array<{ workflow: string; avg_duration: number; total_runs: number }>>(\n '/pipelines/runs-duration',\n params\n ),\n \n deploymentFrequency: (params?: ApiParams) =>\n fetchAPI<Array<{ days: string; weeks: string; months: string; daily_counts: number; weekly_counts: number; monthly_counts: number; commits: string; links: string }>>(\n '/pipelines/deployment-frequency',\n params\n ),\n \n runsBy: (params?: ApiParams) =>\n fetchAPI<Array<{ period: string; workflow: string; runs: number }>>(\n '/pipelines/runs-by',\n params\n ),\n \n jobsAverageTime: (params?: ApiParams) =>\n fetchAPI<Array<{ job_name: string; avg_time: number; count: number }>>(\n '/pipelines/jobs-average-time',\n params\n ),\n\n // Filter option endpoints\n getWorkflows: () =>\n fetchAPI<Array<{ name: string; path: string }>>('/pipelines/workflows'),\n\n getStatuses: () =>\n fetchAPI<string[]>('/pipelines/statuses'),\n\n getConclusions: () =>\n fetchAPI<string[]>('/pipelines/conclusions'),\n\n getBranches: () =>\n fetchAPI<string[]>('/pipelines/branches'),\n\n getEvents: () =>\n fetchAPI<string[]>('/pipelines/events'),\n\n getJobs: () =>\n fetchAPI<Array<{ name: string; id?: string }>>('/pipelines/jobs'),\n};\n","import { ApiParams, fetchAPI } from './client';\n\nexport const pullRequestAPI = {\n // Data endpoints\n summary: (params?: ApiParams) =>\n fetchAPI<{\n total: number;\n merged: number;\n closed: number;\n open: number;\n first_pr: string | null;\n last_pr: string | null;\n }>('/pull-requests/summary', params),\n \n byAuthor: (params?: ApiParams) =>\n fetchAPI<Array<{ author: string; count: number }>>(\n '/pull-requests/by-author',\n params\n ),\n \n averageReviewTime: (params?: ApiParams) =>\n fetchAPI<Array<{ author: string; avg_hours: number }>>(\n '/pull-requests/average-review-time',\n params\n ),\n \n openThroughTime: (params?: ApiParams) =>\n fetchAPI<Array<{ date: string; open_prs: number }>>(\n '/pull-requests/through-time',\n params\n ),\n \n averageOpenBy: (params?: ApiParams) =>\n fetchAPI<Array<{ period: string; avg_days: number }>>(\n '/pull-requests/average-open-by',\n params\n ),\n \n averageComments: (params?: ApiParams) =>\n fetchAPI<{ avg_comments: number }>('/pull-requests/average-comments', params),\n\n // Filter option endpoints\n getAuthors: () =>\n fetchAPI<string[]>('/pull-requests/authors'),\n\n getLabels: () =>\n fetchAPI<string[]>('/pull-requests/labels'),\n};\n","import { fetchAPI } from './client';\n\nexport interface DashboardConfiguration {\n result: {\n git_provider: string;\n github_repository: string;\n git_repository_location: string;\n store_data: boolean;\n deployment_frequency_target_pipeline: string | null;\n deployment_frequency_target_job: string | null;\n main_branch: string;\n dashboard_start_date: string | null;\n dashboard_end_date: string | null;\n dashboard_color: string;\n logging_level: string;\n jira_url: string | null;\n jira_email: string | null;\n jira_token: string | null;\n jira_project: string | null;\n };\n}\n\nexport const configurationAPI = {\n getConfiguration: () =>\n fetchAPI<DashboardConfiguration>('/configuration'),\n};\n","import { ApiParams } from '@/server/api';\n\nexport interface DashboardFilters {\n startDate: string;\n endDate: string;\n workflowSelector?: string;\n workflowStatus?: string[];\n workflowConclusions?: string[];\n jobSelector?: string[];\n branch?: string[];\n event?: string[];\n aggregateMetric?: string;\n ignorePatternFiles?: string;\n includePatternFiles?: string;\n authorSelectSourceCode?: string[];\n topEntries?: number;\n typeChurn?: string;\n authorSelect?: string[];\n labelSelector?: string[];\n aggregateBy?: string;\n}\n\n/**\n * Convert pipeline section filters to API parameters\n */\nexport function buildPipelineApiParams(filters: DashboardFilters): ApiParams {\n return {\n start_date: filters.startDate,\n end_date: filters.endDate,\n workflow_path: filters.workflowSelector,\n status: filters.workflowStatus?.length ? filters.workflowStatus.join(',') : undefined,\n conclusion: filters.workflowConclusions?.length ? filters.workflowConclusions.join(',') : undefined,\n job_name: filters.jobSelector?.length ? filters.jobSelector.join(',') : undefined,\n branch: filters.branch?.length ? filters.branch.join(',') : undefined,\n event: filters.event?.length ? filters.event.join(',') : undefined,\n metric: filters.aggregateMetric,\n };\n}\n\n/**\n * Convert source code section filters to API parameters\n */\nexport function buildSourceCodeApiParams(filters: DashboardFilters): ApiParams {\n return {\n start_date: filters.startDate,\n end_date: filters.endDate,\n ignore_files: filters.ignorePatternFiles || undefined,\n include_only: filters.includePatternFiles || undefined,\n authors: filters.authorSelectSourceCode?.length\n ? filters.authorSelectSourceCode.join(',')\n : undefined,\n top: filters.topEntries,\n type_churn: filters.typeChurn,\n };\n}\n\n/**\n * Convert pull request section filters to API parameters\n */\nexport function buildPullRequestApiParams(filters: DashboardFilters): ApiParams {\n return {\n start_date: filters.startDate,\n end_date: filters.endDate,\n authors: filters.authorSelect?.length ? filters.authorSelect.join(',') : undefined,\n labels: filters.labelSelector?.length ? filters.labelSelector.join(',') : undefined,\n aggregate_by: filters.aggregateBy,\n };\n}\n\n/**\n * Batch export for easy access to all builders\n */\nexport const apiParamBuilders = {\n pipeline: buildPipelineApiParams,\n sourceCode: buildSourceCodeApiParams,\n pullRequest: buildPullRequestApiParams,\n};\n","/**\n * Safely converts API response data to an array suitable for charts.\n * Handles wrapped responses, null/undefined, and already-formatted arrays.\n */\ntype WrappedResult = {\n result: unknown;\n};\n\nfunction hasWrappedResult(data: unknown): data is WrappedResult {\n return typeof data === 'object' && data !== null && 'result' in data;\n}\n\nexport function ensureArray<T>(data: unknown): T[] {\n if (Array.isArray(data)) {\n return data;\n }\n if (hasWrappedResult(data)) {\n if (Array.isArray(data.result)) {\n return data.result;\n }\n // If result is not an array, try to extract it\n return Array.isArray(data.result) ? data.result : [];\n }\n if (data === null || data === undefined) {\n return [];\n }\n // If it's an object that's not an array, return empty\n return [];\n}\n","import src from \"IMAGE\";\nexport default { src, width: 48, height: 48 }\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/PRsByAuthorCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/pull-requests/PRsByAuthorCard.tsx\",\n \"default\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/AverageReviewTimeCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/pull-requests/AverageReviewTimeCard.tsx\",\n \"default\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/OpenPRsThroughTimeCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/pull-requests/OpenPRsThroughTimeCard.tsx\",\n \"default\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/TopThemesCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/pull-requests/TopThemesCard.tsx\",\n \"default\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/AverageDaysPRsRemainOpenCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/pull-requests/AverageDaysPRsRemainOpenCard.tsx\",\n \"default\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/PRStatisticsCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/pull-requests/PRStatisticsCard.tsx\",\n \"default\",\n);\n","import { defaultFilters, parseDashboardFilters } from \"@/components/filters/DashboardFilters\";\nimport { pullRequestAPI } from '@/server/api';\nimport { buildPullRequestApiParams } from '@/server/utils/apiParams';\nimport { ensureArray } from '@/server/utils/chartData';\nimport PRsByAuthorCard from '@/components/charts/pull-requests/PRsByAuthorCard';\nimport AverageReviewTimeCard from '@/components/charts/pull-requests/AverageReviewTimeCard';\nimport OpenPRsThroughTimeCard from '@/components/charts/pull-requests/OpenPRsThroughTimeCard';\nimport TopThemesCard from '@/components/charts/pull-requests/TopThemesCard';\nimport AverageDaysPRsRemainOpenCard from '@/components/charts/pull-requests/AverageDaysPRsRemainOpenCard';\nimport PRStatisticsCard from '@/components/charts/pull-requests/PRStatisticsCard';\nimport {\n AvgCommentsData,\n AvgOpenByData,\n AvgReviewTimeData,\n ByAuthorData,\n OpenThroughTimeData,\n OpenThroughTimeResponseItem,\n SummaryData,\n ThemeData,\n} from '@/components/charts/pull-requests/types';\n\ntype ResultWrapper<T> = {\n result: T;\n};\n\nfunction unwrapResult<T>(data: T | ResultWrapper<T>): T {\n if (typeof data === 'object' && data !== null && 'result' in data) {\n return data.result;\n }\n return data;\n}\n\nexport default async function PullRequestsPage({\n searchParams,\n}: {\n searchParams: Promise<Record<string, string | string[] | undefined>>;\n}) {\n \n const filters = parseDashboardFilters(await searchParams ?? {}, defaultFilters);\n let byAuthor: ByAuthorData[] = [];\n let avgReviewTime: AvgReviewTimeData[] = [];\n let openThroughTime: OpenThroughTimeData[] = [];\n let avgOpenBy: AvgOpenByData[] = [];\n let avgComments: AvgCommentsData | null = null;\n let summary: SummaryData | null = null;\n let topThemes: ThemeData[] = [];\n\n try {\n const apiParams = buildPullRequestApiParams(filters);\n const [author, review, open, openBy, comments, summaryData] = await Promise.all([\n pullRequestAPI.byAuthor(apiParams),\n pullRequestAPI.averageReviewTime(apiParams),\n pullRequestAPI.openThroughTime(apiParams),\n pullRequestAPI.averageOpenBy(apiParams),\n pullRequestAPI.averageComments(apiParams),\n pullRequestAPI.summary(apiParams),\n ]);\n // Handle both direct array responses and wrapped responses\n byAuthor = ensureArray<ByAuthorData>(unwrapResult(author as ByAuthorData[] | ResultWrapper<ByAuthorData[]>));\n avgReviewTime = ensureArray<AvgReviewTimeData>(unwrapResult(review as AvgReviewTimeData[] | ResultWrapper<AvgReviewTimeData[]>));\n let openData = ensureArray<OpenThroughTimeResponseItem>(\n unwrapResult(open as OpenThroughTimeResponseItem[] | ResultWrapper<OpenThroughTimeResponseItem[]>)\n );\n // Transform data: group by date and pivot kind into opened/closed\n if (openData.length > 0) {\n const grouped = openData.reduce((acc: OpenThroughTimeData[], item: OpenThroughTimeResponseItem) => {\n const existing = acc.find((d: OpenThroughTimeData) => d.date === item.date);\n if (existing) {\n if (item.kind === 'Opened') {\n existing.opened = item.count || 0;\n } else if (item.kind === 'Closed') {\n existing.closed = item.count || 0;\n }\n } else {\n acc.push({\n date: item.date,\n opened: item.kind === 'Opened' ? (item.count || 0) : 0,\n closed: item.kind === 'Closed' ? (item.count || 0) : 0,\n });\n }\n return acc;\n }, []);\n openThroughTime = grouped;\n } else {\n openThroughTime = openData.map((item): OpenThroughTimeData => ({\n date: item.date,\n opened: item.open_prs || 0,\n closed: 0,\n }));\n }\n avgOpenBy = ensureArray<AvgOpenByData>(unwrapResult(openBy as AvgOpenByData[] | ResultWrapper<AvgOpenByData[]>));\n avgComments = unwrapResult(comments as AvgCommentsData | ResultWrapper<AvgCommentsData>);\n const summaryResult = unwrapResult(summaryData as SummaryData | ResultWrapper<SummaryData>);\n summary = summaryResult;\n // Extract top themes from summary and limit to top 10\n const themes = summaryResult?.top_themes || [];\n topThemes = Array.isArray(themes) ? themes.slice(0, 10) : [];\n } catch (error) {\n console.error('Error fetching PR data:', error);\n // Set empty arrays on error\n byAuthor = [];\n avgReviewTime = [];\n openThroughTime = [];\n avgOpenBy = [];\n avgComments = null;\n summary = null;\n topThemes = [];\n }\n\n return (\n <div className=\"space-y-6\">\n <div className=\"grid grid-cols-1 lg:grid-cols-2 gap-6\">\n <PRsByAuthorCard data={byAuthor} />\n <AverageReviewTimeCard data={avgReviewTime} />\n </div>\n\n <OpenPRsThroughTimeCard data={openThroughTime} />\n\n <TopThemesCard data={topThemes} />\n\n <div className=\"grid grid-cols-1 lg:grid-cols-2 gap-6\">\n <AverageDaysPRsRemainOpenCard data={avgOpenBy} />\n <PRStatisticsCard summary={summary} avgComments={avgComments} />\n </div>\n </div>\n );\n}\n"],"names":["_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_interop_require_wildcard","obj","__esModule","default","cache","has","get","newObj","__proto__","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","exports","_","InvariantError","Error","constructor","message","options","endsWith","name","sourceCodeAPI","pairingIndex","params","entityChurn","codeChurn","coupling","entityEffort","entityOwnership","getAuthors","buildPipelineApiParams","filters","start_date","startDate","end_date","endDate","workflow_path","workflowSelector","status","workflowStatus","length","join","undefined","conclusion","workflowConclusions","job_name","jobSelector","branch","event","metric","aggregateMetric","buildSourceCodeApiParams","ignore_files","ignorePatternFiles","include_only","includePatternFiles","authors","authorSelectSourceCode","top","topEntries","type_churn","typeChurn","buildPullRequestApiParams","authorSelect","labels","labelSelector","aggregate_by","aggregateBy","apiParamBuilders","pipeline","sourceCode","pullRequest","hasWrappedResult","data","ensureArray","Array","isArray","result","src","width","height","unwrapResult","PullRequestsPage","searchParams","byAuthor","avgReviewTime","openThroughTime","avgOpenBy","avgComments","summary","topThemes","apiParams","author","review","open","openBy","comments","summaryData","Promise","all","averageReviewTime","averageOpenBy","averageComments","openData","grouped","reduce","acc","item","existing","find","d","date","kind","opened","count","closed","push","map","open_prs","summaryResult","themes","top_themes","slice","error","console","className"],"mappings":"6CAEA,SAASA,EAAyBC,CAAW,EACzC,GAAuB,AAAnB,mBAAOC,QAAwB,OAAO,KAE1C,IAAIC,EAAoB,IAAID,QACxBE,EAAmB,IAAIF,QAE3B,MAAO,CAACF,EAA2B,SAASC,CAAW,EACnD,OAAOA,EAAcG,EAAmBD,EAC5C,CAAC,CAAEF,EACP,CA0BAuB,EAAQC,CAAC,CAzBT,EAyBYpB,OAzBHA,AAA0BC,CAAG,CAAEL,CAAW,EAC/C,GAAI,CAACA,GAAeK,GAAOA,EAAIC,UAAU,CAAE,OAAOD,EAClD,GAAY,OAARA,GAA+B,UAAf,OAAOA,GAAmC,YAAf,OAAOA,EAAoB,MAAO,CAAEE,QAASF,CAAI,EAEhG,IAAIG,EAAQT,EAAyBC,GAErC,GAAIQ,GAASA,EAAMC,GAAG,CAACJ,GAAM,OAAOG,EAAME,GAAG,CAACL,GAE9C,IAAIM,EAAS,CAAEC,UAAW,IAAK,EAC3BC,EAAwBC,OAAOC,cAAc,EAAID,OAAOE,wBAAwB,CAEpF,IAAK,IAAIC,KAAOZ,EACZ,EADiB,CACL,YAARY,GAAqBH,OAAOI,SAAS,CAACC,cAAc,CAACC,IAAI,CAACf,EAAKY,GAAM,CACrE,IAAII,EAAOR,EAAwBC,OAAOE,wBAAwB,CAACX,EAAKY,GAAO,KAC3EI,IAASA,EAAKX,EAAN,CAAS,EAAIW,EAAKC,GAAAA,AAAG,EAAGR,OAAOC,cAAc,CAACJ,EAAQM,EAAKI,GAClEV,CAAM,CAACM,EAAI,CAAGZ,CAAG,CAACY,EAAI,AAC/B,CAOJ,OAJAN,EAAOJ,OAAO,CAAGF,EAEbG,GAAOA,EAAMc,GAAG,CAACjB,EAAKM,GAEnBA,CACX,gQCpCac,iBAAAA,qCAAAA,IAAN,OAAMA,UAAuBC,MAClCC,YAAYC,CAAe,CAAEC,CAAsB,CAAE,CACnD,KAAK,CACH,CAAC,WAAW,EAAED,EAAQE,QAAQ,CAAC,KAAOF,EAAUA,EAAU,IAAI,0BAA0B,CAAC,CACzFC,GAEF,IAAI,CAACE,IAAI,CAAG,gBACd,CACF,2CCRA,IAAA,EAAA,EAAA,CAAA,CAAA,6BAE6B,CAC3BE,aAAc,AAACC,GACb,CAAA,EAAA,EAAA,QAAA,AAAQ,EACN,sBACAA,GAGJC,YAAa,AAACD,GACZ,CAAA,EAAA,EAAA,QAAA,AAAQ,EACN,qBACAA,GAGJE,UAAW,AAACF,GACV,CAAA,EAAA,EAAA,QAAA,AAAQ,EACN,mBACAA,GAGJG,SAAU,AAACH,GACT,CAAA,EAAA,EAAA,QAAA,AAAQ,EACN,iBACAA,GAGJI,aAAc,AAACJ,GACb,CAAA,EAAA,EAAA,QAAA,AAAQ,EACN,sBACAA,GAGJK,gBAAiB,AAACL,GAChB,CAAA,EAAA,EAAA,QAAA,AAAQ,EACN,yBACAA,GAGJM,WAAY,IACV,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAW,gBACvB,+BCvC2B,CAEzB,SAAU,AAAC,GACT,CAAA,EAAA,EAAA,QAAA,AAAQ,EACN,uBACA,GAGJ,aAAc,AAAC,GACb,CAAA,EAAA,EAAA,QAAA,AAAQ,EACN,4BACA,GAGJ,QAAS,AAAC,GACR,CAAA,EAAA,EAAA,QAAA,AAAQ,EAML,qBAAsB,GAE3B,aAAc,AAAC,GACb,CAAA,EAAA,EAAA,QAAA,AAAQ,EACN,2BACA,GAGJ,oBAAqB,AAAC,GACpB,CAAA,EAAA,EAAA,QAAA,AAAQ,EACN,kCACA,GAGJ,OAAQ,AAAC,GACP,CAAA,EAAA,EAAA,QAAA,AAAQ,EACN,qBACA,GAGJ,gBAAiB,AAAC,GAChB,CAAA,EAAA,EAAA,QAAA,AAAQ,EACN,+BACA,GAIJ,aAAc,IACZ,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAwC,wBAElD,YAAa,IACX,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAmB,uBAErB,eAAgB,IACd,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAW,0BAErB,YAAa,IACX,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAW,uBAErB,UAAW,IACT,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAW,qBAErB,QAAS,IACP,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAuC,kBACnD,iCCjE8B,CAE5B,QAAS,AAAC,GACR,CAAA,EAAA,EAAA,QAAA,AAAQ,EAOL,yBAA0B,GAE/B,SAAU,AAAC,GACT,CAAA,EAAA,EAAA,QAAA,AAAQ,EACN,2BACAN,GAGJ,kBAAoB,AAAD,GACjB,CAAA,EAAA,EAAA,QAAA,AAAQ,EACN,qCACA,GAGJ,gBAAiB,AAAC,GAChB,CAAA,EAAA,EAAA,QAAQ,AAAR,EACE,8BACA,GAGJ,cAAgB,AAAD,GACb,CAAA,EAAA,EAAA,QAAA,AAAQ,EACN,iCACA,GAGJ,gBAAiB,AAAC,GAChB,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAmC,kCAAmC,GAGxE,WAAY,IACV,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAW,0BAErB,UAAW,IACT,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAW,wBACvB,gFEtBO,SAASO,AAAuBC,CAAyB,EAC9D,MAAO,CACLC,WAAYD,EAAQE,SAAS,CAC7BC,SAAUH,EAAQI,OAAO,CACzBC,cAAeL,EAAQM,gBAAgB,CACvCC,OAAQP,EAAQQ,cAAc,EAAEC,OAAST,EAAQQ,cAAc,CAACE,IAAI,CAAC,UAAOC,EAC5EC,WAAYZ,EAAQa,mBAAmB,EAAEJ,OAAST,EAAQa,mBAAmB,CAACH,IAAI,CAAC,UAAOC,EAC1FG,SAAUd,EAAQe,WAAW,EAAEN,OAAST,EAAQe,WAAW,CAACL,IAAI,CAAC,KAAOC,OACxEK,OAAQhB,EAAQgB,MAAM,EAAEP,OAAST,EAAQgB,MAAM,CAACN,IAAI,CAAC,UAAOC,EAC5DM,MAAOjB,EAAQiB,KAAK,EAAER,OAAST,EAAQiB,KAAK,CAACP,IAAI,CAAC,UAAOC,EACzDO,OAAQlB,EAAQmB,eAAe,AACjC,CACF,gCAsBO,SAASY,AAA0B/B,CAAyB,EACjE,MAAO,CACLC,WAAYD,EAAQE,SAAS,CAC7BC,SAAUH,EAAQI,OAAO,CACzBqB,QAASzB,EAAQgC,YAAY,EAAEvB,OAAST,EAAQgC,YAAY,CAACtB,IAAI,CAAC,UAAOC,EACzEsB,OAAQjC,EAAQkC,aAAa,EAAEzB,OAAST,EAAQkC,aAAa,CAACxB,IAAI,CAAC,UAAOC,EAC1EwB,aAAcnC,EAAQoC,WACxB,AADmC,CAErC,+BAzBO,SAAShB,AAAyBpB,CAAyB,EAChE,MAAO,CACLC,WAAYD,EAAQE,SAAS,CAC7BC,SAAUH,EAAQI,OAAO,CACzBiB,aAAcrB,EAAQsB,kBAAkB,OAAIX,EAC5CY,aAAcvB,EAAQwB,mBAAmB,OAAIb,EAC7Cc,QAASzB,EAAQ0B,sBAAsB,EAAEjB,OACrCT,EAAQ0B,sBAAsB,CAAChB,IAAI,CAAC,KACpCC,OACJgB,IAAK3B,EAAQ4B,UAAU,CACvBC,WAAY7B,EAAQ8B,SAAS,AAC/B,CACF,iDC1CO,SAASa,AAAeD,CAAa,SAC1C,AAAIE,MAAMC,OAAO,CAACH,GACTA,EALc,EAIE,QAJlB,OAAOA,GAA8B,AAATA,UAAiB,WAO/BA,CAP2CA,CAQ1DE,KADsB,CAChBC,OAAO,CAACH,EAAKI,MAAM,GAItBF,AAJyB,MAInBC,OAAO,CAACH,EAAKI,MAAM,EAAIJ,EAAKI,MAAM,CAAG,EAAE,CAM/C,EAAE,AACX,2IC3Be,CAAEC,IAAAA,AADjB,EAAA,CAAA,CAAA,MACiBA,OAAG,CAAEC,MAAO,GAAIC,OAAQ,EAAG,4ECC7B,CAAA,EADf,AACe,EADf,CAAA,CAAA,OACe,uBAAA,AAAuB,EAClC,WAAa,MAAM,AAAIjE,MAAM,iUAAmU,EAChW,gGACA,gEAHW,CAAA,EADf,AACe,EADf,CAAA,CAAA,OACe,uBAAA,AAAuB,EAClC,WAAa,MAAM,AAAIA,MAAM,6SAA+S,EAC5U,4EACA,2HCHW,CAAA,EAAA,AADf,EAAA,CAAA,CAAA,OACe,uBAAA,AAAuB,EAClC,WAAa,MAAM,AAAIA,MAAM,uUAAyU,EACtW,sGACA,gEAHW,CAAA,EADf,AACe,EADf,CAAA,CAAA,OACe,uBAAA,AAAuB,EAClC,WAAa,MAAM,AAAIA,MAAM,mTAAqT,EAClV,kFACA,2HCHW,CAAA,EADf,AACe,EADf,CAAA,CAAA,OACe,uBAAuB,AAAvB,EACX,WAAa,MAAUA,AAAJ,MAAU,wUAA0U,EACvW,uGACA,gEAHW,CAAA,EADf,AACe,EADf,CAAA,CAAA,OACe,uBAAA,AAAuB,EAClC,WAAa,MAAM,AAAIA,MAAM,oTAAsT,EACnV,mFACA,2HCHW,CAAA,EAAA,AADf,EAAA,CAAA,CAAA,OACe,uBAAA,AAAuB,EAClC,WAAa,MAAM,AAAIA,MAAM,+TAAiU,EAC9V,8FACA,gEAHW,CAAA,EADf,AACe,EADf,CAAA,CAAA,OACe,uBAAA,AAAuB,EAClC,WAAa,MAAM,AAAIA,MAAM,2SAA6S,EAC1U,0EACA,2HCHW,CAAA,EADf,AACe,EADf,CAAA,CAAA,OACe,uBAAA,AAAuB,EAClC,WAAa,MAAM,AAAIA,MAAM,8UAAgV,EAC7W,6GACA,gEAHW,CAAA,EAAA,AADf,EAAA,CAAA,CAAA,OACe,uBAAA,AAAuB,EAClC,WAAa,MAAM,AAAIA,MAAM,0TAA4T,EACzV,yFACA,0HCHW,CAAA,EAAA,AADf,EAAA,CAAA,CAAA,OACe,uBAAA,AAAuB,EAClC,WAAa,MAAM,AAAIA,MAAM,kUAAoU,EACjW,iGACA,+DAHW,CAAA,EADf,AACe,EADf,CAAA,CAAA,OACe,uBAAA,AAAuB,EAClC,WAAa,MAAM,AAAIA,MAAM,8SAAgT,EAC7U,6EACA,6GCLJ,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,CAAA,CAAA,OAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAgBA,SAASkE,EAAgBR,CAA0B,QAC7C,AAAgB,AAApB,iBAAWA,GAA8B,OAATA,GAAiB,WAAYA,EACpDA,EAAKI,EADqD,IAC/C,CAEbJ,CACT,CAEe,eAAeS,EAAiB,cAC7CC,CAAY,CAGb,EAEC,IAAMpD,EAAU,CAAA,EAAA,EAAA,qBAAA,AAAqB,EAAC,MAAMoD,GAAgB,CAAC,EAAG,EAAA,cAAc,EAC1EC,EAA2B,EAAE,CAC7BC,EAAqC,EAAE,CACvCC,EAAyC,EAAE,CAC3CC,EAA6B,EAAE,CAC/BC,EAAsC,KACtCC,EAA8B,KAC9BC,EAAyB,EAAE,CAE/B,GAAI,CACF,IAAMC,EAAY,CAAA,EAAA,EAAA,yBAAA,AAAyB,EAAC5D,GACtC,CAAC6D,EAAQC,EAAQC,EAAMC,EAAQC,EAAUC,EAAY,CAAG,MAAMC,QAAQC,GAAG,CAAC,CAC9E,EAAA,cAAc,CAACf,QAAQ,CAACO,GACxB,EAAA,cAAc,CAACS,iBAAiB,CAACT,GACjC,EAAA,cAAc,CAACL,eAAe,CAACK,GAC/B,EAAA,cAAc,CAACU,aAAa,CAACV,GAC7B,EAAA,cAAc,CAACW,eAAe,CAACX,GAC/B,EAAA,cAAc,CAACF,OAAO,CAACE,GACxB,EAEDP,EAAW,CAAA,EAAA,EAAA,WAAW,AAAX,EAA0BH,EAAaW,IAClDP,EAAgB,CAAA,EAAA,EAAA,WAAA,AAAW,EAAoBJ,EAAaY,IAC5D,IAAIU,EAAW,CAAA,EAAA,EAAA,WAAA,AAAW,EACxBtB,EAAaa,IAqBbR,EAlBEiB,EAAS/D,MAAM,CAAG,EACJ+D,CADO,CACEE,GAiBPD,GAjBa,CAAC,CAACE,EAA4BC,KAC3D,IAAMC,EAAWF,EAAIG,IAAI,CAAC,AAACC,GAA2BA,EAAEC,IAAI,GAAKJ,EAAKI,IAAI,EAc1E,OAbIH,EACgB,QADN,EACgB,CAAxBD,EAAKK,IAAI,CACXJ,EAASK,MAAM,CAAGN,EAAKO,KAAK,EAAI,EACT,UAAU,CAAxBP,EAAKK,IAAI,GAClBJ,EAASO,MAAM,CAAGR,EAAKO,KAAK,GAAI,EAGlCR,EAAIU,IAAI,CAAC,CACPL,KAAMJ,EAAKI,IAAI,CACfE,OAAsB,WAAdN,EAAKK,IAAI,EAAiBL,EAAKO,KAAK,EAAI,EAChDC,EADqD,KAC/B,WAAdR,EAAKK,IAAI,EAAiBL,EAAKO,KAAK,EAAI,CAClD,GADuD,AAGlDR,CACT,EAAG,EAAE,EAGaH,EAASc,GAAG,CAAC,AAACV,GAA+B,EAC7DI,EAD4D,GACtDJ,EAAKI,IAAI,CACfE,OAAQN,EAAKW,QAAQ,EAAI,EACzBH,OAAQ,EACV,CAAC,EAEH5B,EAAY,CAAA,EAAA,EAAA,WAAA,AAAW,EAAgBN,EAAac,IACpDP,EAAcP,EAAae,GAC3B,IAAMuB,EAAgBtC,EAAagB,GACnCR,EAAU8B,EAEV,IAAMC,EAASD,GAAeE,YAAc,EAAE,CAC9C/B,EAAYf,MAAMC,OAAO,CAAC4C,GAAUA,EAAOE,KAAK,CAAC,EAAG,IAAM,EAAE,AAC9D,CAAE,MAAOC,EAAO,CACdC,QAAQD,KAAK,CAAC,0BAA2BA,GAEzCvC,EAAW,EAAE,CACbC,EAAgB,EAAE,CAClBC,EAAkB,EAAE,CACpBC,EAAY,EAAE,CACdC,EAAc,KACdC,EAAU,KACVC,EAAY,EAAE,AAChB,CAEA,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAImC,UAAU,sBACb,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAIA,UAAU,kDACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,OAAe,CAAA,CAACpD,KAAMW,IACvB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,OAAqB,CAAA,CAACX,KAAMY,OAG/B,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,OAAsB,CAAA,CAACZ,KAAMa,IAE9B,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,OAAa,CAAA,CAACb,KAAMiB,IAErB,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAImC,UAAU,kDACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,OAA4B,CAAA,CAACpD,KAAMc,IACpC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,OAAgB,CAAA,CAACE,QAASA,EAASD,YAAaA,SAIzD","ignoreList":[0,1,9,10,11,12,13,14]}
|
|
1
|
+
{"version":3,"sources":["../../../../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_wildcard.cjs","../../../../../../node_modules/.pnpm/next%4016.2.1_%40babel%2Bcore%407.29.0_babel-plugin-macros%403.1.0_react-dom%4019.2.3_react%4019.2.3__react%4019.2.3/node_modules/next/src/shared/lib/invariant-error.ts","../../../../../../apps/webapp/server/api/sourceCode.ts","../../../../../../apps/webapp/server/api/pipeline.ts","../../../../../../apps/webapp/server/api/pullRequest.ts","../../../../../../apps/webapp/server/api/configuration.ts","../../../../../../apps/webapp/server/utils/apiParams.ts","../../../../../../apps/webapp/server/utils/chartData.ts","../../../../../../apps/webapp/app/favicon.ico.mjs%20%28structured%20image%20object%29","../../../../../../apps/webapp/components/charts/pull-requests/PRsByAuthorCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/components/charts/pull-requests/AverageReviewTimeCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/components/charts/pull-requests/OpenPRsThroughTimeCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/components/charts/pull-requests/TopThemesCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/components/charts/pull-requests/AverageDaysPRsRemainOpenCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/components/charts/pull-requests/PRStatisticsCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/app/dashboard/pull-requests/page.tsx"],"sourcesContent":["\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","export class InvariantError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(\n `Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`,\n options\n )\n this.name = 'InvariantError'\n }\n}\n","import { ApiParams, fetchAPI } from './client';\n\nexport const sourceCodeAPI = {\n pairingIndex: (params?: ApiParams) =>\n fetchAPI<{ pairing_index_percentage: number; total_analyzed_commits: number; paired_commits: number }>(\n '/code/pairing-index',\n params\n ),\n \n entityChurn: (params?: ApiParams) =>\n fetchAPI<Array<{ entity: string; added: number; deleted: number; commits: number }>>(\n '/code/entity-churn',\n params\n ),\n \n codeChurn: (params?: ApiParams) =>\n fetchAPI<Array<{ date: string; type: string; value: number }>>(\n '/code/code-churn',\n params\n ),\n \n coupling: (params?: ApiParams) =>\n fetchAPI<Array<{ entity: string; coupled: string; degree: number; averageRevs: number }>>(\n '/code/coupling',\n params\n ),\n \n entityEffort: (params?: ApiParams) =>\n fetchAPI<Array<{ entity: string; 'total-revs': number }>>(\n '/code/entity-effort',\n params\n ),\n \n entityOwnership: (params?: ApiParams) =>\n fetchAPI<Array<{ entity: string; author: string; added: number; deleted: number }>>(\n '/code/entity-ownership',\n params\n ),\n \n getAuthors: () =>\n fetchAPI<string[]>('/code/authors'),\n};\n","import { ApiParams, fetchAPI } from './client';\n\nexport const pipelineAPI = {\n // Data endpoints\n byStatus: (params?: ApiParams) =>\n fetchAPI<Array<{ status: string; count: number }>>(\n '/pipelines/by-status',\n params\n ),\n \n jobsByStatus: (params?: ApiParams) =>\n fetchAPI<Array<{ Status: string; Count: number }>>(\n '/pipelines/jobs-by-status',\n params\n ),\n \n summary: (params?: ApiParams) =>\n fetchAPI<{\n total_runs: number;\n first_run: string | null;\n last_run: string | null;\n in_progress: number;\n queued: number;\n }>('/pipelines/summary', params),\n \n runsDuration: (params?: ApiParams) =>\n fetchAPI<Array<{ workflow: string; avg_duration: number; total_runs: number }>>(\n '/pipelines/runs-duration',\n params\n ),\n \n deploymentFrequency: (params?: ApiParams) =>\n fetchAPI<Array<{ days: string; weeks: string; months: string; daily_counts: number; weekly_counts: number; monthly_counts: number; commits: string; links: string }>>(\n '/pipelines/deployment-frequency',\n params\n ),\n \n runsBy: (params?: ApiParams) =>\n fetchAPI<Array<{ period: string; workflow: string; runs: number }>>(\n '/pipelines/runs-by',\n params\n ),\n \n jobsAverageTime: (params?: ApiParams) =>\n fetchAPI<Array<{ job_name: string; avg_time: number; count: number }>>(\n '/pipelines/jobs-average-time',\n params\n ),\n\n // Filter option endpoints\n getWorkflows: () =>\n fetchAPI<Array<{ name: string; path: string }>>('/pipelines/workflows'),\n\n getStatuses: () =>\n fetchAPI<string[]>('/pipelines/statuses'),\n\n getConclusions: () =>\n fetchAPI<string[]>('/pipelines/conclusions'),\n\n getBranches: () =>\n fetchAPI<string[]>('/pipelines/branches'),\n\n getEvents: () =>\n fetchAPI<string[]>('/pipelines/events'),\n\n getJobs: () =>\n fetchAPI<Array<{ name: string; id?: string }>>('/pipelines/jobs'),\n};\n","import { ApiParams, fetchAPI } from './client';\n\nexport const pullRequestAPI = {\n // Data endpoints\n summary: (params?: ApiParams) =>\n fetchAPI<{\n total: number;\n merged: number;\n closed: number;\n open: number;\n first_pr: string | null;\n last_pr: string | null;\n top_themes: string[];\n labels: Array<{ label: string; prs: number }>;\n }>('/pull-requests/summary', params),\n \n byAuthor: (params?: ApiParams) =>\n fetchAPI<Array<{ author: string; count: number }>>(\n '/pull-requests/by-author',\n params\n ),\n \n averageReviewTime: (params?: ApiParams) =>\n fetchAPI<Array<{ author: string; avg_hours: number }>>(\n '/pull-requests/average-review-time',\n params\n ),\n \n openThroughTime: (params?: ApiParams) =>\n fetchAPI<Array<{ date: string; open_prs: number }>>(\n '/pull-requests/through-time',\n params\n ),\n \n averageOpenBy: (params?: ApiParams) =>\n fetchAPI<Array<{ period: string; avg_days: number }>>(\n '/pull-requests/average-open-by',\n params\n ),\n \n averageComments: (params?: ApiParams) =>\n fetchAPI<{ avg_comments: number }>('/pull-requests/average-comments', params),\n\n // Filter option endpoints\n getAuthors: () =>\n fetchAPI<string[]>('/pull-requests/authors'),\n\n getLabels: () =>\n fetchAPI<string[]>('/pull-requests/labels'),\n};\n","import { fetchAPI } from './client';\n\nexport interface DashboardConfiguration {\n result: {\n git_provider: string;\n github_repository: string;\n git_repository_location: string;\n store_data: boolean;\n deployment_frequency_target_pipeline: string | null;\n deployment_frequency_target_job: string | null;\n main_branch: string;\n dashboard_start_date: string | null;\n dashboard_end_date: string | null;\n dashboard_color: string;\n logging_level: string;\n jira_url: string | null;\n jira_email: string | null;\n jira_token: string | null;\n jira_project: string | null;\n };\n}\n\nexport const configurationAPI = {\n getConfiguration: () =>\n fetchAPI<DashboardConfiguration>('/configuration'),\n};\n","import { ApiParams } from '@/server/api';\n\nexport interface DashboardFilters {\n startDate: string;\n endDate: string;\n workflowSelector?: string;\n workflowStatus?: string[];\n workflowConclusions?: string[];\n jobSelector?: string[];\n branch?: string[];\n event?: string[];\n aggregateMetric?: string;\n ignorePatternFiles?: string;\n includePatternFiles?: string;\n authorSelectSourceCode?: string[];\n topEntries?: number;\n typeChurn?: string;\n authorSelect?: string[];\n labelSelector?: string[];\n aggregateBy?: string;\n}\n\n/**\n * Convert pipeline section filters to API parameters\n */\nexport function buildPipelineApiParams(filters: DashboardFilters): ApiParams {\n return {\n start_date: filters.startDate,\n end_date: filters.endDate,\n workflow_path: filters.workflowSelector,\n status: filters.workflowStatus?.length ? filters.workflowStatus.join(',') : undefined,\n conclusion: filters.workflowConclusions?.length ? filters.workflowConclusions.join(',') : undefined,\n job_name: filters.jobSelector?.length ? filters.jobSelector.join(',') : undefined,\n branch: filters.branch?.length ? filters.branch.join(',') : undefined,\n event: filters.event?.length ? filters.event.join(',') : undefined,\n metric: filters.aggregateMetric,\n };\n}\n\n/**\n * Convert source code section filters to API parameters\n */\nexport function buildSourceCodeApiParams(filters: DashboardFilters): ApiParams {\n return {\n start_date: filters.startDate,\n end_date: filters.endDate,\n ignore_files: filters.ignorePatternFiles || undefined,\n include_only: filters.includePatternFiles || undefined,\n authors: filters.authorSelectSourceCode?.length\n ? filters.authorSelectSourceCode.join(',')\n : undefined,\n top: filters.topEntries,\n type_churn: filters.typeChurn,\n };\n}\n\n/**\n * Convert pull request section filters to API parameters\n */\nexport function buildPullRequestApiParams(filters: DashboardFilters): ApiParams {\n return {\n start_date: filters.startDate,\n end_date: filters.endDate,\n authors: filters.authorSelect?.length ? filters.authorSelect.join(',') : undefined,\n labels: filters.labelSelector?.length ? filters.labelSelector.join(',') : undefined,\n aggregate_by: filters.aggregateBy,\n };\n}\n\n/**\n * Batch export for easy access to all builders\n */\nexport const apiParamBuilders = {\n pipeline: buildPipelineApiParams,\n sourceCode: buildSourceCodeApiParams,\n pullRequest: buildPullRequestApiParams,\n};\n","/**\n * Safely converts API response data to an array suitable for charts.\n * Handles wrapped responses, null/undefined, and already-formatted arrays.\n */\ntype WrappedResult = {\n result: unknown;\n};\n\nfunction hasWrappedResult(data: unknown): data is WrappedResult {\n return typeof data === 'object' && data !== null && 'result' in data;\n}\n\nexport function ensureArray<T>(data: unknown): T[] {\n if (Array.isArray(data)) {\n return data;\n }\n if (hasWrappedResult(data)) {\n if (Array.isArray(data.result)) {\n return data.result;\n }\n // If result is not an array, try to extract it\n return Array.isArray(data.result) ? data.result : [];\n }\n if (data === null || data === undefined) {\n return [];\n }\n // If it's an object that's not an array, return empty\n return [];\n}\n","import src from \"IMAGE\";\nexport default { src, width: 48, height: 48 }\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/PRsByAuthorCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/pull-requests/PRsByAuthorCard.tsx\",\n \"default\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/AverageReviewTimeCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/pull-requests/AverageReviewTimeCard.tsx\",\n \"default\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/OpenPRsThroughTimeCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/pull-requests/OpenPRsThroughTimeCard.tsx\",\n \"default\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/TopThemesCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/pull-requests/TopThemesCard.tsx\",\n \"default\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/AverageDaysPRsRemainOpenCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/pull-requests/AverageDaysPRsRemainOpenCard.tsx\",\n \"default\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/pull-requests/PRStatisticsCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/pull-requests/PRStatisticsCard.tsx\",\n \"default\",\n);\n","import {defaultFilters, parseDashboardFilters} from \"@/components/filters/DashboardFilters\";\nimport {pullRequestAPI} from '@/server/api';\nimport {buildPullRequestApiParams} from '@/server/utils/apiParams';\nimport {ensureArray} from '@/server/utils/chartData';\nimport PRsByAuthorCard from '@/components/charts/pull-requests/PRsByAuthorCard';\nimport AverageReviewTimeCard from '@/components/charts/pull-requests/AverageReviewTimeCard';\nimport OpenPRsThroughTimeCard from '@/components/charts/pull-requests/OpenPRsThroughTimeCard';\nimport TopThemesCard from '@/components/charts/pull-requests/TopThemesCard';\nimport AverageDaysPRsRemainOpenCard from '@/components/charts/pull-requests/AverageDaysPRsRemainOpenCard';\nimport PRStatisticsCard from '@/components/charts/pull-requests/PRStatisticsCard';\nimport {\n AvgCommentsData,\n AvgOpenByData,\n AvgReviewTimeData,\n ByAuthorData,\n OpenThroughTimeData,\n OpenThroughTimeResponseItem,\n SummaryData,\n} from '@/components/charts/pull-requests/types';\n\ntype ResultWrapper<T> = {\n result: T;\n};\n\nfunction unwrapResult<T>(data: T | ResultWrapper<T>): T {\n if (typeof data === 'object' && data !== null && 'result' in data) {\n return data.result;\n }\n return data;\n}\n\nexport default async function PullRequestsPage({\n searchParams,\n}: {\n searchParams: Promise<Record<string, string | string[] | undefined>>;\n}) {\n \n const filters = parseDashboardFilters(await searchParams ?? {}, defaultFilters);\n let byAuthor: ByAuthorData[] = [];\n let avgReviewTime: AvgReviewTimeData[] = [];\n let openThroughTime: OpenThroughTimeData[] = [];\n let avgOpenBy: AvgOpenByData[] = [];\n let avgComments: AvgCommentsData | null = null;\n let summary: SummaryData | null = null;\n let topThemes: string[] = [];\n\n try {\n const apiParams = buildPullRequestApiParams(filters);\n const [author, review, open, openBy, comments, summaryData] = await Promise.all([\n pullRequestAPI.byAuthor(apiParams),\n pullRequestAPI.averageReviewTime(apiParams),\n pullRequestAPI.openThroughTime(apiParams),\n pullRequestAPI.averageOpenBy(apiParams),\n pullRequestAPI.averageComments(apiParams),\n pullRequestAPI.summary(apiParams),\n ]);\n // Handle both direct array responses and wrapped responses\n byAuthor = ensureArray<ByAuthorData>(unwrapResult(author as ByAuthorData[] | ResultWrapper<ByAuthorData[]>));\n avgReviewTime = ensureArray<AvgReviewTimeData>(unwrapResult(review as AvgReviewTimeData[] | ResultWrapper<AvgReviewTimeData[]>));\n let openData = ensureArray<OpenThroughTimeResponseItem>(\n unwrapResult(open as OpenThroughTimeResponseItem[] | ResultWrapper<OpenThroughTimeResponseItem[]>)\n );\n // Transform data: group by date and pivot kind into opened/closed\n if (openData.length > 0) {\n openThroughTime = openData.reduce((acc: OpenThroughTimeData[], item: OpenThroughTimeResponseItem) => {\n const existing = acc.find((d: OpenThroughTimeData) => d.date === item.date);\n if (existing) {\n if (item.kind === 'Opened') {\n existing.opened = item.count || 0;\n } else if (item.kind === 'Closed') {\n existing.closed = item.count || 0;\n }\n } else {\n acc.push({\n date: item.date,\n opened: item.kind === 'Opened' ? (item.count || 0) : 0,\n closed: item.kind === 'Closed' ? (item.count || 0) : 0,\n });\n }\n return acc;\n }, []);\n } else {\n openThroughTime = openData.map((item): OpenThroughTimeData => ({\n date: item.date,\n opened: item.open_prs || 0,\n closed: 0,\n }));\n }\n avgOpenBy = ensureArray<AvgOpenByData>(unwrapResult(openBy as AvgOpenByData[] | ResultWrapper<AvgOpenByData[]>));\n avgComments = unwrapResult(comments as AvgCommentsData | ResultWrapper<AvgCommentsData>);\n const summaryResult = unwrapResult(summaryData as SummaryData | ResultWrapper<SummaryData>);\n summary = summaryResult;\n topThemes = Array.isArray(summaryResult?.top_themes)\n ? summaryResult.top_themes.filter((theme): theme is string => typeof theme === 'string').slice(0, 10)\n : [];\n } catch (error) {\n console.error('Error fetching PR data:', error);\n // Set empty arrays on error\n }\n\n return (\n <div className=\"space-y-6\">\n <div className=\"grid grid-cols-1 gap-6\">\n <AverageReviewTimeCard data={avgReviewTime} />\n </div>\n <div className=\"grid grid-cols-1 gap-6\">\n <PRsByAuthorCard data={byAuthor} />\n </div>\n\n <OpenPRsThroughTimeCard data={openThroughTime} />\n\n <TopThemesCard data={topThemes} />\n\n <div className=\"grid grid-cols-1 lg:grid-cols-2 gap-6\">\n <AverageDaysPRsRemainOpenCard data={avgOpenBy} />\n <PRStatisticsCard summary={summary} avgComments={avgComments} />\n </div>\n </div>\n );\n}\n"],"names":["_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_interop_require_wildcard","obj","__esModule","default","cache","has","get","newObj","__proto__","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","exports","_","InvariantError","Error","constructor","message","options","endsWith","name","sourceCodeAPI","pairingIndex","params","entityChurn","codeChurn","coupling","entityEffort","entityOwnership","getAuthors","buildPipelineApiParams","filters","start_date","startDate","end_date","endDate","workflow_path","workflowSelector","status","workflowStatus","length","join","undefined","conclusion","workflowConclusions","job_name","jobSelector","branch","event","metric","aggregateMetric","buildSourceCodeApiParams","ignore_files","ignorePatternFiles","include_only","includePatternFiles","authors","authorSelectSourceCode","top","topEntries","type_churn","typeChurn","buildPullRequestApiParams","authorSelect","labels","labelSelector","aggregate_by","aggregateBy","apiParamBuilders","pipeline","sourceCode","pullRequest","hasWrappedResult","data","ensureArray","Array","isArray","result","src","width","height","unwrapResult","PullRequestsPage","searchParams","byAuthor","avgReviewTime","openThroughTime","avgOpenBy","avgComments","summary","topThemes","apiParams","author","review","open","openBy","comments","summaryData","Promise","all","averageReviewTime","averageOpenBy","averageComments","openData","reduce","acc","item","existing","find","d","date","kind","opened","count","closed","push","map","open_prs","summaryResult","top_themes","filter","theme","slice","error","console","className"],"mappings":"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","ignoreList":[0,1,9,10,11,12,13,14]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_wildcard.cjs","../../../../../../node_modules/.pnpm/next%4016.2.1_%40babel%2Bcore%407.29.0_babel-plugin-macros%403.1.0_react-dom%4019.2.3_react%4019.2.3__react%4019.2.3/node_modules/next/src/shared/lib/invariant-error.ts","../../../../../../apps/webapp/server/api/sourceCode.ts","../../../../../../apps/webapp/server/api/pipeline.ts","../../../../../../apps/webapp/server/api/pullRequest.ts","../../../../../../apps/webapp/server/api/configuration.ts","../../../../../../apps/webapp/server/utils/apiParams.ts","../../../../../../apps/webapp/server/utils/chartData.ts","../../../../../../apps/webapp/app/favicon.ico.mjs%20%28structured%20image%20object%29","../../../../../../apps/webapp/components/charts/source-code/EntityChurnCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/components/charts/source-code/EntityEffortCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/components/charts/source-code/CodeChurnOverTimeCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/components/charts/source-code/EntityOwnershipCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/components/charts/source-code/CodeCouplingCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/app/dashboard/source-code/page.tsx"],"sourcesContent":["\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","export class InvariantError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(\n `Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`,\n options\n )\n this.name = 'InvariantError'\n }\n}\n","import { ApiParams, fetchAPI } from './client';\n\nexport const sourceCodeAPI = {\n pairingIndex: (params?: ApiParams) =>\n fetchAPI<{ pairing_index_percentage: number; total_analyzed_commits: number; paired_commits: number }>(\n '/code/pairing-index',\n params\n ),\n \n entityChurn: (params?: ApiParams) =>\n fetchAPI<Array<{ entity: string; added: number; deleted: number; commits: number }>>(\n '/code/entity-churn',\n params\n ),\n \n codeChurn: (params?: ApiParams) =>\n fetchAPI<Array<{ date: string; type: string; value: number }>>(\n '/code/code-churn',\n params\n ),\n \n coupling: (params?: ApiParams) =>\n fetchAPI<Array<{ entity: string; coupled: string; degree: number }>>(\n '/code/coupling',\n params\n ),\n \n entityEffort: (params?: ApiParams) =>\n fetchAPI<Array<{ entity: string; 'total-revs': number }>>(\n '/code/entity-effort',\n params\n ),\n \n entityOwnership: (params?: ApiParams) =>\n fetchAPI<Array<{ entity: string; author: string; added: number; deleted: number }>>(\n '/code/entity-ownership',\n params\n ),\n \n getAuthors: () =>\n fetchAPI<string[]>('/code/authors'),\n};\n","import { ApiParams, fetchAPI } from './client';\n\nexport const pipelineAPI = {\n // Data endpoints\n byStatus: (params?: ApiParams) =>\n fetchAPI<Array<{ status: string; count: number }>>(\n '/pipelines/by-status',\n params\n ),\n \n jobsByStatus: (params?: ApiParams) =>\n fetchAPI<Array<{ Status: string; Count: number }>>(\n '/pipelines/jobs-by-status',\n params\n ),\n \n summary: (params?: ApiParams) =>\n fetchAPI<{\n total_runs: number;\n first_run: string | null;\n last_run: string | null;\n in_progress: number;\n queued: number;\n }>('/pipelines/summary', params),\n \n runsDuration: (params?: ApiParams) =>\n fetchAPI<Array<{ workflow: string; avg_duration: number; total_runs: number }>>(\n '/pipelines/runs-duration',\n params\n ),\n \n deploymentFrequency: (params?: ApiParams) =>\n fetchAPI<Array<{ days: string; weeks: string; months: string; daily_counts: number; weekly_counts: number; monthly_counts: number; commits: string; links: string }>>(\n '/pipelines/deployment-frequency',\n params\n ),\n \n runsBy: (params?: ApiParams) =>\n fetchAPI<Array<{ period: string; workflow: string; runs: number }>>(\n '/pipelines/runs-by',\n params\n ),\n \n jobsAverageTime: (params?: ApiParams) =>\n fetchAPI<Array<{ job_name: string; avg_time: number; count: number }>>(\n '/pipelines/jobs-average-time',\n params\n ),\n\n // Filter option endpoints\n getWorkflows: () =>\n fetchAPI<Array<{ name: string; path: string }>>('/pipelines/workflows'),\n\n getStatuses: () =>\n fetchAPI<string[]>('/pipelines/statuses'),\n\n getConclusions: () =>\n fetchAPI<string[]>('/pipelines/conclusions'),\n\n getBranches: () =>\n fetchAPI<string[]>('/pipelines/branches'),\n\n getEvents: () =>\n fetchAPI<string[]>('/pipelines/events'),\n\n getJobs: () =>\n fetchAPI<Array<{ name: string; id?: string }>>('/pipelines/jobs'),\n};\n","import { ApiParams, fetchAPI } from './client';\n\nexport const pullRequestAPI = {\n // Data endpoints\n summary: (params?: ApiParams) =>\n fetchAPI<{\n total: number;\n merged: number;\n closed: number;\n open: number;\n first_pr: string | null;\n last_pr: string | null;\n }>('/pull-requests/summary', params),\n \n byAuthor: (params?: ApiParams) =>\n fetchAPI<Array<{ author: string; count: number }>>(\n '/pull-requests/by-author',\n params\n ),\n \n averageReviewTime: (params?: ApiParams) =>\n fetchAPI<Array<{ author: string; avg_hours: number }>>(\n '/pull-requests/average-review-time',\n params\n ),\n \n openThroughTime: (params?: ApiParams) =>\n fetchAPI<Array<{ date: string; open_prs: number }>>(\n '/pull-requests/through-time',\n params\n ),\n \n averageOpenBy: (params?: ApiParams) =>\n fetchAPI<Array<{ period: string; avg_days: number }>>(\n '/pull-requests/average-open-by',\n params\n ),\n \n averageComments: (params?: ApiParams) =>\n fetchAPI<{ avg_comments: number }>('/pull-requests/average-comments', params),\n\n // Filter option endpoints\n getAuthors: () =>\n fetchAPI<string[]>('/pull-requests/authors'),\n\n getLabels: () =>\n fetchAPI<string[]>('/pull-requests/labels'),\n};\n","import { fetchAPI } from './client';\n\nexport interface DashboardConfiguration {\n result: {\n git_provider: string;\n github_repository: string;\n git_repository_location: string;\n store_data: boolean;\n deployment_frequency_target_pipeline: string | null;\n deployment_frequency_target_job: string | null;\n main_branch: string;\n dashboard_start_date: string | null;\n dashboard_end_date: string | null;\n dashboard_color: string;\n logging_level: string;\n jira_url: string | null;\n jira_email: string | null;\n jira_token: string | null;\n jira_project: string | null;\n };\n}\n\nexport const configurationAPI = {\n getConfiguration: () =>\n fetchAPI<DashboardConfiguration>('/configuration'),\n};\n","import { ApiParams } from '@/server/api';\n\nexport interface DashboardFilters {\n startDate: string;\n endDate: string;\n workflowSelector?: string;\n workflowStatus?: string[];\n workflowConclusions?: string[];\n jobSelector?: string[];\n branch?: string[];\n event?: string[];\n aggregateMetric?: string;\n ignorePatternFiles?: string;\n includePatternFiles?: string;\n authorSelectSourceCode?: string[];\n topEntries?: number;\n typeChurn?: string;\n authorSelect?: string[];\n labelSelector?: string[];\n aggregateBy?: string;\n}\n\n/**\n * Convert pipeline section filters to API parameters\n */\nexport function buildPipelineApiParams(filters: DashboardFilters): ApiParams {\n return {\n start_date: filters.startDate,\n end_date: filters.endDate,\n workflow_path: filters.workflowSelector,\n status: filters.workflowStatus?.length ? filters.workflowStatus.join(',') : undefined,\n conclusion: filters.workflowConclusions?.length ? filters.workflowConclusions.join(',') : undefined,\n job_name: filters.jobSelector?.length ? filters.jobSelector.join(',') : undefined,\n branch: filters.branch?.length ? filters.branch.join(',') : undefined,\n event: filters.event?.length ? filters.event.join(',') : undefined,\n metric: filters.aggregateMetric,\n };\n}\n\n/**\n * Convert source code section filters to API parameters\n */\nexport function buildSourceCodeApiParams(filters: DashboardFilters): ApiParams {\n return {\n start_date: filters.startDate,\n end_date: filters.endDate,\n ignore_files: filters.ignorePatternFiles || undefined,\n include_only: filters.includePatternFiles || undefined,\n authors: filters.authorSelectSourceCode?.length\n ? filters.authorSelectSourceCode.join(',')\n : undefined,\n top: filters.topEntries,\n type_churn: filters.typeChurn,\n };\n}\n\n/**\n * Convert pull request section filters to API parameters\n */\nexport function buildPullRequestApiParams(filters: DashboardFilters): ApiParams {\n return {\n start_date: filters.startDate,\n end_date: filters.endDate,\n authors: filters.authorSelect?.length ? filters.authorSelect.join(',') : undefined,\n labels: filters.labelSelector?.length ? filters.labelSelector.join(',') : undefined,\n aggregate_by: filters.aggregateBy,\n };\n}\n\n/**\n * Batch export for easy access to all builders\n */\nexport const apiParamBuilders = {\n pipeline: buildPipelineApiParams,\n sourceCode: buildSourceCodeApiParams,\n pullRequest: buildPullRequestApiParams,\n};\n","/**\n * Safely converts API response data to an array suitable for charts.\n * Handles wrapped responses, null/undefined, and already-formatted arrays.\n */\ntype WrappedResult = {\n result: unknown;\n};\n\nfunction hasWrappedResult(data: unknown): data is WrappedResult {\n return typeof data === 'object' && data !== null && 'result' in data;\n}\n\nexport function ensureArray<T>(data: unknown): T[] {\n if (Array.isArray(data)) {\n return data;\n }\n if (hasWrappedResult(data)) {\n if (Array.isArray(data.result)) {\n return data.result;\n }\n // If result is not an array, try to extract it\n return Array.isArray(data.result) ? data.result : [];\n }\n if (data === null || data === undefined) {\n return [];\n }\n // If it's an object that's not an array, return empty\n return [];\n}\n","import src from \"IMAGE\";\nexport default { src, width: 48, height: 48 }\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/source-code/EntityChurnCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/source-code/EntityChurnCard.tsx\",\n \"default\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/source-code/EntityEffortCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/source-code/EntityEffortCard.tsx\",\n \"default\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/source-code/CodeChurnOverTimeCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/source-code/CodeChurnOverTimeCard.tsx\",\n \"default\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/source-code/EntityOwnershipCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/source-code/EntityOwnershipCard.tsx\",\n \"default\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/source-code/CodeCouplingCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/source-code/CodeCouplingCard.tsx\",\n \"default\",\n);\n","import { defaultFilters, parseDashboardFilters } from \"@/components/filters/DashboardFilters\";\nimport { sourceCodeAPI } from '@/server/api';\nimport { buildSourceCodeApiParams } from '@/server/utils/apiParams';\nimport { ensureArray } from '@/server/utils/chartData';\nimport EntityChurnCard from '@/components/charts/source-code/EntityChurnCard';\nimport EntityEffortCard from '@/components/charts/source-code/EntityEffortCard';\nimport CodeChurnOverTimeCard from '@/components/charts/source-code/CodeChurnOverTimeCard';\nimport EntityOwnershipCard from '@/components/charts/source-code/EntityOwnershipCard';\nimport CodeCouplingCard from '@/components/charts/source-code/CodeCouplingCard';\nimport {\n CodeChurnData,\n CouplingData,\n EntityChurnData,\n EntityEffortData,\n EntityOwnershipData,\n} from '@/components/charts/source-code/types';\n\ntype ResultWrapper<T> = {\n result: T;\n};\n\nfunction unwrapResult<T>(data: T | ResultWrapper<T>): T {\n if (typeof data === 'object' && data !== null && 'result' in data) {\n return data.result;\n }\n return data;\n}\n\nexport default async function SourceCodePage({\n searchParams,\n}: {\n searchParams?: Promise<Record<string, string | string[] | undefined>>;\n}) {\n const filters = parseDashboardFilters(await searchParams ?? {}, defaultFilters);\n let entityChurn: EntityChurnData[] = [];\n let coupling: CouplingData[] = [];\n let entityEffort: EntityEffortData[] = [];\n let codeChurn: CodeChurnData[] = [];\n let entityOwnership: EntityOwnershipData[] = [];\n\n try {\n const apiParams = buildSourceCodeApiParams(filters);\n const [churn, coup, effort, churnOverTime, ownership] = await Promise.all([\n sourceCodeAPI.entityChurn(apiParams),\n sourceCodeAPI.coupling(apiParams),\n sourceCodeAPI.entityEffort(apiParams),\n sourceCodeAPI.codeChurn(apiParams),\n sourceCodeAPI.entityOwnership(apiParams),\n ]);\n // Handle both direct array responses and wrapped responses\n entityChurn = ensureArray<EntityChurnData>(unwrapResult(churn as EntityChurnData[] | ResultWrapper<EntityChurnData[]>));\n coupling = ensureArray<CouplingData>(unwrapResult(coup as CouplingData[] | ResultWrapper<CouplingData[]>));\n entityEffort = ensureArray<EntityEffortData>(unwrapResult(effort as EntityEffortData[] | ResultWrapper<EntityEffortData[]>));\n codeChurn = ensureArray<CodeChurnData>(unwrapResult(churnOverTime as CodeChurnData[] | ResultWrapper<CodeChurnData[]>));\n entityOwnership = ensureArray<EntityOwnershipData>(unwrapResult(ownership as EntityOwnershipData[] | ResultWrapper<EntityOwnershipData[]>));\n } catch (error) {\n console.error('Error fetching source code data:', error);\n // Set empty arrays on error\n entityChurn = [];\n coupling = [];\n entityEffort = [];\n codeChurn = [];\n entityOwnership = [];\n }\n\n return (\n <div className=\"space-y-6\">\n <div className=\"grid grid-cols-1 lg:grid-cols-2 gap-6\">\n <EntityChurnCard data={entityChurn} topEntries={filters.topEntries} />\n <EntityEffortCard data={entityEffort} topEntries={filters.topEntries} />\n </div>\n\n <div className=\"grid grid-cols-1 lg:grid-cols-2 gap-6\">\n <CodeChurnOverTimeCard data={codeChurn} />\n <EntityOwnershipCard data={entityOwnership} />\n </div>\n\n <CodeCouplingCard data={coupling} />\n </div>\n );\n}\n"],"names":["_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_interop_require_wildcard","obj","__esModule","default","cache","has","get","newObj","__proto__","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","exports","_","InvariantError","Error","constructor","message","options","endsWith","name","sourceCodeAPI","pairingIndex","params","entityChurn","codeChurn","coupling","entityEffort","entityOwnership","getAuthors","buildPipelineApiParams","filters","start_date","startDate","end_date","endDate","workflow_path","workflowSelector","status","workflowStatus","length","join","undefined","conclusion","workflowConclusions","job_name","jobSelector","branch","event","metric","aggregateMetric","buildSourceCodeApiParams","ignore_files","ignorePatternFiles","include_only","includePatternFiles","authors","authorSelectSourceCode","top","topEntries","type_churn","typeChurn","buildPullRequestApiParams","authorSelect","labels","labelSelector","aggregate_by","aggregateBy","apiParamBuilders","pipeline","sourceCode","pullRequest","hasWrappedResult","data","ensureArray","Array","isArray","result","src","width","height","unwrapResult","SourceCodePage","searchParams","apiParams","churn","coup","effort","churnOverTime","ownership","Promise","all","error","console","className"],"mappings":"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","ignoreList":[0,1,9,10,11,12,13]}
|
|
1
|
+
{"version":3,"sources":["../../../../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_wildcard.cjs","../../../../../../node_modules/.pnpm/next%4016.2.1_%40babel%2Bcore%407.29.0_babel-plugin-macros%403.1.0_react-dom%4019.2.3_react%4019.2.3__react%4019.2.3/node_modules/next/src/shared/lib/invariant-error.ts","../../../../../../apps/webapp/server/api/sourceCode.ts","../../../../../../apps/webapp/server/api/pipeline.ts","../../../../../../apps/webapp/server/api/pullRequest.ts","../../../../../../apps/webapp/server/api/configuration.ts","../../../../../../apps/webapp/server/utils/apiParams.ts","../../../../../../apps/webapp/server/utils/chartData.ts","../../../../../../apps/webapp/app/favicon.ico.mjs%20%28structured%20image%20object%29","../../../../../../apps/webapp/components/charts/source-code/EntityChurnCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/components/charts/source-code/EntityEffortCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/components/charts/source-code/CodeChurnOverTimeCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/components/charts/source-code/EntityOwnershipCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/components/charts/source-code/CodeCouplingCard.tsx/__nextjs-internal-proxy.mjs","../../../../../../apps/webapp/app/dashboard/source-code/page.tsx"],"sourcesContent":["\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","export class InvariantError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(\n `Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`,\n options\n )\n this.name = 'InvariantError'\n }\n}\n","import { ApiParams, fetchAPI } from './client';\n\nexport const sourceCodeAPI = {\n pairingIndex: (params?: ApiParams) =>\n fetchAPI<{ pairing_index_percentage: number; total_analyzed_commits: number; paired_commits: number }>(\n '/code/pairing-index',\n params\n ),\n \n entityChurn: (params?: ApiParams) =>\n fetchAPI<Array<{ entity: string; added: number; deleted: number; commits: number }>>(\n '/code/entity-churn',\n params\n ),\n \n codeChurn: (params?: ApiParams) =>\n fetchAPI<Array<{ date: string; type: string; value: number }>>(\n '/code/code-churn',\n params\n ),\n \n coupling: (params?: ApiParams) =>\n fetchAPI<Array<{ entity: string; coupled: string; degree: number; averageRevs: number }>>(\n '/code/coupling',\n params\n ),\n \n entityEffort: (params?: ApiParams) =>\n fetchAPI<Array<{ entity: string; 'total-revs': number }>>(\n '/code/entity-effort',\n params\n ),\n \n entityOwnership: (params?: ApiParams) =>\n fetchAPI<Array<{ entity: string; author: string; added: number; deleted: number }>>(\n '/code/entity-ownership',\n params\n ),\n \n getAuthors: () =>\n fetchAPI<string[]>('/code/authors'),\n};\n","import { ApiParams, fetchAPI } from './client';\n\nexport const pipelineAPI = {\n // Data endpoints\n byStatus: (params?: ApiParams) =>\n fetchAPI<Array<{ status: string; count: number }>>(\n '/pipelines/by-status',\n params\n ),\n \n jobsByStatus: (params?: ApiParams) =>\n fetchAPI<Array<{ Status: string; Count: number }>>(\n '/pipelines/jobs-by-status',\n params\n ),\n \n summary: (params?: ApiParams) =>\n fetchAPI<{\n total_runs: number;\n first_run: string | null;\n last_run: string | null;\n in_progress: number;\n queued: number;\n }>('/pipelines/summary', params),\n \n runsDuration: (params?: ApiParams) =>\n fetchAPI<Array<{ workflow: string; avg_duration: number; total_runs: number }>>(\n '/pipelines/runs-duration',\n params\n ),\n \n deploymentFrequency: (params?: ApiParams) =>\n fetchAPI<Array<{ days: string; weeks: string; months: string; daily_counts: number; weekly_counts: number; monthly_counts: number; commits: string; links: string }>>(\n '/pipelines/deployment-frequency',\n params\n ),\n \n runsBy: (params?: ApiParams) =>\n fetchAPI<Array<{ period: string; workflow: string; runs: number }>>(\n '/pipelines/runs-by',\n params\n ),\n \n jobsAverageTime: (params?: ApiParams) =>\n fetchAPI<Array<{ job_name: string; avg_time: number; count: number }>>(\n '/pipelines/jobs-average-time',\n params\n ),\n\n // Filter option endpoints\n getWorkflows: () =>\n fetchAPI<Array<{ name: string; path: string }>>('/pipelines/workflows'),\n\n getStatuses: () =>\n fetchAPI<string[]>('/pipelines/statuses'),\n\n getConclusions: () =>\n fetchAPI<string[]>('/pipelines/conclusions'),\n\n getBranches: () =>\n fetchAPI<string[]>('/pipelines/branches'),\n\n getEvents: () =>\n fetchAPI<string[]>('/pipelines/events'),\n\n getJobs: () =>\n fetchAPI<Array<{ name: string; id?: string }>>('/pipelines/jobs'),\n};\n","import { ApiParams, fetchAPI } from './client';\n\nexport const pullRequestAPI = {\n // Data endpoints\n summary: (params?: ApiParams) =>\n fetchAPI<{\n total: number;\n merged: number;\n closed: number;\n open: number;\n first_pr: string | null;\n last_pr: string | null;\n top_themes: string[];\n labels: Array<{ label: string; prs: number }>;\n }>('/pull-requests/summary', params),\n \n byAuthor: (params?: ApiParams) =>\n fetchAPI<Array<{ author: string; count: number }>>(\n '/pull-requests/by-author',\n params\n ),\n \n averageReviewTime: (params?: ApiParams) =>\n fetchAPI<Array<{ author: string; avg_hours: number }>>(\n '/pull-requests/average-review-time',\n params\n ),\n \n openThroughTime: (params?: ApiParams) =>\n fetchAPI<Array<{ date: string; open_prs: number }>>(\n '/pull-requests/through-time',\n params\n ),\n \n averageOpenBy: (params?: ApiParams) =>\n fetchAPI<Array<{ period: string; avg_days: number }>>(\n '/pull-requests/average-open-by',\n params\n ),\n \n averageComments: (params?: ApiParams) =>\n fetchAPI<{ avg_comments: number }>('/pull-requests/average-comments', params),\n\n // Filter option endpoints\n getAuthors: () =>\n fetchAPI<string[]>('/pull-requests/authors'),\n\n getLabels: () =>\n fetchAPI<string[]>('/pull-requests/labels'),\n};\n","import { fetchAPI } from './client';\n\nexport interface DashboardConfiguration {\n result: {\n git_provider: string;\n github_repository: string;\n git_repository_location: string;\n store_data: boolean;\n deployment_frequency_target_pipeline: string | null;\n deployment_frequency_target_job: string | null;\n main_branch: string;\n dashboard_start_date: string | null;\n dashboard_end_date: string | null;\n dashboard_color: string;\n logging_level: string;\n jira_url: string | null;\n jira_email: string | null;\n jira_token: string | null;\n jira_project: string | null;\n };\n}\n\nexport const configurationAPI = {\n getConfiguration: () =>\n fetchAPI<DashboardConfiguration>('/configuration'),\n};\n","import { ApiParams } from '@/server/api';\n\nexport interface DashboardFilters {\n startDate: string;\n endDate: string;\n workflowSelector?: string;\n workflowStatus?: string[];\n workflowConclusions?: string[];\n jobSelector?: string[];\n branch?: string[];\n event?: string[];\n aggregateMetric?: string;\n ignorePatternFiles?: string;\n includePatternFiles?: string;\n authorSelectSourceCode?: string[];\n topEntries?: number;\n typeChurn?: string;\n authorSelect?: string[];\n labelSelector?: string[];\n aggregateBy?: string;\n}\n\n/**\n * Convert pipeline section filters to API parameters\n */\nexport function buildPipelineApiParams(filters: DashboardFilters): ApiParams {\n return {\n start_date: filters.startDate,\n end_date: filters.endDate,\n workflow_path: filters.workflowSelector,\n status: filters.workflowStatus?.length ? filters.workflowStatus.join(',') : undefined,\n conclusion: filters.workflowConclusions?.length ? filters.workflowConclusions.join(',') : undefined,\n job_name: filters.jobSelector?.length ? filters.jobSelector.join(',') : undefined,\n branch: filters.branch?.length ? filters.branch.join(',') : undefined,\n event: filters.event?.length ? filters.event.join(',') : undefined,\n metric: filters.aggregateMetric,\n };\n}\n\n/**\n * Convert source code section filters to API parameters\n */\nexport function buildSourceCodeApiParams(filters: DashboardFilters): ApiParams {\n return {\n start_date: filters.startDate,\n end_date: filters.endDate,\n ignore_files: filters.ignorePatternFiles || undefined,\n include_only: filters.includePatternFiles || undefined,\n authors: filters.authorSelectSourceCode?.length\n ? filters.authorSelectSourceCode.join(',')\n : undefined,\n top: filters.topEntries,\n type_churn: filters.typeChurn,\n };\n}\n\n/**\n * Convert pull request section filters to API parameters\n */\nexport function buildPullRequestApiParams(filters: DashboardFilters): ApiParams {\n return {\n start_date: filters.startDate,\n end_date: filters.endDate,\n authors: filters.authorSelect?.length ? filters.authorSelect.join(',') : undefined,\n labels: filters.labelSelector?.length ? filters.labelSelector.join(',') : undefined,\n aggregate_by: filters.aggregateBy,\n };\n}\n\n/**\n * Batch export for easy access to all builders\n */\nexport const apiParamBuilders = {\n pipeline: buildPipelineApiParams,\n sourceCode: buildSourceCodeApiParams,\n pullRequest: buildPullRequestApiParams,\n};\n","/**\n * Safely converts API response data to an array suitable for charts.\n * Handles wrapped responses, null/undefined, and already-formatted arrays.\n */\ntype WrappedResult = {\n result: unknown;\n};\n\nfunction hasWrappedResult(data: unknown): data is WrappedResult {\n return typeof data === 'object' && data !== null && 'result' in data;\n}\n\nexport function ensureArray<T>(data: unknown): T[] {\n if (Array.isArray(data)) {\n return data;\n }\n if (hasWrappedResult(data)) {\n if (Array.isArray(data.result)) {\n return data.result;\n }\n // If result is not an array, try to extract it\n return Array.isArray(data.result) ? data.result : [];\n }\n if (data === null || data === undefined) {\n return [];\n }\n // If it's an object that's not an array, return empty\n return [];\n}\n","import src from \"IMAGE\";\nexport default { src, width: 48, height: 48 }\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/source-code/EntityChurnCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/source-code/EntityChurnCard.tsx\",\n \"default\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/source-code/EntityEffortCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/source-code/EntityEffortCard.tsx\",\n \"default\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/source-code/CodeChurnOverTimeCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/source-code/CodeChurnOverTimeCard.tsx\",\n \"default\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/source-code/EntityOwnershipCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/source-code/EntityOwnershipCard.tsx\",\n \"default\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/apps/webapp/components/charts/source-code/CodeCouplingCard.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/apps/webapp/components/charts/source-code/CodeCouplingCard.tsx\",\n \"default\",\n);\n","import { defaultFilters, parseDashboardFilters } from \"@/components/filters/DashboardFilters\";\nimport { sourceCodeAPI } from '@/server/api';\nimport { buildSourceCodeApiParams } from '@/server/utils/apiParams';\nimport { ensureArray } from '@/server/utils/chartData';\nimport EntityChurnCard from '@/components/charts/source-code/EntityChurnCard';\nimport EntityEffortCard from '@/components/charts/source-code/EntityEffortCard';\nimport CodeChurnOverTimeCard from '@/components/charts/source-code/CodeChurnOverTimeCard';\nimport EntityOwnershipCard from '@/components/charts/source-code/EntityOwnershipCard';\nimport CodeCouplingCard from '@/components/charts/source-code/CodeCouplingCard';\nimport {\n CodeChurnData,\n CouplingData,\n EntityChurnData,\n EntityEffortData,\n EntityOwnershipData,\n} from '@/components/charts/source-code/types';\n\ntype ResultWrapper<T> = {\n result: T;\n};\n\nfunction unwrapResult<T>(data: T | ResultWrapper<T>): T {\n if (typeof data === 'object' && data !== null && 'result' in data) {\n return data.result;\n }\n return data;\n}\n\nexport default async function SourceCodePage({\n searchParams,\n}: {\n searchParams?: Promise<Record<string, string | string[] | undefined>>;\n}) {\n const filters = parseDashboardFilters(await searchParams ?? {}, defaultFilters);\n let entityChurn: EntityChurnData[] = [];\n let coupling: CouplingData[] = [];\n let entityEffort: EntityEffortData[] = [];\n let codeChurn: CodeChurnData[] = [];\n let entityOwnership: EntityOwnershipData[] = [];\n\n try {\n const apiParams = buildSourceCodeApiParams(filters);\n const [churn, couplingData, effort, churnOverTime, ownership] = await Promise.all([\n sourceCodeAPI.entityChurn(apiParams),\n sourceCodeAPI.coupling(apiParams),\n sourceCodeAPI.entityEffort(apiParams),\n sourceCodeAPI.codeChurn(apiParams),\n sourceCodeAPI.entityOwnership(apiParams),\n ]);\n // Handle both direct array responses and wrapped responses\n entityChurn = ensureArray<EntityChurnData>(unwrapResult(churn as EntityChurnData[] | ResultWrapper<EntityChurnData[]>));\n coupling = ensureArray<CouplingData>(unwrapResult(couplingData as CouplingData[] | ResultWrapper<CouplingData[]>));\n entityEffort = ensureArray<EntityEffortData>(unwrapResult(effort as EntityEffortData[] | ResultWrapper<EntityEffortData[]>));\n codeChurn = ensureArray<CodeChurnData>(unwrapResult(churnOverTime as CodeChurnData[] | ResultWrapper<CodeChurnData[]>));\n entityOwnership = ensureArray<EntityOwnershipData>(unwrapResult(ownership as EntityOwnershipData[] | ResultWrapper<EntityOwnershipData[]>));\n } catch (error) {\n console.error('Error fetching source code data:', error);\n // Set empty arrays on error\n entityChurn = [];\n coupling = [];\n entityEffort = [];\n codeChurn = [];\n entityOwnership = [];\n }\n\n return (\n <div className=\"space-y-6\">\n <div className=\"grid grid-cols-1 lg:grid-cols-2 gap-6\">\n <EntityChurnCard data={entityChurn} topEntries={filters.topEntries} />\n <EntityEffortCard data={entityEffort} topEntries={filters.topEntries} />\n </div>\n\n <div className=\"grid grid-cols-1 lg:grid-cols-2 gap-6\">\n <CodeChurnOverTimeCard data={codeChurn} />\n <EntityOwnershipCard data={entityOwnership} />\n </div>\n\n <CodeCouplingCard data={coupling} />\n </div>\n );\n}\n"],"names":["_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_interop_require_wildcard","obj","__esModule","default","cache","has","get","newObj","__proto__","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","exports","_","InvariantError","Error","constructor","message","options","endsWith","name","sourceCodeAPI","pairingIndex","params","entityChurn","codeChurn","coupling","entityEffort","entityOwnership","getAuthors","buildPipelineApiParams","filters","start_date","startDate","end_date","endDate","workflow_path","workflowSelector","status","workflowStatus","length","join","undefined","conclusion","workflowConclusions","job_name","jobSelector","branch","event","metric","aggregateMetric","buildSourceCodeApiParams","ignore_files","ignorePatternFiles","include_only","includePatternFiles","authors","authorSelectSourceCode","top","topEntries","type_churn","typeChurn","buildPullRequestApiParams","authorSelect","labels","labelSelector","aggregate_by","aggregateBy","apiParamBuilders","pipeline","sourceCode","pullRequest","hasWrappedResult","data","ensureArray","Array","isArray","result","src","width","height","unwrapResult","SourceCodePage","searchParams","apiParams","churn","couplingData","effort","churnOverTime","ownership","Promise","all","error","console","className"],"mappings":"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","ignoreList":[0,1,9,10,11,12,13]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
module.exports=[43056,a=>{"use strict";let b=null;a.s(["getServerEnv",0,function(){if(b)return b;let a=process.env.SMM_REST_BASE_URL;if(!a)throw Error("Missing runtime API base URL. Set SMM_REST_BASE_URL.");return b={smmRestBaseUrl:a}}])},43727,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(39527)},16103,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
|
|
2
|
-
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},3760,a=>{"use strict";var b=a.i(43727),c=a.i(43056);async function d(a,b){let{smmRestBaseUrl:d}=(0,c.getServerEnv)(),e=new URL(a,`${d}/api/v1`);b&&Object.entries(b).forEach(([a,b])=>{null!=b&&e.searchParams.append(a,String(b))});let f=await fetch(e.toString(),{headers:{"Content-Type":"application/json"},cache:"no-store"});if(!f.ok)throw Error(`API error: ${f.statusText}`);return f.json()}(0,a.i(16103).ensureServerEntryExports)([d]),(0,b.registerServerReference)(d,"
|
|
2
|
+
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},3760,a=>{"use strict";var b=a.i(43727),c=a.i(43056);async function d(a,b){let{smmRestBaseUrl:d}=(0,c.getServerEnv)(),e=new URL(a,`${d}/api/v1`);b&&Object.entries(b).forEach(([a,b])=>{null!=b&&e.searchParams.append(a,String(b))});let f=await fetch(e.toString(),{headers:{"Content-Type":"application/json"},cache:"no-store"});if(!f.ok)throw Error(`API error: ${f.statusText}`);return f.json()}(0,a.i(16103).ensureServerEntryExports)([d]),(0,b.registerServerReference)(d,"601609d47ab94e2ba004a772da2855415aa8b8099c",null),a.s(["fetchAPI",0,d])},46309,a=>{"use strict";var b=a.i(3760);a.s([],31655),a.i(31655),a.s(["601609d47ab94e2ba004a772da2855415aa8b8099c",()=>b.fetchAPI],46309)}];
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=_042y~1f._.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../apps/webapp/server/config/server-env.ts","../../../../../../node_modules/.pnpm/next%4016.2.1_%40babel%2Bcore%407.29.0_babel-plugin-macros%403.1.0_react-dom%4019.2.3_react%4019.2.3__react%4019.2.3/node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../../../node_modules/.pnpm/next%4016.2.1_%40babel%2Bcore%407.29.0_babel-plugin-macros%403.1.0_react-dom%4019.2.3_react%4019.2.3__react%4019.2.3/node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../../../apps/webapp/server/api/client.ts","../../../../../../apps/webapp/.next-internal/server/app/dashboard/insights/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["import 'server-only';\n\ntype ServerEnv = {\n smmRestBaseUrl: string;\n};\n\nlet cachedEnv: ServerEnv | null = null;\n\nexport function getServerEnv(): ServerEnv {\n if (cachedEnv) {\n return cachedEnv;\n }\n\n const smmRestBaseUrl = process.env.SMM_REST_BASE_URL;\n\n if (!smmRestBaseUrl) {\n throw new Error('Missing runtime API base URL. Set SMM_REST_BASE_URL.');\n }\n\n cachedEnv = {\n smmRestBaseUrl,\n };\n\n return cachedEnv;\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","'use server';\n\nimport { getServerEnv } from '../config/server-env';\n\nexport interface ApiParams {\n start_date?: string;\n end_date?: string;\n [key: string]: string | number | undefined;\n}\n\nexport async function fetchAPI<T>(endpoint: string, params?: ApiParams): Promise<T> {\n const { smmRestBaseUrl } = getServerEnv();\n const apiBaseUrl = `${smmRestBaseUrl}/api/v1`;\n const url = new URL(endpoint, apiBaseUrl);\n \n if (params) {\n Object.entries(params).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n url.searchParams.append(key, String(value));\n }\n });\n }\n\n const response = await fetch(url.toString(), {\n headers: {\n 'Content-Type': 'application/json',\n },\n cache: 'no-store',\n });\n\n if (!response.ok) {\n throw new Error(`API error: ${response.statusText}`);\n }\n\n return response.json();\n}\n","export {fetchAPI as '
|
|
1
|
+
{"version":3,"sources":["../../../../../../apps/webapp/server/config/server-env.ts","../../../../../../node_modules/.pnpm/next%4016.2.1_%40babel%2Bcore%407.29.0_babel-plugin-macros%403.1.0_react-dom%4019.2.3_react%4019.2.3__react%4019.2.3/node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../../../node_modules/.pnpm/next%4016.2.1_%40babel%2Bcore%407.29.0_babel-plugin-macros%403.1.0_react-dom%4019.2.3_react%4019.2.3__react%4019.2.3/node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../../../apps/webapp/server/api/client.ts","../../../../../../apps/webapp/.next-internal/server/app/dashboard/insights/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["import 'server-only';\n\ntype ServerEnv = {\n smmRestBaseUrl: string;\n};\n\nlet cachedEnv: ServerEnv | null = null;\n\nexport function getServerEnv(): ServerEnv {\n if (cachedEnv) {\n return cachedEnv;\n }\n\n const smmRestBaseUrl = process.env.SMM_REST_BASE_URL;\n\n if (!smmRestBaseUrl) {\n throw new Error('Missing runtime API base URL. Set SMM_REST_BASE_URL.');\n }\n\n cachedEnv = {\n smmRestBaseUrl,\n };\n\n return cachedEnv;\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","'use server';\n\nimport { getServerEnv } from '../config/server-env';\n\nexport interface ApiParams {\n start_date?: string;\n end_date?: string;\n [key: string]: string | number | undefined;\n}\n\nexport async function fetchAPI<T>(endpoint: string, params?: ApiParams): Promise<T> {\n const { smmRestBaseUrl } = getServerEnv();\n const apiBaseUrl = `${smmRestBaseUrl}/api/v1`;\n const url = new URL(endpoint, apiBaseUrl);\n \n if (params) {\n Object.entries(params).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n url.searchParams.append(key, String(value));\n }\n });\n }\n\n const response = await fetch(url.toString(), {\n headers: {\n 'Content-Type': 'application/json',\n },\n cache: 'no-store',\n });\n\n if (!response.ok) {\n throw new Error(`API error: ${response.statusText}`);\n }\n\n return response.json();\n}\n","export {fetchAPI as '601609d47ab94e2ba004a772da2855415aa8b8099c'} from 'ACTIONS_MODULE0'\nexport {fetchAPI as '601609d47ab94e2ba004a772da2855415aa8b8099c'} from 'ACTIONS_MODULE0'\n"],"names":["cachedEnv","getServerEnv","smmRestBaseUrl","process","env","SMM_REST_BASE_URL","Error","registerServerReference","ensureServerEntryExports","actions","i","length","action","fetchAPI","endpoint","params","apiBaseUrl","url","URL","Object","entries","forEach","key","value","undefined","searchParams","append","String","response","fetch","toString","headers","cache","ok","statusText","json"],"mappings":"uCAMA,IAAIA,EAA8B,2BAE3B,SAASC,EACd,GAAID,EACF,OAAOA,EADM,AAIf,IAAME,EAAiBC,QAAQC,GAAG,CAACC,iBAAiB,CAEpD,GAAI,CAACH,EACH,MAAM,AAAII,MAAM,EADG,sDAQrB,OAAON,AAJPA,EAAY,gBACVE,CACF,CAGF,kCCxBoD,OAAA,cAAA,CAAA,EAAA,aAAA,oCAC3CK,0BAAAA,qCAAAA,EAAAA,uBAAuB,YAAQ,CAAA,CAAA,IAAA,iCCEjC,SAASC,EAAyBC,CAAc,EACrD,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAQE,MAAM,CAAED,IAAK,CACvC,IAAME,EAASH,CAAO,CAACC,EAAE,CACzB,GAAsB,YAAlB,AAA8B,OAAvBE,EACT,MAAM,OAAA,cAEL,CAFK,AAAIN,MACR,CAAC,2DAA2D,EAAE,OAAOM,EAAO;AAAA,oEAAuE,CAAC,EADhJ,oBAAA,OAAA,mBAAA,eAAA,EAEN,EAEJ,CACF,0EATgBJ,2BAAAA,qCAAAA,6CCDhB,EAAA,EAAA,CAAA,CAAA,OAQO,eAAeK,EAAYC,CAAgB,CAAEC,CAAkB,EACpE,GAAM,CAAEb,gBAAc,CAAE,CAAG,CAAA,EAAA,EAAA,YAAA,AAAY,IAEjCe,EAAM,IAAIC,IAAIJ,EADD,CAAA,EAAGZ,EAAe,GACPc,IADc,CAAC,CAGzCD,IACFI,IADU,GACHC,OAAO,CAACL,GAAQM,OAAO,CAAC,CAAC,CAACC,EAAKC,EAAM,UACtCA,GACFN,EAAIQ,KADQD,OACI,CAACE,KADQH,CACF,CAACD,EAAKK,MADM,CACCJ,GAExC,EAH6C,CAM/C,IAAMK,EAAW,MAAMC,MAAMZ,EAAIa,QAAQ,GAAI,CAC3CC,QAAS,CACP,eAAgB,kBAClB,EACAC,MAAO,UACT,GAEA,GAAI,CAACJ,EAASK,EAAE,CACd,CADgB,KACV,AAAI3B,MAAM,CAAC,WAAW,EAAEsB,EAASM,UAAU,CAAA,CAAE,EAGrD,OAAON,EAASO,IAAI,EACtB,0CAzBsBtB,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA,oDCVtB,IAAA,EAAA,EAAA,CAAA,CAAA","ignoreList":[1,2]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
module.exports=[43056,a=>{"use strict";let b=null;a.s(["getServerEnv",0,function(){if(b)return b;let a=process.env.SMM_REST_BASE_URL;if(!a)throw Error("Missing runtime API base URL. Set SMM_REST_BASE_URL.");return b={smmRestBaseUrl:a}}])},43727,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(39527)},16103,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
|
|
2
|
-
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},3760,a=>{"use strict";var b=a.i(43727),c=a.i(43056);async function d(a,b){let{smmRestBaseUrl:d}=(0,c.getServerEnv)(),e=new URL(a,`${d}/api/v1`);b&&Object.entries(b).forEach(([a,b])=>{null!=b&&e.searchParams.append(a,String(b))});let f=await fetch(e.toString(),{headers:{"Content-Type":"application/json"},cache:"no-store"});if(!f.ok)throw Error(`API error: ${f.statusText}`);return f.json()}(0,a.i(16103).ensureServerEntryExports)([d]),(0,b.registerServerReference)(d,"
|
|
2
|
+
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},3760,a=>{"use strict";var b=a.i(43727),c=a.i(43056);async function d(a,b){let{smmRestBaseUrl:d}=(0,c.getServerEnv)(),e=new URL(a,`${d}/api/v1`);b&&Object.entries(b).forEach(([a,b])=>{null!=b&&e.searchParams.append(a,String(b))});let f=await fetch(e.toString(),{headers:{"Content-Type":"application/json"},cache:"no-store"});if(!f.ok)throw Error(`API error: ${f.statusText}`);return f.json()}(0,a.i(16103).ensureServerEntryExports)([d]),(0,b.registerServerReference)(d,"601609d47ab94e2ba004a772da2855415aa8b8099c",null),a.s(["fetchAPI",0,d])},47755,a=>{"use strict";var b=a.i(3760);a.s([],78468),a.i(78468),a.s(["601609d47ab94e2ba004a772da2855415aa8b8099c",()=>b.fetchAPI],47755)}];
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=_07rvj1-._.js.map
|