pi-outpost 0.33.0 → 0.34.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 (96) hide show
  1. package/dist/contract/validate-structured-exchange.mjs +1 -1
  2. package/dist/pi-outpost.mjs +81 -81
  3. package/dist/pi-outpost.sea.mjs +2 -2
  4. package/dist/sea-prep.blob +2 -2
  5. package/dist/skills/structured-exchange/references/enriched-contract.md +2 -0
  6. package/dist/skills/structured-exchange/references/graphs-and-tables.md +2 -0
  7. package/dist/skills/structured-exchange/references/timelines.md +6 -1
  8. package/dist/web/assets/{PdfViewer-Breu7Sjc.js → PdfViewer-9kadnb9W.js} +2 -2
  9. package/dist/web/assets/{abnfDiagram-YUKMZFIV-C3316GLF.js → abnfDiagram-YUKMZFIV-BUZ7jF1I.js} +1 -1
  10. package/dist/web/assets/architecture-WOLXFQ4H-CxBmyj2Z.js +1 -0
  11. package/dist/web/assets/{architectureDiagram-47P4ROYG-DIF0b6HW.js → architectureDiagram-47P4ROYG-BAvert-J.js} +1 -1
  12. package/dist/web/assets/{blockDiagram-E7TT5TSB-CV9GZ1YV.js → blockDiagram-E7TT5TSB-CXQT_J2x.js} +1 -1
  13. package/dist/web/assets/{c4Diagram-CRA5TL53-CwhV_iND.js → c4Diagram-CRA5TL53-Byqo5aDs.js} +1 -1
  14. package/dist/web/assets/channel-D3nE3SyW.js +1 -0
  15. package/dist/web/assets/{chunk-2BW5OAIV-BsAia7Al.js → chunk-2BW5OAIV-D9dSVCv2.js} +1 -1
  16. package/dist/web/assets/{chunk-3YJQHVM4-Dm1l-Dy1.js → chunk-3YJQHVM4-D6IQcIQB.js} +1 -1
  17. package/dist/web/assets/{chunk-4EA7E6EY-naeQOPw-.js → chunk-4EA7E6EY-BxZ_5HMn.js} +1 -1
  18. package/dist/web/assets/{chunk-7TKQ45FW-FOaH838D.js → chunk-7TKQ45FW-G9TsFldk.js} +1 -1
  19. package/dist/web/assets/{chunk-AW2ZBBNX-CGyq4s2r.js → chunk-AW2ZBBNX-nmg5rsd5.js} +1 -1
  20. package/dist/web/assets/{chunk-DBDB3WZW-Dsg9Hv0J.js → chunk-DBDB3WZW-BwVIGLtu.js} +1 -1
  21. package/dist/web/assets/{chunk-E2ZNV5FY-CGxPxtpi.js → chunk-E2ZNV5FY-VD95O25Z.js} +1 -1
  22. package/dist/web/assets/{chunk-EU5HNXII-BhxYlybE.js → chunk-EU5HNXII-CSnybkPb.js} +1 -1
  23. package/dist/web/assets/{chunk-FVRAUYC3-DHnNbzIC.js → chunk-FVRAUYC3-TBqluQ8N.js} +1 -1
  24. package/dist/web/assets/{chunk-HJ2JQQFS-Bdf0sbbT.js → chunk-HJ2JQQFS-BiLMpVsO.js} +1 -1
  25. package/dist/web/assets/{chunk-HTAEGDNF-D7oTKVbr.js → chunk-HTAEGDNF-QDOAuhR5.js} +1 -1
  26. package/dist/web/assets/{chunk-KQW6MTUR-Dq59XghJ.js → chunk-KQW6MTUR-_WxFaX97.js} +1 -1
  27. package/dist/web/assets/{chunk-NTY3LDVX-BWpcorU_.js → chunk-NTY3LDVX-BI0Pj8F6.js} +1 -1
  28. package/dist/web/assets/{chunk-VPRB5NB3-Cp_jyZQm.js → chunk-VPRB5NB3-BBDlNNll.js} +1 -1
  29. package/dist/web/assets/{chunk-XC4XBNZT-CJ02FvSW.js → chunk-XC4XBNZT-Ba1ra4Jd.js} +1 -1
  30. package/dist/web/assets/{classDiagram-v2-K4WV4PDN-Cg9uTVxg.js → classDiagram-v2-K4WV4PDN-CksBjG_q.js} +1 -1
  31. package/dist/web/assets/{conversationExport-jYu0H4DQ.js → conversationExport-q-9NUHuj.js} +1 -1
  32. package/dist/web/assets/{cynefin-EF2NZ3EQ-pJfl1FgA.js → cynefin-EF2NZ3EQ-ucJDz_S5.js} +1 -1
  33. package/dist/web/assets/{cynefinDiagram-3GCD6N5R-k6ZzzMM3.js → cynefinDiagram-3GCD6N5R-qPxcNdaa.js} +1 -1
  34. package/dist/web/assets/{dagre-W4DXFKR2-DquYZCvu.js → dagre-W4DXFKR2-ChflYJGj.js} +1 -1
  35. package/dist/web/assets/{diagram-2UJZ2QOL-B-yYixy3.js → diagram-2UJZ2QOL-Bi9ngdu2.js} +1 -1
  36. package/dist/web/assets/{diagram-OVF4WLC6-DbSGorbR.js → diagram-OVF4WLC6-iSSbF5Cd.js} +1 -1
  37. package/dist/web/assets/{diagram-PFPMY2P6-keXuapR6.js → diagram-PFPMY2P6-BeEOD8rR.js} +1 -1
  38. package/dist/web/assets/{diagram-UMYRVEAY-DtmMk0i4.js → diagram-UMYRVEAY-BckO6iZI.js} +1 -1
  39. package/dist/web/assets/{diagram-YEKJPTXX-DhUbTD7v.js → diagram-YEKJPTXX-BzzDIAmO.js} +1 -1
  40. package/dist/web/assets/{diagram-ZIFT7M5P-DT7700Cs.js → diagram-ZIFT7M5P-ByjWOPbN.js} +1 -1
  41. package/dist/web/assets/{docxExport-Bptt2IeE.js → docxExport-BO7j3Xnv.js} +1 -1
  42. package/dist/web/assets/{ebnfDiagram-VR2GEFS7-DYTbePhB.js → ebnfDiagram-VR2GEFS7-DRp-A5JC.js} +1 -1
  43. package/dist/web/assets/{elk-IJKZMXRS-BL_C8D1_.js → elk-IJKZMXRS-QzeiQ3l1.js} +1 -1
  44. package/dist/web/assets/{erDiagram-O2IAPWRE-Dr4GvUna.js → erDiagram-O2IAPWRE-BewZvI56.js} +1 -1
  45. package/dist/web/assets/eventmodeling-K75KTNOO-CX7X0bsf.js +1 -0
  46. package/dist/web/assets/flowDiagram-OXPTDLAJ-CSIHFoeR.js +1 -0
  47. package/dist/web/assets/{ganttDiagram-R7TSEDQI-BIqwc6vR.js → ganttDiagram-R7TSEDQI-BT8Lcdwc.js} +1 -1
  48. package/dist/web/assets/{gitGraph-VSP46ZUC-DX1R9N-d.js → gitGraph-VSP46ZUC-BxYbaxeg.js} +1 -1
  49. package/dist/web/assets/{gitGraphDiagram-XJZIOB7I-DT_ndPTc.js → gitGraphDiagram-XJZIOB7I-B0fqVCqP.js} +1 -1
  50. package/dist/web/assets/{index-BPZIbtuG.js → index-eTp_lQUc.js} +5 -5
  51. package/dist/web/assets/{info-OHQRW6UA-BoyeSghL.js → info-OHQRW6UA-DV3PDKXA.js} +1 -1
  52. package/dist/web/assets/{infoDiagram-5W2HQ5XZ-CuthRIm4.js → infoDiagram-5W2HQ5XZ-DfHpZ9RG.js} +1 -1
  53. package/dist/web/assets/{ishikawaDiagram-K3B6WC7H-GkXcRsXn.js → ishikawaDiagram-K3B6WC7H-DuwLwL9k.js} +1 -1
  54. package/dist/web/assets/{journeyDiagram-COXZFDF6-DZ6nVE3P.js → journeyDiagram-COXZFDF6-CMOfweZO.js} +1 -1
  55. package/dist/web/assets/{kanban-definition-P3RFRI5V-CrJCBnoP.js → kanban-definition-P3RFRI5V-DjHhlDbk.js} +1 -1
  56. package/dist/web/assets/{line-DJV-i9of.js → line-CGIAMPkR.js} +1 -1
  57. package/dist/web/assets/{loadReferencedImage-ioiza3lS.js → loadReferencedImage-DZ5eApE4.js} +2 -2
  58. package/dist/web/assets/{mermaid-parser.core-Da4ouQsR.js → mermaid-parser.core-C18KmsD9.js} +3 -3
  59. package/dist/web/assets/{mermaid.core-DN16F2wd.js → mermaid.core-C9srNL3b.js} +4 -4
  60. package/dist/web/assets/{mindmap-definition-LZFPQGKD-_nk6gFZe.js → mindmap-definition-LZFPQGKD-C38HXkG2.js} +1 -1
  61. package/dist/web/assets/{packet-JDAUHWVQ-C1P7Fnby.js → packet-JDAUHWVQ-Br-8ADK6.js} +1 -1
  62. package/dist/web/assets/{pdf-m05k_iyp.js → pdf-C3f6Vjz7.js} +1 -1
  63. package/dist/web/assets/{pegDiagram-BGZESJAR-DxN1IEC8.js → pegDiagram-BGZESJAR-Be49dM_b.js} +1 -1
  64. package/dist/web/assets/{pie-XZMESJXO-ojEh3Ubh.js → pie-XZMESJXO-68ykK6i1.js} +1 -1
  65. package/dist/web/assets/{pieDiagram-CAPJLFHJ-BWwroZF0.js → pieDiagram-CAPJLFHJ-DVOWjXQ_.js} +1 -1
  66. package/dist/web/assets/{quadrantDiagram-GDMTTRAM-Bed-IJzF.js → quadrantDiagram-GDMTTRAM-8la_R53U.js} +1 -1
  67. package/dist/web/assets/{radar-ABXABTNO-tWpV6-LZ.js → radar-ABXABTNO-K00ZGu13.js} +1 -1
  68. package/dist/web/assets/{railroad-I3PHUGI6-CNkld5cD.js → railroad-I3PHUGI6-W7QuDysT.js} +1 -1
  69. package/dist/web/assets/railroad-abnf-LNEFI6M7-DR6CNkaK.js +1 -0
  70. package/dist/web/assets/railroad-ebnf-DWYD2UWJ-dAhaGv5L.js +1 -0
  71. package/dist/web/assets/railroad-peg-JR7BVNR7-DwoiiDdE.js +1 -0
  72. package/dist/web/assets/{railroadDiagram-SM67HX2B-rLIEy8To.js → railroadDiagram-SM67HX2B-BuSjCs02.js} +1 -1
  73. package/dist/web/assets/{requirementDiagram-X7JNWC4A-CzO_xeQL.js → requirementDiagram-X7JNWC4A-3uq8m_5E.js} +1 -1
  74. package/dist/web/assets/{sankeyDiagram-UM26HJRW-CdLc_GIA.js → sankeyDiagram-UM26HJRW-BB9_G8bN.js} +1 -1
  75. package/dist/web/assets/{sequenceDiagram-ZO4K6R2Y-DkdBkKih.js → sequenceDiagram-ZO4K6R2Y-CGehVq9k.js} +1 -1
  76. package/dist/web/assets/{stateDiagram-v2-TBUQTH76-BsquMfaw.js → stateDiagram-v2-TBUQTH76-CwMywh5s.js} +1 -1
  77. package/dist/web/assets/{swimlanes-N4OXWK64-C_8MXhyY.js → swimlanes-N4OXWK64-CqjihurI.js} +1 -1
  78. package/dist/web/assets/swimlanesDiagram-K3J5GTZL-Blk5ohUI.js +8 -0
  79. package/dist/web/assets/{timeline-definition-YOQAKGHF-BtRhHXyO.js → timeline-definition-YOQAKGHF-BtKnuY5Y.js} +1 -1
  80. package/dist/web/assets/{treeView-D4JQ5SDB-DCMsZgAL.js → treeView-D4JQ5SDB-Dy4jC4wa.js} +1 -1
  81. package/dist/web/assets/{treemap-SAJKECNS-muc1fkoy.js → treemap-SAJKECNS-CHtGJD8P.js} +1 -1
  82. package/dist/web/assets/{usecaseDiagram-VIAY4XPW-DlZKQaUD.js → usecaseDiagram-VIAY4XPW-BjnstWbR.js} +1 -1
  83. package/dist/web/assets/{vennDiagram-BLWOH2XV-Cy1pAcho.js → vennDiagram-BLWOH2XV-o_EtJWVA.js} +1 -1
  84. package/dist/web/assets/{wardley-7MLQ67FV-B37ZhTEN.js → wardley-7MLQ67FV-BTheL3FW.js} +1 -1
  85. package/dist/web/assets/{wardleyDiagram-YMQ3BMBF-DMv_ZspH.js → wardleyDiagram-YMQ3BMBF-Bp_sv2v4.js} +1 -1
  86. package/dist/web/assets/{xychartDiagram-TAQBALBS-CX6XcKJF.js → xychartDiagram-TAQBALBS-C0IpEfij.js} +1 -1
  87. package/dist/web/index.html +1 -1
  88. package/package.json +1 -1
  89. package/dist/web/assets/architecture-WOLXFQ4H-BCKCAwkI.js +0 -1
  90. package/dist/web/assets/channel-D7DUUhmi.js +0 -1
  91. package/dist/web/assets/eventmodeling-K75KTNOO-B-plTbqi.js +0 -1
  92. package/dist/web/assets/flowDiagram-OXPTDLAJ-DTbcoyUa.js +0 -1
  93. package/dist/web/assets/railroad-abnf-LNEFI6M7-Df-2WEt4.js +0 -1
  94. package/dist/web/assets/railroad-ebnf-DWYD2UWJ-3gt1XuvL.js +0 -1
  95. package/dist/web/assets/railroad-peg-JR7BVNR7-DY62hLDp.js +0 -1
  96. package/dist/web/assets/swimlanesDiagram-K3J5GTZL-CmiMZQUc.js +0 -8
@@ -1,4 +1,4 @@
1
1
  [diffend] Oversized file quarantined before diffing.
2
2
  name: package/dist/pi-outpost.sea.mjs
3
- size: 38385952 bytes
4
- sha256: 49f2927fe49db87f65df2e4c4926fac71129e92b394eb497249fe6e67ff70bf1
3
+ size: 38386180 bytes
4
+ sha256: 5dd3975707387d78afef8c9d81c9ae669fd9c80ce088d0c4a8255dac3144f473
@@ -1,4 +1,4 @@
1
1
  [diffend] Oversized file quarantined before diffing.
2
2
  name: package/dist/sea-prep.blob
3
- size: 38384990 bytes
4
- sha256: 642f2c1e5a8e30da9e94bf39573a87344e57360043f5f69d6136016b30c6f2df
3
+ size: 38385218 bytes
4
+ sha256: ee8f6c6d18b4c2713ab8648883b4ef96b45053bcf34a065c7e8ad4d2ea624257
@@ -1,6 +1,8 @@
1
1
  # The enriched contract: `urn:structured-exchange:2`
2
2
 
3
+ <!-- only: pi-outpost -->
3
4
  Part of the `structured-exchange` skill. What a project's profile refuses, and what to do about it, is in its `SKILL.md`.
5
+ <!-- end -->
4
6
 
5
7
  Everything in `SKILL.md` is version 1 and still works exactly as written. Declare version 2
6
8
  instead when you need any of what follows. Nothing is removed: change the identifier and
@@ -108,6 +108,8 @@ leaving the reader to rebuild each one from the key:
108
108
  - **Something with no kind survives every viewpoint.** If an element must drop out of a
109
109
  reading, give it a kind.
110
110
 
111
+ <!-- only: pi-outpost -->
111
112
  When you write a report with one chapter per reading, write one figure per viewpoint:
112
113
  `write_structure_figure` with `viewpoint: "power"`. Do not rebuild the same selection
113
114
  from hide lists — the viewpoint carries both the selection and the reason for it.
115
+ <!-- end -->
@@ -53,7 +53,10 @@ line taken from the reader's own date.
53
53
  not satisfied**, not refused — tell the user, do not move dates to hide it. A cycle
54
54
  is refused.
55
55
  - A timeline is not a proposal: it has no `target`. To change one, present the whole
56
- revised timeline again. `write_structure_table` refuses it.
56
+ revised timeline again.
57
+ <!-- only: pi-outpost -->
58
+ `write_structure_table` refuses it.
59
+ <!-- end -->
57
60
  - **Choose `time.scale` for the plan's length**: `week` for a few months (a test campaign),
58
61
  `month` for a year or two, `quarter` beyond (a multi-year programme). It is only the scale
59
62
  the plan opens at — the reader can switch to another or fit it to the screen — and it moves
@@ -62,6 +65,7 @@ line taken from the reader's own date.
62
65
  `label` and `kind`, e.g. `"fermeture"`) are drawn as bands across every row, and `references`
63
66
  (`date`, `label`, optional `kind`, e.g. a contractual date) as named lines. They constrain
64
67
  nothing. A period may run past the plan's range (drawn clipped); a reference must fall inside it.
68
+ <!-- only: pi-outpost -->
65
69
  - **To show what changed between two versions of a plan**, keep each version as its own
66
70
  timeline file and call `compare_timelines` with the previous and the current one — never
67
71
  work out the shifts yourself. It pairs tasks and items by `id`, so give every item an `id`
@@ -80,3 +84,4 @@ line taken from the reader's own date.
80
84
  with the day it is written (`reference_line: "none"` leaves it out), because the file
81
85
  outlives that day. Graph options (`hide_element_kinds`, `viewpoint`…) are refused for a
82
86
  timeline.
87
+ <!-- end -->
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/pdf-m05k_iyp.js","assets/index-BPZIbtuG.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/index-DcqvxkHN.css"])))=>i.map(i=>d[i]);
2
- import{A as e,D as t,T as n,n as r,r as i,w as a}from"./index-BPZIbtuG.js";var o=e();function s(e,t){if(e<=0)return[];let n=Math.min(Math.max(Math.round(t),1),e),r=[n],i=n-1,a=n+1;for(;i>=1||a<=e;)i>=1&&r.push(i--),a<=e&&r.push(a++);return r}function c(e,t,n,r,i=()=>new Promise(e=>setTimeout(e,0))){let a=!1,o=s(e.numPages,t);return(async()=>{for(let t of o){if(a)return;let r;try{r=await e.getPageText(t)}catch{r=``}if(a)return;n(t,r),await i()}a||r()})(),{cancel:()=>{a=!0}}}function l(e,t,n){if(n===``)return[];let i=[];for(let a=1;a<=t;a++){let t=e.get(a);if(t===void 0)continue;let o=r(t,n);for(let e=0;e<o.length;e++)i.push({page:a,ordinalOnPage:e})}return i}var u=n(),d=[.5,.75,1,1.25,1.5,2,3];function f(e){return e>=1048576?`${Math.round(e/1048576)} MB`:`${Math.round(e/1024)} KB`}function p(e){switch(e.kind){case`too-large`:return e.limitBytes===void 0?`This PDF is larger than the server's PDF limit.`:`This PDF is larger than the ${f(e.limitBytes)} limit the server allows.`;case`encrypted`:return`This PDF is password-protected, so it cannot be displayed.`;case`not-found`:return`This file no longer exists.`;case`unauthorized`:return`This session is not authorized to read this file.`;case`unreadable`:return`This file could not be read as a PDF.`}}async function m(e,n,r,i){let a=await fetch(t(e,n,null,i),{headers:r?{Authorization:`Bearer ${r}`}:{}});if(!a.ok){if(a.status===413){let e=await a.json().catch(()=>({}));throw{kind:`too-large`,...typeof e.limit==`number`?{limitBytes:e.limit}:{}}}throw a.status===401||a.status===403?{kind:`unauthorized`}:a.status===404?{kind:`not-found`}:{kind:`unreadable`}}return new Uint8Array(await a.arrayBuffer())}var h=null;function g(){return h??=a(()=>import(`./pdf-m05k_iyp.js`),__vite__mapDeps([0,1,2,3])),h}async function _(e){let t=await g();t.GlobalWorkerOptions.workerSrc=new URL(`/assets/pdf.worker.min-CHFwMXne.mjs`,``+import.meta.url).toString();let n=t.getDocument({data:e,useWorkerFetch:!1,isOffscreenCanvasSupported:!1});try{return{doc:await n.promise,task:n}}catch(e){throw await n.destroy().catch(()=>{}),{kind:(e instanceof Error?e.name:``)===`PasswordException`?`encrypted`:`unreadable`}}}async function v(e,t,n,r){if(n!==null&&e.streamTextContent!==void 0){n.replaceChildren();try{let i=await g();n.style.setProperty(`--total-scale-factor`,String(r)),await new i.TextLayer({textContentSource:await e.streamTextContent(),container:n,viewport:t}).render()}catch{n.replaceChildren()}}}function y(e){try{e?.cancel()}catch{}}function b(e){return typeof e==`object`&&!!e&&typeof e.kind==`string`}var x=1;function S({doc:e,pageNumber:t,scale:n,baseSize:r,active:i,registerSlot:a,onTextLayerReady:s}){let c=(0,o.useRef)(null),l=(0,o.useRef)(null),d=(0,o.useRef)(null),[f,p]=(0,o.useState)(!1),[m,h]=(0,o.useState)({width:r.width*n,height:r.height*n});return(0,o.useEffect)(()=>{h({width:r.width*n,height:r.height*n})},[r.width,r.height,n]),(0,o.useEffect)(()=>{if(!i)return;let r=!1,a=d.current;return y(a),(async()=>{try{let i=await e.getPage(t),o=i.getViewport({scale:n}),u=c.current;if(r||u===null||(await a?.promise.catch(()=>{}),r))return;h({width:o.width,height:o.height}),u.width=Math.floor(o.width),u.height=Math.floor(o.height);let f=i.render({canvas:u,viewport:o,annotationMode:0});if(d.current=f,await f.promise,r)return;await v(i,o,l.current,n),r||(p(!1),s?.(t,l.current))}catch(e){let t=e instanceof Error?e.name:``;!r&&t!==`RenderingCancelledException`&&p(!0)}})(),()=>{r=!0,y(d.current),s?.(t,null)}},[e,t,n,i]),(0,u.jsx)(`div`,{ref:e=>a(t,e),"data-page":t,className:`relative mx-auto mb-4 bg-white shadow last:mb-0`,style:{width:m.width,height:m.height},children:f?(0,u.jsxs)(`p`,{className:`absolute inset-0 flex items-center justify-center p-4 text-center text-xs text-red-600 dark:text-red-400`,children:[`Page `,t,` could not be rendered.`]}):i?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(`canvas`,{ref:c,className:`block h-full w-full`}),(0,u.jsx)(`div`,{ref:l,className:`pdf-text-layer`,"aria-hidden":!0})]}):null})}var C=(0,o.forwardRef)(function({path:e,serverUrl:t=``,token:n=null,revision:r=0,onLoaded:a,findQuery:s=``,onFindStateChange:f},h){let[g,v]=(0,o.useState)(null),[y,C]=(0,o.useState)(null),[w,T]=(0,o.useState)(1),[E,D]=(0,o.useState)(2),[O,k]=(0,o.useState)(null),A=(0,o.useRef)(null),j=(0,o.useRef)(new Map),[M,N]=(0,o.useState)(new Map),[P,F]=(0,o.useState)(!1),[I,L]=(0,o.useState)([]),[R,z]=(0,o.useState)(-1),B=(0,o.useRef)(null),V=(0,o.useRef)(!1),H=(0,o.useRef)(s),U=(0,o.useRef)(new Map),W=(0,o.useRef)(null),G=(0,o.useRef)([]),K=(0,o.useRef)(-1),q=(0,o.useRef)(s);(0,o.useEffect)(()=>{G.current=I},[I]),(0,o.useEffect)(()=>{K.current=R},[R]),(0,o.useEffect)(()=>{q.current=s},[s]);let J=(0,o.useCallback)(()=>{W.current?.result.clear(),W.current=null},[]),Y=(0,o.useCallback)((e,t)=>{J();let n=i(t,q.current);W.current={page:e.page,result:n};let r=n.matches[e.ordinalOnPage]?.marks??[];for(let e of r)e.classList.add(`find-match-current`);r[0]?.scrollIntoView({block:`center`})},[J]),X=(0,o.useCallback)((e,t)=>{if(t===null){U.current.delete(e);return}U.current.set(e,t);let n=G.current[K.current];n!==void 0&&n.page===e&&Y(n,t)},[Y]);(0,o.useEffect)(()=>{let i=!1,o=null;return v(null),C(null),T(1),k(null),B.current?.cancel(),B.current=null,V.current=!1,N(new Map),F(!1),L([]),z(-1),J(),U.current.clear(),(async()=>{try{let{doc:s,task:c}=await _(await m(t,e,n,r));if(o=c,i){await c.destroy().catch(()=>{});return}try{let e=(await s.getPage(1)).getViewport({scale:1});i||k({width:e.width,height:e.height})}catch{i||k({width:612,height:792})}if(i)return;v(s),a?.(e)}catch(e){i||C(b(e)?e:{kind:`unreadable`})}})(),()=>{i=!0,o?.destroy().catch(()=>{})}},[e,t,n,r]);let Z=g?.numPages??0,Q=(0,o.useCallback)((e,t)=>{t===null?j.current.delete(e):j.current.set(e,t)},[]);(0,o.useEffect)(()=>{if(g===null||s===``||V.current)return;V.current=!0,F(!0);let e=g,t={numPages:e.numPages,getPageText:async t=>{let n=await e.getPage(t);return n.getTextContent===void 0?``:(await n.getTextContent()).items.map(e=>typeof e.str==`string`?e.str:``).join(``)}};B.current=c(t,w,(e,t)=>N(n=>{let r=new Map(n);return r.set(e,t),r}),()=>F(!1))},[g,s]),(0,o.useEffect)(()=>()=>{B.current?.cancel(),B.current=null},[g]),(0,o.useEffect)(()=>{let e=l(M,g?.numPages??0,s),t=s!==H.current;H.current=s,L(e),z(n=>e.length===0?-1:t||n===-1?0:Math.min(n,e.length-1))},[M,s,g]),(0,o.useEffect)(()=>{if(R===-1||I.length===0){J();return}let e=I[R];if(W.current!==null&&W.current.page!==e.page&&J(),Math.abs(e.page-w)>x){$(e.page);return}let t=U.current.get(e.page);t!==void 0&&Y(e,t)},[R,I]),(0,o.useImperativeHandle)(h,()=>({findNext(){G.current.length!==0&&z(e=>(e+1)%G.current.length)},findPrevious(){G.current.length!==0&&z(e=>(e-1+G.current.length)%G.current.length)}}),[]),(0,o.useEffect)(()=>{f?.({matchCount:I.length,currentIndex:R,searching:P})},[I.length,R,P]),(0,o.useEffect)(()=>{if(g===null||typeof IntersectionObserver>`u`)return;let e=A.current;if(e===null)return;let t=new IntersectionObserver(e=>{for(let t of e){if(!t.isIntersecting)continue;let e=Number(t.target.dataset.page);Number.isFinite(e)&&T(e)}},{root:e,rootMargin:`-45% 0px -45% 0px`,threshold:0});for(let e of j.current.values())t.observe(e);return()=>t.disconnect()},[g,Z]);let $=(0,o.useCallback)(e=>{e<1||e>Z||(T(e),j.current.get(e)?.scrollIntoView({block:`start`}))},[Z]);return y===null?g===null?(0,u.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,u.jsx)(`p`,{className:`text-sm text-zinc-500`,children:`Loading PDF…`})}):(0,u.jsxs)(`div`,{className:`flex h-full flex-col`,onKeyDown:e=>{if(e.key===`PageDown`||e.key===`ArrowRight`)$(w+1);else if(e.key===`PageUp`||e.key===`ArrowLeft`)$(w-1);else return;e.preventDefault()},children:[(0,u.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-zinc-200 px-3 py-2 text-xs dark:border-zinc-800`,children:[(0,u.jsx)(`button`,{type:`button`,onClick:()=>$(w-1),disabled:w<=1,"aria-label":`Previous page`,className:`rounded px-2 py-1 hover:bg-zinc-100 disabled:opacity-40 dark:hover:bg-zinc-800`,children:`‹`}),(0,u.jsxs)(`span`,{className:`tabular-nums text-zinc-600 dark:text-zinc-400`,children:[`Page `,w,` / `,Z]}),(0,u.jsx)(`button`,{type:`button`,onClick:()=>$(w+1),disabled:w>=Z,"aria-label":`Next page`,className:`rounded px-2 py-1 hover:bg-zinc-100 disabled:opacity-40 dark:hover:bg-zinc-800`,children:`›`}),(0,u.jsxs)(`span`,{className:`ml-auto flex items-center gap-1`,children:[(0,u.jsx)(`button`,{type:`button`,onClick:()=>D(e=>Math.max(0,e-1)),disabled:E===0,"aria-label":`Zoom out`,className:`rounded px-2 py-1 hover:bg-zinc-100 disabled:opacity-40 dark:hover:bg-zinc-800`,children:`−`}),(0,u.jsxs)(`span`,{className:`tabular-nums text-zinc-500`,children:[Math.round(d[E]*100),`%`]}),(0,u.jsx)(`button`,{type:`button`,onClick:()=>D(e=>Math.min(d.length-1,e+1)),disabled:E===d.length-1,"aria-label":`Zoom in`,className:`rounded px-2 py-1 hover:bg-zinc-100 disabled:opacity-40 dark:hover:bg-zinc-800`,children:`+`})]})]}),(0,u.jsx)(`div`,{ref:A,className:`flex-1 overflow-auto bg-zinc-100 p-4 dark:bg-zinc-950`,children:O!==null&&Array.from({length:Z},(e,t)=>t+1).map(e=>(0,u.jsx)(S,{doc:g,pageNumber:e,scale:d[E],baseSize:O,active:Math.abs(e-w)<=x,registerSlot:Q,onTextLayerReady:X},e))})]}):(0,u.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,u.jsx)(`p`,{className:`max-w-md text-center text-sm text-zinc-600 dark:text-zinc-400`,children:p(y)})})});export{C as PdfViewer,C as default};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/pdf-C3f6Vjz7.js","assets/index-eTp_lQUc.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/index-DcqvxkHN.css"])))=>i.map(i=>d[i]);
2
+ import{A as e,D as t,T as n,n as r,r as i,w as a}from"./index-eTp_lQUc.js";var o=e();function s(e,t){if(e<=0)return[];let n=Math.min(Math.max(Math.round(t),1),e),r=[n],i=n-1,a=n+1;for(;i>=1||a<=e;)i>=1&&r.push(i--),a<=e&&r.push(a++);return r}function c(e,t,n,r,i=()=>new Promise(e=>setTimeout(e,0))){let a=!1,o=s(e.numPages,t);return(async()=>{for(let t of o){if(a)return;let r;try{r=await e.getPageText(t)}catch{r=``}if(a)return;n(t,r),await i()}a||r()})(),{cancel:()=>{a=!0}}}function l(e,t,n){if(n===``)return[];let i=[];for(let a=1;a<=t;a++){let t=e.get(a);if(t===void 0)continue;let o=r(t,n);for(let e=0;e<o.length;e++)i.push({page:a,ordinalOnPage:e})}return i}var u=n(),d=[.5,.75,1,1.25,1.5,2,3];function f(e){return e>=1048576?`${Math.round(e/1048576)} MB`:`${Math.round(e/1024)} KB`}function p(e){switch(e.kind){case`too-large`:return e.limitBytes===void 0?`This PDF is larger than the server's PDF limit.`:`This PDF is larger than the ${f(e.limitBytes)} limit the server allows.`;case`encrypted`:return`This PDF is password-protected, so it cannot be displayed.`;case`not-found`:return`This file no longer exists.`;case`unauthorized`:return`This session is not authorized to read this file.`;case`unreadable`:return`This file could not be read as a PDF.`}}async function m(e,n,r,i){let a=await fetch(t(e,n,null,i),{headers:r?{Authorization:`Bearer ${r}`}:{}});if(!a.ok){if(a.status===413){let e=await a.json().catch(()=>({}));throw{kind:`too-large`,...typeof e.limit==`number`?{limitBytes:e.limit}:{}}}throw a.status===401||a.status===403?{kind:`unauthorized`}:a.status===404?{kind:`not-found`}:{kind:`unreadable`}}return new Uint8Array(await a.arrayBuffer())}var h=null;function g(){return h??=a(()=>import(`./pdf-C3f6Vjz7.js`),__vite__mapDeps([0,1,2,3])),h}async function _(e){let t=await g();t.GlobalWorkerOptions.workerSrc=new URL(`/assets/pdf.worker.min-CHFwMXne.mjs`,``+import.meta.url).toString();let n=t.getDocument({data:e,useWorkerFetch:!1,isOffscreenCanvasSupported:!1});try{return{doc:await n.promise,task:n}}catch(e){throw await n.destroy().catch(()=>{}),{kind:(e instanceof Error?e.name:``)===`PasswordException`?`encrypted`:`unreadable`}}}async function v(e,t,n,r){if(n!==null&&e.streamTextContent!==void 0){n.replaceChildren();try{let i=await g();n.style.setProperty(`--total-scale-factor`,String(r)),await new i.TextLayer({textContentSource:await e.streamTextContent(),container:n,viewport:t}).render()}catch{n.replaceChildren()}}}function y(e){try{e?.cancel()}catch{}}function b(e){return typeof e==`object`&&!!e&&typeof e.kind==`string`}var x=1;function S({doc:e,pageNumber:t,scale:n,baseSize:r,active:i,registerSlot:a,onTextLayerReady:s}){let c=(0,o.useRef)(null),l=(0,o.useRef)(null),d=(0,o.useRef)(null),[f,p]=(0,o.useState)(!1),[m,h]=(0,o.useState)({width:r.width*n,height:r.height*n});return(0,o.useEffect)(()=>{h({width:r.width*n,height:r.height*n})},[r.width,r.height,n]),(0,o.useEffect)(()=>{if(!i)return;let r=!1,a=d.current;return y(a),(async()=>{try{let i=await e.getPage(t),o=i.getViewport({scale:n}),u=c.current;if(r||u===null||(await a?.promise.catch(()=>{}),r))return;h({width:o.width,height:o.height}),u.width=Math.floor(o.width),u.height=Math.floor(o.height);let f=i.render({canvas:u,viewport:o,annotationMode:0});if(d.current=f,await f.promise,r)return;await v(i,o,l.current,n),r||(p(!1),s?.(t,l.current))}catch(e){let t=e instanceof Error?e.name:``;!r&&t!==`RenderingCancelledException`&&p(!0)}})(),()=>{r=!0,y(d.current),s?.(t,null)}},[e,t,n,i]),(0,u.jsx)(`div`,{ref:e=>a(t,e),"data-page":t,className:`relative mx-auto mb-4 bg-white shadow last:mb-0`,style:{width:m.width,height:m.height},children:f?(0,u.jsxs)(`p`,{className:`absolute inset-0 flex items-center justify-center p-4 text-center text-xs text-red-600 dark:text-red-400`,children:[`Page `,t,` could not be rendered.`]}):i?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(`canvas`,{ref:c,className:`block h-full w-full`}),(0,u.jsx)(`div`,{ref:l,className:`pdf-text-layer`,"aria-hidden":!0})]}):null})}var C=(0,o.forwardRef)(function({path:e,serverUrl:t=``,token:n=null,revision:r=0,onLoaded:a,findQuery:s=``,onFindStateChange:f},h){let[g,v]=(0,o.useState)(null),[y,C]=(0,o.useState)(null),[w,T]=(0,o.useState)(1),[E,D]=(0,o.useState)(2),[O,k]=(0,o.useState)(null),A=(0,o.useRef)(null),j=(0,o.useRef)(new Map),[M,N]=(0,o.useState)(new Map),[P,F]=(0,o.useState)(!1),[I,L]=(0,o.useState)([]),[R,z]=(0,o.useState)(-1),B=(0,o.useRef)(null),V=(0,o.useRef)(!1),H=(0,o.useRef)(s),U=(0,o.useRef)(new Map),W=(0,o.useRef)(null),G=(0,o.useRef)([]),K=(0,o.useRef)(-1),q=(0,o.useRef)(s);(0,o.useEffect)(()=>{G.current=I},[I]),(0,o.useEffect)(()=>{K.current=R},[R]),(0,o.useEffect)(()=>{q.current=s},[s]);let J=(0,o.useCallback)(()=>{W.current?.result.clear(),W.current=null},[]),Y=(0,o.useCallback)((e,t)=>{J();let n=i(t,q.current);W.current={page:e.page,result:n};let r=n.matches[e.ordinalOnPage]?.marks??[];for(let e of r)e.classList.add(`find-match-current`);r[0]?.scrollIntoView({block:`center`})},[J]),X=(0,o.useCallback)((e,t)=>{if(t===null){U.current.delete(e);return}U.current.set(e,t);let n=G.current[K.current];n!==void 0&&n.page===e&&Y(n,t)},[Y]);(0,o.useEffect)(()=>{let i=!1,o=null;return v(null),C(null),T(1),k(null),B.current?.cancel(),B.current=null,V.current=!1,N(new Map),F(!1),L([]),z(-1),J(),U.current.clear(),(async()=>{try{let{doc:s,task:c}=await _(await m(t,e,n,r));if(o=c,i){await c.destroy().catch(()=>{});return}try{let e=(await s.getPage(1)).getViewport({scale:1});i||k({width:e.width,height:e.height})}catch{i||k({width:612,height:792})}if(i)return;v(s),a?.(e)}catch(e){i||C(b(e)?e:{kind:`unreadable`})}})(),()=>{i=!0,o?.destroy().catch(()=>{})}},[e,t,n,r]);let Z=g?.numPages??0,Q=(0,o.useCallback)((e,t)=>{t===null?j.current.delete(e):j.current.set(e,t)},[]);(0,o.useEffect)(()=>{if(g===null||s===``||V.current)return;V.current=!0,F(!0);let e=g,t={numPages:e.numPages,getPageText:async t=>{let n=await e.getPage(t);return n.getTextContent===void 0?``:(await n.getTextContent()).items.map(e=>typeof e.str==`string`?e.str:``).join(``)}};B.current=c(t,w,(e,t)=>N(n=>{let r=new Map(n);return r.set(e,t),r}),()=>F(!1))},[g,s]),(0,o.useEffect)(()=>()=>{B.current?.cancel(),B.current=null},[g]),(0,o.useEffect)(()=>{let e=l(M,g?.numPages??0,s),t=s!==H.current;H.current=s,L(e),z(n=>e.length===0?-1:t||n===-1?0:Math.min(n,e.length-1))},[M,s,g]),(0,o.useEffect)(()=>{if(R===-1||I.length===0){J();return}let e=I[R];if(W.current!==null&&W.current.page!==e.page&&J(),Math.abs(e.page-w)>x){$(e.page);return}let t=U.current.get(e.page);t!==void 0&&Y(e,t)},[R,I]),(0,o.useImperativeHandle)(h,()=>({findNext(){G.current.length!==0&&z(e=>(e+1)%G.current.length)},findPrevious(){G.current.length!==0&&z(e=>(e-1+G.current.length)%G.current.length)}}),[]),(0,o.useEffect)(()=>{f?.({matchCount:I.length,currentIndex:R,searching:P})},[I.length,R,P]),(0,o.useEffect)(()=>{if(g===null||typeof IntersectionObserver>`u`)return;let e=A.current;if(e===null)return;let t=new IntersectionObserver(e=>{for(let t of e){if(!t.isIntersecting)continue;let e=Number(t.target.dataset.page);Number.isFinite(e)&&T(e)}},{root:e,rootMargin:`-45% 0px -45% 0px`,threshold:0});for(let e of j.current.values())t.observe(e);return()=>t.disconnect()},[g,Z]);let $=(0,o.useCallback)(e=>{e<1||e>Z||(T(e),j.current.get(e)?.scrollIntoView({block:`start`}))},[Z]);return y===null?g===null?(0,u.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,u.jsx)(`p`,{className:`text-sm text-zinc-500`,children:`Loading PDF…`})}):(0,u.jsxs)(`div`,{className:`flex h-full flex-col`,onKeyDown:e=>{if(e.key===`PageDown`||e.key===`ArrowRight`)$(w+1);else if(e.key===`PageUp`||e.key===`ArrowLeft`)$(w-1);else return;e.preventDefault()},children:[(0,u.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-zinc-200 px-3 py-2 text-xs dark:border-zinc-800`,children:[(0,u.jsx)(`button`,{type:`button`,onClick:()=>$(w-1),disabled:w<=1,"aria-label":`Previous page`,className:`rounded px-2 py-1 hover:bg-zinc-100 disabled:opacity-40 dark:hover:bg-zinc-800`,children:`‹`}),(0,u.jsxs)(`span`,{className:`tabular-nums text-zinc-600 dark:text-zinc-400`,children:[`Page `,w,` / `,Z]}),(0,u.jsx)(`button`,{type:`button`,onClick:()=>$(w+1),disabled:w>=Z,"aria-label":`Next page`,className:`rounded px-2 py-1 hover:bg-zinc-100 disabled:opacity-40 dark:hover:bg-zinc-800`,children:`›`}),(0,u.jsxs)(`span`,{className:`ml-auto flex items-center gap-1`,children:[(0,u.jsx)(`button`,{type:`button`,onClick:()=>D(e=>Math.max(0,e-1)),disabled:E===0,"aria-label":`Zoom out`,className:`rounded px-2 py-1 hover:bg-zinc-100 disabled:opacity-40 dark:hover:bg-zinc-800`,children:`−`}),(0,u.jsxs)(`span`,{className:`tabular-nums text-zinc-500`,children:[Math.round(d[E]*100),`%`]}),(0,u.jsx)(`button`,{type:`button`,onClick:()=>D(e=>Math.min(d.length-1,e+1)),disabled:E===d.length-1,"aria-label":`Zoom in`,className:`rounded px-2 py-1 hover:bg-zinc-100 disabled:opacity-40 dark:hover:bg-zinc-800`,children:`+`})]})]}),(0,u.jsx)(`div`,{ref:A,className:`flex-1 overflow-auto bg-zinc-100 p-4 dark:bg-zinc-950`,children:O!==null&&Array.from({length:Z},(e,t)=>t+1).map(e=>(0,u.jsx)(S,{doc:g,pageNumber:e,scale:d[E],baseSize:O,active:Math.abs(e-w)<=x,registerSlot:Q,onTextLayerReady:X},e))})]}):(0,u.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,u.jsx)(`p`,{className:`max-w-md text-center text-sm text-zinc-600 dark:text-zinc-400`,children:p(y)})})});export{C as PdfViewer,C as default};
@@ -1 +1 @@
1
- import{m as e,t}from"./mermaid-parser.core-Da4ouQsR.js";import{n}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as r}from"./src-oBChb5qS.js";import"./chunk-VPRB5NB3-Cp_jyZQm.js";import{n as i,r as a,t as o}from"./chunk-AW2ZBBNX-CGyq4s2r.js";import{t as s}from"./chunk-JWPE2WC7-DVXcaiue.js";import"./mermaid.core-DN16F2wd.js";var c=e().RailroadAbnf.parser.LangiumParser,l=n(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=n(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=n(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),f=n(e=>{let t=p(e.primary);if(!e.repeat)return t;let{min:n,max:r}=d(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),p=n(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return l(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:l(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),m=n(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=n(e=>{s(e,o),e.title&&o.setTitle(e.title),e.rules.map(e=>o.addRule(m(e)))},`populateDb`),g={parser:{parse:n(e=>{o.clear(),r.debug(`[ABNF Parser] Starting Langium parse`);let n=c.parse(e);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new t(n);let i=n.value;r.debug(`[ABNF Parser] Parsed rules:`,i.rules.length),h(i),r.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:o}},db:o,renderer:a,styles:i};export{g as diagram};
1
+ import{m as e,t}from"./mermaid-parser.core-C18KmsD9.js";import{n}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as r}from"./src-oBChb5qS.js";import"./chunk-VPRB5NB3-BBDlNNll.js";import{n as i,r as a,t as o}from"./chunk-AW2ZBBNX-nmg5rsd5.js";import{t as s}from"./chunk-JWPE2WC7-DVXcaiue.js";import"./mermaid.core-C9srNL3b.js";var c=e().RailroadAbnf.parser.LangiumParser,l=n(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=n(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=n(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),f=n(e=>{let t=p(e.primary);if(!e.repeat)return t;let{min:n,max:r}=d(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),p=n(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return l(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:l(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),m=n(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=n(e=>{s(e,o),e.title&&o.setTitle(e.title),e.rules.map(e=>o.addRule(m(e)))},`populateDb`),g={parser:{parse:n(e=>{o.clear(),r.debug(`[ABNF Parser] Starting Langium parse`);let n=c.parse(e);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new t(n);let i=n.value;r.debug(`[ABNF Parser] Parsed rules:`,i.rules.length),h(i),r.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:o}},db:o,renderer:a,styles:i};export{g as diagram};
@@ -0,0 +1 @@
1
+ import"./chunk-NGNAAXSQ-BW1P8EP7.js";import{M as e}from"./mermaid-parser.core-C18KmsD9.js";export{e as createArchitectureServices};