@sureshdsk/devflow-mcp 3.0.0 → 3.0.1
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/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 +16 -7
- 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/.next/static/chunks/4f23f64d46848f57.js +1 -0
- package/.next/static/chunks/53081dcdcad4f31e.js +1 -0
- package/.next/static/chunks/{6a3d582315f1c214.js → 701cfcbb41e0ab47.js} +1 -1
- package/.next/static/chunks/ac4b6b4d5b7e486e.css +1 -0
- package/.next/static/chunks/d0309ea872db5d9f.js +1 -0
- package/.next/static/chunks/d4cf8893a018e965.js +1 -0
- package/.next/static/chunks/e6c0233269a4bd69.js +13 -0
- package/.next/static/chunks/{7e65cfa9841f66a5.js → e7d83ce855afe416.js} +2 -2
- package/.next/static/chunks/ee7035560fc9e5e9.js +1 -0
- package/.next/static/chunks/{turbopack-f4d3806ab575051d.js → turbopack-8b3b66a22a5e0fb4.js} +2 -2
- 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 +16 -7
- 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/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
- /package/.next/static/{5YFrdIQd1UU2IxLxekrU9 → Ql6qo0GYLL23WRu6ec4N5}/_buildManifest.js +0 -0
- /package/.next/static/{5YFrdIQd1UU2IxLxekrU9 → Ql6qo0GYLL23WRu6ec4N5}/_clientMiddlewareManifest.json +0 -0
- /package/.next/static/{5YFrdIQd1UU2IxLxekrU9 → Ql6qo0GYLL23WRu6ec4N5}/_ssgManifest.js +0 -0
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "typescript",
|
|
3
|
-
"author": "Microsoft Corp.",
|
|
4
|
-
"homepage": "https://www.typescriptlang.org/",
|
|
5
|
-
"version": "5.9.3",
|
|
6
|
-
"license": "Apache-2.0",
|
|
7
|
-
"description": "TypeScript is a language for application scale JavaScript development",
|
|
8
|
-
"keywords": [
|
|
9
|
-
"TypeScript",
|
|
10
|
-
"Microsoft",
|
|
11
|
-
"compiler",
|
|
12
|
-
"language",
|
|
13
|
-
"javascript"
|
|
14
|
-
],
|
|
15
|
-
"bugs": {
|
|
16
|
-
"url": "https://github.com/microsoft/TypeScript/issues"
|
|
17
|
-
},
|
|
18
|
-
"repository": {
|
|
19
|
-
"type": "git",
|
|
20
|
-
"url": "https://github.com/microsoft/TypeScript.git"
|
|
21
|
-
},
|
|
22
|
-
"main": "./lib/typescript.js",
|
|
23
|
-
"typings": "./lib/typescript.d.ts",
|
|
24
|
-
"bin": {
|
|
25
|
-
"tsc": "./bin/tsc",
|
|
26
|
-
"tsserver": "./bin/tsserver"
|
|
27
|
-
},
|
|
28
|
-
"engines": {
|
|
29
|
-
"node": ">=14.17"
|
|
30
|
-
},
|
|
31
|
-
"files": [
|
|
32
|
-
"bin",
|
|
33
|
-
"lib",
|
|
34
|
-
"!lib/enu",
|
|
35
|
-
"LICENSE.txt",
|
|
36
|
-
"README.md",
|
|
37
|
-
"SECURITY.md",
|
|
38
|
-
"ThirdPartyNoticeText.txt",
|
|
39
|
-
"!**/.gitattributes"
|
|
40
|
-
],
|
|
41
|
-
"devDependencies": {
|
|
42
|
-
"@dprint/formatter": "^0.4.1",
|
|
43
|
-
"@dprint/typescript": "0.93.4",
|
|
44
|
-
"@esfx/canceltoken": "^1.0.0",
|
|
45
|
-
"@eslint/js": "^9.20.0",
|
|
46
|
-
"@octokit/rest": "^21.1.1",
|
|
47
|
-
"@types/chai": "^4.3.20",
|
|
48
|
-
"@types/diff": "^7.0.1",
|
|
49
|
-
"@types/minimist": "^1.2.5",
|
|
50
|
-
"@types/mocha": "^10.0.10",
|
|
51
|
-
"@types/ms": "^0.7.34",
|
|
52
|
-
"@types/node": "latest",
|
|
53
|
-
"@types/source-map-support": "^0.5.10",
|
|
54
|
-
"@types/which": "^3.0.4",
|
|
55
|
-
"@typescript-eslint/rule-tester": "^8.24.1",
|
|
56
|
-
"@typescript-eslint/type-utils": "^8.24.1",
|
|
57
|
-
"@typescript-eslint/utils": "^8.24.1",
|
|
58
|
-
"azure-devops-node-api": "^14.1.0",
|
|
59
|
-
"c8": "^10.1.3",
|
|
60
|
-
"chai": "^4.5.0",
|
|
61
|
-
"chokidar": "^4.0.3",
|
|
62
|
-
"diff": "^7.0.0",
|
|
63
|
-
"dprint": "^0.49.0",
|
|
64
|
-
"esbuild": "^0.25.0",
|
|
65
|
-
"eslint": "^9.20.1",
|
|
66
|
-
"eslint-formatter-autolinkable-stylish": "^1.4.0",
|
|
67
|
-
"eslint-plugin-regexp": "^2.7.0",
|
|
68
|
-
"fast-xml-parser": "^4.5.2",
|
|
69
|
-
"glob": "^10.4.5",
|
|
70
|
-
"globals": "^15.15.0",
|
|
71
|
-
"hereby": "^1.10.0",
|
|
72
|
-
"jsonc-parser": "^3.3.1",
|
|
73
|
-
"knip": "^5.44.4",
|
|
74
|
-
"minimist": "^1.2.8",
|
|
75
|
-
"mocha": "^10.8.2",
|
|
76
|
-
"mocha-fivemat-progress-reporter": "^0.1.0",
|
|
77
|
-
"monocart-coverage-reports": "^2.12.1",
|
|
78
|
-
"ms": "^2.1.3",
|
|
79
|
-
"picocolors": "^1.1.1",
|
|
80
|
-
"playwright": "^1.50.1",
|
|
81
|
-
"source-map-support": "^0.5.21",
|
|
82
|
-
"tslib": "^2.8.1",
|
|
83
|
-
"typescript": "^5.7.3",
|
|
84
|
-
"typescript-eslint": "^8.24.1",
|
|
85
|
-
"which": "^3.0.1"
|
|
86
|
-
},
|
|
87
|
-
"overrides": {
|
|
88
|
-
"typescript@*": "$typescript"
|
|
89
|
-
},
|
|
90
|
-
"scripts": {
|
|
91
|
-
"test": "hereby runtests-parallel --light=false",
|
|
92
|
-
"test:eslint-rules": "hereby run-eslint-rules-tests",
|
|
93
|
-
"build": "npm run build:compiler && npm run build:tests",
|
|
94
|
-
"build:compiler": "hereby local",
|
|
95
|
-
"build:tests": "hereby tests",
|
|
96
|
-
"build:tests:notypecheck": "hereby tests --no-typecheck",
|
|
97
|
-
"clean": "hereby clean",
|
|
98
|
-
"gulp": "hereby",
|
|
99
|
-
"lint": "hereby lint",
|
|
100
|
-
"knip": "hereby knip",
|
|
101
|
-
"format": "dprint fmt",
|
|
102
|
-
"setup-hooks": "node scripts/link-hooks.mjs"
|
|
103
|
-
},
|
|
104
|
-
"browser": {
|
|
105
|
-
"fs": false,
|
|
106
|
-
"os": false,
|
|
107
|
-
"path": false,
|
|
108
|
-
"crypto": false,
|
|
109
|
-
"buffer": false,
|
|
110
|
-
"source-map-support": false,
|
|
111
|
-
"inspector": false,
|
|
112
|
-
"perf_hooks": false
|
|
113
|
-
},
|
|
114
|
-
"packageManager": "npm@8.19.4",
|
|
115
|
-
"volta": {
|
|
116
|
-
"node": "20.1.0",
|
|
117
|
-
"npm": "8.19.4"
|
|
118
|
-
},
|
|
119
|
-
"gitHead": "c63de15a992d37f0d6cec03ac7631872838602cb"
|
|
120
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import * as React from "react";
|
|
4
|
-
import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
|
|
5
|
-
|
|
6
|
-
const Collapsible = CollapsiblePrimitive.Root;
|
|
7
|
-
|
|
8
|
-
const CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;
|
|
9
|
-
|
|
10
|
-
const CollapsibleContent = CollapsiblePrimitive.CollapsibleContent;
|
|
11
|
-
|
|
12
|
-
export { Collapsible, CollapsibleTrigger, CollapsibleContent };
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import * as React from "react";
|
|
4
|
-
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
5
|
-
import { X } from "lucide-react";
|
|
6
|
-
import { cn } from "@/lib/utils";
|
|
7
|
-
|
|
8
|
-
const Sheet = DialogPrimitive.Root;
|
|
9
|
-
const SheetTrigger = DialogPrimitive.Trigger;
|
|
10
|
-
const SheetClose = DialogPrimitive.Close;
|
|
11
|
-
const SheetPortal = DialogPrimitive.Portal;
|
|
12
|
-
|
|
13
|
-
const SheetOverlay = React.forwardRef<
|
|
14
|
-
React.ElementRef<typeof DialogPrimitive.Overlay>,
|
|
15
|
-
React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>
|
|
16
|
-
>(({ className, ...props }, ref) => (
|
|
17
|
-
<DialogPrimitive.Overlay
|
|
18
|
-
className={cn(
|
|
19
|
-
"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
20
|
-
className
|
|
21
|
-
)}
|
|
22
|
-
{...props}
|
|
23
|
-
ref={ref}
|
|
24
|
-
/>
|
|
25
|
-
));
|
|
26
|
-
SheetOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
27
|
-
|
|
28
|
-
interface SheetContentProps
|
|
29
|
-
extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> {
|
|
30
|
-
side?: "top" | "bottom" | "left" | "right";
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const sheetVariants = {
|
|
34
|
-
top: "inset-x-0 top-0 border-b-4 data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
|
|
35
|
-
bottom:
|
|
36
|
-
"inset-x-0 bottom-0 border-t-4 data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
|
|
37
|
-
left: "inset-y-0 left-0 h-full w-3/4 border-r-4 data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
|
|
38
|
-
right:
|
|
39
|
-
"inset-y-0 right-0 h-full w-3/4 border-l-4 data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-2xl",
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
const SheetContent = React.forwardRef<
|
|
43
|
-
React.ElementRef<typeof DialogPrimitive.Content>,
|
|
44
|
-
SheetContentProps
|
|
45
|
-
>(({ side = "right", className, children, ...props }, ref) => (
|
|
46
|
-
<SheetPortal>
|
|
47
|
-
<SheetOverlay />
|
|
48
|
-
<DialogPrimitive.Content
|
|
49
|
-
ref={ref}
|
|
50
|
-
className={cn(
|
|
51
|
-
"fixed z-50 gap-4 border-black bg-white p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
|
|
52
|
-
sheetVariants[side],
|
|
53
|
-
className
|
|
54
|
-
)}
|
|
55
|
-
{...props}
|
|
56
|
-
>
|
|
57
|
-
{children}
|
|
58
|
-
<DialogPrimitive.Close className="absolute right-4 top-4 border-2 border-black bg-white p-1 hover:bg-gray-100 focus:outline-none">
|
|
59
|
-
<X className="h-4 w-4" />
|
|
60
|
-
<span className="sr-only">Close</span>
|
|
61
|
-
</DialogPrimitive.Close>
|
|
62
|
-
</DialogPrimitive.Content>
|
|
63
|
-
</SheetPortal>
|
|
64
|
-
));
|
|
65
|
-
SheetContent.displayName = DialogPrimitive.Content.displayName;
|
|
66
|
-
|
|
67
|
-
const SheetHeader = ({
|
|
68
|
-
className,
|
|
69
|
-
...props
|
|
70
|
-
}: React.HTMLAttributes<HTMLDivElement>) => (
|
|
71
|
-
<div
|
|
72
|
-
className={cn(
|
|
73
|
-
"flex flex-col space-y-2 text-center sm:text-left",
|
|
74
|
-
className
|
|
75
|
-
)}
|
|
76
|
-
{...props}
|
|
77
|
-
/>
|
|
78
|
-
);
|
|
79
|
-
SheetHeader.displayName = "SheetHeader";
|
|
80
|
-
|
|
81
|
-
const SheetFooter = ({
|
|
82
|
-
className,
|
|
83
|
-
...props
|
|
84
|
-
}: React.HTMLAttributes<HTMLDivElement>) => (
|
|
85
|
-
<div
|
|
86
|
-
className={cn(
|
|
87
|
-
"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
|
|
88
|
-
className
|
|
89
|
-
)}
|
|
90
|
-
{...props}
|
|
91
|
-
/>
|
|
92
|
-
);
|
|
93
|
-
SheetFooter.displayName = "SheetFooter";
|
|
94
|
-
|
|
95
|
-
const SheetTitle = React.forwardRef<
|
|
96
|
-
React.ElementRef<typeof DialogPrimitive.Title>,
|
|
97
|
-
React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>
|
|
98
|
-
>(({ className, ...props }, ref) => (
|
|
99
|
-
<DialogPrimitive.Title
|
|
100
|
-
ref={ref}
|
|
101
|
-
className={cn("text-xl font-bold uppercase tracking-wide", className)}
|
|
102
|
-
{...props}
|
|
103
|
-
/>
|
|
104
|
-
));
|
|
105
|
-
SheetTitle.displayName = DialogPrimitive.Title.displayName;
|
|
106
|
-
|
|
107
|
-
const SheetDescription = React.forwardRef<
|
|
108
|
-
React.ElementRef<typeof DialogPrimitive.Description>,
|
|
109
|
-
React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>
|
|
110
|
-
>(({ className, ...props }, ref) => (
|
|
111
|
-
<DialogPrimitive.Description
|
|
112
|
-
ref={ref}
|
|
113
|
-
className={cn("text-sm text-muted-foreground", className)}
|
|
114
|
-
{...props}
|
|
115
|
-
/>
|
|
116
|
-
));
|
|
117
|
-
SheetDescription.displayName = DialogPrimitive.Description.displayName;
|
|
118
|
-
|
|
119
|
-
export {
|
|
120
|
-
Sheet,
|
|
121
|
-
SheetPortal,
|
|
122
|
-
SheetOverlay,
|
|
123
|
-
SheetTrigger,
|
|
124
|
-
SheetClose,
|
|
125
|
-
SheetContent,
|
|
126
|
-
SheetHeader,
|
|
127
|
-
SheetFooter,
|
|
128
|
-
SheetTitle,
|
|
129
|
-
SheetDescription,
|
|
130
|
-
};
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import * as React from "react";
|
|
4
|
-
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
5
|
-
import { cn } from "@/lib/utils";
|
|
6
|
-
|
|
7
|
-
const Tabs = TabsPrimitive.Root;
|
|
8
|
-
|
|
9
|
-
const TabsList = React.forwardRef<
|
|
10
|
-
React.ElementRef<typeof TabsPrimitive.List>,
|
|
11
|
-
React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>
|
|
12
|
-
>(({ className, ...props }, ref) => (
|
|
13
|
-
<TabsPrimitive.List
|
|
14
|
-
ref={ref}
|
|
15
|
-
className={cn(
|
|
16
|
-
"inline-flex h-12 items-center justify-center gap-1 bg-white border-4 border-black p-1",
|
|
17
|
-
className
|
|
18
|
-
)}
|
|
19
|
-
{...props}
|
|
20
|
-
/>
|
|
21
|
-
));
|
|
22
|
-
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
23
|
-
|
|
24
|
-
const TabsTrigger = React.forwardRef<
|
|
25
|
-
React.ElementRef<typeof TabsPrimitive.Trigger>,
|
|
26
|
-
React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>
|
|
27
|
-
>(({ className, ...props }, ref) => (
|
|
28
|
-
<TabsPrimitive.Trigger
|
|
29
|
-
ref={ref}
|
|
30
|
-
className={cn(
|
|
31
|
-
"inline-flex items-center justify-center whitespace-nowrap px-4 py-2 text-sm font-bold uppercase tracking-wide transition-all",
|
|
32
|
-
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-black focus-visible:ring-offset-2",
|
|
33
|
-
"disabled:pointer-events-none disabled:opacity-50",
|
|
34
|
-
"border-2 border-transparent hover:bg-gray-100",
|
|
35
|
-
"data-[state=active]:border-black data-[state=active]:bg-[--color-primary] data-[state=active]:shadow-[2px_2px_0px_0px_rgba(0,0,0,1)]",
|
|
36
|
-
className
|
|
37
|
-
)}
|
|
38
|
-
{...props}
|
|
39
|
-
/>
|
|
40
|
-
));
|
|
41
|
-
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
42
|
-
|
|
43
|
-
const TabsContent = React.forwardRef<
|
|
44
|
-
React.ElementRef<typeof TabsPrimitive.Content>,
|
|
45
|
-
React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>
|
|
46
|
-
>(({ className, ...props }, ref) => (
|
|
47
|
-
<TabsPrimitive.Content
|
|
48
|
-
ref={ref}
|
|
49
|
-
className={cn(
|
|
50
|
-
"mt-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-black focus-visible:ring-offset-2",
|
|
51
|
-
className
|
|
52
|
-
)}
|
|
53
|
-
{...props}
|
|
54
|
-
/>
|
|
55
|
-
));
|
|
56
|
-
TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
57
|
-
|
|
58
|
-
export { Tabs, TabsList, TabsTrigger, TabsContent };
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,41241,19556,9752,20486,e=>{"use strict";var t=e.i(49915),r=(0,e.i(65485).default)(Object.keys,Object),a=Object.prototype.hasOwnProperty;let s=function(e){if(!(0,t.default)(e))return r(e);var s=[];for(var n in Object(e))a.call(e,n)&&"constructor"!=n&&s.push(n);return s};e.s(["default",0,s],19556);var n=e.i(47244),i=e.i(56176),l=(0,n.default)(i.default,"DataView"),o=e.i(44483),c=(0,n.default)(i.default,"Promise"),d=(0,n.default)(i.default,"Set");e.s(["default",0,d],9752);var p=(0,n.default)(i.default,"WeakMap"),u=e.i(35287),f=e.i(66762),h="[object Map]",m="[object Promise]",g="[object Set]",y="[object WeakMap]",b="[object DataView]",k=(0,f.default)(l),x=(0,f.default)(o.default),_=(0,f.default)(c),v=(0,f.default)(d),w=(0,f.default)(p),j=u.default;(l&&j(new l(new ArrayBuffer(1)))!=b||o.default&&j(new o.default)!=h||c&&j(c.resolve())!=m||d&&j(new d)!=g||p&&j(new p)!=y)&&(j=function(e){var t=(0,u.default)(e),r="[object Object]"==t?e.constructor:void 0,a=r?(0,f.default)(r):"";if(a)switch(a){case k:return b;case x:return h;case _:return m;case v:return g;case w:return y}return t});let M=j;e.s(["default",0,M],20486);var $=e.i(15300),L=e.i(44071),S=e.i(41338),P=e.i(3745),O=e.i(1645),E=Object.prototype.hasOwnProperty;e.s(["default",0,function(e){if(null==e)return!0;if((0,S.default)(e)&&((0,L.default)(e)||"string"==typeof e||"function"==typeof e.splice||(0,P.default)(e)||(0,O.default)(e)||(0,$.default)(e)))return!e.length;var r=M(e);if("[object Map]"==r||"[object Set]"==r)return!e.size;if((0,t.default)(e))return!s(e).length;for(var a in e)if(E.call(e,a))return!1;return!0}],41241)},83996,e=>{"use strict";var t=e.i(80926),r=e.i(71206);e.i(47716);var a=e.i(23685),s=(0,r.__name)(e=>{let{securityLevel:r}=(0,t.getConfig2)(),s=(0,a.select)("body");if("sandbox"===r){let t=(0,a.select)(`#i${e}`),r=t.node()?.contentDocument??document;s=(0,a.select)(r.body)}return s.select(`#${e}`)},"selectSvgElement");e.s(["selectSvgElement",()=>s])},2256,e=>{"use strict";var t=(0,e.i(71206).__name)(({flowchart:e})=>{let t=e?.subGraphTitleMargin?.top??0,r=e?.subGraphTitleMargin?.bottom??0;return{subGraphTitleTopMargin:t,subGraphTitleBottomMargin:r,subGraphTitleTotalMargin:t+r}},"getSubGraphTitleMargins");e.s(["getSubGraphTitleMargins",()=>t])},33448,e=>{"use strict";var t=e.i(80926),r=e.i(71206),a=(0,r.__name)(e=>{let{handDrawnSeed:r}=(0,t.getConfig2)();return{fill:e,hachureAngle:120,hachureGap:4,fillWeight:2,roughness:.7,stroke:e,seed:r}},"solidStateFill"),s=(0,r.__name)(e=>{let t=n([...e.cssCompiledStyles||[],...e.cssStyles||[],...e.labelStyle||[]]);return{stylesMap:t,stylesArray:[...t]}},"compileStyles"),n=(0,r.__name)(e=>{let t=new Map;return e.forEach(e=>{let[r,a]=e.split(":");t.set(r.trim(),a?.trim())}),t},"styles2Map"),i=(0,r.__name)(e=>"color"===e||"font-size"===e||"font-family"===e||"font-weight"===e||"font-style"===e||"text-decoration"===e||"text-align"===e||"text-transform"===e||"line-height"===e||"letter-spacing"===e||"word-spacing"===e||"text-shadow"===e||"text-overflow"===e||"white-space"===e||"word-wrap"===e||"word-break"===e||"overflow-wrap"===e||"hyphens"===e,"isLabelStyle"),l=(0,r.__name)(e=>{let{stylesArray:t}=s(e),r=[],a=[],n=[],l=[];return t.forEach(e=>{let t=e[0];i(t)?r.push(e.join(":")+" !important"):(a.push(e.join(":")+" !important"),t.includes("stroke")&&n.push(e.join(":")+" !important"),"fill"===t&&l.push(e.join(":")+" !important"))}),{labelStyles:r.join(";"),nodeStyles:a.join(";"),stylesArray:t,borderStyles:n,backgroundStyles:l}},"styles2String"),o=(0,r.__name)((e,r)=>{let{themeVariables:a,handDrawnSeed:n}=(0,t.getConfig2)(),{nodeBorder:i,mainBkg:l}=a,{stylesMap:o}=s(e);return Object.assign({roughness:.7,fill:o.get("fill")||l,fillStyle:"hachure",fillWeight:4,hachureGap:5.2,stroke:o.get("stroke")||i,seed:n,strokeWidth:o.get("stroke-width")?.replace("px","")||1.3,fillLineDash:[0,0],strokeLineDash:c(o.get("stroke-dasharray"))},r)},"userNodeOverrides"),c=(0,r.__name)(e=>{if(!e)return[0,0];let t=e.trim().split(/\s+/).map(Number);if(1===t.length){let e=isNaN(t[0])?0:t[0];return[e,e]}return[isNaN(t[0])?0:t[0],isNaN(t[1])?0:t[1]]},"getStrokeDashArray");e.s(["compileStyles",()=>s,"isLabelStyle",()=>i,"solidStateFill",()=>a,"styles2String",()=>l,"userNodeOverrides",()=>o])},75058,16888,e=>{"use strict";e.s(["default",0,function(e){return function(){return e}}],75058);let t=Math.PI,r=2*t,a=r-1e-6;function s(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=arguments[t]+e[t]}class n{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==e?s:function(e){let t=Math.floor(e);if(!(t>=0))throw Error(`invalid digits: ${e}`);if(t>15)return s;let r=10**t;return function(e){this._+=e[0];for(let t=1,a=e.length;t<a;++t)this._+=Math.round(arguments[t]*r)/r+e[t]}}(e)}moveTo(e,t){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,t){this._append`L${this._x1=+e},${this._y1=+t}`}quadraticCurveTo(e,t,r,a){this._append`Q${+e},${+t},${this._x1=+r},${this._y1=+a}`}bezierCurveTo(e,t,r,a,s,n){this._append`C${+e},${+t},${+r},${+a},${this._x1=+s},${this._y1=+n}`}arcTo(e,r,a,s,n){if(e*=1,r*=1,a*=1,s*=1,(n*=1)<0)throw Error(`negative radius: ${n}`);let i=this._x1,l=this._y1,o=a-e,c=s-r,d=i-e,p=l-r,u=d*d+p*p;if(null===this._x1)this._append`M${this._x1=e},${this._y1=r}`;else if(u>1e-6)if(Math.abs(p*o-c*d)>1e-6&&n){let f=a-i,h=s-l,m=o*o+c*c,g=Math.sqrt(m),y=Math.sqrt(u),b=n*Math.tan((t-Math.acos((m+u-(f*f+h*h))/(2*g*y)))/2),k=b/y,x=b/g;Math.abs(k-1)>1e-6&&this._append`L${e+k*d},${r+k*p}`,this._append`A${n},${n},0,0,${+(p*f>d*h)},${this._x1=e+x*o},${this._y1=r+x*c}`}else this._append`L${this._x1=e},${this._y1=r}`}arc(e,s,n,i,l,o){if(e*=1,s*=1,n*=1,o=!!o,n<0)throw Error(`negative radius: ${n}`);let c=n*Math.cos(i),d=n*Math.sin(i),p=e+c,u=s+d,f=1^o,h=o?i-l:l-i;null===this._x1?this._append`M${p},${u}`:(Math.abs(this._x1-p)>1e-6||Math.abs(this._y1-u)>1e-6)&&this._append`L${p},${u}`,n&&(h<0&&(h=h%r+r),h>a?this._append`A${n},${n},0,1,${f},${e-c},${s-d}A${n},${n},0,1,${f},${this._x1=p},${this._y1=u}`:h>1e-6&&this._append`A${n},${n},0,${+(h>=t)},${f},${this._x1=e+n*Math.cos(l)},${this._y1=s+n*Math.sin(l)}`)}rect(e,t,r,a){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${r*=1}v${+a}h${-r}Z`}toString(){return this._}}function i(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(null==r)t=null;else{let e=Math.floor(r);if(!(e>=0))throw RangeError(`invalid digits: ${r}`);t=e}return e},()=>new n(t)}n.prototype,e.s(["withPath",()=>i],16888)},62990,e=>{"use strict";Array.prototype.slice,e.s(["default",0,function(e){return"object"==typeof e&&"length"in e?e:Array.from(e)}])},85833,e=>{"use strict";var t=e.i(62990),r=e.i(75058),a=e.i(48114),s=e.i(16888);function n(e){return e[0]}function i(e){return e[1]}e.s(["line",0,function(e,l){var o=(0,r.default)(!0),c=null,d=a.default,p=null,u=(0,s.withPath)(f);function f(r){var a,s,n,i=(r=(0,t.default)(r)).length,f=!1;for(null==c&&(p=d(n=u())),a=0;a<=i;++a)!(a<i&&o(s=r[a],a,r))===f&&((f=!f)?p.lineStart():p.lineEnd()),f&&p.point(+e(s,a,r),+l(s,a,r));if(n)return p=null,n+""||null}return e="function"==typeof e?e:void 0===e?n:(0,r.default)(e),l="function"==typeof l?l:void 0===l?i:(0,r.default)(l),f.x=function(t){return arguments.length?(e="function"==typeof t?t:(0,r.default)(+t),f):e},f.y=function(e){return arguments.length?(l="function"==typeof e?e:(0,r.default)(+e),f):l},f.defined=function(e){return arguments.length?(o="function"==typeof e?e:(0,r.default)(!!e),f):o},f.curve=function(e){return arguments.length?(d=e,null!=c&&(p=d(c)),f):d},f.context=function(e){return arguments.length?(null==e?c=p=null:p=d(c=e),f):c},f}],85833)},20502,e=>{"use strict";var t=e.i(71206),r={aggregation:17.25,extension:17.25,composition:17.25,dependency:6,lollipop:13.5,arrow_point:4},a={arrow_point:9,arrow_cross:12.5,arrow_circle:12.5};function s(e,t){if(void 0===e||void 0===t)return{angle:0,deltaX:0,deltaY:0};e=n(e),t=n(t);let[r,a]=[e.x,e.y],[s,i]=[t.x,t.y],l=s-r,o=i-a;return{angle:Math.atan(o/l),deltaX:l,deltaY:o}}(0,t.__name)(s,"calculateDeltaAndAngle");var n=(0,t.__name)(e=>Array.isArray(e)?{x:e[0],y:e[1]}:e,"pointTransformer"),i=(0,t.__name)(e=>({x:(0,t.__name)(function(t,a,i){let l=0,o=n(i[0]).x<n(i[i.length-1]).x?"left":"right";if(0===a&&Object.hasOwn(r,e.arrowTypeStart)){let{angle:t,deltaX:a}=s(i[0],i[1]);l=r[e.arrowTypeStart]*Math.cos(t)*(a>=0?1:-1)}else if(a===i.length-1&&Object.hasOwn(r,e.arrowTypeEnd)){let{angle:t,deltaX:a}=s(i[i.length-1],i[i.length-2]);l=r[e.arrowTypeEnd]*Math.cos(t)*(a>=0?1:-1)}let c=Math.abs(n(t).x-n(i[i.length-1]).x),d=Math.abs(n(t).y-n(i[i.length-1]).y),p=Math.abs(n(t).x-n(i[0]).x),u=Math.abs(n(t).y-n(i[0]).y),f=r[e.arrowTypeStart],h=r[e.arrowTypeEnd];if(c<h&&c>0&&d<h){let e=h+1-c;e*="right"===o?-1:1,l-=e}if(p<f&&p>0&&u<f){let e=f+1-p;e*="right"===o?-1:1,l+=e}return n(t).x+l},"x"),y:(0,t.__name)(function(t,a,i){let l=0,o=n(i[0]).y<n(i[i.length-1]).y?"down":"up";if(0===a&&Object.hasOwn(r,e.arrowTypeStart)){let{angle:t,deltaY:a}=s(i[0],i[1]);l=r[e.arrowTypeStart]*Math.abs(Math.sin(t))*(a>=0?1:-1)}else if(a===i.length-1&&Object.hasOwn(r,e.arrowTypeEnd)){let{angle:t,deltaY:a}=s(i[i.length-1],i[i.length-2]);l=r[e.arrowTypeEnd]*Math.abs(Math.sin(t))*(a>=0?1:-1)}let c=Math.abs(n(t).y-n(i[i.length-1]).y),d=Math.abs(n(t).x-n(i[i.length-1]).x),p=Math.abs(n(t).y-n(i[0]).y),u=Math.abs(n(t).x-n(i[0]).x),f=r[e.arrowTypeStart],h=r[e.arrowTypeEnd];if(c<h&&c>0&&d<h){let e=h+1-c;e*="up"===o?-1:1,l-=e}if(p<f&&p>0&&u<f){let e=f+1-p;e*="up"===o?-1:1,l+=e}return n(t).y+l},"y")}),"getLineFunctionsWithOffset");e.s(["getLineFunctionsWithOffset",()=>i,"markerOffsets",()=>r,"markerOffsets2",()=>a])},54802,e=>{"use strict";var t=e.i(20502),r=e.i(7983),a=e.i(2256),s=e.i(33448),n=e.i(80262),i=e.i(95923),l=e.i(80926),o=e.i(71206);e.i(47716);var c=e.i(104),d=e.i(51262),p=e.i(26157),u=e.i(72200),f=e.i(22914),h=e.i(93158),m=e.i(63823),g=e.i(92536),y=e.i(26619),b=e.i(81142),k=e.i(357),x=e.i(63018),_=e.i(85833),v=e.i(23685),w=e.i(83272),j=(0,o.__name)((e,t,r,a,s,n)=>{t.arrowTypeStart&&$(e,"start",t.arrowTypeStart,r,a,s,n),t.arrowTypeEnd&&$(e,"end",t.arrowTypeEnd,r,a,s,n)},"addEdgeMarkers"),M={arrow_cross:{type:"cross",fill:!1},arrow_point:{type:"point",fill:!0},arrow_barb:{type:"barb",fill:!0},arrow_circle:{type:"circle",fill:!1},aggregation:{type:"aggregation",fill:!1},extension:{type:"extension",fill:!1},composition:{type:"composition",fill:!0},dependency:{type:"dependency",fill:!0},lollipop:{type:"lollipop",fill:!1},only_one:{type:"onlyOne",fill:!1},zero_or_one:{type:"zeroOrOne",fill:!1},one_or_more:{type:"oneOrMore",fill:!1},zero_or_more:{type:"zeroOrMore",fill:!1},requirement_arrow:{type:"requirement_arrow",fill:!1},requirement_contains:{type:"requirement_contains",fill:!1}},$=(0,o.__name)((e,t,r,a,s,n,i)=>{let l=M[r];if(!l)return void o.log.warn(`Unknown arrow type: ${r}`);let c=l.type,d=`${s}_${n}-${c}${"start"===t?"Start":"End"}`;if(i&&""!==i.trim()){let r=i.replace(/[^\dA-Za-z]/g,"_"),s=`${d}_${r}`;if(!document.getElementById(s)){let e=document.getElementById(d);if(e){let t=e.cloneNode(!0);t.id=s,t.querySelectorAll("path, circle, line").forEach(e=>{e.setAttribute("stroke",i),l.fill&&e.setAttribute("fill",i)}),e.parentNode?.appendChild(t)}}e.attr(`marker-${t}`,`url(${a}#${s})`)}else e.attr(`marker-${t}`,`url(${a}#${d})`)},"addEdgeMarker"),L=new Map,S=new Map,P=(0,o.__name)(()=>{L.clear(),S.clear()},"clear"),O=(0,o.__name)(e=>e?e.reduce((e,t)=>e+";"+t,""):"","getLabelStyles"),E=(0,o.__name)(async(e,t)=>{let a,i=(0,l.evaluate)((0,l.getConfig2)().flowchart.htmlLabels),{labelStyles:c}=(0,s.styles2String)(t);t.labelStyle=c;let d=await (0,n.createText)(e,t.label,{style:t.labelStyle,useHtmlLabels:i,addSvgBackground:!0,isNode:!1});o.log.info("abc82",t,t.labelType);let p=e.insert("g").attr("class","edgeLabel"),u=p.insert("g").attr("class","label").attr("data-id",t.id);u.node().appendChild(d);let f=d.getBBox();if(i){let e=d.children[0],t=(0,v.select)(d);f=e.getBoundingClientRect(),t.attr("width",f.width),t.attr("height",f.height)}if(u.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),L.set(t.id,p),t.width=f.width,t.height=f.height,t.startLabelLeft){let s=await (0,r.createLabel_default)(t.startLabelLeft,O(t.labelStyle)),n=e.insert("g").attr("class","edgeTerminals"),i=n.insert("g").attr("class","inner");a=i.node().appendChild(s);let l=s.getBBox();i.attr("transform","translate("+-l.width/2+", "+-l.height/2+")"),S.get(t.id)||S.set(t.id,{}),S.get(t.id).startLeft=n,T(a,t.startLabelLeft)}if(t.startLabelRight){let s=await (0,r.createLabel_default)(t.startLabelRight,O(t.labelStyle)),n=e.insert("g").attr("class","edgeTerminals"),i=n.insert("g").attr("class","inner");a=n.node().appendChild(s),i.node().appendChild(s);let l=s.getBBox();i.attr("transform","translate("+-l.width/2+", "+-l.height/2+")"),S.get(t.id)||S.set(t.id,{}),S.get(t.id).startRight=n,T(a,t.startLabelRight)}if(t.endLabelLeft){let s=await (0,r.createLabel_default)(t.endLabelLeft,O(t.labelStyle)),n=e.insert("g").attr("class","edgeTerminals"),i=n.insert("g").attr("class","inner");a=i.node().appendChild(s);let l=s.getBBox();i.attr("transform","translate("+-l.width/2+", "+-l.height/2+")"),n.node().appendChild(s),S.get(t.id)||S.set(t.id,{}),S.get(t.id).endLeft=n,T(a,t.endLabelLeft)}if(t.endLabelRight){let s=await (0,r.createLabel_default)(t.endLabelRight,O(t.labelStyle)),n=e.insert("g").attr("class","edgeTerminals"),i=n.insert("g").attr("class","inner");a=i.node().appendChild(s);let l=s.getBBox();i.attr("transform","translate("+-l.width/2+", "+-l.height/2+")"),n.node().appendChild(s),S.get(t.id)||S.set(t.id,{}),S.get(t.id).endRight=n,T(a,t.endLabelRight)}return d},"insertEdgeLabel");function T(e,t){(0,l.getConfig2)().flowchart.htmlLabels&&e&&(e.style.width=9*t.length+"px",e.style.height="12px")}(0,o.__name)(T,"setTerminalWidth");var N=(0,o.__name)((e,t)=>{o.log.debug("Moving label abc88 ",e.id,e.label,L.get(e.id),t);let r=t.updatedPath?t.updatedPath:t.originalPath,s=(0,l.getConfig2)(),{subGraphTitleTotalMargin:n}=(0,a.getSubGraphTitleMargins)(s);if(e.label){let a=L.get(e.id),s=e.x,l=e.y;if(r){let a=i.utils_default.calcLabelPosition(r);o.log.debug("Moving label "+e.label+" from (",s,",",l,") to (",a.x,",",a.y,") abc88"),t.updatedPath&&(s=a.x,l=a.y)}a.attr("transform",`translate(${s}, ${l+n/2})`)}if(e.startLabelLeft){let t=S.get(e.id).startLeft,a=e.x,s=e.y;if(r){let t=i.utils_default.calcTerminalLabelPosition(10*!!e.arrowTypeStart,"start_left",r);a=t.x,s=t.y}t.attr("transform",`translate(${a}, ${s})`)}if(e.startLabelRight){let t=S.get(e.id).startRight,a=e.x,s=e.y;if(r){let t=i.utils_default.calcTerminalLabelPosition(10*!!e.arrowTypeStart,"start_right",r);a=t.x,s=t.y}t.attr("transform",`translate(${a}, ${s})`)}if(e.endLabelLeft){let t=S.get(e.id).endLeft,a=e.x,s=e.y;if(r){let t=i.utils_default.calcTerminalLabelPosition(10*!!e.arrowTypeEnd,"end_left",r);a=t.x,s=t.y}t.attr("transform",`translate(${a}, ${s})`)}if(e.endLabelRight){let t=S.get(e.id).endRight,a=e.x,s=e.y;if(r){let t=i.utils_default.calcTerminalLabelPosition(10*!!e.arrowTypeEnd,"end_right",r);a=t.x,s=t.y}t.attr("transform",`translate(${a}, ${s})`)}},"positionEdgeLabel"),C=(0,o.__name)((e,t)=>{let r=e.x,a=e.y,s=Math.abs(t.x-r),n=Math.abs(t.y-a),i=e.width/2,l=e.height/2;return s>=i||n>=l},"outsideNode"),A=(0,o.__name)((e,t,r)=>{o.log.debug(`intersection calc abc89:
|
|
2
|
-
outsidePoint: ${JSON.stringify(t)}
|
|
3
|
-
insidePoint : ${JSON.stringify(r)}
|
|
4
|
-
node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);let a=e.x,s=e.y,n=Math.abs(a-r.x),i=e.width/2,l=r.x<t.x?i-n:i+n,c=e.height/2,d=Math.abs(t.y-r.y),p=Math.abs(t.x-r.x);if(Math.abs(s-t.y)*i>Math.abs(a-t.x)*c){let e=r.y<t.y?t.y-c-s:s-c-t.y;l=p*e/d;let a={x:r.x<t.x?r.x+l:r.x-p+l,y:r.y<t.y?r.y+d-e:r.y-d+e};return 0===l&&(a.x=t.x,a.y=t.y),0===p&&(a.x=t.x),0===d&&(a.y=t.y),o.log.debug(`abc89 top/bottom calc, Q ${d}, q ${e}, R ${p}, r ${l}`,a),a}{let e=d*(l=r.x<t.x?t.x-i-a:a-i-t.x)/p,s=r.x<t.x?r.x+p-l:r.x-p+l,n=r.y<t.y?r.y+e:r.y-e;return o.log.debug(`sides calc abc89, Q ${d}, q ${e}, R ${p}, r ${l}`,{_x:s,_y:n}),0===l&&(s=t.x,n=t.y),0===p&&(s=t.x),0===d&&(n=t.y),{x:s,y:n}}},"intersection"),R=(0,o.__name)((e,t)=>{o.log.warn("abc88 cutPathAtIntersect",e,t);let r=[],a=e[0],s=!1;return e.forEach(e=>{if(o.log.info("abc88 checking point",e,t),C(t,e)||s)o.log.warn("abc88 outside",e,a),a=e,s||r.push(e);else{let n=A(t,a,e);o.log.debug("abc88 inside",e,a,n),o.log.debug("abc88 intersection",n,t);let i=!1;r.forEach(e=>{i=i||e.x===n.x&&e.y===n.y}),r.some(e=>e.x===n.x&&e.y===n.y)?o.log.warn("abc88 no intersect",n,r):r.push(n),s=!0}}),o.log.debug("returning points",r),r},"cutPathAtIntersect");function B(e){let t=[],r=[];for(let a=1;a<e.length-1;a++){let s=e[a-1],n=e[a],i=e[a+1];s.x===n.x&&n.y===i.y&&Math.abs(n.x-i.x)>5&&Math.abs(n.y-s.y)>5?(t.push(n),r.push(a)):s.y===n.y&&n.x===i.x&&Math.abs(n.x-s.x)>5&&Math.abs(n.y-i.y)>5&&(t.push(n),r.push(a))}return{cornerPoints:t,cornerPointPositions:r}}(0,o.__name)(B,"extractCornerPoints");var W=(0,o.__name)(function(e,t,r){let a=t.x-e.x,s=t.y-e.y,n=r/Math.sqrt(a*a+s*s);return{x:t.x-n*a,y:t.y-n*s}},"findAdjacentPoint"),U=(0,o.__name)(function(e){let{cornerPointPositions:t}=B(e),r=[];for(let a=0;a<e.length;a++)if(t.includes(a)){let t=e[a-1],s=e[a+1],n=e[a],i=W(t,n,5),l=W(s,n,5),c=l.x-i.x,d=l.y-i.y;r.push(i);let p=2*Math.sqrt(2),u={x:n.x,y:n.y};Math.abs(s.x-t.x)>10&&Math.abs(s.y-t.y)>=10?(o.log.debug("Corner point fixing",Math.abs(s.x-t.x),Math.abs(s.y-t.y)),u=n.x===i.x?{x:c<0?i.x-5+p:i.x+5-p,y:d<0?i.y-p:i.y+p}:{x:c<0?i.x-p:i.x+p,y:d<0?i.y-5+p:i.y+5-p}):o.log.debug("Corner point skipping fixing",Math.abs(s.x-t.x),Math.abs(s.y-t.y)),r.push(u,l)}else r.push(e[a]);return r},"fixCorners"),X=(0,o.__name)((e,t,r)=>{let a=Array(Math.floor((e-t-r)/4)).fill("2 2").join(" ");return`0 ${t} ${a} ${r}`},"generateDashArray"),Y=(0,o.__name)(function(e,r,a,n,M,$,L,S=!1){let P,O,{handDrawnSeed:E}=(0,l.getConfig2)(),T=r.points,N=!1,C=[];for(let e in r.cssCompiledStyles)(0,s.isLabelStyle)(e)||C.push(r.cssCompiledStyles[e]);o.log.debug("UIO intersect check",r.points,$.x,M.x),$.intersect&&M.intersect&&!S&&((T=T.slice(1,r.points.length-1)).unshift(M.intersect(T[0])),o.log.debug("Last point UIO",r.start,"-->",r.end,T[T.length-1],$,$.intersect(T[T.length-1])),T.push($.intersect(T[T.length-1])));let A=btoa(JSON.stringify(T));r.toCluster&&(o.log.info("to cluster abc88",a.get(r.toCluster)),T=R(r.points,a.get(r.toCluster).node),N=!0),r.fromCluster&&(o.log.debug("from cluster abc88",a.get(r.fromCluster),JSON.stringify(T,null,2)),T=R(T.reverse(),a.get(r.fromCluster).node).reverse(),N=!0);let B=T.filter(e=>!Number.isNaN(e.y));B=U(B);let W=c.curveBasis;switch(W=d.curveLinear,r.curve){case"linear":W=d.curveLinear;break;case"basis":default:W=c.curveBasis;break;case"cardinal":W=p.curveCardinal;break;case"bumpX":W=u.curveBumpX;break;case"bumpY":W=f.curveBumpY;break;case"catmullRom":W=h.curveCatmullRom;break;case"monotoneX":W=m.curveMonotoneX;break;case"monotoneY":W=g.curveMonotoneY;break;case"natural":W=y.curveNatural;break;case"step":W=b.curveStep;break;case"stepAfter":W=k.curveStepAfter;break;case"stepBefore":W=x.curveStepBefore}let{x:Y,y:z}=(0,t.getLineFunctionsWithOffset)(r),q=(0,_.line)().x(Y).y(z).curve(W);switch(r.thickness){case"normal":default:P="edge-thickness-normal";break;case"thick":P="edge-thickness-thick";break;case"invisible":P="edge-thickness-invisible"}switch(r.pattern){case"solid":default:P+=" edge-pattern-solid";break;case"dotted":P+=" edge-pattern-dotted";break;case"dashed":P+=" edge-pattern-dashed"}let D="rounded"===r.curve?H(I(B,r),5):q(B),F=Array.isArray(r.style)?r.style:[r.style],Q=F.find(e=>e?.startsWith("stroke:")),Z=!1;if("handDrawn"===r.look){let t=w.default.svg(e);Object.assign([],B);let a=t.path(D,{roughness:.3,seed:E});P+=" transition";let s=(O=(0,v.select)(a).select("path").attr("id",r.id).attr("class"," "+P+(r.classes?" "+r.classes:"")).attr("style",F?F.reduce((e,t)=>e+";"+t,""):"")).attr("d");O.attr("d",s),e.node().appendChild(O.node())}else{let a=C.join(";"),s=F?F.reduce((e,t)=>e+t+";",""):"",n="";r.animate&&(n=" edge-animation-fast"),r.animation&&(n=" edge-animation-"+r.animation);let i=(a?a+";"+s+";":s)+";"+(F?F.reduce((e,t)=>e+";"+t,""):"");O=e.append("path").attr("d",D).attr("id",r.id).attr("class"," "+P+(r.classes?" "+r.classes:"")+(n??"")).attr("style",i),Q=i.match(/stroke:([^;]+)/)?.[1],Z=!0===r.animate||!!r.animation||a.includes("animation");let l=O.node(),o="function"==typeof l.getTotalLength?l.getTotalLength():0,c=t.markerOffsets2[r.arrowTypeStart]||0,d=t.markerOffsets2[r.arrowTypeEnd]||0;if("neo"===r.look&&!Z){let e="dotted"===r.pattern||"dashed"===r.pattern?X(o,c,d):`0 ${c} ${o-c-d} ${d}`,t=`stroke-dasharray: ${e}; stroke-dashoffset: 0;`;O.attr("style",t+O.attr("style"))}}O.attr("data-edge",!0),O.attr("data-et","edge"),O.attr("data-id",r.id),O.attr("data-points",A),r.showPoints&&B.forEach(t=>{e.append("circle").style("stroke","red").style("fill","red").attr("r",1).attr("cx",t.x).attr("cy",t.y)});let K="";((0,l.getConfig2)().flowchart.arrowMarkerAbsolute||(0,l.getConfig2)().state.arrowMarkerAbsolute)&&(K=(K=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(").replace(/\)/g,"\\)")),o.log.info("arrowTypeStart",r.arrowTypeStart),o.log.info("arrowTypeEnd",r.arrowTypeEnd),j(O,r,K,L,n,Q);let G=Math.floor(T.length/2),J=T[G];i.utils_default.isLabelCoordinateInPath(J,O.attr("d"))||(N=!0);let V={};return N&&(V.updatedPath=T),V.originalPath=r.points,V},"insertEdge");function H(e,t){if(e.length<2)return"";let r="",a=e.length;for(let s=0;s<a;s++){let n=e[s],i=e[s-1],l=e[s+1];if(0===s)r+=`M${n.x},${n.y}`;else if(s===a-1)r+=`L${n.x},${n.y}`;else{let e=n.x-i.x,a=n.y-i.y,s=l.x-n.x,o=l.y-n.y,c=Math.hypot(e,a),d=Math.hypot(s,o);if(c<1e-5||d<1e-5){r+=`L${n.x},${n.y}`;continue}let p=e/c,u=a/c,f=s/d,h=o/d,m=Math.acos(Math.max(-1,Math.min(1,p*f+u*h)));if(m<1e-5||1e-5>Math.abs(Math.PI-m)){r+=`L${n.x},${n.y}`;continue}let g=Math.min(t/Math.sin(m/2),c/2,d/2),y=n.x-p*g,b=n.y-u*g,k=n.x+f*g,x=n.y+h*g;r+=`L${y},${b}Q${n.x},${n.y} ${k},${x}`}}return r}function z(e,t){if(!e||!t)return{angle:0,deltaX:0,deltaY:0};let r=t.x-e.x,a=t.y-e.y;return{angle:Math.atan2(a,r),deltaX:r,deltaY:a}}function I(e,r){let a=e.map(e=>({...e}));if(e.length>=2&&t.markerOffsets[r.arrowTypeStart]){let s=t.markerOffsets[r.arrowTypeStart],n=e[0],{angle:i}=z(n,e[1]),l=s*Math.cos(i),o=s*Math.sin(i);a[0].x=n.x+l,a[0].y=n.y+o}let s=e.length;if(s>=2&&t.markerOffsets[r.arrowTypeEnd]){let n=t.markerOffsets[r.arrowTypeEnd],i=e[s-1],{angle:l}=z(e[s-2],i),o=n*Math.cos(l),c=n*Math.sin(l);a[s-1].x=i.x-o,a[s-1].y=i.y-c}return a}(0,o.__name)(H,"generateRoundedPath"),(0,o.__name)(z,"calculateDeltaAndAngle"),(0,o.__name)(I,"applyMarkerOffsetsToPoints");var q=(0,o.__name)((e,t,r,a)=>{t.forEach(t=>{en[t](e,r,a)})},"insertMarkers"),D=(0,o.__name)((e,t,r)=>{o.log.trace("Making markers for ",r),e.append("defs").append("marker").attr("id",r+"_"+t+"-extensionStart").attr("class","marker extension "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-extensionEnd").attr("class","marker extension "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),F=(0,o.__name)((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-compositionStart").attr("class","marker composition "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-compositionEnd").attr("class","marker composition "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),Q=(0,o.__name)((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationStart").attr("class","marker aggregation "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationEnd").attr("class","marker aggregation "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),Z=(0,o.__name)((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyStart").attr("class","marker dependency "+t).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyEnd").attr("class","marker dependency "+t).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),K=(0,o.__name)((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopStart").attr("class","marker lollipop "+t).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),e.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopEnd").attr("class","marker lollipop "+t).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),G=(0,o.__name)((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-pointEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-pointStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),J=(0,o.__name)((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-circleEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-circleStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),V=(0,o.__name)((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-crossEnd").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-crossStart").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),ee=(0,o.__name)((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","userSpaceOnUse").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),et=(0,o.__name)((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-onlyOneStart").attr("class","marker onlyOne "+t).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M9,0 L9,18 M15,0 L15,18"),e.append("defs").append("marker").attr("id",r+"_"+t+"-onlyOneEnd").attr("class","marker onlyOne "+t).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M3,0 L3,18 M9,0 L9,18")},"only_one"),er=(0,o.__name)((e,t,r)=>{let a=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrOneStart").attr("class","marker zeroOrOne "+t).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");a.append("circle").attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),a.append("path").attr("d","M9,0 L9,18");let s=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrOneEnd").attr("class","marker zeroOrOne "+t).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");s.append("circle").attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),s.append("path").attr("d","M21,0 L21,18")},"zero_or_one"),ea=(0,o.__name)((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-oneOrMoreStart").attr("class","marker oneOrMore "+t).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),e.append("defs").append("marker").attr("id",r+"_"+t+"-oneOrMoreEnd").attr("class","marker oneOrMore "+t).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18")},"one_or_more"),es=(0,o.__name)((e,t,r)=>{let a=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrMoreStart").attr("class","marker zeroOrMore "+t).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");a.append("circle").attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),a.append("path").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18");let s=e.append("defs").append("marker").attr("id",r+"_"+t+"-zeroOrMoreEnd").attr("class","marker zeroOrMore "+t).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");s.append("circle").attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),s.append("path").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},"zero_or_more"),en={extension:D,composition:F,aggregation:Q,dependency:Z,lollipop:K,point:G,circle:J,cross:V,barb:ee,only_one:et,zero_or_one:er,one_or_more:ea,zero_or_more:es,requirement_arrow:(0,o.__name)((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-requirement_arrowEnd").attr("refX",20).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("path").attr("d",`M0,0
|
|
5
|
-
L20,10
|
|
6
|
-
M20,10
|
|
7
|
-
L0,20`)},"requirement_arrow"),requirement_contains:(0,o.__name)((e,t,r)=>{let a=e.append("defs").append("marker").attr("id",r+"_"+t+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("g");a.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),a.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),a.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10)},"requirement_contains")};e.s(["clear",()=>P,"insertEdge",()=>Y,"insertEdgeLabel",()=>E,"markers_default",()=>q,"positionEdgeLabel",()=>N])},93016,e=>{"use strict";var t=e.i(54802),r=e.i(7983),a=e.i(95923),s=e.i(80926),n=e.i(71206),i={common:s.common_default,getConfig:s.getConfig,insertCluster:r.insertCluster,insertEdge:t.insertEdge,insertEdgeLabel:t.insertEdgeLabel,insertMarkers:t.markers_default,insertNode:r.insertNode,interpolateToCurve:a.interpolateToCurve,labelHelper:r.labelHelper,log:n.log,positionEdgeLabel:t.positionEdgeLabel},l={},o=(0,n.__name)(e=>{for(let t of e)l[t.name]=t},"registerLayoutLoaders");(0,n.__name)(()=>{o([{name:"dagre",loader:(0,n.__name)(async()=>await e.A(5230),"loader")},{name:"cose-bilkent",loader:(0,n.__name)(async()=>await e.A(62369),"loader")}])},"registerDefaultLayoutLoaders")();var c=(0,n.__name)(async(e,t)=>{if(!(e.layoutAlgorithm in l))throw Error(`Unknown layout algorithm: ${e.layoutAlgorithm}`);let r=l[e.layoutAlgorithm];return(await r.loader()).render(e,t,i,{algorithm:r.algorithm})},"render"),d=(0,n.__name)((e="",{fallback:t="dagre"}={})=>{if(e in l)return e;if(t in l)return n.log.warn(`Layout algorithm ${e} is not registered. Using ${t} as fallback.`),t;throw Error(`Both layout algorithms ${e} and ${t} are not registered.`)},"getRegisteredLayoutAlgorithm");e.s(["getRegisteredLayoutAlgorithm",()=>d,"registerLayoutLoaders",()=>o,"render",()=>c])},33525,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return a}});let a=e=>{}},65399,e=>{"use strict";var t={name:"mermaid",version:"11.12.3",description:"Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.",type:"module",module:"./dist/mermaid.core.mjs",types:"./dist/mermaid.d.ts",exports:{".":{types:"./dist/mermaid.d.ts",import:"./dist/mermaid.core.mjs",default:"./dist/mermaid.core.mjs"},"./*":"./*"},keywords:["diagram","markdown","flowchart","sequence diagram","gantt","class diagram","git graph","mindmap","packet diagram","c4 diagram","er diagram","pie chart","pie diagram","quadrant chart","requirement diagram","graph"],scripts:{clean:"rimraf dist",dev:"pnpm -w dev","docs:code":"typedoc src/defaultConfig.ts src/config.ts src/mermaid.ts && prettier --write ./src/docs/config/setup","docs:build":"rimraf ../../docs && pnpm docs:code && pnpm docs:spellcheck && tsx scripts/docs.cli.mts","docs:verify":"pnpm docs:code && pnpm docs:spellcheck && tsx scripts/docs.cli.mts --verify","docs:pre:vitepress":"pnpm --filter ./src/docs prefetch && rimraf src/vitepress && pnpm docs:code && tsx scripts/docs.cli.mts --vitepress && pnpm --filter ./src/vitepress install --no-frozen-lockfile --ignore-scripts","docs:build:vitepress":"pnpm docs:pre:vitepress && (cd src/vitepress && pnpm run build) && cpy --flat src/docs/landing/ ./src/vitepress/.vitepress/dist/landing","docs:dev":'pnpm docs:pre:vitepress && concurrently "pnpm --filter ./src/vitepress dev" "tsx scripts/docs.cli.mts --watch --vitepress"',"docs:dev:docker":'pnpm docs:pre:vitepress && concurrently "pnpm --filter ./src/vitepress dev:docker" "tsx scripts/docs.cli.mts --watch --vitepress"',"docs:serve":"pnpm docs:build:vitepress && vitepress serve src/vitepress","docs:spellcheck":'cspell "src/docs/**/*.md"',"docs:release-version":"tsx scripts/update-release-version.mts","docs:verify-version":"tsx scripts/update-release-version.mts --verify","types:build-config":"tsx scripts/create-types-from-json-schema.mts","types:verify-config":"tsx scripts/create-types-from-json-schema.mts --verify",checkCircle:"npx madge --circular ./src",prepublishOnly:"pnpm docs:verify-version"},repository:{type:"git",url:"https://github.com/mermaid-js/mermaid"},author:"Knut Sveidqvist",license:"MIT",standard:{ignore:["**/parser/*.js","dist/**/*.js","cypress/**/*.js"],globals:["page"]},dependencies:{"@braintree/sanitize-url":"^7.1.1","@iconify/utils":"^3.0.1","@mermaid-js/parser":"workspace:^","@types/d3":"^7.4.3",cytoscape:"^3.29.3","cytoscape-cose-bilkent":"^4.1.0","cytoscape-fcose":"^2.2.0",d3:"^7.9.0","d3-sankey":"^0.12.3","dagre-d3-es":"7.0.13",dayjs:"^1.11.18",dompurify:"^3.2.5",katex:"^0.16.22",khroma:"^2.1.0","lodash-es":"^4.17.23",marked:"^16.2.1",roughjs:"^4.6.6",stylis:"^4.3.6","ts-dedent":"^2.2.0",uuid:"^11.1.0"},devDependencies:{"@adobe/jsonschema2md":"^8.0.5","@iconify/types":"^2.0.0","@types/cytoscape":"^3.21.9","@types/cytoscape-fcose":"^2.2.4","@types/d3-sankey":"^0.12.4","@types/d3-scale":"^4.0.9","@types/d3-scale-chromatic":"^3.1.0","@types/d3-selection":"^3.0.11","@types/d3-shape":"^3.1.7","@types/jsdom":"^21.1.7","@types/katex":"^0.16.7","@types/lodash-es":"^4.17.12","@types/micromatch":"^4.0.9","@types/stylis":"^4.2.7","@types/uuid":"^10.0.0",ajv:"^8.17.1",canvas:"^3.1.2",chokidar:"3.6.0",concurrently:"^9.1.2","csstree-validator":"^4.0.1",globby:"^14.1.0",jison:"^0.4.18","js-base64":"^3.7.8",jsdom:"^26.1.0","json-schema-to-typescript":"^15.0.4",micromatch:"^4.0.8","path-browserify":"^1.0.1",prettier:"^3.5.3",remark:"^15.0.1","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.1",rimraf:"^6.0.1","start-server-and-test":"^2.0.13","type-fest":"^4.35.0",typedoc:"^0.28.12","typedoc-plugin-markdown":"^4.8.1",typescript:"~5.7.3","unist-util-flatmap":"^1.0.0","unist-util-visit":"^5.0.0",vitepress:"^1.6.4","vitepress-plugin-search":"1.0.4-alpha.22"},files:["dist/","README.md"],publishConfig:{access:"public"}};e.s(["package_default",()=>t])},98183,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={assign:function(){return o},searchParamsToUrlQuery:function(){return n},urlQueryToSearchParams:function(){return l}};for(var s in a)Object.defineProperty(r,s,{enumerable:!0,get:a[s]});function n(e){let t={};for(let[r,a]of e.entries()){let e=t[r];void 0===e?t[r]=a:Array.isArray(e)?e.push(a):t[r]=[e,a]}return t}function i(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function l(e){let t=new URLSearchParams;for(let[r,a]of Object.entries(e))if(Array.isArray(a))for(let e of a)t.append(r,i(e));else t.set(r,i(a));return t}function o(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,a]of r.entries())e.append(t,a)}return e}},95057,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={formatUrl:function(){return l},formatWithValidation:function(){return c},urlObjectKeys:function(){return o}};for(var s in a)Object.defineProperty(r,s,{enumerable:!0,get:a[s]});let n=e.r(90809)._(e.r(98183)),i=/https?|ftp|gopher|file/;function l(e){let{auth:t,hostname:r}=e,a=e.protocol||"",s=e.pathname||"",l=e.hash||"",o=e.query||"",c=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?c=t+e.host:r&&(c=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(c+=":"+e.port)),o&&"object"==typeof o&&(o=String(n.urlQueryToSearchParams(o)));let d=e.search||o&&`?${o}`||"";return a&&!a.endsWith(":")&&(a+=":"),e.slashes||(!a||i.test(a))&&!1!==c?(c="//"+(c||""),s&&"/"!==s[0]&&(s="/"+s)):c||(c=""),l&&"#"!==l[0]&&(l="#"+l),d&&"?"!==d[0]&&(d="?"+d),s=s.replace(/[?#]/g,encodeURIComponent),d=d.replace("#","%23"),`${a}${c}${s}${d}${l}`}let o=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function c(e){return l(e)}},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return s}});let a=e.r(71645);function s(e,t){let r=(0,a.useRef)(null),s=(0,a.useRef)(null);return(0,a.useCallback)(a=>{if(null===a){let e=r.current;e&&(r.current=null,e());let t=s.current;t&&(s.current=null,t())}else e&&(r.current=n(e,a)),t&&(s.current=n(t,a))},[e,t])}function n(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18967,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={DecodeError:function(){return y},MiddlewareNotFoundError:function(){return _},MissingStaticPage:function(){return x},NormalizeError:function(){return b},PageNotFoundError:function(){return k},SP:function(){return m},ST:function(){return g},WEB_VITALS:function(){return n},execOnce:function(){return i},getDisplayName:function(){return p},getLocationOrigin:function(){return c},getURL:function(){return d},isAbsoluteUrl:function(){return o},isResSent:function(){return u},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return f},stringifyError:function(){return v}};for(var s in a)Object.defineProperty(r,s,{enumerable:!0,get:a[s]});let n=["CLS","FCP","FID","INP","LCP","TTFB"];function i(e){let t,r=!1;return(...a)=>(r||(r=!0,t=e(...a)),t)}let l=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,o=e=>l.test(e);function c(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function d(){let{href:e}=window.location,t=c();return e.substring(t.length)}function p(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function u(e){return e.finished||e.headersSent}function f(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let a=await e.getInitialProps(t);if(r&&u(r))return a;if(!a)throw Object.defineProperty(Error(`"${p(e)}.getInitialProps()" should resolve to an object. But found "${a}" instead.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return a}let m="u">typeof performance,g=m&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class y extends Error{}class b extends Error{}class k extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class x extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class _ extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function v(e){return JSON.stringify({message:e.message,stack:e.stack})}},73668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return n}});let a=e.r(18967),s=e.r(52817);function n(e){if(!(0,a.isAbsoluteUrl)(e))return!0;try{let t=(0,a.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,s.hasBasePath)(r.pathname)}catch(e){return!1}}},84508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return a}});let a=e=>{}},22016,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={default:function(){return y},useLinkStatus:function(){return k}};for(var s in a)Object.defineProperty(r,s,{enumerable:!0,get:a[s]});let n=e.r(90809),i=e.r(18050),l=n._(e.r(71645)),o=e.r(95057),c=e.r(8372),d=e.r(18581),p=e.r(18967),u=e.r(5550);e.r(33525);let f=e.r(91949),h=e.r(73668),m=e.r(9396);function g(e){return"string"==typeof e?e:(0,o.formatUrl)(e)}function y(t){var r;let a,s,n,[o,y]=(0,l.useOptimistic)(f.IDLE_LINK_STATUS),k=(0,l.useRef)(null),{href:x,as:_,children:v,prefetch:w=null,passHref:j,replace:M,shallow:$,scroll:L,onClick:S,onMouseEnter:P,onTouchStart:O,legacyBehavior:E=!1,onNavigate:T,ref:N,unstable_dynamicOnHover:C,...A}=t;a=v,E&&("string"==typeof a||"number"==typeof a)&&(a=(0,i.jsx)("a",{children:a}));let R=l.default.useContext(c.AppRouterContext),B=!1!==w,W=!1!==w?null===(r=w)||"auto"===r?m.FetchStrategy.PPR:m.FetchStrategy.Full:m.FetchStrategy.PPR,{href:U,as:X}=l.default.useMemo(()=>{let e=g(x);return{href:e,as:_?g(_):e}},[x,_]);if(E){if(a?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});s=l.default.Children.only(a)}let Y=E?s&&"object"==typeof s&&s.ref:N,H=l.default.useCallback(e=>(null!==R&&(k.current=(0,f.mountLinkInstance)(e,U,R,W,B,y)),()=>{k.current&&((0,f.unmountLinkForCurrentNavigation)(k.current),k.current=null),(0,f.unmountPrefetchableInstance)(e)}),[B,U,R,W,y]),z={ref:(0,d.useMergedRef)(H,Y),onClick(t){E||"function"!=typeof S||S(t),E&&s.props&&"function"==typeof s.props.onClick&&s.props.onClick(t),!R||t.defaultPrevented||function(t,r,a,s,n,i,o){if("u">typeof window){let c,{nodeName:d}=t.currentTarget;if("A"===d.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,h.isLocalURL)(r)){n&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),o){let e=!1;if(o({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:p}=e.r(99781);l.default.startTransition(()=>{p(a||r,n?"replace":"push",i??!0,s.current)})}}(t,U,X,k,M,L,T)},onMouseEnter(e){E||"function"!=typeof P||P(e),E&&s.props&&"function"==typeof s.props.onMouseEnter&&s.props.onMouseEnter(e),R&&B&&(0,f.onNavigationIntent)(e.currentTarget,!0===C)},onTouchStart:function(e){E||"function"!=typeof O||O(e),E&&s.props&&"function"==typeof s.props.onTouchStart&&s.props.onTouchStart(e),R&&B&&(0,f.onNavigationIntent)(e.currentTarget,!0===C)}};return(0,p.isAbsoluteUrl)(X)?z.href=X:E&&!j&&("a"!==s.type||"href"in s.props)||(z.href=(0,u.addBasePath)(X)),n=E?l.default.cloneElement(s,z):(0,i.jsx)("a",{...A,...z,children:a}),(0,i.jsx)(b.Provider,{value:o,children:n})}e.r(84508);let b=(0,l.createContext)(f.IDLE_LINK_STATUS),k=()=>(0,l.useContext)(b);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},89070,e=>{"use strict";var t=e.i(18050),r=e.i(71645),a=e.i(73238),s=e.i(11143),n=e.i(19455);let i={backlog:"bg-gray-100 border-gray-400 text-gray-600",todo:"bg-blue-100 border-blue-400 text-blue-700",in_progress:"bg-orange-100 border-orange-400 text-orange-700",interrupted:"bg-red-100 border-red-400 text-red-700",done:"bg-green-100 border-green-500 text-green-700"},l={urgent:"text-red-600",high:"text-orange-500",medium:"text-gray-500",low:"text-gray-400"};function o({specName:e,title:i,statuses:l,artifacts:o,tasks:d,onRefresh:p}){let[u,f]=(0,r.useState)(l[0]?.id||"proposal"),[h,m]=(0,r.useState)(!1),g=l.filter(e=>"development"!==e.id).every(e=>"done"===e.state),y=l.find(e=>"development"===e.id);async function b(){m(!0);try{let t=await fetch(`/api/specs/${e}/promote`,{method:"POST"}),r=await t.json();t.ok?(alert(`Promoted ${r.promoted} tasks to Kanban board!`),p()):alert(`Error: ${r.error}`)}finally{m(!1)}}let k=l.find(e=>e.id===u),x="development"===u,_=d.length,v=d.filter(e=>"done"===e.status).length,w=d.filter(e=>"in_progress"===e.status).length;return(0,t.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-3xl font-black uppercase",children:i}),(0,t.jsx)("p",{className:"text-sm font-mono text-gray-500 mt-1",children:e})]}),(0,t.jsx)(a.ArtifactDagStatus,{statuses:l}),g&&0===d.length&&(0,t.jsxs)("div",{className:"p-4 bg-green-100 border-4 border-green-600",children:[(0,t.jsx)("p",{className:"font-black text-green-800 uppercase",children:"All artifacts approved!"}),(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsx)(n.Button,{onClick:b,disabled:h,className:"bg-green-600 hover:bg-green-700 text-white",children:h?"Promoting...":"Promote to Tasks"})})]}),y?.state==="done"&&(0,t.jsx)("div",{className:"p-4 bg-green-100 border-4 border-green-600",children:(0,t.jsxs)("p",{className:"font-black text-green-800 uppercase",children:["✓ Spec complete — all ",_," tasks done"]})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"flex border-b-4 border-black",children:l.map(e=>(0,t.jsx)("button",{onClick:()=>f(e.id),className:`px-4 py-2 font-bold uppercase text-sm border-r-4 border-black last:border-r-0 ${u===e.id?"bg-black text-white":"bg-white hover:bg-gray-100"}`,children:e.id},e.id))}),(0,t.jsx)("div",{className:"mt-4",children:x?(0,t.jsx)(c,{tasks:d,status:y,total:_,done:v,inProgress:w}):k?(0,t.jsx)(s.ArtifactEditor,{specName:e,artifactType:u,content:o[u]||null,status:k,onSave:p},u):null})]})]})}function c({tasks:e,status:r,total:a,done:s,inProgress:n}){return r?.state==="blocked"?(0,t.jsxs)("div",{className:"p-6 bg-gray-100 border-4 border-gray-300 text-center",children:[(0,t.jsx)("p",{className:"font-bold text-gray-600 uppercase",children:"Blocked — approve and promote tasks first"}),(0,t.jsx)("p",{className:"text-sm text-gray-500 mt-1",children:"Approve all artifacts, then click “Promote to Tasks”"})]}):0===e.length?(0,t.jsxs)("div",{className:"p-6 bg-blue-50 border-4 border-blue-300 text-center",children:[(0,t.jsx)("p",{className:"font-bold text-blue-700 uppercase",children:"Ready to promote"}),(0,t.jsx)("p",{className:"text-sm text-blue-600 mt-1",children:"All artifacts approved. Promote tasks to start development."})]}):(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"flex-1 h-3 bg-gray-200 border-2 border-black overflow-hidden",children:(0,t.jsx)("div",{className:"h-full bg-green-500 transition-all",style:{width:`${a>0?s/a*100:0}%`}})}),(0,t.jsxs)("span",{className:"font-mono text-sm font-bold whitespace-nowrap",children:[s,"/",a," done",n>0&&(0,t.jsxs)("span",{className:"text-orange-600 ml-2",children:["· ",n," in progress"]})]})]}),(0,t.jsx)("div",{className:"flex flex-col gap-2",children:e.map(e=>(0,t.jsxs)("div",{className:"flex items-center gap-3 p-3 border-4 border-black bg-white",children:[(0,t.jsx)("span",{className:`text-lg ${"done"===e.status?"opacity-100":"opacity-30"}`,children:"done"===e.status?"✓":"in_progress"===e.status?"⟳":"○"}),(0,t.jsx)("span",{className:`flex-1 font-bold text-sm ${"done"===e.status?"line-through text-gray-400":""}`,children:e.title}),(0,t.jsx)("span",{className:`text-xs font-mono uppercase font-bold ${l[e.priority]||""}`,children:e.priority}),(0,t.jsx)("span",{className:`px-2 py-0.5 border-2 text-xs font-bold uppercase ${i[e.status]||""}`,children:e.status.replace("_"," ")}),e.assignedAgent&&(0,t.jsxs)("span",{className:"text-xs font-mono text-gray-500 truncate max-w-[120px]",title:e.assignedAgent,children:["@",e.assignedAgent]})]},e.id))})]})}var d=e.i(22016);function p({params:e}){let{name:a}=(0,r.use)(e),[s,n]=(0,r.useState)(null),[i,l]=(0,r.useState)(null),c=(0,r.useCallback)(async function(){try{let e=await fetch(`/api/specs/${a}`);if(!e.ok){let t=await e.json();l(t.error||"Spec not found");return}let t=await e.json();n(t)}catch{l("Failed to load spec")}},[a]);return(0,r.useEffect)(()=>{c()},[c]),(0,r.useEffect)(()=>{let e,t=null,r=!1;return!function s(){if(!r)try{(t=new WebSocket("ws://localhost:3001")).onmessage=e=>{let t=JSON.parse(e.data);(t.specName===a&&("artifact_approved"===t.type||"artifact_updated"===t.type||"spec_promoted"===t.type)||"task_updated"===t.type&&t.task?.specName===a)&&c()},t.onclose=()=>{r||(e=setTimeout(s,3e3))},t.onerror=()=>{}}catch{r||(e=setTimeout(s,3e3))}}(),()=>{r=!0,clearTimeout(e),t?.close()}},[a,c]),(0,t.jsxs)("div",{className:"min-h-screen bg-[--color-bg]",children:[(0,t.jsx)("header",{className:"border-b-4 border-black bg-white",children:(0,t.jsxs)("div",{className:"container mx-auto px-6 py-4 flex items-center gap-6",children:[(0,t.jsx)(d.default,{href:"/",className:"text-3xl font-black uppercase tracking-tight hover:underline",children:"DevFlow"}),(0,t.jsxs)("nav",{className:"flex gap-4",children:[(0,t.jsx)(d.default,{href:"/",className:"font-bold uppercase text-sm hover:underline",children:"Board"}),(0,t.jsx)(d.default,{href:"/specs",className:"font-bold uppercase text-sm hover:underline",children:"Specs"})]})]})}),(0,t.jsx)("main",{className:"container mx-auto px-6 py-8",children:i?(0,t.jsxs)("div",{className:"p-6 bg-red-100 border-4 border-red-500",children:[(0,t.jsx)("p",{className:"font-bold text-red-800",children:i}),(0,t.jsx)(d.default,{href:"/specs",className:"text-sm underline mt-2 block",children:"Back to Specs"})]}):s?(0,t.jsx)(o,{specName:s.name,title:s.title,statuses:s.statuses,artifacts:s.artifacts,tasks:s.tasks??[],onRefresh:c}):(0,t.jsx)("p",{className:"font-bold",children:"Loading..."})})]})}e.s(["default",()=>p],89070)},39484,e=>{e.v(t=>Promise.all(["static/chunks/34e2788a0be7ee63.js"].map(t=>e.l(t))).then(()=>t(16400)))},5230,e=>{e.v(t=>Promise.all(["static/chunks/09e4e9409aadc2fe.js","static/chunks/5623d8a1c99eba62.js","static/chunks/559e55a53f22f5d1.js"].map(t=>e.l(t))).then(()=>t(72465)))},62369,e=>{e.v(t=>Promise.all(["static/chunks/c231010aae14914b.js","static/chunks/762121739217e5da.js"].map(t=>e.l(t))).then(()=>t(97810)))},31892,e=>{e.v(t=>Promise.all(["static/chunks/f42ff7863eb4c3ff.js","static/chunks/6fee5c7b5d483c8a.js"].map(t=>e.l(t))).then(()=>t(3887)))},24476,e=>{e.v(t=>Promise.all(["static/chunks/cb863a7e46548566.js","static/chunks/b8b36494d4330f5f.js"].map(t=>e.l(t))).then(()=>t(23142)))},98583,e=>{e.v(t=>Promise.all(["static/chunks/d5b700b8aafeea3b.js"].map(t=>e.l(t))).then(()=>t(26887)))},12413,e=>{e.v(t=>Promise.all(["static/chunks/ec0de430276c8209.js","static/chunks/9eb0474ddf7f6238.js","static/chunks/b9a047fc90291dbd.js"].map(t=>e.l(t))).then(()=>t(76816)))},62316,e=>{e.v(t=>Promise.all(["static/chunks/581c7f8a86cc86fb.js","static/chunks/9525dc246b363870.js"].map(t=>e.l(t))).then(()=>t(55454)))},97189,e=>{e.v(t=>Promise.all(["static/chunks/957a5dae245bbc84.js","static/chunks/9eb0474ddf7f6238.js","static/chunks/ec0de430276c8209.js"].map(t=>e.l(t))).then(()=>t(61398)))},67571,e=>{e.v(t=>Promise.all(["static/chunks/09ec2e3c3d2d294f.js","static/chunks/9eb0474ddf7f6238.js","static/chunks/ec0de430276c8209.js"].map(t=>e.l(t))).then(()=>t(98741)))},66991,e=>{e.v(t=>Promise.all(["static/chunks/8321c26033c9fc5b.js"].map(t=>e.l(t))).then(()=>t(46579)))},95768,e=>{e.v(t=>Promise.all(["static/chunks/0697f660af9a95f1.js","static/chunks/27f5fab49d8a5395.js"].map(t=>e.l(t))).then(()=>t(73239)))},72270,e=>{e.v(t=>Promise.all(["static/chunks/ae52f8e72d4127b1.js"].map(t=>e.l(t))).then(()=>t(17747)))},32135,e=>{e.v(t=>Promise.all(["static/chunks/20c1169c30c95e0f.js","static/chunks/dc16aeb5aabadbd8.js"].map(t=>e.l(t))).then(()=>t(31587)))},28891,e=>{e.v(t=>Promise.all(["static/chunks/1cec4d71237d0c89.js","static/chunks/0356b23e9d8fbd11.js"].map(t=>e.l(t))).then(()=>t(89546)))},85144,e=>{e.v(t=>Promise.all(["static/chunks/46d959abf8046f0e.js","static/chunks/0356b23e9d8fbd11.js"].map(t=>e.l(t))).then(()=>t(77929)))},81963,e=>{e.v(t=>Promise.all(["static/chunks/559e55a53f22f5d1.js","static/chunks/5623d8a1c99eba62.js","static/chunks/9a52b8ded6a9ee38.js"].map(t=>e.l(t))).then(()=>t(92377)))},50875,e=>{e.v(t=>Promise.all(["static/chunks/909ac8a87c0dd9cb.js"].map(t=>e.l(t))).then(()=>t(49634)))},88594,e=>{e.v(t=>Promise.all(["static/chunks/b8ca88454bfa8e05.js"].map(t=>e.l(t))).then(()=>t(68271)))},50608,e=>{e.v(t=>Promise.all(["static/chunks/f9eb3f4ff87b8d8d.js"].map(t=>e.l(t))).then(()=>t(48487)))},79956,e=>{e.v(t=>Promise.all(["static/chunks/1bdb5b021c9a4e61.js"].map(t=>e.l(t))).then(()=>t(15489)))},47048,e=>{e.v(t=>Promise.all(["static/chunks/af66c50a65af610b.js"].map(t=>e.l(t))).then(()=>t(77145)))},10617,e=>{e.v(t=>Promise.all(["static/chunks/70b3258c508216b5.js"].map(t=>e.l(t))).then(()=>t(46768)))},55071,e=>{e.v(t=>Promise.all(["static/chunks/034e8cfdbd1cf3ac.js","static/chunks/9eb0474ddf7f6238.js","static/chunks/ec0de430276c8209.js"].map(t=>e.l(t))).then(()=>t(26229)))},71855,e=>{e.v(t=>Promise.all(["static/chunks/c36e148ece9c20ae.js","static/chunks/9eb0474ddf7f6238.js","static/chunks/ec0de430276c8209.js"].map(t=>e.l(t))).then(()=>t(52024)))},94694,e=>{e.v(t=>Promise.all(["static/chunks/df3c9c7fcf3e0a3d.js","static/chunks/be28d13ded360528.js","static/chunks/20337e5244416041.js"].map(t=>e.l(t))).then(()=>t(52409)))},27724,e=>{e.v(t=>Promise.all(["static/chunks/ed2e02f2db03c1dc.js","static/chunks/ec0de430276c8209.js","static/chunks/eb22f55ae829d296.js","static/chunks/762121739217e5da.js","static/chunks/9eb0474ddf7f6238.js"].map(t=>e.l(t))).then(()=>t(89619)))},75754,e=>{e.v(t=>Promise.all(["static/chunks/ec0de430276c8209.js","static/chunks/9eb0474ddf7f6238.js","static/chunks/31965ae569bf807f.js"].map(t=>e.l(t))).then(()=>t(25260)))}]);
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,41241,19556,9752,20486,t=>{"use strict";var e=t.i(49915),a=(0,t.i(65485).default)(Object.keys,Object),r=Object.prototype.hasOwnProperty;let s=function(t){if(!(0,e.default)(t))return a(t);var s=[];for(var i in Object(t))r.call(t,i)&&"constructor"!=i&&s.push(i);return s};t.s(["default",0,s],19556);var i=t.i(47244),n=t.i(56176),l=(0,i.default)(n.default,"DataView"),o=t.i(44483),d=(0,i.default)(n.default,"Promise"),c=(0,i.default)(n.default,"Set");t.s(["default",0,c],9752);var p=(0,i.default)(n.default,"WeakMap"),h=t.i(35287),f=t.i(66762),u="[object Map]",m="[object Promise]",g="[object Set]",y="[object WeakMap]",k="[object DataView]",b=(0,f.default)(l),_=(0,f.default)(o.default),x=(0,f.default)(d),w=(0,f.default)(c),v=(0,f.default)(p),M=h.default;(l&&M(new l(new ArrayBuffer(1)))!=k||o.default&&M(new o.default)!=u||d&&M(d.resolve())!=m||c&&M(new c)!=g||p&&M(new p)!=y)&&(M=function(t){var e=(0,h.default)(t),a="[object Object]"==e?t.constructor:void 0,r=a?(0,f.default)(a):"";if(r)switch(r){case b:return k;case _:return u;case x:return m;case w:return g;case v:return y}return e});let $=M;t.s(["default",0,$],20486);var L=t.i(15300),j=t.i(44071),S=t.i(41338),O=t.i(3745),P=t.i(1645),E=Object.prototype.hasOwnProperty;t.s(["default",0,function(t){if(null==t)return!0;if((0,S.default)(t)&&((0,j.default)(t)||"string"==typeof t||"function"==typeof t.splice||(0,O.default)(t)||(0,P.default)(t)||(0,L.default)(t)))return!t.length;var a=$(t);if("[object Map]"==a||"[object Set]"==a)return!t.size;if((0,e.default)(t))return!s(t).length;for(var r in t)if(E.call(t,r))return!1;return!0}],41241)},83996,t=>{"use strict";var e=t.i(80926),a=t.i(71206);t.i(47716);var r=t.i(23685),s=(0,a.__name)(t=>{let{securityLevel:a}=(0,e.getConfig2)(),s=(0,r.select)("body");if("sandbox"===a){let e=(0,r.select)(`#i${t}`),a=e.node()?.contentDocument??document;s=(0,r.select)(a.body)}return s.select(`#${t}`)},"selectSvgElement");t.s(["selectSvgElement",()=>s])},2256,t=>{"use strict";var e=(0,t.i(71206).__name)(({flowchart:t})=>{let e=t?.subGraphTitleMargin?.top??0,a=t?.subGraphTitleMargin?.bottom??0;return{subGraphTitleTopMargin:e,subGraphTitleBottomMargin:a,subGraphTitleTotalMargin:e+a}},"getSubGraphTitleMargins");t.s(["getSubGraphTitleMargins",()=>e])},33448,t=>{"use strict";var e=t.i(80926),a=t.i(71206),r=(0,a.__name)(t=>{let{handDrawnSeed:a}=(0,e.getConfig2)();return{fill:t,hachureAngle:120,hachureGap:4,fillWeight:2,roughness:.7,stroke:t,seed:a}},"solidStateFill"),s=(0,a.__name)(t=>{let e=i([...t.cssCompiledStyles||[],...t.cssStyles||[],...t.labelStyle||[]]);return{stylesMap:e,stylesArray:[...e]}},"compileStyles"),i=(0,a.__name)(t=>{let e=new Map;return t.forEach(t=>{let[a,r]=t.split(":");e.set(a.trim(),r?.trim())}),e},"styles2Map"),n=(0,a.__name)(t=>"color"===t||"font-size"===t||"font-family"===t||"font-weight"===t||"font-style"===t||"text-decoration"===t||"text-align"===t||"text-transform"===t||"line-height"===t||"letter-spacing"===t||"word-spacing"===t||"text-shadow"===t||"text-overflow"===t||"white-space"===t||"word-wrap"===t||"word-break"===t||"overflow-wrap"===t||"hyphens"===t,"isLabelStyle"),l=(0,a.__name)(t=>{let{stylesArray:e}=s(t),a=[],r=[],i=[],l=[];return e.forEach(t=>{let e=t[0];n(e)?a.push(t.join(":")+" !important"):(r.push(t.join(":")+" !important"),e.includes("stroke")&&i.push(t.join(":")+" !important"),"fill"===e&&l.push(t.join(":")+" !important"))}),{labelStyles:a.join(";"),nodeStyles:r.join(";"),stylesArray:e,borderStyles:i,backgroundStyles:l}},"styles2String"),o=(0,a.__name)((t,a)=>{let{themeVariables:r,handDrawnSeed:i}=(0,e.getConfig2)(),{nodeBorder:n,mainBkg:l}=r,{stylesMap:o}=s(t);return Object.assign({roughness:.7,fill:o.get("fill")||l,fillStyle:"hachure",fillWeight:4,hachureGap:5.2,stroke:o.get("stroke")||n,seed:i,strokeWidth:o.get("stroke-width")?.replace("px","")||1.3,fillLineDash:[0,0],strokeLineDash:d(o.get("stroke-dasharray"))},a)},"userNodeOverrides"),d=(0,a.__name)(t=>{if(!t)return[0,0];let e=t.trim().split(/\s+/).map(Number);if(1===e.length){let t=isNaN(e[0])?0:e[0];return[t,t]}return[isNaN(e[0])?0:e[0],isNaN(e[1])?0:e[1]]},"getStrokeDashArray");t.s(["compileStyles",()=>s,"isLabelStyle",()=>n,"solidStateFill",()=>r,"styles2String",()=>l,"userNodeOverrides",()=>o])},75058,16888,t=>{"use strict";t.s(["default",0,function(t){return function(){return t}}],75058);let e=Math.PI,a=2*e,r=a-1e-6;function s(t){this._+=t[0];for(let e=1,a=t.length;e<a;++e)this._+=arguments[e]+t[e]}class i{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==t?s:function(t){let e=Math.floor(t);if(!(e>=0))throw Error(`invalid digits: ${t}`);if(e>15)return s;let a=10**e;return function(t){this._+=t[0];for(let e=1,r=t.length;e<r;++e)this._+=Math.round(arguments[e]*a)/a+t[e]}}(t)}moveTo(t,e){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,e){this._append`L${this._x1=+t},${this._y1=+e}`}quadraticCurveTo(t,e,a,r){this._append`Q${+t},${+e},${this._x1=+a},${this._y1=+r}`}bezierCurveTo(t,e,a,r,s,i){this._append`C${+t},${+e},${+a},${+r},${this._x1=+s},${this._y1=+i}`}arcTo(t,a,r,s,i){if(t*=1,a*=1,r*=1,s*=1,(i*=1)<0)throw Error(`negative radius: ${i}`);let n=this._x1,l=this._y1,o=r-t,d=s-a,c=n-t,p=l-a,h=c*c+p*p;if(null===this._x1)this._append`M${this._x1=t},${this._y1=a}`;else if(h>1e-6)if(Math.abs(p*o-d*c)>1e-6&&i){let f=r-n,u=s-l,m=o*o+d*d,g=Math.sqrt(m),y=Math.sqrt(h),k=i*Math.tan((e-Math.acos((m+h-(f*f+u*u))/(2*g*y)))/2),b=k/y,_=k/g;Math.abs(b-1)>1e-6&&this._append`L${t+b*c},${a+b*p}`,this._append`A${i},${i},0,0,${+(p*f>c*u)},${this._x1=t+_*o},${this._y1=a+_*d}`}else this._append`L${this._x1=t},${this._y1=a}`}arc(t,s,i,n,l,o){if(t*=1,s*=1,i*=1,o=!!o,i<0)throw Error(`negative radius: ${i}`);let d=i*Math.cos(n),c=i*Math.sin(n),p=t+d,h=s+c,f=1^o,u=o?n-l:l-n;null===this._x1?this._append`M${p},${h}`:(Math.abs(this._x1-p)>1e-6||Math.abs(this._y1-h)>1e-6)&&this._append`L${p},${h}`,i&&(u<0&&(u=u%a+a),u>r?this._append`A${i},${i},0,1,${f},${t-d},${s-c}A${i},${i},0,1,${f},${this._x1=p},${this._y1=h}`:u>1e-6&&this._append`A${i},${i},0,${+(u>=e)},${f},${this._x1=t+i*Math.cos(l)},${this._y1=s+i*Math.sin(l)}`)}rect(t,e,a,r){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}h${a*=1}v${+r}h${-a}Z`}toString(){return this._}}function n(t){let e=3;return t.digits=function(a){if(!arguments.length)return e;if(null==a)e=null;else{let t=Math.floor(a);if(!(t>=0))throw RangeError(`invalid digits: ${a}`);e=t}return t},()=>new i(e)}i.prototype,t.s(["withPath",()=>n],16888)},62990,t=>{"use strict";Array.prototype.slice,t.s(["default",0,function(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}])},85833,t=>{"use strict";var e=t.i(62990),a=t.i(75058),r=t.i(48114),s=t.i(16888);function i(t){return t[0]}function n(t){return t[1]}t.s(["line",0,function(t,l){var o=(0,a.default)(!0),d=null,c=r.default,p=null,h=(0,s.withPath)(f);function f(a){var r,s,i,n=(a=(0,e.default)(a)).length,f=!1;for(null==d&&(p=c(i=h())),r=0;r<=n;++r)!(r<n&&o(s=a[r],r,a))===f&&((f=!f)?p.lineStart():p.lineEnd()),f&&p.point(+t(s,r,a),+l(s,r,a));if(i)return p=null,i+""||null}return t="function"==typeof t?t:void 0===t?i:(0,a.default)(t),l="function"==typeof l?l:void 0===l?n:(0,a.default)(l),f.x=function(e){return arguments.length?(t="function"==typeof e?e:(0,a.default)(+e),f):t},f.y=function(t){return arguments.length?(l="function"==typeof t?t:(0,a.default)(+t),f):l},f.defined=function(t){return arguments.length?(o="function"==typeof t?t:(0,a.default)(!!t),f):o},f.curve=function(t){return arguments.length?(c=t,null!=d&&(p=c(d)),f):c},f.context=function(t){return arguments.length?(null==t?d=p=null:p=c(d=t),f):d},f}],85833)},20502,t=>{"use strict";var e=t.i(71206),a={aggregation:17.25,extension:17.25,composition:17.25,dependency:6,lollipop:13.5,arrow_point:4},r={arrow_point:9,arrow_cross:12.5,arrow_circle:12.5};function s(t,e){if(void 0===t||void 0===e)return{angle:0,deltaX:0,deltaY:0};t=i(t),e=i(e);let[a,r]=[t.x,t.y],[s,n]=[e.x,e.y],l=s-a,o=n-r;return{angle:Math.atan(o/l),deltaX:l,deltaY:o}}(0,e.__name)(s,"calculateDeltaAndAngle");var i=(0,e.__name)(t=>Array.isArray(t)?{x:t[0],y:t[1]}:t,"pointTransformer"),n=(0,e.__name)(t=>({x:(0,e.__name)(function(e,r,n){let l=0,o=i(n[0]).x<i(n[n.length-1]).x?"left":"right";if(0===r&&Object.hasOwn(a,t.arrowTypeStart)){let{angle:e,deltaX:r}=s(n[0],n[1]);l=a[t.arrowTypeStart]*Math.cos(e)*(r>=0?1:-1)}else if(r===n.length-1&&Object.hasOwn(a,t.arrowTypeEnd)){let{angle:e,deltaX:r}=s(n[n.length-1],n[n.length-2]);l=a[t.arrowTypeEnd]*Math.cos(e)*(r>=0?1:-1)}let d=Math.abs(i(e).x-i(n[n.length-1]).x),c=Math.abs(i(e).y-i(n[n.length-1]).y),p=Math.abs(i(e).x-i(n[0]).x),h=Math.abs(i(e).y-i(n[0]).y),f=a[t.arrowTypeStart],u=a[t.arrowTypeEnd];if(d<u&&d>0&&c<u){let t=u+1-d;t*="right"===o?-1:1,l-=t}if(p<f&&p>0&&h<f){let t=f+1-p;t*="right"===o?-1:1,l+=t}return i(e).x+l},"x"),y:(0,e.__name)(function(e,r,n){let l=0,o=i(n[0]).y<i(n[n.length-1]).y?"down":"up";if(0===r&&Object.hasOwn(a,t.arrowTypeStart)){let{angle:e,deltaY:r}=s(n[0],n[1]);l=a[t.arrowTypeStart]*Math.abs(Math.sin(e))*(r>=0?1:-1)}else if(r===n.length-1&&Object.hasOwn(a,t.arrowTypeEnd)){let{angle:e,deltaY:r}=s(n[n.length-1],n[n.length-2]);l=a[t.arrowTypeEnd]*Math.abs(Math.sin(e))*(r>=0?1:-1)}let d=Math.abs(i(e).y-i(n[n.length-1]).y),c=Math.abs(i(e).x-i(n[n.length-1]).x),p=Math.abs(i(e).y-i(n[0]).y),h=Math.abs(i(e).x-i(n[0]).x),f=a[t.arrowTypeStart],u=a[t.arrowTypeEnd];if(d<u&&d>0&&c<u){let t=u+1-d;t*="up"===o?-1:1,l-=t}if(p<f&&p>0&&h<f){let t=f+1-p;t*="up"===o?-1:1,l+=t}return i(e).y+l},"y")}),"getLineFunctionsWithOffset");t.s(["getLineFunctionsWithOffset",()=>n,"markerOffsets",()=>a,"markerOffsets2",()=>r])},54802,t=>{"use strict";var e=t.i(20502),a=t.i(7983),r=t.i(2256),s=t.i(33448),i=t.i(80262),n=t.i(95923),l=t.i(80926),o=t.i(71206);t.i(47716);var d=t.i(104),c=t.i(51262),p=t.i(26157),h=t.i(72200),f=t.i(22914),u=t.i(93158),m=t.i(63823),g=t.i(92536),y=t.i(26619),k=t.i(81142),b=t.i(357),_=t.i(63018),x=t.i(85833),w=t.i(23685),v=t.i(83272),M=(0,o.__name)((t,e,a,r,s,i)=>{e.arrowTypeStart&&L(t,"start",e.arrowTypeStart,a,r,s,i),e.arrowTypeEnd&&L(t,"end",e.arrowTypeEnd,a,r,s,i)},"addEdgeMarkers"),$={arrow_cross:{type:"cross",fill:!1},arrow_point:{type:"point",fill:!0},arrow_barb:{type:"barb",fill:!0},arrow_circle:{type:"circle",fill:!1},aggregation:{type:"aggregation",fill:!1},extension:{type:"extension",fill:!1},composition:{type:"composition",fill:!0},dependency:{type:"dependency",fill:!0},lollipop:{type:"lollipop",fill:!1},only_one:{type:"onlyOne",fill:!1},zero_or_one:{type:"zeroOrOne",fill:!1},one_or_more:{type:"oneOrMore",fill:!1},zero_or_more:{type:"zeroOrMore",fill:!1},requirement_arrow:{type:"requirement_arrow",fill:!1},requirement_contains:{type:"requirement_contains",fill:!1}},L=(0,o.__name)((t,e,a,r,s,i,n)=>{let l=$[a];if(!l)return void o.log.warn(`Unknown arrow type: ${a}`);let d=l.type,c=`${s}_${i}-${d}${"start"===e?"Start":"End"}`;if(n&&""!==n.trim()){let a=n.replace(/[^\dA-Za-z]/g,"_"),s=`${c}_${a}`;if(!document.getElementById(s)){let t=document.getElementById(c);if(t){let e=t.cloneNode(!0);e.id=s,e.querySelectorAll("path, circle, line").forEach(t=>{t.setAttribute("stroke",n),l.fill&&t.setAttribute("fill",n)}),t.parentNode?.appendChild(e)}}t.attr(`marker-${e}`,`url(${r}#${s})`)}else t.attr(`marker-${e}`,`url(${r}#${c})`)},"addEdgeMarker"),j=new Map,S=new Map,O=(0,o.__name)(()=>{j.clear(),S.clear()},"clear"),P=(0,o.__name)(t=>t?t.reduce((t,e)=>t+";"+e,""):"","getLabelStyles"),E=(0,o.__name)(async(t,e)=>{let r,n=(0,l.evaluate)((0,l.getConfig2)().flowchart.htmlLabels),{labelStyles:d}=(0,s.styles2String)(e);e.labelStyle=d;let c=await (0,i.createText)(t,e.label,{style:e.labelStyle,useHtmlLabels:n,addSvgBackground:!0,isNode:!1});o.log.info("abc82",e,e.labelType);let p=t.insert("g").attr("class","edgeLabel"),h=p.insert("g").attr("class","label").attr("data-id",e.id);h.node().appendChild(c);let f=c.getBBox();if(n){let t=c.children[0],e=(0,w.select)(c);f=t.getBoundingClientRect(),e.attr("width",f.width),e.attr("height",f.height)}if(h.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),j.set(e.id,p),e.width=f.width,e.height=f.height,e.startLabelLeft){let s=await (0,a.createLabel_default)(e.startLabelLeft,P(e.labelStyle)),i=t.insert("g").attr("class","edgeTerminals"),n=i.insert("g").attr("class","inner");r=n.node().appendChild(s);let l=s.getBBox();n.attr("transform","translate("+-l.width/2+", "+-l.height/2+")"),S.get(e.id)||S.set(e.id,{}),S.get(e.id).startLeft=i,T(r,e.startLabelLeft)}if(e.startLabelRight){let s=await (0,a.createLabel_default)(e.startLabelRight,P(e.labelStyle)),i=t.insert("g").attr("class","edgeTerminals"),n=i.insert("g").attr("class","inner");r=i.node().appendChild(s),n.node().appendChild(s);let l=s.getBBox();n.attr("transform","translate("+-l.width/2+", "+-l.height/2+")"),S.get(e.id)||S.set(e.id,{}),S.get(e.id).startRight=i,T(r,e.startLabelRight)}if(e.endLabelLeft){let s=await (0,a.createLabel_default)(e.endLabelLeft,P(e.labelStyle)),i=t.insert("g").attr("class","edgeTerminals"),n=i.insert("g").attr("class","inner");r=n.node().appendChild(s);let l=s.getBBox();n.attr("transform","translate("+-l.width/2+", "+-l.height/2+")"),i.node().appendChild(s),S.get(e.id)||S.set(e.id,{}),S.get(e.id).endLeft=i,T(r,e.endLabelLeft)}if(e.endLabelRight){let s=await (0,a.createLabel_default)(e.endLabelRight,P(e.labelStyle)),i=t.insert("g").attr("class","edgeTerminals"),n=i.insert("g").attr("class","inner");r=n.node().appendChild(s);let l=s.getBBox();n.attr("transform","translate("+-l.width/2+", "+-l.height/2+")"),i.node().appendChild(s),S.get(e.id)||S.set(e.id,{}),S.get(e.id).endRight=i,T(r,e.endLabelRight)}return c},"insertEdgeLabel");function T(t,e){(0,l.getConfig2)().flowchart.htmlLabels&&t&&(t.style.width=9*e.length+"px",t.style.height="12px")}(0,o.__name)(T,"setTerminalWidth");var C=(0,o.__name)((t,e)=>{o.log.debug("Moving label abc88 ",t.id,t.label,j.get(t.id),e);let a=e.updatedPath?e.updatedPath:e.originalPath,s=(0,l.getConfig2)(),{subGraphTitleTotalMargin:i}=(0,r.getSubGraphTitleMargins)(s);if(t.label){let r=j.get(t.id),s=t.x,l=t.y;if(a){let r=n.utils_default.calcLabelPosition(a);o.log.debug("Moving label "+t.label+" from (",s,",",l,") to (",r.x,",",r.y,") abc88"),e.updatedPath&&(s=r.x,l=r.y)}r.attr("transform",`translate(${s}, ${l+i/2})`)}if(t.startLabelLeft){let e=S.get(t.id).startLeft,r=t.x,s=t.y;if(a){let e=n.utils_default.calcTerminalLabelPosition(10*!!t.arrowTypeStart,"start_left",a);r=e.x,s=e.y}e.attr("transform",`translate(${r}, ${s})`)}if(t.startLabelRight){let e=S.get(t.id).startRight,r=t.x,s=t.y;if(a){let e=n.utils_default.calcTerminalLabelPosition(10*!!t.arrowTypeStart,"start_right",a);r=e.x,s=e.y}e.attr("transform",`translate(${r}, ${s})`)}if(t.endLabelLeft){let e=S.get(t.id).endLeft,r=t.x,s=t.y;if(a){let e=n.utils_default.calcTerminalLabelPosition(10*!!t.arrowTypeEnd,"end_left",a);r=e.x,s=e.y}e.attr("transform",`translate(${r}, ${s})`)}if(t.endLabelRight){let e=S.get(t.id).endRight,r=t.x,s=t.y;if(a){let e=n.utils_default.calcTerminalLabelPosition(10*!!t.arrowTypeEnd,"end_right",a);r=e.x,s=e.y}e.attr("transform",`translate(${r}, ${s})`)}},"positionEdgeLabel"),A=(0,o.__name)((t,e)=>{let a=t.x,r=t.y,s=Math.abs(e.x-a),i=Math.abs(e.y-r),n=t.width/2,l=t.height/2;return s>=n||i>=l},"outsideNode"),W=(0,o.__name)((t,e,a)=>{o.log.debug(`intersection calc abc89:
|
|
2
|
-
outsidePoint: ${JSON.stringify(e)}
|
|
3
|
-
insidePoint : ${JSON.stringify(a)}
|
|
4
|
-
node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);let r=t.x,s=t.y,i=Math.abs(r-a.x),n=t.width/2,l=a.x<e.x?n-i:n+i,d=t.height/2,c=Math.abs(e.y-a.y),p=Math.abs(e.x-a.x);if(Math.abs(s-e.y)*n>Math.abs(r-e.x)*d){let t=a.y<e.y?e.y-d-s:s-d-e.y;l=p*t/c;let r={x:a.x<e.x?a.x+l:a.x-p+l,y:a.y<e.y?a.y+c-t:a.y-c+t};return 0===l&&(r.x=e.x,r.y=e.y),0===p&&(r.x=e.x),0===c&&(r.y=e.y),o.log.debug(`abc89 top/bottom calc, Q ${c}, q ${t}, R ${p}, r ${l}`,r),r}{let t=c*(l=a.x<e.x?e.x-n-r:r-n-e.x)/p,s=a.x<e.x?a.x+p-l:a.x-p+l,i=a.y<e.y?a.y+t:a.y-t;return o.log.debug(`sides calc abc89, Q ${c}, q ${t}, R ${p}, r ${l}`,{_x:s,_y:i}),0===l&&(s=e.x,i=e.y),0===p&&(s=e.x),0===c&&(i=e.y),{x:s,y:i}}},"intersection"),X=(0,o.__name)((t,e)=>{o.log.warn("abc88 cutPathAtIntersect",t,e);let a=[],r=t[0],s=!1;return t.forEach(t=>{if(o.log.info("abc88 checking point",t,e),A(e,t)||s)o.log.warn("abc88 outside",t,r),r=t,s||a.push(t);else{let i=W(e,r,t);o.log.debug("abc88 inside",t,r,i),o.log.debug("abc88 intersection",i,e);let n=!1;a.forEach(t=>{n=n||t.x===i.x&&t.y===i.y}),a.some(t=>t.x===i.x&&t.y===i.y)?o.log.warn("abc88 no intersect",i,a):a.push(i),s=!0}}),o.log.debug("returning points",a),a},"cutPathAtIntersect");function Y(t){let e=[],a=[];for(let r=1;r<t.length-1;r++){let s=t[r-1],i=t[r],n=t[r+1];s.x===i.x&&i.y===n.y&&Math.abs(i.x-n.x)>5&&Math.abs(i.y-s.y)>5?(e.push(i),a.push(r)):s.y===i.y&&i.x===n.x&&Math.abs(i.x-s.x)>5&&Math.abs(i.y-n.y)>5&&(e.push(i),a.push(r))}return{cornerPoints:e,cornerPointPositions:a}}(0,o.__name)(Y,"extractCornerPoints");var B=(0,o.__name)(function(t,e,a){let r=e.x-t.x,s=e.y-t.y,i=a/Math.sqrt(r*r+s*s);return{x:e.x-i*r,y:e.y-i*s}},"findAdjacentPoint"),H=(0,o.__name)(function(t){let{cornerPointPositions:e}=Y(t),a=[];for(let r=0;r<t.length;r++)if(e.includes(r)){let e=t[r-1],s=t[r+1],i=t[r],n=B(e,i,5),l=B(s,i,5),d=l.x-n.x,c=l.y-n.y;a.push(n);let p=2*Math.sqrt(2),h={x:i.x,y:i.y};Math.abs(s.x-e.x)>10&&Math.abs(s.y-e.y)>=10?(o.log.debug("Corner point fixing",Math.abs(s.x-e.x),Math.abs(s.y-e.y)),h=i.x===n.x?{x:d<0?n.x-5+p:n.x+5-p,y:c<0?n.y-p:n.y+p}:{x:d<0?n.x-p:n.x+p,y:c<0?n.y-5+p:n.y+5-p}):o.log.debug("Corner point skipping fixing",Math.abs(s.x-e.x),Math.abs(s.y-e.y)),a.push(h,l)}else a.push(t[r]);return a},"fixCorners"),R=(0,o.__name)((t,e,a)=>{let r=Array(Math.floor((t-e-a)/4)).fill("2 2").join(" ");return`0 ${e} ${r} ${a}`},"generateDashArray"),q=(0,o.__name)(function(t,a,r,i,$,L,j,S=!1){let O,P,{handDrawnSeed:E}=(0,l.getConfig2)(),T=a.points,C=!1,A=[];for(let t in a.cssCompiledStyles)(0,s.isLabelStyle)(t)||A.push(a.cssCompiledStyles[t]);o.log.debug("UIO intersect check",a.points,L.x,$.x),L.intersect&&$.intersect&&!S&&((T=T.slice(1,a.points.length-1)).unshift($.intersect(T[0])),o.log.debug("Last point UIO",a.start,"-->",a.end,T[T.length-1],L,L.intersect(T[T.length-1])),T.push(L.intersect(T[T.length-1])));let W=btoa(JSON.stringify(T));a.toCluster&&(o.log.info("to cluster abc88",r.get(a.toCluster)),T=X(a.points,r.get(a.toCluster).node),C=!0),a.fromCluster&&(o.log.debug("from cluster abc88",r.get(a.fromCluster),JSON.stringify(T,null,2)),T=X(T.reverse(),r.get(a.fromCluster).node).reverse(),C=!0);let Y=T.filter(t=>!Number.isNaN(t.y));Y=H(Y);let B=d.curveBasis;switch(B=c.curveLinear,a.curve){case"linear":B=c.curveLinear;break;case"basis":default:B=d.curveBasis;break;case"cardinal":B=p.curveCardinal;break;case"bumpX":B=h.curveBumpX;break;case"bumpY":B=f.curveBumpY;break;case"catmullRom":B=u.curveCatmullRom;break;case"monotoneX":B=m.curveMonotoneX;break;case"monotoneY":B=g.curveMonotoneY;break;case"natural":B=y.curveNatural;break;case"step":B=k.curveStep;break;case"stepAfter":B=b.curveStepAfter;break;case"stepBefore":B=_.curveStepBefore}let{x:q,y:z}=(0,e.getLineFunctionsWithOffset)(a),D=(0,x.line)().x(q).y(z).curve(B);switch(a.thickness){case"normal":default:O="edge-thickness-normal";break;case"thick":O="edge-thickness-thick";break;case"invisible":O="edge-thickness-invisible"}switch(a.pattern){case"solid":default:O+=" edge-pattern-solid";break;case"dotted":O+=" edge-pattern-dotted";break;case"dashed":O+=" edge-pattern-dashed"}let Q="rounded"===a.curve?N(U(Y,a),5):D(Y),Z=Array.isArray(a.style)?a.style:[a.style],I=Z.find(t=>t?.startsWith("stroke:")),G=!1;if("handDrawn"===a.look){let e=v.default.svg(t);Object.assign([],Y);let r=e.path(Q,{roughness:.3,seed:E});O+=" transition";let s=(P=(0,w.select)(r).select("path").attr("id",a.id).attr("class"," "+O+(a.classes?" "+a.classes:"")).attr("style",Z?Z.reduce((t,e)=>t+";"+e,""):"")).attr("d");P.attr("d",s),t.node().appendChild(P.node())}else{let r=A.join(";"),s=Z?Z.reduce((t,e)=>t+e+";",""):"",i="";a.animate&&(i=" edge-animation-fast"),a.animation&&(i=" edge-animation-"+a.animation);let n=(r?r+";"+s+";":s)+";"+(Z?Z.reduce((t,e)=>t+";"+e,""):"");P=t.append("path").attr("d",Q).attr("id",a.id).attr("class"," "+O+(a.classes?" "+a.classes:"")+(i??"")).attr("style",n),I=n.match(/stroke:([^;]+)/)?.[1],G=!0===a.animate||!!a.animation||r.includes("animation");let l=P.node(),o="function"==typeof l.getTotalLength?l.getTotalLength():0,d=e.markerOffsets2[a.arrowTypeStart]||0,c=e.markerOffsets2[a.arrowTypeEnd]||0;if("neo"===a.look&&!G){let t="dotted"===a.pattern||"dashed"===a.pattern?R(o,d,c):`0 ${d} ${o-d-c} ${c}`,e=`stroke-dasharray: ${t}; stroke-dashoffset: 0;`;P.attr("style",e+P.attr("style"))}}P.attr("data-edge",!0),P.attr("data-et","edge"),P.attr("data-id",a.id),P.attr("data-points",W),a.showPoints&&Y.forEach(e=>{t.append("circle").style("stroke","red").style("fill","red").attr("r",1).attr("cx",e.x).attr("cy",e.y)});let F="";((0,l.getConfig2)().flowchart.arrowMarkerAbsolute||(0,l.getConfig2)().state.arrowMarkerAbsolute)&&(F=(F=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(").replace(/\)/g,"\\)")),o.log.info("arrowTypeStart",a.arrowTypeStart),o.log.info("arrowTypeEnd",a.arrowTypeEnd),M(P,a,F,j,i,I);let J=Math.floor(T.length/2),V=T[J];n.utils_default.isLabelCoordinateInPath(V,P.attr("d"))||(C=!0);let K={};return C&&(K.updatedPath=T),K.originalPath=a.points,K},"insertEdge");function N(t,e){if(t.length<2)return"";let a="",r=t.length;for(let s=0;s<r;s++){let i=t[s],n=t[s-1],l=t[s+1];if(0===s)a+=`M${i.x},${i.y}`;else if(s===r-1)a+=`L${i.x},${i.y}`;else{let t=i.x-n.x,r=i.y-n.y,s=l.x-i.x,o=l.y-i.y,d=Math.hypot(t,r),c=Math.hypot(s,o);if(d<1e-5||c<1e-5){a+=`L${i.x},${i.y}`;continue}let p=t/d,h=r/d,f=s/c,u=o/c,m=Math.acos(Math.max(-1,Math.min(1,p*f+h*u)));if(m<1e-5||1e-5>Math.abs(Math.PI-m)){a+=`L${i.x},${i.y}`;continue}let g=Math.min(e/Math.sin(m/2),d/2,c/2),y=i.x-p*g,k=i.y-h*g,b=i.x+f*g,_=i.y+u*g;a+=`L${y},${k}Q${i.x},${i.y} ${b},${_}`}}return a}function z(t,e){if(!t||!e)return{angle:0,deltaX:0,deltaY:0};let a=e.x-t.x,r=e.y-t.y;return{angle:Math.atan2(r,a),deltaX:a,deltaY:r}}function U(t,a){let r=t.map(t=>({...t}));if(t.length>=2&&e.markerOffsets[a.arrowTypeStart]){let s=e.markerOffsets[a.arrowTypeStart],i=t[0],{angle:n}=z(i,t[1]),l=s*Math.cos(n),o=s*Math.sin(n);r[0].x=i.x+l,r[0].y=i.y+o}let s=t.length;if(s>=2&&e.markerOffsets[a.arrowTypeEnd]){let i=e.markerOffsets[a.arrowTypeEnd],n=t[s-1],{angle:l}=z(t[s-2],n),o=i*Math.cos(l),d=i*Math.sin(l);r[s-1].x=n.x-o,r[s-1].y=n.y-d}return r}(0,o.__name)(N,"generateRoundedPath"),(0,o.__name)(z,"calculateDeltaAndAngle"),(0,o.__name)(U,"applyMarkerOffsetsToPoints");var D=(0,o.__name)((t,e,a,r)=>{e.forEach(e=>{ti[e](t,a,r)})},"insertMarkers"),Q=(0,o.__name)((t,e,a)=>{o.log.trace("Making markers for ",a),t.append("defs").append("marker").attr("id",a+"_"+e+"-extensionStart").attr("class","marker extension "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id",a+"_"+e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),Z=(0,o.__name)((t,e,a)=>{t.append("defs").append("marker").attr("id",a+"_"+e+"-compositionStart").attr("class","marker composition "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",a+"_"+e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),I=(0,o.__name)((t,e,a)=>{t.append("defs").append("marker").attr("id",a+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",a+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),G=(0,o.__name)((t,e,a)=>{t.append("defs").append("marker").attr("id",a+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",a+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),F=(0,o.__name)((t,e,a)=>{t.append("defs").append("marker").attr("id",a+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),t.append("defs").append("marker").attr("id",a+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),J=(0,o.__name)((t,e,a)=>{t.append("marker").attr("id",a+"_"+e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",a+"_"+e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),V=(0,o.__name)((t,e,a)=>{t.append("marker").attr("id",a+"_"+e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",a+"_"+e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),K=(0,o.__name)((t,e,a)=>{t.append("marker").attr("id",a+"_"+e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),t.append("marker").attr("id",a+"_"+e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),tt=(0,o.__name)((t,e,a)=>{t.append("defs").append("marker").attr("id",a+"_"+e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","userSpaceOnUse").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),te=(0,o.__name)((t,e,a)=>{t.append("defs").append("marker").attr("id",a+"_"+e+"-onlyOneStart").attr("class","marker onlyOne "+e).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M9,0 L9,18 M15,0 L15,18"),t.append("defs").append("marker").attr("id",a+"_"+e+"-onlyOneEnd").attr("class","marker onlyOne "+e).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M3,0 L3,18 M9,0 L9,18")},"only_one"),ta=(0,o.__name)((t,e,a)=>{let r=t.append("defs").append("marker").attr("id",a+"_"+e+"-zeroOrOneStart").attr("class","marker zeroOrOne "+e).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");r.append("circle").attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),r.append("path").attr("d","M9,0 L9,18");let s=t.append("defs").append("marker").attr("id",a+"_"+e+"-zeroOrOneEnd").attr("class","marker zeroOrOne "+e).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");s.append("circle").attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),s.append("path").attr("d","M21,0 L21,18")},"zero_or_one"),tr=(0,o.__name)((t,e,a)=>{t.append("defs").append("marker").attr("id",a+"_"+e+"-oneOrMoreStart").attr("class","marker oneOrMore "+e).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),t.append("defs").append("marker").attr("id",a+"_"+e+"-oneOrMoreEnd").attr("class","marker oneOrMore "+e).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18")},"one_or_more"),ts=(0,o.__name)((t,e,a)=>{let r=t.append("defs").append("marker").attr("id",a+"_"+e+"-zeroOrMoreStart").attr("class","marker zeroOrMore "+e).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");r.append("circle").attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),r.append("path").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18");let s=t.append("defs").append("marker").attr("id",a+"_"+e+"-zeroOrMoreEnd").attr("class","marker zeroOrMore "+e).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");s.append("circle").attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),s.append("path").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},"zero_or_more"),ti={extension:Q,composition:Z,aggregation:I,dependency:G,lollipop:F,point:J,circle:V,cross:K,barb:tt,only_one:te,zero_or_one:ta,one_or_more:tr,zero_or_more:ts,requirement_arrow:(0,o.__name)((t,e,a)=>{t.append("defs").append("marker").attr("id",a+"_"+e+"-requirement_arrowEnd").attr("refX",20).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("path").attr("d",`M0,0
|
|
5
|
-
L20,10
|
|
6
|
-
M20,10
|
|
7
|
-
L0,20`)},"requirement_arrow"),requirement_contains:(0,o.__name)((t,e,a)=>{let r=t.append("defs").append("marker").attr("id",a+"_"+e+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("g");r.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),r.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),r.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10)},"requirement_contains")};t.s(["clear",()=>O,"insertEdge",()=>q,"insertEdgeLabel",()=>E,"markers_default",()=>D,"positionEdgeLabel",()=>C])},93016,t=>{"use strict";var e=t.i(54802),a=t.i(7983),r=t.i(95923),s=t.i(80926),i=t.i(71206),n={common:s.common_default,getConfig:s.getConfig,insertCluster:a.insertCluster,insertEdge:e.insertEdge,insertEdgeLabel:e.insertEdgeLabel,insertMarkers:e.markers_default,insertNode:a.insertNode,interpolateToCurve:r.interpolateToCurve,labelHelper:a.labelHelper,log:i.log,positionEdgeLabel:e.positionEdgeLabel},l={},o=(0,i.__name)(t=>{for(let e of t)l[e.name]=e},"registerLayoutLoaders");(0,i.__name)(()=>{o([{name:"dagre",loader:(0,i.__name)(async()=>await t.A(5230),"loader")},{name:"cose-bilkent",loader:(0,i.__name)(async()=>await t.A(62369),"loader")}])},"registerDefaultLayoutLoaders")();var d=(0,i.__name)(async(t,e)=>{if(!(t.layoutAlgorithm in l))throw Error(`Unknown layout algorithm: ${t.layoutAlgorithm}`);let a=l[t.layoutAlgorithm];return(await a.loader()).render(t,e,n,{algorithm:a.algorithm})},"render"),c=(0,i.__name)((t="",{fallback:e="dagre"}={})=>{if(t in l)return t;if(e in l)return i.log.warn(`Layout algorithm ${t} is not registered. Using ${e} as fallback.`),e;throw Error(`Both layout algorithms ${t} and ${e} are not registered.`)},"getRegisteredLayoutAlgorithm");t.s(["getRegisteredLayoutAlgorithm",()=>c,"registerLayoutLoaders",()=>o,"render",()=>d])},65399,t=>{"use strict";var e={name:"mermaid",version:"11.12.3",description:"Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.",type:"module",module:"./dist/mermaid.core.mjs",types:"./dist/mermaid.d.ts",exports:{".":{types:"./dist/mermaid.d.ts",import:"./dist/mermaid.core.mjs",default:"./dist/mermaid.core.mjs"},"./*":"./*"},keywords:["diagram","markdown","flowchart","sequence diagram","gantt","class diagram","git graph","mindmap","packet diagram","c4 diagram","er diagram","pie chart","pie diagram","quadrant chart","requirement diagram","graph"],scripts:{clean:"rimraf dist",dev:"pnpm -w dev","docs:code":"typedoc src/defaultConfig.ts src/config.ts src/mermaid.ts && prettier --write ./src/docs/config/setup","docs:build":"rimraf ../../docs && pnpm docs:code && pnpm docs:spellcheck && tsx scripts/docs.cli.mts","docs:verify":"pnpm docs:code && pnpm docs:spellcheck && tsx scripts/docs.cli.mts --verify","docs:pre:vitepress":"pnpm --filter ./src/docs prefetch && rimraf src/vitepress && pnpm docs:code && tsx scripts/docs.cli.mts --vitepress && pnpm --filter ./src/vitepress install --no-frozen-lockfile --ignore-scripts","docs:build:vitepress":"pnpm docs:pre:vitepress && (cd src/vitepress && pnpm run build) && cpy --flat src/docs/landing/ ./src/vitepress/.vitepress/dist/landing","docs:dev":'pnpm docs:pre:vitepress && concurrently "pnpm --filter ./src/vitepress dev" "tsx scripts/docs.cli.mts --watch --vitepress"',"docs:dev:docker":'pnpm docs:pre:vitepress && concurrently "pnpm --filter ./src/vitepress dev:docker" "tsx scripts/docs.cli.mts --watch --vitepress"',"docs:serve":"pnpm docs:build:vitepress && vitepress serve src/vitepress","docs:spellcheck":'cspell "src/docs/**/*.md"',"docs:release-version":"tsx scripts/update-release-version.mts","docs:verify-version":"tsx scripts/update-release-version.mts --verify","types:build-config":"tsx scripts/create-types-from-json-schema.mts","types:verify-config":"tsx scripts/create-types-from-json-schema.mts --verify",checkCircle:"npx madge --circular ./src",prepublishOnly:"pnpm docs:verify-version"},repository:{type:"git",url:"https://github.com/mermaid-js/mermaid"},author:"Knut Sveidqvist",license:"MIT",standard:{ignore:["**/parser/*.js","dist/**/*.js","cypress/**/*.js"],globals:["page"]},dependencies:{"@braintree/sanitize-url":"^7.1.1","@iconify/utils":"^3.0.1","@mermaid-js/parser":"workspace:^","@types/d3":"^7.4.3",cytoscape:"^3.29.3","cytoscape-cose-bilkent":"^4.1.0","cytoscape-fcose":"^2.2.0",d3:"^7.9.0","d3-sankey":"^0.12.3","dagre-d3-es":"7.0.13",dayjs:"^1.11.18",dompurify:"^3.2.5",katex:"^0.16.22",khroma:"^2.1.0","lodash-es":"^4.17.23",marked:"^16.2.1",roughjs:"^4.6.6",stylis:"^4.3.6","ts-dedent":"^2.2.0",uuid:"^11.1.0"},devDependencies:{"@adobe/jsonschema2md":"^8.0.5","@iconify/types":"^2.0.0","@types/cytoscape":"^3.21.9","@types/cytoscape-fcose":"^2.2.4","@types/d3-sankey":"^0.12.4","@types/d3-scale":"^4.0.9","@types/d3-scale-chromatic":"^3.1.0","@types/d3-selection":"^3.0.11","@types/d3-shape":"^3.1.7","@types/jsdom":"^21.1.7","@types/katex":"^0.16.7","@types/lodash-es":"^4.17.12","@types/micromatch":"^4.0.9","@types/stylis":"^4.2.7","@types/uuid":"^10.0.0",ajv:"^8.17.1",canvas:"^3.1.2",chokidar:"3.6.0",concurrently:"^9.1.2","csstree-validator":"^4.0.1",globby:"^14.1.0",jison:"^0.4.18","js-base64":"^3.7.8",jsdom:"^26.1.0","json-schema-to-typescript":"^15.0.4",micromatch:"^4.0.8","path-browserify":"^1.0.1",prettier:"^3.5.3",remark:"^15.0.1","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.1",rimraf:"^6.0.1","start-server-and-test":"^2.0.13","type-fest":"^4.35.0",typedoc:"^0.28.12","typedoc-plugin-markdown":"^4.8.1",typescript:"~5.7.3","unist-util-flatmap":"^1.0.0","unist-util-visit":"^5.0.0",vitepress:"^1.6.4","vitepress-plugin-search":"1.0.4-alpha.22"},files:["dist/","README.md"],publishConfig:{access:"public"}};t.s(["package_default",()=>e])},39484,t=>{t.v(e=>Promise.all(["static/chunks/34e2788a0be7ee63.js"].map(e=>t.l(e))).then(()=>e(16400)))},5230,t=>{t.v(e=>Promise.all(["static/chunks/09e4e9409aadc2fe.js","static/chunks/5623d8a1c99eba62.js","static/chunks/559e55a53f22f5d1.js"].map(e=>t.l(e))).then(()=>e(72465)))},62369,t=>{t.v(e=>Promise.all(["static/chunks/c231010aae14914b.js","static/chunks/762121739217e5da.js"].map(e=>t.l(e))).then(()=>e(97810)))},31892,t=>{t.v(e=>Promise.all(["static/chunks/f42ff7863eb4c3ff.js","static/chunks/6fee5c7b5d483c8a.js"].map(e=>t.l(e))).then(()=>e(3887)))},24476,t=>{t.v(e=>Promise.all(["static/chunks/cb863a7e46548566.js","static/chunks/b8b36494d4330f5f.js"].map(e=>t.l(e))).then(()=>e(23142)))},98583,t=>{t.v(e=>Promise.all(["static/chunks/d5b700b8aafeea3b.js"].map(e=>t.l(e))).then(()=>e(26887)))},12413,t=>{t.v(e=>Promise.all(["static/chunks/ec0de430276c8209.js","static/chunks/9eb0474ddf7f6238.js","static/chunks/b9a047fc90291dbd.js"].map(e=>t.l(e))).then(()=>e(76816)))},62316,t=>{t.v(e=>Promise.all(["static/chunks/581c7f8a86cc86fb.js","static/chunks/9525dc246b363870.js"].map(e=>t.l(e))).then(()=>e(55454)))},97189,t=>{t.v(e=>Promise.all(["static/chunks/957a5dae245bbc84.js","static/chunks/9eb0474ddf7f6238.js","static/chunks/ec0de430276c8209.js"].map(e=>t.l(e))).then(()=>e(61398)))},67571,t=>{t.v(e=>Promise.all(["static/chunks/09ec2e3c3d2d294f.js","static/chunks/9eb0474ddf7f6238.js","static/chunks/ec0de430276c8209.js"].map(e=>t.l(e))).then(()=>e(98741)))},66991,t=>{t.v(e=>Promise.all(["static/chunks/8321c26033c9fc5b.js"].map(e=>t.l(e))).then(()=>e(46579)))},95768,t=>{t.v(e=>Promise.all(["static/chunks/0697f660af9a95f1.js","static/chunks/27f5fab49d8a5395.js"].map(e=>t.l(e))).then(()=>e(73239)))},72270,t=>{t.v(e=>Promise.all(["static/chunks/ae52f8e72d4127b1.js"].map(e=>t.l(e))).then(()=>e(17747)))},32135,t=>{t.v(e=>Promise.all(["static/chunks/20c1169c30c95e0f.js","static/chunks/dc16aeb5aabadbd8.js"].map(e=>t.l(e))).then(()=>e(31587)))},28891,t=>{t.v(e=>Promise.all(["static/chunks/1cec4d71237d0c89.js","static/chunks/0356b23e9d8fbd11.js"].map(e=>t.l(e))).then(()=>e(89546)))},85144,t=>{t.v(e=>Promise.all(["static/chunks/46d959abf8046f0e.js","static/chunks/0356b23e9d8fbd11.js"].map(e=>t.l(e))).then(()=>e(77929)))},81963,t=>{t.v(e=>Promise.all(["static/chunks/559e55a53f22f5d1.js","static/chunks/5623d8a1c99eba62.js","static/chunks/9a52b8ded6a9ee38.js"].map(e=>t.l(e))).then(()=>e(92377)))},50875,t=>{t.v(e=>Promise.all(["static/chunks/909ac8a87c0dd9cb.js"].map(e=>t.l(e))).then(()=>e(49634)))},88594,t=>{t.v(e=>Promise.all(["static/chunks/b8ca88454bfa8e05.js"].map(e=>t.l(e))).then(()=>e(68271)))},50608,t=>{t.v(e=>Promise.all(["static/chunks/f9eb3f4ff87b8d8d.js"].map(e=>t.l(e))).then(()=>e(48487)))},79956,t=>{t.v(e=>Promise.all(["static/chunks/1bdb5b021c9a4e61.js"].map(e=>t.l(e))).then(()=>e(15489)))},47048,t=>{t.v(e=>Promise.all(["static/chunks/af66c50a65af610b.js"].map(e=>t.l(e))).then(()=>e(77145)))},10617,t=>{t.v(e=>Promise.all(["static/chunks/70b3258c508216b5.js"].map(e=>t.l(e))).then(()=>e(46768)))},55071,t=>{t.v(e=>Promise.all(["static/chunks/034e8cfdbd1cf3ac.js","static/chunks/9eb0474ddf7f6238.js","static/chunks/ec0de430276c8209.js"].map(e=>t.l(e))).then(()=>e(26229)))},71855,t=>{t.v(e=>Promise.all(["static/chunks/c36e148ece9c20ae.js","static/chunks/9eb0474ddf7f6238.js","static/chunks/ec0de430276c8209.js"].map(e=>t.l(e))).then(()=>e(52024)))},94694,t=>{t.v(e=>Promise.all(["static/chunks/df3c9c7fcf3e0a3d.js","static/chunks/be28d13ded360528.js","static/chunks/20337e5244416041.js"].map(e=>t.l(e))).then(()=>e(52409)))},27724,t=>{t.v(e=>Promise.all(["static/chunks/ed2e02f2db03c1dc.js","static/chunks/ec0de430276c8209.js","static/chunks/eb22f55ae829d296.js","static/chunks/762121739217e5da.js","static/chunks/9eb0474ddf7f6238.js"].map(e=>t.l(e))).then(()=>e(89619)))},75754,t=>{t.v(e=>Promise.all(["static/chunks/ec0de430276c8209.js","static/chunks/9eb0474ddf7f6238.js","static/chunks/31965ae569bf807f.js"].map(e=>t.l(e))).then(()=>e(25260)))}]);
|