@covro/covro 0.3.1-dev.2 → 0.3.1-dev.3

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.
Files changed (113) hide show
  1. package/README.md +6 -2
  2. package/README.zh-CN.md +6 -2
  3. package/dist/server/config-store.js +10 -2
  4. package/dist/server/config-store.js.map +2 -2
  5. package/dist/server/config.js +4 -0
  6. package/dist/server/config.js.map +2 -2
  7. package/dist/server/http.js +33 -5
  8. package/dist/server/http.js.map +2 -2
  9. package/dist/server/local-files.js.map +1 -1
  10. package/dist/server/project-clones.js +2 -2
  11. package/dist/server/project-clones.js.map +2 -2
  12. package/dist/server/project-paths.js +39 -0
  13. package/dist/server/project-paths.js.map +7 -0
  14. package/dist/server/service.js +10 -3
  15. package/dist/server/service.js.map +2 -2
  16. package/dist/server/text-files.js +32 -0
  17. package/dist/server/text-files.js.map +7 -0
  18. package/dist/shared/file-preview.js +22 -0
  19. package/dist/shared/file-preview.js.map +7 -0
  20. package/dist/shared/project-path.js +8 -0
  21. package/dist/shared/project-path.js.map +7 -0
  22. package/dist/shared/release-notes.js +9 -0
  23. package/dist/shared/release-notes.js.map +7 -0
  24. package/dist/update-worker.cjs +4 -0
  25. package/dist/updates/release-notes.js +73 -0
  26. package/dist/updates/release-notes.js.map +7 -0
  27. package/dist/web/assets/{abnfDiagram-WEYOIA3C-BFmMm05x.js → abnfDiagram-WEYOIA3C-CgSmgOr1.js} +1 -1
  28. package/dist/web/assets/{arc-lnrGH4K4.js → arc-DHf4CdSk.js} +1 -1
  29. package/dist/web/assets/{architecture-WOLXFQ4H-CDbpw3av.js → architecture-WOLXFQ4H-DMTD1pHe.js} +1 -1
  30. package/dist/web/assets/{architectureDiagram-ZHVYKT53-Br4uXjzV.js → architectureDiagram-ZHVYKT53-DTR8wiWo.js} +1 -1
  31. package/dist/web/assets/{blockDiagram-RJAE7QA3-2cto1XrH.js → blockDiagram-RJAE7QA3-DcNiTPKZ.js} +1 -1
  32. package/dist/web/assets/{c4Diagram-XDPPPE54-pPOONSo8.js → c4Diagram-XDPPPE54-BDxJVXjQ.js} +1 -1
  33. package/dist/web/assets/channel-B6d61z43.js +1 -0
  34. package/dist/web/assets/{chunk-2E7WHVMD-CqOBPcBj.js → chunk-2E7WHVMD-D5oKHRGT.js} +1 -1
  35. package/dist/web/assets/{chunk-4EMNKR2T-BvMm1kcN.js → chunk-4EMNKR2T-CtrbVCM-.js} +1 -1
  36. package/dist/web/assets/{chunk-55XCU76K-CojzCeCA.js → chunk-55XCU76K-Dhl7DEL7.js} +1 -1
  37. package/dist/web/assets/{chunk-7S6XSTFO-wa76hIsr.js → chunk-7S6XSTFO-C8EwegP-.js} +1 -1
  38. package/dist/web/assets/{chunk-AQDTSKZB-tD5bFGjM.js → chunk-AQDTSKZB-lFiNKr7B.js} +1 -1
  39. package/dist/web/assets/{chunk-DSNLSHJZ-ByVh88M0.js → chunk-DSNLSHJZ-B8GftONA.js} +1 -1
  40. package/dist/web/assets/{chunk-HAGFOTED-BhOQL-iG.js → chunk-HAGFOTED-Cnc2mh7_.js} +1 -1
  41. package/dist/web/assets/{chunk-HNE4Q36P-BZiD7Dq0.js → chunk-HNE4Q36P-BKl6ZgI0.js} +1 -1
  42. package/dist/web/assets/{chunk-NQOKRVIF-DhSSkcDm.js → chunk-NQOKRVIF-qKlxSw3D.js} +1 -1
  43. package/dist/web/assets/{chunk-UHW7PFBP-BONg0JLM.js → chunk-UHW7PFBP-C_zh3mNe.js} +1 -1
  44. package/dist/web/assets/{chunk-VQ5W62QI-CehpDQpX.js → chunk-VQ5W62QI-BXoyXK0q.js} +1 -1
  45. package/dist/web/assets/{chunk-WQQL4CDK-C4Cm0U7u.js → chunk-WQQL4CDK-BBeqcU1J.js} +1 -1
  46. package/dist/web/assets/{chunk-XXDRQBXY-Ddcg44F2.js → chunk-XXDRQBXY-DzssZtz_.js} +1 -1
  47. package/dist/web/assets/{chunk-YZO67HFG-CJYc1t5Y.js → chunk-YZO67HFG-BbNSwLjS.js} +1 -1
  48. package/dist/web/assets/{chunk-ZAUX2LTX-BeF7PiBe.js → chunk-ZAUX2LTX-CjURwZfv.js} +1 -1
  49. package/dist/web/assets/{chunk-ZCHMQSOR-BzxdttZQ.js → chunk-ZCHMQSOR-u39dymjE.js} +1 -1
  50. package/dist/web/assets/{classDiagram-v2-4MYWR3UA-XeRozDII.js → classDiagram-v2-4MYWR3UA-BEXx5gKT.js} +1 -1
  51. package/dist/web/assets/{cose-bilkent-JH36ORCC-zvgm5h82.js → cose-bilkent-JH36ORCC-BxDEucP_.js} +1 -1
  52. package/dist/web/assets/{cynefin-EF2NZ3EQ-DffawypB.js → cynefin-EF2NZ3EQ-BhkCsT6-.js} +1 -1
  53. package/dist/web/assets/{cynefinDiagram-WF24UDRP-e2kk_Xg4.js → cynefinDiagram-WF24UDRP-Wpu-yNke.js} +1 -1
  54. package/dist/web/assets/{dagre-NK4GIZVX-DPTt7HIR.js → dagre-NK4GIZVX-LNSSIN4l.js} +1 -1
  55. package/dist/web/assets/{diagram-CBK3MWTC-CKQPukdf.js → diagram-CBK3MWTC-BVDr5Vx9.js} +1 -1
  56. package/dist/web/assets/{diagram-I5XIIV2D-CBI_lUfl.js → diagram-I5XIIV2D-MnLzR1Rv.js} +1 -1
  57. package/dist/web/assets/{diagram-ODIL2UCW-DXuDuOob.js → diagram-ODIL2UCW-CZ4igbo_.js} +1 -1
  58. package/dist/web/assets/{diagram-PFBEJUXE-C9Y1lchY.js → diagram-PFBEJUXE-4hCnyMdK.js} +1 -1
  59. package/dist/web/assets/{diagram-RJA3I4VV-CbcN7pHo.js → diagram-RJA3I4VV-DTo42rGA.js} +1 -1
  60. package/dist/web/assets/{diagram-TYUNFSNR-D_MmDJKc.js → diagram-TYUNFSNR-BC12iCUZ.js} +1 -1
  61. package/dist/web/assets/{dist-C-d_G2FS.js → dist-Dg_ysSxT.js} +1 -1
  62. package/dist/web/assets/{ebnfDiagram-V4P3TTPT-CIlDI7Ps.js → ebnfDiagram-V4P3TTPT-Du8LCQ31.js} +1 -1
  63. package/dist/web/assets/{elk-QONTBCTQ-BrywoKK7.js → elk-QONTBCTQ-BzTAR-T1.js} +1 -1
  64. package/dist/web/assets/{erDiagram-KYQIGQAA-CKg6BT7V.js → erDiagram-KYQIGQAA-SXYIjNOP.js} +1 -1
  65. package/dist/web/assets/{eventmodeling-K75KTNOO-BkwvMA16.js → eventmodeling-K75KTNOO-Sbno3ZxQ.js} +1 -1
  66. package/dist/web/assets/flowDiagram-IUGLLWBU-Ae1H3vSR.js +1 -0
  67. package/dist/web/assets/{ganttDiagram-R7GPNTJY-DR_AlXXn.js → ganttDiagram-R7GPNTJY-DBeX1qmu.js} +1 -1
  68. package/dist/web/assets/{gitGraph-VSP46ZUC-Cv1cefI5.js → gitGraph-VSP46ZUC-CKWihueS.js} +1 -1
  69. package/dist/web/assets/{gitGraphDiagram-PDYL7XHY-D_prlvP9.js → gitGraphDiagram-PDYL7XHY-Cj1E3jqN.js} +1 -1
  70. package/dist/web/assets/index-CtTuHkNv.js +147 -0
  71. package/dist/web/assets/{index-Crq1cgK9.css → index-DwnjYADO.css} +1 -1
  72. package/dist/web/assets/{info-OHQRW6UA--i-b1e1W.js → info-OHQRW6UA-D0w3nR0p.js} +1 -1
  73. package/dist/web/assets/{infoDiagram-MVDRKAX5-D5xGvRSb.js → infoDiagram-MVDRKAX5-F0jTCG-G.js} +1 -1
  74. package/dist/web/assets/{ishikawaDiagram-HPEHV2GE-CdDzjaNo.js → ishikawaDiagram-HPEHV2GE-CwQGP9AT.js} +1 -1
  75. package/dist/web/assets/{journeyDiagram-BOSHW7O7-DYXkvOgG.js → journeyDiagram-BOSHW7O7-CPY5GqD2.js} +1 -1
  76. package/dist/web/assets/{kanban-definition-FNSA4HC5-DMRrVeRI.js → kanban-definition-FNSA4HC5-BCL38eXh.js} +1 -1
  77. package/dist/web/assets/{line-IKuSdaT6.js → line-DoUzbVJS.js} +1 -1
  78. package/dist/web/assets/{linear-DG-Bn7df.js → linear-LoqU-SEO.js} +1 -1
  79. package/dist/web/assets/{mermaid-parser.core-Cr4hqI31.js → mermaid-parser.core-CvO-MTG1.js} +3 -3
  80. package/dist/web/assets/{mermaid.core-Ch6ggfwZ.js → mermaid.core-DcCEGt0V.js} +4 -4
  81. package/dist/web/assets/{mindmap-definition-6OY57UG3-BLIFHye9.js → mindmap-definition-6OY57UG3-yZvSibNz.js} +1 -1
  82. package/dist/web/assets/{packet-JDAUHWVQ-BaBw3Vck.js → packet-JDAUHWVQ-9ZiCegsV.js} +1 -1
  83. package/dist/web/assets/{pegDiagram-ECIUJNBX-BgFAs43s.js → pegDiagram-ECIUJNBX-BkGwBoEk.js} +1 -1
  84. package/dist/web/assets/{pie-XZMESJXO-Dr-clP68.js → pie-XZMESJXO-kAXIwFnU.js} +1 -1
  85. package/dist/web/assets/{pieDiagram-GNMPY74T-bQ1SwzEf.js → pieDiagram-GNMPY74T-jiwTgtdb.js} +1 -1
  86. package/dist/web/assets/{quadrantDiagram-D57K4MC3-suHq6vLw.js → quadrantDiagram-D57K4MC3-u9HdbUwr.js} +1 -1
  87. package/dist/web/assets/{radar-ABXABTNO-Cd4Nn-aB.js → radar-ABXABTNO-BQ911CvQ.js} +1 -1
  88. package/dist/web/assets/{railroad-I3PHUGI6-BEUNjieA.js → railroad-I3PHUGI6-Bvm7MWf9.js} +1 -1
  89. package/dist/web/assets/{railroad-abnf-LNEFI6M7-DosoD9le.js → railroad-abnf-LNEFI6M7-BfFmWnzu.js} +1 -1
  90. package/dist/web/assets/{railroad-ebnf-DWYD2UWJ-CNykm4Du.js → railroad-ebnf-DWYD2UWJ-B8Ekz4aD.js} +1 -1
  91. package/dist/web/assets/{railroad-peg-JR7BVNR7-C97ZuCXG.js → railroad-peg-JR7BVNR7-B5ANjRbC.js} +1 -1
  92. package/dist/web/assets/{railroadDiagram-Y72NRBL7-B1BnvTWP.js → railroadDiagram-Y72NRBL7-iu8Hmuma.js} +1 -1
  93. package/dist/web/assets/{requirementDiagram-EQYSW5RA-CrlURwLY.js → requirementDiagram-EQYSW5RA-DgiEaaYZ.js} +1 -1
  94. package/dist/web/assets/{sankeyDiagram-SY24JHO5-CEYWGGec.js → sankeyDiagram-SY24JHO5-KzDvhd8J.js} +1 -1
  95. package/dist/web/assets/{sequenceDiagram-BLEHNHQU-CbUEnXPs.js → sequenceDiagram-BLEHNHQU-DJMSHuO_.js} +1 -1
  96. package/dist/web/assets/{src-Dy1r7Mij.js → src-C5WkvxTS.js} +1 -1
  97. package/dist/web/assets/{stateDiagram-v2-A6IESKWZ-DkxgX1jY.js → stateDiagram-v2-A6IESKWZ-CyfHfUyU.js} +1 -1
  98. package/dist/web/assets/{swimlanes-B3ENRKFQ-B7RmFqNN.js → swimlanes-B3ENRKFQ-YPSzHf2U.js} +1 -1
  99. package/dist/web/assets/swimlanesDiagram-AYQRV4AK-D2_NQS-o.js +8 -0
  100. package/dist/web/assets/{timeline-definition-JXYKGLGB-DdaRshUD.js → timeline-definition-JXYKGLGB-BwvPIiSj.js} +1 -1
  101. package/dist/web/assets/{treeView-D4JQ5SDB-UjtdDBri.js → treeView-D4JQ5SDB-DsUhEw24.js} +1 -1
  102. package/dist/web/assets/{treemap-SAJKECNS-CfFPhlAU.js → treemap-SAJKECNS-D5NThB4V.js} +1 -1
  103. package/dist/web/assets/{usecaseDiagram-WPOLBNNX-DpibMf1h.js → usecaseDiagram-WPOLBNNX-fLWGvuS0.js} +1 -1
  104. package/dist/web/assets/{vennDiagram-Q3Y3IDCW-DB_R8qT1.js → vennDiagram-Q3Y3IDCW-DFzlk_u2.js} +1 -1
  105. package/dist/web/assets/{wardley-7MLQ67FV-Bhatoa5s.js → wardley-7MLQ67FV-0uG-noJX.js} +1 -1
  106. package/dist/web/assets/{wardleyDiagram-IVAIDKWA-DBhy_JBR.js → wardleyDiagram-IVAIDKWA-DfEQPTLg.js} +1 -1
  107. package/dist/web/assets/{xychartDiagram-4URNHDU4-C2oV2jkE.js → xychartDiagram-4URNHDU4-BXVsWbL0.js} +1 -1
  108. package/dist/web/index.html +2 -2
  109. package/package.json +3 -3
  110. package/dist/web/assets/channel-D_YOL9S0.js +0 -1
  111. package/dist/web/assets/flowDiagram-IUGLLWBU-DTkRetsK.js +0 -1
  112. package/dist/web/assets/index-Br54jmas.js +0 -147
  113. package/dist/web/assets/swimlanesDiagram-AYQRV4AK-C0XU1o_x.js +0 -8
@@ -0,0 +1,32 @@
1
+ import { AppError } from "../shared/errors.js";
2
+ import { filePreviewFormat, PLAIN_TEXT_EXTENSIONS } from "../shared/file-preview.js";
3
+ import { readLocalFile } from "./local-files.js";
4
+ const MAX_TEXT_BYTES = 2 * 1024 * 1024;
5
+ async function readLocalText(path, scope) {
6
+ const file = await readLocalFile(path, scope, {
7
+ code: "TEXT",
8
+ label: "\u6587\u672C",
9
+ maxBytes: MAX_TEXT_BYTES,
10
+ sizeError: "\u6587\u672C\u6587\u4EF6\u8D85\u8FC7 2 MiB \u9884\u89C8\u9650\u5236",
11
+ validatePath(candidate) {
12
+ if (filePreviewFormat(candidate) !== "text")
13
+ throw new AppError(
14
+ "UNSUPPORTED_TEXT_TYPE",
15
+ `\u4EC5\u652F\u6301 ${PLAIN_TEXT_EXTENSIONS.map((extension) => `.${extension}`).join("\u3001")} \u6587\u4EF6`,
16
+ 415
17
+ );
18
+ }
19
+ });
20
+ try {
21
+ const content = new TextDecoder("utf-8", { fatal: true, ignoreBOM: true }).decode(file.bytes);
22
+ if (content.includes("\0")) throw new Error("Binary content");
23
+ return { path: file.path, content };
24
+ } catch {
25
+ throw new AppError("INVALID_TEXT_CONTENT", "\u6587\u4EF6\u4E0D\u662F\u6709\u6548\u7684 UTF-8 \u7EAF\u6587\u672C", 415);
26
+ }
27
+ }
28
+ export {
29
+ MAX_TEXT_BYTES,
30
+ readLocalText
31
+ };
32
+ //# sourceMappingURL=text-files.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/server/text-files.ts"],
4
+ "sourcesContent": ["import { AppError } from '../shared/errors.js';\nimport { filePreviewFormat, PLAIN_TEXT_EXTENSIONS } from '../shared/file-preview.js';\nimport type { TextFile } from '../shared/types.js';\nimport { readLocalFile, type FileScope } from './local-files.js';\n\nexport const MAX_TEXT_BYTES = 2 * 1024 * 1024;\n\nexport async function readLocalText(path: string | undefined, scope: FileScope): Promise<TextFile> {\n const file = await readLocalFile(path, scope, {\n code: 'TEXT',\n label: '\u6587\u672C',\n maxBytes: MAX_TEXT_BYTES,\n sizeError: '\u6587\u672C\u6587\u4EF6\u8D85\u8FC7 2 MiB \u9884\u89C8\u9650\u5236',\n validatePath(candidate) {\n if (filePreviewFormat(candidate) !== 'text')\n throw new AppError(\n 'UNSUPPORTED_TEXT_TYPE',\n `\u4EC5\u652F\u6301 ${PLAIN_TEXT_EXTENSIONS.map((extension) => `.${extension}`).join('\u3001')} \u6587\u4EF6`,\n 415,\n );\n },\n });\n try {\n const content = new TextDecoder('utf-8', { fatal: true, ignoreBOM: true }).decode(file.bytes);\n if (content.includes('\\0')) throw new Error('Binary content');\n return { path: file.path, content };\n } catch {\n throw new AppError('INVALID_TEXT_CONTENT', '\u6587\u4EF6\u4E0D\u662F\u6709\u6548\u7684 UTF-8 \u7EAF\u6587\u672C', 415);\n }\n}\n"],
5
+ "mappings": "AAAA,SAAS,gBAAgB;AACzB,SAAS,mBAAmB,6BAA6B;AAEzD,SAAS,qBAAqC;AAEvC,MAAM,iBAAiB,IAAI,OAAO;AAEzC,eAAsB,cAAc,MAA0B,OAAqC;AACjG,QAAM,OAAO,MAAM,cAAc,MAAM,OAAO;AAAA,IAC5C,MAAM;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,IACV,WAAW;AAAA,IACX,aAAa,WAAW;AACtB,UAAI,kBAAkB,SAAS,MAAM;AACnC,cAAM,IAAI;AAAA,UACR;AAAA,UACA,sBAAO,sBAAsB,IAAI,CAAC,cAAc,IAAI,SAAS,EAAE,EAAE,KAAK,QAAG,CAAC;AAAA,UAC1E;AAAA,QACF;AAAA,IACJ;AAAA,EACF,CAAC;AACD,MAAI;AACF,UAAM,UAAU,IAAI,YAAY,SAAS,EAAE,OAAO,MAAM,WAAW,KAAK,CAAC,EAAE,OAAO,KAAK,KAAK;AAC5F,QAAI,QAAQ,SAAS,IAAI,EAAG,OAAM,IAAI,MAAM,gBAAgB;AAC5D,WAAO,EAAE,MAAM,KAAK,MAAM,QAAQ;AAAA,EACpC,QAAQ;AACN,UAAM,IAAI,SAAS,wBAAwB,uEAAqB,GAAG;AAAA,EACrE;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,22 @@
1
+ const PLAIN_TEXT_EXTENSIONS = [
2
+ "txt",
3
+ "csv",
4
+ "tsv",
5
+ "toml",
6
+ "yaml",
7
+ "yml",
8
+ "jsonl",
9
+ "log",
10
+ "ini"
11
+ ];
12
+ function filePreviewFormat(path) {
13
+ if (/\.(md|markdown)$/i.test(path)) return "markdown";
14
+ if (/\.json$/i.test(path)) return "json";
15
+ const extension = /\.([^./\\]+)$/.exec(path)?.[1]?.toLowerCase();
16
+ return PLAIN_TEXT_EXTENSIONS.some((value) => value === extension) ? "text" : void 0;
17
+ }
18
+ export {
19
+ PLAIN_TEXT_EXTENSIONS,
20
+ filePreviewFormat
21
+ };
22
+ //# sourceMappingURL=file-preview.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/shared/file-preview.ts"],
4
+ "sourcesContent": ["/** Formats rendered literally, without parsing, executing or rewriting their contents. */\nexport const PLAIN_TEXT_EXTENSIONS = [\n 'txt',\n 'csv',\n 'tsv',\n 'toml',\n 'yaml',\n 'yml',\n 'jsonl',\n 'log',\n 'ini',\n] as const;\n\nexport function filePreviewFormat(path: string): 'markdown' | 'json' | 'text' | undefined {\n if (/\\.(md|markdown)$/i.test(path)) return 'markdown';\n if (/\\.json$/i.test(path)) return 'json';\n const extension = /\\.([^./\\\\]+)$/.exec(path)?.[1]?.toLowerCase();\n return PLAIN_TEXT_EXTENSIONS.some((value) => value === extension) ? 'text' : undefined;\n}\n"],
5
+ "mappings": "AACO,MAAM,wBAAwB;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,SAAS,kBAAkB,MAAwD;AACxF,MAAI,oBAAoB,KAAK,IAAI,EAAG,QAAO;AAC3C,MAAI,WAAW,KAAK,IAAI,EAAG,QAAO;AAClC,QAAM,YAAY,gBAAgB,KAAK,IAAI,IAAI,CAAC,GAAG,YAAY;AAC/D,SAAO,sBAAsB,KAAK,CAAC,UAAU,UAAU,SAAS,IAAI,SAAS;AAC/E;",
6
+ "names": []
7
+ }
@@ -0,0 +1,8 @@
1
+ function repositoryDirectory(repository) {
2
+ const name = repository.trim().replace(/\/+$/, "").split(/[/:]/).pop()?.replace(/\.git$/, "") ?? "";
3
+ return name && name !== "." && name !== ".." && !/[\\\s?#\0]/.test(name) ? name : "";
4
+ }
5
+ export {
6
+ repositoryDirectory
7
+ };
8
+ //# sourceMappingURL=project-path.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/shared/project-path.ts"],
4
+ "sourcesContent": ["/** A suggestion only; repository validation still runs before starting Git. */\nexport function repositoryDirectory(repository: string): string {\n const name =\n repository\n .trim()\n .replace(/\\/+$/, '')\n .split(/[/:]/)\n .pop()\n ?.replace(/\\.git$/, '') ?? '';\n return name && name !== '.' && name !== '..' && !/[\\\\\\s?#\\0]/.test(name) ? name : '';\n}\n"],
5
+ "mappings": "AACO,SAAS,oBAAoB,YAA4B;AAC9D,QAAM,OACJ,WACG,KAAK,EACL,QAAQ,QAAQ,EAAE,EAClB,MAAM,MAAM,EACZ,IAAI,GACH,QAAQ,UAAU,EAAE,KAAK;AAC/B,SAAO,QAAQ,SAAS,OAAO,SAAS,QAAQ,CAAC,aAAa,KAAK,IAAI,IAAI,OAAO;AACpF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,9 @@
1
+ const releasesUrl = "https://github.com/yuzheng14/covro/releases";
2
+ function releaseNotesUrl(version) {
3
+ return `${releasesUrl}/tag/${encodeURIComponent(`v${version}`)}`;
4
+ }
5
+ export {
6
+ releaseNotesUrl,
7
+ releasesUrl
8
+ };
9
+ //# sourceMappingURL=release-notes.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/shared/release-notes.ts"],
4
+ "sourcesContent": ["export const releasesUrl = 'https://github.com/yuzheng14/covro/releases';\n\nexport function releaseNotesUrl(version: string) {\n return `${releasesUrl}/tag/${encodeURIComponent(`v${version}`)}`;\n}\n\nexport type ReleaseNotes = { version: string; url: string } & (\n | { state: 'available'; body: string }\n | { state: 'empty' }\n | { state: 'missing' }\n | { state: 'error'; reason: 'unavailable' | 'rateLimited' }\n);\n"],
5
+ "mappings": "AAAO,MAAM,cAAc;AAEpB,SAAS,gBAAgB,SAAiB;AAC/C,SAAO,GAAG,WAAW,QAAQ,mBAAmB,IAAI,OAAO,EAAE,CAAC;AAChE;",
6
+ "names": []
7
+ }
@@ -21478,6 +21478,10 @@ var configSchema = external_exports.object({
21478
21478
  publicOrigin: external_exports.array(origin).min(1).default(["http://127.0.0.1:8787"]).transform((values) => [...new Set(values)]),
21479
21479
  developmentOrigins: external_exports.array(origin).default([]),
21480
21480
  dataDir: external_exports.string().min(1).default("./.local/codex-web"),
21481
+ workDir: external_exports.string().trim().max(4096).refine(
21482
+ (path) => (0, import_node_path2.isAbsolute)(path) && !path.includes("\0"),
21483
+ "workDir \u5FC5\u987B\u662F\u670D\u52A1\u4E3B\u673A\u4E0A\u7684\u7EDD\u5BF9\u76EE\u5F55\u8DEF\u5F84"
21484
+ ).optional(),
21481
21485
  codex: external_exports.object({
21482
21486
  binary: external_exports.string().min(1).default("codex"),
21483
21487
  home: external_exports.string().refine(import_node_path2.isAbsolute).optional(),
@@ -0,0 +1,73 @@
1
+ import { z } from "zod";
2
+ import { releaseNotesUrl } from "../shared/release-notes.js";
3
+ import { validVersion } from "../shared/versions.js";
4
+ const releaseNotesQuery = z.object({
5
+ version: z.string().max(128).refine((value) => value === value.trim() && validVersion(value)),
6
+ refresh: z.literal("1").optional()
7
+ });
8
+ const releaseSchema = z.object({
9
+ tag_name: z.string(),
10
+ html_url: z.string().url(),
11
+ body: z.string().nullable().optional(),
12
+ draft: z.boolean()
13
+ });
14
+ function createReleaseNotesLookup() {
15
+ const cache = /* @__PURE__ */ new Map();
16
+ const pending = /* @__PURE__ */ new Map();
17
+ async function load(version) {
18
+ const target = { version, url: releaseNotesUrl(version) };
19
+ try {
20
+ const response = await fetch(
21
+ `https://api.github.com/repos/yuzheng14/covro/releases/tags/${encodeURIComponent(`v${version}`)}`,
22
+ {
23
+ headers: { accept: "application/vnd.github+json" },
24
+ signal: AbortSignal.timeout(1e4),
25
+ redirect: "error"
26
+ }
27
+ );
28
+ if (response.status === 404) return { ...target, state: "missing" };
29
+ if (response.status === 429 || response.status === 403)
30
+ return { ...target, state: "error", reason: "rateLimited" };
31
+ if (!response.ok) throw new Error("Release request failed");
32
+ const text = await response.text();
33
+ if (text.length > 1024 * 1024) throw new Error("Release response too large");
34
+ const release = releaseSchema.parse(JSON.parse(text));
35
+ if (release.tag_name !== `v${version}`) throw new Error("Release tag mismatch");
36
+ if (release.draft) return { ...target, state: "missing" };
37
+ if (decodeURIComponent(release.html_url) !== decodeURIComponent(target.url))
38
+ throw new Error("Release URL mismatch");
39
+ return release.body?.trim() ? { ...target, url: release.html_url, state: "available", body: release.body } : { ...target, url: release.html_url, state: "empty" };
40
+ } catch {
41
+ return { ...target, state: "error", reason: "unavailable" };
42
+ }
43
+ }
44
+ return async (version, refresh = false) => {
45
+ releaseNotesQuery.parse({ version });
46
+ const cached = cache.get(version);
47
+ if (!refresh && cached && cached.expires > Date.now()) return cached.notes;
48
+ const existing = pending.get(version);
49
+ if (existing) return existing;
50
+ const request = load(version).then((notes) => {
51
+ if (notes.state !== "error") {
52
+ cache.delete(version);
53
+ if (cache.size >= 32) cache.delete(cache.keys().next().value);
54
+ cache.set(version, {
55
+ notes,
56
+ expires: Date.now() + (notes.state === "available" ? 5 * 6e4 : 6e4)
57
+ });
58
+ }
59
+ return notes;
60
+ });
61
+ pending.set(version, request);
62
+ try {
63
+ return await request;
64
+ } finally {
65
+ pending.delete(version);
66
+ }
67
+ };
68
+ }
69
+ export {
70
+ createReleaseNotesLookup,
71
+ releaseNotesQuery
72
+ };
73
+ //# sourceMappingURL=release-notes.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/updates/release-notes.ts"],
4
+ "sourcesContent": ["import { z } from 'zod';\nimport { releaseNotesUrl, type ReleaseNotes } from '../shared/release-notes.js';\nimport { validVersion } from '../shared/versions.js';\n\nexport const releaseNotesQuery = z.object({\n version: z\n .string()\n .max(128)\n .refine((value) => value === value.trim() && validVersion(value)),\n refresh: z.literal('1').optional(),\n});\nconst releaseSchema = z.object({\n tag_name: z.string(),\n html_url: z.string().url(),\n body: z.string().nullable().optional(),\n draft: z.boolean(),\n});\n\n/** Per gateway, shared across tabs; never mix a moving npm channel with a release tag. */\nexport function createReleaseNotesLookup() {\n const cache = new Map<string, { notes: ReleaseNotes; expires: number }>();\n const pending = new Map<string, Promise<ReleaseNotes>>();\n async function load(version: string): Promise<ReleaseNotes> {\n const target = { version, url: releaseNotesUrl(version) };\n try {\n const response = await fetch(\n `https://api.github.com/repos/yuzheng14/covro/releases/tags/${encodeURIComponent(`v${version}`)}`,\n {\n headers: { accept: 'application/vnd.github+json' },\n signal: AbortSignal.timeout(10_000),\n redirect: 'error',\n },\n );\n if (response.status === 404) return { ...target, state: 'missing' };\n if (response.status === 429 || response.status === 403)\n return { ...target, state: 'error', reason: 'rateLimited' };\n if (!response.ok) throw new Error('Release request failed');\n const text = await response.text();\n if (text.length > 1024 * 1024) throw new Error('Release response too large');\n const release = releaseSchema.parse(JSON.parse(text));\n if (release.tag_name !== `v${version}`) throw new Error('Release tag mismatch');\n if (release.draft) return { ...target, state: 'missing' };\n // Only link to this repository and exact tag, even if upstream data is malformed.\n if (decodeURIComponent(release.html_url) !== decodeURIComponent(target.url))\n throw new Error('Release URL mismatch');\n return release.body?.trim()\n ? { ...target, url: release.html_url, state: 'available', body: release.body }\n : { ...target, url: release.html_url, state: 'empty' };\n } catch {\n return { ...target, state: 'error', reason: 'unavailable' };\n }\n }\n return async (version: string, refresh = false): Promise<ReleaseNotes> => {\n // Validate here as well so non-HTTP callers cannot construct arbitrary selectors.\n releaseNotesQuery.parse({ version });\n const cached = cache.get(version);\n if (!refresh && cached && cached.expires > Date.now()) return cached.notes;\n const existing = pending.get(version);\n if (existing) return existing;\n const request = load(version).then((notes) => {\n if (notes.state !== 'error') {\n cache.delete(version);\n if (cache.size >= 32) cache.delete(cache.keys().next().value!);\n cache.set(version, {\n notes,\n expires: Date.now() + (notes.state === 'available' ? 5 * 60_000 : 60_000),\n });\n }\n return notes;\n });\n pending.set(version, request);\n try {\n return await request;\n } finally {\n pending.delete(version);\n }\n };\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1 +1 @@
1
- import{m as e,t}from"./mermaid-parser.core-Cr4hqI31.js";import{n}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as r}from"./src-Dy1r7Mij.js";import"./chunk-DSNLSHJZ-ByVh88M0.js";import{n as i,r as a,t as o}from"./chunk-2E7WHVMD-CqOBPcBj.js";import{t as s}from"./chunk-JWPE2WC7-DVXcaiue.js";import"./mermaid.core-Ch6ggfwZ.js";var c=e().RailroadAbnf.parser.LangiumParser,l=n(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=n(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=n(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),f=n(e=>{let t=p(e.primary);if(!e.repeat)return t;let{min:n,max:r}=d(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),p=n(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return l(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:l(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),m=n(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=n(e=>{s(e,o),e.title&&o.setTitle(e.title),e.rules.map(e=>o.addRule(m(e)))},`populateDb`),g={parser:{parse:n(e=>{o.clear(),r.debug(`[ABNF Parser] Starting Langium parse`);let n=c.parse(e);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new t(n);let i=n.value;r.debug(`[ABNF Parser] Parsed rules:`,i.rules.length),h(i),r.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:o}},db:o,renderer:a,styles:i};export{g as diagram};
1
+ import{m as e,t}from"./mermaid-parser.core-CvO-MTG1.js";import{n}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as r}from"./src-C5WkvxTS.js";import"./chunk-DSNLSHJZ-B8GftONA.js";import{n as i,r as a,t as o}from"./chunk-2E7WHVMD-D5oKHRGT.js";import{t as s}from"./chunk-JWPE2WC7-DVXcaiue.js";import"./mermaid.core-DcCEGt0V.js";var c=e().RailroadAbnf.parser.LangiumParser,l=n(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=n(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=n(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),f=n(e=>{let t=p(e.primary);if(!e.repeat)return t;let{min:n,max:r}=d(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),p=n(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return l(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:l(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),m=n(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=n(e=>{s(e,o),e.title&&o.setTitle(e.title),e.rules.map(e=>o.addRule(m(e)))},`populateDb`),g={parser:{parse:n(e=>{o.clear(),r.debug(`[ABNF Parser] Starting Langium parse`);let n=c.parse(e);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new t(n);let i=n.value;r.debug(`[ABNF Parser] Parsed rules:`,i.rules.length),h(i),r.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:o}},db:o,renderer:a,styles:i};export{g as diagram};
@@ -1 +1 @@
1
- import{n as e,t}from"./path-fybaL0A-.js";import{a as n,c as r,d as i,f as a,i as o,l as s,m as c,n as l,o as u,p as d,r as f,u as p}from"./dist-C-d_G2FS.js";function m(e){return e.innerRadius}function h(e){return e.outerRadius}function g(e){return e.startAngle}function _(e){return e.endAngle}function v(e){return e&&e.padAngle}function y(e,t,n,r,i,a,o,s){var c=n-e,l=r-t,u=o-i,d=s-a,f=d*c-u*l;if(!(f*f<1e-12))return f=(u*(t-a)-d*(e-i))/f,[e+f*c,t+f*l]}function b(e,t,n,r,i,a,o){var c=e-n,l=t-r,u=(o?a:-a)/d(c*c+l*l),f=u*l,p=-u*c,m=e+f,h=t+p,g=n+f,_=r+p,v=(m+g)/2,y=(h+_)/2,b=g-m,x=_-h,S=b*b+x*x,C=i-a,w=m*_-g*h,T=(x<0?-1:1)*d(s(0,C*C*S-w*w)),E=(w*x-b*T)/S,D=(-w*b-x*T)/S,O=(w*x+b*T)/S,k=(-w*b+x*T)/S,A=E-v,j=D-y,M=O-v,N=k-y;return A*A+j*j>M*M+N*N&&(E=O,D=k),{cx:E,cy:D,x01:-f,y01:-p,x11:E*(i/C-1),y11:D*(i/C-1)}}function x(){var s=m,x=h,S=e(0),C=null,w=g,T=_,E=v,D=null,O=t(k);function k(){var e,t,m=+s.apply(this,arguments),h=+x.apply(this,arguments),g=w.apply(this,arguments)-r,_=T.apply(this,arguments)-r,v=l(_-g),k=_>g;if(D||=e=O(),h<m&&(t=h,h=m,m=t),!(h>1e-12))D.moveTo(0,0);else if(v>c-1e-12)D.moveTo(h*u(g),h*a(g)),D.arc(0,0,h,g,_,!k),m>1e-12&&(D.moveTo(m*u(_),m*a(_)),D.arc(0,0,m,_,g,k));else{var A=g,j=_,M=g,N=_,P=v,F=v,I=E.apply(this,arguments)/2,L=I>1e-12&&(C?+C.apply(this,arguments):d(m*m+h*h)),R=p(l(h-m)/2,+S.apply(this,arguments)),z=R,B=R,V,H;if(L>1e-12){var U=o(L/m*a(I)),W=o(L/h*a(I));(P-=U*2)>1e-12?(U*=k?1:-1,M+=U,N-=U):(P=0,M=N=(g+_)/2),(F-=W*2)>1e-12?(W*=k?1:-1,A+=W,j-=W):(F=0,A=j=(g+_)/2)}var G=h*u(A),K=h*a(A),q=m*u(N),J=m*a(N);if(R>1e-12){var Y=h*u(j),X=h*a(j),Z=m*u(M),Q=m*a(M),$;if(v<i){if($=y(G,K,Z,Q,Y,X,q,J)){var ee=G-$[0],te=K-$[1],ne=Y-$[0],re=X-$[1],ie=1/a(f((ee*ne+te*re)/(d(ee*ee+te*te)*d(ne*ne+re*re)))/2),ae=d($[0]*$[0]+$[1]*$[1]);z=p(R,(m-ae)/(ie-1)),B=p(R,(h-ae)/(ie+1))}else z=B=0}}F>1e-12?B>1e-12?(V=b(Z,Q,G,K,h,B,k),H=b(Y,X,q,J,h,B,k),D.moveTo(V.cx+V.x01,V.cy+V.y01),B<R?D.arc(V.cx,V.cy,B,n(V.y01,V.x01),n(H.y01,H.x01),!k):(D.arc(V.cx,V.cy,B,n(V.y01,V.x01),n(V.y11,V.x11),!k),D.arc(0,0,h,n(V.cy+V.y11,V.cx+V.x11),n(H.cy+H.y11,H.cx+H.x11),!k),D.arc(H.cx,H.cy,B,n(H.y11,H.x11),n(H.y01,H.x01),!k))):(D.moveTo(G,K),D.arc(0,0,h,A,j,!k)):D.moveTo(G,K),!(m>1e-12)||!(P>1e-12)?D.lineTo(q,J):z>1e-12?(V=b(q,J,Y,X,m,-z,k),H=b(G,K,Z,Q,m,-z,k),D.lineTo(V.cx+V.x01,V.cy+V.y01),z<R?D.arc(V.cx,V.cy,z,n(V.y01,V.x01),n(H.y01,H.x01),!k):(D.arc(V.cx,V.cy,z,n(V.y01,V.x01),n(V.y11,V.x11),!k),D.arc(0,0,m,n(V.cy+V.y11,V.cx+V.x11),n(H.cy+H.y11,H.cx+H.x11),k),D.arc(H.cx,H.cy,z,n(H.y11,H.x11),n(H.y01,H.x01),!k))):D.arc(0,0,m,N,M,k)}if(D.closePath(),e)return D=null,e+``||null}return k.centroid=function(){var e=(+s.apply(this,arguments)+ +x.apply(this,arguments))/2,t=(+w.apply(this,arguments)+ +T.apply(this,arguments))/2-i/2;return[u(t)*e,a(t)*e]},k.innerRadius=function(t){return arguments.length?(s=typeof t==`function`?t:e(+t),k):s},k.outerRadius=function(t){return arguments.length?(x=typeof t==`function`?t:e(+t),k):x},k.cornerRadius=function(t){return arguments.length?(S=typeof t==`function`?t:e(+t),k):S},k.padRadius=function(t){return arguments.length?(C=t==null?null:typeof t==`function`?t:e(+t),k):C},k.startAngle=function(t){return arguments.length?(w=typeof t==`function`?t:e(+t),k):w},k.endAngle=function(t){return arguments.length?(T=typeof t==`function`?t:e(+t),k):T},k.padAngle=function(t){return arguments.length?(E=typeof t==`function`?t:e(+t),k):E},k.context=function(e){return arguments.length?(D=e??null,k):D},k}export{x as t};
1
+ import{n as e,t}from"./path-fybaL0A-.js";import{a as n,c as r,d as i,f as a,i as o,l as s,m as c,n as l,o as u,p as d,r as f,u as p}from"./dist-Dg_ysSxT.js";function m(e){return e.innerRadius}function h(e){return e.outerRadius}function g(e){return e.startAngle}function _(e){return e.endAngle}function v(e){return e&&e.padAngle}function y(e,t,n,r,i,a,o,s){var c=n-e,l=r-t,u=o-i,d=s-a,f=d*c-u*l;if(!(f*f<1e-12))return f=(u*(t-a)-d*(e-i))/f,[e+f*c,t+f*l]}function b(e,t,n,r,i,a,o){var c=e-n,l=t-r,u=(o?a:-a)/d(c*c+l*l),f=u*l,p=-u*c,m=e+f,h=t+p,g=n+f,_=r+p,v=(m+g)/2,y=(h+_)/2,b=g-m,x=_-h,S=b*b+x*x,C=i-a,w=m*_-g*h,T=(x<0?-1:1)*d(s(0,C*C*S-w*w)),E=(w*x-b*T)/S,D=(-w*b-x*T)/S,O=(w*x+b*T)/S,k=(-w*b+x*T)/S,A=E-v,j=D-y,M=O-v,N=k-y;return A*A+j*j>M*M+N*N&&(E=O,D=k),{cx:E,cy:D,x01:-f,y01:-p,x11:E*(i/C-1),y11:D*(i/C-1)}}function x(){var s=m,x=h,S=e(0),C=null,w=g,T=_,E=v,D=null,O=t(k);function k(){var e,t,m=+s.apply(this,arguments),h=+x.apply(this,arguments),g=w.apply(this,arguments)-r,_=T.apply(this,arguments)-r,v=l(_-g),k=_>g;if(D||=e=O(),h<m&&(t=h,h=m,m=t),!(h>1e-12))D.moveTo(0,0);else if(v>c-1e-12)D.moveTo(h*u(g),h*a(g)),D.arc(0,0,h,g,_,!k),m>1e-12&&(D.moveTo(m*u(_),m*a(_)),D.arc(0,0,m,_,g,k));else{var A=g,j=_,M=g,N=_,P=v,F=v,I=E.apply(this,arguments)/2,L=I>1e-12&&(C?+C.apply(this,arguments):d(m*m+h*h)),R=p(l(h-m)/2,+S.apply(this,arguments)),z=R,B=R,V,H;if(L>1e-12){var U=o(L/m*a(I)),W=o(L/h*a(I));(P-=U*2)>1e-12?(U*=k?1:-1,M+=U,N-=U):(P=0,M=N=(g+_)/2),(F-=W*2)>1e-12?(W*=k?1:-1,A+=W,j-=W):(F=0,A=j=(g+_)/2)}var G=h*u(A),K=h*a(A),q=m*u(N),J=m*a(N);if(R>1e-12){var Y=h*u(j),X=h*a(j),Z=m*u(M),Q=m*a(M),$;if(v<i){if($=y(G,K,Z,Q,Y,X,q,J)){var ee=G-$[0],te=K-$[1],ne=Y-$[0],re=X-$[1],ie=1/a(f((ee*ne+te*re)/(d(ee*ee+te*te)*d(ne*ne+re*re)))/2),ae=d($[0]*$[0]+$[1]*$[1]);z=p(R,(m-ae)/(ie-1)),B=p(R,(h-ae)/(ie+1))}else z=B=0}}F>1e-12?B>1e-12?(V=b(Z,Q,G,K,h,B,k),H=b(Y,X,q,J,h,B,k),D.moveTo(V.cx+V.x01,V.cy+V.y01),B<R?D.arc(V.cx,V.cy,B,n(V.y01,V.x01),n(H.y01,H.x01),!k):(D.arc(V.cx,V.cy,B,n(V.y01,V.x01),n(V.y11,V.x11),!k),D.arc(0,0,h,n(V.cy+V.y11,V.cx+V.x11),n(H.cy+H.y11,H.cx+H.x11),!k),D.arc(H.cx,H.cy,B,n(H.y11,H.x11),n(H.y01,H.x01),!k))):(D.moveTo(G,K),D.arc(0,0,h,A,j,!k)):D.moveTo(G,K),!(m>1e-12)||!(P>1e-12)?D.lineTo(q,J):z>1e-12?(V=b(q,J,Y,X,m,-z,k),H=b(G,K,Z,Q,m,-z,k),D.lineTo(V.cx+V.x01,V.cy+V.y01),z<R?D.arc(V.cx,V.cy,z,n(V.y01,V.x01),n(H.y01,H.x01),!k):(D.arc(V.cx,V.cy,z,n(V.y01,V.x01),n(V.y11,V.x11),!k),D.arc(0,0,m,n(V.cy+V.y11,V.cx+V.x11),n(H.cy+H.y11,H.cx+H.x11),k),D.arc(H.cx,H.cy,z,n(H.y11,H.x11),n(H.y01,H.x01),!k))):D.arc(0,0,m,N,M,k)}if(D.closePath(),e)return D=null,e+``||null}return k.centroid=function(){var e=(+s.apply(this,arguments)+ +x.apply(this,arguments))/2,t=(+w.apply(this,arguments)+ +T.apply(this,arguments))/2-i/2;return[u(t)*e,a(t)*e]},k.innerRadius=function(t){return arguments.length?(s=typeof t==`function`?t:e(+t),k):s},k.outerRadius=function(t){return arguments.length?(x=typeof t==`function`?t:e(+t),k):x},k.cornerRadius=function(t){return arguments.length?(S=typeof t==`function`?t:e(+t),k):S},k.padRadius=function(t){return arguments.length?(C=t==null?null:typeof t==`function`?t:e(+t),k):C},k.startAngle=function(t){return arguments.length?(w=typeof t==`function`?t:e(+t),k):w},k.endAngle=function(t){return arguments.length?(T=typeof t==`function`?t:e(+t),k):T},k.padAngle=function(t){return arguments.length?(E=typeof t==`function`?t:e(+t),k):E},k.context=function(e){return arguments.length?(D=e??null,k):D},k}export{x as t};
@@ -1 +1 @@
1
- import"./chunk-NGNAAXSQ-C2Wy9Xmz.js";export{M as createArchitectureServices}from"./mermaid-parser.core-Cr4hqI31.js";
1
+ import"./chunk-NGNAAXSQ-C2Wy9Xmz.js";export{M as createArchitectureServices}from"./mermaid-parser.core-CvO-MTG1.js";