heartbeads 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/.next/BUILD_ID +1 -0
- package/.next/app-build-manifest.json +49 -0
- package/.next/app-path-routes-manifest.json +1 -0
- package/.next/build-manifest.json +32 -0
- package/.next/export-marker.json +1 -0
- package/.next/images-manifest.json +1 -0
- package/.next/next-minimal-server.js.nft.json +1 -0
- package/.next/next-server.js.nft.json +1 -0
- package/.next/package.json +1 -0
- package/.next/prerender-manifest.json +1 -0
- package/.next/react-loadable-manifest.json +8 -0
- package/.next/required-server-files.json +1 -0
- package/.next/routes-manifest.json +1 -0
- package/.next/server/app/_not-found/page.js +1 -0
- package/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
- package/.next/server/app/_not-found.html +1 -0
- package/.next/server/app/_not-found.meta +6 -0
- package/.next/server/app/_not-found.rsc +9 -0
- package/.next/server/app/api/auth/route.js +1 -0
- package/.next/server/app/api/auth/route.js.nft.json +1 -0
- package/.next/server/app/api/beads/route.js +8 -0
- package/.next/server/app/api/beads/route.js.nft.json +1 -0
- package/.next/server/app/api/beads/stream/route.js +10 -0
- package/.next/server/app/api/beads/stream/route.js.nft.json +1 -0
- package/.next/server/app/api/beads.body +1 -0
- package/.next/server/app/api/beads.meta +1 -0
- package/.next/server/app/api/config/route.js +8 -0
- package/.next/server/app/api/config/route.js.nft.json +1 -0
- package/.next/server/app/api/docs/page.js +120 -0
- package/.next/server/app/api/docs/page.js.nft.json +1 -0
- package/.next/server/app/api/docs/page_client-reference-manifest.js +1 -0
- package/.next/server/app/api/docs.html +120 -0
- package/.next/server/app/api/docs.meta +5 -0
- package/.next/server/app/api/docs.rsc +70 -0
- package/.next/server/app/api/login/route.js +1 -0
- package/.next/server/app/api/login/route.js.nft.json +1 -0
- package/.next/server/app/api/logout/route.js +1 -0
- package/.next/server/app/api/logout/route.js.nft.json +1 -0
- package/.next/server/app/api/oauth/callback/route.js +1 -0
- package/.next/server/app/api/oauth/callback/route.js.nft.json +1 -0
- package/.next/server/app/api/oauth/client-metadata.json/route.js +1 -0
- package/.next/server/app/api/oauth/client-metadata.json/route.js.nft.json +1 -0
- package/.next/server/app/api/oauth/jwks.json/route.js +1 -0
- package/.next/server/app/api/oauth/jwks.json/route.js.nft.json +1 -0
- package/.next/server/app/api/records/route.js +1 -0
- package/.next/server/app/api/records/route.js.nft.json +1 -0
- package/.next/server/app/api/status/route.js +1 -0
- package/.next/server/app/api/status/route.js.nft.json +1 -0
- package/.next/server/app/api/v1/graph/route.js +1 -0
- package/.next/server/app/api/v1/graph/route.js.nft.json +1 -0
- package/.next/server/app/api/v1/issues/[id]/route.js +1 -0
- package/.next/server/app/api/v1/issues/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/v1/ready/route.js +1 -0
- package/.next/server/app/api/v1/ready/route.js.nft.json +1 -0
- package/.next/server/app/index.html +1 -0
- package/.next/server/app/index.meta +5 -0
- package/.next/server/app/index.rsc +9 -0
- package/.next/server/app/login/page.js +1 -0
- package/.next/server/app/login/page.js.nft.json +1 -0
- package/.next/server/app/login/page_client-reference-manifest.js +1 -0
- package/.next/server/app/login.html +1 -0
- package/.next/server/app/login.meta +5 -0
- package/.next/server/app/login.rsc +9 -0
- package/.next/server/app/opengraph-image.png/route.js +1 -0
- package/.next/server/app/opengraph-image.png/route.js.nft.json +1 -0
- package/.next/server/app/opengraph-image.png.body +0 -0
- package/.next/server/app/opengraph-image.png.meta +1 -0
- package/.next/server/app/page.js +24 -0
- package/.next/server/app/page.js.nft.json +1 -0
- package/.next/server/app/page_client-reference-manifest.js +1 -0
- package/.next/server/app/twitter-image.png/route.js +1 -0
- package/.next/server/app/twitter-image.png/route.js.nft.json +1 -0
- package/.next/server/app/twitter-image.png.body +0 -0
- package/.next/server/app/twitter-image.png.meta +1 -0
- package/.next/server/app-paths-manifest.json +22 -0
- package/.next/server/chunks/247.js +12 -0
- package/.next/server/chunks/29.js +1 -0
- package/.next/server/chunks/343.js +1 -0
- package/.next/server/chunks/460.js +12 -0
- package/.next/server/chunks/533.js +38 -0
- package/.next/server/chunks/542.js +27 -0
- package/.next/server/chunks/590.js +6 -0
- package/.next/server/chunks/615.js +15 -0
- package/.next/server/chunks/696.js +25 -0
- package/.next/server/chunks/719.js +2 -0
- package/.next/server/chunks/739.js +1 -0
- package/.next/server/chunks/950.js +2 -0
- package/.next/server/chunks/font-manifest.json +1 -0
- package/.next/server/edge-runtime-webpack.js +2 -0
- package/.next/server/edge-runtime-webpack.js.map +1 -0
- package/.next/server/font-manifest.json +1 -0
- package/.next/server/functions-config-manifest.json +1 -0
- package/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/.next/server/middleware-build-manifest.js +1 -0
- package/.next/server/middleware-manifest.json +32 -0
- package/.next/server/middleware-react-loadable-manifest.js +1 -0
- package/.next/server/middleware.js +14 -0
- package/.next/server/middleware.js.map +1 -0
- package/.next/server/next-font-manifest.js +1 -0
- package/.next/server/next-font-manifest.json +1 -0
- package/.next/server/pages/404.html +1 -0
- package/.next/server/pages/500.html +1 -0
- package/.next/server/pages/_app.js +1 -0
- package/.next/server/pages/_app.js.nft.json +1 -0
- package/.next/server/pages/_document.js +1 -0
- package/.next/server/pages/_document.js.nft.json +1 -0
- package/.next/server/pages/_error.js +1 -0
- package/.next/server/pages/_error.js.nft.json +1 -0
- package/.next/server/pages-manifest.json +1 -0
- package/.next/server/server-reference-manifest.js +1 -0
- package/.next/server/server-reference-manifest.json +1 -0
- package/.next/server/webpack-runtime.js +1 -0
- package/.next/static/chunks/149.a3e3a5dc03e21086.js +1 -0
- package/.next/static/chunks/2200cc46-7c93a0e00b0bb825.js +1 -0
- package/.next/static/chunks/788-aa413085174e935a.js +1 -0
- package/.next/static/chunks/945-3ff1d381a0af1ecd.js +2 -0
- package/.next/static/chunks/971-bb44d52bcd9ee2a9.js +1 -0
- package/.next/static/chunks/app/_not-found/page-200b7a7a6cfc29df.js +1 -0
- package/.next/static/chunks/app/api/docs/page-1dc18f40154cdce6.js +1 -0
- package/.next/static/chunks/app/layout-13e3cdaaa416edb6.js +1 -0
- package/.next/static/chunks/app/login/page-60d930d64f021753.js +1 -0
- package/.next/static/chunks/app/not-found-ae1139bed2018dd8.js +1 -0
- package/.next/static/chunks/app/page-583300dd8af66e5a.js +1 -0
- package/.next/static/chunks/framework-6e06c675866dc992.js +1 -0
- package/.next/static/chunks/main-app-8b0c4a1007dbb7f4.js +1 -0
- package/.next/static/chunks/main-e680fb049d7426e1.js +1 -0
- package/.next/static/chunks/pages/_app-0c3037849002a4aa.js +1 -0
- package/.next/static/chunks/pages/_error-a647cd2c75dc4dc7.js +1 -0
- package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- package/.next/static/chunks/webpack-117444a4bfe51057.js +1 -0
- package/.next/static/css/8c1b520a38ba4ccd.css +3 -0
- package/.next/static/vFM69sDrBUf_9ULwPmVAE/_buildManifest.js +1 -0
- package/.next/static/vFM69sDrBUf_9ULwPmVAE/_ssgManifest.js +1 -0
- package/README.md +389 -0
- package/app/api/auth/route.ts +103 -0
- package/app/api/beads/route.ts +27 -0
- package/app/api/beads/stream/route.ts +83 -0
- package/app/api/config/route.ts +48 -0
- package/app/api/docs/page.tsx +497 -0
- package/app/api/login/route.ts +42 -0
- package/app/api/logout/route.ts +14 -0
- package/app/api/oauth/callback/route.ts +97 -0
- package/app/api/oauth/client-metadata.json/route.ts +33 -0
- package/app/api/oauth/jwks.json/route.ts +32 -0
- package/app/api/records/route.ts +168 -0
- package/app/api/status/route.ts +25 -0
- package/app/api/v1/graph/route.ts +251 -0
- package/app/api/v1/issues/[id]/route.ts +158 -0
- package/app/api/v1/ready/route.ts +229 -0
- package/app/globals.css +230 -0
- package/app/layout.tsx +51 -0
- package/app/login/page.tsx +164 -0
- package/app/not-found.tsx +91 -0
- package/app/opengraph-image.png +0 -0
- package/app/page.tsx +2041 -0
- package/app/twitter-image.png +0 -0
- package/bin/heartbeads.mjs +225 -0
- package/components/ActivityItem.tsx +326 -0
- package/components/ActivityOverlay.tsx +125 -0
- package/components/ActivityPanel.tsx +345 -0
- package/components/AllCommentsPanel.tsx +270 -0
- package/components/AuthButton.tsx +202 -0
- package/components/BeadTooltip.tsx +246 -0
- package/components/BeadsGraph.tsx +2493 -0
- package/components/BeadsLogo.tsx +94 -0
- package/components/CommentTooltip.tsx +338 -0
- package/components/ContextMenu.tsx +272 -0
- package/components/DescriptionModal.tsx +595 -0
- package/components/GraphStats.tsx +121 -0
- package/components/HeartIcon.tsx +33 -0
- package/components/HelpPanel.tsx +339 -0
- package/components/MobileActionSheet.tsx +255 -0
- package/components/NodeDetail.tsx +793 -0
- package/components/SettingsModal.tsx +315 -0
- package/components/StatusLegend.tsx +99 -0
- package/components/TimelineBar.tsx +116 -0
- package/components/TutorialOverlay.tsx +235 -0
- package/hooks/useBeadsComments.ts +81 -0
- package/hooks/useIsMobile.ts +19 -0
- package/lib/activity.ts +377 -0
- package/lib/agent.ts +29 -0
- package/lib/api-helpers.ts +46 -0
- package/lib/auth/client.ts +221 -0
- package/lib/auth.tsx +159 -0
- package/lib/comments.ts +413 -0
- package/lib/diff-beads.ts +128 -0
- package/lib/discover.ts +228 -0
- package/lib/env.ts +33 -0
- package/lib/gate.ts +55 -0
- package/lib/parse-beads.ts +234 -0
- package/lib/session.ts +52 -0
- package/lib/settings.ts +42 -0
- package/lib/timeline.ts +138 -0
- package/lib/tts.ts +397 -0
- package/lib/types.ts +271 -0
- package/lib/utils.ts +48 -0
- package/lib/watch-beads.ts +97 -0
- package/next.config.mjs +4 -0
- package/package.json +81 -0
- package/postcss.config.mjs +9 -0
- package/public/image.png +0 -0
- package/scripts/generate-jwk.js +38 -0
- package/tailwind.config.ts +41 -0
- package/tsconfig.json +24 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
3:I[176,[],""]
|
|
2
|
+
4:I[9414,[],""]
|
|
3
|
+
5:I[7796,["185","static/chunks/app/layout-13e3cdaaa416edb6.js"],"AuthProvider"]
|
|
4
|
+
6:I[1819,["788","static/chunks/788-aa413085174e935a.js","160","static/chunks/app/not-found-ae1139bed2018dd8.js"],"default"]
|
|
5
|
+
2:T6bc,{
|
|
6
|
+
"project": {
|
|
7
|
+
"name": "my-project",
|
|
8
|
+
"prefix": "my-proj",
|
|
9
|
+
"repos": [".", "../backend"],
|
|
10
|
+
"repoUrls": { "my-proj": "https://github.com/org/my-project" }
|
|
11
|
+
},
|
|
12
|
+
"issues": [
|
|
13
|
+
{
|
|
14
|
+
"id": "my-proj-abc",
|
|
15
|
+
"title": "Fix login redirect",
|
|
16
|
+
"description": "Full markdown description...",
|
|
17
|
+
"status": "open",
|
|
18
|
+
"priority": 1,
|
|
19
|
+
"issue_type": "bug",
|
|
20
|
+
"owner": "alice",
|
|
21
|
+
"assignee": "bob",
|
|
22
|
+
"labels": [],
|
|
23
|
+
"created_at": "2025-01-15T10:00:00Z",
|
|
24
|
+
"updated_at": "2025-01-16T14:30:00Z",
|
|
25
|
+
"closed_at": null,
|
|
26
|
+
"close_reason": null,
|
|
27
|
+
"prefix": "my-proj",
|
|
28
|
+
"blockers": ["my-proj-xyz"],
|
|
29
|
+
"dependents": ["my-proj-def"],
|
|
30
|
+
"comments": [
|
|
31
|
+
{
|
|
32
|
+
"author": { "handle": "alice.bsky.social", "did": "did:plc:..." },
|
|
33
|
+
"text": "This needs to be fixed before release",
|
|
34
|
+
"createdAt": "2025-01-16T14:30:00Z",
|
|
35
|
+
"likes": 2,
|
|
36
|
+
"replies": []
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"claimed_by": {
|
|
40
|
+
"handle": "bob.bsky.social",
|
|
41
|
+
"did": "did:plc:...",
|
|
42
|
+
"claimed_at": "2025-01-16T15:00:00Z"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"dependencies": [
|
|
47
|
+
{ "from": "my-proj-xyz", "to": "my-proj-abc", "type": "blocks" }
|
|
48
|
+
],
|
|
49
|
+
"stats": {
|
|
50
|
+
"total": 42, "open": 15, "in_progress": 8,
|
|
51
|
+
"blocked": 3, "closed": 16, "actionable": 12
|
|
52
|
+
},
|
|
53
|
+
"activity": [
|
|
54
|
+
{
|
|
55
|
+
"type": "comment-added",
|
|
56
|
+
"time": "2025-01-16T14:30:00Z",
|
|
57
|
+
"issue_id": "my-proj-abc",
|
|
58
|
+
"issue_title": "Fix login redirect",
|
|
59
|
+
"actor": { "handle": "alice.bsky.social" },
|
|
60
|
+
"detail": "This needs to be fixed..."
|
|
61
|
+
}
|
|
62
|
+
],
|
|
63
|
+
"_meta": {
|
|
64
|
+
"generated_at": "2025-01-17T09:00:00Z",
|
|
65
|
+
"api_version": "v1",
|
|
66
|
+
"heartbeads_version": "0.3.7"
|
|
67
|
+
}
|
|
68
|
+
}0:["vFM69sDrBUf_9ULwPmVAE",[[["",{"children":["api",{"children":["docs",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",{"children":["api",{"children":["docs",{"children":["__PAGE__",{},[["$L1",["$","div",null,{"className":"min-h-screen bg-white text-zinc-800 antialiased overflow-y-auto h-screen","children":["$","div",null,{"className":"max-w-3xl mx-auto px-6 py-12","children":[["$","div",null,{"className":"mb-10","children":[["$","a",null,{"href":"/","className":"text-xs text-zinc-400 hover:text-emerald-500 transition-colors","children":"← Back to graph"}],["$","h1",null,{"className":"text-2xl font-semibold mt-3 text-zinc-900","children":"Heartbeads API"}],["$","p",null,{"className":"text-sm text-zinc-500 mt-1.5 leading-relaxed","children":"Read-only REST API for AI agents, CI/CD bots, and integrations. No authentication required. All endpoints return JSON with CORS headers."}],["$","div",null,{"className":"flex items-center gap-3 mt-3","children":[["$","span",null,{"className":"text-[11px] font-mono px-2 py-0.5 rounded-full bg-emerald-50 text-emerald-600 border border-emerald-200","children":"v1"}],["$","span",null,{"className":"text-[11px] text-zinc-400","children":["Base path: ",["$","code",null,{"className":"font-mono","children":"/api/v1"}]]}]]}]]}],["$","nav",null,{"className":"mb-10 p-4 rounded-xl bg-zinc-50 border border-zinc-100","children":[["$","h2",null,{"className":"text-[11px] font-semibold uppercase tracking-widest text-zinc-400 mb-2","children":"Endpoints"}],["$","ul",null,{"className":"space-y-1.5 text-sm","children":[["$","li",null,{"children":["$","a",null,{"href":"#graph","className":"text-teal-600 hover:text-teal-700 underline-offset-2 hover:underline","children":[["$","code",null,{"className":"font-mono text-xs","children":"GET /api/v1/graph"}],["$","span",null,{"className":"text-zinc-400 ml-2","children":"— Full project snapshot"}]]}]}],["$","li",null,{"children":["$","a",null,{"href":"#issues","className":"text-teal-600 hover:text-teal-700 underline-offset-2 hover:underline","children":[["$","code",null,{"className":"font-mono text-xs","children":"GET /api/v1/issues/:id"}],["$","span",null,{"className":"text-zinc-400 ml-2","children":"— Single issue detail"}]]}]}],["$","li",null,{"children":["$","a",null,{"href":"#ready","className":"text-teal-600 hover:text-teal-700 underline-offset-2 hover:underline","children":[["$","code",null,{"className":"font-mono text-xs","children":"GET /api/v1/ready"}],["$","span",null,{"className":"text-zinc-400 ml-2","children":"— Actionable issues"}]]}]}]]}]]}],["$","section",null,{"className":"mb-10","children":[["$","h2",null,{"className":"text-lg font-semibold text-zinc-900 mb-3","children":"Common Details"}],["$","div",null,{"className":"space-y-3 text-sm text-zinc-600 leading-relaxed","children":[["$","p",null,{"children":["All responses include CORS headers (",["$","code",null,{"className":"text-xs font-mono bg-zinc-100 px-1.5 py-0.5 rounded","children":"Access-Control-Allow-Origin: *"}],") and are cached for 30 seconds."]}],["$","p",null,{"children":["Every response includes a ",["$","code",null,{"className":"text-xs font-mono bg-zinc-100 px-1.5 py-0.5 rounded","children":"_meta"}]," object with ",["$","code",null,{"className":"text-xs font-mono bg-zinc-100 px-1.5 py-0.5 rounded","children":"generated_at"}]," (ISO 8601), ",["$","code",null,{"className":"text-xs font-mono bg-zinc-100 px-1.5 py-0.5 rounded","children":"api_version"}],", ",["$","code",null,{"className":"text-xs font-mono bg-zinc-100 px-1.5 py-0.5 rounded","children":"heartbeads_version"}],", and optional ",["$","code",null,{"className":"text-xs font-mono bg-zinc-100 px-1.5 py-0.5 rounded","children":"warnings"}],"."]}],["$","p",null,{"children":["Error responses return ",["$","code",null,{"className":"text-xs font-mono bg-zinc-100 px-1.5 py-0.5 rounded","children":"{ \"error\": \"...\", \"hint\": \"...\" }"}]," with appropriate HTTP status codes (404, 500)."]}]]}]]}],["$","section",null,{"className":"mb-10","children":[["$","h2",null,{"className":"text-lg font-semibold text-zinc-900 mb-3","children":"Authentication"}],["$","div",null,{"className":"space-y-3 text-sm text-zinc-600 leading-relaxed","children":[["$","p",null,{"children":["By default, no authentication is required. When heartbeads is started with ",["$","code",null,{"className":"text-xs font-mono bg-zinc-100 px-1.5 py-0.5 rounded","children":"--password"}],", all API requests must include the password:"]}],["$","div",null,{"className":"space-y-2","children":[["$","div",null,{"className":"flex items-start gap-2","children":[["$","span",null,{"className":"shrink-0 text-[11px] font-mono px-1.5 py-0.5 rounded bg-zinc-100 text-zinc-600 mt-0.5","children":"1"}],["$","div",null,{"children":[["$","span",null,{"className":"font-medium text-zinc-700","children":"Bearer token"}]," (recommended)",["$","pre",null,{"className":"mt-1 bg-zinc-950 text-zinc-300 rounded-lg p-3 text-xs font-mono overflow-x-auto","children":"curl -H \"Authorization: Bearer <password>\" http://localhost:3000/api/v1/graph"}]]}]]}],["$","div",null,{"className":"flex items-start gap-2","children":[["$","span",null,{"className":"shrink-0 text-[11px] font-mono px-1.5 py-0.5 rounded bg-zinc-100 text-zinc-600 mt-0.5","children":"2"}],["$","div",null,{"children":[["$","span",null,{"className":"font-medium text-zinc-700","children":"Query parameter"}],["$","pre",null,{"className":"mt-1 bg-zinc-950 text-zinc-300 rounded-lg p-3 text-xs font-mono overflow-x-auto","children":"curl \"http://localhost:3000/api/v1/graph?token=<password>\""}]]}]]}]]}],["$","p",null,{"children":["Unauthenticated API requests return ",["$","code",null,{"className":"text-xs font-mono bg-zinc-100 px-1.5 py-0.5 rounded","children":"401"}]," with a JSON error. Browser requests are redirected to a login page."]}]]}]]}],["$","hr",null,{"className":"border-zinc-100 mb-10"}],["$","section",null,{"id":"graph","className":"mb-12 scroll-mt-8","children":[["$","div",null,{"className":"flex items-center gap-2 mb-3","children":[["$","span",null,{"className":"text-[11px] font-mono font-bold px-2 py-0.5 rounded bg-emerald-50 text-emerald-600 border border-emerald-200","children":"GET"}],["$","code",null,{"className":"text-sm font-mono font-semibold text-zinc-900","children":"/api/v1/graph"}]]}],["$","p",null,{"className":"text-sm text-zinc-600 mb-4 leading-relaxed","children":"Returns the entire project state in a single response: all issues with comments and claims, dependency edges, summary statistics, and a recent activity feed. This is the primary endpoint for AI agents that need full project context."}],["$","h3",null,{"className":"text-xs font-semibold text-zinc-700 mb-2","children":"Query Parameters"}],["$","div",null,{"className":"overflow-x-auto mb-4","children":["$","table",null,{"className":"w-full text-sm border-collapse","children":[["$","thead",null,{"children":["$","tr",null,{"className":"text-left text-xs text-zinc-500 border-b border-zinc-100","children":[["$","th",null,{"className":"py-2 pr-4 font-medium","children":"Param"}],["$","th",null,{"className":"py-2 pr-4 font-medium","children":"Type"}],["$","th",null,{"className":"py-2 pr-4 font-medium","children":"Default"}],["$","th",null,{"className":"py-2 font-medium","children":"Description"}]]}]}],["$","tbody",null,{"className":"text-zinc-600","children":[["$","tr",null,{"className":"border-b border-zinc-50","children":[["$","td",null,{"className":"py-2 pr-4 font-mono text-xs text-teal-600","children":"status"}],["$","td",null,{"className":"py-2 pr-4 text-xs","children":"string"}],["$","td",null,{"className":"py-2 pr-4 text-xs text-zinc-400","children":"all"}],["$","td",null,{"className":"py-2 text-xs","children":["Comma-separated status filter: ",["$","code",null,{"className":"bg-zinc-100 px-1 rounded","children":"open,in_progress,blocked,deferred,closed"}]]}]]}],["$","tr",null,{"className":"border-b border-zinc-50","children":[["$","td",null,{"className":"py-2 pr-4 font-mono text-xs text-teal-600","children":"priority"}],["$","td",null,{"className":"py-2 pr-4 text-xs","children":"string"}],["$","td",null,{"className":"py-2 pr-4 text-xs text-zinc-400","children":"all"}],["$","td",null,{"className":"py-2 text-xs","children":["Comma-separated priority filter: ",["$","code",null,{"className":"bg-zinc-100 px-1 rounded","children":"0"}]," (critical) to ",["$","code",null,{"className":"bg-zinc-100 px-1 rounded","children":"4"}]," (backlog)"]}]]}],["$","tr",null,{"className":"border-b border-zinc-50","children":[["$","td",null,{"className":"py-2 pr-4 font-mono text-xs text-teal-600","children":"prefix"}],["$","td",null,{"className":"py-2 pr-4 text-xs","children":"string"}],["$","td",null,{"className":"py-2 pr-4 text-xs text-zinc-400","children":"all"}],["$","td",null,{"className":"py-2 text-xs","children":["Filter by repo prefix (e.g. ",["$","code",null,{"className":"bg-zinc-100 px-1 rounded","children":"beads-map"}],")"]}]]}],["$","tr",null,{"className":"border-b border-zinc-50","children":[["$","td",null,{"className":"py-2 pr-4 font-mono text-xs text-teal-600","children":"include"}],["$","td",null,{"className":"py-2 pr-4 text-xs","children":"string"}],["$","td",null,{"className":"py-2 pr-4 text-xs text-zinc-400","children":"comments,activity"}],["$","td",null,{"className":"py-2 text-xs","children":"Opt-in to expensive fields. Empty string skips both. Omitting returns all."}]]}],["$","tr",null,{"children":[["$","td",null,{"className":"py-2 pr-4 font-mono text-xs text-teal-600","children":"limit"}],["$","td",null,{"className":"py-2 pr-4 text-xs","children":"number"}],["$","td",null,{"className":"py-2 pr-4 text-xs text-zinc-400","children":"50"}],["$","td",null,{"className":"py-2 text-xs","children":"Activity feed cap (max 200)"}]]}]]}]]}]}],["$","h3",null,{"className":"text-xs font-semibold text-zinc-700 mb-2","children":"Example Request"}],["$","pre",null,{"className":"bg-zinc-950 text-zinc-300 rounded-lg p-4 text-xs font-mono overflow-x-auto mb-4","children":"curl http://localhost:3000/api/v1/graph?status=open,in_progress&limit=10"}],["$","h3",null,{"className":"text-xs font-semibold text-zinc-700 mb-2","children":"Response Shape"}],["$","pre",null,{"className":"bg-zinc-950 text-zinc-300 rounded-lg p-4 text-xs font-mono overflow-x-auto","children":"$2"}]]}],["$","hr",null,{"className":"border-zinc-100 mb-10"}],["$","section",null,{"id":"issues","className":"mb-12 scroll-mt-8","children":[["$","div",null,{"className":"flex items-center gap-2 mb-3","children":[["$","span",null,{"className":"text-[11px] font-mono font-bold px-2 py-0.5 rounded bg-emerald-50 text-emerald-600 border border-emerald-200","children":"GET"}],["$","code",null,{"className":"text-sm font-mono font-semibold text-zinc-900","children":"/api/v1/issues/:id"}]]}],["$","p",null,{"className":"text-sm text-zinc-600 mb-4 leading-relaxed","children":["Returns a single issue with its full description, threaded comments, claim info, and enriched blockers/dependents (each includes ",["$","code",null,{"className":"text-xs font-mono bg-zinc-100 px-1.5 py-0.5 rounded","children":"title"}]," and ",["$","code",null,{"className":"text-xs font-mono bg-zinc-100 px-1.5 py-0.5 rounded","children":"status"}]," so you can understand the blocking context without extra requests)."]}],["$","h3",null,{"className":"text-xs font-semibold text-zinc-700 mb-2","children":"Path Parameters"}],["$","div",null,{"className":"overflow-x-auto mb-4","children":["$","table",null,{"className":"w-full text-sm border-collapse","children":[["$","thead",null,{"children":["$","tr",null,{"className":"text-left text-xs text-zinc-500 border-b border-zinc-100","children":[["$","th",null,{"className":"py-2 pr-4 font-medium","children":"Param"}],["$","th",null,{"className":"py-2 font-medium","children":"Description"}]]}]}],["$","tbody",null,{"className":"text-zinc-600","children":["$","tr",null,{"children":[["$","td",null,{"className":"py-2 pr-4 font-mono text-xs text-teal-600","children":"id"}],["$","td",null,{"className":"py-2 text-xs","children":["The issue ID (e.g. ",["$","code",null,{"className":"bg-zinc-100 px-1 rounded","children":"beads-map-abc"}],")"]}]]}]}]]}]}],["$","h3",null,{"className":"text-xs font-semibold text-zinc-700 mb-2","children":"Example Request"}],["$","pre",null,{"className":"bg-zinc-950 text-zinc-300 rounded-lg p-4 text-xs font-mono overflow-x-auto mb-4","children":"curl http://localhost:3000/api/v1/issues/beads-map-abc"}],["$","h3",null,{"className":"text-xs font-semibold text-zinc-700 mb-2","children":"Response Shape"}],["$","pre",null,{"className":"bg-zinc-950 text-zinc-300 rounded-lg p-4 text-xs font-mono overflow-x-auto mb-4","children":"{\n \"issue\": {\n \"id\": \"beads-map-abc\",\n \"title\": \"Fix login redirect\",\n \"description\": \"Full markdown description...\",\n \"status\": \"open\",\n \"priority\": 1,\n \"issue_type\": \"bug\",\n \"owner\": \"alice\",\n \"assignee\": null,\n \"labels\": [],\n \"created_at\": \"2025-01-15T10:00:00Z\",\n \"updated_at\": \"2025-01-16T14:30:00Z\",\n \"closed_at\": null,\n \"close_reason\": null,\n \"prefix\": \"beads-map\",\n \"blockers\": [\n { \"id\": \"beads-map-xyz\", \"title\": \"Deploy auth service\", \"status\": \"in_progress\" }\n ],\n \"dependents\": [\n { \"id\": \"beads-map-def\", \"title\": \"Add SSO support\", \"status\": \"open\" }\n ],\n \"comments\": [...],\n \"claimed_by\": null\n },\n \"_meta\": { ... }\n}"}],["$","h3",null,{"className":"text-xs font-semibold text-zinc-700 mb-2","children":"Error Response (404)"}],["$","pre",null,{"className":"bg-zinc-950 text-zinc-300 rounded-lg p-4 text-xs font-mono overflow-x-auto","children":"{\n \"error\": \"Issue not found\",\n \"hint\": \"No issue with id \\\"nonexistent\\\". Use GET /api/v1/graph to list all issues.\"\n}"}]]}],["$","hr",null,{"className":"border-zinc-100 mb-10"}],["$","section",null,{"id":"ready","className":"mb-12 scroll-mt-8","children":[["$","div",null,{"className":"flex items-center gap-2 mb-3","children":[["$","span",null,{"className":"text-[11px] font-mono font-bold px-2 py-0.5 rounded bg-emerald-50 text-emerald-600 border border-emerald-200","children":"GET"}],["$","code",null,{"className":"text-sm font-mono font-semibold text-zinc-900","children":"/api/v1/ready"}]]}],["$","p",null,{"className":"text-sm text-zinc-600 mb-4 leading-relaxed","children":["Returns issues that are ready to work on: status is ",["$","code",null,{"className":"text-xs font-mono bg-zinc-100 px-1.5 py-0.5 rounded","children":"open"}]," or ",["$","code",null,{"className":"text-xs font-mono bg-zinc-100 px-1.5 py-0.5 rounded","children":"in_progress"}]," and all upstream blockers are ",["$","code",null,{"className":"text-xs font-mono bg-zinc-100 px-1.5 py-0.5 rounded","children":"closed"}],". Sorted by priority (critical first), then by age (oldest first)."]}],["$","p",null,{"className":"text-sm text-zinc-500 mb-4 leading-relaxed","children":["This is the “what should I work on?” endpoint. A Playwright test bot can hit ",["$","code",null,{"className":"text-xs font-mono bg-zinc-100 px-1.5 py-0.5 rounded","children":"?type=feature&unclaimed=true"}]," to find untested features. A code reviewer can query ",["$","code",null,{"className":"text-xs font-mono bg-zinc-100 px-1.5 py-0.5 rounded","children":"?type=bug"}]," to find bugs needing review."]}],["$","h3",null,{"className":"text-xs font-semibold text-zinc-700 mb-2","children":"Query Parameters"}],["$","div",null,{"className":"overflow-x-auto mb-4","children":["$","table",null,{"className":"w-full text-sm border-collapse","children":[["$","thead",null,{"children":["$","tr",null,{"className":"text-left text-xs text-zinc-500 border-b border-zinc-100","children":[["$","th",null,{"className":"py-2 pr-4 font-medium","children":"Param"}],["$","th",null,{"className":"py-2 pr-4 font-medium","children":"Type"}],["$","th",null,{"className":"py-2 pr-4 font-medium","children":"Default"}],["$","th",null,{"className":"py-2 font-medium","children":"Description"}]]}]}],["$","tbody",null,{"className":"text-zinc-600","children":[["$","tr",null,{"className":"border-b border-zinc-50","children":[["$","td",null,{"className":"py-2 pr-4 font-mono text-xs text-teal-600","children":"unclaimed"}],["$","td",null,{"className":"py-2 pr-4 text-xs","children":"boolean"}],["$","td",null,{"className":"py-2 pr-4 text-xs text-zinc-400","children":"false"}],["$","td",null,{"className":"py-2 text-xs","children":"Only return issues with no claim comment"}]]}],["$","tr",null,{"className":"border-b border-zinc-50","children":[["$","td",null,{"className":"py-2 pr-4 font-mono text-xs text-teal-600","children":"type"}],["$","td",null,{"className":"py-2 pr-4 text-xs","children":"string"}],["$","td",null,{"className":"py-2 pr-4 text-xs text-zinc-400","children":"all"}],["$","td",null,{"className":"py-2 text-xs","children":["Comma-separated issue type filter: ",["$","code",null,{"className":"bg-zinc-100 px-1 rounded","children":"task,bug,feature,chore,epic"}]]}]]}],["$","tr",null,{"className":"border-b border-zinc-50","children":[["$","td",null,{"className":"py-2 pr-4 font-mono text-xs text-teal-600","children":"assignee"}],["$","td",null,{"className":"py-2 pr-4 text-xs","children":"string"}],["$","td",null,{"className":"py-2 pr-4 text-xs text-zinc-400","children":"all"}],["$","td",null,{"className":"py-2 text-xs","children":"Filter by assignee handle"}]]}],["$","tr",null,{"className":"border-b border-zinc-50","children":[["$","td",null,{"className":"py-2 pr-4 font-mono text-xs text-teal-600","children":"prefix"}],["$","td",null,{"className":"py-2 pr-4 text-xs","children":"string"}],["$","td",null,{"className":"py-2 pr-4 text-xs text-zinc-400","children":"all"}],["$","td",null,{"className":"py-2 text-xs","children":"Filter by repo prefix"}]]}],["$","tr",null,{"children":[["$","td",null,{"className":"py-2 pr-4 font-mono text-xs text-teal-600","children":"limit"}],["$","td",null,{"className":"py-2 pr-4 text-xs","children":"number"}],["$","td",null,{"className":"py-2 pr-4 text-xs text-zinc-400","children":"all"}],["$","td",null,{"className":"py-2 text-xs","children":"Max issues returned"}]]}]]}]]}]}],["$","h3",null,{"className":"text-xs font-semibold text-zinc-700 mb-2","children":"Example Requests"}],["$","pre",null,{"className":"bg-zinc-950 text-zinc-300 rounded-lg p-4 text-xs font-mono overflow-x-auto mb-4","children":"# All actionable issues\ncurl http://localhost:3000/api/v1/ready\n\n# Only unclaimed bugs\ncurl \"http://localhost:3000/api/v1/ready?unclaimed=true&type=bug\"\n\n# Top 5 highest priority\ncurl \"http://localhost:3000/api/v1/ready?limit=5\""}],["$","h3",null,{"className":"text-xs font-semibold text-zinc-700 mb-2","children":"Response Shape"}],["$","pre",null,{"className":"bg-zinc-950 text-zinc-300 rounded-lg p-4 text-xs font-mono overflow-x-auto","children":"{\n \"issues\": [\n {\n \"id\": \"my-proj-abc\",\n \"title\": \"Fix login redirect\",\n \"status\": \"open\",\n \"priority\": 0,\n \"issue_type\": \"bug\",\n ...\n \"comments\": [...],\n \"claimed_by\": null\n }\n ],\n \"stats\": {\n \"total_ready\": 12,\n \"unclaimed\": 8,\n \"by_priority\": { \"0\": 2, \"1\": 5, \"2\": 3, \"3\": 2 },\n \"by_type\": { \"bug\": 4, \"feature\": 6, \"task\": 2 }\n },\n \"_meta\": { ... }\n}"}]]}],["$","hr",null,{"className":"border-zinc-100 mb-10"}],["$","section",null,{"className":"mb-12","children":[["$","h2",null,{"className":"text-lg font-semibold text-zinc-900 mb-4","children":"Example Use Cases"}],["$","div",null,{"className":"space-y-3","children":[["$","div","Playwright test bot",{"className":"flex items-start gap-3 p-3 rounded-lg bg-zinc-50 border border-zinc-100","children":[["$","div",null,{"className":"shrink-0 w-5 h-5 rounded-full bg-teal-100 flex items-center justify-center mt-0.5","children":["$","div",null,{"className":"w-1.5 h-1.5 rounded-full bg-teal-500"}]}],["$","div",null,{"children":[["$","div",null,{"className":"text-xs font-semibold text-zinc-700","children":"Playwright test bot"}],["$","code",null,{"className":"text-[11px] font-mono text-teal-600","children":"GET /api/v1/ready?type=feature&unclaimed=true"}],["$","div",null,{"className":"text-xs text-zinc-500 mt-0.5","children":"Finds untested features, writes E2E tests"}]]}]]}],["$","div","Code reviewer AI",{"className":"flex items-start gap-3 p-3 rounded-lg bg-zinc-50 border border-zinc-100","children":[["$","div",null,{"className":"shrink-0 w-5 h-5 rounded-full bg-teal-100 flex items-center justify-center mt-0.5","children":["$","div",null,{"className":"w-1.5 h-1.5 rounded-full bg-teal-500"}]}],["$","div",null,{"children":[["$","div",null,{"className":"text-xs font-semibold text-zinc-700","children":"Code reviewer AI"}],["$","code",null,{"className":"text-[11px] font-mono text-teal-600","children":"GET /api/v1/graph?status=in_progress"}],["$","div",null,{"className":"text-xs text-zinc-500 mt-0.5","children":"Reviews work in progress, posts feedback as comments"}]]}]]}],["$","div","Planning agent",{"className":"flex items-start gap-3 p-3 rounded-lg bg-zinc-50 border border-zinc-100","children":[["$","div",null,{"className":"shrink-0 w-5 h-5 rounded-full bg-teal-100 flex items-center justify-center mt-0.5","children":["$","div",null,{"className":"w-1.5 h-1.5 rounded-full bg-teal-500"}]}],["$","div",null,{"children":[["$","div",null,{"className":"text-xs font-semibold text-zinc-700","children":"Planning agent"}],["$","code",null,{"className":"text-[11px] font-mono text-teal-600","children":"GET /api/v1/graph"}],["$","div",null,{"className":"text-xs text-zinc-500 mt-0.5","children":"Analyzes the full dependency graph, identifies bottlenecks"}]]}]]}],["$","div","CI/CD bot",{"className":"flex items-start gap-3 p-3 rounded-lg bg-zinc-50 border border-zinc-100","children":[["$","div",null,{"className":"shrink-0 w-5 h-5 rounded-full bg-teal-100 flex items-center justify-center mt-0.5","children":["$","div",null,{"className":"w-1.5 h-1.5 rounded-full bg-teal-500"}]}],["$","div",null,{"children":[["$","div",null,{"className":"text-xs font-semibold text-zinc-700","children":"CI/CD bot"}],["$","code",null,{"className":"text-[11px] font-mono text-teal-600","children":"GET /api/v1/issues/:id"}],["$","div",null,{"className":"text-xs text-zinc-500 mt-0.5","children":"Checks a specific issue's status after deployment"}]]}]]}],["$","div","Standup bot",{"className":"flex items-start gap-3 p-3 rounded-lg bg-zinc-50 border border-zinc-100","children":[["$","div",null,{"className":"shrink-0 w-5 h-5 rounded-full bg-teal-100 flex items-center justify-center mt-0.5","children":["$","div",null,{"className":"w-1.5 h-1.5 rounded-full bg-teal-500"}]}],["$","div",null,{"children":[["$","div",null,{"className":"text-xs font-semibold text-zinc-700","children":"Standup bot"}],["$","code",null,{"className":"text-[11px] font-mono text-teal-600","children":"GET /api/v1/graph?include=activity&limit=20"}],["$","div",null,{"className":"text-xs text-zinc-500 mt-0.5","children":"Summarizes the last 20 activities for daily standup"}]]}]]}]]}]]}],["$","footer",null,{"className":"text-center text-xs text-zinc-300 pt-6 border-t border-zinc-100","children":"Heartbeads API v1"}]]}]}],null],null],null]},[null,["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children","api","children","docs","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[null,["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children","api","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/8c1b520a38ba4ccd.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L5",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":["$","$L6",null,{}],"notFoundStyles":[]}]}]}]}]],null],null],["$L7",null]]]]
|
|
69
|
+
7:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Heartbeads API Docs"}],["$","meta","3",{"name":"description","content":"Public REST API documentation for Heartbeads"}],["$","meta","4",{"property":"og:title","content":"Heartbeads"}],["$","meta","5",{"property":"og:description","content":"Interactive dependency graph viewer for beads issues — see your project's heartbeat"}],["$","meta","6",{"property":"og:site_name","content":"Heartbeads"}],["$","meta","7",{"property":"og:image:type","content":"image/png"}],["$","meta","8",{"property":"og:image:width","content":"3008"}],["$","meta","9",{"property":"og:image:height","content":"1686"}],["$","meta","10",{"property":"og:image","content":"http://localhost:3000/opengraph-image.png?dd44d0a71ff29c1f"}],["$","meta","11",{"property":"og:type","content":"website"}],["$","meta","12",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","13",{"name":"twitter:title","content":"Heartbeads"}],["$","meta","14",{"name":"twitter:description","content":"Interactive dependency graph viewer for beads issues — see your project's heartbeat"}],["$","meta","15",{"name":"twitter:image:type","content":"image/png"}],["$","meta","16",{"name":"twitter:image:width","content":"3008"}],["$","meta","17",{"name":"twitter:image:height","content":"1686"}],["$","meta","18",{"name":"twitter:image","content":"http://localhost:3000/twitter-image.png?dd44d0a71ff29c1f"}]]
|
|
70
|
+
1:null
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(()=>{var e={};e.id=740,e.ids=[740],e.modules={72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},74026:e=>{e.exports=require("string_decoder")},98061:e=>{e.exports=require("node:assert")},92761:e=>{e.exports=require("node:async_hooks")},72254:e=>{e.exports=require("node:buffer")},40027:e=>{e.exports=require("node:console")},6005:e=>{e.exports=require("node:crypto")},65714:e=>{e.exports=require("node:diagnostics_channel")},30604:e=>{e.exports=require("node:dns")},29227:e=>{e.exports=require("node:dns/promises")},15673:e=>{e.exports=require("node:events")},88849:e=>{e.exports=require("node:http")},42725:e=>{e.exports=require("node:http2")},22286:e=>{e.exports=require("node:https")},87503:e=>{e.exports=require("node:net")},38846:e=>{e.exports=require("node:perf_hooks")},39630:e=>{e.exports=require("node:querystring")},84492:e=>{e.exports=require("node:stream")},31764:e=>{e.exports=require("node:tls")},41041:e=>{e.exports=require("node:url")},47261:e=>{e.exports=require("node:util")},93746:e=>{e.exports=require("node:util/types")},24086:e=>{e.exports=require("node:worker_threads")},65628:e=>{e.exports=require("node:zlib")},89697:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>O,patchFetch:()=>w,requestAsyncStorage:()=>_,routeModule:()=>g,serverHooks:()=>y,staticGenerationAsyncStorage:()=>x});var o={};r.r(o),r.d(o,{POST:()=>h,dynamic:()=>d});var n=r(12085),s=r(31650),a=r(85980),i=r(30627),l=r(79882),u=r(39739),c=r(26533),p=r(30384);let d="force-dynamic";async function h(e){try{let t=await (0,l.hc)(),r=await e.json(),o=r?.handle,n=r?.returnTo;if("string"!=typeof o||!(0,u.isValidHandle)(o))return i.NextResponse.json({error:"Invalid handle"},{status:400});if(n&&"string"==typeof n){let e=await (0,p.C5)();e.returnTo=n,await e.save()}let s=await t.authorize(o,{scope:"atproto transition:generic"});return i.NextResponse.json({redirectUrl:s.toString()})}catch(t){console.error("OAuth authorize failed:",t);let e="Couldn't initiate login";return t instanceof c.OAuthResolverError&&(e=t.message),i.NextResponse.json({error:e},{status:500})}}let g=new n.AppRouteRouteModule({definition:{kind:s.x.APP_ROUTE,page:"/api/login/route",pathname:"/api/login",filename:"route",bundlePath:"app/api/login/route"},resolvedPagePath:"/Users/david/Projects/gainforest/beads-map/app/api/login/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:_,staticGenerationAsyncStorage:x,serverHooks:y}=g,O="/api/login/route";function w(){return(0,a.patchFetch)({serverHooks:y,staticGenerationAsyncStorage:x})}},79882:(e,t,r)=>{r.d(t,{Vl:()=>x,hc:()=>_});var o=r(26533),n=r(7431),s=r(31635),a=r(30384);let i="globalOAuthClient";global[i]||(global[i]=null);let l="oauthSharedStore";global[l]||(global[l]=new Map);let u=global[l],c={get:async e=>u.get(`state:${e}`),async set(e,t){u.set(`state:${e}`,t)},async del(e){u.delete(`state:${e}`)}},p={async get(e){let t=u.get(`session:${e}`);if(t)return t;try{let t=await (0,a.C5)();if(t.oauthSession&&t.did===e){let r=JSON.parse(t.oauthSession);return u.set(`session:${e}`,r),r}}catch(e){console.warn("Failed to restore OAuth session from cookie:",e)}},async set(e,t){u.set(`session:${e}`,t);try{let e=await (0,a.C5)();e.oauthSession=JSON.stringify(t),await e.save()}catch(e){console.warn("Failed to save OAuth session to cookie:",e)}},async del(e){u.delete(`session:${e}`);try{let e=await (0,a.C5)();e.oauthSession=void 0,await e.save()}catch(e){console.warn("Failed to clear OAuth session from cookie:",e)}}},d=null;async function h(){if(d)return d;let e=s.O.ATPROTO_JWK_PRIVATE;if(!e)return null;try{let t=JSON.parse(e);return d=[await n.JoseKey.fromImportable(t,t.kid||"key-1")]}catch(e){return console.error("Failed to parse ATPROTO_JWK_PRIVATE:",e),null}}let g=async()=>{let e=s.O.PUBLIC_URL,t=`http://127.0.0.1:${s.O.PORT}`,r=encodeURIComponent,n=!!s.O.ATPROTO_JWK_PRIVATE,a=!!e,i=null;try{n&&a&&(i=await h())}catch(e){console.error("Error getting keyset:",e)}let l=null!==i&&a,u=l?e:t,d={client_name:"Beads Map",client_uri:u,dpop_bound_access_tokens:!0,grant_types:["authorization_code","refresh_token"],response_types:["code"],scope:"atproto transition:generic",application_type:"web"};l?(d.client_id=`${e}/api/oauth/client-metadata.json`,d.redirect_uris=[`${e}/api/oauth/callback`],d.token_endpoint_auth_method="private_key_jwt",d.token_endpoint_auth_signing_alg="ES256",d.jwks_uri=`${e}/api/oauth/jwks.json`):(d.client_id=`http://localhost?redirect_uri=${r(`${u}/api/oauth/callback`)}&scope=${r("atproto transition:generic")}`,d.redirect_uris=[`${u}/api/oauth/callback`],d.token_endpoint_auth_method="none");let g={clientMetadata:d,stateStore:c,sessionStore:p};return i&&(g.keyset=i),new o.NodeOAuthClient(g)},_=async()=>{let e=global[i];if(!e)try{let e=await g();return global[i]=e,e}catch(e){throw console.error("Failed to create OAuth client:",e),e}return e};async function x(){let e=await _();return"jwks"in e&&e.jwks?e.jwks:null}},31635:(e,t,r)=>{r.d(t,{O:()=>o});let o={get COOKIE_SECRET(){return process.env.COOKIE_SECRET||"development-secret-at-least-32-chars!!"},get PUBLIC_URL(){return process.env.PUBLIC_URL||""},get PORT(){return parseInt(process.env.PORT||"3000",10)},get ATPROTO_JWK_PRIVATE(){return process.env.ATPROTO_JWK_PRIVATE||""},get HEARTBEADS_PASSWORD(){return process.env.HEARTBEADS_PASSWORD||""}}},30384:(e,t,r)=>{r.d(t,{C5:()=>l,Gg:()=>i,Ov:()=>u});var o=r(31635),n=r(20987),s=r(9463);let a={cookieName:"beads_map_sid",password:o.O.COOKIE_SECRET,cookieOptions:{secure:!0,maxAge:2592e3}};async function i(){let e=await (0,s.cookies)();return await (0,n.iW)(e,a)}async function l(){let e=await (0,s.cookies)();return await (0,n.iW)(e,a)}async function u(){(await l()).destroy()}}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),o=t.X(0,[719,247,343,533,739],()=>r(89697));module.exports=o})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":1,"files":["../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/async-local-storage.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/package.json","../../../../../node_modules/next","../../../../../package.json","../../../../package.json","../../../chunks/247.js","../../../chunks/343.js","../../../chunks/533.js","../../../chunks/719.js","../../../chunks/739.js","../../../webpack-runtime.js"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(()=>{var e={};e.id=322,e.ids=[322],e.modules={72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},6005:e=>{e.exports=require("node:crypto")},88718:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>O,patchFetch:()=>m,requestAsyncStorage:()=>l,routeModule:()=>d,serverHooks:()=>x,staticGenerationAsyncStorage:()=>g});var o={};r.r(o),r.d(o,{POST:()=>p,dynamic:()=>c});var s=r(12085),n=r(31650),a=r(85980),i=r(30627),u=r(30384);let c="force-dynamic";async function p(){try{return await (0,u.Ov)(),i.NextResponse.json({success:!0})}catch(e){return console.error("Logout failed:",e),i.NextResponse.json({error:"Logout failed"},{status:500})}}let d=new s.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/logout/route",pathname:"/api/logout",filename:"route",bundlePath:"app/api/logout/route"},resolvedPagePath:"/Users/david/Projects/gainforest/beads-map/app/api/logout/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:l,staticGenerationAsyncStorage:g,serverHooks:x}=d,O="/api/logout/route";function m(){return(0,a.patchFetch)({serverHooks:x,staticGenerationAsyncStorage:g})}},31635:(e,t,r)=>{r.d(t,{O:()=>o});let o={get COOKIE_SECRET(){return process.env.COOKIE_SECRET||"development-secret-at-least-32-chars!!"},get PUBLIC_URL(){return process.env.PUBLIC_URL||""},get PORT(){return parseInt(process.env.PORT||"3000",10)},get ATPROTO_JWK_PRIVATE(){return process.env.ATPROTO_JWK_PRIVATE||""},get HEARTBEADS_PASSWORD(){return process.env.HEARTBEADS_PASSWORD||""}}},30384:(e,t,r)=>{r.d(t,{C5:()=>u,Gg:()=>i,Ov:()=>c});var o=r(31635),s=r(20987),n=r(9463);let a={cookieName:"beads_map_sid",password:o.O.COOKIE_SECRET,cookieOptions:{secure:!0,maxAge:2592e3}};async function i(){let e=await (0,n.cookies)();return await (0,s.iW)(e,a)}async function u(){let e=await (0,n.cookies)();return await (0,s.iW)(e,a)}async function c(){(await u()).destroy()}}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),o=t.X(0,[719,247,343],()=>r(88718));module.exports=o})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":1,"files":["../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/async-local-storage.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/package.json","../../../../../node_modules/next","../../../../../package.json","../../../../package.json","../../../chunks/247.js","../../../chunks/343.js","../../../chunks/719.js","../../../webpack-runtime.js"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(()=>{var e={};e.id=262,e.ids=[262],e.modules={72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},74026:e=>{e.exports=require("string_decoder")},98061:e=>{e.exports=require("node:assert")},92761:e=>{e.exports=require("node:async_hooks")},72254:e=>{e.exports=require("node:buffer")},40027:e=>{e.exports=require("node:console")},6005:e=>{e.exports=require("node:crypto")},65714:e=>{e.exports=require("node:diagnostics_channel")},30604:e=>{e.exports=require("node:dns")},29227:e=>{e.exports=require("node:dns/promises")},15673:e=>{e.exports=require("node:events")},88849:e=>{e.exports=require("node:http")},42725:e=>{e.exports=require("node:http2")},22286:e=>{e.exports=require("node:https")},87503:e=>{e.exports=require("node:net")},38846:e=>{e.exports=require("node:perf_hooks")},39630:e=>{e.exports=require("node:querystring")},84492:e=>{e.exports=require("node:stream")},31764:e=>{e.exports=require("node:tls")},41041:e=>{e.exports=require("node:url")},47261:e=>{e.exports=require("node:util")},93746:e=>{e.exports=require("node:util/types")},24086:e=>{e.exports=require("node:worker_threads")},65628:e=>{e.exports=require("node:zlib")},27420:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>y,patchFetch:()=>_,requestAsyncStorage:()=>f,routeModule:()=>h,serverHooks:()=>m,staticGenerationAsyncStorage:()=>g});var o={};r.r(o),r.d(o,{GET:()=>d,dynamic:()=>p});var n=r(12085),s=r(31650),a=r(85980),i=r(75615),l=r(79882),u=r(30384),c=r(31635);let p="force-dynamic";async function d(e){try{let t,r,o,n;let s=await (0,l.hc)(),a=new URL(e.url),p=new URLSearchParams(a.search);for(let e=1;e<=3;e++)try{t=(await s.callback(p)).session;break}catch(o){r=o;let t=o instanceof Error?o.message:String(o);if(console.error(`OAuth callback attempt ${e} failed:`,t),(t.includes("UND_ERR_SOCKET")||t.includes("fetch failed")||t.includes("Failed to resolve OAuth server metadata"))&&e<3){await new Promise(t=>setTimeout(t,1e3*e));continue}throw o}if(!t)throw r||Error("Failed to create session after retries");let d=t.did;try{let e=new i.Agent(t),r=await e.getProfile({actor:t.did});r.success&&(d=r.data.handle,o=r.data.displayName,n=r.data.avatar)}catch(e){console.warn("Failed to fetch profile during login:",e)}let h=await (0,u.C5)(),f=h.returnTo||"/";h.did=t.did,h.handle=d,h.displayName=o,h.avatar=n,h.returnTo=void 0,await h.save();let g=c.O.PUBLIC_URL||new URL(e.url).origin,m=f.startsWith("/")?f:"/";return Response.redirect(`${g}${m}`,303)}catch(r){console.error("OAuth callback failed:",r);let t=c.O.PUBLIC_URL||new URL(e.url).origin;return Response.redirect(`${t}/?error=${encodeURIComponent("Authentication failed - please try again")}`,303)}}let h=new n.AppRouteRouteModule({definition:{kind:s.x.APP_ROUTE,page:"/api/oauth/callback/route",pathname:"/api/oauth/callback",filename:"route",bundlePath:"app/api/oauth/callback/route"},resolvedPagePath:"/Users/david/Projects/gainforest/beads-map/app/api/oauth/callback/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:f,staticGenerationAsyncStorage:g,serverHooks:m}=h,y="/api/oauth/callback/route";function _(){return(0,a.patchFetch)({serverHooks:m,staticGenerationAsyncStorage:g})}},79882:(e,t,r)=>{r.d(t,{Vl:()=>m,hc:()=>g});var o=r(26533),n=r(7431),s=r(31635),a=r(30384);let i="globalOAuthClient";global[i]||(global[i]=null);let l="oauthSharedStore";global[l]||(global[l]=new Map);let u=global[l],c={get:async e=>u.get(`state:${e}`),async set(e,t){u.set(`state:${e}`,t)},async del(e){u.delete(`state:${e}`)}},p={async get(e){let t=u.get(`session:${e}`);if(t)return t;try{let t=await (0,a.C5)();if(t.oauthSession&&t.did===e){let r=JSON.parse(t.oauthSession);return u.set(`session:${e}`,r),r}}catch(e){console.warn("Failed to restore OAuth session from cookie:",e)}},async set(e,t){u.set(`session:${e}`,t);try{let e=await (0,a.C5)();e.oauthSession=JSON.stringify(t),await e.save()}catch(e){console.warn("Failed to save OAuth session to cookie:",e)}},async del(e){u.delete(`session:${e}`);try{let e=await (0,a.C5)();e.oauthSession=void 0,await e.save()}catch(e){console.warn("Failed to clear OAuth session from cookie:",e)}}},d=null;async function h(){if(d)return d;let e=s.O.ATPROTO_JWK_PRIVATE;if(!e)return null;try{let t=JSON.parse(e);return d=[await n.JoseKey.fromImportable(t,t.kid||"key-1")]}catch(e){return console.error("Failed to parse ATPROTO_JWK_PRIVATE:",e),null}}let f=async()=>{let e=s.O.PUBLIC_URL,t=`http://127.0.0.1:${s.O.PORT}`,r=encodeURIComponent,n=!!s.O.ATPROTO_JWK_PRIVATE,a=!!e,i=null;try{n&&a&&(i=await h())}catch(e){console.error("Error getting keyset:",e)}let l=null!==i&&a,u=l?e:t,d={client_name:"Beads Map",client_uri:u,dpop_bound_access_tokens:!0,grant_types:["authorization_code","refresh_token"],response_types:["code"],scope:"atproto transition:generic",application_type:"web"};l?(d.client_id=`${e}/api/oauth/client-metadata.json`,d.redirect_uris=[`${e}/api/oauth/callback`],d.token_endpoint_auth_method="private_key_jwt",d.token_endpoint_auth_signing_alg="ES256",d.jwks_uri=`${e}/api/oauth/jwks.json`):(d.client_id=`http://localhost?redirect_uri=${r(`${u}/api/oauth/callback`)}&scope=${r("atproto transition:generic")}`,d.redirect_uris=[`${u}/api/oauth/callback`],d.token_endpoint_auth_method="none");let f={clientMetadata:d,stateStore:c,sessionStore:p};return i&&(f.keyset=i),new o.NodeOAuthClient(f)},g=async()=>{let e=global[i];if(!e)try{let e=await f();return global[i]=e,e}catch(e){throw console.error("Failed to create OAuth client:",e),e}return e};async function m(){let e=await g();return"jwks"in e&&e.jwks?e.jwks:null}},31635:(e,t,r)=>{r.d(t,{O:()=>o});let o={get COOKIE_SECRET(){return process.env.COOKIE_SECRET||"development-secret-at-least-32-chars!!"},get PUBLIC_URL(){return process.env.PUBLIC_URL||""},get PORT(){return parseInt(process.env.PORT||"3000",10)},get ATPROTO_JWK_PRIVATE(){return process.env.ATPROTO_JWK_PRIVATE||""},get HEARTBEADS_PASSWORD(){return process.env.HEARTBEADS_PASSWORD||""}}},30384:(e,t,r)=>{r.d(t,{C5:()=>l,Gg:()=>i,Ov:()=>u});var o=r(31635),n=r(20987),s=r(9463);let a={cookieName:"beads_map_sid",password:o.O.COOKIE_SECRET,cookieOptions:{secure:!0,maxAge:2592e3}};async function i(){let e=await (0,s.cookies)();return await (0,n.iW)(e,a)}async function l(){let e=await (0,s.cookies)();return await (0,n.iW)(e,a)}async function u(){(await l()).destroy()}},64737:e=>{var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,n=Object.prototype.hasOwnProperty,s={};function a(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),o=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?o:`${o}; ${r.join("; ")}`}function i(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[o,n]=[r.slice(0,e),r.slice(e+1)];try{t.set(o,decodeURIComponent(null!=n?n:"true"))}catch{}}return t}function l(e){var t,r;if(!e)return;let[[o,n],...s]=i(e),{domain:a,expires:l,httponly:p,maxage:d,path:h,samesite:f,secure:g,partitioned:m,priority:y}=Object.fromEntries(s.map(([e,t])=>[e.toLowerCase(),t]));return function(e){let t={};for(let r in e)e[r]&&(t[r]=e[r]);return t}({name:o,value:decodeURIComponent(n),domain:a,...l&&{expires:new Date(l)},...p&&{httpOnly:!0},..."string"==typeof d&&{maxAge:Number(d)},path:h,...f&&{sameSite:u.includes(t=(t=f).toLowerCase())?t:void 0},...g&&{secure:!0},...y&&{priority:c.includes(r=(r=y).toLowerCase())?r:void 0},...m&&{partitioned:!0}})}((e,r)=>{for(var o in r)t(e,o,{get:r[o],enumerable:!0})})(s,{RequestCookies:()=>p,ResponseCookies:()=>d,parseCookie:()=>i,parseSetCookie:()=>l,stringifyCookie:()=>a}),e.exports=((e,s,a,i)=>{if(s&&"object"==typeof s||"function"==typeof s)for(let a of o(s))n.call(e,a)||void 0===a||t(e,a,{get:()=>s[a],enumerable:!(i=r(s,a))||i.enumerable});return e})(t({},"__esModule",{value:!0}),s);var u=["strict","lax","none"],c=["low","medium","high"],p=class{constructor(e){this._parsed=new Map,this._headers=e;let t=e.get("cookie");if(t)for(let[e,r]of i(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let o="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===o).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,o=this._parsed;return o.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(o).map(([e,t])=>a(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>a(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},d=class{constructor(e){var t,r,o;this._parsed=new Map,this._headers=e;let n=null!=(o=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?o:[];for(let e of Array.isArray(n)?n:function(e){if(!e)return[];var t,r,o,n,s,a=[],i=0;function l(){for(;i<e.length&&/\s/.test(e.charAt(i));)i+=1;return i<e.length}for(;i<e.length;){for(t=i,s=!1;l();)if(","===(r=e.charAt(i))){for(o=i,i+=1,l(),n=i;i<e.length&&"="!==(r=e.charAt(i))&&";"!==r&&","!==r;)i+=1;i<e.length&&"="===e.charAt(i)?(s=!0,i=n,a.push(e.substring(t,o)),t=i):i=o+1}else i+=1;(!s||i>=e.length)&&a.push(e.substring(t,e.length))}return a}(n)){let t=l(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let o="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===o)}has(e){return this._parsed.has(e)}set(...e){let[t,r,o]=1===e.length?[e[0].name,e[0].value,e[0]]:e,n=this._parsed;return n.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...o})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=a(r);t.append("set-cookie",e)}}(n,this._headers),this}delete(...e){let[t,r,o]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0].path,e[0].domain];return this.set({name:t,path:r,domain:o,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(a).join("; ")}}},12085:(e,t,r)=>{e.exports=r(30517)},63583:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ReflectAdapter",{enumerable:!0,get:function(){return r}});class r{static get(e,t,r){let o=Reflect.get(e,t,r);return"function"==typeof o?o.bind(e):o}static set(e,t,r,o){return Reflect.set(e,t,r,o)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},36419:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{RequestCookies:function(){return o.RequestCookies},ResponseCookies:function(){return o.ResponseCookies},stringifyCookie:function(){return o.stringifyCookie}});let o=r(64737)}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),o=t.X(0,[719,343,533,739,615],()=>r(27420));module.exports=o})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":1,"files":["../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/async-local-storage.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/package.json","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/343.js","../../../../chunks/533.js","../../../../chunks/615.js","../../../../chunks/719.js","../../../../chunks/739.js","../../../../webpack-runtime.js"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(()=>{var e={};e.id=501,e.ids=[501],e.modules={20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},44901:(e,t,a)=>{a.r(t),a.d(t,{originalPathname:()=>m,patchFetch:()=>R,requestAsyncStorage:()=>_,routeModule:()=>d,serverHooks:()=>h,staticGenerationAsyncStorage:()=>l});var n={};a.r(n),a.d(n,{GET:()=>u,dynamic:()=>c});var o=a(12085),r=a(31650),i=a(85980),s=a(30627),p=a(31635);let c="force-dynamic";async function u(){let e=p.O.PUBLIC_URL,t=e||`http://127.0.0.1:${p.O.PORT}`,a=!!e&&!!p.O.ATPROTO_JWK_PRIVATE,n={client_name:"Beads Map",client_uri:t,dpop_bound_access_tokens:!0,grant_types:["authorization_code","refresh_token"],response_types:["code"],scope:"atproto transition:generic",application_type:"web",redirect_uris:[`${t}/api/oauth/callback`]};return a?(n.client_id=`${e}/api/oauth/client-metadata.json`,n.token_endpoint_auth_method="private_key_jwt",n.token_endpoint_auth_signing_alg="ES256",n.jwks_uri=`${e}/api/oauth/jwks.json`):(n.client_id=`http://localhost?redirect_uri=${encodeURIComponent(`${t}/api/oauth/callback`)}&scope=${encodeURIComponent("atproto transition:generic")}`,n.token_endpoint_auth_method="none"),s.NextResponse.json(n)}let d=new o.AppRouteRouteModule({definition:{kind:r.x.APP_ROUTE,page:"/api/oauth/client-metadata.json/route",pathname:"/api/oauth/client-metadata.json",filename:"route",bundlePath:"app/api/oauth/client-metadata.json/route"},resolvedPagePath:"/Users/david/Projects/gainforest/beads-map/app/api/oauth/client-metadata.json/route.ts",nextConfigOutput:"",userland:n}),{requestAsyncStorage:_,staticGenerationAsyncStorage:l,serverHooks:h}=d,m="/api/oauth/client-metadata.json/route";function R(){return(0,i.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:l})}},31635:(e,t,a)=>{a.d(t,{O:()=>n});let n={get COOKIE_SECRET(){return process.env.COOKIE_SECRET||"development-secret-at-least-32-chars!!"},get PUBLIC_URL(){return process.env.PUBLIC_URL||""},get PORT(){return parseInt(process.env.PORT||"3000",10)},get ATPROTO_JWK_PRIVATE(){return process.env.ATPROTO_JWK_PRIVATE||""},get HEARTBEADS_PASSWORD(){return process.env.HEARTBEADS_PASSWORD||""}}}};var t=require("../../../../webpack-runtime.js");t.C(e);var a=e=>t(t.s=e),n=t.X(0,[719,247],()=>a(44901));module.exports=n})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":1,"files":["../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/async-local-storage.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/package.json","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/247.js","../../../../chunks/719.js","../../../../webpack-runtime.js"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(()=>{var e={};e.id=530,e.ids=[530],e.modules={72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},74026:e=>{e.exports=require("string_decoder")},98061:e=>{e.exports=require("node:assert")},92761:e=>{e.exports=require("node:async_hooks")},72254:e=>{e.exports=require("node:buffer")},40027:e=>{e.exports=require("node:console")},6005:e=>{e.exports=require("node:crypto")},65714:e=>{e.exports=require("node:diagnostics_channel")},30604:e=>{e.exports=require("node:dns")},29227:e=>{e.exports=require("node:dns/promises")},15673:e=>{e.exports=require("node:events")},88849:e=>{e.exports=require("node:http")},42725:e=>{e.exports=require("node:http2")},22286:e=>{e.exports=require("node:https")},87503:e=>{e.exports=require("node:net")},38846:e=>{e.exports=require("node:perf_hooks")},39630:e=>{e.exports=require("node:querystring")},84492:e=>{e.exports=require("node:stream")},31764:e=>{e.exports=require("node:tls")},41041:e=>{e.exports=require("node:url")},47261:e=>{e.exports=require("node:util")},93746:e=>{e.exports=require("node:util/types")},24086:e=>{e.exports=require("node:worker_threads")},65628:e=>{e.exports=require("node:zlib")},30439:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>x,patchFetch:()=>g,requestAsyncStorage:()=>d,routeModule:()=>p,serverHooks:()=>_,staticGenerationAsyncStorage:()=>h});var o={};r.r(o),r.d(o,{GET:()=>c,dynamic:()=>l});var s=r(12085),n=r(31650),a=r(85980),i=r(30627),u=r(79882);let l="force-dynamic";async function c(){try{let e=await (0,u.Vl)();if(!e)return i.NextResponse.json({keys:[]},{headers:{"Content-Type":"application/json","Cache-Control":"public, max-age=3600"}});return i.NextResponse.json(e,{headers:{"Content-Type":"application/json","Cache-Control":"public, max-age=3600"}})}catch(e){return console.error("Failed to get JWKS:",e),i.NextResponse.json({keys:[]},{status:500})}}let p=new s.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/oauth/jwks.json/route",pathname:"/api/oauth/jwks.json",filename:"route",bundlePath:"app/api/oauth/jwks.json/route"},resolvedPagePath:"/Users/david/Projects/gainforest/beads-map/app/api/oauth/jwks.json/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:d,staticGenerationAsyncStorage:h,serverHooks:_}=p,x="/api/oauth/jwks.json/route";function g(){return(0,a.patchFetch)({serverHooks:_,staticGenerationAsyncStorage:h})}},79882:(e,t,r)=>{r.d(t,{Vl:()=>g,hc:()=>x});var o=r(26533),s=r(7431),n=r(31635),a=r(30384);let i="globalOAuthClient";global[i]||(global[i]=null);let u="oauthSharedStore";global[u]||(global[u]=new Map);let l=global[u],c={get:async e=>l.get(`state:${e}`),async set(e,t){l.set(`state:${e}`,t)},async del(e){l.delete(`state:${e}`)}},p={async get(e){let t=l.get(`session:${e}`);if(t)return t;try{let t=await (0,a.C5)();if(t.oauthSession&&t.did===e){let r=JSON.parse(t.oauthSession);return l.set(`session:${e}`,r),r}}catch(e){console.warn("Failed to restore OAuth session from cookie:",e)}},async set(e,t){l.set(`session:${e}`,t);try{let e=await (0,a.C5)();e.oauthSession=JSON.stringify(t),await e.save()}catch(e){console.warn("Failed to save OAuth session to cookie:",e)}},async del(e){l.delete(`session:${e}`);try{let e=await (0,a.C5)();e.oauthSession=void 0,await e.save()}catch(e){console.warn("Failed to clear OAuth session from cookie:",e)}}},d=null;async function h(){if(d)return d;let e=n.O.ATPROTO_JWK_PRIVATE;if(!e)return null;try{let t=JSON.parse(e);return d=[await s.JoseKey.fromImportable(t,t.kid||"key-1")]}catch(e){return console.error("Failed to parse ATPROTO_JWK_PRIVATE:",e),null}}let _=async()=>{let e=n.O.PUBLIC_URL,t=`http://127.0.0.1:${n.O.PORT}`,r=encodeURIComponent,s=!!n.O.ATPROTO_JWK_PRIVATE,a=!!e,i=null;try{s&&a&&(i=await h())}catch(e){console.error("Error getting keyset:",e)}let u=null!==i&&a,l=u?e:t,d={client_name:"Beads Map",client_uri:l,dpop_bound_access_tokens:!0,grant_types:["authorization_code","refresh_token"],response_types:["code"],scope:"atproto transition:generic",application_type:"web"};u?(d.client_id=`${e}/api/oauth/client-metadata.json`,d.redirect_uris=[`${e}/api/oauth/callback`],d.token_endpoint_auth_method="private_key_jwt",d.token_endpoint_auth_signing_alg="ES256",d.jwks_uri=`${e}/api/oauth/jwks.json`):(d.client_id=`http://localhost?redirect_uri=${r(`${l}/api/oauth/callback`)}&scope=${r("atproto transition:generic")}`,d.redirect_uris=[`${l}/api/oauth/callback`],d.token_endpoint_auth_method="none");let _={clientMetadata:d,stateStore:c,sessionStore:p};return i&&(_.keyset=i),new o.NodeOAuthClient(_)},x=async()=>{let e=global[i];if(!e)try{let e=await _();return global[i]=e,e}catch(e){throw console.error("Failed to create OAuth client:",e),e}return e};async function g(){let e=await x();return"jwks"in e&&e.jwks?e.jwks:null}},31635:(e,t,r)=>{r.d(t,{O:()=>o});let o={get COOKIE_SECRET(){return process.env.COOKIE_SECRET||"development-secret-at-least-32-chars!!"},get PUBLIC_URL(){return process.env.PUBLIC_URL||""},get PORT(){return parseInt(process.env.PORT||"3000",10)},get ATPROTO_JWK_PRIVATE(){return process.env.ATPROTO_JWK_PRIVATE||""},get HEARTBEADS_PASSWORD(){return process.env.HEARTBEADS_PASSWORD||""}}},30384:(e,t,r)=>{r.d(t,{C5:()=>u,Gg:()=>i,Ov:()=>l});var o=r(31635),s=r(20987),n=r(9463);let a={cookieName:"beads_map_sid",password:o.O.COOKIE_SECRET,cookieOptions:{secure:!0,maxAge:2592e3}};async function i(){let e=await (0,n.cookies)();return await (0,s.iW)(e,a)}async function u(){let e=await (0,n.cookies)();return await (0,s.iW)(e,a)}async function l(){(await u()).destroy()}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),o=t.X(0,[719,247,343,533],()=>r(30439));module.exports=o})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":1,"files":["../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/async-local-storage.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/package.json","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/247.js","../../../../chunks/343.js","../../../../chunks/533.js","../../../../chunks/719.js","../../../../webpack-runtime.js"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(()=>{var e={};e.id=41,e.ids=[41],e.modules={72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},74026:e=>{e.exports=require("string_decoder")},98061:e=>{e.exports=require("node:assert")},92761:e=>{e.exports=require("node:async_hooks")},72254:e=>{e.exports=require("node:buffer")},40027:e=>{e.exports=require("node:console")},6005:e=>{e.exports=require("node:crypto")},65714:e=>{e.exports=require("node:diagnostics_channel")},30604:e=>{e.exports=require("node:dns")},29227:e=>{e.exports=require("node:dns/promises")},15673:e=>{e.exports=require("node:events")},88849:e=>{e.exports=require("node:http")},42725:e=>{e.exports=require("node:http2")},22286:e=>{e.exports=require("node:https")},87503:e=>{e.exports=require("node:net")},38846:e=>{e.exports=require("node:perf_hooks")},39630:e=>{e.exports=require("node:querystring")},84492:e=>{e.exports=require("node:stream")},31764:e=>{e.exports=require("node:tls")},41041:e=>{e.exports=require("node:url")},47261:e=>{e.exports=require("node:util")},93746:e=>{e.exports=require("node:util/types")},24086:e=>{e.exports=require("node:worker_threads")},65628:e=>{e.exports=require("node:zlib")},61442:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>w,patchFetch:()=>O,requestAsyncStorage:()=>R,routeModule:()=>g,serverHooks:()=>f,staticGenerationAsyncStorage:()=>_});var o={};r.r(o),r.d(o,{DELETE:()=>y,POST:()=>h,PUT:()=>x,dynamic:()=>p});var s=r(12085),n=r(31650),a=r(85980),i=r(30627),u=r(75615),c=r(79882),l=r(30384);async function d(){let e=await (0,l.Gg)();if(!e.did)return null;try{let t=await (0,c.hc)(),r=await t.restore(e.did);if(!r)return null;return new u.Agent(r)}catch(e){return console.error("Failed to restore authenticated agent:",e),null}}let p="force-dynamic";async function h(e){try{let t=await (0,l.Gg)();if(!t.did)return i.NextResponse.json({error:"Unauthorized"},{status:401});let r=await d();if(!r)return i.NextResponse.json({error:"Failed to authenticate"},{status:401});let{collection:o,rkey:s,record:n}=await e.json();if(!o||"string"!=typeof o)return i.NextResponse.json({error:"Collection is required"},{status:400});if(!n||"object"!=typeof n)return i.NextResponse.json({error:"Record is required"},{status:400});let a=await r.com.atproto.repo.createRecord({repo:t.did,collection:o,rkey:s||void 0,record:n});return i.NextResponse.json({success:!0,uri:a.data.uri,cid:a.data.cid})}catch(t){console.error("Failed to create record:",t);let e=t instanceof Error?t.message:"Failed to create record";return i.NextResponse.json({error:e},{status:500})}}async function x(e){try{let t=await (0,l.Gg)();if(!t.did)return i.NextResponse.json({error:"Unauthorized"},{status:401});let r=await d();if(!r)return i.NextResponse.json({error:"Failed to authenticate"},{status:401});let{collection:o,rkey:s,record:n}=await e.json();if(!o||"string"!=typeof o)return i.NextResponse.json({error:"Collection is required"},{status:400});if(!s||"string"!=typeof s)return i.NextResponse.json({error:"Record key is required"},{status:400});if(!n||"object"!=typeof n)return i.NextResponse.json({error:"Record is required"},{status:400});return await r.com.atproto.repo.putRecord({repo:t.did,collection:o,rkey:s,record:n}),i.NextResponse.json({success:!0})}catch(t){console.error("Failed to update record:",t);let e=t instanceof Error?t.message:"Failed to update record";return i.NextResponse.json({error:e},{status:500})}}async function y(e){try{let t=await (0,l.Gg)();if(!t.did)return i.NextResponse.json({error:"Unauthorized"},{status:401});let r=await d();if(!r)return i.NextResponse.json({error:"Failed to authenticate"},{status:401});let{searchParams:o}=new URL(e.url),s=o.get("collection"),n=o.get("rkey");if(!s)return i.NextResponse.json({error:"Collection is required"},{status:400});if(!n)return i.NextResponse.json({error:"Record key is required"},{status:400});return await r.com.atproto.repo.deleteRecord({repo:t.did,collection:s,rkey:n}),i.NextResponse.json({success:!0})}catch(t){console.error("Failed to delete record:",t);let e=t instanceof Error?t.message:"Failed to delete record";return i.NextResponse.json({error:e},{status:500})}}let g=new s.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/records/route",pathname:"/api/records",filename:"route",bundlePath:"app/api/records/route"},resolvedPagePath:"/Users/david/Projects/gainforest/beads-map/app/api/records/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:R,staticGenerationAsyncStorage:_,serverHooks:f}=g,w="/api/records/route";function O(){return(0,a.patchFetch)({serverHooks:f,staticGenerationAsyncStorage:_})}},79882:(e,t,r)=>{r.d(t,{Vl:()=>g,hc:()=>y});var o=r(26533),s=r(7431),n=r(31635),a=r(30384);let i="globalOAuthClient";global[i]||(global[i]=null);let u="oauthSharedStore";global[u]||(global[u]=new Map);let c=global[u],l={get:async e=>c.get(`state:${e}`),async set(e,t){c.set(`state:${e}`,t)},async del(e){c.delete(`state:${e}`)}},d={async get(e){let t=c.get(`session:${e}`);if(t)return t;try{let t=await (0,a.C5)();if(t.oauthSession&&t.did===e){let r=JSON.parse(t.oauthSession);return c.set(`session:${e}`,r),r}}catch(e){console.warn("Failed to restore OAuth session from cookie:",e)}},async set(e,t){c.set(`session:${e}`,t);try{let e=await (0,a.C5)();e.oauthSession=JSON.stringify(t),await e.save()}catch(e){console.warn("Failed to save OAuth session to cookie:",e)}},async del(e){c.delete(`session:${e}`);try{let e=await (0,a.C5)();e.oauthSession=void 0,await e.save()}catch(e){console.warn("Failed to clear OAuth session from cookie:",e)}}},p=null;async function h(){if(p)return p;let e=n.O.ATPROTO_JWK_PRIVATE;if(!e)return null;try{let t=JSON.parse(e);return p=[await s.JoseKey.fromImportable(t,t.kid||"key-1")]}catch(e){return console.error("Failed to parse ATPROTO_JWK_PRIVATE:",e),null}}let x=async()=>{let e=n.O.PUBLIC_URL,t=`http://127.0.0.1:${n.O.PORT}`,r=encodeURIComponent,s=!!n.O.ATPROTO_JWK_PRIVATE,a=!!e,i=null;try{s&&a&&(i=await h())}catch(e){console.error("Error getting keyset:",e)}let u=null!==i&&a,c=u?e:t,p={client_name:"Beads Map",client_uri:c,dpop_bound_access_tokens:!0,grant_types:["authorization_code","refresh_token"],response_types:["code"],scope:"atproto transition:generic",application_type:"web"};u?(p.client_id=`${e}/api/oauth/client-metadata.json`,p.redirect_uris=[`${e}/api/oauth/callback`],p.token_endpoint_auth_method="private_key_jwt",p.token_endpoint_auth_signing_alg="ES256",p.jwks_uri=`${e}/api/oauth/jwks.json`):(p.client_id=`http://localhost?redirect_uri=${r(`${c}/api/oauth/callback`)}&scope=${r("atproto transition:generic")}`,p.redirect_uris=[`${c}/api/oauth/callback`],p.token_endpoint_auth_method="none");let x={clientMetadata:p,stateStore:l,sessionStore:d};return i&&(x.keyset=i),new o.NodeOAuthClient(x)},y=async()=>{let e=global[i];if(!e)try{let e=await x();return global[i]=e,e}catch(e){throw console.error("Failed to create OAuth client:",e),e}return e};async function g(){let e=await y();return"jwks"in e&&e.jwks?e.jwks:null}},31635:(e,t,r)=>{r.d(t,{O:()=>o});let o={get COOKIE_SECRET(){return process.env.COOKIE_SECRET||"development-secret-at-least-32-chars!!"},get PUBLIC_URL(){return process.env.PUBLIC_URL||""},get PORT(){return parseInt(process.env.PORT||"3000",10)},get ATPROTO_JWK_PRIVATE(){return process.env.ATPROTO_JWK_PRIVATE||""},get HEARTBEADS_PASSWORD(){return process.env.HEARTBEADS_PASSWORD||""}}},30384:(e,t,r)=>{r.d(t,{C5:()=>u,Gg:()=>i,Ov:()=>c});var o=r(31635),s=r(20987),n=r(9463);let a={cookieName:"beads_map_sid",password:o.O.COOKIE_SECRET,cookieOptions:{secure:!0,maxAge:2592e3}};async function i(){let e=await (0,n.cookies)();return await (0,s.iW)(e,a)}async function u(){let e=await (0,n.cookies)();return await (0,s.iW)(e,a)}async function c(){(await u()).destroy()}}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),o=t.X(0,[719,247,343,533,739,615],()=>r(61442));module.exports=o})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":1,"files":["../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/async-local-storage.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/package.json","../../../../../node_modules/next","../../../../../package.json","../../../../package.json","../../../chunks/247.js","../../../chunks/343.js","../../../chunks/533.js","../../../chunks/615.js","../../../chunks/719.js","../../../chunks/739.js","../../../webpack-runtime.js"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(()=>{var e={};e.id=492,e.ids=[492],e.modules={72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},6005:e=>{e.exports=require("node:crypto")},33801:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>R,patchFetch:()=>g,requestAsyncStorage:()=>l,routeModule:()=>d,serverHooks:()=>m,staticGenerationAsyncStorage:()=>x});var a={};r.r(a),r.d(a,{GET:()=>p,dynamic:()=>u});var s=r(12085),n=r(31650),o=r(85980),i=r(30627),c=r(30384);let u="force-dynamic";async function p(){try{let e=await (0,c.Gg)();if(!e.did)return i.NextResponse.json({authenticated:!1});return i.NextResponse.json({authenticated:!0,did:e.did,handle:e.handle,displayName:e.displayName,avatar:e.avatar})}catch(e){return console.error("Status check failed:",e),i.NextResponse.json({authenticated:!1})}}let d=new s.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/status/route",pathname:"/api/status",filename:"route",bundlePath:"app/api/status/route"},resolvedPagePath:"/Users/david/Projects/gainforest/beads-map/app/api/status/route.ts",nextConfigOutput:"",userland:a}),{requestAsyncStorage:l,staticGenerationAsyncStorage:x,serverHooks:m}=d,R="/api/status/route";function g(){return(0,o.patchFetch)({serverHooks:m,staticGenerationAsyncStorage:x})}},31635:(e,t,r)=>{r.d(t,{O:()=>a});let a={get COOKIE_SECRET(){return process.env.COOKIE_SECRET||"development-secret-at-least-32-chars!!"},get PUBLIC_URL(){return process.env.PUBLIC_URL||""},get PORT(){return parseInt(process.env.PORT||"3000",10)},get ATPROTO_JWK_PRIVATE(){return process.env.ATPROTO_JWK_PRIVATE||""},get HEARTBEADS_PASSWORD(){return process.env.HEARTBEADS_PASSWORD||""}}},30384:(e,t,r)=>{r.d(t,{C5:()=>c,Gg:()=>i,Ov:()=>u});var a=r(31635),s=r(20987),n=r(9463);let o={cookieName:"beads_map_sid",password:a.O.COOKIE_SECRET,cookieOptions:{secure:!0,maxAge:2592e3}};async function i(){let e=await (0,n.cookies)();return await (0,s.iW)(e,o)}async function c(){let e=await (0,n.cookies)();return await (0,s.iW)(e,o)}async function u(){(await c()).destroy()}}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),a=t.X(0,[719,247,343],()=>r(33801));module.exports=a})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":1,"files":["../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/async-local-storage.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/package.json","../../../../../node_modules/next","../../../../../package.json","../../../../package.json","../../../chunks/247.js","../../../chunks/343.js","../../../chunks/719.js","../../../webpack-runtime.js"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(()=>{var e={};e.id=326,e.ids=[326],e.modules={20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},78893:e=>{e.exports=require("buffer")},61282:e=>{e.exports=require("child_process")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},35816:e=>{e.exports=require("process")},71138:(e,t,a)=>{a.r(t),a.d(t,{originalPathname:()=>N,patchFetch:()=>I,requestAsyncStorage:()=>v,routeModule:()=>x,serverHooks:()=>k,staticGenerationAsyncStorage:()=>b});var r={};a.r(r),a.d(r,{GET:()=>h,OPTIONS:()=>p.JY,dynamic:()=>f});var i=a(12085),d=a(31650),s=a(85980),o=a(8162),n=a(32933),l=a(26582),p=a(83063),c=a(92048),u=a(55315),m=a(90696);let f="force-dynamic",y="0.0.0";try{y=JSON.parse((0,c.readFileSync)((0,u.join)(process.cwd(),"package.json"),"utf-8")).version||y}catch{}function g(e){return{author:{handle:e.handle,did:e.did,...e.displayName?{displayName:e.displayName}:{}},text:e.text,createdAt:e.createdAt,likes:e.likes.length,replies:e.replies.map(g)}}async function h(e){try{let t=(0,n.M)(),a=new URL(e.url).searchParams,r=a.get("status")?.split(",").filter(Boolean),i=a.get("priority")?.split(",").map(Number).filter(e=>!isNaN(e)),d=a.get("prefix")||null,s=a.get("include"),f=Math.min(Math.max(parseInt(a.get("limit")||"50")||50,1),200),h=!0,x=!0;if(null!==s){let e=s.split(",").filter(Boolean);h=e.includes("comments"),x=e.includes("activity")}let v=Promise.resolve((0,o.do)(t.beadsDir)),b=h?(0,l.c)().catch(e=>(console.error("[api/v1/graph] Failed to fetch comments:",e),null)):Promise.resolve(null),[k,N]=await Promise.all([v,b]),I=["."],A=(0,u.join)(t.beadsDir,"config.yaml");try{if((0,c.existsSync)(A)){let e=(0,c.readFileSync)(A,"utf-8"),t=(0,m.Qc)(e),a=t?.repos?.additional;Array.isArray(a)&&(I=[t?.repos?.primary||".",...a])}}catch{}let w=(0,n.K)(t.beadsDir),T=N?(0,l.d)(N.allComments):new Map;k.graphData.nodes.map(e=>[e.id,e]);let $=k.graphData.nodes;r&&($=$.filter(e=>r.includes(e.status))),i&&($=$.filter(e=>i.includes(e.priority))),d&&($=$.filter(e=>e.prefix===d));let D=$.map(e=>{let t=N?.commentsByNode.get(e.id)||[],a=T.get(e.id)||null;return{id:e.id,title:e.title,description:e.description||null,status:e.status,priority:e.priority,issue_type:e.issueType,owner:e.owner||null,assignee:e.assignee||null,labels:[],created_at:e.createdAt,updated_at:e.updatedAt,closed_at:e.closedAt||null,close_reason:e.closeReason||null,prefix:e.prefix,blockers:e.dependentIds,dependents:e.blockerIds,...h?{comments:t.map(g)}:{},claimed_by:a?{handle:a.handle,did:a.did,...a.displayName?{displayName:a.displayName}:{},claimed_at:a.claimedAt}:null}}),_=k.graphData.links.map(e=>{let t="object"==typeof e.source?e.source.id:e.source,a="object"==typeof e.target?e.target.id:e.target;return{from:t,to:a,type:e.type}}),P=[];x&&(P=(function(e,t,a){let r=[],i=new Set;function d(e){i.has(e.id)||(i.add(e.id),r.push(e))}for(let t of e){if(t.createdAt){let e=new Date(t.createdAt).getTime();isNaN(e)||d({id:`node-created:${t.id}:${e}`,type:"node-created",time:e,nodeId:t.id,nodeTitle:t.title,detail:t.issueType,meta:{issueType:t.issueType,prefix:t.prefix}})}if(t.closedAt){let e=new Date(t.closedAt).getTime();isNaN(e)||d({id:`node-closed:${t.id}:${e}`,type:"node-closed",time:e,nodeId:t.id,nodeTitle:t.title,detail:t.closeReason||"Closed",meta:{prefix:t.prefix}})}}for(let e of t)if(e.createdAt){let t=new Date(e.createdAt).getTime();if(!isNaN(t)){let a="object"==typeof e.source?e.source.id:e.source,r="object"==typeof e.target?e.target.id:e.target;d({id:`link-added:${a}->${r}:${t}`,type:"link-added",time:t,nodeId:a,detail:`${e.type} ${r}`,meta:{linkType:e.type,target:r}})}}if(a)for(let e of a){let t=new Date(e.createdAt).getTime();if(isNaN(t))continue;let a={handle:e.handle,avatar:e.avatar,did:e.did};for(let r of(d(e.text.startsWith("@")&&-1===e.text.trim().indexOf(" ")?{id:`task-claimed:${e.nodeId}:${t}`,type:"task-claimed",time:t,nodeId:e.nodeId,actor:a,detail:e.text}:e.replyTo?{id:`reply-added:${e.nodeId}:${e.rkey}`,type:"reply-added",time:t,nodeId:e.nodeId,actor:a,detail:e.text.length>80?e.text.slice(0,80)+"...":e.text}:{id:`comment-added:${e.nodeId}:${e.rkey}`,type:"comment-added",time:t,nodeId:e.nodeId,actor:a,detail:e.text.length>80?e.text.slice(0,80)+"...":e.text}),e.likes)){let t=new Date(r.createdAt).getTime();isNaN(t)||d({id:`like-added:${e.nodeId}:${r.rkey}`,type:"like-added",time:t,nodeId:e.nodeId,actor:{handle:r.handle,avatar:r.avatar,did:r.did},detail:`Liked comment by ${e.handle}`})}}return r.sort((e,t)=>t.time-e.time),r})(k.graphData.nodes,k.graphData.links,N?.allComments||null).slice(0,f).map(e=>({type:e.type,time:new Date(e.time).toISOString(),issue_id:e.nodeId,...e.nodeTitle?{issue_title:e.nodeTitle}:{},...e.actor?{actor:{handle:e.actor.handle}}:{},...e.detail?{detail:e.detail}:{}})));let j=[];return h&&!N&&j.push("Failed to fetch comments from indexer"),(0,p.wE)({project:{name:t.issuePrefix||t.repoName,prefix:t.issuePrefix||null,repos:I,repoUrls:w},issues:D,dependencies:_,stats:{total:k.stats.total,open:k.stats.open,in_progress:k.stats.inProgress,blocked:k.stats.blocked,closed:k.stats.closed,actionable:k.stats.actionable},...x?{activity:P}:{},_meta:{generated_at:new Date().toISOString(),api_version:"v1",heartbeads_version:y,...j.length?{warnings:j}:{}}})}catch(e){if((e instanceof Error?e.message:"Unknown error").includes("No .beads/ directory found"))return(0,p.VR)("No .beads directory found",404,"Run bd init in your project first, or set BEADS_DIR.");return console.error("[api/v1/graph] Error:",e),(0,p.VR)("Internal server error",500)}}let x=new i.AppRouteRouteModule({definition:{kind:d.x.APP_ROUTE,page:"/api/v1/graph/route",pathname:"/api/v1/graph",filename:"route",bundlePath:"app/api/v1/graph/route"},resolvedPagePath:"/Users/david/Projects/gainforest/beads-map/app/api/v1/graph/route.ts",nextConfigOutput:"",userland:r}),{requestAsyncStorage:v,staticGenerationAsyncStorage:b,serverHooks:k}=x,N="/api/v1/graph/route";function I(){return(0,s.patchFetch)({serverHooks:k,staticGenerationAsyncStorage:b})}}};var t=require("../../../../webpack-runtime.js");t.C(e);var a=e=>t(t.s=e),r=t.X(0,[719,247,696,542],()=>a(71138));module.exports=r})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":1,"files":["../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/async-local-storage.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/package.json","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/247.js","../../../../chunks/542.js","../../../../chunks/696.js","../../../../chunks/719.js","../../../../webpack-runtime.js"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(()=>{var e={};e.id=474,e.ids=[474],e.modules={20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},78893:e=>{e.exports=require("buffer")},61282:e=>{e.exports=require("child_process")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},35816:e=>{e.exports=require("process")},24599:(e,t,s)=>{s.r(t),s.d(t,{originalPathname:()=>b,patchFetch:()=>w,requestAsyncStorage:()=>y,routeModule:()=>g,serverHooks:()=>_,staticGenerationAsyncStorage:()=>x});var r={};s.r(r),s.d(r,{GET:()=>v,OPTIONS:()=>u.JY,dynamic:()=>m});var i=s(12085),a=s(31650),n=s(85980),o=s(8162),d=s(32933),l=s(26582),u=s(83063),p=s(92048),c=s(55315);let m="force-dynamic",h="0.0.0";try{h=JSON.parse((0,p.readFileSync)((0,c.join)(process.cwd(),"package.json"),"utf-8")).version||h}catch{}function f(e){return{author:{handle:e.handle,did:e.did,...e.displayName?{displayName:e.displayName}:{}},text:e.text,createdAt:e.createdAt,likes:e.likes.length,replies:e.replies.map(f)}}async function v(e,{params:t}){try{let e=(0,d.M)(),s=t.id,[r,i]=await Promise.all([Promise.resolve((0,o.do)(e.beadsDir)),(0,l.c)().catch(e=>(console.error("[api/v1/issues] Failed to fetch comments:",e),null))]),a=new Map(r.graphData.nodes.map(e=>[e.id,e])),n=a.get(s);if(!n)return(0,u.VR)("Issue not found",404,`No issue with id "${s}". Use GET /api/v1/graph to list all issues.`);let p=n.dependentIds.map(e=>{let t=a.get(e);return t?{id:t.id,title:t.title,status:t.status}:{id:e,title:null,status:null}}),c=n.blockerIds.map(e=>{let t=a.get(e);return t?{id:t.id,title:t.title,status:t.status}:{id:e,title:null,status:null}}),m=i?.commentsByNode.get(s)||[],v=(i?(0,l.d)(i.allComments):new Map).get(s)||null,g=[];return i||g.push("Failed to fetch comments from indexer"),(0,u.wE)({issue:{id:n.id,title:n.title,description:n.description||null,status:n.status,priority:n.priority,issue_type:n.issueType,owner:n.owner||null,assignee:n.assignee||null,labels:[],created_at:n.createdAt,updated_at:n.updatedAt,closed_at:n.closedAt||null,close_reason:n.closeReason||null,prefix:n.prefix,blockers:p,dependents:c,comments:m.map(f),claimed_by:v?{handle:v.handle,did:v.did,...v.displayName?{displayName:v.displayName}:{},claimed_at:v.claimedAt}:null},_meta:{generated_at:new Date().toISOString(),api_version:"v1",heartbeads_version:h,...g.length?{warnings:g}:{}}})}catch(e){if((e instanceof Error?e.message:"Unknown error").includes("No .beads/ directory found"))return(0,u.VR)("No .beads directory found",404,"Run bd init in your project first, or set BEADS_DIR.");return console.error("[api/v1/issues] Error:",e),(0,u.VR)("Internal server error",500)}}let g=new i.AppRouteRouteModule({definition:{kind:a.x.APP_ROUTE,page:"/api/v1/issues/[id]/route",pathname:"/api/v1/issues/[id]",filename:"route",bundlePath:"app/api/v1/issues/[id]/route"},resolvedPagePath:"/Users/david/Projects/gainforest/beads-map/app/api/v1/issues/[id]/route.ts",nextConfigOutput:"",userland:r}),{requestAsyncStorage:y,staticGenerationAsyncStorage:x,serverHooks:_}=g,b="/api/v1/issues/[id]/route";function w(){return(0,n.patchFetch)({serverHooks:_,staticGenerationAsyncStorage:x})}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),r=t.X(0,[719,247,696,542],()=>s(24599));module.exports=r})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":1,"files":["../../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/async-local-storage.js","../../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/package.json","../../../../../../../node_modules/next","../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/247.js","../../../../../chunks/542.js","../../../../../chunks/696.js","../../../../../chunks/719.js","../../../../../webpack-runtime.js"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(()=>{var e={};e.id=379,e.ids=[379],e.modules={20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},78893:e=>{e.exports=require("buffer")},61282:e=>{e.exports=require("child_process")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},35816:e=>{e.exports=require("process")},98427:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>b,patchFetch:()=>w,requestAsyncStorage:()=>v,routeModule:()=>h,serverHooks:()=>_,staticGenerationAsyncStorage:()=>x});var a={};t.r(a),t.d(a,{GET:()=>g,OPTIONS:()=>p.JY,dynamic:()=>m});var i=t(12085),s=t(31650),n=t(85980),o=t(8162),d=t(32933),l=t(26582),p=t(83063),u=t(92048),c=t(55315);let m="force-dynamic",y="0.0.0";try{y=JSON.parse((0,u.readFileSync)((0,c.join)(process.cwd(),"package.json"),"utf-8")).version||y}catch{}function f(e){return{author:{handle:e.handle,did:e.did,...e.displayName?{displayName:e.displayName}:{}},text:e.text,createdAt:e.createdAt,likes:e.likes.length,replies:e.replies.map(f)}}async function g(e){try{let r=(0,d.M)(),t=new URL(e.url).searchParams,a="true"===t.get("unclaimed"),i=t.get("type")?.split(",").filter(Boolean),s=t.get("assignee")||null,n=t.get("prefix")||null,u=t.get("limit"),c=u?Math.max(parseInt(u)||0,1):null,[m,g]=await Promise.all([Promise.resolve((0,o.do)(r.beadsDir)),(0,l.c)().catch(e=>(console.error("[api/v1/ready] Failed to fetch comments:",e),null))]),h=g?(0,l.d)(g.allComments):new Map,v=new Map(m.graphData.nodes.map(e=>[e.id,e])),x=m.graphData.nodes.filter(e=>{if("open"!==e.status&&"in_progress"!==e.status)return!1;for(let r of e.dependentIds){let e=v.get(r);if(e&&"closed"!==e.status)return!1}return!0});i&&(x=x.filter(e=>i.includes(e.issueType))),s&&(x=x.filter(e=>e.assignee===s)),n&&(x=x.filter(e=>e.prefix===n)),a&&(x=x.filter(e=>!h.has(e.id))),x.sort((e,r)=>e.priority!==r.priority?e.priority-r.priority:new Date(e.createdAt).getTime()-new Date(r.createdAt).getTime()),c&&(x=x.slice(0,c));let _=x.map(e=>{let r=g?.commentsByNode.get(e.id)||[],t=h.get(e.id)||null;return{id:e.id,title:e.title,description:e.description||null,status:e.status,priority:e.priority,issue_type:e.issueType,owner:e.owner||null,assignee:e.assignee||null,labels:[],created_at:e.createdAt,updated_at:e.updatedAt,prefix:e.prefix,blockers:e.dependentIds,dependents:e.blockerIds,comments:r.map(f),claimed_by:t?{handle:t.handle,did:t.did,...t.displayName?{displayName:t.displayName}:{},claimed_at:t.claimedAt}:null}}),b={},w={},A=0;for(let e of x){let r=String(e.priority);b[r]=(b[r]||0)+1,w[e.issueType]=(w[e.issueType]||0)+1,!h.has(e.id)&&A++}let N=[];return g||N.push("Failed to fetch comments from indexer"),(0,p.wE)({issues:_,stats:{total_ready:_.length,unclaimed:A,by_priority:b,by_type:w},_meta:{generated_at:new Date().toISOString(),api_version:"v1",heartbeads_version:y,...N.length?{warnings:N}:{}}})}catch(e){if((e instanceof Error?e.message:"Unknown error").includes("No .beads/ directory found"))return(0,p.VR)("No .beads directory found",404,"Run bd init in your project first, or set BEADS_DIR.");return console.error("[api/v1/ready] Error:",e),(0,p.VR)("Internal server error",500)}}let h=new i.AppRouteRouteModule({definition:{kind:s.x.APP_ROUTE,page:"/api/v1/ready/route",pathname:"/api/v1/ready",filename:"route",bundlePath:"app/api/v1/ready/route"},resolvedPagePath:"/Users/david/Projects/gainforest/beads-map/app/api/v1/ready/route.ts",nextConfigOutput:"",userland:a}),{requestAsyncStorage:v,staticGenerationAsyncStorage:x,serverHooks:_}=h,b="/api/v1/ready/route";function w(){return(0,n.patchFetch)({serverHooks:_,staticGenerationAsyncStorage:x})}}};var r=require("../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),a=r.X(0,[719,247,696,542],()=>t(98427));module.exports=a})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":1,"files":["../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/async-local-storage.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/package.json","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/247.js","../../../../chunks/542.js","../../../../chunks/696.js","../../../../chunks/719.js","../../../../webpack-runtime.js"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/><link rel="stylesheet" href="/_next/static/css/8c1b520a38ba4ccd.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-117444a4bfe51057.js"/><script src="/_next/static/chunks/2200cc46-7c93a0e00b0bb825.js" async=""></script><script src="/_next/static/chunks/945-3ff1d381a0af1ecd.js" async=""></script><script src="/_next/static/chunks/main-app-8b0c4a1007dbb7f4.js" async=""></script><script src="/_next/static/chunks/971-bb44d52bcd9ee2a9.js" async=""></script><script src="/_next/static/chunks/app/page-583300dd8af66e5a.js" async=""></script><script src="/_next/static/chunks/app/layout-13e3cdaaa416edb6.js" async=""></script><script src="/_next/static/chunks/788-aa413085174e935a.js" async=""></script><script src="/_next/static/chunks/app/not-found-ae1139bed2018dd8.js" async=""></script><title>Heartbeads</title><meta name="description" content="Interactive dependency graph viewer for beads issues — see your project's heartbeat"/><meta property="og:title" content="Heartbeads"/><meta property="og:description" content="Interactive dependency graph viewer for beads issues — see your project's heartbeat"/><meta property="og:site_name" content="Heartbeads"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="3008"/><meta property="og:image:height" content="1686"/><meta property="og:image" content="http://localhost:3000/opengraph-image.png?dd44d0a71ff29c1f"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Heartbeads"/><meta name="twitter:description" content="Interactive dependency graph viewer for beads issues — see your project's heartbeat"/><meta name="twitter:image:type" content="image/png"/><meta name="twitter:image:width" content="3008"/><meta name="twitter:image:height" content="1686"/><meta name="twitter:image" content="http://localhost:3000/twitter-image.png?dd44d0a71ff29c1f"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div class="h-screen flex flex-col items-center justify-center bg-white text-zinc-800 px-6 select-none"><div class="relative w-full max-w-sm mb-8"><svg viewBox="0 0 400 40" fill="none" class="w-full text-zinc-200" aria-hidden="true"><line x1="0" y1="20" x2="400" y2="20" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-dasharray="4 6" opacity="0.6"></line></svg><div class="absolute inset-0 flex items-center justify-center"><div class="bg-white px-4"><svg viewBox="0 0 32 32" fill="none" class="w-10 h-10 text-emerald-500" aria-hidden="true"><polyline points="1,16 6,16 8,16 9.5,14 11,18 12.5,6 14,26 15.5,10 17,16 19,16 20.5,14.5 21.5,17.5 22.5,16 31,16" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none" opacity="0.9"><animate attributeName="stroke-dasharray" values="0 60;60 0" dur="2s" repeatCount="indefinite"></animate><animate attributeName="opacity" values="0.4;0.95;0.95;0.4" dur="2s" repeatCount="indefinite"></animate></polyline><polyline points="1,16 6,16 8,16 9.5,14 11,18 12.5,6 14,26 15.5,10 17,16 19,16 20.5,14.5 21.5,17.5 22.5,16 31,16" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" fill="none" opacity="0.15"><animate attributeName="stroke-dasharray" values="0 60;60 0" dur="2s" repeatCount="indefinite"></animate><animate attributeName="opacity" values="0;0.2;0.2;0" dur="2s" repeatCount="indefinite"></animate></polyline><circle cx="0" cy="16" r="1.5" fill="currentColor" opacity="0"><animate attributeName="cx" values="1;6;8;9.5;11;12.5;14;15.5;17;19;20.5;21.5;22.5;31" dur="2s" repeatCount="indefinite"></animate><animate attributeName="cy" values="16;16;16;14;18;6;26;10;16;16;14.5;17.5;16;16" dur="2s" repeatCount="indefinite"></animate><animate attributeName="opacity" values="0;0.8;1;1;1;1;1;1;0.8;0.6;0.6;0.6;0.4;0" dur="2s" repeatCount="indefinite"></animate><animate attributeName="r" values="1;1.5;2;2.5;2;2.5;2;1.5;1.5;1;1;1;1;0.5" dur="2s" repeatCount="indefinite"></animate></circle></svg></div></div></div><p class="text-sm text-zinc-500 font-light animate-fade-in">Warming up the heartbeat...</p><p class="text-xs text-zinc-400 mt-1.5 animate-fade-in" style="animation-delay:0.1s">Discovering issues and mapping dependencies</p></div><script src="/_next/static/chunks/webpack-117444a4bfe51057.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/8c1b520a38ba4ccd.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2433,[],\"\"]\n4:I[7523,[],\"ClientPageRoot\"]\n5:I[4314,[\"971\",\"static/chunks/971-bb44d52bcd9ee2a9.js\",\"931\",\"static/chunks/app/page-583300dd8af66e5a.js\"],\"default\",1]\n6:I[7796,[\"185\",\"static/chunks/app/layout-13e3cdaaa416edb6.js\"],\"AuthProvider\"]\n7:I[176,[],\"\"]\n8:I[9414,[],\"\"]\n9:I[1819,[\"788\",\"static/chunks/788-aa413085174e935a.js\",\"160\",\"static/chunks/app/not-found-ae1139bed2018dd8.js\"],\"default\"]\nb:I[8528,[],\"\"]\nc:[]\n0:[\"$\",\"$L2\",null,{\"buildId\":\"vFM69sDrBUf_9ULwPmVAE\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"\"],\"initialTree\":[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$5\"}],null],null],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/8c1b520a38ba4ccd.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$L7\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[\"$\",\"$L9\",null,{}],\"notFoundStyles\":[]}]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$La\"],\"globalErrorComponent\":\"$b\",\"missingSlots\":\"$Wc\"}]\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Heartbeads\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Interactive dependency graph viewer for beads issues — see your project's heartbeat\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:title\",\"content\":\"Heartbeads\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:description\",\"content\":\"Interactive dependency graph viewer for beads issues — see your project's heartbeat\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:site_name\",\"content\":\"Heartbeads\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:image:width\",\"content\":\"3008\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:image:height\",\"content\":\"1686\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image\",\"content\":\"http://localhost:3000/opengraph-image.png?dd44d0a71ff29c1f\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:title\",\"content\":\"Heartbeads\"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:description\",\"content\":\"Interactive dependency graph viewer for beads issues — see your project's heartbeat\"}],[\"$\",\"meta\",\"15\",{\"name\":\"twitter:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:image:width\",\"content\":\"3008\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:image:height\",\"content\":\"1686\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:image\",\"content\":\"http://localhost:3000/twitter-image.png?dd44d0a71ff29c1f\"}]]\n3:null\n"])</script></body></html>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
2:I[7523,[],"ClientPageRoot"]
|
|
2
|
+
3:I[4314,["971","static/chunks/971-bb44d52bcd9ee2a9.js","931","static/chunks/app/page-583300dd8af66e5a.js"],"default",1]
|
|
3
|
+
4:I[7796,["185","static/chunks/app/layout-13e3cdaaa416edb6.js"],"AuthProvider"]
|
|
4
|
+
5:I[176,[],""]
|
|
5
|
+
6:I[9414,[],""]
|
|
6
|
+
7:I[1819,["788","static/chunks/788-aa413085174e935a.js","160","static/chunks/app/not-found-ae1139bed2018dd8.js"],"default"]
|
|
7
|
+
0:["vFM69sDrBUf_9ULwPmVAE",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}],null],null],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/8c1b520a38ba4ccd.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":["$","$L7",null,{}],"notFoundStyles":[]}]}]}]}]],null],null],["$L8",null]]]]
|
|
8
|
+
8:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Heartbeads"}],["$","meta","3",{"name":"description","content":"Interactive dependency graph viewer for beads issues — see your project's heartbeat"}],["$","meta","4",{"property":"og:title","content":"Heartbeads"}],["$","meta","5",{"property":"og:description","content":"Interactive dependency graph viewer for beads issues — see your project's heartbeat"}],["$","meta","6",{"property":"og:site_name","content":"Heartbeads"}],["$","meta","7",{"property":"og:image:type","content":"image/png"}],["$","meta","8",{"property":"og:image:width","content":"3008"}],["$","meta","9",{"property":"og:image:height","content":"1686"}],["$","meta","10",{"property":"og:image","content":"http://localhost:3000/opengraph-image.png?dd44d0a71ff29c1f"}],["$","meta","11",{"property":"og:type","content":"website"}],["$","meta","12",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","13",{"name":"twitter:title","content":"Heartbeads"}],["$","meta","14",{"name":"twitter:description","content":"Interactive dependency graph viewer for beads issues — see your project's heartbeat"}],["$","meta","15",{"name":"twitter:image:type","content":"image/png"}],["$","meta","16",{"name":"twitter:image:width","content":"3008"}],["$","meta","17",{"name":"twitter:image:height","content":"1686"}],["$","meta","18",{"name":"twitter:image","content":"http://localhost:3000/twitter-image.png?dd44d0a71ff29c1f"}]]
|
|
9
|
+
1:null
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(()=>{var e={};e.id=626,e.ids=[626],e.modules={72934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},55315:e=>{"use strict";e.exports=require("path")},17360:e=>{"use strict";e.exports=require("url")},31225:(e,t,a)=>{"use strict";a.r(t),a.d(t,{GlobalError:()=>n.a,__next_app__:()=>m,originalPathname:()=>u,pages:()=>c,routeModule:()=>h,tree:()=>d}),a(66974),a(19709),a(69784);var s=a(69296),r=a(31650),i=a(87045),n=a.n(i),o=a(58184),l={};for(let e in o)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(l[e]=()=>o[e]);a.d(t,l);let d=["",{children:["login",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(a.bind(a,66974)),"/Users/david/Projects/gainforest/beads-map/app/login/page.tsx"]}]},{metadata:{icon:[],apple:[],openGraph:[async e=>(await Promise.resolve().then(a.bind(a,70493))).default(e)],twitter:[async e=>(await Promise.resolve().then(a.bind(a,80232))).default(e)],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(a.bind(a,19709)),"/Users/david/Projects/gainforest/beads-map/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(a.bind(a,69784)),"/Users/david/Projects/gainforest/beads-map/app/not-found.tsx"],metadata:{icon:[],apple:[],openGraph:[async e=>(await Promise.resolve().then(a.bind(a,70493))).default(e)],twitter:[async e=>(await Promise.resolve().then(a.bind(a,80232))).default(e)],manifest:void 0}}],c=["/Users/david/Projects/gainforest/beads-map/app/login/page.tsx"],u="/login/page",m={require:a,loadChunk:()=>Promise.resolve()},h=new s.AppPageRouteModule({definition:{kind:r.x.APP_PAGE,page:"/login/page",pathname:"/login",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:d}})},40585:(e,t,a)=>{Promise.resolve().then(a.bind(a,67960))},75074:(e,t,a)=>{Promise.resolve().then(a.bind(a,21035))},92220:(e,t,a)=>{Promise.resolve().then(a.bind(a,13429))},15169:(e,t,a)=>{Promise.resolve().then(a.t.bind(a,66544,23)),Promise.resolve().then(a.t.bind(a,93477,23)),Promise.resolve().then(a.t.bind(a,95116,23)),Promise.resolve().then(a.t.bind(a,96676,23)),Promise.resolve().then(a.t.bind(a,59645,23)),Promise.resolve().then(a.t.bind(a,88850,23))},21035:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>n});var s=a(98924),r=a(63911),i=a(13810);function n(){let[e,t]=(0,r.useState)(""),[a,n]=(0,r.useState)(""),[o,l]=(0,r.useState)(!1),[d,c]=(0,r.useState)("/"),u=(0,r.useRef)(null);async function m(t){if(t.preventDefault(),e.trim()){n(""),l(!0);try{let t=await fetch("/api/auth",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:e.trim()})});if(t.ok)window.location.href=d;else{let e=await t.json();n(e.error||"Invalid password")}}catch{n("Connection error")}finally{l(!1)}}}return(0,s.jsxs)("div",{className:"h-screen flex flex-col items-center justify-center bg-white text-zinc-800 px-6 select-none",children:[(0,s.jsxs)("div",{className:"relative w-full max-w-xs mb-6",children:[s.jsx("svg",{viewBox:"0 0 320 40",fill:"none",className:"w-full text-zinc-200","aria-hidden":"true",children:s.jsx("line",{x1:"0",y1:"20",x2:"320",y2:"20",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeDasharray:"4 6",opacity:"0.6"})}),s.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:s.jsx("div",{className:"bg-white px-4",children:s.jsx(i.A,{className:"w-10 h-10 text-emerald-500"})})})]}),s.jsx("h1",{className:"text-lg font-semibold text-zinc-900 mb-1 animate-fade-in",children:"heartbeads"}),s.jsx("p",{className:"text-sm text-zinc-400 mb-6 animate-fade-in",style:{animationDelay:"0.05s"},children:"This dashboard is password-protected."}),(0,s.jsxs)("form",{onSubmit:m,className:"w-full max-w-xs animate-fade-in",style:{animationDelay:"0.1s"},children:[s.jsx("input",{ref:u,type:"password",value:e,onChange:e=>{t(e.target.value),a&&n("")},placeholder:"Enter password",className:"w-full rounded-lg border border-zinc-200 bg-zinc-50 px-4 py-2.5 text-sm text-zinc-900 placeholder:text-zinc-400 focus:outline-none focus:ring-2 focus:ring-emerald-500/30 focus:border-emerald-500 transition-colors",autoComplete:"current-password",disabled:o}),a&&s.jsx("p",{className:"mt-2 text-xs text-red-500 animate-fade-in",children:a}),(0,s.jsxs)("button",{type:"submit",disabled:o||!e.trim(),className:"mt-3 w-full inline-flex items-center justify-center gap-2 px-5 py-2.5 rounded-full bg-emerald-500 text-white text-sm font-medium shadow-sm hover:bg-emerald-600 hover:shadow-md transition-all duration-200 ease-out disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-emerald-500 disabled:hover:shadow-sm",children:[o?s.jsx("div",{className:"w-4 h-4 border-2 border-white/30 border-t-white rounded-full animate-spin"}):s.jsx("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",children:s.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M13.5 10.5V6.75a4.5 4.5 0 119 0v3.75M3.75 21.75h10.5a2.25 2.25 0 002.25-2.25v-6.75a2.25 2.25 0 00-2.25-2.25H3.75a2.25 2.25 0 00-2.25 2.25v6.75a2.25 2.25 0 002.25 2.25z"})}),o?"Unlocking...":"Unlock"]})]}),s.jsx("p",{className:"mt-10 text-[11px] text-zinc-300 animate-fade-in",style:{animationDelay:"0.15s"},children:"password protection enabled"})]})}},13429:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>n});var s=a(98924),r=a(32828),i=a(13810);function n(){return(0,s.jsxs)("div",{className:"h-full flex flex-col items-center justify-center bg-white text-zinc-800 px-6 select-none",children:[(0,s.jsxs)("div",{className:"relative w-full max-w-md mb-8",children:[s.jsx("svg",{viewBox:"0 0 400 40",fill:"none",className:"w-full text-zinc-200","aria-hidden":"true",children:s.jsx("line",{x1:"0",y1:"20",x2:"400",y2:"20",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeDasharray:"4 6",opacity:"0.6"})}),s.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:s.jsx("div",{className:"bg-white px-4",children:s.jsx(i.A,{className:"w-10 h-10 text-emerald-500"})})})]}),s.jsx("h1",{className:"text-7xl font-extralight tracking-tight text-zinc-300 mb-3 animate-fade-in",children:"404"}),s.jsx("p",{className:"text-lg text-zinc-500 font-light mb-2 animate-fade-in",style:{animationDelay:"0.05s"},children:"This bead has no pulse."}),s.jsx("p",{className:"text-sm text-zinc-400 mb-8 text-center max-w-xs animate-fade-in",style:{animationDelay:"0.1s"},children:"We searched the entire dependency graph, but this node doesn't exist. Maybe it was closed, maybe it never was."}),(0,s.jsxs)(r.default,{href:"/",className:"inline-flex items-center gap-2 px-5 py-2.5 rounded-full bg-emerald-500 text-white text-sm font-medium shadow-sm hover:bg-emerald-600 hover:shadow-md transition-all duration-200 ease-out animate-fade-in",style:{animationDelay:"0.15s"},children:[s.jsx("svg",{viewBox:"0 0 16 16",fill:"none",className:"w-4 h-4","aria-hidden":"true",children:s.jsx("path",{d:"M10 12L6 8l4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"Back to the heartbeat"]}),s.jsx("p",{className:"mt-12 text-[11px] text-zinc-300 animate-fade-in",style:{animationDelay:"0.2s"},children:"error code: BEAD_NOT_FOUND \xb7 flatline detected"})]})}},13810:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var s=a(98924);function r({className:e}){return(0,s.jsxs)("svg",{viewBox:"0 0 32 32",fill:"none",className:e,"aria-hidden":"true",children:[(0,s.jsxs)("polyline",{points:"1,16 6,16 8,16 9.5,14 11,18 12.5,6 14,26 15.5,10 17,16 19,16 20.5,14.5 21.5,17.5 22.5,16 31,16",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",fill:"none",opacity:"0.9",children:[s.jsx("animate",{attributeName:"stroke-dasharray",values:"0 60;60 0",dur:"2s",repeatCount:"indefinite"}),s.jsx("animate",{attributeName:"opacity",values:"0.4;0.95;0.95;0.4",dur:"2s",repeatCount:"indefinite"})]}),(0,s.jsxs)("polyline",{points:"1,16 6,16 8,16 9.5,14 11,18 12.5,6 14,26 15.5,10 17,16 19,16 20.5,14.5 21.5,17.5 22.5,16 31,16",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",fill:"none",opacity:"0.15",children:[s.jsx("animate",{attributeName:"stroke-dasharray",values:"0 60;60 0",dur:"2s",repeatCount:"indefinite"}),s.jsx("animate",{attributeName:"opacity",values:"0;0.2;0.2;0",dur:"2s",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"0",cy:"16",r:"1.5",fill:"currentColor",opacity:"0",children:[s.jsx("animate",{attributeName:"cx",values:"1;6;8;9.5;11;12.5;14;15.5;17;19;20.5;21.5;22.5;31",dur:"2s",repeatCount:"indefinite"}),s.jsx("animate",{attributeName:"cy",values:"16;16;16;14;18;6;26;10;16;16;14.5;17.5;16;16",dur:"2s",repeatCount:"indefinite"}),s.jsx("animate",{attributeName:"opacity",values:"0;0.8;1;1;1;1;1;1;0.8;0.6;0.6;0.6;0.4;0",dur:"2s",repeatCount:"indefinite"}),s.jsx("animate",{attributeName:"r",values:"1;1.5;2;2.5;2;2.5;2;1.5;1.5;1;1;1;1;0.5",dur:"2s",repeatCount:"indefinite"})]})]})}},67960:(e,t,a)=>{"use strict";a.d(t,{AuthProvider:()=>n,a:()=>o});var s=a(98924),r=a(63911);let i=(0,r.createContext)(null);function n({children:e}){let[t,a]=(0,r.useState)({status:"idle",session:null,error:null,isLoading:!0}),n=(0,r.useCallback)(async e=>{a(e=>({...e,status:"authorizing",isLoading:!0,error:null}));try{let t=e.includes(".")?e:`${e}.bsky.social`,a=await fetch("/api/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({handle:t,returnTo:window.location.pathname+window.location.search})});if(!a.ok){let e=await a.json();throw Error(e.error||"Login failed")}let s=await a.json();window.location.href=s.redirectUrl}catch(t){let e=t instanceof Error?t:Error("Login failed");throw a({status:"error",session:null,error:e,isLoading:!1}),e}},[]),o=(0,r.useCallback)(async()=>{try{await fetch("/api/logout",{method:"POST"})}catch(e){console.error("Logout request failed:",e)}a({status:"idle",session:null,error:null,isLoading:!1})},[]);return s.jsx(i.Provider,{value:{state:t,login:n,logout:o},children:e})}function o(){let e=(0,r.useContext)(i);if(!e)throw Error("useAuth must be used within an AuthProvider");let{state:t,login:a,logout:s}=e;return{status:t.status,session:t.session,error:t.error,isLoading:t.isLoading,isAuthenticated:"authenticated"===t.status,login:a,logout:s}}},19709:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>l,metadata:()=>n,viewport:()=>o});var s=a(55886),r=a(36691);let i=(0,r.createProxy)(String.raw`/Users/david/Projects/gainforest/beads-map/lib/auth.tsx#AuthProvider`);(0,r.createProxy)(String.raw`/Users/david/Projects/gainforest/beads-map/lib/auth.tsx#useAuth`),a(29944);let n={metadataBase:new URL(process.env.PUBLIC_URL||"http://localhost:3000"),title:"Heartbeads",description:"Interactive dependency graph viewer for beads issues — see your project's heartbeat",openGraph:{title:"Heartbeads",description:"Interactive dependency graph viewer for beads issues — see your project's heartbeat",type:"website",siteName:"Heartbeads",images:[{url:"/image.png",width:1200,height:630,alt:"Heartbeads — interactive dependency graph viewer"}]},twitter:{card:"summary_large_image",title:"Heartbeads",description:"Interactive dependency graph viewer for beads issues — see your project's heartbeat",images:["/image.png"]}},o={width:"device-width",initialScale:1,maximumScale:1,userScalable:!1};function l({children:e}){return s.jsx("html",{lang:"en",children:s.jsx("body",{children:s.jsx(i,{children:e})})})}},66974:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});let s=(0,a(36691).createProxy)(String.raw`/Users/david/Projects/gainforest/beads-map/app/login/page.tsx#default`)},69784:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>s});let s=(0,a(36691).createProxy)(String.raw`/Users/david/Projects/gainforest/beads-map/app/not-found.tsx#default`)},70493:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>r});var s=a(56258);let r=e=>[{type:"image/png",width:3008,height:1686,url:(0,s.fillMetadataSegment)(".",e.params,"opengraph-image.png")+"?dd44d0a71ff29c1f"}]},80232:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>r});var s=a(56258);let r=e=>[{type:"image/png",width:3008,height:1686,url:(0,s.fillMetadataSegment)(".",e.params,"twitter-image.png")+"?dd44d0a71ff29c1f"}]},29944:()=>{}};var t=require("../../webpack-runtime.js");t.C(e);var a=e=>t(t.s=e),s=t.X(0,[719,950],()=>a(31225));module.exports=s})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":1,"files":["../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/action-async-storage.external.js","../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/async-local-storage.js","../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/request-async-storage.external.js","../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/.pnpm/next@14.2.35_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/package.json","../../../../node_modules/next","../../../../package.json","../../../package.json","../../chunks/719.js","../../chunks/950.js","../../webpack-runtime.js","page_client-reference-manifest.js"]}
|