@sureshdsk/devflow-mcp 3.0.0 → 3.0.2
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/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +4 -4
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/required-server-files.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +2 -2
- package/.next/standalone/.next/server/app/_global-error/page.js +1 -1
- package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +2 -2
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +2 -2
- package/.next/standalone/.next/server/app/_not-found/page.js +2 -2
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +14 -13
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +14 -13
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +5 -4
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/api/projects/[id]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/route.js +2 -2
- package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/specs/[name]/artifacts/[artifactType]/approve/route.js +2 -2
- package/.next/standalone/.next/server/app/api/specs/[name]/artifacts/[artifactType]/approve/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/specs/[name]/artifacts/[artifactType]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/specs/[name]/artifacts/[artifactType]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/specs/[name]/promote/route.js +2 -2
- package/.next/standalone/.next/server/app/api/specs/[name]/promote/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/specs/[name]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/specs/[name]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/specs/route.js +2 -2
- package/.next/standalone/.next/server/app/api/specs/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/route.js +2 -2
- package/.next/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +15 -14
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -14
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +5 -4
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/page/build-manifest.json +2 -2
- package/.next/standalone/.next/server/app/page.js +2 -2
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/specs/[name]/page/build-manifest.json +2 -2
- package/.next/standalone/.next/server/app/specs/[name]/page.js +2 -2
- package/.next/standalone/.next/server/app/specs/[name]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/specs/[name]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0be0eb8b._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__a9d478ee._.js → [root-of-the-server]__160c54ca._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__17ac51e3._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1bb083e9._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1dc1e944._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__22ecfa2c._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__13a93eb6._.js → [root-of-the-server]__64710c0d._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a2b7e5f2._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__cf302bda._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d85482cd._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__dfa21757._.js +3 -0
- package/.next/standalone/.next/server/chunks/_3f452afe._.js +2 -2
- package/.next/standalone/.next/server/chunks/src_db_index_ts_a71f50f0._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__023e2c69._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0a1a1435._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0c49a387._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1be1fc5f._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__3a2f2efb._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__4693399c._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__937c9212._.js → [root-of-the-server]__72a14301._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__8064ca06._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__8b786d48._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__8c052461._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__8d306066._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__9532fd59._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__a119dd75._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__7fb6ef14._.js → [root-of-the-server]__a57b312b._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__a80bd0ea._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__abe095b3._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__ad3bd783._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1e05fe0e._.js → [root-of-the-server]__ae9f05d6._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__c8781469._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__c8a25070._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__e8c1e595._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0ff3de19._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_01a5cd4b._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_05c6819f._.js +31 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_06c2c30a._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_09efe605._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_mermaid_dist_chunks_mermaid_core_ef601841._.js → node_modules_0a439e3b._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_3507b41a._.js → node_modules_0e73ad6c._.js} +3 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_0e7ff06d._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_0f73e25c._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_14cf9cea._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_19801f01._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_2235b8cf._.js +17 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_23096c6d._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_23db4cf7._.js +17 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_24381e95._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_24ca0eb6._.js +17 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_27525793._.js +17 -0
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_mermaid_dist_chunks_mermaid_core_4cfa6360._.js → node_modules_27c20382._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/node_modules_2c901b92._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_33b818b7._.js +45 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_345d7791._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_36185c24._.js +45 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_3ac7ce09._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_41b77cc7._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_ed317ff6._.js → node_modules_42acd8db._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/node_modules_434aa5ec._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_54a9e72d._.js +17 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_54f1273a._.js +26 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_58d64491._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_5e012e3d._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_5ea9e4cf._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_5ecf8270._.js +26 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_611c99b5._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_d3-scale_src_e02ef77f._.js → node_modules_6629853d._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/node_modules_6fe2661c._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_7fe65a84._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_860f971a._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_882f3743._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_8e047938._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_9268cdc4._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_942541c9._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_9d52c0d6._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_@tanstack_query-core_build_modern_21ece5ea._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_ae6841d2._.js +17 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_ba280bb0._.js +31 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_bffdb8ec._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_c00f1821._.js +17 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_c142ba86._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_d1a47cde._.js +17 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_d9b454fe._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_dbe36b1d._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_ddbe26b7._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_e76b8bf2._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_e945b74d._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_fbd8a2ee._.js +17 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_katex_dist_katex_mjs_31d456ba._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_katex_dist_katex_mjs_e1edc676._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_lodash-es_33e24dce._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-QXUST7PY_mjs_159fba97._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-S3R3BYOJ_mjs_dbeeb277._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_mermaid_core_mjs_a11916de._.js +9 -0
- package/.next/standalone/.next/server/chunks/ssr/src_66a70595._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_components_kanban-board_tsx_7b875e8e._.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +2 -2
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +2 -2
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/4f23f64d46848f57.js +1 -0
- package/.next/standalone/.next/static/chunks/53081dcdcad4f31e.js +1 -0
- package/.next/{static/chunks/6a3d582315f1c214.js → standalone/.next/static/chunks/701cfcbb41e0ab47.js} +1 -1
- package/.next/standalone/.next/static/chunks/ac4b6b4d5b7e486e.css +1 -0
- package/.next/standalone/.next/static/chunks/d0309ea872db5d9f.js +1 -0
- package/.next/standalone/.next/static/chunks/d4cf8893a018e965.js +1 -0
- package/.next/standalone/.next/static/chunks/e6c0233269a4bd69.js +13 -0
- package/.next/{static/chunks/7e65cfa9841f66a5.js → standalone/.next/static/chunks/e7d83ce855afe416.js} +2 -2
- package/.next/standalone/.next/static/chunks/ee7035560fc9e5e9.js +1 -0
- package/.next/{static/chunks/turbopack-f4d3806ab575051d.js → standalone/.next/static/chunks/turbopack-8b3b66a22a5e0fb4.js} +2 -2
- package/.next/standalone/.next/static/static/V6JvQiyb7wzYpHUOLB6BC/_buildManifest.js +11 -0
- package/.next/standalone/.next/static/static/V6JvQiyb7wzYpHUOLB6BC/_clientMiddlewareManifest.json +1 -0
- package/.next/standalone/.next/static/static/V6JvQiyb7wzYpHUOLB6BC/_ssgManifest.js +1 -0
- package/.next/standalone/.next/static/static/chunks/01c05b0fdc89fc0c.js +2 -0
- package/.next/standalone/.next/static/static/chunks/034e8cfdbd1cf3ac.js +24 -0
- package/.next/standalone/.next/static/static/chunks/0356b23e9d8fbd11.js +160 -0
- package/.next/standalone/.next/static/static/chunks/0697f660af9a95f1.js +1 -0
- package/.next/standalone/.next/static/static/chunks/09e4e9409aadc2fe.js +1 -0
- package/.next/standalone/.next/static/static/chunks/09ec2e3c3d2d294f.js +29 -0
- package/.next/standalone/.next/static/static/chunks/1bdb5b021c9a4e61.js +62 -0
- package/.next/standalone/.next/static/static/chunks/1cec4d71237d0c89.js +15 -0
- package/.next/standalone/.next/static/static/chunks/20337e5244416041.js +1 -0
- package/.next/standalone/.next/static/static/chunks/20c1169c30c95e0f.js +1 -0
- package/.next/standalone/.next/static/static/chunks/27f5fab49d8a5395.js +1 -0
- package/.next/standalone/.next/static/static/chunks/31965ae569bf807f.js +24 -0
- package/.next/standalone/.next/static/static/chunks/34e2788a0be7ee63.js +1 -0
- package/.next/standalone/.next/static/static/chunks/3e6042c77fa8e7ac.js +1 -0
- package/.next/standalone/.next/static/static/chunks/46d959abf8046f0e.js +15 -0
- package/.next/standalone/.next/static/static/chunks/483effa74d32093a.js +1 -0
- package/.next/standalone/.next/static/static/chunks/4f23f64d46848f57.js +1 -0
- package/.next/standalone/.next/static/static/chunks/53081dcdcad4f31e.js +1 -0
- package/.next/standalone/.next/static/static/chunks/539636bf51e84308.js +1 -0
- package/.next/standalone/.next/static/static/chunks/559e55a53f22f5d1.js +1 -0
- package/.next/standalone/.next/static/static/chunks/5623d8a1c99eba62.js +1 -0
- package/.next/standalone/.next/static/static/chunks/581c7f8a86cc86fb.js +1 -0
- package/.next/standalone/.next/static/static/chunks/5c05dda6ed4d92bf.js +1 -0
- package/.next/standalone/.next/static/static/chunks/5eac621951969859.js +60 -0
- package/.next/standalone/.next/static/static/chunks/6f4c5a75f38f686b.js +1 -0
- package/.next/standalone/.next/static/static/chunks/6fee5c7b5d483c8a.js +5 -0
- package/.next/standalone/.next/static/static/chunks/701cfcbb41e0ab47.js +1 -0
- package/.next/standalone/.next/static/static/chunks/70b3258c508216b5.js +4 -0
- package/.next/standalone/.next/static/static/chunks/762121739217e5da.js +1 -0
- package/.next/standalone/.next/static/static/chunks/808075c416a273c9.js +2 -0
- package/.next/standalone/.next/static/static/chunks/8321c26033c9fc5b.js +1 -0
- package/.next/standalone/.next/static/static/chunks/87f01c0a5d4010ab.js +1 -0
- package/.next/standalone/.next/static/static/chunks/89ebb4231102677a.js +77 -0
- package/.next/standalone/.next/static/static/chunks/909ac8a87c0dd9cb.js +215 -0
- package/.next/standalone/.next/static/static/chunks/9525dc246b363870.js +262 -0
- package/.next/standalone/.next/static/static/chunks/957a5dae245bbc84.js +1 -0
- package/.next/standalone/.next/static/static/chunks/9a52b8ded6a9ee38.js +215 -0
- package/.next/standalone/.next/static/static/chunks/9eb0474ddf7f6238.js +80 -0
- package/.next/standalone/.next/static/static/chunks/a6dad97d9634a72d.js +1 -0
- package/.next/standalone/.next/static/static/chunks/a6dad97d9634a72d.js.map +1 -0
- package/.next/standalone/.next/static/static/chunks/a85d55e8b6841436.js +1 -0
- package/.next/standalone/.next/static/static/chunks/ac4b6b4d5b7e486e.css +1 -0
- package/.next/standalone/.next/static/static/chunks/ad24b3b0881818aa.js +4 -0
- package/.next/standalone/.next/static/static/chunks/ae52f8e72d4127b1.js +59 -0
- package/.next/standalone/.next/static/static/chunks/af66c50a65af610b.js +93 -0
- package/.next/standalone/.next/static/static/chunks/b8b36494d4330f5f.js +152 -0
- package/.next/standalone/.next/static/static/chunks/b8ca88454bfa8e05.js +148 -0
- package/.next/standalone/.next/static/static/chunks/b9a047fc90291dbd.js +63 -0
- package/.next/standalone/.next/static/static/chunks/be28d13ded360528.js +117 -0
- package/.next/standalone/.next/static/static/chunks/c231010aae14914b.js +1 -0
- package/.next/standalone/.next/static/static/chunks/c36e148ece9c20ae.js +43 -0
- package/.next/standalone/.next/static/static/chunks/cb863a7e46548566.js +15 -0
- package/.next/standalone/.next/static/static/chunks/ce4052f386943efb.js +1 -0
- package/.next/standalone/.next/static/static/chunks/d0309ea872db5d9f.js +1 -0
- package/.next/standalone/.next/static/static/chunks/d4cf8893a018e965.js +1 -0
- package/.next/standalone/.next/static/static/chunks/d5b700b8aafeea3b.js +55 -0
- package/.next/standalone/.next/static/static/chunks/dc16aeb5aabadbd8.js +136 -0
- package/.next/standalone/.next/static/static/chunks/de9c5219846f92bb.js +53 -0
- package/.next/standalone/.next/static/static/chunks/df3c9c7fcf3e0a3d.js +15 -0
- package/.next/standalone/.next/static/static/chunks/e6c0233269a4bd69.js +13 -0
- package/.next/standalone/.next/static/static/chunks/e7d83ce855afe416.js +5 -0
- package/.next/standalone/.next/static/static/chunks/eb22f55ae829d296.js +36 -0
- package/.next/standalone/.next/static/static/chunks/ec0de430276c8209.js +1 -0
- package/.next/standalone/.next/static/static/chunks/ed2e02f2db03c1dc.js +1 -0
- package/.next/standalone/.next/static/static/chunks/ee7035560fc9e5e9.js +1 -0
- package/.next/standalone/.next/static/static/chunks/f1f8594d5ec7b93e.js +1 -0
- package/.next/standalone/.next/static/static/chunks/f42ff7863eb4c3ff.js +1 -0
- package/.next/standalone/.next/static/static/chunks/f678cdcec3cea0de.js +1 -0
- package/.next/standalone/.next/static/static/chunks/f7a6fed60fb079dd.js +1 -0
- package/.next/standalone/.next/static/static/chunks/f9eb3f4ff87b8d8d.js +56 -0
- package/.next/standalone/.next/static/static/chunks/ff1a16fafef87110.js +1 -0
- package/.next/standalone/.next/static/static/chunks/ff49535ba8193dec.js +1 -0
- package/.next/standalone/.next/static/static/chunks/turbopack-8b3b66a22a5e0fb4.js +4 -0
- package/.next/standalone/.next/static/static/media/favicon.0b3bf435.ico +0 -0
- package/.next/standalone/AGENTS.md +13 -7
- package/.next/standalone/CONTRIBUTING.md +42 -26
- package/.next/standalone/README.md +166 -25
- package/.next/standalone/bin/devflow.js +12 -5
- package/.next/standalone/bun.lock +78 -24
- package/.next/standalone/devflow/project-config.json +4 -0
- package/.next/standalone/devflow/schemas/api-first/schema.yaml +39 -0
- package/.next/standalone/devflow/schemas/api-first/templates/api-design.md +41 -0
- package/.next/standalone/devflow/schemas/api-first/templates/db-design.md +28 -0
- package/.next/standalone/devflow/schemas/api-first/templates/final-architecture.md +31 -0
- package/.next/standalone/devflow/schemas/api-first/templates/proposal.md +22 -0
- package/.next/standalone/devflow/schemas/api-first/templates/tasks.md +16 -0
- package/.next/standalone/devflow/specs/autodetect-skill-and-slash-command-installation/.approvals.json +1 -1
- package/.next/standalone/devflow/specs/autodetect-skill-and-slash-command-installation/.meta.json +1 -1
- package/.next/standalone/devflow/specs/autodetect-skill-and-slash-command-installation/design.md +11 -0
- package/.next/standalone/devflow/specs/autodetect-skill-and-slash-command-installation/proposal.md +3 -0
- package/.next/standalone/devflow/specs/autodetect-skill-and-slash-command-installation/tasks.md +34 -2
- package/.next/standalone/devflow/specs/precommit/.approvals.json +26 -0
- package/.next/standalone/devflow/specs/precommit/.meta.json +7 -0
- package/.next/standalone/devflow/specs/precommit/design.md +105 -0
- package/.next/standalone/devflow/specs/precommit/proposal.md +43 -0
- package/.next/standalone/devflow/specs/precommit/specs.md +89 -0
- package/.next/standalone/devflow/specs/precommit/tasks.md +283 -0
- package/.next/standalone/docs/custom-schemas.md +117 -0
- package/.next/standalone/docs/local-dev-guide.md +73 -0
- package/.next/standalone/drizzle.config.ts +7 -7
- package/.next/standalone/eslint.config.mjs +2 -2
- package/.next/standalone/instrumentation.ts +3 -5
- package/.next/standalone/next.config.ts +11 -2
- package/.next/standalone/node_modules/{sharp → libsql}/node_modules/detect-libc/package.json +4 -8
- package/.next/standalone/package-lock.json +5257 -2085
- package/.next/standalone/package.json +18 -9
- package/.next/standalone/postcss.config.mjs +1 -1
- package/.next/standalone/scripts/init-db.js +3 -5
- package/.next/standalone/scripts/init-db.test.js +6 -6
- package/.next/standalone/scripts/init-schema.js +22 -22
- package/.next/standalone/scripts/init-schema.test.js +45 -45
- package/.next/standalone/scripts/install-environments.js +27 -8
- package/.next/standalone/scripts/install-environments.test.js +19 -10
- package/.next/standalone/scripts/install-skills.js +104 -31
- package/.next/standalone/scripts/install-skills.test.js +6 -6
- package/.next/standalone/server.js +1 -1
- package/.next/standalone/src/app/api/agents/route.ts +2 -2
- package/.next/standalone/src/app/api/projects/[id]/route.ts +10 -19
- package/.next/standalone/src/app/api/projects/route.ts +4 -10
- package/.next/standalone/src/app/api/specs/[name]/artifacts/[artifactType]/approve/route.ts +8 -8
- package/.next/standalone/src/app/api/specs/[name]/artifacts/[artifactType]/route.ts +14 -14
- package/.next/standalone/src/app/api/specs/[name]/promote/route.ts +17 -23
- package/.next/standalone/src/app/api/specs/[name]/route.ts +34 -36
- package/.next/standalone/src/app/api/specs/route.ts +10 -10
- package/.next/standalone/src/app/api/tasks/[id]/route.ts +11 -33
- package/.next/standalone/src/app/api/tasks/route.ts +3 -6
- package/.next/standalone/src/app/globals.css +3 -3
- package/.next/standalone/src/app/layout.tsx +9 -5
- package/.next/standalone/src/app/page.tsx +1 -1
- package/.next/standalone/src/app/specs/[name]/page.tsx +26 -68
- package/.next/standalone/src/components/kanban-board.tsx +78 -157
- package/.next/standalone/src/components/kanban-column.tsx +10 -12
- package/.next/standalone/src/components/markdown-preview.tsx +36 -19
- package/.next/standalone/src/components/providers.tsx +20 -0
- package/.next/standalone/src/components/specs/artifact-dag-status.tsx +12 -14
- package/.next/standalone/src/components/specs/artifact-editor.tsx +55 -26
- package/.next/standalone/src/components/specs/spec-detail.tsx +48 -40
- package/.next/standalone/src/components/specs/spec-kanban-column.tsx +49 -68
- package/.next/standalone/src/components/specs/spec-modal.tsx +119 -83
- package/.next/standalone/src/components/task-card.tsx +34 -38
- package/.next/standalone/src/components/task-dialog.tsx +16 -31
- package/.next/standalone/src/components/ui/badge.tsx +12 -18
- package/.next/standalone/src/components/ui/button.tsx +23 -28
- package/.next/standalone/src/components/ui/card.tsx +42 -62
- package/.next/standalone/src/components/ui/dialog.tsx +17 -35
- package/.next/standalone/src/db/index.ts +10 -10
- package/.next/standalone/src/db/schema.ts +37 -37
- package/.next/standalone/src/hooks/use-queries.ts +81 -0
- package/.next/standalone/src/hooks/use-websocket.ts +74 -0
- package/.next/standalone/src/lib/schema.test.ts +37 -37
- package/.next/standalone/src/lib/schema.ts +77 -31
- package/.next/standalone/src/lib/specs-dir.ts +8 -8
- package/.next/standalone/src/lib/specs.ts +98 -92
- package/.next/standalone/src/lib/utils.ts +2 -2
- package/.next/standalone/src/mcp/server.ts +556 -349
- package/.next/standalone/src/mcp/websocket.ts +26 -23
- package/.next/standalone/src/schemas/backend-api/templates/proposal.md +6 -4
- package/.next/standalone/src/schemas/backend-api/templates/tasks.md +6 -0
- package/.next/standalone/src/schemas/data-engineering/templates/proposal.md +6 -4
- package/.next/standalone/src/schemas/data-engineering/templates/tasks.md +6 -0
- package/.next/standalone/src/schemas/devops-platform/templates/proposal.md +6 -4
- package/.next/standalone/src/schemas/devops-platform/templates/tasks.md +6 -0
- package/.next/standalone/src/schemas/frontend-product/templates/proposal.md +6 -4
- package/.next/standalone/src/schemas/frontend-product/templates/tasks.md +6 -0
- package/.next/standalone/src/schemas/spec-driven/templates/proposal.md +6 -4
- package/.next/standalone/src/schemas/spec-driven/templates/tasks.md +26 -0
- package/.next/standalone/src/websocket/server.ts +20 -18
- package/.next/standalone/tsconfig.json +3 -12
- package/.next/standalone/tsconfig.tsbuildinfo +1 -1
- package/README.md +166 -25
- package/bin/devflow.js +12 -5
- package/drizzle.config.ts +7 -7
- package/next.config.ts +11 -2
- package/package.json +18 -9
- package/scripts/init-db.js +3 -5
- package/scripts/init-db.test.js +6 -6
- package/scripts/init-schema.js +22 -22
- package/scripts/init-schema.test.js +45 -45
- package/scripts/install-environments.js +27 -8
- package/scripts/install-environments.test.js +19 -10
- package/scripts/install-skills.js +104 -31
- package/scripts/install-skills.test.js +6 -6
- package/src/app/api/agents/route.ts +2 -2
- package/src/app/api/projects/[id]/route.ts +10 -19
- package/src/app/api/projects/route.ts +4 -10
- package/src/app/api/specs/[name]/artifacts/[artifactType]/approve/route.ts +8 -8
- package/src/app/api/specs/[name]/artifacts/[artifactType]/route.ts +14 -14
- package/src/app/api/specs/[name]/promote/route.ts +17 -23
- package/src/app/api/specs/[name]/route.ts +34 -36
- package/src/app/api/specs/route.ts +10 -10
- package/src/app/api/tasks/[id]/route.ts +11 -33
- package/src/app/api/tasks/route.ts +3 -6
- package/src/app/globals.css +3 -3
- package/src/app/layout.tsx +9 -5
- package/src/app/page.tsx +1 -1
- package/src/app/specs/[name]/page.tsx +26 -68
- package/src/components/kanban-board.tsx +78 -157
- package/src/components/kanban-column.tsx +10 -12
- package/src/components/markdown-preview.tsx +36 -19
- package/src/components/providers.tsx +20 -0
- package/src/components/specs/artifact-dag-status.tsx +12 -14
- package/src/components/specs/artifact-editor.tsx +55 -26
- package/src/components/specs/spec-detail.tsx +48 -40
- package/src/components/specs/spec-kanban-column.tsx +49 -68
- package/src/components/specs/spec-modal.tsx +119 -83
- package/src/components/task-card.tsx +34 -38
- package/src/components/task-dialog.tsx +16 -31
- package/src/components/ui/badge.tsx +12 -18
- package/src/components/ui/button.tsx +23 -28
- package/src/components/ui/card.tsx +42 -62
- package/src/components/ui/dialog.tsx +17 -35
- package/src/db/index.ts +10 -10
- package/src/db/schema.ts +37 -37
- package/src/hooks/use-queries.ts +81 -0
- package/src/hooks/use-websocket.ts +74 -0
- package/src/lib/schema.test.ts +37 -37
- package/src/lib/schema.ts +77 -31
- package/src/lib/specs-dir.ts +8 -8
- package/src/lib/specs.ts +98 -92
- package/src/lib/utils.ts +2 -2
- package/src/mcp/server.ts +556 -349
- package/src/mcp/websocket.ts +26 -23
- package/src/schemas/backend-api/templates/proposal.md +6 -4
- package/src/schemas/backend-api/templates/tasks.md +6 -0
- package/src/schemas/data-engineering/templates/proposal.md +6 -4
- package/src/schemas/data-engineering/templates/tasks.md +6 -0
- package/src/schemas/devops-platform/templates/proposal.md +6 -4
- package/src/schemas/devops-platform/templates/tasks.md +6 -0
- package/src/schemas/frontend-product/templates/proposal.md +6 -4
- package/src/schemas/frontend-product/templates/tasks.md +6 -0
- package/src/schemas/spec-driven/templates/proposal.md +6 -4
- package/src/schemas/spec-driven/templates/tasks.md +26 -0
- package/src/types/bun-sqlite.d.ts +1 -1
- package/src/websocket/server.ts +20 -18
- package/tsconfig.json +3 -12
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1be4e4b6._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__492a4a24._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__67c59ae1._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6cc7aecd._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__83a77b07._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__88d91cb5._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a9e095e8._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b367d327._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__eb413bbc._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0b8c072a._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12b2191f._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__15316462._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__19c9c409._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__19e5e22f._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__25b5ccb3._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__2f78c3da._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__3160b3f4._.js +0 -9
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__319559be._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__34f7cbcb._.js +0 -31
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__3abab94b._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__3b3d8930._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__4250799b._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__4c29cbc3._.js +0 -26
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__4e0bb6eb._.js +0 -9
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__5678d2e3._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__673445e0._.js +0 -31
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__934de06b._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__9b6c6f09._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__a1b83a98._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__b00a15c5._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__b8567be3._.js +0 -26
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__ce64536e._.js +0 -45
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__e96d33d2._.js +0 -45
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__fd7ec054._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_16a3f9e7._.js +0 -17
- package/.next/standalone/.next/server/chunks/ssr/node_modules_45bce0e1._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_5e5a372d._.js +0 -17
- package/.next/standalone/.next/server/chunks/ssr/node_modules_6ece6f1e._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_d173e749._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_d3-shape_src_arc_fb1ac087.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_1f73a830._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_663ac803._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-FMBD7UC4_mjs_4f485529._.js +0 -17
- package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-TZMSLE5B_mjs_8436a62a._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_f78d2dc4._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/src_app_layout_tsx_cc8184fa._.js +0 -3
- package/.next/standalone/devflow/specs/add-default-schema-template-selection/.approvals.json +0 -26
- package/.next/standalone/devflow/specs/add-default-schema-template-selection/.meta.json +0 -8
- package/.next/standalone/devflow/specs/add-default-schema-template-selection/design.md +0 -126
- package/.next/standalone/devflow/specs/add-default-schema-template-selection/proposal.md +0 -65
- package/.next/standalone/devflow/specs/add-default-schema-template-selection/specs.md +0 -107
- package/.next/standalone/devflow/specs/add-default-schema-template-selection/tasks.md +0 -235
- package/.next/standalone/devflow/specs/test-no-project/.approvals.json +0 -17
- package/.next/standalone/devflow/specs/test-no-project/.meta.json +0 -6
- package/.next/standalone/devflow/specs/ui-cleanup/.approvals.json +0 -29
- package/.next/standalone/devflow/specs/ui-cleanup/.meta.json +0 -6
- package/.next/standalone/devflow/specs/ui-cleanup/design.md +0 -49
- package/.next/standalone/devflow/specs/ui-cleanup/proposal.md +0 -34
- package/.next/standalone/devflow/specs/ui-cleanup/specs.md +0 -55
- package/.next/standalone/devflow/specs/ui-cleanup/tasks.md +0 -28
- package/.next/standalone/node_modules/@img/colour/color.cjs +0 -1594
- package/.next/standalone/node_modules/@img/colour/index.cjs +0 -1
- package/.next/standalone/node_modules/@img/colour/package.json +0 -45
- package/.next/standalone/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64.node +0 -0
- package/.next/standalone/node_modules/@img/sharp-darwin-arm64/package.json +0 -40
- package/.next/standalone/node_modules/@img/sharp-libvips-darwin-arm64/README.md +0 -46
- package/.next/standalone/node_modules/@img/sharp-libvips-darwin-arm64/lib/glib-2.0/include/glibconfig.h +0 -220
- package/.next/standalone/node_modules/@img/sharp-libvips-darwin-arm64/lib/index.js +0 -1
- package/.next/standalone/node_modules/@img/sharp-libvips-darwin-arm64/lib/libvips-cpp.8.17.3.dylib +0 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-darwin-arm64/package.json +0 -36
- package/.next/standalone/node_modules/@img/sharp-libvips-darwin-arm64/versions.json +0 -30
- package/.next/standalone/node_modules/buffer-from/index.js +0 -72
- package/.next/standalone/node_modules/buffer-from/package.json +0 -19
- package/.next/standalone/node_modules/sharp/lib/channel.js +0 -177
- package/.next/standalone/node_modules/sharp/lib/colour.js +0 -195
- package/.next/standalone/node_modules/sharp/lib/composite.js +0 -212
- package/.next/standalone/node_modules/sharp/lib/constructor.js +0 -499
- package/.next/standalone/node_modules/sharp/lib/index.js +0 -16
- package/.next/standalone/node_modules/sharp/lib/input.js +0 -809
- package/.next/standalone/node_modules/sharp/lib/is.js +0 -143
- package/.next/standalone/node_modules/sharp/lib/libvips.js +0 -207
- package/.next/standalone/node_modules/sharp/lib/operation.js +0 -1016
- package/.next/standalone/node_modules/sharp/lib/output.js +0 -1666
- package/.next/standalone/node_modules/sharp/lib/resize.js +0 -595
- package/.next/standalone/node_modules/sharp/lib/sharp.js +0 -121
- package/.next/standalone/node_modules/sharp/lib/utility.js +0 -291
- package/.next/standalone/node_modules/sharp/node_modules/detect-libc/lib/detect-libc.js +0 -313
- package/.next/standalone/node_modules/sharp/node_modules/detect-libc/lib/elf.js +0 -39
- package/.next/standalone/node_modules/sharp/node_modules/detect-libc/lib/filesystem.js +0 -51
- package/.next/standalone/node_modules/sharp/node_modules/detect-libc/lib/process.js +0 -24
- package/.next/standalone/node_modules/sharp/node_modules/semver/classes/comparator.js +0 -143
- package/.next/standalone/node_modules/sharp/node_modules/semver/classes/range.js +0 -557
- package/.next/standalone/node_modules/sharp/node_modules/semver/classes/semver.js +0 -333
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/cmp.js +0 -54
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/coerce.js +0 -62
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/compare.js +0 -7
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/eq.js +0 -5
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/gt.js +0 -5
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/gte.js +0 -5
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/lt.js +0 -5
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/lte.js +0 -5
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/neq.js +0 -5
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/parse.js +0 -18
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/satisfies.js +0 -12
- package/.next/standalone/node_modules/sharp/node_modules/semver/internal/constants.js +0 -37
- package/.next/standalone/node_modules/sharp/node_modules/semver/internal/debug.js +0 -11
- package/.next/standalone/node_modules/sharp/node_modules/semver/internal/identifiers.js +0 -29
- package/.next/standalone/node_modules/sharp/node_modules/semver/internal/lrucache.js +0 -42
- package/.next/standalone/node_modules/sharp/node_modules/semver/internal/parse-options.js +0 -17
- package/.next/standalone/node_modules/sharp/node_modules/semver/internal/re.js +0 -223
- package/.next/standalone/node_modules/sharp/node_modules/semver/package.json +0 -78
- package/.next/standalone/node_modules/sharp/package.json +0 -202
- package/.next/standalone/node_modules/source-map/lib/array-set.js +0 -121
- package/.next/standalone/node_modules/source-map/lib/base64-vlq.js +0 -140
- package/.next/standalone/node_modules/source-map/lib/base64.js +0 -67
- package/.next/standalone/node_modules/source-map/lib/binary-search.js +0 -111
- package/.next/standalone/node_modules/source-map/lib/mapping-list.js +0 -79
- package/.next/standalone/node_modules/source-map/lib/quick-sort.js +0 -114
- package/.next/standalone/node_modules/source-map/lib/source-map-consumer.js +0 -1145
- package/.next/standalone/node_modules/source-map/lib/source-map-generator.js +0 -425
- package/.next/standalone/node_modules/source-map/lib/source-node.js +0 -413
- package/.next/standalone/node_modules/source-map/lib/util.js +0 -488
- package/.next/standalone/node_modules/source-map/package.json +0 -73
- package/.next/standalone/node_modules/source-map/source-map.js +0 -8
- package/.next/standalone/node_modules/source-map-support/LICENSE.md +0 -21
- package/.next/standalone/node_modules/source-map-support/README.md +0 -284
- package/.next/standalone/node_modules/source-map-support/browser-source-map-support.js +0 -114
- package/.next/standalone/node_modules/source-map-support/package.json +0 -31
- package/.next/standalone/node_modules/source-map-support/register-hook-require.js +0 -1
- package/.next/standalone/node_modules/source-map-support/register.js +0 -1
- package/.next/standalone/node_modules/source-map-support/source-map-support.js +0 -625
- package/.next/standalone/node_modules/typescript/lib/_tsc.js +0 -133818
- package/.next/standalone/node_modules/typescript/lib/_tsserver.js +0 -659
- package/.next/standalone/node_modules/typescript/lib/_typingsInstaller.js +0 -222
- package/.next/standalone/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/lib/de/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/lib/es/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/lib/it/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/lib/tsc.js +0 -8
- package/.next/standalone/node_modules/typescript/lib/tsserver.js +0 -8
- package/.next/standalone/node_modules/typescript/lib/tsserverlibrary.js +0 -21
- package/.next/standalone/node_modules/typescript/lib/typesMap.json +0 -497
- package/.next/standalone/node_modules/typescript/lib/typescript.js +0 -200276
- package/.next/standalone/node_modules/typescript/lib/typingsInstaller.js +0 -8
- package/.next/standalone/node_modules/typescript/lib/watchGuard.js +0 -53
- package/.next/standalone/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/package.json +0 -120
- package/.next/standalone/src/components/ui/collapsible.tsx +0 -12
- package/.next/standalone/src/components/ui/sheet.tsx +0 -130
- package/.next/standalone/src/components/ui/tabs.tsx +0 -58
- package/.next/static/chunks/0177331b8adf7346.js +0 -7
- package/.next/static/chunks/06af74e2f3e207c5.js +0 -7
- package/.next/static/chunks/1748d5cd2443723b.css +0 -1
- package/.next/static/chunks/7ae917cb100be2b9.js +0 -7
- package/.next/static/chunks/7c4b901b394c3a8c.js +0 -7
- package/src/components/ui/collapsible.tsx +0 -12
- package/src/components/ui/sheet.tsx +0 -130
- package/src/components/ui/tabs.tsx +0 -58
- /package/.next/{static/5YFrdIQd1UU2IxLxekrU9 → standalone/.next/static/V6JvQiyb7wzYpHUOLB6BC}/_buildManifest.js +0 -0
- /package/.next/{static/5YFrdIQd1UU2IxLxekrU9 → standalone/.next/static/V6JvQiyb7wzYpHUOLB6BC}/_clientMiddlewareManifest.json +0 -0
- /package/.next/{static/5YFrdIQd1UU2IxLxekrU9 → standalone/.next/static/V6JvQiyb7wzYpHUOLB6BC}/_ssgManifest.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/01c05b0fdc89fc0c.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/034e8cfdbd1cf3ac.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/0356b23e9d8fbd11.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/0697f660af9a95f1.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/09e4e9409aadc2fe.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/09ec2e3c3d2d294f.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/1bdb5b021c9a4e61.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/1cec4d71237d0c89.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/20337e5244416041.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/20c1169c30c95e0f.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/27f5fab49d8a5395.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/31965ae569bf807f.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/34e2788a0be7ee63.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/3e6042c77fa8e7ac.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/46d959abf8046f0e.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/483effa74d32093a.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/539636bf51e84308.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/559e55a53f22f5d1.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/5623d8a1c99eba62.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/581c7f8a86cc86fb.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/5c05dda6ed4d92bf.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/5eac621951969859.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/6f4c5a75f38f686b.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/6fee5c7b5d483c8a.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/70b3258c508216b5.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/762121739217e5da.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/808075c416a273c9.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/8321c26033c9fc5b.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/87f01c0a5d4010ab.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/89ebb4231102677a.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/909ac8a87c0dd9cb.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/9525dc246b363870.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/957a5dae245bbc84.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/9a52b8ded6a9ee38.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/9eb0474ddf7f6238.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/a6dad97d9634a72d.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/a6dad97d9634a72d.js.map +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/a85d55e8b6841436.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/ad24b3b0881818aa.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/ae52f8e72d4127b1.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/af66c50a65af610b.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/b8b36494d4330f5f.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/b8ca88454bfa8e05.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/b9a047fc90291dbd.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/be28d13ded360528.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/c231010aae14914b.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/c36e148ece9c20ae.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/cb863a7e46548566.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/ce4052f386943efb.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/d5b700b8aafeea3b.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/dc16aeb5aabadbd8.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/de9c5219846f92bb.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/df3c9c7fcf3e0a3d.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/eb22f55ae829d296.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/ec0de430276c8209.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/ed2e02f2db03c1dc.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/f1f8594d5ec7b93e.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/f42ff7863eb4c3ff.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/f678cdcec3cea0de.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/f7a6fed60fb079dd.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/f9eb3f4ff87b8d8d.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/ff1a16fafef87110.js +0 -0
- /package/.next/{static → standalone/.next/static}/chunks/ff49535ba8193dec.js +0 -0
- /package/.next/{static → standalone/.next/static}/media/favicon.0b3bf435.ico +0 -0
- /package/.next/standalone/node_modules/{detect-libc → libsql/node_modules/detect-libc}/lib/detect-libc.js +0 -0
- /package/.next/standalone/node_modules/{detect-libc → libsql/node_modules/detect-libc}/lib/filesystem.js +0 -0
- /package/.next/standalone/node_modules/{detect-libc → libsql/node_modules/detect-libc}/lib/process.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,22315,(t,n,e)=>{t.e,n.exports=function(){"use strict";var t="millisecond",n="second",e="minute",r="hour",i="week",o="month",a="quarter",u="year",s="date",l="Invalid Date",f=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,c=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,h=function(t,n,e){var r=String(t);return!r||r.length>=n?t:""+Array(n+1-r.length).join(e)+t},d="en",p={};p[d]={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var n=["th","st","nd","rd"],e=t%100;return"["+t+(n[(e-20)%10]||n[e]||n[0])+"]"}};var y="$isDayjsObject",g=function(t){return t instanceof w||!(!t||!t[y])},v=function t(n,e,r){var i;if(!n)return d;if("string"==typeof n){var o=n.toLowerCase();p[o]&&(i=o),e&&(p[o]=e,i=o);var a=n.split("-");if(!i&&a.length>1)return t(a[0])}else{var u=n.name;p[u]=n,i=u}return!r&&i&&(d=i),i||!r&&d},m=function(t,n){if(g(t))return t.clone();var e="object"==typeof n?n:{};return e.date=t,e.args=arguments,new w(e)},_={s:h,z:function(t){var n=-t.utcOffset(),e=Math.abs(n);return(n<=0?"+":"-")+h(Math.floor(e/60),2,"0")+":"+h(e%60,2,"0")},m:function t(n,e){if(n.date()<e.date())return-t(e,n);var r=12*(e.year()-n.year())+(e.month()-n.month()),i=n.clone().add(r,o),a=e-i<0,u=n.clone().add(r+(a?-1:1),o);return+(-(r+(e-i)/(a?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(l){return({M:o,y:u,w:i,d:"day",D:s,h:r,m:e,s:n,ms:t,Q:a})[l]||String(l||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}};_.l=v,_.i=g,_.w=function(t,n){return m(t,{locale:n.$L,utc:n.$u,x:n.$x,$offset:n.$offset})};var w=function(){function h(t){this.$L=v(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[y]=!0}var d=h.prototype;return d.parse=function(t){this.$d=function(t){var n=t.date,e=t.utc;if(null===n)return new Date(NaN);if(_.u(n))return new Date;if(n instanceof Date)return new Date(n);if("string"==typeof n&&!/Z$/i.test(n)){var r=n.match(f);if(r){var i=r[2]-1||0,o=(r[7]||"0").substring(0,3);return e?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)}}return new Date(n)}(t),this.init()},d.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},d.$utils=function(){return _},d.isValid=function(){return this.$d.toString()!==l},d.isSame=function(t,n){var e=m(t);return this.startOf(n)<=e&&e<=this.endOf(n)},d.isAfter=function(t,n){return m(t)<this.startOf(n)},d.isBefore=function(t,n){return this.endOf(n)<m(t)},d.$g=function(t,n,e){return _.u(t)?this[n]:this.set(e,t)},d.unix=function(){return Math.floor(this.valueOf()/1e3)},d.valueOf=function(){return this.$d.getTime()},d.startOf=function(t,a){var l=this,f=!!_.u(a)||a,c=_.p(t),h=function(t,n){var e=_.w(l.$u?Date.UTC(l.$y,n,t):new Date(l.$y,n,t),l);return f?e:e.endOf("day")},d=function(t,n){return _.w(l.toDate()[t].apply(l.toDate("s"),(f?[0,0,0,0]:[23,59,59,999]).slice(n)),l)},p=this.$W,y=this.$M,g=this.$D,v="set"+(this.$u?"UTC":"");switch(c){case u:return f?h(1,0):h(31,11);case o:return f?h(1,y):h(0,y+1);case i:var m=this.$locale().weekStart||0,w=(p<m?p+7:p)-m;return h(f?g-w:g+(6-w),y);case"day":case s:return d(v+"Hours",0);case r:return d(v+"Minutes",1);case e:return d(v+"Seconds",2);case n:return d(v+"Milliseconds",3);default:return this.clone()}},d.endOf=function(t){return this.startOf(t,!1)},d.$set=function(i,a){var l,f=_.p(i),c="set"+(this.$u?"UTC":""),h=((l={}).day=c+"Date",l[s]=c+"Date",l[o]=c+"Month",l[u]=c+"FullYear",l[r]=c+"Hours",l[e]=c+"Minutes",l[n]=c+"Seconds",l[t]=c+"Milliseconds",l)[f],d="day"===f?this.$D+(a-this.$W):a;if(f===o||f===u){var p=this.clone().set(s,1);p.$d[h](d),p.init(),this.$d=p.set(s,Math.min(this.$D,p.daysInMonth())).$d}else h&&this.$d[h](d);return this.init(),this},d.set=function(t,n){return this.clone().$set(t,n)},d.get=function(t){return this[_.p(t)]()},d.add=function(t,a){var s,l=this;t=Number(t);var f=_.p(a),c=function(n){var e=m(l);return _.w(e.date(e.date()+Math.round(n*t)),l)};if(f===o)return this.set(o,this.$M+t);if(f===u)return this.set(u,this.$y+t);if("day"===f)return c(1);if(f===i)return c(7);var h=((s={})[e]=6e4,s[r]=36e5,s[n]=1e3,s)[f]||1,d=this.$d.getTime()+t*h;return _.w(d,this)},d.subtract=function(t,n){return this.add(-1*t,n)},d.format=function(t){var n=this,e=this.$locale();if(!this.isValid())return e.invalidDate||l;var r=t||"YYYY-MM-DDTHH:mm:ssZ",i=_.z(this),o=this.$H,a=this.$m,u=this.$M,s=e.weekdays,f=e.months,h=e.meridiem,d=function(t,e,i,o){return t&&(t[e]||t(n,r))||i[e].slice(0,o)},p=function(t){return _.s(o%12||12,t,"0")},y=h||function(t,n,e){var r=t<12?"AM":"PM";return e?r.toLowerCase():r};return r.replace(c,function(t,r){return r||function(t){switch(t){case"YY":return String(n.$y).slice(-2);case"YYYY":return _.s(n.$y,4,"0");case"M":return u+1;case"MM":return _.s(u+1,2,"0");case"MMM":return d(e.monthsShort,u,f,3);case"MMMM":return d(f,u);case"D":return n.$D;case"DD":return _.s(n.$D,2,"0");case"d":return String(n.$W);case"dd":return d(e.weekdaysMin,n.$W,s,2);case"ddd":return d(e.weekdaysShort,n.$W,s,3);case"dddd":return s[n.$W];case"H":return String(o);case"HH":return _.s(o,2,"0");case"h":return p(1);case"hh":return p(2);case"a":return y(o,a,!0);case"A":return y(o,a,!1);case"m":return String(a);case"mm":return _.s(a,2,"0");case"s":return String(n.$s);case"ss":return _.s(n.$s,2,"0");case"SSS":return _.s(n.$ms,3,"0");case"Z":return i}return null}(t)||i.replace(":","")})},d.utcOffset=function(){return-(15*Math.round(this.$d.getTimezoneOffset()/15))},d.diff=function(t,s,l){var f,c=this,h=_.p(s),d=m(t),p=(d.utcOffset()-this.utcOffset())*6e4,y=this-d,g=function(){return _.m(c,d)};switch(h){case u:f=g()/12;break;case o:f=g();break;case a:f=g()/3;break;case i:f=(y-p)/6048e5;break;case"day":f=(y-p)/864e5;break;case r:f=y/36e5;break;case e:f=y/6e4;break;case n:f=y/1e3;break;default:f=y}return l?f:_.a(f)},d.daysInMonth=function(){return this.endOf(o).$D},d.$locale=function(){return p[this.$L]},d.locale=function(t,n){if(!t)return this.$L;var e=this.clone(),r=v(t,n,!0);return r&&(e.$L=r),e},d.clone=function(){return _.w(this.$d,this)},d.toDate=function(){return new Date(this.valueOf())},d.toJSON=function(){return this.isValid()?this.toISOString():null},d.toISOString=function(){return this.$d.toISOString()},d.toString=function(){return this.$d.toUTCString()},h}(),x=w.prototype;return m.prototype=x,[["$ms",t],["$s",n],["$m",e],["$H",r],["$W","day"],["$M",o],["$y",u],["$D",s]].forEach(function(t){x[t[1]]=function(n){return this.$g(n,t[0],t[1])}}),m.extend=function(t,n){return t.$i||(t(n,w,m),t.$i=!0),m},m.locale=v,m.isDayjs=g,m.unix=function(t){return m(1e3*t)},m.en=p[d],m.Ls=p,m.p={},m}()},71206,23685,11209,47238,25004,44307,52491,47716,t=>{"use strict";var n,e=t.i(22315),r=Object.defineProperty,i=(t,n)=>r(t,"name",{value:n,configurable:!0}),o=(t,n)=>{for(var e in n)r(t,e,{get:n[e],enumerable:!0})},a={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},u={trace:i((...t)=>{},"trace"),debug:i((...t)=>{},"debug"),info:i((...t)=>{},"info"),warn:i((...t)=>{},"warn"),error:i((...t)=>{},"error"),fatal:i((...t)=>{},"fatal")},s=i(function(t="fatal"){let n=a.fatal;"string"==typeof t?t.toLowerCase()in a&&(n=a[t]):"number"==typeof t&&(n=t),u.trace=()=>{},u.debug=()=>{},u.info=()=>{},u.warn=()=>{},u.error=()=>{},u.fatal=()=>{},n<=a.fatal&&(u.fatal=console.error?console.error.bind(console,l("FATAL"),"color: orange"):console.log.bind(console,"\x1b[35m",l("FATAL"))),n<=a.error&&(u.error=console.error?console.error.bind(console,l("ERROR"),"color: orange"):console.log.bind(console,"\x1b[31m",l("ERROR"))),n<=a.warn&&(u.warn=console.warn?console.warn.bind(console,l("WARN"),"color: orange"):console.log.bind(console,`\x1b[33m`,l("WARN"))),n<=a.info&&(u.info=console.info?console.info.bind(console,l("INFO"),"color: lightblue"):console.log.bind(console,"\x1b[34m",l("INFO"))),n<=a.debug&&(u.debug=console.debug?console.debug.bind(console,l("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1b[32m",l("DEBUG"))),n<=a.trace&&(u.trace=console.debug?console.debug.bind(console,l("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1b[32m",l("TRACE")))},"setLogLevel"),l=i(t=>{let n=(0,e.default)().format("ss.SSS");return`%c${n} : ${t} : `},"format");t.s(["__export",()=>o,"__name",()=>i,"log",()=>u,"setLogLevel",()=>s],71206);var f={value:()=>{}};function c(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+"")||t in r||/[\s.]/.test(t))throw Error("illegal type: "+t);r[t]=[]}return new h(r)}function h(t){this._=t}function d(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=f,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=e&&t.push({name:n,value:e}),t}function p(){}function y(t){return null==t?p:function(){return this.querySelector(t)}}function g(){return[]}function v(t){return null==t?g:function(){return this.querySelectorAll(t)}}function m(t){return function(){return this.matches(t)}}function _(t){return function(n){return n.matches(t)}}h.prototype=c.prototype={constructor:h,on:function(t,n){var e,r=this._,i=(t+"").trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");if(e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),t&&!r.hasOwnProperty(t))throw Error("unknown type: "+t);return{type:t,name:n}}),o=-1,a=i.length;if(arguments.length<2){for(;++o<a;)if((e=(t=i[o]).type)&&(e=function(t,n){for(var e,r=0,i=t.length;r<i;++r)if((e=t[r]).name===n)return e.value}(r[e],t.name)))return e;return}if(null!=n&&"function"!=typeof n)throw Error("invalid callback: "+n);for(;++o<a;)if(e=(t=i[o]).type)r[e]=d(r[e],t.name,n);else if(null==n)for(e in r)r[e]=d(r[e],t.name,null);return this},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new h(t)},call:function(t,n){if((e=arguments.length-2)>0)for(var e,r,i=Array(e),o=0;o<e;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw Error("unknown type: "+t);for(r=this._[t],o=0,e=r.length;o<e;++o)r[o].value.apply(n,i)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}};var w=Array.prototype.find;function x(){return this.firstElementChild}var b=Array.prototype.filter;function $(){return Array.from(this.children)}function M(t){return Array(t.length)}function A(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function k(t,n,e,r,i,o){for(var a,u=0,s=n.length,l=o.length;u<l;++u)(a=n[u])?(a.__data__=o[u],r[u]=a):e[u]=new A(t,o[u]);for(;u<s;++u)(a=n[u])&&(i[u]=a)}function S(t,n,e,r,i,o,a){var u,s,l,f=new Map,c=n.length,h=o.length,d=Array(c);for(u=0;u<c;++u)(s=n[u])&&(d[u]=l=a.call(s,s.__data__,u,n)+"",f.has(l)?i[u]=s:f.set(l,s));for(u=0;u<h;++u)l=a.call(t,o[u],u,o)+"",(s=f.get(l))?(r[u]=s,s.__data__=o[u],f.delete(l)):e[u]=new A(t,o[u]);for(u=0;u<c;++u)(s=n[u])&&f.get(d[u])===s&&(i[u]=s)}function N(t){return t.__data__}function D(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}A.prototype={constructor:A,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var E="http://www.w3.org/1999/xhtml";let O={svg:"http://www.w3.org/2000/svg",xhtml:E,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function C(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),O.hasOwnProperty(n)?{space:O[n],local:t}:t}function T(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function R(t,n){return t.style.getPropertyValue(n)||T(t).getComputedStyle(t,null).getPropertyValue(n)}function L(t){return t.trim().split(/^|\s+/)}function H(t){return t.classList||new Y(t)}function Y(t){this._node=t,this._names=L(t.getAttribute("class")||"")}function q(t,n){for(var e=H(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function P(t,n){for(var e=H(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function j(){this.textContent=""}function I(){this.innerHTML=""}function X(){this.nextSibling&&this.parentNode.appendChild(this)}function B(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function U(t){var n=C(t);return(n.local?function(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}:function(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===E&&n.documentElement.namespaceURI===E?n.createElement(t):n.createElementNS(e,t)}})(n)}function W(){return null}function V(){var t=this.parentNode;t&&t.removeChild(this)}function F(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function z(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function J(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r<o;++r)(e=n[r],t.type&&e.type!==t.type||e.name!==t.name)?n[++i]=e:this.removeEventListener(e.type,e.listener,e.options);++i?n.length=i:delete this.__on}}}function Z(t,n,e){return function(){var r,i=this.__on,o=function(t){n.call(this,t,this.__data__)};if(i){for(var a=0,u=i.length;a<u;++a)if((r=i[a]).type===t.type&&r.name===t.name){this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=o,r.options=e),r.value=n;return}}this.addEventListener(t.type,o,e),r={type:t.type,name:t.name,value:n,listener:o,options:e},i?i.push(r):this.__on=[r]}}function K(t,n,e){var r=T(t),i=r.CustomEvent;"function"==typeof i?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}Y.prototype={add:function(t){0>this._names.indexOf(t)&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var Q=[null];function G(t,n){this._groups=t,this._parents=n}function tt(){return new G([[document.documentElement]],Q)}function tn(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function te(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function tr(){}G.prototype=tt.prototype={constructor:G,select:function(t){"function"!=typeof t&&(t=y(t));for(var n=this._groups,e=n.length,r=Array(e),i=0;i<e;++i)for(var o,a,u=n[i],s=u.length,l=r[i]=Array(s),f=0;f<s;++f)(o=u[f])&&(a=t.call(o,o.__data__,f,u))&&("__data__"in o&&(a.__data__=o.__data__),l[f]=a);return new G(r,this._parents)},selectAll:function(t){if("function"==typeof t){var n;n=t,t=function(){var t;return t=n.apply(this,arguments),null==t?[]:Array.isArray(t)?t:Array.from(t)}}else t=v(t);for(var e=this._groups,r=e.length,i=[],o=[],a=0;a<r;++a)for(var u,s=e[a],l=s.length,f=0;f<l;++f)(u=s[f])&&(i.push(t.call(u,u.__data__,f,s)),o.push(u));return new G(i,o)},selectChild:function(t){var n;return this.select(null==t?x:(n="function"==typeof t?t:_(t),function(){return w.call(this.children,n)}))},selectChildren:function(t){var n;return this.selectAll(null==t?$:(n="function"==typeof t?t:_(t),function(){return b.call(this.children,n)}))},filter:function(t){"function"!=typeof t&&(t=m(t));for(var n=this._groups,e=n.length,r=Array(e),i=0;i<e;++i)for(var o,a=n[i],u=a.length,s=r[i]=[],l=0;l<u;++l)(o=a[l])&&t.call(o,o.__data__,l,a)&&s.push(o);return new G(r,this._parents)},data:function(t,n){if(!arguments.length)return Array.from(this,N);var e=n?S:k,r=this._parents,i=this._groups;"function"!=typeof t&&(m=t,t=function(){return m});for(var o=i.length,a=Array(o),u=Array(o),s=Array(o),l=0;l<o;++l){var f=r[l],c=i[l],h=c.length,d="object"==typeof(v=t.call(f,f&&f.__data__,l,r))&&"length"in v?v:Array.from(v),p=d.length,y=u[l]=Array(p),g=a[l]=Array(p);e(f,c,y,g,s[l]=Array(h),d,n);for(var v,m,_,w,x=0,b=0;x<p;++x)if(_=y[x]){for(x>=b&&(b=x+1);!(w=g[b])&&++b<p;);_._next=w||null}}return(a=new G(a,r))._enter=u,a._exit=s,a},enter:function(){return new G(this._enter||this._groups.map(M),this._parents)},exit:function(){return new G(this._exit||this._groups.map(M),this._parents)},join:function(t,n,e){var r=this.enter(),i=this,o=this.exit();return"function"==typeof t?(r=t(r))&&(r=r.selection()):r=r.append(t+""),null!=n&&(i=n(i))&&(i=i.selection()),null==e?o.remove():e(o),r&&i?r.merge(i).order():i},merge:function(t){for(var n=t.selection?t.selection():t,e=this._groups,r=n._groups,i=e.length,o=r.length,a=Math.min(i,o),u=Array(i),s=0;s<a;++s)for(var l,f=e[s],c=r[s],h=f.length,d=u[s]=Array(h),p=0;p<h;++p)(l=f[p]||c[p])&&(d[p]=l);for(;s<i;++s)u[s]=e[s];return new G(u,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,i=t[n],o=i.length-1,a=i[o];--o>=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=D);for(var e=this._groups,r=e.length,i=Array(r),o=0;o<r;++o){for(var a,u=e[o],s=u.length,l=i[o]=Array(s),f=0;f<s;++f)(a=u[f])&&(l[f]=a);l.sort(n)}return new G(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}return null},size:function(){let t=0;for(let n of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i,o=n[e],a=0,u=o.length;a<u;++a)(i=o[a])&&t.call(i,i.__data__,a,o);return this},attr:function(t,n){var e=C(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((null==n?e.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}}:"function"==typeof n?e.local?function(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}:function(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}:e.local?function(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}:function(t,n){return function(){this.setAttribute(t,n)}})(e,n))},style:function(t,n,e){return arguments.length>1?this.each((null==n?function(t){return function(){this.style.removeProperty(t)}}:"function"==typeof n?function(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}:function(t,n,e){return function(){this.style.setProperty(t,n,e)}})(t,n,null==e?"":e)):R(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?function(t){return function(){delete this[t]}}:"function"==typeof n?function(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}:function(t,n){return function(){this[t]=n}})(t,n)):this.node()[t]},classed:function(t,n){var e=L(t+"");if(arguments.length<2){for(var r=H(this.node()),i=-1,o=e.length;++i<o;)if(!r.contains(e[i]))return!1;return!0}return this.each(("function"==typeof n?function(t,n){return function(){(n.apply(this,arguments)?q:P)(this,t)}}:n?function(t){return function(){q(this,t)}}:function(t){return function(){P(this,t)}})(e,n))},text:function(t){return arguments.length?this.each(null==t?j:("function"==typeof t?function(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}}:function(t){return function(){this.textContent=t}})(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?I:("function"==typeof t?function(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}}:function(t){return function(){this.innerHTML=t}})(t)):this.node().innerHTML},raise:function(){return this.each(X)},lower:function(){return this.each(B)},append:function(t){var n="function"==typeof t?t:U(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})},insert:function(t,n){var e="function"==typeof t?t:U(t),r=null==n?W:"function"==typeof n?n:y(n);return this.select(function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)})},remove:function(){return this.each(V)},clone:function(t){return this.select(t?z:F)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,n,e){var r,i,o=(t+"").trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}}),a=o.length;if(arguments.length<2){var u=this.node().__on;if(u){for(var s,l=0,f=u.length;l<f;++l)for(r=0,s=u[l];r<a;++r)if((i=o[r]).type===s.type&&i.name===s.name)return s.value}return}for(r=0,u=n?Z:J;r<a;++r)this.each(u(o[r],n,e));return this},dispatch:function(t,n){return this.each(("function"==typeof n?function(t,n){return function(){return K(this,t,n.apply(this,arguments))}}:function(t,n){return function(){return K(this,t,n)}})(t,n))},[Symbol.iterator]:function*(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r,i=t[n],o=0,a=i.length;o<a;++o)(r=i[o])&&(yield r)}},t.s(["select",0,function(t){return"string"==typeof t?new G([[document.querySelector(t)]],[document.documentElement]):new G([[t]],Q)}],23685),t.s(["default",0,tn,"extend",()=>te],11209);var ti="\\s*([+-]?\\d+)\\s*",to="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ta="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",tu=/^#([0-9a-f]{3,8})$/,ts=RegExp(`^rgb\\(${ti},${ti},${ti}\\)$`),tl=RegExp(`^rgb\\(${ta},${ta},${ta}\\)$`),tf=RegExp(`^rgba\\(${ti},${ti},${ti},${to}\\)$`),tc=RegExp(`^rgba\\(${ta},${ta},${ta},${to}\\)$`),th=RegExp(`^hsl\\(${to},${ta},${ta}\\)$`),td=RegExp(`^hsla\\(${to},${ta},${ta},${to}\\)$`),tp={aliceblue:0xf0f8ff,antiquewhite:0xfaebd7,aqua:65535,aquamarine:8388564,azure:0xf0ffff,beige:0xf5f5dc,bisque:0xffe4c4,black:0,blanchedalmond:0xffebcd,blue:255,blueviolet:9055202,brown:0xa52a2a,burlywood:0xdeb887,cadetblue:6266528,chartreuse:8388352,chocolate:0xd2691e,coral:0xff7f50,cornflowerblue:6591981,cornsilk:0xfff8dc,crimson:0xdc143c,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:0xb8860b,darkgray:0xa9a9a9,darkgreen:25600,darkgrey:0xa9a9a9,darkkhaki:0xbdb76b,darkmagenta:9109643,darkolivegreen:5597999,darkorange:0xff8c00,darkorchid:0x9932cc,darkred:9109504,darksalmon:0xe9967a,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:0xff1493,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:0xb22222,floralwhite:0xfffaf0,forestgreen:2263842,fuchsia:0xff00ff,gainsboro:0xdcdcdc,ghostwhite:0xf8f8ff,gold:0xffd700,goldenrod:0xdaa520,gray:8421504,green:32768,greenyellow:0xadff2f,grey:8421504,honeydew:0xf0fff0,hotpink:0xff69b4,indianred:0xcd5c5c,indigo:4915330,ivory:0xfffff0,khaki:0xf0e68c,lavender:0xe6e6fa,lavenderblush:0xfff0f5,lawngreen:8190976,lemonchiffon:0xfffacd,lightblue:0xadd8e6,lightcoral:0xf08080,lightcyan:0xe0ffff,lightgoldenrodyellow:0xfafad2,lightgray:0xd3d3d3,lightgreen:9498256,lightgrey:0xd3d3d3,lightpink:0xffb6c1,lightsalmon:0xffa07a,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:0xb0c4de,lightyellow:0xffffe0,lime:65280,limegreen:3329330,linen:0xfaf0e6,magenta:0xff00ff,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:0xba55d3,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:0xc71585,midnightblue:1644912,mintcream:0xf5fffa,mistyrose:0xffe4e1,moccasin:0xffe4b5,navajowhite:0xffdead,navy:128,oldlace:0xfdf5e6,olive:8421376,olivedrab:7048739,orange:0xffa500,orangered:0xff4500,orchid:0xda70d6,palegoldenrod:0xeee8aa,palegreen:0x98fb98,paleturquoise:0xafeeee,palevioletred:0xdb7093,papayawhip:0xffefd5,peachpuff:0xffdab9,peru:0xcd853f,pink:0xffc0cb,plum:0xdda0dd,powderblue:0xb0e0e6,purple:8388736,rebeccapurple:6697881,red:0xff0000,rosybrown:0xbc8f8f,royalblue:4286945,saddlebrown:9127187,salmon:0xfa8072,sandybrown:0xf4a460,seagreen:3050327,seashell:0xfff5ee,sienna:0xa0522d,silver:0xc0c0c0,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:0xfffafa,springgreen:65407,steelblue:4620980,tan:0xd2b48c,teal:32896,thistle:0xd8bfd8,tomato:0xff6347,turquoise:4251856,violet:0xee82ee,wheat:0xf5deb3,white:0xffffff,whitesmoke:0xf5f5f5,yellow:0xffff00,yellowgreen:0x9acd32};function ty(){return this.rgb().formatHex()}function tg(){return this.rgb().formatRgb()}function tv(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=tu.exec(t))?(e=n[1].length,n=parseInt(n[1],16),6===e?tm(n):3===e?new tb(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):8===e?t_(n>>24&255,n>>16&255,n>>8&255,(255&n)/255):4===e?t_(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|240&n,((15&n)<<4|15&n)/255):null):(n=ts.exec(t))?new tb(n[1],n[2],n[3],1):(n=tl.exec(t))?new tb(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=tf.exec(t))?t_(n[1],n[2],n[3],n[4]):(n=tc.exec(t))?t_(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=th.exec(t))?tN(n[1],n[2]/100,n[3]/100,1):(n=td.exec(t))?tN(n[1],n[2]/100,n[3]/100,n[4]):tp.hasOwnProperty(t)?tm(tp[t]):"transparent"===t?new tb(NaN,NaN,NaN,0):null}function tm(t){return new tb(t>>16&255,t>>8&255,255&t,1)}function t_(t,n,e,r){return r<=0&&(t=n=e=NaN),new tb(t,n,e,r)}function tw(t){return(t instanceof tr||(t=tv(t)),t)?new tb((t=t.rgb()).r,t.g,t.b,t.opacity):new tb}function tx(t,n,e,r){return 1==arguments.length?tw(t):new tb(t,n,e,null==r?1:r)}function tb(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function t$(){return`#${tS(this.r)}${tS(this.g)}${tS(this.b)}`}function tM(){let t=tA(this.opacity);return`${1===t?"rgb(":"rgba("}${tk(this.r)}, ${tk(this.g)}, ${tk(this.b)}${1===t?")":`, ${t})`}`}function tA(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function tk(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function tS(t){return((t=tk(t))<16?"0":"")+t.toString(16)}function tN(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new tE(t,n,e,r)}function tD(t){if(t instanceof tE)return new tE(t.h,t.s,t.l,t.opacity);if(t instanceof tr||(t=tv(t)),!t)return new tE;if(t instanceof tE)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),a=NaN,u=o-i,s=(o+i)/2;return u?(a=n===o?(e-r)/u+(e<r)*6:e===o?(r-n)/u+2:(n-e)/u+4,u/=s<.5?o+i:2-o-i,a*=60):u=s>0&&s<1?0:a,new tE(a,u,s,t.opacity)}function tE(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function tO(t){return(t=(t||0)%360)<0?t+360:t}function tC(t){return Math.max(0,Math.min(1,t||0))}function tT(t,n,e){return(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)*255}function tR(t,n,e,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*n+(4-6*o+3*a)*e+(1+3*t+3*o-3*a)*r+a*i)/6}tn(tr,tv,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:ty,formatHex:ty,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return tD(this).formatHsl()},formatRgb:tg,toString:tg}),tn(tb,tx,te(tr,{brighter(t){return t=null==t?1.4285714285714286:Math.pow(1.4285714285714286,t),new tb(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new tb(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new tb(tk(this.r),tk(this.g),tk(this.b),tA(this.opacity))},displayable(){return -.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:t$,formatHex:t$,formatHex8:function(){return`#${tS(this.r)}${tS(this.g)}${tS(this.b)}${tS((isNaN(this.opacity)?1:this.opacity)*255)}`},formatRgb:tM,toString:tM})),tn(tE,function(t,n,e,r){return 1==arguments.length?tD(t):new tE(t,n,e,null==r?1:r)},te(tr,{brighter(t){return t=null==t?1.4285714285714286:Math.pow(1.4285714285714286,t),new tE(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new tE(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new tb(tT(t>=240?t-240:t+120,i,r),tT(t,i,r),tT(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new tE(tO(this.h),tC(this.s),tC(this.l),tA(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let t=tA(this.opacity);return`${1===t?"hsl(":"hsla("}${tO(this.h)}, ${100*tC(this.s)}%, ${100*tC(this.l)}%${1===t?")":`, ${t})`}`}})),t.s(["Color",()=>tr,"Rgb",()=>tb,"default",()=>tv,"rgb",()=>tx,"rgbConvert",()=>tw],47238);let tL=t=>()=>t;function tH(t,n){return function(e){return t+e*n}}function tY(t,n){var e=n-t;return e?tH(t,e>180||e<-180?e-360*Math.round(e/360):e):tL(isNaN(t)?n:t)}function tq(t){return 1==(t*=1)?tP:function(n,e){var r,i,o;return e-n?(r=n,i=e,r=Math.pow(r,o=t),i=Math.pow(i,o)-r,o=1/o,function(t){return Math.pow(r+t*i,o)}):tL(isNaN(n)?e:n)}}function tP(t,n){var e=n-t;return e?tH(t,e):tL(isNaN(t)?n:t)}t.s(["default",()=>tP,"gamma",()=>tq,"hue",()=>tY],25004);let tj=function t(n){var e=tq(n);function r(t,n){var r=e((t=tx(t)).r,(n=tx(n)).r),i=e(t.g,n.g),o=e(t.b,n.b),a=tP(t.opacity,n.opacity);return function(n){return t.r=r(n),t.g=i(n),t.b=o(n),t.opacity=a(n),t+""}}return r.gamma=t,r}(1);function tI(t){return function(n){var e,r,i=n.length,o=Array(i),a=Array(i),u=Array(i);for(e=0;e<i;++e)r=tx(n[e]),o[e]=r.r||0,a[e]=r.g||0,u[e]=r.b||0;return o=t(o),a=t(a),u=t(u),r.opacity=1,function(t){return r.r=o(t),r.g=a(t),r.b=u(t),r+""}}}function tX(t,n){return t*=1,n*=1,function(e){return t*(1-e)+n*e}}tI(function(t){var n=t.length-1;return function(e){var r=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,u=r<n-1?t[r+2]:2*o-i;return tR((e-r/n)*n,a,i,o,u)}}),tI(function(t){var n=t.length;return function(e){var r=Math.floor(((e%=1)<0?++e:e)*n),i=t[(r+n-1)%n],o=t[r%n],a=t[(r+1)%n],u=t[(r+2)%n];return tR((e-r/n)*n,i,o,a,u)}});var tB=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,tU=RegExp(tB.source,"g");function tW(t,n){var e,r,i,o,a,u=tB.lastIndex=tU.lastIndex=0,s=-1,l=[],f=[];for(t+="",n+="";(i=tB.exec(t))&&(o=tU.exec(n));)(a=o.index)>u&&(a=n.slice(u,a),l[s]?l[s]+=a:l[++s]=a),(i=i[0])===(o=o[0])?l[s]?l[s]+=o:l[++s]=o:(l[++s]=null,f.push({i:s,x:tX(i,o)})),u=tU.lastIndex;return u<n.length&&(a=n.slice(u),l[s]?l[s]+=a:l[++s]=a),l.length<2?f[0]?(e=f[0].x,function(t){return e(t)+""}):(r=n,function(){return r}):(n=f.length,function(t){for(var e,r=0;r<n;++r)l[(e=f[r]).i]=e.x(t);return l.join("")})}t.s(["interpolate",0,function t(n,e){var r,i,o=typeof e;return null==e||"boolean"===o?tL(e):("number"===o?tX:"string"===o?(i=tv(e))?(e=i,tj):tW:e instanceof tv?tj:e instanceof Date?function(t,n){var e=new Date;return t*=1,n*=1,function(r){return e.setTime(t*(1-r)+n*r),e}}:!ArrayBuffer.isView(r=e)||r instanceof DataView?Array.isArray(e)?function(n,e){var r,i=e?e.length:0,o=n?Math.min(i,n.length):0,a=Array(o),u=Array(i);for(r=0;r<o;++r)a[r]=t(n[r],e[r]);for(;r<i;++r)u[r]=e[r];return function(t){for(r=0;r<o;++r)u[r]=a[r](t);return u}}:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?function(n,e){var r,i={},o={};for(r in(null===n||"object"!=typeof n)&&(n={}),(null===e||"object"!=typeof e)&&(e={}),e)r in n?i[r]=t(n[r],e[r]):o[r]=e[r];return function(t){for(r in i)o[r]=i[r](t);return o}}:tX:function(t,n){n||(n=[]);var e,r=t?Math.min(n.length,t.length):0,i=n.slice();return function(o){for(e=0;e<r;++e)i[e]=t[e]*(1-o)+n[e]*o;return i}})(n,e)}],44307);var tV,tF,tz=0,tJ=0,tZ=0,tK=0,tQ=0,tG=0,t0="object"==typeof performance&&performance.now?performance:Date,t1="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function t2(){return tQ||(t1(t5),tQ=t0.now()+tG)}function t5(){tQ=0}function t3(){this._call=this._time=this._next=null}function t4(t,n,e){var r=new t3;return r.restart(t,n,e),r}function t8(){tQ=(tK=t0.now())+tG,tz=tJ=0;try{t2(),++tz;for(var t,n=tV;n;)(t=tQ-n._time)>=0&&n._call.call(void 0,t),n=n._next;--tz}finally{tz=0,function(){for(var t,n,e=tV,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:tV=n);tF=t,t9(r)}(),tQ=0}}function t6(){var t=t0.now(),n=t-tK;n>1e3&&(tG-=n,tK=t)}function t9(t){!tz&&(tJ&&(tJ=clearTimeout(tJ)),t-tQ>24?(t<1/0&&(tJ=setTimeout(t8,t-t0.now()-tG)),tZ&&(tZ=clearInterval(tZ))):(tZ||(tK=t0.now(),tZ=setInterval(t6,1e3)),tz=1,t1(t8)))}function t7(t,n,e){var r=new t3;return n=null==n?0:+n,r.restart(e=>{r.stop(),t(e+n)},n,e),r}t3.prototype=t4.prototype={constructor:t3,restart:function(t,n,e){if("function"!=typeof t)throw TypeError("callback is not a function");e=(null==e?t2():+e)+(null==n?0:+n),this._next||tF===this||(tF?tF._next=this:tV=this,tF=this),this._call=t,this._time=e,t9()},stop:function(){this._call&&(this._call=null,this._time=1/0,t9())}};var nt=c("start","end","cancel","interrupt"),nn=[];function ne(t,n,e,r,i,o){var a=t.__transition;if(a){if(e in a)return}else t.__transition={};!function(t,n,e){var r,i=t.__transition;function o(s){var l,f,c,h;if(1!==e.state)return u();for(l in i)if((h=i[l]).name===e.name){if(3===h.state)return t7(o);4===h.state?(h.state=6,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete i[l]):+l<n&&(h.state=6,h.timer.stop(),h.on.call("cancel",t,t.__data__,h.index,h.group),delete i[l])}if(t7(function(){3===e.state&&(e.state=4,e.timer.restart(a,e.delay,e.time),a(s))}),e.state=2,e.on.call("start",t,t.__data__,e.index,e.group),2===e.state){for(l=0,e.state=3,r=Array(c=e.tween.length),f=-1;l<c;++l)(h=e.tween[l].value.call(t,t.__data__,e.index,e.group))&&(r[++f]=h);r.length=f+1}}function a(n){for(var i=n<e.duration?e.ease.call(null,n/e.duration):(e.timer.restart(u),e.state=5,1),o=-1,a=r.length;++o<a;)r[o].call(t,i);5===e.state&&(e.on.call("end",t,t.__data__,e.index,e.group),u())}function u(){for(var r in e.state=6,e.timer.stop(),delete i[n],i)return;delete t.__transition}i[n]=e,e.timer=t4(function(t){e.state=1,e.timer.restart(o,e.delay,e.time),e.delay<=t&&o(t-e.delay)},0,e.time)}(t,e,{name:n,index:r,group:i,on:nt,tween:nn,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:0})}function nr(t,n){var e=no(t,n);if(e.state>0)throw Error("too late; already scheduled");return e}function ni(t,n){var e=no(t,n);if(e.state>3)throw Error("too late; already running");return e}function no(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw Error("transition not found");return e}var na=180/Math.PI,nu={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function ns(t,n,e,r,i,o){var a,u,s;return(a=Math.sqrt(t*t+n*n))&&(t/=a,n/=a),(s=t*e+n*r)&&(e-=t*s,r-=n*s),(u=Math.sqrt(e*e+r*r))&&(e/=u,r/=u,s/=u),t*r<n*e&&(t=-t,n=-n,s=-s,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(n,t)*na,skewX:Math.atan(s)*na,scaleX:a,scaleY:u}}function nl(t,n,e,r){function i(t){return t.length?t.pop()+" ":""}return function(o,a){var u,s,l,f,c=[],h=[];return o=t(o),a=t(a),!function(t,r,i,o,a,u){if(t!==i||r!==o){var s=a.push("translate(",null,n,null,e);u.push({i:s-4,x:tX(t,i)},{i:s-2,x:tX(r,o)})}else(i||o)&&a.push("translate("+i+n+o+e)}(o.translateX,o.translateY,a.translateX,a.translateY,c,h),u=o.rotate,s=a.rotate,u!==s?(u-s>180?s+=360:s-u>180&&(u+=360),h.push({i:c.push(i(c)+"rotate(",null,r)-2,x:tX(u,s)})):s&&c.push(i(c)+"rotate("+s+r),l=o.skewX,f=a.skewX,l!==f?h.push({i:c.push(i(c)+"skewX(",null,r)-2,x:tX(l,f)}):f&&c.push(i(c)+"skewX("+f+r),!function(t,n,e,r,o,a){if(t!==e||n!==r){var u=o.push(i(o)+"scale(",null,",",null,")");a.push({i:u-4,x:tX(t,e)},{i:u-2,x:tX(n,r)})}else(1!==e||1!==r)&&o.push(i(o)+"scale("+e+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,c,h),o=a=null,function(t){for(var n,e=-1,r=h.length;++e<r;)c[(n=h[e]).i]=n.x(t);return c.join("")}}}var nf=nl(function(t){let n=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return n.isIdentity?nu:ns(n.a,n.b,n.c,n.d,n.e,n.f)},"px, ","px)","deg)"),nc=nl(function(t){return null==t?nu:(n||(n=document.createElementNS("http://www.w3.org/2000/svg","g")),n.setAttribute("transform",t),t=n.transform.baseVal.consolidate())?ns((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):nu},", ",")",")");function nh(t,n,e){var r=t._id;return t.each(function(){var t=ni(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)}),function(t){return no(t,r).value[n]}}function nd(t,n){var e;return("number"==typeof n?tX:n instanceof tv?tj:(e=tv(n))?(n=e,tj):tW)(t,n)}t.s(["interpolateNumber",0,tX],52491);var np=tt.prototype.constructor;function ny(t){return function(){this.style.removeProperty(t)}}var ng=0;function nv(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}var nm=tt.prototype;nv.prototype=(function(t){return tt().transition(t)}).prototype={constructor:nv,select:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=y(t));for(var r=this._groups,i=r.length,o=Array(i),a=0;a<i;++a)for(var u,s,l=r[a],f=l.length,c=o[a]=Array(f),h=0;h<f;++h)(u=l[h])&&(s=t.call(u,u.__data__,h,l))&&("__data__"in u&&(s.__data__=u.__data__),c[h]=s,ne(c[h],n,e,h,c,no(u,e)));return new nv(o,this._parents,n,e)},selectAll:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=v(t));for(var r=this._groups,i=r.length,o=[],a=[],u=0;u<i;++u)for(var s,l=r[u],f=l.length,c=0;c<f;++c)if(s=l[c]){for(var h,d=t.call(s,s.__data__,c,l),p=no(s,e),y=0,g=d.length;y<g;++y)(h=d[y])&&ne(h,n,e,y,d,p);o.push(d),a.push(s)}return new nv(o,a,n,e)},selectChild:nm.selectChild,selectChildren:nm.selectChildren,filter:function(t){"function"!=typeof t&&(t=m(t));for(var n=this._groups,e=n.length,r=Array(e),i=0;i<e;++i)for(var o,a=n[i],u=a.length,s=r[i]=[],l=0;l<u;++l)(o=a[l])&&t.call(o,o.__data__,l,a)&&s.push(o);return new nv(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw Error();for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),a=Array(r),u=0;u<o;++u)for(var s,l=n[u],f=e[u],c=l.length,h=a[u]=Array(c),d=0;d<c;++d)(s=l[d]||f[d])&&(h[d]=s);for(;u<r;++u)a[u]=n[u];return new nv(a,this._parents,this._name,this._id)},selection:function(){return new np(this._groups,this._parents)},transition:function(){for(var t=this._name,n=this._id,e=++ng,r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],s=u.length,l=0;l<s;++l)if(a=u[l]){var f=no(a,n);ne(a,t,e,l,u,{time:f.time+f.delay+f.duration,delay:0,duration:f.duration,ease:f.ease})}return new nv(r,this._parents,t,e)},call:nm.call,nodes:nm.nodes,node:nm.node,size:nm.size,empty:nm.empty,each:nm.each,on:function(t,n){var e,r,i,o,a,u,s=this._id;return arguments.length<2?no(this.node(),s).on.on(t):this.each((e=s,r=t,i=n,u=(r+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||"start"===t})?nr:ni,function(){var t=u(this,e),n=t.on;n!==o&&(a=(o=n).copy()).on(r,i),t.on=a}))},attr:function(t,n){var e=C(t),r="transform"===e?nc:nd;return this.attrTween(t,"function"==typeof n?(e.local?function(t,n,e){var r,i,o;return function(){var a,u,s=e(this);return null==s?void this.removeAttributeNS(t.space,t.local):(a=this.getAttributeNS(t.space,t.local))===(u=s+"")?null:a===r&&u===i?o:(i=u,o=n(r=a,s))}}:function(t,n,e){var r,i,o;return function(){var a,u,s=e(this);return null==s?void this.removeAttribute(t):(a=this.getAttribute(t))===(u=s+"")?null:a===r&&u===i?o:(i=u,o=n(r=a,s))}})(e,r,nh(this,"attr."+t,n)):null==n?(e.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}})(e):(e.local?function(t,n,e){var r,i,o=e+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===o?null:a===r?i:i=n(r=a,e)}}:function(t,n,e){var r,i,o=e+"";return function(){var a=this.getAttribute(t);return a===o?null:a===r?i:i=n(r=a,e)}})(e,r,n))},attrTween:function(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!=typeof n)throw Error();var r=C(t);return this.tween(e,(r.local?function(t,n){var e,r;function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&function(n){this.setAttributeNS(t.space,t.local,i.call(this,n))}),e}return i._value=n,i}:function(t,n){var e,r;function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&function(n){this.setAttribute(t,i.call(this,n))}),e}return i._value=n,i})(r,n))},style:function(t,n,e){var r,i,o,a,u,s,l,f,c,h,d,p,y,g,v,m,_,w,x,b,$,M="transform"==(t+="")?nf:nd;return null==n?this.styleTween(t,(r=t,function(){var t=R(this,r),n=(this.style.removeProperty(r),R(this,r));return t===n?null:t===i&&n===o?a:a=M(i=t,o=n)})).on("end.style."+t,ny(t)):"function"==typeof n?this.styleTween(t,(u=t,s=nh(this,"style."+t,n),function(){var t=R(this,u),n=s(this),e=n+"";return null==n&&(this.style.removeProperty(u),e=n=R(this,u)),t===e?null:t===l&&e===f?c:(f=e,c=M(l=t,n))})).each((h=this._id,_="end."+(m="style."+(d=t)),function(){var t=ni(this,h),n=t.on,e=null==t.value[m]?v||(v=ny(d)):void 0;(n!==p||g!==e)&&(y=(p=n).copy()).on(_,g=e),t.on=y})):this.styleTween(t,(w=t,$=n+"",function(){var t=R(this,w);return t===$?null:t===x?b:b=M(x=t,n)}),e).on("end.style."+t,null)},styleTween:function(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!=typeof n)throw Error();return this.tween(r,function(t,n,e){var r,i;function o(){var o=n.apply(this,arguments);return o!==i&&(r=(i=o)&&function(n){this.style.setProperty(t,o.call(this,n),e)}),r}return o._value=n,o}(t,n,null==e?"":e))},text:function(t){var n,e;return this.tween("text","function"==typeof t?(n=nh(this,"text",t),function(){var t=n(this);this.textContent=null==t?"":t}):(e=null==t?"":t+"",function(){this.textContent=e}))},textTween:function(t){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw Error();return this.tween(n,function(t){var n,e;function r(){var r=t.apply(this,arguments);return r!==e&&(n=(e=r)&&function(t){this.textContent=r.call(this,t)}),n}return r._value=t,r}(t))},remove:function(){var t;return this.on("end.remove",(t=this._id,function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}))},tween:function(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,i=no(this.node(),e).tween,o=0,a=i.length;o<a;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==n?function(t,n){var e,r;return function(){var i=ni(this,t),o=i.tween;if(o!==e){r=e=o;for(var a=0,u=r.length;a<u;++a)if(r[a].name===n){(r=r.slice()).splice(a,1);break}}i.tween=r}}:function(t,n,e){var r,i;if("function"!=typeof e)throw Error();return function(){var o=ni(this,t),a=o.tween;if(a!==r){i=(r=a).slice();for(var u={name:n,value:e},s=0,l=i.length;s<l;++s)if(i[s].name===n){i[s]=u;break}s===l&&i.push(u)}o.tween=i}})(e,t,n))},delay:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?function(t,n){return function(){nr(this,t).delay=+n.apply(this,arguments)}}:function(t,n){return n*=1,function(){nr(this,t).delay=n}})(n,t)):no(this.node(),n).delay},duration:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?function(t,n){return function(){ni(this,t).duration=+n.apply(this,arguments)}}:function(t,n){return n*=1,function(){ni(this,t).duration=n}})(n,t)):no(this.node(),n).duration},ease:function(t){var n=this._id;return arguments.length?this.each(function(t,n){if("function"!=typeof n)throw Error();return function(){ni(this,t).ease=n}}(n,t)):no(this.node(),n).ease},easeVarying:function(t){var n;if("function"!=typeof t)throw Error();return this.each((n=this._id,function(){var e=t.apply(this,arguments);if("function"!=typeof e)throw Error();ni(this,n).ease=e}))},end:function(){var t,n,e=this,r=e._id,i=e.size();return new Promise(function(o,a){var u={value:a},s={value:function(){0==--i&&o()}};e.each(function(){var e=ni(this,r),i=e.on;i!==t&&((n=(t=i).copy())._.cancel.push(u),n._.interrupt.push(u),n._.end.push(s)),e.on=n}),0===i&&o()})},[Symbol.iterator]:nm[Symbol.iterator]};var n_={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};tt.prototype.interrupt=function(t){return this.each(function(){!function(t,n){var e,r,i,o=t.__transition,a=!0;if(o){for(i in n=null==n?null:n+"",o){if((e=o[i]).name!==n){a=!1;continue}r=e.state>2&&e.state<5,e.state=6,e.timer.stop(),e.on.call(r?"interrupt":"cancel",t,t.__data__,e.index,e.group),delete o[i]}a&&delete t.__transition}}(this,t)})},tt.prototype.transition=function(t){var n,e;t instanceof nv?(n=t._id,t=t._name):(n=++ng,(e=n_).time=t2(),t=null==t?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],s=u.length,l=0;l<s;++l)(a=u[l])&&ne(a,t,n,l,u,e||function(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))throw Error(`transition ${n} not found`);return e}(a,n));return new nv(r,this._parents,t,n)};let{abs:nw,max:nx,min:nb}=Math;function n$(t){return{type:t}}function nM(t){return((t=Math.exp(t))+1/t)/2}function nA(t,n,e){this.k=t,this.x=n,this.y=e}["w","e"].map(n$),["n","s"].map(n$),["n","w","e","s","nw","ne","sw","se"].map(n$),!function t(n,e,r){function i(t,i){var o,a,u=t[0],s=t[1],l=t[2],f=i[0],c=i[1],h=i[2],d=f-u,p=c-s,y=d*d+p*p;if(y<1e-12)a=Math.log(h/l)/n,o=function(t){return[u+t*d,s+t*p,l*Math.exp(n*t*a)]};else{var g=Math.sqrt(y),v=(h*h-l*l+r*y)/(2*l*e*g),m=(h*h-l*l-r*y)/(2*h*e*g),_=Math.log(Math.sqrt(v*v+1)-v);a=(Math.log(Math.sqrt(m*m+1)-m)-_)/n,o=function(t){var r,i,o=t*a,f=nM(_),c=l/(e*g)*(f*(((r=Math.exp(2*(r=n*o+_)))-1)/(r+1))-((i=Math.exp(i=_))-1/i)/2);return[u+c*d,s+c*p,l*f/nM(n*o+_)]}}return o.duration=1e3*a*n/Math.SQRT2,o}return i.rho=function(n){var e=Math.max(.001,+n),r=e*e;return t(e,r,r*r)},i}(Math.SQRT2,2,4),nA.prototype={constructor:nA,scale:function(t){return 1===t?this:new nA(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new nA(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};new nA(1,0,0);nA.prototype,t.s([],47716)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,65482,t=>{"use strict";var e=t.i(80926),a=t.i(71206),r=t.i(39941),s=(0,a.__name)((t,e)=>{let a=t.append("rect");if(a.attr("x",e.x),a.attr("y",e.y),a.attr("fill",e.fill),a.attr("stroke",e.stroke),a.attr("width",e.width),a.attr("height",e.height),e.name&&a.attr("name",e.name),e.rx&&a.attr("rx",e.rx),e.ry&&a.attr("ry",e.ry),void 0!==e.attrs)for(let t in e.attrs)a.attr(t,e.attrs[t]);return e.class&&a.attr("class",e.class),a},"drawRect"),l=(0,a.__name)((t,e)=>{s(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"}).lower()},"drawBackgroundRect"),n=(0,a.__name)((t,a)=>{let r=a.text.replace(e.lineBreakRegex," "),s=t.append("text");s.attr("x",a.x),s.attr("y",a.y),s.attr("class","legend"),s.style("text-anchor",a.anchor),a.class&&s.attr("class",a.class);let l=s.append("tspan");return l.attr("x",a.x+2*a.textMargin),l.text(r),s},"drawText"),i=(0,a.__name)((t,e,a,s)=>{let l=t.append("image");l.attr("x",e),l.attr("y",a);let n=(0,r.sanitizeUrl)(s);l.attr("xlink:href",n)},"drawImage"),d=(0,a.__name)((t,e,a,s)=>{let l=t.append("use");l.attr("x",e),l.attr("y",a);let n=(0,r.sanitizeUrl)(s);l.attr("xlink:href",`#${n}`)},"drawEmbeddedImage"),x=(0,a.__name)(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),c=(0,a.__name)(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj");t.s(["drawBackgroundRect",()=>l,"drawEmbeddedImage",()=>d,"drawImage",()=>i,"drawRect",()=>s,"drawText",()=>n,"getNoteRect",()=>x,"getTextObj",()=>c])}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,89725,e=>{"use strict";var o=e.i(8838);e.i(86780),e.s([],50560),e.i(50560),e.s(["InfoModule",()=>o.InfoModule,"createInfoServices",()=>o.createInfoServices],89725)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,47244,79282,56176,54201,35287,59110,64929,66762,t=>{"use strict";var e,r=t.g&&t.g.Object===Object&&t.g;t.s(["default",0,r],79282);var n="object"==typeof self&&self&&self.Object===Object&&self,u=r||n||Function("return this")();t.s(["default",0,u],56176);var a=u.Symbol;t.s(["default",0,a],54201);var i=Object.prototype,o=i.hasOwnProperty,f=i.toString,l=a?a.toStringTag:void 0;let s=function(t){var e=o.call(t,l),r=t[l];try{t[l]=void 0;var n=!0}catch(t){}var u=f.call(t);return n&&(e?t[l]=r:delete t[l]),u};var c=Object.prototype.toString,d=a?a.toStringTag:void 0;let p=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":d&&d in Object(t)?s(t):c.call(t)};t.s(["default",0,p],35287);let h=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)};t.s(["default",0,h],59110);let v=function(t){if(!h(t))return!1;var e=p(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e};t.s(["default",0,v],64929);var _=u["__core-js_shared__"],y=(e=/[^.]+$/.exec(_&&_.keys&&_.keys.IE_PROTO||""))?"Symbol(src)_1."+e:"",b=Function.prototype.toString;let g=function(t){if(null!=t){try{return b.call(t)}catch(t){}try{return t+""}catch(t){}}return""};t.s(["default",0,g],66762);var j=/^\[object .+?Constructor\]$/,O=Object.prototype,w=Function.prototype.toString,A=O.hasOwnProperty,m=RegExp("^"+w.call(A).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");let z=function(t){return!!h(t)&&(!y||!(y in t))&&(v(t)?m:j).test(g(t))};t.s(["default",0,function(t,e){var r=null==t?void 0:t[e];return z(r)?r:void 0}],47244)},35909,t=>{"use strict";var e=(0,t.i(47244).default)(Object,"create"),r=Object.prototype.hasOwnProperty,n=Object.prototype.hasOwnProperty;function u(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}u.prototype.clear=function(){this.__data__=e?e(null):{},this.size=0},u.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=!!e,e},u.prototype.get=function(t){var n=this.__data__;if(e){var u=n[t];return"__lodash_hash_undefined__"===u?void 0:u}return r.call(n,t)?n[t]:void 0},u.prototype.has=function(t){var r=this.__data__;return e?void 0!==r[t]:n.call(r,t)},u.prototype.set=function(t,r){var n=this.__data__;return this.size+=+!this.has(t),n[t]=e&&void 0===r?"__lodash_hash_undefined__":r,this},t.s(["default",0,u],35909)},92806,8986,t=>{"use strict";let e=function(t,e){return t===e||t!=t&&e!=e};t.s(["default",0,e],8986);let r=function(t,r){for(var n=t.length;n--;)if(e(t[n][0],r))return n;return -1};var n=Array.prototype.splice;function u(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}u.prototype.clear=function(){this.__data__=[],this.size=0},u.prototype.delete=function(t){var e=this.__data__,u=r(e,t);return!(u<0)&&(u==e.length-1?e.pop():n.call(e,u,1),--this.size,!0)},u.prototype.get=function(t){var e=this.__data__,n=r(e,t);return n<0?void 0:e[n][1]},u.prototype.has=function(t){return r(this.__data__,t)>-1},u.prototype.set=function(t,e){var n=this.__data__,u=r(n,t);return u<0?(++this.size,n.push([t,e])):n[u][1]=e,this},t.s(["default",0,u],92806)},44483,t=>{"use strict";var e=t.i(47244),r=t.i(56176),n=(0,e.default)(r.default,"Map");t.s(["default",0,n])},2052,t=>{"use strict";var e=t.i(35909),r=t.i(92806),n=t.i(44483);let u=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t},a=function(t,e){var r=t.__data__;return u(e)?r["string"==typeof e?"string":"hash"]:r.map};function i(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}i.prototype.clear=function(){this.size=0,this.__data__={hash:new e.default,map:new(n.default||r.default),string:new e.default}},i.prototype.delete=function(t){var e=a(this,t).delete(t);return this.size-=!!e,e},i.prototype.get=function(t){return a(this,t).get(t)},i.prototype.has=function(t){return a(this,t).has(t)},i.prototype.set=function(t,e){var r=a(this,t),n=r.size;return r.set(t,e),this.size+=+(r.size!=n),this},t.s(["default",0,i],2052)},69288,t=>{"use strict";var e=t.i(2052);function r(t,n){if("function"!=typeof t||null!=n&&"function"!=typeof n)throw TypeError("Expected a function");var u=function(){var e=arguments,r=n?n.apply(this,e):e[0],a=u.cache;if(a.has(r))return a.get(r);var i=t.apply(this,e);return u.cache=a.set(r,i)||a,i};return u.cache=new(r.Cache||e.default),u}r.Cache=e.default,t.s(["default",0,r])},45465,71962,18499,5159,t=>{"use strict";var e=t.i(92806);t.s(["default",0,function(){this.__data__=new e.default,this.size=0}],45465),t.s(["default",0,function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}],71962),t.s(["default",0,function(t){return this.__data__.get(t)}],18499),t.s(["default",0,function(t){return this.__data__.has(t)}],5159)},97015,26200,54677,t=>{"use strict";var e=t.i(92806),r=t.i(45465),n=t.i(71962),u=t.i(18499),a=t.i(5159),i=t.i(44483),o=t.i(2052);function f(t){var r=this.__data__=new e.default(t);this.size=r.size}f.prototype.clear=r.default,f.prototype.delete=n.default,f.prototype.get=u.default,f.prototype.has=a.default,f.prototype.set=function(t,r){var n=this.__data__;if(n instanceof e.default){var u=n.__data__;if(!i.default||u.length<199)return u.push([t,r]),this.size=++n.size,this;n=this.__data__=new o.default(u)}return n.set(t,r),this.size=n.size,this},t.s(["default",0,f],97015);var l=t.i(47244),s=function(){try{var t=(0,l.default)(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();t.s(["default",0,s],26200),t.s(["default",0,function(t,e,r){"__proto__"==e&&s?s(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}],54677)},40622,t=>{"use strict";t.s(["default",0,function(t,e,r){for(var n=-1,u=Object(t),a=r(t),i=a.length;i--;){var o=a[++n];if(!1===e(u[o],o,u))break}return t}],40622)},75416,t=>{"use strict";t.s(["default",0,function(t,e){if(e)return t.slice();var r=t.length,n=new t.constructor(r);return t.copy(n),n}])},5205,97787,29973,t=>{"use strict";var e=t.i(56176).default.Uint8Array;t.s(["default",0,e],97787);let r=function(t){var r=new t.constructor(t.byteLength);return new e(r).set(new e(t)),r};t.s(["default",0,r],29973),t.s(["default",0,function(t,e){var n=e?r(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}],5205)},92045,t=>{"use strict";t.s(["default",0,function(t,e){var r=-1,n=t.length;for(e||(e=Array(n));++r<n;)e[r]=t[r];return e}])},94751,t=>{"use strict";var e=t.i(59110),r=Object.create,n=function(){function t(){}return function(n){if(!(0,e.default)(n))return{};if(r)return r(n);t.prototype=n;var u=new t;return t.prototype=void 0,u}}();t.s(["default",0,n])},65485,t=>{"use strict";t.s(["default",0,function(t,e){return function(r){return t(e(r))}}])},52865,t=>{"use strict";var e=(0,t.i(65485).default)(Object.getPrototypeOf,Object);t.s(["default",0,e])},49915,t=>{"use strict";var e=Object.prototype;t.s(["default",0,function(t){var r=t&&t.constructor;return t===("function"==typeof r&&r.prototype||e)}])},51009,t=>{"use strict";var e=t.i(94751),r=t.i(52865),n=t.i(49915);t.s(["default",0,function(t){return"function"!=typeof t.constructor||(0,n.default)(t)?{}:(0,e.default)((0,r.default)(t))}])},15300,63615,44071,t=>{"use strict";var e=t.i(35287);let r=function(t){return null!=t&&"object"==typeof t};t.s(["default",0,r],63615);let n=function(t){return r(t)&&"[object Arguments]"==(0,e.default)(t)};var u=Object.prototype,a=u.hasOwnProperty,i=u.propertyIsEnumerable,o=n(function(){return arguments}())?n:function(t){return r(t)&&a.call(t,"callee")&&!i.call(t,"callee")};t.s(["default",0,o],15300);var f=Array.isArray;t.s(["default",0,f],44071)},72445,t=>{"use strict";t.s(["default",0,function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=0x1fffffffffffff}])},41338,t=>{"use strict";var e=t.i(64929),r=t.i(72445);t.s(["default",0,function(t){return null!=t&&(0,r.default)(t.length)&&!(0,e.default)(t)}])},13431,t=>{"use strict";var e=t.i(41338),r=t.i(63615);t.s(["default",0,function(t){return(0,r.default)(t)&&(0,e.default)(t)}])},3745,t=>{"use strict";t.s(["default",0,function(){return!1}],3745)},1645,94228,51434,t=>{"use strict";var e=t.i(35287),r=t.i(72445),n=t.i(63615),u={};u["[object Float32Array]"]=u["[object Float64Array]"]=u["[object Int8Array]"]=u["[object Int16Array]"]=u["[object Int32Array]"]=u["[object Uint8Array]"]=u["[object Uint8ClampedArray]"]=u["[object Uint16Array]"]=u["[object Uint32Array]"]=!0,u["[object Arguments]"]=u["[object Array]"]=u["[object ArrayBuffer]"]=u["[object Boolean]"]=u["[object DataView]"]=u["[object Date]"]=u["[object Error]"]=u["[object Function]"]=u["[object Map]"]=u["[object Number]"]=u["[object Object]"]=u["[object RegExp]"]=u["[object Set]"]=u["[object String]"]=u["[object WeakMap]"]=!1;let a=function(t){return function(e){return t(e)}};t.s(["default",0,a],94228),t.i(79282);var i=function(){try{return!1}catch(t){}}();t.s(["default",0,i],51434);var o=i&&i.isTypedArray,f=o?a(o):function(t){return(0,n.default)(t)&&(0,r.default)(t.length)&&!!u[(0,e.default)(t)]};t.s(["default",0,f],1645)},69286,8888,66790,t=>{"use strict";var e=t.i(54677),r=t.i(8986),n=Object.prototype.hasOwnProperty;let u=function(t,u,a){var i=t[u];n.call(t,u)&&(0,r.default)(i,a)&&(void 0!==a||u in t)||(0,e.default)(t,u,a)};t.s(["default",0,u],8888),t.s(["default",0,function(t,r,n,a){var i=!n;n||(n={});for(var o=-1,f=r.length;++o<f;){var l=r[o],s=a?a(n[l],t[l],l,n,t):void 0;void 0===s&&(s=t[l]),i?(0,e.default)(n,l,s):u(n,l,s)}return n}],69286),t.s(["default",0,function(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n}],66790)},48178,t=>{"use strict";var e=/^(?:0|[1-9]\d*)$/;t.s(["default",0,function(t,r){var n=typeof t;return!!(r=null==r?0x1fffffffffffff:r)&&("number"==n||"symbol"!=n&&e.test(t))&&t>-1&&t%1==0&&t<r}])},88212,t=>{"use strict";var e=t.i(66790),r=t.i(15300),n=t.i(44071),u=t.i(3745),a=t.i(48178),i=t.i(1645),o=Object.prototype.hasOwnProperty;t.s(["default",0,function(t,f){var l=(0,n.default)(t),s=!l&&(0,r.default)(t),c=!l&&!s&&(0,u.default)(t),d=!l&&!s&&!c&&(0,i.default)(t),p=l||s||c||d,h=p?(0,e.default)(t.length,String):[],v=h.length;for(var _ in t)(f||o.call(t,_))&&!(p&&("length"==_||c&&("offset"==_||"parent"==_)||d&&("buffer"==_||"byteLength"==_||"byteOffset"==_)||(0,a.default)(_,v)))&&h.push(_);return h}])},72585,t=>{"use strict";var e=t.i(88212),r=t.i(59110),n=t.i(49915);let u=function(t){var e=[];if(null!=t)for(var r in Object(t))e.push(r);return e};var a=Object.prototype.hasOwnProperty;let i=function(t){if(!(0,r.default)(t))return u(t);var e=(0,n.default)(t),i=[];for(var o in t)"constructor"==o&&(e||!a.call(t,o))||i.push(o);return i};var o=t.i(41338);t.s(["default",0,function(t){return(0,o.default)(t)?(0,e.default)(t,!0):i(t)}],72585)},10022,t=>{"use strict";t.s(["default",0,function(t){return t}])},26770,30892,49132,90947,90104,27925,t=>{"use strict";var e,r,n=t.i(10022);let u=function(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)};var a=Math.max;let i=function(t,e,r){return e=a(void 0===e?t.length-1:e,0),function(){for(var n=arguments,i=-1,o=a(n.length-e,0),f=Array(o);++i<o;)f[i]=n[e+i];i=-1;for(var l=Array(e+1);++i<e;)l[i]=n[i];return l[e]=r(f),u(t,this,l)}};t.s(["default",0,i],30892);let o=function(t){return function(){return t}};t.s(["default",0,o],49132);var f=t.i(26200),l=f.default?function(t,e){return(0,f.default)(t,"toString",{configurable:!0,enumerable:!1,value:o(e),writable:!0})}:n.default,s=Date.now,c=(e=0,r=0,function(){var t=s(),n=16-(t-r);if(r=t,n>0){if(++e>=800)return arguments[0]}else e=0;return l.apply(void 0,arguments)});t.s(["default",0,c],90947);let d=function(t,e){return c(i(t,e,n.default),t+"")};t.s(["default",0,d],90104);var p=t.i(8986),h=t.i(41338),v=t.i(48178),_=t.i(59110);let y=function(t,e,r){if(!(0,_.default)(r))return!1;var n=typeof e;return("number"==n?!!((0,h.default)(r)&&(0,v.default)(e,r.length)):"string"==n&&e in r)&&(0,p.default)(r[e],t)};t.s(["default",0,y],27925),t.s(["default",0,function(t){return d(function(e,r){var n=-1,u=r.length,a=u>1?r[u-1]:void 0,i=u>2?r[2]:void 0;for(a=t.length>3&&"function"==typeof a?(u--,a):void 0,i&&y(r[0],r[1],i)&&(a=u<3?void 0:a,u=1),e=Object(e);++n<u;){var o=r[n];o&&t(e,o,n,a)}return e})}],26770)}]);
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,79769,t=>{"use strict";var e=t.i(75058),n=t.i(10199),i=t.i(16888);function a(t){return t.innerRadius}function r(t){return t.outerRadius}function s(t){return t.startAngle}function l(t){return t.endAngle}function o(t){return t&&t.padAngle}function c(t,e,i,a,r,s,l){var o=t-i,c=e-a,h=(l?s:-s)/(0,n.sqrt)(o*o+c*c),u=h*c,d=-h*o,p=t+u,y=e+d,g=i+u,m=a+d,f=(p+g)/2,_=(y+m)/2,x=g-p,b=m-y,k=x*x+b*b,v=r-s,w=p*m-g*y,S=(b<0?-1:1)*(0,n.sqrt)((0,n.max)(0,v*v*k-w*w)),$=(w*b-x*S)/k,T=(-w*x-b*S)/k,E=(w*b+x*S)/k,I=(-w*x+b*S)/k,A=$-f,P=T-_,C=E-f,M=I-_;return A*A+P*P>C*C+M*M&&($=E,T=I),{cx:$,cy:T,x01:-u,y01:-d,x11:$*(r/v-1),y11:T*(r/v-1)}}t.s(["arc",0,function(){var t=a,h=r,u=(0,e.default)(0),d=null,p=s,y=l,g=o,m=null,f=(0,i.withPath)(_);function _(){var e,i,a=+t.apply(this,arguments),r=+h.apply(this,arguments),s=p.apply(this,arguments)-n.halfPi,l=y.apply(this,arguments)-n.halfPi,o=(0,n.abs)(l-s),_=l>s;if(m||(m=e=f()),r<a&&(i=r,r=a,a=i),r>n.epsilon)if(o>n.tau-n.epsilon)m.moveTo(r*(0,n.cos)(s),r*(0,n.sin)(s)),m.arc(0,0,r,s,l,!_),a>n.epsilon&&(m.moveTo(a*(0,n.cos)(l),a*(0,n.sin)(l)),m.arc(0,0,a,l,s,_));else{var x,b,k=s,v=l,w=s,S=l,$=o,T=o,E=g.apply(this,arguments)/2,I=E>n.epsilon&&(d?+d.apply(this,arguments):(0,n.sqrt)(a*a+r*r)),A=(0,n.min)((0,n.abs)(r-a)/2,+u.apply(this,arguments)),P=A,C=A;if(I>n.epsilon){var M=(0,n.asin)(I/a*(0,n.sin)(E)),L=(0,n.asin)(I/r*(0,n.sin)(E));($-=2*M)>n.epsilon?(M*=_?1:-1,w+=M,S-=M):($=0,w=S=(s+l)/2),(T-=2*L)>n.epsilon?(L*=_?1:-1,k+=L,v-=L):(T=0,k=v=(s+l)/2)}var O=r*(0,n.cos)(k),R=r*(0,n.sin)(k),H=a*(0,n.cos)(S),N=a*(0,n.sin)(S);if(A>n.epsilon){var D,j=r*(0,n.cos)(v),z=r*(0,n.sin)(v),B=a*(0,n.cos)(w),W=a*(0,n.sin)(w);if(o<n.pi)if(D=function(t,e,i,a,r,s,l,o){var c=i-t,h=a-e,u=l-r,d=o-s,p=d*c-u*h;if(!(p*p<n.epsilon))return p=(u*(e-s)-d*(t-r))/p,[t+p*c,e+p*h]}(O,R,B,W,j,z,H,N)){var q=O-D[0],F=R-D[1],U=j-D[0],V=z-D[1],G=1/(0,n.sin)((0,n.acos)((q*U+F*V)/((0,n.sqrt)(q*q+F*F)*(0,n.sqrt)(U*U+V*V)))/2),K=(0,n.sqrt)(D[0]*D[0]+D[1]*D[1]);P=(0,n.min)(A,(a-K)/(G-1)),C=(0,n.min)(A,(r-K)/(G+1))}else P=C=0}T>n.epsilon?C>n.epsilon?(x=c(B,W,O,R,r,C,_),b=c(j,z,H,N,r,C,_),m.moveTo(x.cx+x.x01,x.cy+x.y01),C<A?m.arc(x.cx,x.cy,C,(0,n.atan2)(x.y01,x.x01),(0,n.atan2)(b.y01,b.x01),!_):(m.arc(x.cx,x.cy,C,(0,n.atan2)(x.y01,x.x01),(0,n.atan2)(x.y11,x.x11),!_),m.arc(0,0,r,(0,n.atan2)(x.cy+x.y11,x.cx+x.x11),(0,n.atan2)(b.cy+b.y11,b.cx+b.x11),!_),m.arc(b.cx,b.cy,C,(0,n.atan2)(b.y11,b.x11),(0,n.atan2)(b.y01,b.x01),!_))):(m.moveTo(O,R),m.arc(0,0,r,k,v,!_)):m.moveTo(O,R),a>n.epsilon&&$>n.epsilon?P>n.epsilon?(x=c(H,N,j,z,a,-P,_),b=c(O,R,B,W,a,-P,_),m.lineTo(x.cx+x.x01,x.cy+x.y01),P<A?m.arc(x.cx,x.cy,P,(0,n.atan2)(x.y01,x.x01),(0,n.atan2)(b.y01,b.x01),!_):(m.arc(x.cx,x.cy,P,(0,n.atan2)(x.y01,x.x01),(0,n.atan2)(x.y11,x.x11),!_),m.arc(0,0,a,(0,n.atan2)(x.cy+x.y11,x.cx+x.x11),(0,n.atan2)(b.cy+b.y11,b.cx+b.x11),_),m.arc(b.cx,b.cy,P,(0,n.atan2)(b.y11,b.x11),(0,n.atan2)(b.y01,b.x01),!_))):m.arc(0,0,a,S,w,_):m.lineTo(H,N)}else m.moveTo(0,0);if(m.closePath(),e)return m=null,e+""||null}return _.centroid=function(){var e=(+t.apply(this,arguments)+ +h.apply(this,arguments))/2,i=(+p.apply(this,arguments)+ +y.apply(this,arguments))/2-n.pi/2;return[(0,n.cos)(i)*e,(0,n.sin)(i)*e]},_.innerRadius=function(n){return arguments.length?(t="function"==typeof n?n:(0,e.default)(+n),_):t},_.outerRadius=function(t){return arguments.length?(h="function"==typeof t?t:(0,e.default)(+t),_):h},_.cornerRadius=function(t){return arguments.length?(u="function"==typeof t?t:(0,e.default)(+t),_):u},_.padRadius=function(t){return arguments.length?(d=null==t?null:"function"==typeof t?t:(0,e.default)(+t),_):d},_.startAngle=function(t){return arguments.length?(p="function"==typeof t?t:(0,e.default)(+t),_):p},_.endAngle=function(t){return arguments.length?(y="function"==typeof t?t:(0,e.default)(+t),_):y},_.padAngle=function(t){return arguments.length?(g="function"==typeof t?t:(0,e.default)(+t),_):g},_.context=function(t){return arguments.length?(m=null==t?null:t,_):m},_}],79769)},48487,t=>{"use strict";var e=t.i(80926),n=t.i(71206);t.i(47716);var i=t.i(23685),a=t.i(79769),r=t.i(36413),s=t.i(12690),l=t.i(9240),o=function(){var t=(0,n.__name)(function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},"o"),e=[6,8,10,11,12,14,16,17,20,21],i=[1,9],a=[1,10],r=[1,11],s=[1,12],l=[1,13],o=[1,16],c=[1,17],h={trace:(0,n.__name)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:(0,n.__name)(function(t,e,n,i,a,r,s){var l=r.length-1;switch(a){case 1:return r[l-1];case 2:case 6:case 7:this.$=[];break;case 3:r[l-1].push(r[l]),this.$=r[l-1];break;case 4:case 5:this.$=r[l];break;case 8:i.getCommonDb().setDiagramTitle(r[l].substr(6)),this.$=r[l].substr(6);break;case 9:this.$=r[l].trim(),i.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=r[l].trim(),i.getCommonDb().setAccDescription(this.$);break;case 12:i.addSection(r[l].substr(8)),this.$=r[l].substr(8);break;case 15:i.addTask(r[l],0,""),this.$=r[l];break;case 16:i.addEvent(r[l].substr(2)),this.$=r[l]}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:i,12:a,14:r,16:s,17:l,18:14,19:15,20:o,21:c},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:18,11:i,12:a,14:r,16:s,17:l,18:14,19:15,20:o,21:c},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,19]},{15:[1,20]},t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),t(e,[2,15]),t(e,[2,16]),t(e,[2,4]),t(e,[2,9]),t(e,[2,10])],defaultActions:{},parseError:(0,n.__name)(function(t,e){if(e.recoverable)this.trace(t);else{var n=Error(t);throw n.hash=e,n}},"parseError"),parse:(0,n.__name)(function(t){var e=this,i=[0],a=[],r=[null],s=[],l=this.table,o="",c=0,h=0,u=0,d=s.slice.call(arguments,1),p=Object.create(this.lexer),y={};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(y[g]=this.yy[g]);p.setInput(t,y),y.lexer=p,y.parser=this,void 0===p.yylloc&&(p.yylloc={});var m=p.yylloc;s.push(m);var f=p.options&&p.options.ranges;function _(){var t;return"number"!=typeof(t=a.pop()||p.lex()||1)&&(t instanceof Array&&(t=(a=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof y.parseError?this.parseError=y.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,n.__name)(function(t){i.length=i.length-2*t,r.length=r.length-t,s.length=s.length-t},"popStack"),(0,n.__name)(_,"lex");for(var x,b,k,v,w,S,$,T,E,I={};;){if(k=i[i.length-1],this.defaultActions[k]?v=this.defaultActions[k]:(null==x&&(x=_()),v=l[k]&&l[k][x]),void 0===v||!v.length||!v[0]){var A="";for(S in E=[],l[k])this.terminals_[S]&&S>2&&E.push("'"+this.terminals_[S]+"'");A=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+E.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==x?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(A,{text:p.match,token:this.terminals_[x]||x,line:p.yylineno,loc:m,expected:E})}if(v[0]instanceof Array&&v.length>1)throw Error("Parse Error: multiple actions possible at state: "+k+", token: "+x);switch(v[0]){case 1:i.push(x),r.push(p.yytext),s.push(p.yylloc),i.push(v[1]),x=null,b?(x=b,b=null):(h=p.yyleng,o=p.yytext,c=p.yylineno,m=p.yylloc,u>0&&u--);break;case 2:if($=this.productions_[v[1]][1],I.$=r[r.length-$],I._$={first_line:s[s.length-($||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-($||1)].first_column,last_column:s[s.length-1].last_column},f&&(I._$.range=[s[s.length-($||1)].range[0],s[s.length-1].range[1]]),void 0!==(w=this.performAction.apply(I,[o,h,c,y,v[1],r,s].concat(d))))return w;$&&(i=i.slice(0,-1*$*2),r=r.slice(0,-1*$),s=s.slice(0,-1*$)),i.push(this.productions_[v[1]][0]),r.push(I.$),s.push(I._$),T=l[i[i.length-2]][i[i.length-1]],i.push(T);break;case 3:return!0}}return!0},"parse")};function u(){this.yy={}}return h.lexer={EOF:1,parseError:(0,n.__name)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,n.__name)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,n.__name)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,n.__name)(function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,n.__name)(function(){return this._more=!0,this},"more"),reject:(0,n.__name)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,n.__name)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,n.__name)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,n.__name)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,n.__name)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,n.__name)(function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack)for(var r in a)this[r]=a[r];return!1},"test_match"),next:(0,n.__name)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,n,i,a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,n.__name)(function(){var t=this.next();return t||this.lex()},"lex"),begin:(0,n.__name)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,n.__name)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,n.__name)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,n.__name)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,n.__name)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,n.__name)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,n.__name)(function(t,e,n,i){switch(n){case 0:case 1:case 3:case 4:break;case 2:return 10;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 21;case 16:return 20;case 17:return 6;case 18:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^:\n]+)/i,/^(?::\s(?:[^:\n]|:(?!\s))+)/i,/^(?:[^#:\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18],inclusive:!0}}},(0,n.__name)(u,"Parser"),u.prototype=h,h.Parser=u,new u}();o.parser=o;var c={};(0,n.__export)(c,{addEvent:()=>k,addSection:()=>f,addTask:()=>b,addTaskOrg:()=>v,clear:()=>m,default:()=>S,getCommonDb:()=>g,getSections:()=>_,getTasks:()=>x});var h="",u=0,d=[],p=[],y=[],g=(0,n.__name)(()=>e.commonDb_exports,"getCommonDb"),m=(0,n.__name)(function(){d.length=0,p.length=0,h="",y.length=0,(0,e.clear)()},"clear"),f=(0,n.__name)(function(t){h=t,d.push(t)},"addSection"),_=(0,n.__name)(function(){return d},"getSections"),x=(0,n.__name)(function(){let t=w(),e=0;for(;!t&&e<100;)t=w(),e++;return p.push(...y),p},"getTasks"),b=(0,n.__name)(function(t,e,n){let i={id:u++,section:h,type:h,task:t,score:e||0,events:n?[n]:[]};y.push(i)},"addTask"),k=(0,n.__name)(function(t){y.find(t=>t.id===u-1).events.push(t)},"addEvent"),v=(0,n.__name)(function(t){let e={section:h,type:h,description:t,task:t,classes:[]};p.push(e)},"addTaskOrg"),w=(0,n.__name)(function(){let t=(0,n.__name)(function(t){return y[t].processed},"compileTask"),e=!0;for(let[n,i]of y.entries())t(n),e=e&&i.processed;return e},"compileTasks"),S={clear:m,getCommonDb:g,addSection:f,getSections:_,getTasks:x,addTask:b,addTaskOrg:v,addEvent:k},$=(0,n.__name)(function(t,e){let n=t.append("rect");return n.attr("x",e.x),n.attr("y",e.y),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("width",e.width),n.attr("height",e.height),n.attr("rx",e.rx),n.attr("ry",e.ry),void 0!==e.class&&n.attr("class",e.class),n},"drawRect"),T=(0,n.__name)(function(t,e){let i=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),r=t.append("g");function s(t){let n=(0,a.arc)().startAngle(Math.PI/2).endAngle(Math.PI/2*3).innerRadius(7.5).outerRadius(15/2.2);t.append("path").attr("class","mouth").attr("d",n).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}function l(t){let n=(0,a.arc)().startAngle(3*Math.PI/2).endAngle(Math.PI/2*5).innerRadius(7.5).outerRadius(15/2.2);t.append("path").attr("class","mouth").attr("d",n).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}function o(t){t.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return r.append("circle").attr("cx",e.cx-5).attr("cy",e.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),r.append("circle").attr("cx",e.cx+5).attr("cy",e.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),(0,n.__name)(s,"smile"),(0,n.__name)(l,"sad"),(0,n.__name)(o,"ambivalent"),e.score>3?s(r):e.score<3?l(r):o(r),i},"drawFace"),E=(0,n.__name)(function(t,e){let n=e.text.replace(/<br\s*\/?>/gi," "),i=t.append("text");i.attr("x",e.x),i.attr("y",e.y),i.attr("class","legend"),i.style("text-anchor",e.anchor),void 0!==e.class&&i.attr("class",e.class);let a=i.append("tspan");return a.attr("x",e.x+2*e.textMargin),a.text(n),i},"drawText"),I=-1,A=(0,n.__name)(function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),P=function(){function t(t,e,n,i,r,s,l,o){a(e.append("text").attr("x",n+r/2).attr("y",i+s/2+5).style("font-color",o).style("text-anchor","middle").text(t),l)}function e(t,e,n,i,r,s,l,o,c){let{taskFontSize:h,taskFontFamily:u}=o,d=t.split(/<br\s*\/?>/gi);for(let t=0;t<d.length;t++){let o=t*h-h*(d.length-1)/2,p=e.append("text").attr("x",n+r/2).attr("y",i).attr("fill",c).style("text-anchor","middle").style("font-size",h).style("font-family",u);p.append("tspan").attr("x",n+r/2).attr("dy",o).text(d[t]),p.attr("y",i+s/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),a(p,l)}}function i(t,n,i,r,s,l,o,c){let h=n.append("switch"),u=h.append("foreignObject").attr("x",i).attr("y",r).attr("width",s).attr("height",l).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");u.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,h,i,r,s,l,o,c),a(u,o)}function a(t,e){for(let n in e)n in e&&t.attr(n,e[n])}return(0,n.__name)(t,"byText"),(0,n.__name)(e,"byTspan"),(0,n.__name)(i,"byFo"),(0,n.__name)(a,"_setTextAttrs"),function(n){return"fo"===n.textPlacement?i:"old"===n.textPlacement?t:e}}(),C=(0,n.__name)(function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},"initGraphics");function M(t,e){t.each(function(){var t,n=(0,i.select)(this),a=n.text().split(/(\s+|<br>)/).reverse(),r=[],s=n.attr("y"),l=parseFloat(n.attr("dy")),o=n.text(null).append("tspan").attr("x",0).attr("y",s).attr("dy",l+"em");for(let i=0;i<a.length;i++)t=a[a.length-1-i],r.push(t),o.text(r.join(" ").trim()),(o.node().getComputedTextLength()>e||"<br>"===t)&&(r.pop(),o.text(r.join(" ").trim()),r="<br>"===t?[""]:[t],o=n.append("tspan").attr("x",0).attr("y",s).attr("dy","1.1em").text(t))})}(0,n.__name)(M,"wrap");var L=(0,n.__name)(function(t,e,n,i){let a=n%12-1,r=t.append("g");e.section=a,r.attr("class",(e.class?e.class+" ":"")+"timeline-node section-"+a);let s=r.append("g"),l=r.append("g"),o=l.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(M,e.width).node().getBBox(),c=i.fontSize?.replace?i.fontSize.replace("px",""):i.fontSize;return e.height=o.height+1.1*c*.5+e.padding,e.height=Math.max(e.height,e.maxHeight),e.width=e.width+2*e.padding,l.attr("transform","translate("+e.width/2+", "+e.padding/2+")"),R(s,e,a,i),e},"drawNode"),O=(0,n.__name)(function(t,e,n){let i=t.append("g"),a=i.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(M,e.width).node().getBBox(),r=n.fontSize?.replace?n.fontSize.replace("px",""):n.fontSize;return i.remove(),a.height+1.1*r*.5+e.padding},"getVirtualNodeHeight"),R=(0,n.__name)(function(t,e,n){t.append("path").attr("id","node-"+e.id).attr("class","node-bkg node-"+e.type).attr("d",`M0 ${e.height-5} v${-e.height+10} q0,-5 5,-5 h${e.width-10} q5,0 5,5 v${e.height-5} H0 Z`),t.append("line").attr("class","node-line-"+n).attr("x1",0).attr("y1",e.height).attr("x2",e.width).attr("y2",e.height)},"defaultBkg"),H=(0,n.__name)(function(t,a,r,s){let l,o=(0,e.getConfig2)(),c=o.timeline?.leftMargin??50;n.log.debug("timeline",s.db);let h=o.securityLevel;"sandbox"===h&&(l=(0,i.select)("#i"+a));let u=("sandbox"===h?(0,i.select)(l.nodes()[0].contentDocument.body):(0,i.select)("body")).select("#"+a);u.append("g");let d=s.db.getTasks(),p=s.db.getCommonDb().getDiagramTitle();n.log.debug("task",d),C(u);let y=s.db.getSections();n.log.debug("sections",y);let g=0,m=0,f=0,_=0,x=50+c,b=50;_=50;let k=0,v=!0;y.forEach(function(t){let e=O(u,{number:k,descr:t,section:k,width:150,padding:20,maxHeight:g},o);n.log.debug("sectionHeight before draw",e),g=Math.max(g,e+20)});let w=0,S=0;for(let[t,e]of(n.log.debug("tasks.length",d.length),d.entries())){let i=O(u,{number:t,descr:e,section:e.section,width:150,padding:20,maxHeight:m},o);n.log.debug("taskHeight before draw",i),m=Math.max(m,i+20),w=Math.max(w,e.events.length);let a=0;for(let t of e.events)a+=O(u,{descr:t,section:e.section,number:e.section,width:150,padding:20,maxHeight:50},o);e.events.length>0&&(a+=(e.events.length-1)*10),S=Math.max(S,a)}n.log.debug("maxSectionHeight before draw",g),n.log.debug("maxTaskHeight before draw",m),y&&y.length>0?y.forEach(t=>{let e=d.filter(e=>e.section===t),i={number:k,descr:t,section:k,width:200*Math.max(e.length,1)-50,padding:20,maxHeight:g};n.log.debug("sectionNode",i);let a=u.append("g"),r=L(a,i,k,o);n.log.debug("sectionNode output",r),a.attr("transform",`translate(${x}, ${_})`),b+=g+50,e.length>0&&N(u,e,k,x,b,m,o,w,S,g,!1),x+=200*Math.max(e.length,1),b=_,k++}):(v=!1,N(u,d,k,x,b,m,o,w,S,g,!0));let $=u.node().getBBox();n.log.debug("bounds",$),p&&u.append("text").text(p).attr("x",$.width/2-c).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),f=v?g+m+150:m+100,u.append("g").attr("class","lineWrapper").append("line").attr("x1",c).attr("y1",f).attr("x2",$.width+3*c).attr("y2",f).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),(0,e.setupGraphViewbox)(void 0,u,o.timeline?.padding??50,o.timeline?.useMaxWidth??!1)},"draw"),N=(0,n.__name)(function(t,e,i,a,r,s,l,o,c,h,u){for(let o of e){let e={descr:o.task,section:i,number:i,width:150,padding:20,maxHeight:s};n.log.debug("taskNode",e);let h=t.append("g").attr("class","taskWrapper"),d=L(h,e,i,l).height;if(n.log.debug("taskHeight after draw",d),h.attr("transform",`translate(${a}, ${r})`),s=Math.max(s,d),o.events){let e=t.append("g").attr("class","lineWrapper");r+=100,D(t,o.events,i,a,r,l),r-=100,e.append("line").attr("x1",a+95).attr("y1",r+s).attr("x2",a+95).attr("y2",r+s+100+c+100).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}a+=200,u&&!l.timeline?.disableMulticolor&&i++}},"drawTasks"),D=(0,n.__name)(function(t,e,i,a,r,s){let l=0,o=r;for(let o of(r+=100,e)){let e={descr:o,section:i,number:i,width:150,padding:20,maxHeight:50};n.log.debug("eventNode",e);let c=t.append("g").attr("class","eventWrapper"),h=L(c,e,i,s).height;l+=h,c.attr("transform",`translate(${a}, ${r})`),r=r+10+h}return r=o,l},"drawEvents"),j={setConf:(0,n.__name)(()=>{},"setConf"),draw:H},z=(0,n.__name)(t=>{let e="";for(let e=0;e<t.THEME_COLOR_LIMIT;e++)t["lineColor"+e]=t["lineColor"+e]||t["cScaleInv"+e],(0,l.isDark)(t["lineColor"+e])?t["lineColor"+e]=(0,s.lighten)(t["lineColor"+e],20):t["lineColor"+e]=(0,r.darken)(t["lineColor"+e],20);for(let n=0;n<t.THEME_COLOR_LIMIT;n++){let i=""+(17-3*n);e+=`
|
|
2
|
+
.section-${n-1} rect, .section-${n-1} path, .section-${n-1} circle, .section-${n-1} path {
|
|
3
|
+
fill: ${t["cScale"+n]};
|
|
4
|
+
}
|
|
5
|
+
.section-${n-1} text {
|
|
6
|
+
fill: ${t["cScaleLabel"+n]};
|
|
7
|
+
}
|
|
8
|
+
.node-icon-${n-1} {
|
|
9
|
+
font-size: 40px;
|
|
10
|
+
color: ${t["cScaleLabel"+n]};
|
|
11
|
+
}
|
|
12
|
+
.section-edge-${n-1}{
|
|
13
|
+
stroke: ${t["cScale"+n]};
|
|
14
|
+
}
|
|
15
|
+
.edge-depth-${n-1}{
|
|
16
|
+
stroke-width: ${i};
|
|
17
|
+
}
|
|
18
|
+
.section-${n-1} line {
|
|
19
|
+
stroke: ${t["cScaleInv"+n]} ;
|
|
20
|
+
stroke-width: 3;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.lineWrapper line{
|
|
24
|
+
stroke: ${t["cScaleLabel"+n]} ;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.disabled, .disabled circle, .disabled text {
|
|
28
|
+
fill: lightgray;
|
|
29
|
+
}
|
|
30
|
+
.disabled text {
|
|
31
|
+
fill: #efefef;
|
|
32
|
+
}
|
|
33
|
+
`}return e},"genSections"),B={db:c,renderer:j,parser:o,styles:(0,n.__name)(t=>`
|
|
34
|
+
.edge {
|
|
35
|
+
stroke-width: 3;
|
|
36
|
+
}
|
|
37
|
+
${z(t)}
|
|
38
|
+
.section-root rect, .section-root path, .section-root circle {
|
|
39
|
+
fill: ${t.git0};
|
|
40
|
+
}
|
|
41
|
+
.section-root text {
|
|
42
|
+
fill: ${t.gitBranchLabel0};
|
|
43
|
+
}
|
|
44
|
+
.icon-container {
|
|
45
|
+
height:100%;
|
|
46
|
+
display: flex;
|
|
47
|
+
justify-content: center;
|
|
48
|
+
align-items: center;
|
|
49
|
+
}
|
|
50
|
+
.edge {
|
|
51
|
+
fill: none;
|
|
52
|
+
}
|
|
53
|
+
.eventWrapper {
|
|
54
|
+
filter: brightness(120%);
|
|
55
|
+
}
|
|
56
|
+
`,"getStyles")};t.s(["diagram",()=>B])}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,33525,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,981,e=>{"use strict";var i=e.i(53415);e.i(86780),e.s([],78557),e.i(78557),e.s(["PieModule",()=>i.PieModule,"createPieServices",()=>i.createPieServices],981)}]);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/701cfcbb41e0ab47.js","static/chunks/ad24b3b0881818aa.js","static/chunks/01c05b0fdc89fc0c.js","static/chunks/87f01c0a5d4010ab.js"],runtimeModuleIds:[94553]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=(self.TURBOPACK_CHUNK_SUFFIX??document?.currentScript?.getAttribute?.("src")?.replace(/^(.*(?=\?)|^.*$)/,""))||"",n=new WeakMap;function o(e,t){this.m=e,this.e=t}let l=o.prototype,i=Object.prototype.hasOwnProperty,s="u">typeof Symbol&&Symbol.toStringTag;function u(e,t,r){i.call(e,t)||Object.defineProperty(e,t,r)}function c(e,t){let r=e[t];return r||(r=a(t),e[t]=r),r}function a(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function f(e,t){u(e,"__esModule",{value:!0}),s&&u(e,s,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)u(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?u(e,n,{get:o,set:t[r++],enumerable:!0}):u(e,n,{get:o,enumerable:!0})}Object.seal(e)}l.s=function(e,t){let r,n;null!=t?n=(r=c(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,f(n,e)},l.j=function(e,t){var r,o;let l,s,u;null!=t?s=(l=c(this.c,t)).exports:(l=this.m,s=this.e);let a=(r=l,o=s,(u=n.get(r))||(n.set(r,u=[]),r.exports=r.namespaceObject=new Proxy(o,{get(e,t){if(i.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of u){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of u)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),u);"object"==typeof e&&null!==e&&a.push(e)},l.v=function(e,t){(null!=t?c(this.c,t):this.m).exports=e},l.n=function(e,t){let r;(r=null!=t?c(this.c,t):this.m).exports=r.namespaceObject=e};let p=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,h=[null,p({}),p([]),p(p)];function d(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!h.includes(t);t=p(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),f(t,n),t}function m(e){let t=B(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=d(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function b(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}function y(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}l.i=m,l.A=function(e){return this.r(e)(m.bind(this))},l.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},l.r=function(e){return B(e,this.m).exports},l.f=function(e){function t(t){if(t=b(t),i.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=b(t),i.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let O=Symbol("turbopack queues"),g=Symbol("turbopack exports"),w=Symbol("turbopack error");function C(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}l.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:l,reject:i,promise:s}=y(),u=Object.assign(s,{[g]:r.exports,[O]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),c={get:()=>u,set(e){e!==u&&(u[g]=e)}};Object.defineProperty(r,"exports",c),Object.defineProperty(r,"namespaceObject",c),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(O in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[g]:{},[O]:e=>e(t)};return e.then(e=>{r[g]=e,C(t)},e=>{r[w]=e,C(t)}),r}}return{[g]:e,[O]:()=>{}}}),r=()=>t.map(e=>{if(e[w])throw e[w];return e[g]}),{promise:l,resolve:i}=y(),s=Object.assign(()=>i(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[O](u)),s.queueCount?l:r()},function(e){e?i(u[w]=e):l(u[g]),C(n)}),n&&-1===n.status&&(n.status=0)};let U=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function R(e,t){throw Error(`Invariant: ${t(e)}`)}U.prototype=URL.prototype,l.U=U,l.z=function(e){throw Error("dynamic usage of require is not supported")},l.g=globalThis;let j=o.prototype;var k,_=((k=_||{})[k.Runtime=0]="Runtime",k[k.Parent=1]="Parent",k[k.Update=2]="Update",k);let v=new Map;l.M=v;let $=new Map,P=new Map;async function S(e,t,r){let n;if("string"==typeof r)return E(e,t,K(r));let o=r.included||[],l=o.map(e=>!!v.has(e)||$.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);let i=r.moduleChunks||[],s=i.map(e=>P.get(e)).filter(e=>e);if(s.length>0){if(s.length===i.length)return void await Promise.all(s);let r=new Set;for(let e of i)P.has(e)||r.add(e);for(let n of r){let r=E(e,t,K(n));P.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=E(e,t,K(r.path)),i))P.has(o)||P.set(o,n)}for(let e of o)$.has(e)||$.set(e,n);await n}j.l=function(e){return S(1,this.m.id,e)};let T=Promise.resolve(void 0),A=new WeakMap;function E(t,r,n){let o=e.loadChunkCached(t,n),l=A.get(o);if(void 0===l){let e=A.set.bind(A,o,T);l=o.then(e).catch(e=>{let o;switch(t){case 0:o=`as a runtime dependency of chunk ${r}`;break;case 1:o=`from module ${r}`;break;case 2:o="from an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}let l=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw l.name="ChunkLoadError",l}),A.set(o,l)}return l}function K(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}j.L=function(e){return E(1,this.m.id,e)},j.R=function(e){let t=this.r(e);return t?.default??t},j.P=function(e){return`/ROOT/${e??""}`},j.b=function(e){let t=new Blob([`self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)};
|
|
2
|
+
self.TURBOPACK_CHUNK_SUFFIX = ${JSON.stringify(r)};
|
|
3
|
+
self.TURBOPACK_NEXT_CHUNK_URLS = ${JSON.stringify(e.reverse().map(K),null,2)};
|
|
4
|
+
importScripts(...self.TURBOPACK_NEXT_CHUNK_URLS.map(c => self.TURBOPACK_WORKER_LOCATION + c).reverse());`],{type:"text/javascript"});return URL.createObjectURL(t)};let x=/\.js(?:\?[^#]*)?(?:#.*)?$/,N=/\.css(?:\?[^#]*)?(?:#.*)?$/;function M(e){return N.test(e)}l.w=function(t,r,n){return e.loadWebAssembly(1,this.m.id,t,r,n)},l.u=function(t,r){return e.loadWebAssemblyModule(1,this.m.id,t,r)};let L={};l.c=L;let B=(e,t)=>{let r=L[e];if(r){if(r.error)throw r.error;return r}return q(e,_.Parent,t.id)};function q(e,t,r){let n=v.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let l=a(e),i=l.exports;L[e]=l;let s=new o(l,i);try{n(s,l,i)}catch(e){throw l.error=e,e}return l.namespaceObject&&l.exports!==l.namespaceObject&&d(l.exports,l.namespaceObject),l}function I(r){let n,o=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(("u">typeof TURBOPACK_NEXT_CHUNK_URLS?TURBOPACK_NEXT_CHUNK_URLS.pop():e.getAttribute("src")).replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(r[0]);return 2===r.length?n=r[1]:(n=void 0,!function(e,t,r,n){let o=1;for(;o<e.length;){let t=e[o],n=o+1;for(;n<e.length&&"function"!=typeof e[n];)n++;if(n===e.length)throw Error("malformed chunk format, expected a factory function");if(!r.has(t)){let l=e[n];for(Object.defineProperty(l,"name",{value:"module evaluation"});o<n;o++)t=e[o],r.set(t,l)}o=n+1}}(r,0,v)),e.registerChunk(o,n)}let W=new Map;function H(e){let t=W.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},W.set(e,t)}return t}e={async registerChunk(e,t){if(H(K(e)).resolve(),null!=t){for(let e of t.otherChunks)H(K("string"==typeof e?e:e.path));if(await Promise.all(t.otherChunks.map(t=>S(0,e,t))),t.runtimeModuleIds.length>0)for(let r of t.runtimeModuleIds)!function(e,t){let r=L[t];if(r){if(r.error)throw r.error;return}q(t,_.Runtime,e)}(e,r)}},loadChunkCached:(e,t)=>(function(e,t){let r=H(t);if(r.loadingStarted)return r.promise;if(e===_.Runtime)return r.loadingStarted=!0,M(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(M(t));else if(x.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(TURBOPACK_WORKER_LOCATION+t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(M(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(x.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let l=fetch(K(r)),{instance:i}=await WebAssembly.instantiateStreaming(l,o);return i.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(K(r));return await WebAssembly.compileStreaming(o)}};let F=globalThis.TURBOPACK;globalThis.TURBOPACK={push:I},F.forEach(I)})();
|
|
Binary file
|
|
@@ -48,11 +48,13 @@ Web UI (Next.js, src/app)
|
|
|
48
48
|
## Core Components
|
|
49
49
|
|
|
50
50
|
1. MCP server (`src/mcp/server.ts`)
|
|
51
|
+
|
|
51
52
|
- stdio MCP server using `@modelcontextprotocol/sdk`
|
|
52
53
|
- Project/spec/task/agent tools
|
|
53
54
|
- Uses `src/db/index.ts` with `@libsql/client`
|
|
54
55
|
|
|
55
56
|
2. Web UI (`src/app/`)
|
|
57
|
+
|
|
56
58
|
- Next.js App Router, React 19
|
|
57
59
|
- `/` Kanban board (drag/drop)
|
|
58
60
|
- `/specs` read-only spec list
|
|
@@ -60,11 +62,13 @@ Web UI (Next.js, src/app)
|
|
|
60
62
|
- Real-time updates via WebSocket (`localhost:3001`)
|
|
61
63
|
|
|
62
64
|
3. Specs on disk (`./devflow/specs/`)
|
|
65
|
+
|
|
63
66
|
- Source of truth for planning artifacts
|
|
64
67
|
- Per-spec files: `proposal.md`, `specs.md`, `design.md`, `tasks.md`, `.approvals.json`, `.meta.json`
|
|
65
68
|
- Approval state stores SHA256 content hash; editing approved artifacts auto-revokes approval
|
|
66
69
|
|
|
67
70
|
4. Database (`~/.devflow/devflow.db`)
|
|
71
|
+
|
|
68
72
|
- libSQL/SQLite + WAL mode
|
|
69
73
|
- Drizzle ORM tables: `projects`, `tasks`, `agent_activity`
|
|
70
74
|
- Promoted tasks reference spec by name (`specName` text field)
|
|
@@ -117,12 +121,12 @@ proposal -> (specs, design) -> tasks -> [Promote to Kanban]
|
|
|
117
121
|
|
|
118
122
|
## MCP Tool Categories
|
|
119
123
|
|
|
120
|
-
| Category | Tools
|
|
121
|
-
|
|
122
|
-
| Projects | `list_projects`, `create_project`, `get_project`, `update_project`, `get_or_create_project`
|
|
123
|
-
| Specs
|
|
124
|
-
| Tasks
|
|
125
|
-
| Agent
|
|
124
|
+
| Category | Tools |
|
|
125
|
+
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
126
|
+
| Projects | `list_projects`, `create_project`, `get_project`, `update_project`, `get_or_create_project` |
|
|
127
|
+
| Specs | `create_spec`, `list_specs`, `get_spec`, `get_spec_status`, `write_artifact`, `get_artifact`, `get_artifact_template`, `approve_artifact`, `draft_artifact`, `validate_spec`, `promote_spec`, `archive_spec` |
|
|
128
|
+
| Tasks | `list_tasks`, `get_task`, `create_task`, `create_tasks_bulk`, `update_task` |
|
|
129
|
+
| Agent | `check_in`, `check_out`, `log_activity`, `get_activity_log` |
|
|
126
130
|
|
|
127
131
|
## AI Agent Integration
|
|
128
132
|
|
|
@@ -135,6 +139,7 @@ args = ["mcp"]
|
|
|
135
139
|
```
|
|
136
140
|
|
|
137
141
|
Skills and slash commands install locations:
|
|
142
|
+
|
|
138
143
|
- Codex: `.codex/skills/` (project) and `~/.codex/prompts/` (global)
|
|
139
144
|
- Claude Code: `.claude/skills/` and `.claude/commands/df/`
|
|
140
145
|
|
|
@@ -151,7 +156,7 @@ devflow tool update # rewrite managed sections
|
|
|
151
156
|
|
|
152
157
|
`devflow init` also runs `tool install` automatically.
|
|
153
158
|
|
|
154
|
-
Available slash commands: `/df:new`, `/df:continue`, `/df:status`, `/df:validate`, `/df:promote`, `/df:apply`, `/df:archive`
|
|
159
|
+
Available slash commands: `/df:new`, `/df:continue`, `/df:status`, `/df:validate`, `/df:promote`, `/df:apply`, `/df:archive`, `/df:schema`
|
|
155
160
|
|
|
156
161
|
## Local Development Build & Install
|
|
157
162
|
|
|
@@ -175,6 +180,7 @@ bun install -g @sureshdsk/devflow-mcp
|
|
|
175
180
|
```
|
|
176
181
|
|
|
177
182
|
Rebuild rules:
|
|
183
|
+
|
|
178
184
|
- MCP server changes: no web rebuild needed (`devflow mcp` runs `src/mcp/server.ts` via Bun)
|
|
179
185
|
- Web UI changes: run `bun run build` before testing via `devflow dev`
|
|
180
186
|
- During active UI development, use `bun dev` for hot reload
|
|
@@ -30,12 +30,14 @@ By participating in this project, you agree to maintain a respectful and inclusi
|
|
|
30
30
|
### Pull Requests
|
|
31
31
|
|
|
32
32
|
1. **Fork the repository**
|
|
33
|
+
|
|
33
34
|
```bash
|
|
34
35
|
git clone https://github.com/yourusername/devflow-mcp.git
|
|
35
36
|
cd devflow-mcp
|
|
36
37
|
```
|
|
37
38
|
|
|
38
39
|
2. **Create a feature branch**
|
|
40
|
+
|
|
39
41
|
```bash
|
|
40
42
|
git checkout -b feature/your-feature-name
|
|
41
43
|
```
|
|
@@ -46,14 +48,15 @@ By participating in this project, you agree to maintain a respectful and inclusi
|
|
|
46
48
|
- Update documentation as needed
|
|
47
49
|
|
|
48
50
|
4. **Test your changes**
|
|
51
|
+
|
|
49
52
|
```bash
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
bun test # when tests are added
|
|
53
|
+
npm install
|
|
54
|
+
npm run typecheck
|
|
55
|
+
npm run lint
|
|
54
56
|
```
|
|
55
57
|
|
|
56
58
|
5. **Commit your changes**
|
|
59
|
+
|
|
57
60
|
```bash
|
|
58
61
|
git add .
|
|
59
62
|
git commit -m "feat: add your feature description"
|
|
@@ -78,7 +81,6 @@ By participating in this project, you agree to maintain a respectful and inclusi
|
|
|
78
81
|
|
|
79
82
|
### Prerequisites
|
|
80
83
|
|
|
81
|
-
- Bun v1.0+
|
|
82
84
|
- Node.js 20+
|
|
83
85
|
- Git
|
|
84
86
|
|
|
@@ -90,14 +92,14 @@ git clone https://github.com/YOUR_USERNAME/devflow-mcp.git
|
|
|
90
92
|
cd devflow-mcp
|
|
91
93
|
|
|
92
94
|
# Install dependencies
|
|
93
|
-
|
|
95
|
+
npm install
|
|
94
96
|
|
|
95
97
|
# Initialize database
|
|
96
|
-
|
|
98
|
+
npm run db:init
|
|
97
99
|
|
|
98
100
|
# Start development
|
|
99
|
-
|
|
100
|
-
|
|
101
|
+
npm run dev # Web UI
|
|
102
|
+
npm run mcp # MCP server
|
|
101
103
|
```
|
|
102
104
|
|
|
103
105
|
### MCP Server for Local Development
|
|
@@ -137,17 +139,29 @@ After changing MCP config, restart your coding tool's session for changes to tak
|
|
|
137
139
|
```
|
|
138
140
|
devflow-mcp/
|
|
139
141
|
├── src/
|
|
140
|
-
│ ├── app/ # Next.js app (web UI)
|
|
142
|
+
│ ├── app/ # Next.js app (web UI) + API routes
|
|
141
143
|
│ ├── components/ # React components
|
|
144
|
+
│ ├── hooks/ # React Query hooks (use-queries, use-websocket)
|
|
142
145
|
│ ├── db/ # Database schema and connection
|
|
143
146
|
│ ├── mcp/ # MCP server implementation
|
|
144
|
-
│
|
|
147
|
+
│ ├── lib/ # Utility functions (specs, schema, etc.)
|
|
148
|
+
│ └── schemas/ # Bundled spec workflow schemas
|
|
149
|
+
├── devflow/ # Project-level devflow data
|
|
150
|
+
│ ├── specs/ # Spec artifacts (proposal.md, specs.md, etc.)
|
|
151
|
+
│ └── project-config.json # Project config (default schema, etc.)
|
|
145
152
|
├── scripts/ # Build and setup scripts
|
|
146
153
|
├── drizzle/ # Database migrations
|
|
147
154
|
├── bin/ # CLI entry points
|
|
148
|
-
└──
|
|
155
|
+
└── .claude/ # Claude Code skills and commands
|
|
156
|
+
├── skills/ # Skill definitions (df-new, df-continue, etc.)
|
|
157
|
+
└── commands/ # Slash command definitions
|
|
149
158
|
```
|
|
150
159
|
|
|
160
|
+
### Data Storage
|
|
161
|
+
|
|
162
|
+
- **`~/.devflow/`** — Global data directory (SQLite database at `~/.devflow/devflow.db`). Shared across all projects.
|
|
163
|
+
- **`devflow/`** — Project-level directory for spec artifacts and project config. Committed to git.
|
|
164
|
+
|
|
151
165
|
## Code Style Guidelines
|
|
152
166
|
|
|
153
167
|
### TypeScript
|
|
@@ -166,7 +180,7 @@ devflow-mcp/
|
|
|
166
180
|
- Follow the "use client" directive pattern
|
|
167
181
|
|
|
168
182
|
```tsx
|
|
169
|
-
|
|
183
|
+
'use client';
|
|
170
184
|
|
|
171
185
|
interface MyComponentProps {
|
|
172
186
|
title: string;
|
|
@@ -196,15 +210,15 @@ export function MyComponent({ title, onAction }: MyComponentProps) {
|
|
|
196
210
|
```typescript
|
|
197
211
|
case "my_tool": {
|
|
198
212
|
const { param } = request.params.arguments as { param: string };
|
|
199
|
-
|
|
213
|
+
|
|
200
214
|
// Validate input
|
|
201
215
|
if (!param) {
|
|
202
216
|
throw new Error("param is required");
|
|
203
217
|
}
|
|
204
|
-
|
|
218
|
+
|
|
205
219
|
// Perform operation
|
|
206
220
|
const result = await db.select()...;
|
|
207
|
-
|
|
221
|
+
|
|
208
222
|
// Return structured response
|
|
209
223
|
return {
|
|
210
224
|
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
@@ -217,24 +231,29 @@ case "my_tool": {
|
|
|
217
231
|
### Manual Testing
|
|
218
232
|
|
|
219
233
|
1. Test the web UI:
|
|
234
|
+
|
|
220
235
|
```bash
|
|
221
|
-
|
|
236
|
+
npm run dev
|
|
222
237
|
```
|
|
223
|
-
|
|
238
|
+
|
|
239
|
+
- Create projects and tasks
|
|
224
240
|
- Test drag and drop
|
|
225
|
-
- Verify real-time updates
|
|
241
|
+
- Verify real-time updates via WebSocket + polling
|
|
226
242
|
|
|
227
243
|
2. Test the MCP server:
|
|
244
|
+
|
|
228
245
|
```bash
|
|
229
|
-
|
|
246
|
+
npm run mcp
|
|
230
247
|
```
|
|
231
|
-
|
|
248
|
+
|
|
249
|
+
- Use Claude Code, Cursor, or any MCP-compatible tool
|
|
232
250
|
- Test each tool
|
|
233
251
|
- Verify error handling
|
|
234
252
|
|
|
235
253
|
### Automated Testing (Coming Soon)
|
|
236
254
|
|
|
237
255
|
We're working on adding:
|
|
256
|
+
|
|
238
257
|
- Unit tests with Vitest
|
|
239
258
|
- Integration tests for MCP tools
|
|
240
259
|
- E2E tests with Playwright
|
|
@@ -272,14 +291,11 @@ async function createTask(projectId: string, title: string) {
|
|
|
272
291
|
```bash
|
|
273
292
|
# 1. Update src/db/schema.ts
|
|
274
293
|
# 2. Generate migration
|
|
275
|
-
|
|
294
|
+
npm run db:generate
|
|
276
295
|
|
|
277
296
|
# 3. Test migration
|
|
278
297
|
rm ~/.devflow/devflow.db
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
# 4. Verify schema
|
|
282
|
-
bun run db:studio
|
|
298
|
+
npm run db:init
|
|
283
299
|
```
|
|
284
300
|
|
|
285
301
|
### Migration Guidelines
|