@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.
- package/README.md +75 -2
- package/dist/{abnfDiagram-VRR7QNED-DRNsVB-u.cjs → abnfDiagram-VRR7QNED-BGUmgNQ4.cjs} +1 -1
- package/dist/{abnfDiagram-VRR7QNED-0ow9i3L-.js → abnfDiagram-VRR7QNED-D3L_2hCD.js} +3 -3
- package/dist/{arc-BWR9_qMf.cjs → arc-B48_ucR0.cjs} +1 -1
- package/dist/arc-ChEpDr_9.js +83 -0
- package/dist/{architectureDiagram-ZJ3FMSHR-DtrqDlxV.cjs → architectureDiagram-ZJ3FMSHR-Bg0dBVnf.cjs} +1 -1
- package/dist/{architectureDiagram-ZJ3FMSHR-CsFXQcxx.js → architectureDiagram-ZJ3FMSHR-D4ta1ajC.js} +2 -2
- package/dist/{blockDiagram-677ZJIJ3-CqQ43viF.js → blockDiagram-677ZJIJ3-CupyE7nK.js} +3 -3
- package/dist/{blockDiagram-677ZJIJ3-CoZEeE0C.cjs → blockDiagram-677ZJIJ3-DkWMy8pP.cjs} +1 -1
- package/dist/{c4Diagram-LMCZKHZV-QPgNg4El.js → c4Diagram-LMCZKHZV-Cy1lIde9.js} +2 -2
- package/dist/{c4Diagram-LMCZKHZV-DGA2gxp-.cjs → c4Diagram-LMCZKHZV-DxOKAkJI.cjs} +1 -1
- package/dist/{channel-PnA15jK3.js → channel-C9c0_XwC.js} +1 -1
- package/dist/{channel-Jkgg7NV4.cjs → channel-TOZvPft0.cjs} +1 -1
- package/dist/{chunk-2Q5K7J3B-1iQ5h7FK.cjs → chunk-2Q5K7J3B-DaGwwho3.cjs} +1 -1
- package/dist/{chunk-2Q5K7J3B-DOWfHP5s.js → chunk-2Q5K7J3B-DahzXbiI.js} +1 -1
- package/dist/{chunk-32BRIVSS-XUAL4SUU.cjs → chunk-32BRIVSS-BddWRgx3.cjs} +1 -1
- package/dist/{chunk-32BRIVSS-94iTIA-u.js → chunk-32BRIVSS-DFLtYkrI.js} +1 -1
- package/dist/{chunk-5VM5RSS4-CKgpuXOS.cjs → chunk-5VM5RSS4-DSg2-2mp.cjs} +1 -1
- package/dist/{chunk-5VM5RSS4-OANQKmQE.js → chunk-5VM5RSS4-DiwEVqol.js} +1 -1
- package/dist/{chunk-EX3LRPZG-BQDQ1MdS.js → chunk-EX3LRPZG-Ca4uquaA.js} +37 -37
- package/dist/{chunk-EX3LRPZG-BrRRbskW.cjs → chunk-EX3LRPZG-OD-kvRfM.cjs} +1 -1
- package/dist/{chunk-JWPE2WC7-Bz9dXsLZ.cjs → chunk-JWPE2WC7-BGdnK7yg.cjs} +1 -1
- package/dist/{chunk-JWPE2WC7-Djg6Qi23.js → chunk-JWPE2WC7-njgGfGvE.js} +1 -1
- package/dist/{chunk-MOJQB5TN-1pZNp2Wl.js → chunk-MOJQB5TN-B-H_fDpi.js} +11 -11
- package/dist/{chunk-MOJQB5TN-DUk2Jy4_.cjs → chunk-MOJQB5TN-DPs_chEk.cjs} +1 -1
- package/dist/{chunk-PUDLZKDR-G5JYyEiR.js → chunk-PUDLZKDR-9xQzJ025.js} +11 -11
- package/dist/{chunk-PUDLZKDR-CVedetzB.cjs → chunk-PUDLZKDR-DZphdeDg.cjs} +1 -1
- package/dist/{chunk-RYQCIY6F-D0y50t5B.cjs → chunk-RYQCIY6F-8Qpsw4iJ.cjs} +1 -1
- package/dist/{chunk-RYQCIY6F-Crmt36sO.js → chunk-RYQCIY6F-BNzT71C4.js} +10 -10
- package/dist/{chunk-V7JOEXUC-DXSQM1ea.cjs → chunk-V7JOEXUC-BPE4_Rfd.cjs} +1 -1
- package/dist/{chunk-V7JOEXUC-BNo-X7NC.js → chunk-V7JOEXUC-DG6RRlOY.js} +10 -10
- package/dist/{chunk-VR4S4FIN-Bc567umS.cjs → chunk-VR4S4FIN-C-Pbv_Mm.cjs} +1 -1
- package/dist/{chunk-VR4S4FIN-BGGITgpQ.js → chunk-VR4S4FIN-CLtgFgby.js} +1 -1
- package/dist/{chunk-XXDRQBXY-DOuLpiJ4.cjs → chunk-XXDRQBXY-B0bOz96Q.cjs} +1 -1
- package/dist/{chunk-XXDRQBXY-Drnpl-KK.js → chunk-XXDRQBXY-DEXdwwNg.js} +1 -1
- package/dist/{classDiagram-v2-EOCWNBFH-Cneye7qT.js → classDiagram-OUVF2IWQ-B9uAd2dg.js} +2 -2
- package/dist/{classDiagram-OUVF2IWQ-mmjBEYmN.cjs → classDiagram-OUVF2IWQ-DMqQXVMf.cjs} +1 -1
- package/dist/{classDiagram-OUVF2IWQ-Cneye7qT.js → classDiagram-v2-EOCWNBFH-B9uAd2dg.js} +2 -2
- package/dist/{classDiagram-v2-EOCWNBFH-mmjBEYmN.cjs → classDiagram-v2-EOCWNBFH-DMqQXVMf.cjs} +1 -1
- package/dist/components/HostedScrollArea.d.ts +15 -0
- package/dist/components/MarkdownViewer.d.ts +3 -1
- package/dist/components/MermaidDiagram.d.ts +1 -0
- package/dist/components/mdastNodes/CodeNode.d.ts +2 -1
- package/dist/components/mermaidInteraction.d.ts +1 -0
- package/dist/{cose-bilkent-JH36ORCC-BQWfGE1G.js → cose-bilkent-JH36ORCC-DVB8IdFe.js} +5 -5
- package/dist/{cose-bilkent-JH36ORCC-BaEdcRlX.cjs → cose-bilkent-JH36ORCC-DxpO_Qhk.cjs} +1 -1
- package/dist/{cynefinDiagram-TSTJHNR4-CTDDSUz7.js → cynefinDiagram-TSTJHNR4-C-iEKX8r.js} +28 -28
- package/dist/{cynefinDiagram-TSTJHNR4-DPQl09kC.cjs → cynefinDiagram-TSTJHNR4-Dvc8nHOe.cjs} +1 -1
- package/dist/{dagre-VKFMJZFB-BMRdJgZy.js → dagre-VKFMJZFB-CI1hyGqk.js} +9 -9
- package/dist/{dagre-VKFMJZFB-DZ4E-Szs.cjs → dagre-VKFMJZFB-DqU8jG6A.cjs} +1 -1
- package/dist/{diagram-FQU43EPY-mK9YHIy1.cjs → diagram-FQU43EPY-DQHw46B-.cjs} +1 -1
- package/dist/{diagram-FQU43EPY-CmEpNw5i.js → diagram-FQU43EPY-iMIQEr1Q.js} +25 -25
- package/dist/{diagram-G47NLZAW-BX8Lj_uD.cjs → diagram-G47NLZAW-Dxkn-83c.cjs} +1 -1
- package/dist/{diagram-G47NLZAW-eJRQFjAg.js → diagram-G47NLZAW-L7A0K5es.js} +25 -25
- package/dist/{diagram-NH7WQ7WH-BOOj_4-N.js → diagram-NH7WQ7WH-8BnG6h8J.js} +19 -19
- package/dist/{diagram-NH7WQ7WH-3r1_3TrC.cjs → diagram-NH7WQ7WH-CBMFD5SB.cjs} +1 -1
- package/dist/{diagram-OA4YK3LP-DnDIHtcW.js → diagram-OA4YK3LP-C24uGaef.js} +13 -13
- package/dist/{diagram-OA4YK3LP-CkDJzLOy.cjs → diagram-OA4YK3LP-DrD1SsZM.cjs} +1 -1
- package/dist/{diagram-WEI45ONY-BpCCo_Ty.cjs → diagram-WEI45ONY-BYN2qTiw.cjs} +1 -1
- package/dist/{diagram-WEI45ONY-BHpuPTt-.js → diagram-WEI45ONY-kBWsy9sQ.js} +35 -35
- package/dist/{ebnfDiagram-CCIWWBDH-CfdalXdM.cjs → ebnfDiagram-CCIWWBDH-C7whdHrV.cjs} +1 -1
- package/dist/{ebnfDiagram-CCIWWBDH-BDLB-AVF.js → ebnfDiagram-CCIWWBDH-DRfaz75o.js} +3 -3
- package/dist/embeds/testing.cjs +1 -1
- package/dist/embeds/testing.js +1 -1
- package/dist/embeds.cjs +1 -1
- package/dist/embeds.js +1 -1
- package/dist/{erDiagram-Q63AITRT-CviOyQsx.cjs → erDiagram-Q63AITRT-Cbh7ns6U.cjs} +1 -1
- package/dist/{erDiagram-Q63AITRT-DZlcgZfp.js → erDiagram-Q63AITRT-CvcOag5w.js} +4 -4
- package/dist/extractHeadings-By3kC3b_.cjs +311 -0
- package/dist/{extractHeadings-CtiYkq2z.js → extractHeadings-Dz8gnhsx.js} +5108 -5006
- package/dist/flowDiagram-23GEKE2U-C5ygxVuP.js +7 -0
- package/dist/flowDiagram-23GEKE2U-DSpM0zzA.cjs +1 -0
- package/dist/{ganttDiagram-NO4QXBWP-DO0HAbYg.js → ganttDiagram-NO4QXBWP-Ccrw6Vga.js} +2 -2
- package/dist/{ganttDiagram-NO4QXBWP-CJa-hKPU.cjs → ganttDiagram-NO4QXBWP-YWoWQpTa.cjs} +1 -1
- package/dist/gen/markdown/v1/markdown_pb.d.ts +1 -0
- package/dist/{gitGraphDiagram-IHSO6WYX-CXStgPQs.js → gitGraphDiagram-IHSO6WYX-C-mHT-ew.js} +3 -3
- package/dist/{gitGraphDiagram-IHSO6WYX-CXcPHbkt.cjs → gitGraphDiagram-IHSO6WYX-nKm0aLrL.cjs} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.client.cjs +1 -1
- package/dist/index.client.d.ts +1 -0
- package/dist/index.client.js +33 -32
- package/dist/index.js +33 -32
- package/dist/index.server.cjs +1 -1
- package/dist/index.server.js +59 -38
- package/dist/{infoDiagram-FWYZ7A6U-BByoHihL.cjs → infoDiagram-FWYZ7A6U-B6uUqDCC.cjs} +1 -1
- package/dist/{infoDiagram-FWYZ7A6U-K0__ySEG.js → infoDiagram-FWYZ7A6U-HBcwdQ6Z.js} +3 -3
- package/dist/{ishikawaDiagram-FXEZZL3T-C8QlwQP1.js → ishikawaDiagram-FXEZZL3T-CcSYEsTJ.js} +18 -18
- package/dist/{ishikawaDiagram-FXEZZL3T-DZOMdeTI.cjs → ishikawaDiagram-FXEZZL3T-D9WZm1OZ.cjs} +1 -1
- package/dist/{journeyDiagram-5HDEW3XC-RvC77rKo.cjs → journeyDiagram-5HDEW3XC-BC3ajweK.cjs} +1 -1
- package/dist/{journeyDiagram-5HDEW3XC-CZ9PFNNN.js → journeyDiagram-5HDEW3XC-PJm-8Gz8.js} +30 -30
- package/dist/{kanban-definition-HUTT4EX6-Q12F4vHx.js → kanban-definition-HUTT4EX6-42_dEzBV.js} +120 -120
- package/dist/{kanban-definition-HUTT4EX6-BL1jihGl.cjs → kanban-definition-HUTT4EX6-BR-C1joQ.cjs} +1 -1
- package/dist/{linear-LWjATjog.js → linear-B7J7VKh9.js} +8 -8
- package/dist/{linear-lDvPoqlB.cjs → linear-CoCezkp4.cjs} +1 -1
- package/dist/markdown.css +1 -1
- package/dist/{mindmap-definition-LN4V7U3C-TVYKONRm.cjs → mindmap-definition-LN4V7U3C-BO555Yeu.cjs} +1 -1
- package/dist/{mindmap-definition-LN4V7U3C-CM1XvwJX.js → mindmap-definition-LN4V7U3C-e4fXdr28.js} +16 -16
- package/dist/{pegDiagram-2B236MQR-a9Up0ERY.cjs → pegDiagram-2B236MQR-CqN17IwE.cjs} +1 -1
- package/dist/{pegDiagram-2B236MQR-Dlrnikqd.js → pegDiagram-2B236MQR-nN-jUv5o.js} +3 -3
- package/dist/{pieDiagram-ENE6RG2P-ClakmSma.cjs → pieDiagram-ENE6RG2P-D_EIGKcE.cjs} +1 -1
- package/dist/{pieDiagram-ENE6RG2P-WYrEJp8U.js → pieDiagram-ENE6RG2P-EvhF_8o2.js} +60 -60
- package/dist/providers-BO7J62-7.cjs +1 -0
- package/dist/{providers-Drq7MT_K.js → providers-L5RM3KgR.js} +23 -23
- package/dist/{quadrantDiagram-ABIIQ3AL-BkgMVDaX.js → quadrantDiagram-ABIIQ3AL-2gTiccyy.js} +18 -18
- package/dist/{quadrantDiagram-ABIIQ3AL-Cb01YcqR.cjs → quadrantDiagram-ABIIQ3AL-HNTFSQzi.cjs} +1 -1
- package/dist/{railroadDiagram-RFXS5EU6-Bob4WSMz.cjs → railroadDiagram-RFXS5EU6-CRuA7qqW.cjs} +1 -1
- package/dist/{railroadDiagram-RFXS5EU6-RfCtZGUR.js → railroadDiagram-RFXS5EU6-CYAI9-bK.js} +3 -3
- package/dist/remarkProcessor.server.d.ts +1 -0
- package/dist/{requirementDiagram-TGXJPOKE-C1yJPMp1.js → requirementDiagram-TGXJPOKE-BZc_cLKC.js} +3 -3
- package/dist/{requirementDiagram-TGXJPOKE-BP5h9mCj.cjs → requirementDiagram-TGXJPOKE-DesNyieJ.cjs} +1 -1
- package/dist/{sankeyDiagram-HTMAVEWB-D5G9Dcmr.js → sankeyDiagram-HTMAVEWB-B1QsmzsN.js} +1 -1
- package/dist/{sankeyDiagram-HTMAVEWB-shq9WK4t.cjs → sankeyDiagram-HTMAVEWB-wLwqusl2.cjs} +1 -1
- package/dist/{sequenceDiagram-DBY2YBRQ-BRxcK5-5.cjs → sequenceDiagram-DBY2YBRQ-D3ciEWOE.cjs} +1 -1
- package/dist/{sequenceDiagram-DBY2YBRQ-8EJMQxiB.js → sequenceDiagram-DBY2YBRQ-OTeHr40Q.js} +3 -3
- package/dist/{sizeCapture-X5ZJPWSS-DJG85IuR.js → sizeCapture-X5ZJPWSS-BhcQlLlw.js} +1 -1
- package/dist/{sizeCapture-X5ZJPWSS-BtBRJO2R.cjs → sizeCapture-X5ZJPWSS-LlzRMz8i.cjs} +1 -1
- package/dist/source-lines.cjs +1 -0
- package/dist/source-lines.d.ts +6 -0
- package/dist/source-lines.js +11 -0
- package/dist/{stateDiagram-2N3HPSRC-Czgkv_ey.cjs → stateDiagram-2N3HPSRC-D0q856z6.cjs} +1 -1
- package/dist/{stateDiagram-2N3HPSRC-CAd-NU-f.js → stateDiagram-2N3HPSRC-DjLE1--n.js} +11 -11
- package/dist/{stateDiagram-v2-6OUMAXLB-BNP5Lx0Y.cjs → stateDiagram-v2-6OUMAXLB-DJHUGWBX.cjs} +1 -1
- package/dist/{stateDiagram-v2-6OUMAXLB-x_Zps-d5.js → stateDiagram-v2-6OUMAXLB-DKU0HsD1.js} +2 -2
- package/dist/styles/markdown.css +1 -1
- package/dist/{swimlanes-5IMT3BWC-CfdkDd3q.cjs → swimlanes-5IMT3BWC-DC6qS8iI.cjs} +1 -1
- package/dist/{swimlanes-5IMT3BWC-D8brzzxb.js → swimlanes-5IMT3BWC-cxcj_GGS.js} +3 -3
- package/dist/{swimlanesDiagram-G3AALYLV-Bc9-lR2e.js → swimlanesDiagram-G3AALYLV-B95OToWo.js} +2 -2
- package/dist/{swimlanesDiagram-G3AALYLV-dvJpSdGV.cjs → swimlanesDiagram-G3AALYLV-Dv76fKaH.cjs} +1 -1
- package/dist/{timeline-definition-FHXFAJF6-CKW3NJOF.js → timeline-definition-FHXFAJF6-P-5kO0xQ.js} +38 -38
- package/dist/{timeline-definition-FHXFAJF6-BSqACati.cjs → timeline-definition-FHXFAJF6-wD6O9DDR.cjs} +1 -1
- package/dist/{vennDiagram-L72KCM5P-ChKxsFyJ.cjs → vennDiagram-L72KCM5P-BXHvaRtm.cjs} +1 -1
- package/dist/{vennDiagram-L72KCM5P-vPmq984y.js → vennDiagram-L72KCM5P-BwinGtNb.js} +102 -102
- package/dist/{wardleyDiagram-EHGQE667-CxzlR7km.cjs → wardleyDiagram-EHGQE667-BDgwIQTf.cjs} +1 -1
- package/dist/{wardleyDiagram-EHGQE667-CwN9zwBX.js → wardleyDiagram-EHGQE667-BeYbREE2.js} +18 -18
- package/dist/{xychartDiagram-FW5EYKEG-DBSKTLuc.js → xychartDiagram-FW5EYKEG-BXjx9Zgc.js} +27 -27
- package/dist/{xychartDiagram-FW5EYKEG-wJqYRInm.cjs → xychartDiagram-FW5EYKEG-DLCCDPGO.cjs} +1 -1
- package/package.json +14 -7
- package/dist/arc-Bh12k776.js +0 -83
- package/dist/extractHeadings-D1A8WzVy.cjs +0 -311
- package/dist/flowDiagram-23GEKE2U-C_FW0q38.js +0 -7
- package/dist/flowDiagram-23GEKE2U-Cb0U58EU.cjs +0 -1
- package/dist/providers-Bxr2Wb-j.cjs +0 -1
package/dist/index.server.cjs
CHANGED
|
@@ -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&<(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&<(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;
|
package/dist/index.server.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { l as L, L as O, a as se, b as
|
|
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
|
|
6
|
-
import { Agent as
|
|
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, ...
|
|
67
|
-
return f !== void 0 ? { error: null, family: 6, addresses: [f, ...
|
|
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 =
|
|
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
|
|
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,
|
|
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
|
-
},
|
|
356
|
-
let e = !1, n = 0, o = 0, s = 0, a = null, i = null, l = null, c, f,
|
|
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" && (
|
|
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(
|
|
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",
|
|
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", [
|
|
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 =
|
|
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:
|
|
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
|
|
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
|
|
623
|
+
return new k().fromBinary(t, e);
|
|
604
624
|
}
|
|
605
625
|
static fromJson(t, e) {
|
|
606
|
-
return new
|
|
626
|
+
return new k().fromJson(t, e);
|
|
607
627
|
}
|
|
608
628
|
static fromJsonString(t, e) {
|
|
609
|
-
return new
|
|
629
|
+
return new k().fromJsonString(t, e);
|
|
610
630
|
}
|
|
611
631
|
static equals(t, e) {
|
|
612
|
-
return d.util.equals(
|
|
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
|
|
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
|
|
684
|
+
return new E().fromBinary(t, e);
|
|
665
685
|
}
|
|
666
686
|
static fromJson(t, e) {
|
|
667
|
-
return new
|
|
687
|
+
return new E().fromJson(t, e);
|
|
668
688
|
}
|
|
669
689
|
static fromJsonString(t, e) {
|
|
670
|
-
return new
|
|
690
|
+
return new E().fromJsonString(t, e);
|
|
671
691
|
}
|
|
672
692
|
static equals(t, e) {
|
|
673
|
-
return d.util.equals(
|
|
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:
|
|
739
|
-
O:
|
|
758
|
+
I: k,
|
|
759
|
+
O: E,
|
|
740
760
|
kind: Ne.Unary
|
|
741
761
|
}
|
|
742
762
|
}
|
|
743
|
-
},
|
|
744
|
-
createConnection: () => ie.connect(
|
|
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(" "),
|
|
782
|
-
const t = ie.connect(
|
|
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
|
|
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
|
|
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(
|
|
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:",
|
|
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 ${
|
|
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-
|
|
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,
|
|
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"),
|
|
17
|
+
}, "draw"), l = { draw: c }, _ = {
|
|
18
18
|
parser: p,
|
|
19
19
|
db: m,
|
|
20
|
-
renderer:
|
|
20
|
+
renderer: l
|
|
21
21
|
};
|
|
22
22
|
export {
|
|
23
23
|
_ as diagram
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { _ as o,
|
|
2
|
-
var
|
|
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,
|
|
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
|
|
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 ?
|
|
61
|
+
b.showPosition ? q = "Parse error on line " + (I + 1) + `:
|
|
62
62
|
` + b.showPosition() + `
|
|
63
|
-
Expecting ` + Z.join(", ") + ", got '" + (this.terminals_[M] || M) + "'" :
|
|
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
|
-
]),
|
|
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
|
|
95
|
-
return
|
|
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
|
-
|
|
306
|
-
var xt =
|
|
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 =
|
|
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 =
|
|
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"),
|
|
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 &&
|
|
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 &&
|
|
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 &&
|
|
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"),
|
|
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);
|
package/dist/{ishikawaDiagram-FXEZZL3T-DZOMdeTI.cjs → ishikawaDiagram-FXEZZL3T-D9WZm1OZ.cjs}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./extractHeadings-
|
|
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-
|
|
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()+`
|