@aiquants/markdown 6.1.0 → 6.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/README.md +75 -2
  2. package/dist/{abnfDiagram-VRR7QNED-DRNsVB-u.cjs → abnfDiagram-VRR7QNED-BGUmgNQ4.cjs} +1 -1
  3. package/dist/{abnfDiagram-VRR7QNED-0ow9i3L-.js → abnfDiagram-VRR7QNED-D3L_2hCD.js} +3 -3
  4. package/dist/{arc-BWR9_qMf.cjs → arc-B48_ucR0.cjs} +1 -1
  5. package/dist/arc-ChEpDr_9.js +83 -0
  6. package/dist/{architectureDiagram-ZJ3FMSHR-DtrqDlxV.cjs → architectureDiagram-ZJ3FMSHR-Bg0dBVnf.cjs} +1 -1
  7. package/dist/{architectureDiagram-ZJ3FMSHR-CsFXQcxx.js → architectureDiagram-ZJ3FMSHR-D4ta1ajC.js} +2 -2
  8. package/dist/{blockDiagram-677ZJIJ3-CqQ43viF.js → blockDiagram-677ZJIJ3-CupyE7nK.js} +3 -3
  9. package/dist/{blockDiagram-677ZJIJ3-CoZEeE0C.cjs → blockDiagram-677ZJIJ3-DkWMy8pP.cjs} +1 -1
  10. package/dist/{c4Diagram-LMCZKHZV-QPgNg4El.js → c4Diagram-LMCZKHZV-Cy1lIde9.js} +2 -2
  11. package/dist/{c4Diagram-LMCZKHZV-DGA2gxp-.cjs → c4Diagram-LMCZKHZV-DxOKAkJI.cjs} +1 -1
  12. package/dist/{channel-PnA15jK3.js → channel-C9c0_XwC.js} +1 -1
  13. package/dist/{channel-Jkgg7NV4.cjs → channel-TOZvPft0.cjs} +1 -1
  14. package/dist/{chunk-2Q5K7J3B-1iQ5h7FK.cjs → chunk-2Q5K7J3B-DaGwwho3.cjs} +1 -1
  15. package/dist/{chunk-2Q5K7J3B-DOWfHP5s.js → chunk-2Q5K7J3B-DahzXbiI.js} +1 -1
  16. package/dist/{chunk-32BRIVSS-XUAL4SUU.cjs → chunk-32BRIVSS-BddWRgx3.cjs} +1 -1
  17. package/dist/{chunk-32BRIVSS-94iTIA-u.js → chunk-32BRIVSS-DFLtYkrI.js} +1 -1
  18. package/dist/{chunk-5VM5RSS4-CKgpuXOS.cjs → chunk-5VM5RSS4-DSg2-2mp.cjs} +1 -1
  19. package/dist/{chunk-5VM5RSS4-OANQKmQE.js → chunk-5VM5RSS4-DiwEVqol.js} +1 -1
  20. package/dist/{chunk-EX3LRPZG-BQDQ1MdS.js → chunk-EX3LRPZG-Ca4uquaA.js} +37 -37
  21. package/dist/{chunk-EX3LRPZG-BrRRbskW.cjs → chunk-EX3LRPZG-OD-kvRfM.cjs} +1 -1
  22. package/dist/{chunk-JWPE2WC7-Bz9dXsLZ.cjs → chunk-JWPE2WC7-BGdnK7yg.cjs} +1 -1
  23. package/dist/{chunk-JWPE2WC7-Djg6Qi23.js → chunk-JWPE2WC7-njgGfGvE.js} +1 -1
  24. package/dist/{chunk-MOJQB5TN-1pZNp2Wl.js → chunk-MOJQB5TN-B-H_fDpi.js} +11 -11
  25. package/dist/{chunk-MOJQB5TN-DUk2Jy4_.cjs → chunk-MOJQB5TN-DPs_chEk.cjs} +1 -1
  26. package/dist/{chunk-PUDLZKDR-G5JYyEiR.js → chunk-PUDLZKDR-9xQzJ025.js} +11 -11
  27. package/dist/{chunk-PUDLZKDR-CVedetzB.cjs → chunk-PUDLZKDR-DZphdeDg.cjs} +1 -1
  28. package/dist/{chunk-RYQCIY6F-D0y50t5B.cjs → chunk-RYQCIY6F-8Qpsw4iJ.cjs} +1 -1
  29. package/dist/{chunk-RYQCIY6F-Crmt36sO.js → chunk-RYQCIY6F-BNzT71C4.js} +10 -10
  30. package/dist/{chunk-V7JOEXUC-DXSQM1ea.cjs → chunk-V7JOEXUC-BPE4_Rfd.cjs} +1 -1
  31. package/dist/{chunk-V7JOEXUC-BNo-X7NC.js → chunk-V7JOEXUC-DG6RRlOY.js} +10 -10
  32. package/dist/{chunk-VR4S4FIN-Bc567umS.cjs → chunk-VR4S4FIN-C-Pbv_Mm.cjs} +1 -1
  33. package/dist/{chunk-VR4S4FIN-BGGITgpQ.js → chunk-VR4S4FIN-CLtgFgby.js} +1 -1
  34. package/dist/{chunk-XXDRQBXY-DOuLpiJ4.cjs → chunk-XXDRQBXY-B0bOz96Q.cjs} +1 -1
  35. package/dist/{chunk-XXDRQBXY-Drnpl-KK.js → chunk-XXDRQBXY-DEXdwwNg.js} +1 -1
  36. package/dist/{classDiagram-v2-EOCWNBFH-Cneye7qT.js → classDiagram-OUVF2IWQ-B9uAd2dg.js} +2 -2
  37. package/dist/{classDiagram-OUVF2IWQ-mmjBEYmN.cjs → classDiagram-OUVF2IWQ-DMqQXVMf.cjs} +1 -1
  38. package/dist/{classDiagram-OUVF2IWQ-Cneye7qT.js → classDiagram-v2-EOCWNBFH-B9uAd2dg.js} +2 -2
  39. package/dist/{classDiagram-v2-EOCWNBFH-mmjBEYmN.cjs → classDiagram-v2-EOCWNBFH-DMqQXVMf.cjs} +1 -1
  40. package/dist/components/HostedScrollArea.d.ts +15 -0
  41. package/dist/components/MarkdownViewer.d.ts +3 -1
  42. package/dist/components/MermaidDiagram.d.ts +1 -0
  43. package/dist/components/mdastNodes/CodeNode.d.ts +2 -1
  44. package/dist/components/mermaidInteraction.d.ts +1 -0
  45. package/dist/{cose-bilkent-JH36ORCC-BQWfGE1G.js → cose-bilkent-JH36ORCC-DVB8IdFe.js} +5 -5
  46. package/dist/{cose-bilkent-JH36ORCC-BaEdcRlX.cjs → cose-bilkent-JH36ORCC-DxpO_Qhk.cjs} +1 -1
  47. package/dist/{cynefinDiagram-TSTJHNR4-CTDDSUz7.js → cynefinDiagram-TSTJHNR4-C-iEKX8r.js} +28 -28
  48. package/dist/{cynefinDiagram-TSTJHNR4-DPQl09kC.cjs → cynefinDiagram-TSTJHNR4-Dvc8nHOe.cjs} +1 -1
  49. package/dist/{dagre-VKFMJZFB-BMRdJgZy.js → dagre-VKFMJZFB-CI1hyGqk.js} +9 -9
  50. package/dist/{dagre-VKFMJZFB-DZ4E-Szs.cjs → dagre-VKFMJZFB-DqU8jG6A.cjs} +1 -1
  51. package/dist/{diagram-FQU43EPY-mK9YHIy1.cjs → diagram-FQU43EPY-DQHw46B-.cjs} +1 -1
  52. package/dist/{diagram-FQU43EPY-CmEpNw5i.js → diagram-FQU43EPY-iMIQEr1Q.js} +25 -25
  53. package/dist/{diagram-G47NLZAW-BX8Lj_uD.cjs → diagram-G47NLZAW-Dxkn-83c.cjs} +1 -1
  54. package/dist/{diagram-G47NLZAW-eJRQFjAg.js → diagram-G47NLZAW-L7A0K5es.js} +25 -25
  55. package/dist/{diagram-NH7WQ7WH-BOOj_4-N.js → diagram-NH7WQ7WH-8BnG6h8J.js} +19 -19
  56. package/dist/{diagram-NH7WQ7WH-3r1_3TrC.cjs → diagram-NH7WQ7WH-CBMFD5SB.cjs} +1 -1
  57. package/dist/{diagram-OA4YK3LP-DnDIHtcW.js → diagram-OA4YK3LP-C24uGaef.js} +13 -13
  58. package/dist/{diagram-OA4YK3LP-CkDJzLOy.cjs → diagram-OA4YK3LP-DrD1SsZM.cjs} +1 -1
  59. package/dist/{diagram-WEI45ONY-BpCCo_Ty.cjs → diagram-WEI45ONY-BYN2qTiw.cjs} +1 -1
  60. package/dist/{diagram-WEI45ONY-BHpuPTt-.js → diagram-WEI45ONY-kBWsy9sQ.js} +35 -35
  61. package/dist/{ebnfDiagram-CCIWWBDH-CfdalXdM.cjs → ebnfDiagram-CCIWWBDH-C7whdHrV.cjs} +1 -1
  62. package/dist/{ebnfDiagram-CCIWWBDH-BDLB-AVF.js → ebnfDiagram-CCIWWBDH-DRfaz75o.js} +3 -3
  63. package/dist/embeds/testing.cjs +1 -1
  64. package/dist/embeds/testing.js +1 -1
  65. package/dist/embeds.cjs +1 -1
  66. package/dist/embeds.js +1 -1
  67. package/dist/{erDiagram-Q63AITRT-CviOyQsx.cjs → erDiagram-Q63AITRT-Cbh7ns6U.cjs} +1 -1
  68. package/dist/{erDiagram-Q63AITRT-DZlcgZfp.js → erDiagram-Q63AITRT-CvcOag5w.js} +4 -4
  69. package/dist/extractHeadings-By3kC3b_.cjs +311 -0
  70. package/dist/{extractHeadings-CtiYkq2z.js → extractHeadings-Dz8gnhsx.js} +5108 -5006
  71. package/dist/flowDiagram-23GEKE2U-C5ygxVuP.js +7 -0
  72. package/dist/flowDiagram-23GEKE2U-DSpM0zzA.cjs +1 -0
  73. package/dist/{ganttDiagram-NO4QXBWP-DO0HAbYg.js → ganttDiagram-NO4QXBWP-Ccrw6Vga.js} +2 -2
  74. package/dist/{ganttDiagram-NO4QXBWP-CJa-hKPU.cjs → ganttDiagram-NO4QXBWP-YWoWQpTa.cjs} +1 -1
  75. package/dist/gen/markdown/v1/markdown_pb.d.ts +1 -0
  76. package/dist/{gitGraphDiagram-IHSO6WYX-CXStgPQs.js → gitGraphDiagram-IHSO6WYX-C-mHT-ew.js} +3 -3
  77. package/dist/{gitGraphDiagram-IHSO6WYX-CXcPHbkt.cjs → gitGraphDiagram-IHSO6WYX-nKm0aLrL.cjs} +1 -1
  78. package/dist/index.cjs +1 -1
  79. package/dist/index.client.cjs +1 -1
  80. package/dist/index.client.d.ts +1 -0
  81. package/dist/index.client.js +33 -32
  82. package/dist/index.js +33 -32
  83. package/dist/index.server.cjs +1 -1
  84. package/dist/index.server.js +59 -38
  85. package/dist/{infoDiagram-FWYZ7A6U-BByoHihL.cjs → infoDiagram-FWYZ7A6U-B6uUqDCC.cjs} +1 -1
  86. package/dist/{infoDiagram-FWYZ7A6U-K0__ySEG.js → infoDiagram-FWYZ7A6U-HBcwdQ6Z.js} +3 -3
  87. package/dist/{ishikawaDiagram-FXEZZL3T-C8QlwQP1.js → ishikawaDiagram-FXEZZL3T-CcSYEsTJ.js} +18 -18
  88. package/dist/{ishikawaDiagram-FXEZZL3T-DZOMdeTI.cjs → ishikawaDiagram-FXEZZL3T-D9WZm1OZ.cjs} +1 -1
  89. package/dist/{journeyDiagram-5HDEW3XC-RvC77rKo.cjs → journeyDiagram-5HDEW3XC-BC3ajweK.cjs} +1 -1
  90. package/dist/{journeyDiagram-5HDEW3XC-CZ9PFNNN.js → journeyDiagram-5HDEW3XC-PJm-8Gz8.js} +30 -30
  91. package/dist/{kanban-definition-HUTT4EX6-Q12F4vHx.js → kanban-definition-HUTT4EX6-42_dEzBV.js} +120 -120
  92. package/dist/{kanban-definition-HUTT4EX6-BL1jihGl.cjs → kanban-definition-HUTT4EX6-BR-C1joQ.cjs} +1 -1
  93. package/dist/{linear-LWjATjog.js → linear-B7J7VKh9.js} +8 -8
  94. package/dist/{linear-lDvPoqlB.cjs → linear-CoCezkp4.cjs} +1 -1
  95. package/dist/markdown.css +1 -1
  96. package/dist/{mindmap-definition-LN4V7U3C-TVYKONRm.cjs → mindmap-definition-LN4V7U3C-BO555Yeu.cjs} +1 -1
  97. package/dist/{mindmap-definition-LN4V7U3C-CM1XvwJX.js → mindmap-definition-LN4V7U3C-e4fXdr28.js} +16 -16
  98. package/dist/{pegDiagram-2B236MQR-a9Up0ERY.cjs → pegDiagram-2B236MQR-CqN17IwE.cjs} +1 -1
  99. package/dist/{pegDiagram-2B236MQR-Dlrnikqd.js → pegDiagram-2B236MQR-nN-jUv5o.js} +3 -3
  100. package/dist/{pieDiagram-ENE6RG2P-ClakmSma.cjs → pieDiagram-ENE6RG2P-D_EIGKcE.cjs} +1 -1
  101. package/dist/{pieDiagram-ENE6RG2P-WYrEJp8U.js → pieDiagram-ENE6RG2P-EvhF_8o2.js} +60 -60
  102. package/dist/providers-BO7J62-7.cjs +1 -0
  103. package/dist/{providers-Drq7MT_K.js → providers-L5RM3KgR.js} +23 -23
  104. package/dist/{quadrantDiagram-ABIIQ3AL-BkgMVDaX.js → quadrantDiagram-ABIIQ3AL-2gTiccyy.js} +18 -18
  105. package/dist/{quadrantDiagram-ABIIQ3AL-Cb01YcqR.cjs → quadrantDiagram-ABIIQ3AL-HNTFSQzi.cjs} +1 -1
  106. package/dist/{railroadDiagram-RFXS5EU6-Bob4WSMz.cjs → railroadDiagram-RFXS5EU6-CRuA7qqW.cjs} +1 -1
  107. package/dist/{railroadDiagram-RFXS5EU6-RfCtZGUR.js → railroadDiagram-RFXS5EU6-CYAI9-bK.js} +3 -3
  108. package/dist/remarkProcessor.server.d.ts +1 -0
  109. package/dist/{requirementDiagram-TGXJPOKE-C1yJPMp1.js → requirementDiagram-TGXJPOKE-BZc_cLKC.js} +3 -3
  110. package/dist/{requirementDiagram-TGXJPOKE-BP5h9mCj.cjs → requirementDiagram-TGXJPOKE-DesNyieJ.cjs} +1 -1
  111. package/dist/{sankeyDiagram-HTMAVEWB-D5G9Dcmr.js → sankeyDiagram-HTMAVEWB-B1QsmzsN.js} +1 -1
  112. package/dist/{sankeyDiagram-HTMAVEWB-shq9WK4t.cjs → sankeyDiagram-HTMAVEWB-wLwqusl2.cjs} +1 -1
  113. package/dist/{sequenceDiagram-DBY2YBRQ-BRxcK5-5.cjs → sequenceDiagram-DBY2YBRQ-D3ciEWOE.cjs} +1 -1
  114. package/dist/{sequenceDiagram-DBY2YBRQ-8EJMQxiB.js → sequenceDiagram-DBY2YBRQ-OTeHr40Q.js} +3 -3
  115. package/dist/{sizeCapture-X5ZJPWSS-DJG85IuR.js → sizeCapture-X5ZJPWSS-BhcQlLlw.js} +1 -1
  116. package/dist/{sizeCapture-X5ZJPWSS-BtBRJO2R.cjs → sizeCapture-X5ZJPWSS-LlzRMz8i.cjs} +1 -1
  117. package/dist/source-lines.cjs +1 -0
  118. package/dist/source-lines.d.ts +6 -0
  119. package/dist/source-lines.js +11 -0
  120. package/dist/{stateDiagram-2N3HPSRC-Czgkv_ey.cjs → stateDiagram-2N3HPSRC-D0q856z6.cjs} +1 -1
  121. package/dist/{stateDiagram-2N3HPSRC-CAd-NU-f.js → stateDiagram-2N3HPSRC-DjLE1--n.js} +11 -11
  122. package/dist/{stateDiagram-v2-6OUMAXLB-BNP5Lx0Y.cjs → stateDiagram-v2-6OUMAXLB-DJHUGWBX.cjs} +1 -1
  123. package/dist/{stateDiagram-v2-6OUMAXLB-x_Zps-d5.js → stateDiagram-v2-6OUMAXLB-DKU0HsD1.js} +2 -2
  124. package/dist/styles/markdown.css +1 -1
  125. package/dist/{swimlanes-5IMT3BWC-CfdkDd3q.cjs → swimlanes-5IMT3BWC-DC6qS8iI.cjs} +1 -1
  126. package/dist/{swimlanes-5IMT3BWC-D8brzzxb.js → swimlanes-5IMT3BWC-cxcj_GGS.js} +3 -3
  127. package/dist/{swimlanesDiagram-G3AALYLV-Bc9-lR2e.js → swimlanesDiagram-G3AALYLV-B95OToWo.js} +2 -2
  128. package/dist/{swimlanesDiagram-G3AALYLV-dvJpSdGV.cjs → swimlanesDiagram-G3AALYLV-Dv76fKaH.cjs} +1 -1
  129. package/dist/{timeline-definition-FHXFAJF6-CKW3NJOF.js → timeline-definition-FHXFAJF6-P-5kO0xQ.js} +38 -38
  130. package/dist/{timeline-definition-FHXFAJF6-BSqACati.cjs → timeline-definition-FHXFAJF6-wD6O9DDR.cjs} +1 -1
  131. package/dist/{vennDiagram-L72KCM5P-ChKxsFyJ.cjs → vennDiagram-L72KCM5P-BXHvaRtm.cjs} +1 -1
  132. package/dist/{vennDiagram-L72KCM5P-vPmq984y.js → vennDiagram-L72KCM5P-BwinGtNb.js} +102 -102
  133. package/dist/{wardleyDiagram-EHGQE667-CxzlR7km.cjs → wardleyDiagram-EHGQE667-BDgwIQTf.cjs} +1 -1
  134. package/dist/{wardleyDiagram-EHGQE667-CwN9zwBX.js → wardleyDiagram-EHGQE667-BeYbREE2.js} +18 -18
  135. package/dist/{xychartDiagram-FW5EYKEG-DBSKTLuc.js → xychartDiagram-FW5EYKEG-BXjx9Zgc.js} +27 -27
  136. package/dist/{xychartDiagram-FW5EYKEG-wJqYRInm.cjs → xychartDiagram-FW5EYKEG-DLCCDPGO.cjs} +1 -1
  137. package/package.json +14 -7
  138. package/dist/arc-Bh12k776.js +0 -83
  139. package/dist/extractHeadings-D1A8WzVy.cjs +0 -311
  140. package/dist/flowDiagram-23GEKE2U-C_FW0q38.js +0 -7
  141. package/dist/flowDiagram-23GEKE2U-Cb0U58EU.cjs +0 -1
  142. package/dist/providers-Bxr2Wb-j.cjs +0 -1
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./linkCards-Bjd_vW39.cjs"),w=require("./simple-logger-9yf7ypyB.cjs"),Te=require("node:dns/promises"),C=require("node:net"),P=require("undici"),ye=require("htmlparser2"),Se=require("node:child_process"),L=require("node:fs"),_e=require("node:module"),ve=require("node:path"),Ae=require("node:url"),B=require("@connectrpc/connect"),ie=require("@connectrpc/connect-node"),u=require("@bufbuild/protobuf");var U=typeof document<"u"?document.currentScript:null;function le(t){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const n=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(r,e,n.get?n:{enumerable:!0,get:()=>t[e]})}}return r.default=t,Object.freeze(r)}const ce=le(C),I=le(ve),Re=[[[0],8],[[10],8],[[100,64],10],[[127],8],[[169,254],16],[[172,16],12],[[192,0,0],24],[[192,0,2],24],[[192,168],16],[[198,18],15],[[198,51,100],24],[[203,0,113],24],[[224],4],[[240],4]],Le=[[[100,65435],32],[[0,0,0,0,65535,0],96],[[256,0,0,0],64],[[256,0,0,1],64],[[8193,0],32],[[8193,2,0],48],[[8193,3512],32],[[8194],16],[[16383],20],[[24320],16],[[64512],7],[[65152],10],[[65216],10],[[65280],8]],y=new C.BlockList;for(const[t,r]of Re){const e=[...t,0,0,0].slice(0,4).join(".");y.addSubnet(e,r,"ipv4"),y.addSubnet(`::ffff:${e}`,96+r,"ipv6"),y.addSubnet(`::${e}`,96+r,"ipv6")}for(const[t,r]of Le)y.addSubnet(`${t.map(e=>e.toString(16)).join(":")}::`,r,"ipv6");const j=t=>{const r=t.replace(/^\[/u,"").replace(/\]$/u,"").replace(/%.*$/su,""),e=C.isIP(r);return e!==0&&y.check(r,e===4?"ipv4":"ipv6")},ue="ERR_LINK_CARD_PRIVATE_ADDRESS",Q=Object.freeze({timeoutMs:1e3,tries:2}),ee=new Te.Resolver({timeout:Q.timeoutMs,tries:Q.tries}),te=(t,r)=>({error:Object.assign(new Error(`Blocked hostname resolving to a private address: ${t} -> ${r}`),{code:ue})}),Ce=async(t,r)=>{const e=C.isIP(t);if(e!==0)return j(t)?te(t,t):{error:null,family:e===4?4:6,addresses:[t]};const[n,o]=await Promise.allSettled([r===6?Promise.resolve([]):ee.resolve4(t),r===4?Promise.resolve([]):ee.resolve6(t)]),s=n.status==="fulfilled"?n.value:[],a=o.status==="fulfilled"?o.value:[],i=[...s,...a].find(M=>j(M));if(i!==void 0)return te(t,i);const[l,...c]=s;if(l!==void 0)return{error:null,family:4,addresses:[l,...c]};const[f,..._]=a;return f!==void 0?{error:null,family:6,addresses:[f,..._]}:n.status==="rejected"?{error:n.reason}:o.status==="rejected"?{error:o.reason}:{error:Object.assign(new Error(`No address for ${t}`),{code:"ENOTFOUND"})}},Me=(t,r,e)=>{const n=r.family===4||r.family==="IPv4"?4:r.family===6||r.family==="IPv6"?6:0;Ce(t,n).then(o=>{if(o.error!==null){e(o.error,"");return}const{family:s,addresses:a}=o;r.all===!0?e(null,a.map(i=>({address:i,family:s}))):e(null,a[0],s)})},Oe=new Set(["127.0.0.1","0.0.0.0","[::1]"]),Ie=[".local",".internal",".home.arpa"],z=(t,r)=>{let e;try{e=new URL(t)}catch{return{ok:!1,reason:"forbidden-url",detail:"Invalid URL"}}if(e.protocol!=="http:"&&e.protocol!=="https:")return{ok:!1,reason:"forbidden-url",detail:"Only http(s) URLs are allowed"};if(e.username!==""||e.password!=="")return{ok:!1,reason:"forbidden-url",detail:"URLs with a user name or password are not allowed"};e.hash="";const n=e.hostname.replace(/\.+$/u,"");return n==="localhost"||n.endsWith(".localhost")||Oe.has(n)?{ok:!1,reason:"private-network",detail:"Localhost access is not allowed"}:j(n)?{ok:!1,reason:"private-network",detail:"Private network access is not allowed"}:!(n.startsWith("[")||n.includes("."))||Ie.some(s=>n.endsWith(s))?{ok:!1,reason:"private-network",detail:"Internal domain access is not allowed"}:{ok:!0,href:e.href}},de=t=>{let r;try{r=new URL(t)}catch{return"(unparsable URL)"}return r.protocol!=="http:"&&r.protocol!=="https:"?`(a ${r.protocol} URL)`:(r.username="",r.password="",r.href)},fe=1024,Pe=/^[\t\n\f\r ]$/u,g=t=>Pe.test(t),H=t=>t.replace(/[A-Z]/gu,r=>r.toLowerCase()),K=t=>{try{return new TextDecoder(t).encoding}catch{return null}},xe=t=>t[0]===239&&t[1]===187&&t[2]===191?"utf-8":t[0]===254&&t[1]===255?"utf-16be":t[0]===255&&t[1]===254?"utf-16le":null,Ne=t=>{for(const r of t.split(";").slice(1)){const e=r.indexOf("=");if(e!==-1&&r.slice(0,e).trim().toLowerCase()==="charset")return r.slice(e+1).trim().replace(/^"(.*)"$/su,"$1")}return null},De=t=>{let r=0;for(;;){const e=t.indexOf("charset",r);if(e===-1)return null;let n=e+7;for(;g(t.charAt(n));)n+=1;if(t.charAt(n)!=="="){r=n;continue}for(n+=1;g(t.charAt(n));)n+=1;const o=t.charAt(n);if(o==='"'||o==="'"){const a=t.indexOf(o,n+1);return a===-1?null:t.slice(n+1,a)}const s=t.slice(n).search(/[\t\n\f\r ;]/u);return s===-1?t.slice(n):t.slice(n,n+s)}},me=(t,r)=>{let e=r;for(;g(t.charAt(e))||t.charAt(e)==="/";)e+=1;if(t.charAt(e)===">"||e>=t.length)return{attribute:null,end:e};let n="";for(;;){const a=t.charAt(e);if(a==="")return{attribute:null,end:e};if(a==="="&&n!=="")break;if(g(a)){for(;g(t.charAt(e));)e+=1;if(t.charAt(e)!=="=")return{attribute:{name:n,value:""},end:e};break}if(a==="/"||a===">")return{attribute:{name:n,value:""},end:e};n+=H(a),e+=1}for(e+=1;g(t.charAt(e));)e+=1;const o=t.charAt(e);if(o==='"'||o==="'"){const a=t.indexOf(o,e+1);return a===-1?{attribute:null,end:t.length}:{attribute:{name:n,value:H(t.slice(e+1,a))},end:a+1}}if(o===">")return{attribute:{name:n,value:""},end:e};const s=t.slice(e).search(/[\t\n\f\r >]/u);return s===-1?{attribute:null,end:t.length}:{attribute:{name:n,value:H(t.slice(e,e+s))},end:e+s}},Be=(t,r)=>{const e=new Set;let n=!1,o=null,s=null,a=r;for(;;){const{attribute:i,end:l}=me(t,a);if(a=l,i===null)break;if(!e.has(i.name))if(e.add(i.name),i.name==="http-equiv")n=i.value==="content-type";else if(i.name==="content"){const c=De(i.value),f=c===null?null:K(c);f!==null&&s===null&&(s=f,o=!0)}else i.name==="charset"&&(s=K(i.value)??!1,o=!1)}return o===null||typeof s!="string"||o&&!n?{encoding:null,end:a}:s==="utf-16be"||s==="utf-16le"?{encoding:"utf-8",end:a}:{encoding:s==="x-user-defined"?"windows-1252":s,end:a}},Ue=t=>{const r=Array.from(t.subarray(0,fe),n=>String.fromCharCode(n)).join("");let e=0;for(;e<r.length;)if(r.startsWith("<!--",e)){const n=r.indexOf("-->",e+2);if(n===-1)return null;e=n+3}else if(/^<meta[\t\n\f\r /]$/iu.test(r.slice(e,e+6))){const{encoding:n,end:o}=Be(r,e+5);if(n!==null)return n;e=o+1}else if(/^<\/?[A-Za-z]/u.test(r.slice(e,e+3))){let n=e+1;for(;n<r.length&&!g(r.charAt(n))&&r.charAt(n)!==">";)n+=1;for(;;){const o=me(r,n);if(n=o.end,o.attribute===null)break}e=n+1}else if(/^<[!/?]$/u.test(r.slice(e,e+2))){const n=r.indexOf(">",e+1);if(n===-1)return null;e=n+1}else e+=1;return null},He=(t,r)=>{const e=xe(t);if(e!==null)return e;const n=Ne(r),o=n===null?null:K(n);return o!==null?o:Ue(t)??"utf-8"},$e=(t,r)=>{const e=new Uint8Array(r);let n=0;for(const o of t)e.set(o,n),n+=o.byteLength;return e},je=t=>{const r=[];let e=0,n=null;const o=()=>{const s=$e(r,e);r.length=0;const a=new TextDecoder(He(s,t));return n=a,{started:a,text:a.decode(s,{stream:!0})}};return{write:s=>n!==null?n.decode(s,{stream:!0}):(r.push(s),e+=s.byteLength,e<fe?"":o().text),end:()=>{if(n!==null)return n.decode();const{started:s,text:a}=o();return a+s.decode()}}},Ke=(t,r,e)=>{const n=new Map,o=new Map;return s=>{const a=n.get(s);if(a!==void 0&&a.expireAt>e())return Promise.resolve(a.value);const i=o.get(s);if(i!==void 0)return i;const l=t(s).then(c=>(!n.has(s)&&n.size>=r.maxEntries&&n.delete(n.keys().next().value),n.set(s,{value:c,expireAt:e()+r.ttlMsOf(c)}),c)).finally(()=>{o.delete(s)});return o.set(s,l),l}},qe=65536,ze=new Set([301,302,303,307,308]),Xe=new Set(["text/html","application/xhtml+xml"]),Fe=new Set(["ERR_IP_BLOCKED",ue]),pe=Object.freeze({timeoutMs:5e3,maxRedirects:5,maxBodyBytes:8*1024*1024}),Je=Object.freeze({lookup:Me,blockList:y}),Ge=(t,r)=>{const e=P.buildConnector({lookup:t.lookup,blockList:t.blockList,timeout:r}),n=P.buildConnector({timeout:r});return(o,s)=>{if(o.protocol!=="https:"){e(o,s);return}const a=C.connect({host:o.hostname,port:Number(o.port===""?443:o.port),lookup:t.lookup,blockList:t.blockList}),i=l=>{a.destroy(),s(l,null)};a.setTimeout(r,()=>i(Object.assign(new Error(`Connect timeout: ${o.hostname}`),{code:"UND_ERR_CONNECT_TIMEOUT"}))),a.once("error",i),a.once("connect",()=>{a.setTimeout(0),a.removeListener("error",i),n({...o,httpSocket:a},s)})}},Ve=t=>new P.Agent({maxHeaderSize:qe,connect:Ge(Je,pe.timeoutMs)}),$=async t=>{t.body!==null&&await Promise.allSettled([t.body.cancel()])},Ye=t=>t!==null&&Xe.has(t.split(";",1)[0].trim().toLowerCase()),We=t=>{const r=[t];for(let e=0;e<16&&r.length>0;e+=1){const n=r.shift();if(!(n instanceof Error))continue;const o=n.code;if(typeof o=="string"&&Fe.has(o))return n.message;r.push(n.cause,...n instanceof AggregateError?n.errors:[])}return null},he=(t,r)=>{const e=We(t);return e!==null?(w.linkCardLogger.info("Refused link-card connection to a private address:",r,e),{ok:!1,reason:"private-network"}):(w.linkCardLogger.error("Error fetching link-card metadata:",t),{ok:!1,reason:"unreachable"})},Ze=()=>new Promise(t=>{setImmediate(t)}),Qe=async(t,r,e,n)=>{if(t.body===null)return{ok:!0,value:r.end()};const o=t.body.getReader();let s=0;for(;;){let a;try{a=await o.read()}catch(f){return he(f,n)}if(a.done)break;const i=e-s,l=a.value.byteLength>i,c=l?a.value.subarray(0,i):a.value;if(s+=c.byteLength,!r.write(c)){await Promise.allSettled([o.cancel()]);break}if(l){await Promise.allSettled([o.cancel()]),w.linkCardLogger.warn("Link-card page body exceeds the size limit; parsing only its first bytes:",n,e);break}await Ze()}return{ok:!0,value:r.end()}},et=async(t,r,e,n)=>{let o=t;for(let s=0;s<=r.limits.maxRedirects;s+=1){let a;try{a=await P.fetch(o,{signal:n,redirect:"manual",dispatcher:r.agent})}catch(f){return he(f,o)}const i=ze.has(a.status)?a.headers.get("location")?.trim()??"":"";if(i===""){if(!a.ok)return await $(a),{ok:!1,reason:"unreachable"};const f=a.headers.get("content-type");return Ye(f)?Qe(a,e({url:o,contentType:f}),r.limits.maxBodyBytes,o):(await $(a),{ok:!1,reason:"not-html"})}await $(a);let l;try{l=new URL(i,o)}catch{return w.linkCardLogger.error("Blocked redirect to an unparsable Location from:",o),{ok:!1,reason:"unreachable"}}const c=z(l.href);if(!c.ok)return w.linkCardLogger.info("Refused link-card redirect:",de(l),`(${c.reason}: ${c.detail})`),{ok:!1,reason:c.reason};o=c.href}return w.linkCardLogger.error("Too many redirects while fetching link-card metadata:",t),{ok:!1,reason:"unreachable"}},tt=(t,r,e)=>{const n=new AbortController,o=setTimeout(()=>n.abort(),r.limits.timeoutMs);return et(t,r,e,n.signal).finally(()=>{clearTimeout(o)})},rt=256,nt=4096,ot=64,at=new Set(["html","head","title","meta","link","base","basefont","bgsound","noframes","script","style","template","noscript"]),st=new Set(["title","script","style"]),it=new Set(["noscript","template","noframes"]),lt=t=>t?.toLowerCase().split(/[\t\n\f\r ]+/u).includes("icon")===!0,ct=(t,r)=>{if(t===void 0)return r;let e;try{e=new URL(t,r)}catch{return r}return(e.protocol==="http:"||e.protocol==="https:")&&e.href.length<=p.LINK_CARD_URL_LIMIT?e.href:r},re=(t,r,e)=>{const n=t?.trim();if(n===void 0||n==="")return;let o;try{o=new URL(n,r)}catch{return}return o.href.length<=p.LINK_CARD_URL_LIMIT&&z(o.href).ok?o.href:void 0},ut=(t,r)=>{let e=!1,n=0,o=0,s=0,a=null,i=null,l=null,c,f,_,M,X,F,J=!1,G,V=!1;const N=()=>{e=!0,D.pause()},D=new ye.Parser({onopentagname(d){n+=1,o+=1,s=0,(n>rt||o>nt||a===null&&!at.has(d))&&N()},onattribute(){s+=1,s>ot&&N()},onopentag(d,m){if(!(e||a!==null)){if(it.has(d)){a=n;return}if(d==="meta"){const h=m.content;m.property==="og:site_name"&&(M=h),m.property==="og:title"&&(f=h),m.property==="og:description"&&(_=h),m.property==="og:image"&&(X=h),m.name==="description"&&(_=h)}else d==="link"&&!J&&lt(m.rel)?(J=!0,F=m.href):d==="base"&&!V&&Object.hasOwn(m,"href")&&(V=!0,G=m.href);st.has(d)&&(i=d,d==="title"&&c===void 0&&(l=""))}},ontext(d){a===null&&(l!==null?l+=d:i===null&&/[^\t\n\f\r ]/u.test(d)&&N())},onclosetag(d){if(!e){if(n-=1,a!==null){n<a&&(a=null);return}d===i&&(i=null,l!==null&&(c=l,l=null))}}},{decodeEntities:!0});return{write:d=>(e||D.write(d),!e),end:()=>{e||D.end();const d=p.linkCardTextOf(f,p.LINK_CARD_TEXT_LIMITS.title)??p.linkCardTextOf(c,p.LINK_CARD_TEXT_LIMITS.title),m=p.linkCardTextOf(_,p.LINK_CARD_TEXT_LIMITS.description),h=p.linkCardTextOf(M,p.LINK_CARD_TEXT_LIMITS.siteName),Y=ct(G,t),W=re(X,Y),Z=re(F,Y);return{...d===null?{}:{title:d},...m===null?{}:{description:m},...h===null?{}:{site_name:h},...W===void 0?{}:{image:W},...Z===void 0?{}:{icon:Z}}}}},dt=new Set(["authorize"]),ft="private, max-age=1800",mt=3600*1e3,we=Object.freeze({"private-network":1800,"forbidden-url":1800,unreachable:300,"not-html":300}),pt=1e3,O="no-store",v=(t,r,e,n,o={})=>new Response(t.method==="HEAD"?null:JSON.stringify(e),{status:r,headers:{"Content-Type":"application/json; charset=utf-8","Cache-Control":n,"X-Content-Type-Options":"nosniff",...o}}),ne=t=>new Response(null,{status:204,headers:{"Cache-Control":`private, max-age=${we[t]}`,"X-Content-Type-Options":"nosniff",[p.LINK_CARD_SKIP_HEADER]:t}}),ht=t=>{if(typeof t!="object"||t===null)throw new TypeError("createLinkCardHandler: options must be an object with an authorize function");if(typeof t.authorize!="function")throw new TypeError("createLinkCardHandler: options.authorize must be a function (pass () => true to serve everyone)");const r=Object.keys(t).filter(e=>!dt.has(e));if(r.length>0)throw new TypeError(`createLinkCardHandler: unknown option(s): ${r.join(", ")}`)},wt=t=>r=>{const e=je(r.contentType),n=ut(r.url);return{write:o=>n.write(e.write(o)),end:()=>(n.write(e.end()),n.end())}},gt=(t,r)=>{ht(t);const{authorize:e}=t,n=Ve(),o=Ke(s=>tt(s,{agent:n,scope:r,limits:pe},wt()),{maxEntries:pt,ttlMsOf:s=>s.ok?mt:we[s.reason]*1e3},Date.now);return async s=>{if(s.method!=="GET"&&s.method!=="HEAD")return v(s,405,{error:"Method Not Allowed"},O,{Allow:"GET, HEAD"});if(await e(s)!==!0)return v(s,401,{error:"Unauthorized"},O);const a=new URL(s.url).searchParams.get("url");if(a===null||a==="")return v(s,400,{error:"Missing 'url' parameter"},O);const i=z(a);if(!i.ok)return w.linkCardLogger.info("Refused link-card URL:",de(a),`(${i.reason}: ${i.detail})`),ne(i.reason);let l;try{l=await o(i.href)}catch(c){return w.linkCardLogger.error("Unexpected error while reading link-card metadata:",i.href,c),v(s,500,{error:"Internal Server Error"},O)}return l.ok?v(s,200,l.value,ft):ne(l.reason)}},kt=t=>gt(t,"public");class b extends u.Message{markdownText="";filePath="";workspaceRoot="";validateExistence=!1;enableSubscript;enableSuperscript;enableMark;enableTableMerge;enableEmbeds;enableZennDirectives;resolveImports=!1;maxHtmlBytes;deny;constructor(r){super(),u.proto3.util.initPartial(r,this)}static runtime=u.proto3;static typeName="markdown.v1.ConvertRequest";static fields=u.proto3.util.newFieldList(()=>[{no:1,name:"markdown_text",kind:"scalar",T:9},{no:2,name:"file_path",kind:"scalar",T:9},{no:3,name:"workspace_root",kind:"scalar",T:9},{no:4,name:"validate_existence",kind:"scalar",T:8},{no:5,name:"enable_subscript",kind:"scalar",T:8,opt:!0},{no:6,name:"enable_superscript",kind:"scalar",T:8,opt:!0},{no:7,name:"enable_mark",kind:"scalar",T:8,opt:!0},{no:8,name:"enable_table_merge",kind:"scalar",T:8,opt:!0},{no:9,name:"enable_embeds",kind:"scalar",T:8,opt:!0},{no:10,name:"enable_zenn_directives",kind:"scalar",T:8,opt:!0},{no:11,name:"resolve_imports",kind:"scalar",T:8},{no:12,name:"max_html_bytes",kind:"scalar",T:13,opt:!0},{no:13,name:"deny",kind:"message",T:k}]);static fromBinary(r,e){return new b().fromBinary(r,e)}static fromJson(r,e){return new b().fromJson(r,e)}static fromJsonString(r,e){return new b().fromJsonString(r,e)}static equals(r,e){return u.proto3.util.equals(b,r,e)}}class k extends u.Message{segmentPatterns=[];constructor(r){super(),u.proto3.util.initPartial(r,this)}static runtime=u.proto3;static typeName="markdown.v1.DenyRules";static fields=u.proto3.util.newFieldList(()=>[{no:1,name:"segment_patterns",kind:"scalar",T:9,repeated:!0}]);static fromBinary(r,e){return new k().fromBinary(r,e)}static fromJson(r,e){return new k().fromJson(r,e)}static fromJsonString(r,e){return new k().fromJsonString(r,e)}static equals(r,e){return u.proto3.util.equals(k,r,e)}}class E extends u.Message{htmlContent="";headings=[];constructor(r){super(),u.proto3.util.initPartial(r,this)}static runtime=u.proto3;static typeName="markdown.v1.ConvertResponse";static fields=u.proto3.util.newFieldList(()=>[{no:1,name:"html_content",kind:"scalar",T:9},{no:2,name:"headings",kind:"message",T,repeated:!0}]);static fromBinary(r,e){return new E().fromBinary(r,e)}static fromJson(r,e){return new E().fromJson(r,e)}static fromJsonString(r,e){return new E().fromJsonString(r,e)}static equals(r,e){return u.proto3.util.equals(E,r,e)}}class T extends u.Message{text="";depth=0;id="";constructor(r){super(),u.proto3.util.initPartial(r,this)}static runtime=u.proto3;static typeName="markdown.v1.Heading";static fields=u.proto3.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9},{no:2,name:"depth",kind:"scalar",T:5},{no:3,name:"id",kind:"scalar",T:9}]);static fromBinary(r,e){return new T().fromBinary(r,e)}static fromJson(r,e){return new T().fromJson(r,e)}static fromJsonString(r,e){return new T().fromJsonString(r,e)}static equals(r,e){return u.proto3.util.equals(T,r,e)}}const bt={typeName:"markdown.v1.MarkdownService",methods:{convert:{name:"Convert",I:b,O:E,kind:u.MethodKind.Unary}}},S=process.env.MARKDOWN_SOCKET_PATH||"/tmp/markdown.sock",Et=new ie.Http2SessionManager("http://localhost",void 0,{createConnection:()=>ce.connect(S)}),ge=64*1024,Tt=4294967295,q=Math.floor((Tt-ge)/2);class ke extends Error{constructor(r){super(r.rawMessage,{cause:r}),this.name="MarkdownResourceExhaustedError"}}const oe=()=>{try{return I.dirname(Ae.fileURLToPath(typeof document>"u"?require("url").pathToFileURL(__filename).href:U&&U.tagName.toUpperCase()==="SCRIPT"&&U.src||new URL("index.server.cjs",document.baseURI).href))}catch{return __dirname}},be=()=>`@aiquants/markdown-${process.platform}-${process.arch}`,ae=()=>process.platform==="win32"?"bin/markdown-api.exe":"bin/markdown-api",yt=()=>{const t=process.env.MARKDOWN_API_BINARY;if(t&&L.existsSync(t))return t;try{const e=_e.createRequire(I.join(oe(),"index.js")).resolve(`${be()}/${ae()}`);if(L.existsSync(e))return e}catch{}const r=I.join(oe(),"..","..","go","markdown-api","dist",I.basename(ae()));return L.existsSync(r)?r:void 0},St=()=>[`markdown-api binary not found for ${process.platform}-${process.arch}.`,`Expected the optional dependency ${be()} to be installed.`,"If your platform is unsupported, build the service yourself","(https://github.com/fehde-k/aiquants/tree/main/packages/go/markdown-api)","and point MARKDOWN_API_BINARY at it."].join(" "),Ee=()=>new Promise(t=>{const r=ce.connect(S);r.on("connect",()=>{r.destroy(),t(!0)}),r.on("error",()=>t(!1))}),se=async t=>{const r=Date.now();for(;Date.now()-r<t;){if(await Ee())return!0;await new Promise(e=>setTimeout(e,100))}return!1};let A=null,R=null;const _t=2e3,vt=()=>{const t=Number(process.env.MARKDOWN_API_STARTUP_TIMEOUT_MS);return Number.isFinite(t)&&t>0?t:1e4};let x=null;const At=async()=>{if(await Ee())return!0;if(R)return R;R=(async()=>{const r=yt();if(!r)return await se(_t)?!0:(x=St(),!1);x=null;try{L.existsSync(S)&&L.unlinkSync(S)}catch{}try{A=Se.spawn(r,[],{stdio:"ignore"});const e=()=>{if(A){try{A.kill("SIGTERM")}catch{}A=null}};return process.once("exit",e),await se(vt())?!0:(console.error("markdown-api Go server did not become ready on socket:",S),e(),process.removeListener("exit",e),!1)}catch(e){return console.error("Failed to spawn markdown-api Go server:",e),A=null,!1}})();const t=await R;return t||(R=null),t},Rt=t=>{if(!Array.isArray(t.deniedPathSegments))throw new TypeError("parseMarkdown: deniedPathSegments must be an array of path segment patterns (an empty array denies nothing)");if(!Number.isSafeInteger(t.maxHtmlBytes)||t.maxHtmlBytes<=0||t.maxHtmlBytes>q)throw new RangeError(`parseMarkdown: maxHtmlBytes must be an integer from 1 to ${q}, got ${t.maxHtmlBytes}`);if(t.timeoutMs!==void 0&&(!Number.isSafeInteger(t.timeoutMs)||t.timeoutMs<=0))throw new RangeError(`parseMarkdown: timeoutMs must be a positive integer, got ${t.timeoutMs}`)},Lt=async(t,r,e,n,o)=>{if(Rt(o),!await At()){const i=x?` ${x}`:"";throw new Error(`markdown service is not reachable on ${S}.${i}`)}const s={};n&&(s.Authorization=`Bearer ${n}`);const a=B.createClient(bt,ie.createConnectTransport({baseUrl:"http://localhost",httpVersion:"2",sessionManager:Et,readMaxBytes:2*o.maxHtmlBytes+ge}));try{const i=await a.convert({markdownText:t,filePath:r,workspaceRoot:e,validateExistence:o.validateExistence??!0,enableSubscript:o.enableSubscript,enableSuperscript:o.enableSuperscript,enableMark:o.enableMark,enableTableMerge:o.enableTableMerge,enableEmbeds:o.enableEmbeds,enableZennDirectives:o.enableZennDirectives,resolveImports:o.resolveImports??!1,maxHtmlBytes:o.maxHtmlBytes,deny:new k({segmentPatterns:[...o.deniedPathSegments]})},{headers:s,signal:o.signal,timeoutMs:o.timeoutMs});return{htmlContent:i.htmlContent,headings:i.headings.map(l=>({text:l.text,depth:l.depth,id:l.id}))}}catch(i){throw i instanceof B.ConnectError&&i.code===B.Code.ResourceExhausted?new ke(i):i}};exports.MAX_HTML_BYTES_LIMIT=q;exports.MarkdownResourceExhaustedError=ke;exports.createLinkCardHandler=kt;exports.parseMarkdown=Lt;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./linkCards-Bjd_vW39.cjs"),w=require("./simple-logger-9yf7ypyB.cjs"),Te=require("node:dns/promises"),C=require("node:net"),P=require("undici"),Se=require("htmlparser2"),ye=require("node:child_process"),R=require("node:fs"),_e=require("node:module"),ve=require("node:path"),Ae=require("node:url"),B=require("@connectrpc/connect"),ie=require("@connectrpc/connect-node"),u=require("@bufbuild/protobuf");var U=typeof document<"u"?document.currentScript:null;function le(t){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const n=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(r,e,n.get?n:{enumerable:!0,get:()=>t[e]})}}return r.default=t,Object.freeze(r)}const ce=le(C),I=le(ve),Le=[[[0],8],[[10],8],[[100,64],10],[[127],8],[[169,254],16],[[172,16],12],[[192,0,0],24],[[192,0,2],24],[[192,168],16],[[198,18],15],[[198,51,100],24],[[203,0,113],24],[[224],4],[[240],4]],Re=[[[100,65435],32],[[0,0,0,0,65535,0],96],[[256,0,0,0],64],[[256,0,0,1],64],[[8193,0],32],[[8193,2,0],48],[[8193,3512],32],[[8194],16],[[16383],20],[[24320],16],[[64512],7],[[65152],10],[[65216],10],[[65280],8]],S=new C.BlockList;for(const[t,r]of Le){const e=[...t,0,0,0].slice(0,4).join(".");S.addSubnet(e,r,"ipv4"),S.addSubnet(`::ffff:${e}`,96+r,"ipv6"),S.addSubnet(`::${e}`,96+r,"ipv6")}for(const[t,r]of Re)S.addSubnet(`${t.map(e=>e.toString(16)).join(":")}::`,r,"ipv6");const j=t=>{const r=t.replace(/^\[/u,"").replace(/\]$/u,"").replace(/%.*$/su,""),e=C.isIP(r);return e!==0&&S.check(r,e===4?"ipv4":"ipv6")},ue="ERR_LINK_CARD_PRIVATE_ADDRESS",Q=Object.freeze({timeoutMs:1e3,tries:2}),ee=new Te.Resolver({timeout:Q.timeoutMs,tries:Q.tries}),te=(t,r)=>({error:Object.assign(new Error(`Blocked hostname resolving to a private address: ${t} -> ${r}`),{code:ue})}),Ce=async(t,r)=>{const e=C.isIP(t);if(e!==0)return j(t)?te(t,t):{error:null,family:e===4?4:6,addresses:[t]};const[n,o]=await Promise.allSettled([r===6?Promise.resolve([]):ee.resolve4(t),r===4?Promise.resolve([]):ee.resolve6(t)]),s=n.status==="fulfilled"?n.value:[],a=o.status==="fulfilled"?o.value:[],i=[...s,...a].find(M=>j(M));if(i!==void 0)return te(t,i);const[l,...c]=s;if(l!==void 0)return{error:null,family:4,addresses:[l,...c]};const[f,..._]=a;return f!==void 0?{error:null,family:6,addresses:[f,..._]}:n.status==="rejected"?{error:n.reason}:o.status==="rejected"?{error:o.reason}:{error:Object.assign(new Error(`No address for ${t}`),{code:"ENOTFOUND"})}},Me=(t,r,e)=>{const n=r.family===4||r.family==="IPv4"?4:r.family===6||r.family==="IPv6"?6:0;Ce(t,n).then(o=>{if(o.error!==null){e(o.error,"");return}const{family:s,addresses:a}=o;r.all===!0?e(null,a.map(i=>({address:i,family:s}))):e(null,a[0],s)})},Oe=new Set(["127.0.0.1","0.0.0.0","[::1]"]),Ie=[".local",".internal",".home.arpa"],z=(t,r)=>{let e;try{e=new URL(t)}catch{return{ok:!1,reason:"forbidden-url",detail:"Invalid URL"}}if(e.protocol!=="http:"&&e.protocol!=="https:")return{ok:!1,reason:"forbidden-url",detail:"Only http(s) URLs are allowed"};if(e.username!==""||e.password!=="")return{ok:!1,reason:"forbidden-url",detail:"URLs with a user name or password are not allowed"};e.hash="";const n=e.hostname.replace(/\.+$/u,"");return n==="localhost"||n.endsWith(".localhost")||Oe.has(n)?{ok:!1,reason:"private-network",detail:"Localhost access is not allowed"}:j(n)?{ok:!1,reason:"private-network",detail:"Private network access is not allowed"}:!(n.startsWith("[")||n.includes("."))||Ie.some(s=>n.endsWith(s))?{ok:!1,reason:"private-network",detail:"Internal domain access is not allowed"}:{ok:!0,href:e.href}},de=t=>{let r;try{r=new URL(t)}catch{return"(unparsable URL)"}return r.protocol!=="http:"&&r.protocol!=="https:"?`(a ${r.protocol} URL)`:(r.username="",r.password="",r.href)},fe=1024,Pe=/^[\t\n\f\r ]$/u,g=t=>Pe.test(t),H=t=>t.replace(/[A-Z]/gu,r=>r.toLowerCase()),K=t=>{try{return new TextDecoder(t).encoding}catch{return null}},xe=t=>t[0]===239&&t[1]===187&&t[2]===191?"utf-8":t[0]===254&&t[1]===255?"utf-16be":t[0]===255&&t[1]===254?"utf-16le":null,Ne=t=>{for(const r of t.split(";").slice(1)){const e=r.indexOf("=");if(e!==-1&&r.slice(0,e).trim().toLowerCase()==="charset")return r.slice(e+1).trim().replace(/^"(.*)"$/su,"$1")}return null},De=t=>{let r=0;for(;;){const e=t.indexOf("charset",r);if(e===-1)return null;let n=e+7;for(;g(t.charAt(n));)n+=1;if(t.charAt(n)!=="="){r=n;continue}for(n+=1;g(t.charAt(n));)n+=1;const o=t.charAt(n);if(o==='"'||o==="'"){const a=t.indexOf(o,n+1);return a===-1?null:t.slice(n+1,a)}const s=t.slice(n).search(/[\t\n\f\r ;]/u);return s===-1?t.slice(n):t.slice(n,n+s)}},me=(t,r)=>{let e=r;for(;g(t.charAt(e))||t.charAt(e)==="/";)e+=1;if(t.charAt(e)===">"||e>=t.length)return{attribute:null,end:e};let n="";for(;;){const a=t.charAt(e);if(a==="")return{attribute:null,end:e};if(a==="="&&n!=="")break;if(g(a)){for(;g(t.charAt(e));)e+=1;if(t.charAt(e)!=="=")return{attribute:{name:n,value:""},end:e};break}if(a==="/"||a===">")return{attribute:{name:n,value:""},end:e};n+=H(a),e+=1}for(e+=1;g(t.charAt(e));)e+=1;const o=t.charAt(e);if(o==='"'||o==="'"){const a=t.indexOf(o,e+1);return a===-1?{attribute:null,end:t.length}:{attribute:{name:n,value:H(t.slice(e+1,a))},end:a+1}}if(o===">")return{attribute:{name:n,value:""},end:e};const s=t.slice(e).search(/[\t\n\f\r >]/u);return s===-1?{attribute:null,end:t.length}:{attribute:{name:n,value:H(t.slice(e,e+s))},end:e+s}},Be=(t,r)=>{const e=new Set;let n=!1,o=null,s=null,a=r;for(;;){const{attribute:i,end:l}=me(t,a);if(a=l,i===null)break;if(!e.has(i.name))if(e.add(i.name),i.name==="http-equiv")n=i.value==="content-type";else if(i.name==="content"){const c=De(i.value),f=c===null?null:K(c);f!==null&&s===null&&(s=f,o=!0)}else i.name==="charset"&&(s=K(i.value)??!1,o=!1)}return o===null||typeof s!="string"||o&&!n?{encoding:null,end:a}:s==="utf-16be"||s==="utf-16le"?{encoding:"utf-8",end:a}:{encoding:s==="x-user-defined"?"windows-1252":s,end:a}},Ue=t=>{const r=Array.from(t.subarray(0,fe),n=>String.fromCharCode(n)).join("");let e=0;for(;e<r.length;)if(r.startsWith("<!--",e)){const n=r.indexOf("-->",e+2);if(n===-1)return null;e=n+3}else if(/^<meta[\t\n\f\r /]$/iu.test(r.slice(e,e+6))){const{encoding:n,end:o}=Be(r,e+5);if(n!==null)return n;e=o+1}else if(/^<\/?[A-Za-z]/u.test(r.slice(e,e+3))){let n=e+1;for(;n<r.length&&!g(r.charAt(n))&&r.charAt(n)!==">";)n+=1;for(;;){const o=me(r,n);if(n=o.end,o.attribute===null)break}e=n+1}else if(/^<[!/?]$/u.test(r.slice(e,e+2))){const n=r.indexOf(">",e+1);if(n===-1)return null;e=n+1}else e+=1;return null},He=(t,r)=>{const e=xe(t);if(e!==null)return e;const n=Ne(r),o=n===null?null:K(n);return o!==null?o:Ue(t)??"utf-8"},$e=(t,r)=>{const e=new Uint8Array(r);let n=0;for(const o of t)e.set(o,n),n+=o.byteLength;return e},je=t=>{const r=[];let e=0,n=null;const o=()=>{const s=$e(r,e);r.length=0;const a=new TextDecoder(He(s,t));return n=a,{started:a,text:a.decode(s,{stream:!0})}};return{write:s=>n!==null?n.decode(s,{stream:!0}):(r.push(s),e+=s.byteLength,e<fe?"":o().text),end:()=>{if(n!==null)return n.decode();const{started:s,text:a}=o();return a+s.decode()}}},Ke=(t,r,e)=>{const n=new Map,o=new Map;return s=>{const a=n.get(s);if(a!==void 0&&a.expireAt>e())return Promise.resolve(a.value);const i=o.get(s);if(i!==void 0)return i;const l=t(s).then(c=>(!n.has(s)&&n.size>=r.maxEntries&&n.delete(n.keys().next().value),n.set(s,{value:c,expireAt:e()+r.ttlMsOf(c)}),c)).finally(()=>{o.delete(s)});return o.set(s,l),l}},qe=65536,ze=new Set([301,302,303,307,308]),Xe=new Set(["text/html","application/xhtml+xml"]),Fe=new Set(["ERR_IP_BLOCKED",ue]),pe=Object.freeze({timeoutMs:5e3,maxRedirects:5,maxBodyBytes:8*1024*1024}),Je=Object.freeze({lookup:Me,blockList:S}),Ge=(t,r)=>{const e=P.buildConnector({lookup:t.lookup,blockList:t.blockList,timeout:r}),n=P.buildConnector({timeout:r});return(o,s)=>{if(o.protocol!=="https:"){e(o,s);return}const a=C.connect({host:o.hostname,port:Number(o.port===""?443:o.port),lookup:t.lookup,blockList:t.blockList}),i=l=>{a.destroy(),s(l,null)};a.setTimeout(r,()=>i(Object.assign(new Error(`Connect timeout: ${o.hostname}`),{code:"UND_ERR_CONNECT_TIMEOUT"}))),a.once("error",i),a.once("connect",()=>{a.setTimeout(0),a.removeListener("error",i),n({...o,httpSocket:a},s)})}},Ve=t=>new P.Agent({maxHeaderSize:qe,connect:Ge(Je,pe.timeoutMs)}),$=async t=>{t.body!==null&&await Promise.allSettled([t.body.cancel()])},Ye=t=>t!==null&&Xe.has(t.split(";",1)[0].trim().toLowerCase()),We=t=>{const r=[t];for(let e=0;e<16&&r.length>0;e+=1){const n=r.shift();if(!(n instanceof Error))continue;const o=n.code;if(typeof o=="string"&&Fe.has(o))return n.message;r.push(n.cause,...n instanceof AggregateError?n.errors:[])}return null},he=(t,r)=>{const e=We(t);return e!==null?(w.linkCardLogger.info("Refused link-card connection to a private address:",r,e),{ok:!1,reason:"private-network"}):(w.linkCardLogger.error("Error fetching link-card metadata:",t),{ok:!1,reason:"unreachable"})},Ze=()=>new Promise(t=>{setImmediate(t)}),Qe=async(t,r,e,n)=>{if(t.body===null)return{ok:!0,value:r.end()};const o=t.body.getReader();let s=0;for(;;){let a;try{a=await o.read()}catch(f){return he(f,n)}if(a.done)break;const i=e-s,l=a.value.byteLength>i,c=l?a.value.subarray(0,i):a.value;if(s+=c.byteLength,!r.write(c)){await Promise.allSettled([o.cancel()]);break}if(l){await Promise.allSettled([o.cancel()]),w.linkCardLogger.warn("Link-card page body exceeds the size limit; parsing only its first bytes:",n,e);break}await Ze()}return{ok:!0,value:r.end()}},et=async(t,r,e,n)=>{let o=t;for(let s=0;s<=r.limits.maxRedirects;s+=1){let a;try{a=await P.fetch(o,{signal:n,redirect:"manual",dispatcher:r.agent})}catch(f){return he(f,o)}const i=ze.has(a.status)?a.headers.get("location")?.trim()??"":"";if(i===""){if(!a.ok)return await $(a),{ok:!1,reason:"unreachable"};const f=a.headers.get("content-type");return Ye(f)?Qe(a,e({url:o,contentType:f}),r.limits.maxBodyBytes,o):(await $(a),{ok:!1,reason:"not-html"})}await $(a);let l;try{l=new URL(i,o)}catch{return w.linkCardLogger.error("Blocked redirect to an unparsable Location from:",o),{ok:!1,reason:"unreachable"}}const c=z(l.href);if(!c.ok)return w.linkCardLogger.info("Refused link-card redirect:",de(l),`(${c.reason}: ${c.detail})`),{ok:!1,reason:c.reason};o=c.href}return w.linkCardLogger.error("Too many redirects while fetching link-card metadata:",t),{ok:!1,reason:"unreachable"}},tt=(t,r,e)=>{const n=new AbortController,o=setTimeout(()=>n.abort(),r.limits.timeoutMs);return et(t,r,e,n.signal).finally(()=>{clearTimeout(o)})},rt=256,nt=4096,ot=64,at=new Set(["html","head","title","meta","link","base","basefont","bgsound","noframes","script","style","template","noscript"]),st=new Set(["title","script","style"]),it=new Set(["noscript","template","noframes"]),lt=t=>t?.toLowerCase().split(/[\t\n\f\r ]+/u).includes("icon")===!0,ct=(t,r)=>{if(t===void 0)return r;let e;try{e=new URL(t,r)}catch{return r}return(e.protocol==="http:"||e.protocol==="https:")&&e.href.length<=p.LINK_CARD_URL_LIMIT?e.href:r},re=(t,r,e)=>{const n=t?.trim();if(n===void 0||n==="")return;let o;try{o=new URL(n,r)}catch{return}return o.href.length<=p.LINK_CARD_URL_LIMIT&&z(o.href).ok?o.href:void 0},ut=(t,r)=>{let e=!1,n=0,o=0,s=0,a=null,i=null,l=null,c,f,_,M,X,F,J=!1,G,V=!1;const N=()=>{e=!0,D.pause()},D=new Se.Parser({onopentagname(d){n+=1,o+=1,s=0,(n>rt||o>nt||a===null&&!at.has(d))&&N()},onattribute(){s+=1,s>ot&&N()},onopentag(d,m){if(!(e||a!==null)){if(it.has(d)){a=n;return}if(d==="meta"){const h=m.content;m.property==="og:site_name"&&(M=h),m.property==="og:title"&&(f=h),m.property==="og:description"&&(_=h),m.property==="og:image"&&(X=h),m.name==="description"&&(_=h)}else d==="link"&&!J&&lt(m.rel)?(J=!0,F=m.href):d==="base"&&!V&&Object.hasOwn(m,"href")&&(V=!0,G=m.href);st.has(d)&&(i=d,d==="title"&&c===void 0&&(l=""))}},ontext(d){a===null&&(l!==null?l+=d:i===null&&/[^\t\n\f\r ]/u.test(d)&&N())},onclosetag(d){if(!e){if(n-=1,a!==null){n<a&&(a=null);return}d===i&&(i=null,l!==null&&(c=l,l=null))}}},{decodeEntities:!0});return{write:d=>(e||D.write(d),!e),end:()=>{e||D.end();const d=p.linkCardTextOf(f,p.LINK_CARD_TEXT_LIMITS.title)??p.linkCardTextOf(c,p.LINK_CARD_TEXT_LIMITS.title),m=p.linkCardTextOf(_,p.LINK_CARD_TEXT_LIMITS.description),h=p.linkCardTextOf(M,p.LINK_CARD_TEXT_LIMITS.siteName),Y=ct(G,t),W=re(X,Y),Z=re(F,Y);return{...d===null?{}:{title:d},...m===null?{}:{description:m},...h===null?{}:{site_name:h},...W===void 0?{}:{image:W},...Z===void 0?{}:{icon:Z}}}}},dt=new Set(["authorize"]),ft="private, max-age=1800",mt=3600*1e3,we=Object.freeze({"private-network":1800,"forbidden-url":1800,unreachable:300,"not-html":300}),pt=1e3,O="no-store",v=(t,r,e,n,o={})=>new Response(t.method==="HEAD"?null:JSON.stringify(e),{status:r,headers:{"Content-Type":"application/json; charset=utf-8","Cache-Control":n,"X-Content-Type-Options":"nosniff",...o}}),ne=t=>new Response(null,{status:204,headers:{"Cache-Control":`private, max-age=${we[t]}`,"X-Content-Type-Options":"nosniff",[p.LINK_CARD_SKIP_HEADER]:t}}),ht=t=>{if(typeof t!="object"||t===null)throw new TypeError("createLinkCardHandler: options must be an object with an authorize function");if(typeof t.authorize!="function")throw new TypeError("createLinkCardHandler: options.authorize must be a function (pass () => true to serve everyone)");const r=Object.keys(t).filter(e=>!dt.has(e));if(r.length>0)throw new TypeError(`createLinkCardHandler: unknown option(s): ${r.join(", ")}`)},wt=t=>r=>{const e=je(r.contentType),n=ut(r.url);return{write:o=>n.write(e.write(o)),end:()=>(n.write(e.end()),n.end())}},gt=(t,r)=>{ht(t);const{authorize:e}=t,n=Ve(),o=Ke(s=>tt(s,{agent:n,scope:r,limits:pe},wt()),{maxEntries:pt,ttlMsOf:s=>s.ok?mt:we[s.reason]*1e3},Date.now);return async s=>{if(s.method!=="GET"&&s.method!=="HEAD")return v(s,405,{error:"Method Not Allowed"},O,{Allow:"GET, HEAD"});if(await e(s)!==!0)return v(s,401,{error:"Unauthorized"},O);const a=new URL(s.url).searchParams.get("url");if(a===null||a==="")return v(s,400,{error:"Missing 'url' parameter"},O);const i=z(a);if(!i.ok)return w.linkCardLogger.info("Refused link-card URL:",de(a),`(${i.reason}: ${i.detail})`),ne(i.reason);let l;try{l=await o(i.href)}catch(c){return w.linkCardLogger.error("Unexpected error while reading link-card metadata:",i.href,c),v(s,500,{error:"Internal Server Error"},O)}return l.ok?v(s,200,l.value,ft):ne(l.reason)}},kt=t=>gt(t,"public");class b extends u.Message{markdownText="";filePath="";workspaceRoot="";validateExistence=!1;enableSubscript;enableSuperscript;enableMark;enableTableMerge;enableEmbeds;enableZennDirectives;resolveImports=!1;maxHtmlBytes;deny;includeSourceLines=!1;constructor(r){super(),u.proto3.util.initPartial(r,this)}static runtime=u.proto3;static typeName="markdown.v1.ConvertRequest";static fields=u.proto3.util.newFieldList(()=>[{no:1,name:"markdown_text",kind:"scalar",T:9},{no:2,name:"file_path",kind:"scalar",T:9},{no:3,name:"workspace_root",kind:"scalar",T:9},{no:4,name:"validate_existence",kind:"scalar",T:8},{no:5,name:"enable_subscript",kind:"scalar",T:8,opt:!0},{no:6,name:"enable_superscript",kind:"scalar",T:8,opt:!0},{no:7,name:"enable_mark",kind:"scalar",T:8,opt:!0},{no:8,name:"enable_table_merge",kind:"scalar",T:8,opt:!0},{no:9,name:"enable_embeds",kind:"scalar",T:8,opt:!0},{no:10,name:"enable_zenn_directives",kind:"scalar",T:8,opt:!0},{no:11,name:"resolve_imports",kind:"scalar",T:8},{no:12,name:"max_html_bytes",kind:"scalar",T:13,opt:!0},{no:13,name:"deny",kind:"message",T:k},{no:14,name:"include_source_lines",kind:"scalar",T:8}]);static fromBinary(r,e){return new b().fromBinary(r,e)}static fromJson(r,e){return new b().fromJson(r,e)}static fromJsonString(r,e){return new b().fromJsonString(r,e)}static equals(r,e){return u.proto3.util.equals(b,r,e)}}class k extends u.Message{segmentPatterns=[];constructor(r){super(),u.proto3.util.initPartial(r,this)}static runtime=u.proto3;static typeName="markdown.v1.DenyRules";static fields=u.proto3.util.newFieldList(()=>[{no:1,name:"segment_patterns",kind:"scalar",T:9,repeated:!0}]);static fromBinary(r,e){return new k().fromBinary(r,e)}static fromJson(r,e){return new k().fromJson(r,e)}static fromJsonString(r,e){return new k().fromJsonString(r,e)}static equals(r,e){return u.proto3.util.equals(k,r,e)}}class E extends u.Message{htmlContent="";headings=[];constructor(r){super(),u.proto3.util.initPartial(r,this)}static runtime=u.proto3;static typeName="markdown.v1.ConvertResponse";static fields=u.proto3.util.newFieldList(()=>[{no:1,name:"html_content",kind:"scalar",T:9},{no:2,name:"headings",kind:"message",T,repeated:!0}]);static fromBinary(r,e){return new E().fromBinary(r,e)}static fromJson(r,e){return new E().fromJson(r,e)}static fromJsonString(r,e){return new E().fromJsonString(r,e)}static equals(r,e){return u.proto3.util.equals(E,r,e)}}class T extends u.Message{text="";depth=0;id="";constructor(r){super(),u.proto3.util.initPartial(r,this)}static runtime=u.proto3;static typeName="markdown.v1.Heading";static fields=u.proto3.util.newFieldList(()=>[{no:1,name:"text",kind:"scalar",T:9},{no:2,name:"depth",kind:"scalar",T:5},{no:3,name:"id",kind:"scalar",T:9}]);static fromBinary(r,e){return new T().fromBinary(r,e)}static fromJson(r,e){return new T().fromJson(r,e)}static fromJsonString(r,e){return new T().fromJsonString(r,e)}static equals(r,e){return u.proto3.util.equals(T,r,e)}}const bt={typeName:"markdown.v1.MarkdownService",methods:{convert:{name:"Convert",I:b,O:E,kind:u.MethodKind.Unary}}},y=process.env.MARKDOWN_SOCKET_PATH||"/tmp/markdown.sock",Et=new ie.Http2SessionManager("http://localhost",void 0,{createConnection:()=>ce.connect(y)}),ge=64*1024,Tt=4294967295,q=Math.floor((Tt-ge)/2);class ke extends Error{constructor(r){super(r.rawMessage,{cause:r}),this.name="MarkdownResourceExhaustedError"}}const oe=()=>{try{return I.dirname(Ae.fileURLToPath(typeof document>"u"?require("url").pathToFileURL(__filename).href:U&&U.tagName.toUpperCase()==="SCRIPT"&&U.src||new URL("index.server.cjs",document.baseURI).href))}catch{return __dirname}},be=()=>`@aiquants/markdown-${process.platform}-${process.arch}`,ae=()=>process.platform==="win32"?"bin/markdown-api.exe":"bin/markdown-api",St=()=>{const t=process.env.MARKDOWN_API_BINARY;if(t&&R.existsSync(t))return t;try{const e=_e.createRequire(I.join(oe(),"index.js")).resolve(`${be()}/${ae()}`);if(R.existsSync(e))return e}catch{}const r=I.join(oe(),"..","..","go","markdown-api","dist",I.basename(ae()));return R.existsSync(r)?r:void 0},yt=()=>[`markdown-api binary not found for ${process.platform}-${process.arch}.`,`Expected the optional dependency ${be()} to be installed.`,"If your platform is unsupported, build the service yourself","(https://github.com/fehde-k/aiquants/tree/main/packages/go/markdown-api)","and point MARKDOWN_API_BINARY at it."].join(" "),Ee=()=>new Promise(t=>{const r=ce.connect(y);r.on("connect",()=>{r.destroy(),t(!0)}),r.on("error",()=>t(!1))}),se=async t=>{const r=Date.now();for(;Date.now()-r<t;){if(await Ee())return!0;await new Promise(e=>setTimeout(e,100))}return!1};let A=null,L=null;const _t=2e3,vt=()=>{const t=Number(process.env.MARKDOWN_API_STARTUP_TIMEOUT_MS);return Number.isFinite(t)&&t>0?t:1e4};let x=null;const At=async()=>{if(await Ee())return!0;if(L)return L;L=(async()=>{const r=St();if(!r)return await se(_t)?!0:(x=yt(),!1);x=null;try{R.existsSync(y)&&R.unlinkSync(y)}catch{}try{A=ye.spawn(r,[],{stdio:"ignore"});const e=()=>{if(A){try{A.kill("SIGTERM")}catch{}A=null}};return process.once("exit",e),await se(vt())?!0:(console.error("markdown-api Go server did not become ready on socket:",y),e(),process.removeListener("exit",e),!1)}catch(e){return console.error("Failed to spawn markdown-api Go server:",e),A=null,!1}})();const t=await L;return t||(L=null),t},Lt=t=>{if(!Array.isArray(t.deniedPathSegments))throw new TypeError("parseMarkdown: deniedPathSegments must be an array of path segment patterns (an empty array denies nothing)");if(!Number.isSafeInteger(t.maxHtmlBytes)||t.maxHtmlBytes<=0||t.maxHtmlBytes>q)throw new RangeError(`parseMarkdown: maxHtmlBytes must be an integer from 1 to ${q}, got ${t.maxHtmlBytes}`);if(t.timeoutMs!==void 0&&(!Number.isSafeInteger(t.timeoutMs)||t.timeoutMs<=0))throw new RangeError(`parseMarkdown: timeoutMs must be a positive integer, got ${t.timeoutMs}`)},Rt=async(t,r,e,n,o)=>{if(Lt(o),!await At()){const i=x?` ${x}`:"";throw new Error(`markdown service is not reachable on ${y}.${i}`)}const s={};n&&(s.Authorization=`Bearer ${n}`);const a=B.createClient(bt,ie.createConnectTransport({baseUrl:"http://localhost",httpVersion:"2",sessionManager:Et,readMaxBytes:2*o.maxHtmlBytes+ge}));try{const i=await a.convert({markdownText:t,filePath:r,workspaceRoot:e,validateExistence:o.validateExistence??!0,enableSubscript:o.enableSubscript,enableSuperscript:o.enableSuperscript,enableMark:o.enableMark,enableTableMerge:o.enableTableMerge,enableEmbeds:o.enableEmbeds,enableZennDirectives:o.enableZennDirectives,resolveImports:o.resolveImports??!1,includeSourceLines:o.includeSourceLines??!1,maxHtmlBytes:o.maxHtmlBytes,deny:new k({segmentPatterns:[...o.deniedPathSegments]})},{headers:s,signal:o.signal,timeoutMs:o.timeoutMs});return{htmlContent:i.htmlContent,headings:i.headings.map(l=>({text:l.text,depth:l.depth,id:l.id}))}}catch(i){throw i instanceof B.ConnectError&&i.code===B.Code.ResourceExhausted?new ke(i):i}};exports.MAX_HTML_BYTES_LIMIT=q;exports.MarkdownResourceExhaustedError=ke;exports.createLinkCardHandler=kt;exports.parseMarkdown=Rt;
@@ -1,9 +1,9 @@
1
- import { l as L, L as O, a as se, b as ke } from "./linkCards-1JxY8wdm.js";
1
+ import { l as L, L as O, a as se, b as Ee } from "./linkCards-1JxY8wdm.js";
2
2
  import { l as h } from "./simple-logger-DwH1YQvq.js";
3
3
  import { Resolver as be } from "node:dns/promises";
4
4
  import * as ie from "node:net";
5
- import { BlockList as ye, isIP as le, connect as Te } from "node:net";
6
- import { Agent as Se, buildConnector as Y, fetch as ve } from "undici";
5
+ import { BlockList as ye, isIP as le, connect as Se } from "node:net";
6
+ import { Agent as Te, buildConnector as Y, fetch as ve } from "undici";
7
7
  import { Parser as Ae } from "htmlparser2";
8
8
  import { spawn as _e } from "node:child_process";
9
9
  import { existsSync as M, unlinkSync as Re } from "node:fs";
@@ -63,8 +63,8 @@ const U = (r) => {
63
63
  if (i !== void 0) return Q(r, i);
64
64
  const [l, ...c] = s;
65
65
  if (l !== void 0) return { error: null, family: 4, addresses: [l, ...c] };
66
- const [f, ...S] = a;
67
- return f !== void 0 ? { error: null, family: 6, addresses: [f, ...S] } : n.status === "rejected" ? { error: n.reason } : o.status === "rejected" ? { error: o.reason } : { error: Object.assign(new Error(`No address for ${r}`), { code: "ENOTFOUND" }) };
66
+ const [f, ...T] = a;
67
+ return f !== void 0 ? { error: null, family: 6, addresses: [f, ...T] } : n.status === "rejected" ? { error: n.reason } : o.status === "rejected" ? { error: o.reason } : { error: Object.assign(new Error(`No address for ${r}`), { code: "ENOTFOUND" }) };
68
68
  }, Ue = (r, t, e) => {
69
69
  const n = t.family === 4 || t.family === "IPv4" ? 4 : t.family === 6 || t.family === "IPv6" ? 6 : 0;
70
70
  He(r, n).then((o) => {
@@ -248,14 +248,14 @@ const U = (r) => {
248
248
  e(o, s);
249
249
  return;
250
250
  }
251
- const a = Te({ host: o.hostname, port: Number(o.port === "" ? 443 : o.port), lookup: r.lookup, blockList: r.blockList }), i = (l) => {
251
+ const a = Se({ host: o.hostname, port: Number(o.port === "" ? 443 : o.port), lookup: r.lookup, blockList: r.blockList }), i = (l) => {
252
252
  a.destroy(), s(l, null);
253
253
  };
254
254
  a.setTimeout(t, () => i(Object.assign(new Error(`Connect timeout: ${o.hostname}`), { code: "UND_ERR_CONNECT_TIMEOUT" }))), a.once("error", i), a.once("connect", () => {
255
255
  a.setTimeout(0), a.removeListener("error", i), n({ ...o, httpSocket: a }, s);
256
256
  });
257
257
  };
258
- }, ot = (r) => new Se({
258
+ }, ot = (r) => new Te({
259
259
  maxHeaderSize: qe,
260
260
  connect: nt(rt, me.timeoutMs)
261
261
  }), H = async (r) => {
@@ -333,7 +333,7 @@ const U = (r) => {
333
333
  return ct(r, t, e, n.signal).finally(() => {
334
334
  clearTimeout(o);
335
335
  });
336
- }, dt = 256, ft = 4096, mt = 64, pt = /* @__PURE__ */ new Set(["html", "head", "title", "meta", "link", "base", "basefont", "bgsound", "noframes", "script", "style", "template", "noscript"]), ht = /* @__PURE__ */ new Set(["title", "script", "style"]), wt = /* @__PURE__ */ new Set(["noscript", "template", "noframes"]), gt = (r) => r?.toLowerCase().split(/[\t\n\f\r ]+/u).includes("icon") === !0, Et = (r, t) => {
336
+ }, dt = 256, ft = 4096, mt = 64, pt = /* @__PURE__ */ new Set(["html", "head", "title", "meta", "link", "base", "basefont", "bgsound", "noframes", "script", "style", "template", "noscript"]), ht = /* @__PURE__ */ new Set(["title", "script", "style"]), wt = /* @__PURE__ */ new Set(["noscript", "template", "noframes"]), gt = (r) => r?.toLowerCase().split(/[\t\n\f\r ]+/u).includes("icon") === !0, kt = (r, t) => {
337
337
  if (r === void 0) return t;
338
338
  let e;
339
339
  try {
@@ -352,8 +352,8 @@ const U = (r) => {
352
352
  return;
353
353
  }
354
354
  return o.href.length <= se && j(o.href).ok ? o.href : void 0;
355
- }, kt = (r, t) => {
356
- let e = !1, n = 0, o = 0, s = 0, a = null, i = null, l = null, c, f, S, R, z, J, K = !1, F, G = !1;
355
+ }, Et = (r, t) => {
356
+ let e = !1, n = 0, o = 0, s = 0, a = null, i = null, l = null, c, f, T, R, z, J, K = !1, F, G = !1;
357
357
  const N = () => {
358
358
  e = !0, D.pause();
359
359
  }, D = new Ae(
@@ -372,7 +372,7 @@ const U = (r) => {
372
372
  }
373
373
  if (u === "meta") {
374
374
  const p = m.content;
375
- m.property === "og:site_name" && (R = p), m.property === "og:title" && (f = p), m.property === "og:description" && (S = p), m.property === "og:image" && (z = p), m.name === "description" && (S = p);
375
+ m.property === "og:site_name" && (R = p), m.property === "og:title" && (f = p), m.property === "og:description" && (T = p), m.property === "og:image" && (z = p), m.name === "description" && (T = p);
376
376
  } else u === "link" && !K && gt(m.rel) ? (K = !0, J = m.href) : u === "base" && !G && Object.hasOwn(m, "href") && (G = !0, F = m.href);
377
377
  ht.has(u) && (i = u, u === "title" && c === void 0 && (l = ""));
378
378
  }
@@ -396,7 +396,7 @@ const U = (r) => {
396
396
  write: (u) => (e || D.write(u), !e),
397
397
  end: () => {
398
398
  e || D.end();
399
- const u = L(f, O.title) ?? L(c, O.title), m = L(S, O.description), p = L(R, O.siteName), X = Et(F, r), V = ee(z, X), W = ee(J, X);
399
+ const u = L(f, O.title) ?? L(c, O.title), m = L(T, O.description), p = L(R, O.siteName), X = kt(F, r), V = ee(z, X), W = ee(J, X);
400
400
  return {
401
401
  ...u === null ? {} : { title: u },
402
402
  ...m === null ? {} : { description: m },
@@ -406,12 +406,12 @@ const U = (r) => {
406
406
  };
407
407
  }
408
408
  };
409
- }, bt = /* @__PURE__ */ new Set(["authorize"]), yt = "private, max-age=1800", Tt = 3600 * 1e3, he = Object.freeze({ "private-network": 1800, "forbidden-url": 1800, unreachable: 300, "not-html": 300 }), St = 1e3, P = "no-store", v = (r, t, e, n, o = {}) => new Response(r.method === "HEAD" ? null : JSON.stringify(e), {
409
+ }, bt = /* @__PURE__ */ new Set(["authorize"]), yt = "private, max-age=1800", St = 3600 * 1e3, he = Object.freeze({ "private-network": 1800, "forbidden-url": 1800, unreachable: 300, "not-html": 300 }), Tt = 1e3, P = "no-store", v = (r, t, e, n, o = {}) => new Response(r.method === "HEAD" ? null : JSON.stringify(e), {
410
410
  status: t,
411
411
  headers: { "Content-Type": "application/json; charset=utf-8", "Cache-Control": n, "X-Content-Type-Options": "nosniff", ...o }
412
412
  }), te = (r) => new Response(null, {
413
413
  status: 204,
414
- headers: { "Cache-Control": `private, max-age=${he[r]}`, "X-Content-Type-Options": "nosniff", [ke]: r }
414
+ headers: { "Cache-Control": `private, max-age=${he[r]}`, "X-Content-Type-Options": "nosniff", [Ee]: r }
415
415
  }), vt = (r) => {
416
416
  if (typeof r != "object" || r === null)
417
417
  throw new TypeError("createLinkCardHandler: options must be an object with an authorize function");
@@ -421,7 +421,7 @@ const U = (r) => {
421
421
  if (t.length > 0)
422
422
  throw new TypeError(`createLinkCardHandler: unknown option(s): ${t.join(", ")}`);
423
423
  }, At = (r) => (t) => {
424
- const e = Ye(t.contentType), n = kt(t.url);
424
+ const e = Ye(t.contentType), n = Et(t.url);
425
425
  return {
426
426
  write: (o) => n.write(e.write(o)),
427
427
  end: () => (n.write(e.end()), n.end())
@@ -430,7 +430,7 @@ const U = (r) => {
430
430
  vt(r);
431
431
  const { authorize: e } = r, n = ot(), o = Ze(
432
432
  (s) => ut(s, { agent: n, scope: t, limits: me }, At()),
433
- { maxEntries: St, ttlMsOf: (s) => s.ok ? Tt : he[s.reason] * 1e3 },
433
+ { maxEntries: Tt, ttlMsOf: (s) => s.ok ? St : he[s.reason] * 1e3 },
434
434
  Date.now
435
435
  );
436
436
  return async (s) => {
@@ -453,7 +453,7 @@ const U = (r) => {
453
453
  return l.ok ? v(s, 200, l.value, yt) : te(l.reason);
454
454
  };
455
455
  }, Yt = (r) => _t(r, "public");
456
- class E extends x {
456
+ class k extends x {
457
457
  /**
458
458
  * @generated from field: string markdown_text = 1;
459
459
  */
@@ -549,6 +549,19 @@ class E extends x {
549
549
  * @generated from field: markdown.v1.DenyRules deny = 13;
550
550
  */
551
551
  deny;
552
+ /**
553
+ * Annotates every rendered block with `data-source-lines="<first>-<last>"`:
554
+ * the 1-based lines of `markdown_text` it came from, both inclusive (with
555
+ * `resolve_imports`, the lines of the text with every import expanded). A
556
+ * block that spans no line of its own (a thematic break) and a raw HTML
557
+ * block carry none. False by default; either way, a `data-source-lines` an
558
+ * author wrote is removed, so the attribute in the HTML is always the
559
+ * converter's own. With it, the HTML is the HTML without it plus the
560
+ * attribute alone.
561
+ *
562
+ * @generated from field: bool include_source_lines = 14;
563
+ */
564
+ includeSourceLines = !1;
552
565
  constructor(t) {
553
566
  super(), d.util.initPartial(t, this);
554
567
  }
@@ -597,19 +610,26 @@ class E extends x {
597
610
  /* ScalarType.BOOL */
598
611
  },
599
612
  { no: 12, name: "max_html_bytes", kind: "scalar", T: 13, opt: !0 },
600
- { no: 13, name: "deny", kind: "message", T: g }
613
+ { no: 13, name: "deny", kind: "message", T: g },
614
+ {
615
+ no: 14,
616
+ name: "include_source_lines",
617
+ kind: "scalar",
618
+ T: 8
619
+ /* ScalarType.BOOL */
620
+ }
601
621
  ]);
602
622
  static fromBinary(t, e) {
603
- return new E().fromBinary(t, e);
623
+ return new k().fromBinary(t, e);
604
624
  }
605
625
  static fromJson(t, e) {
606
- return new E().fromJson(t, e);
626
+ return new k().fromJson(t, e);
607
627
  }
608
628
  static fromJsonString(t, e) {
609
- return new E().fromJsonString(t, e);
629
+ return new k().fromJsonString(t, e);
610
630
  }
611
631
  static equals(t, e) {
612
- return d.util.equals(E, t, e);
632
+ return d.util.equals(k, t, e);
613
633
  }
614
634
  }
615
635
  class g extends x {
@@ -636,7 +656,7 @@ class g extends x {
636
656
  return d.util.equals(g, t, e);
637
657
  }
638
658
  }
639
- class k extends x {
659
+ class E extends x {
640
660
  /**
641
661
  * @generated from field: string html_content = 1;
642
662
  */
@@ -661,16 +681,16 @@ class k extends x {
661
681
  { no: 2, name: "headings", kind: "message", T: b, repeated: !0 }
662
682
  ]);
663
683
  static fromBinary(t, e) {
664
- return new k().fromBinary(t, e);
684
+ return new E().fromBinary(t, e);
665
685
  }
666
686
  static fromJson(t, e) {
667
- return new k().fromJson(t, e);
687
+ return new E().fromJson(t, e);
668
688
  }
669
689
  static fromJsonString(t, e) {
670
- return new k().fromJsonString(t, e);
690
+ return new E().fromJsonString(t, e);
671
691
  }
672
692
  static equals(t, e) {
673
- return d.util.equals(k, t, e);
693
+ return d.util.equals(E, t, e);
674
694
  }
675
695
  }
676
696
  class b extends x {
@@ -735,13 +755,13 @@ const Rt = {
735
755
  */
736
756
  convert: {
737
757
  name: "Convert",
738
- I: E,
739
- O: k,
758
+ I: k,
759
+ O: E,
740
760
  kind: Ne.Unary
741
761
  }
742
762
  }
743
- }, T = process.env.MARKDOWN_SOCKET_PATH || "/tmp/markdown.sock", Lt = new Ie("http://localhost", void 0, {
744
- createConnection: () => ie.connect(T)
763
+ }, S = process.env.MARKDOWN_SOCKET_PATH || "/tmp/markdown.sock", Lt = new Ie("http://localhost", void 0, {
764
+ createConnection: () => ie.connect(S)
745
765
  }), we = 64 * 1024, Ot = 4294967295, re = Math.floor((Ot - we) / 2);
746
766
  class Pt extends Error {
747
767
  /**
@@ -778,15 +798,15 @@ const ne = () => {
778
798
  "If your platform is unsupported, build the service yourself",
779
799
  "(https://github.com/fehde-k/aiquants/tree/main/packages/go/markdown-api)",
780
800
  "and point MARKDOWN_API_BINARY at it."
781
- ].join(" "), Ee = () => new Promise((r) => {
782
- const t = ie.connect(T);
801
+ ].join(" "), ke = () => new Promise((r) => {
802
+ const t = ie.connect(S);
783
803
  t.on("connect", () => {
784
804
  t.destroy(), r(!0);
785
805
  }), t.on("error", () => r(!1));
786
806
  }), ae = async (r) => {
787
807
  const t = Date.now();
788
808
  for (; Date.now() - t < r; ) {
789
- if (await Ee()) return !0;
809
+ if (await ke()) return !0;
790
810
  await new Promise((e) => setTimeout(e, 100));
791
811
  }
792
812
  return !1;
@@ -798,7 +818,7 @@ const It = 2e3, xt = () => {
798
818
  };
799
819
  let I = null;
800
820
  const Nt = async () => {
801
- if (await Ee()) return !0;
821
+ if (await ke()) return !0;
802
822
  if (_) return _;
803
823
  _ = (async () => {
804
824
  const t = Mt();
@@ -806,7 +826,7 @@ const Nt = async () => {
806
826
  return await ae(It) ? !0 : (I = Ct(), !1);
807
827
  I = null;
808
828
  try {
809
- M(T) && Re(T);
829
+ M(S) && Re(S);
810
830
  } catch {
811
831
  }
812
832
  try {
@@ -820,7 +840,7 @@ const Nt = async () => {
820
840
  A = null;
821
841
  }
822
842
  };
823
- return process.once("exit", e), await ae(xt()) ? !0 : (console.error("markdown-api Go server did not become ready on socket:", T), e(), process.removeListener("exit", e), !1);
843
+ return process.once("exit", e), await ae(xt()) ? !0 : (console.error("markdown-api Go server did not become ready on socket:", S), e(), process.removeListener("exit", e), !1);
824
844
  } catch (e) {
825
845
  return console.error("Failed to spawn markdown-api Go server:", e), A = null, !1;
826
846
  }
@@ -837,7 +857,7 @@ const Nt = async () => {
837
857
  }, Zt = async (r, t, e, n, o) => {
838
858
  if (Dt(o), !await Nt()) {
839
859
  const i = I ? ` ${I}` : "";
840
- throw new Error(`markdown service is not reachable on ${T}.${i}`);
860
+ throw new Error(`markdown service is not reachable on ${S}.${i}`);
841
861
  }
842
862
  const s = {};
843
863
  n && (s.Authorization = `Bearer ${n}`);
@@ -856,6 +876,7 @@ const Nt = async () => {
856
876
  enableEmbeds: o.enableEmbeds,
857
877
  enableZennDirectives: o.enableZennDirectives,
858
878
  resolveImports: o.resolveImports ?? !1,
879
+ includeSourceLines: o.includeSourceLines ?? !1,
859
880
  maxHtmlBytes: o.maxHtmlBytes,
860
881
  deny: new g({ segmentPatterns: [...o.deniedPathSegments] })
861
882
  },
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./extractHeadings-D1A8WzVy.cjs"),s=require("./cynefin-VYW2F7L2-MpAliYy9.cjs");var i={parse:e.__name(async r=>{const a=await s.parse("info",r);e.log.debug(a)},"parse")},o={version:"11.16.0"},g=e.__name(()=>o.version,"getVersion"),d={getVersion:g},v=e.__name((r,a,n)=>{e.log.debug(`rendering info diagram
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./extractHeadings-By3kC3b_.cjs"),s=require("./cynefin-VYW2F7L2-MpAliYy9.cjs");var i={parse:e.__name(async r=>{const a=await s.parse("info",r);e.log.debug(a)},"parse")},o={version:"11.16.0"},g=e.__name(()=>o.version,"getVersion"),d={getVersion:g},v=e.__name((r,a,n)=>{e.log.debug(`rendering info diagram
2
2
  `+r);const t=e.selectSvgElement(a);e.configureSvgSize(t,100,400,!0),t.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${n}`)},"draw"),c={draw:v},p={parser:i,db:d,renderer:c};exports.diagram=p;
@@ -1,4 +1,4 @@
1
- import { _ as e, O as s, ak as o, Q as i } from "./extractHeadings-CtiYkq2z.js";
1
+ import { _ as e, Q as s, al as o, R as i } from "./extractHeadings-Dz8gnhsx.js";
2
2
  import { p as g } from "./cynefin-VYW2F7L2-Bkk-F_Js.js";
3
3
  var p = {
4
4
  parse: /* @__PURE__ */ e(async (r) => {
@@ -14,10 +14,10 @@ var p = {
14
14
  ` + r);
15
15
  const t = o(a);
16
16
  i(t, 100, 400, !0), t.append("g").append("text").attr("x", 100).attr("y", 40).attr("class", "version").attr("font-size", 32).style("text-anchor", "middle").text(`v${n}`);
17
- }, "draw"), f = { draw: c }, _ = {
17
+ }, "draw"), l = { draw: c }, _ = {
18
18
  parser: p,
19
19
  db: m,
20
- renderer: f
20
+ renderer: l
21
21
  };
22
22
  export {
23
23
  _ as diagram
@@ -1,5 +1,5 @@
1
- import { _ as o, J as ot, ao as ut, ak as dt, aZ as yt, ab as ft, Y as pt, a5 as it, A as gt, G as kt, z as mt, y as wt, a6 as _t, Q as bt } from "./extractHeadings-CtiYkq2z.js";
2
- var J = (function() {
1
+ import { _ as o, K as ot, ap as ut, al as dt, a_ as yt, ac as ft, $ as pt, a6 as it, G as gt, J as kt, A as mt, z as wt, a7 as _t, R as bt } from "./extractHeadings-Dz8gnhsx.js";
2
+ var Q = (function() {
3
3
  var e = /* @__PURE__ */ o(function(T, t, s, i) {
4
4
  for (s = s || {}, i = T.length; i--; s[T[i]] = t) ;
5
5
  return s;
@@ -52,15 +52,15 @@ var J = (function() {
52
52
  return B = c.pop() || b.lex() || A, typeof B != "number" && (B instanceof Array && (c = B, B = c.pop()), B = s.symbols_[B] || B), B;
53
53
  }
54
54
  o(tt, "lex");
55
- for (var M, W, N, K, z = {}, U, V, et, Z; ; ) {
55
+ for (var M, W, N, Y, z = {}, U, V, et, Z; ; ) {
56
56
  if (W = i[i.length - 1], this.defaultActions[W] ? N = this.defaultActions[W] : ((M === null || typeof M > "u") && (M = tt()), N = v[W] && v[W][M]), typeof N > "u" || !N.length || !N[0]) {
57
- var Q = "";
57
+ var q = "";
58
58
  Z = [];
59
59
  for (U in v[W])
60
60
  this.terminals_[U] && U > L && Z.push("'" + this.terminals_[U] + "'");
61
- b.showPosition ? Q = "Parse error on line " + (I + 1) + `:
61
+ b.showPosition ? q = "Parse error on line " + (I + 1) + `:
62
62
  ` + b.showPosition() + `
63
- Expecting ` + Z.join(", ") + ", got '" + (this.terminals_[M] || M) + "'" : Q = "Parse error on line " + (I + 1) + ": Unexpected " + (M == A ? "end of input" : "'" + (this.terminals_[M] || M) + "'"), this.parseError(Q, {
63
+ Expecting ` + Z.join(", ") + ", got '" + (this.terminals_[M] || M) + "'" : q = "Parse error on line " + (I + 1) + ": Unexpected " + (M == A ? "end of input" : "'" + (this.terminals_[M] || M) + "'"), this.parseError(q, {
64
64
  text: b.match,
65
65
  token: this.terminals_[M] || M,
66
66
  line: b.yylineno,
@@ -83,7 +83,7 @@ Expecting ` + Z.join(", ") + ", got '" + (this.terminals_[M] || M) + "'" : Q = "
83
83
  }, G && (z._$.range = [
84
84
  n[n.length - (V || 1)].range[0],
85
85
  n[n.length - 1].range[1]
86
- ]), K = this.performAction.apply(z, [
86
+ ]), Y = this.performAction.apply(z, [
87
87
  w,
88
88
  $,
89
89
  I,
@@ -91,8 +91,8 @@ Expecting ` + Z.join(", ") + ", got '" + (this.terminals_[M] || M) + "'" : Q = "
91
91
  N[1],
92
92
  p,
93
93
  n
94
- ].concat(C)), typeof K < "u")
95
- return K;
94
+ ].concat(C)), typeof Y < "u")
95
+ return Y;
96
96
  V && (i = i.slice(0, -1 * V * 2), p = p.slice(0, -1 * V), n = n.slice(0, -1 * V)), i.push(this.productions_[N[1]][0]), p.push(z.$), n.push(z._$), et = v[i[i.length - 2]][i[i.length - 1]], i.push(et);
97
97
  break;
98
98
  case 3:
@@ -302,8 +302,8 @@ Expecting ` + Z.join(", ") + ", got '" + (this.terminals_[M] || M) + "'" : Q = "
302
302
  }
303
303
  return o(E, "Parser"), E.prototype = D, D.Parser = E, new E();
304
304
  })();
305
- J.parser = J;
306
- var xt = J, H, vt = (H = class {
305
+ Q.parser = Q;
306
+ var xt = Q, H, vt = (H = class {
307
307
  constructor() {
308
308
  this.stack = [], this.clear = this.clear.bind(this), this.addNode = this.addNode.bind(this), this.getRoot = this.getRoot.bind(this);
309
309
  }
@@ -401,7 +401,7 @@ var xt = J, H, vt = (H = class {
401
401
  { total: 0, max: 0 }
402
402
  );
403
403
  }, "sideStats"), Lt = /* @__PURE__ */ o((e, h, r, a, l, y) => {
404
- const f = Math.max(6, Math.floor(110 / (l * 0.6))), d = e.append("g").attr("class", "ishikawa-head-group").attr("transform", `translate(${h},${r})`), m = Y(
404
+ const f = Math.max(6, Math.floor(110 / (l * 0.6))), d = e.append("g").attr("class", "ishikawa-head-group").attr("transform", `translate(${h},${r})`), m = K(
405
405
  d,
406
406
  ct(a, f),
407
407
  0,
@@ -440,7 +440,7 @@ var xt = J, H, vt = (H = class {
440
440
  }, "walk");
441
441
  return l(e, -1, 2), { entries: r, yOrder: a };
442
442
  }, "flattenTree"), Mt = /* @__PURE__ */ o((e, h, r, a, l, y, f) => {
443
- const d = e.append("g").attr("class", "ishikawa-label-group"), u = Y(
443
+ const d = e.append("g").attr("class", "ishikawa-label-group"), u = K(
444
444
  d,
445
445
  h,
446
446
  r,
@@ -469,7 +469,7 @@ var xt = J, H, vt = (H = class {
469
469
  d.insert(() => k, ":first-child").attr("class", "ishikawa-label-box");
470
470
  } else
471
471
  d.insert("rect", ":first-child").attr("class", "ishikawa-label-box").attr("x", u.x - 20).attr("y", u.y - 2).attr("width", u.width + 40).attr("height", u.height + 4);
472
- }, "drawCauseLabel"), q = /* @__PURE__ */ o((e, h, r, a, l, y) => {
472
+ }, "drawCauseLabel"), J = /* @__PURE__ */ o((e, h, r, a, l, y) => {
473
473
  const f = Math.sqrt(a * a + l * l);
474
474
  if (f === 0)
475
475
  return;
@@ -484,7 +484,7 @@ var xt = J, H, vt = (H = class {
484
484
  e.append(() => O);
485
485
  }, "drawArrowMarker"), Pt = /* @__PURE__ */ o((e, h, r, a, l, y, f, d) => {
486
486
  const m = h.children ?? [], u = y * (m.length ? 1 : 0.2), k = -st * u, g = nt * u * l, _ = r + k, x = a + g;
487
- if (j(e, r, a, _, x, "ishikawa-branch", d), d && q(e, r, a, r - _, a - x, d), Mt(e, h.text, _, x, l, f, d), !m.length)
487
+ if (j(e, r, a, _, x, "ishikawa-branch", d), d && J(e, r, a, r - _, a - x, d), Mt(e, h.text, _, x, l, f, d), !m.length)
488
488
  return;
489
489
  const { entries: D, yOrder: O } = Tt(m, l), E = D.length, T = new Array(E);
490
490
  for (const [p, n] of O.entries())
@@ -504,10 +504,10 @@ var xt = J, H, vt = (H = class {
504
504
  let $ = 0, L = 0, A = 0;
505
505
  if (n.depth % 2 === 0) {
506
506
  const C = w.y1 - w.y0;
507
- $ = lt(w.x0, w.x1, C ? (v - w.y0) / C : 0.5), L = v, A = $ - (n.childCount > 0 ? Et + n.childCount * At : $t), j(I, $, v, A, v, "ishikawa-sub-branch", d), d && q(I, $, v, 1, 0, d), Y(I, n.text, A, v, "ishikawa-label align", "end", f);
507
+ $ = lt(w.x0, w.x1, C ? (v - w.y0) / C : 0.5), L = v, A = $ - (n.childCount > 0 ? Et + n.childCount * At : $t), j(I, $, v, A, v, "ishikawa-sub-branch", d), d && J(I, $, v, 1, 0, d), K(I, n.text, A, v, "ishikawa-label align", "end", f);
508
508
  } else {
509
509
  const C = w.childrenDrawn++;
510
- $ = lt(w.x0, w.x1, (w.childCount - C) / (w.childCount + 1)), L = w.y0, A = $ + s * ((v - L) / i), j(I, $, L, A, v, "ishikawa-sub-branch", d), d && q(I, $, L, $ - A, L - v, d), Y(I, n.text, A, v, c, "end", f);
510
+ $ = lt(w.x0, w.x1, (w.childCount - C) / (w.childCount + 1)), L = w.y0, A = $ + s * ((v - L) / i), j(I, $, L, A, v, "ishikawa-sub-branch", d), d && J(I, $, L, $ - A, L - v, d), K(I, n.text, A, v, c, "end", f);
511
511
  }
512
512
  n.childCount > 0 && t.set(p, {
513
513
  x0: $,
@@ -528,7 +528,7 @@ var xt = J, H, vt = (H = class {
528
528
  }
529
529
  return r.join(`
530
530
  `);
531
- }, "wrapText"), Y = /* @__PURE__ */ o((e, h, r, a, l, y, f) => {
531
+ }, "wrapText"), K = /* @__PURE__ */ o((e, h, r, a, l, y, f) => {
532
532
  const d = Bt(h), m = f * 1.05, u = e.append("text").attr("class", l).attr("text-anchor", y).attr("x", r).attr("y", a - (d.length - 1) * m / 2);
533
533
  for (const [k, g] of d.entries())
534
534
  u.append("tspan").attr("x", r).attr("dy", k === 0 ? 0 : m).text(g);
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./extractHeadings-D1A8WzVy.cjs");var J=(function(){var i=e.__name(function(T,t,s,n){for(s=s||{},n=T.length;n--;s[T[n]]=t);return s},"o"),h=[1,4],l=[1,14],r=[1,12],o=[1,13],y=[6,7,8],f=[1,20],d=[1,18],m=[1,19],u=[6,7,11],g=[1,6,13,14],_=[1,23],w=[1,24],x=[1,6,7,11,13,14],D={trace:e.__name(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ishikawa:4,spaceLines:5,SPACELINE:6,NL:7,ISHIKAWA:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,TEXT:14,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"ISHIKAWA",11:"EOF",13:"SPACELIST",14:"TEXT"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,1],[12,1],[12,1]],performAction:e.__name(function(t,s,n,c,p,a,v){var k=a.length-1;switch(p){case 6:case 7:return c;case 15:c.addNode(a[k-1].length,a[k].trim());break;case 16:c.addNode(0,a[k].trim());break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:h},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:h},{6:l,7:[1,10],9:9,12:11,13:r,14:o},i(y,[2,3]),{1:[2,2]},i(y,[2,4]),i(y,[2,5]),{1:[2,6],6:l,12:15,13:r,14:o},{6:l,9:16,12:11,13:r,14:o},{6:f,7:d,10:17,11:m},i(u,[2,18],{14:[1,21]}),i(u,[2,16]),i(u,[2,17]),{6:f,7:d,10:22,11:m},{1:[2,7],6:l,12:15,13:r,14:o},i(g,[2,14],{7:_,11:w}),i(x,[2,8]),i(x,[2,9]),i(x,[2,10]),i(u,[2,15]),i(g,[2,13],{7:_,11:w}),i(x,[2,11]),i(x,[2,12])],defaultActions:{2:[2,1],6:[2,2]},parseError:e.__name(function(t,s){if(s.recoverable)this.trace(t);else{var n=new Error(t);throw n.hash=s,n}},"parseError"),parse:e.__name(function(t){var s=this,n=[0],c=[],p=[null],a=[],v=this.table,k="",I=0,$=0,L=2,A=1,C=a.slice.call(arguments,1),b=Object.create(this.lexer),S={yy:{}};for(var P in this.yy)Object.prototype.hasOwnProperty.call(this.yy,P)&&(S.yy[P]=this.yy[P]);b.setInput(t,S.yy),S.yy.lexer=b,S.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var R=b.yylloc;a.push(R);var G=b.options&&b.options.ranges;typeof S.yy.parseError=="function"?this.parseError=S.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Y(B){n.length=n.length-2*B,p.length=p.length-B,a.length=a.length-B}e.__name(Y,"popStack");function tt(){var B;return B=c.pop()||b.lex()||A,typeof B!="number"&&(B instanceof Array&&(c=B,B=c.pop()),B=s.symbols_[B]||B),B}e.__name(tt,"lex");for(var M,W,N,q,j={},U,V,et,Z;;){if(W=n[n.length-1],this.defaultActions[W]?N=this.defaultActions[W]:((M===null||typeof M>"u")&&(M=tt()),N=v[W]&&v[W][M]),typeof N>"u"||!N.length||!N[0]){var K="";Z=[];for(U in v[W])this.terminals_[U]&&U>L&&Z.push("'"+this.terminals_[U]+"'");b.showPosition?K="Parse error on line "+(I+1)+`:
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./extractHeadings-By3kC3b_.cjs");var J=(function(){var i=e.__name(function(T,t,s,n){for(s=s||{},n=T.length;n--;s[T[n]]=t);return s},"o"),h=[1,4],l=[1,14],r=[1,12],o=[1,13],y=[6,7,8],f=[1,20],d=[1,18],m=[1,19],u=[6,7,11],g=[1,6,13,14],_=[1,23],w=[1,24],x=[1,6,7,11,13,14],D={trace:e.__name(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ishikawa:4,spaceLines:5,SPACELINE:6,NL:7,ISHIKAWA:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,TEXT:14,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"ISHIKAWA",11:"EOF",13:"SPACELIST",14:"TEXT"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,1],[12,1],[12,1]],performAction:e.__name(function(t,s,n,c,p,a,v){var k=a.length-1;switch(p){case 6:case 7:return c;case 15:c.addNode(a[k-1].length,a[k].trim());break;case 16:c.addNode(0,a[k].trim());break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:h},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:h},{6:l,7:[1,10],9:9,12:11,13:r,14:o},i(y,[2,3]),{1:[2,2]},i(y,[2,4]),i(y,[2,5]),{1:[2,6],6:l,12:15,13:r,14:o},{6:l,9:16,12:11,13:r,14:o},{6:f,7:d,10:17,11:m},i(u,[2,18],{14:[1,21]}),i(u,[2,16]),i(u,[2,17]),{6:f,7:d,10:22,11:m},{1:[2,7],6:l,12:15,13:r,14:o},i(g,[2,14],{7:_,11:w}),i(x,[2,8]),i(x,[2,9]),i(x,[2,10]),i(u,[2,15]),i(g,[2,13],{7:_,11:w}),i(x,[2,11]),i(x,[2,12])],defaultActions:{2:[2,1],6:[2,2]},parseError:e.__name(function(t,s){if(s.recoverable)this.trace(t);else{var n=new Error(t);throw n.hash=s,n}},"parseError"),parse:e.__name(function(t){var s=this,n=[0],c=[],p=[null],a=[],v=this.table,k="",I=0,$=0,L=2,A=1,C=a.slice.call(arguments,1),b=Object.create(this.lexer),S={yy:{}};for(var P in this.yy)Object.prototype.hasOwnProperty.call(this.yy,P)&&(S.yy[P]=this.yy[P]);b.setInput(t,S.yy),S.yy.lexer=b,S.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var R=b.yylloc;a.push(R);var G=b.options&&b.options.ranges;typeof S.yy.parseError=="function"?this.parseError=S.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Y(B){n.length=n.length-2*B,p.length=p.length-B,a.length=a.length-B}e.__name(Y,"popStack");function tt(){var B;return B=c.pop()||b.lex()||A,typeof B!="number"&&(B instanceof Array&&(c=B,B=c.pop()),B=s.symbols_[B]||B),B}e.__name(tt,"lex");for(var M,W,N,q,j={},U,V,et,Z;;){if(W=n[n.length-1],this.defaultActions[W]?N=this.defaultActions[W]:((M===null||typeof M>"u")&&(M=tt()),N=v[W]&&v[W][M]),typeof N>"u"||!N.length||!N[0]){var K="";Z=[];for(U in v[W])this.terminals_[U]&&U>L&&Z.push("'"+this.terminals_[U]+"'");b.showPosition?K="Parse error on line "+(I+1)+`:
2
2
  `+b.showPosition()+`
3
3
  Expecting `+Z.join(", ")+", got '"+(this.terminals_[M]||M)+"'":K="Parse error on line "+(I+1)+": Unexpected "+(M==A?"end of input":"'"+(this.terminals_[M]||M)+"'"),this.parseError(K,{text:b.match,token:this.terminals_[M]||M,line:b.yylineno,loc:R,expected:Z})}if(N[0]instanceof Array&&N.length>1)throw new Error("Parse Error: multiple actions possible at state: "+W+", token: "+M);switch(N[0]){case 1:n.push(M),p.push(b.yytext),a.push(b.yylloc),n.push(N[1]),M=null,$=b.yyleng,k=b.yytext,I=b.yylineno,R=b.yylloc;break;case 2:if(V=this.productions_[N[1]][1],j.$=p[p.length-V],j._$={first_line:a[a.length-(V||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(V||1)].first_column,last_column:a[a.length-1].last_column},G&&(j._$.range=[a[a.length-(V||1)].range[0],a[a.length-1].range[1]]),q=this.performAction.apply(j,[k,$,I,S.yy,N[1],p,a].concat(C)),typeof q<"u")return q;V&&(n=n.slice(0,-1*V*2),p=p.slice(0,-1*V),a=a.slice(0,-1*V)),n.push(this.productions_[N[1]][0]),p.push(j.$),a.push(j._$),et=v[n[n.length-2]][n[n.length-1]],n.push(et);break;case 3:return!0}}return!0},"parse")},O=(function(){var T={EOF:1,parseError:e.__name(function(s,n){if(this.yy.parser)this.yy.parser.parseError(s,n);else throw new Error(s)},"parseError"),setInput:e.__name(function(t,s){return this.yy=s||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:e.__name(function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;var s=t.match(/(?:\r\n?|\n).*/g);return s?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:e.__name(function(t){var s=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-s),this.offset-=s;var c=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var p=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===c.length?this.yylloc.first_column:0)+c[c.length-n.length].length-n[0].length:this.yylloc.first_column-s},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-s]),this.yyleng=this.yytext.length,this},"unput"),more:e.__name(function(){return this._more=!0,this},"more"),reject:e.__name(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:e.__name(function(t){this.unput(this.match.slice(t))},"less"),pastInput:e.__name(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:e.__name(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:e.__name(function(){var t=this.pastInput(),s=new Array(t.length+1).join("-");return t+this.upcomingInput()+`
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ft=require("./chunk-5VM5RSS4-CKgpuXOS.cjs"),j=require("./chunk-32BRIVSS-XUAL4SUU.cjs"),n=require("./extractHeadings-D1A8WzVy.cjs"),et=require("./arc-BWR9_qMf.cjs");var G=(function(){var t=n.__name(function(h,r,a,l){for(a=a||{},l=h.length;l--;a[h[l]]=r);return a},"o"),e=[6,8,10,11,12,14,16,17,18],s=[1,9],f=[1,10],i=[1,11],u=[1,12],p=[1,13],o=[1,14],_={trace:n.__name(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:n.__name(function(r,a,l,y,d,c,v){var x=c.length-1;switch(d){case 1:return c[x-1];case 2:this.$=[];break;case 3:c[x-1].push(c[x]),this.$=c[x-1];break;case 4:case 5:this.$=c[x];break;case 6:case 7:this.$=[];break;case 8:y.setDiagramTitle(c[x].substr(6)),this.$=c[x].substr(6);break;case 9:this.$=c[x].trim(),y.setAccTitle(this.$);break;case 10:case 11:this.$=c[x].trim(),y.setAccDescription(this.$);break;case 12:y.addSection(c[x].substr(8)),this.$=c[x].substr(8);break;case 13:y.addTask(c[x-1],c[x]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:s,12:f,14:i,16:u,17:p,18:o},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:s,12:f,14:i,16:u,17:p,18:o},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:n.__name(function(r,a){if(a.recoverable)this.trace(r);else{var l=new Error(r);throw l.hash=a,l}},"parseError"),parse:n.__name(function(r){var a=this,l=[0],y=[],d=[null],c=[],v=this.table,x="",E=0,K=0,ht=2,Q=1,ut=c.slice.call(arguments,1),k=Object.create(this.lexer),A={yy:{}};for(var q in this.yy)Object.prototype.hasOwnProperty.call(this.yy,q)&&(A.yy[q]=this.yy[q]);k.setInput(r,A.yy),A.yy.lexer=k,A.yy.parser=this,typeof k.yylloc>"u"&&(k.yylloc={});var O=k.yylloc;c.push(O);var yt=k.options&&k.options.ranges;typeof A.yy.parseError=="function"?this.parseError=A.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function dt(w){l.length=l.length-2*w,d.length=d.length-w,c.length=c.length-w}n.__name(dt,"popStack");function D(){var w;return w=y.pop()||k.lex()||Q,typeof w!="number"&&(w instanceof Array&&(y=w,w=y.pop()),w=a.symbols_[w]||w),w}n.__name(D,"lex");for(var b,I,T,Y,R={},N,M,tt,z;;){if(I=l[l.length-1],this.defaultActions[I]?T=this.defaultActions[I]:((b===null||typeof b>"u")&&(b=D()),T=v[I]&&v[I][b]),typeof T>"u"||!T.length||!T[0]){var H="";z=[];for(N in v[I])this.terminals_[N]&&N>ht&&z.push("'"+this.terminals_[N]+"'");k.showPosition?H="Parse error on line "+(E+1)+`:
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ft=require("./chunk-5VM5RSS4-DSg2-2mp.cjs"),j=require("./chunk-32BRIVSS-BddWRgx3.cjs"),n=require("./extractHeadings-By3kC3b_.cjs"),et=require("./arc-B48_ucR0.cjs");var G=(function(){var t=n.__name(function(h,r,a,l){for(a=a||{},l=h.length;l--;a[h[l]]=r);return a},"o"),e=[6,8,10,11,12,14,16,17,18],s=[1,9],f=[1,10],i=[1,11],u=[1,12],p=[1,13],o=[1,14],_={trace:n.__name(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:n.__name(function(r,a,l,y,d,c,v){var x=c.length-1;switch(d){case 1:return c[x-1];case 2:this.$=[];break;case 3:c[x-1].push(c[x]),this.$=c[x-1];break;case 4:case 5:this.$=c[x];break;case 6:case 7:this.$=[];break;case 8:y.setDiagramTitle(c[x].substr(6)),this.$=c[x].substr(6);break;case 9:this.$=c[x].trim(),y.setAccTitle(this.$);break;case 10:case 11:this.$=c[x].trim(),y.setAccDescription(this.$);break;case 12:y.addSection(c[x].substr(8)),this.$=c[x].substr(8);break;case 13:y.addTask(c[x-1],c[x]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:s,12:f,14:i,16:u,17:p,18:o},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:s,12:f,14:i,16:u,17:p,18:o},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:n.__name(function(r,a){if(a.recoverable)this.trace(r);else{var l=new Error(r);throw l.hash=a,l}},"parseError"),parse:n.__name(function(r){var a=this,l=[0],y=[],d=[null],c=[],v=this.table,x="",E=0,K=0,ht=2,Q=1,ut=c.slice.call(arguments,1),k=Object.create(this.lexer),A={yy:{}};for(var q in this.yy)Object.prototype.hasOwnProperty.call(this.yy,q)&&(A.yy[q]=this.yy[q]);k.setInput(r,A.yy),A.yy.lexer=k,A.yy.parser=this,typeof k.yylloc>"u"&&(k.yylloc={});var O=k.yylloc;c.push(O);var yt=k.options&&k.options.ranges;typeof A.yy.parseError=="function"?this.parseError=A.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function dt(w){l.length=l.length-2*w,d.length=d.length-w,c.length=c.length-w}n.__name(dt,"popStack");function D(){var w;return w=y.pop()||k.lex()||Q,typeof w!="number"&&(w instanceof Array&&(y=w,w=y.pop()),w=a.symbols_[w]||w),w}n.__name(D,"lex");for(var b,I,T,Y,R={},N,M,tt,z;;){if(I=l[l.length-1],this.defaultActions[I]?T=this.defaultActions[I]:((b===null||typeof b>"u")&&(b=D()),T=v[I]&&v[I][b]),typeof T>"u"||!T.length||!T[0]){var H="";z=[];for(N in v[I])this.terminals_[N]&&N>ht&&z.push("'"+this.terminals_[N]+"'");k.showPosition?H="Parse error on line "+(E+1)+`:
2
2
  `+k.showPosition()+`
3
3
  Expecting `+z.join(", ")+", got '"+(this.terminals_[b]||b)+"'":H="Parse error on line "+(E+1)+": Unexpected "+(b==Q?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(H,{text:k.match,token:this.terminals_[b]||b,line:k.yylineno,loc:O,expected:z})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+I+", token: "+b);switch(T[0]){case 1:l.push(b),d.push(k.yytext),c.push(k.yylloc),l.push(T[1]),b=null,K=k.yyleng,x=k.yytext,E=k.yylineno,O=k.yylloc;break;case 2:if(M=this.productions_[T[1]][1],R.$=d[d.length-M],R._$={first_line:c[c.length-(M||1)].first_line,last_line:c[c.length-1].last_line,first_column:c[c.length-(M||1)].first_column,last_column:c[c.length-1].last_column},yt&&(R._$.range=[c[c.length-(M||1)].range[0],c[c.length-1].range[1]]),Y=this.performAction.apply(R,[x,K,E,A.yy,T[1],d,c].concat(ut)),typeof Y<"u")return Y;M&&(l=l.slice(0,-1*M*2),d=d.slice(0,-1*M),c=c.slice(0,-1*M)),l.push(this.productions_[T[1]][0]),d.push(R.$),c.push(R._$),tt=v[l[l.length-2]][l[l.length-1]],l.push(tt);break;case 3:return!0}}return!0},"parse")},g=(function(){var h={EOF:1,parseError:n.__name(function(a,l){if(this.yy.parser)this.yy.parser.parseError(a,l);else throw new Error(a)},"parseError"),setInput:n.__name(function(r,a){return this.yy=a||this.yy||{},this._input=r,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:n.__name(function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var a=r.match(/(?:\r\n?|\n).*/g);return a?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},"input"),unput:n.__name(function(r){var a=r.length,l=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var y=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),l.length-1&&(this.yylineno-=l.length-1);var d=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:l?(l.length===y.length?this.yylloc.first_column:0)+y[y.length-l.length].length-l[0].length:this.yylloc.first_column-a},this.options.ranges&&(this.yylloc.range=[d[0],d[0]+this.yyleng-a]),this.yyleng=this.yytext.length,this},"unput"),more:n.__name(function(){return this._more=!0,this},"more"),reject:n.__name(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:n.__name(function(r){this.unput(this.match.slice(r))},"less"),pastInput:n.__name(function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:n.__name(function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:n.__name(function(){var r=this.pastInput(),a=new Array(r.length+1).join("-");return r+this.upcomingInput()+`