@maycombhq/atticus 2.0.0-beta.2 → 2.0.0-beta.22

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 (284) hide show
  1. package/dist/bin.js +8 -4
  2. package/dist/chunk-23XVSEV5.js +49 -0
  3. package/dist/{chunk-ZDPAS56H.js → chunk-24OXGB3P.js} +8 -2
  4. package/dist/{chunk-7EOBHUMC.js → chunk-24XLDU72.js} +4 -3
  5. package/dist/{chunk-CR3MTH32.js → chunk-2F4CYZKJ.js} +86 -11
  6. package/dist/{chunk-6IU67AEK.js → chunk-2GF7OLF3.js} +23 -15
  7. package/dist/chunk-2IIMFOPM.js +41 -0
  8. package/dist/chunk-2LGRMVCA.js +617 -0
  9. package/dist/{chunk-XPCM366L.js → chunk-2MMCFP5C.js} +10 -8
  10. package/dist/{chunk-JBTK5OP2.js → chunk-2Q56PQPS.js} +6 -4
  11. package/dist/{chunk-Z6LF7HQN.js → chunk-2Q5EDGEO.js} +7 -5
  12. package/dist/{chunk-3USYZGRF.js → chunk-2RLKFUUL.js} +38 -27
  13. package/dist/chunk-2SKB4O2E.js +59 -0
  14. package/dist/{chunk-SP2I63OO.js → chunk-34S2WGOB.js} +87 -4
  15. package/dist/{chunk-GQ4N4WKF.js → chunk-3NFFJL5D.js} +33 -27
  16. package/dist/{chunk-SJRGMG6A.js → chunk-3NWDLGG6.js} +28 -25
  17. package/dist/{chunk-4WBVUHXN.js → chunk-3RM4UK6W.js} +20 -18
  18. package/dist/chunk-42SIDKEU.js +583 -0
  19. package/dist/{chunk-GLUX4EEP.js → chunk-4EURQWQD.js} +20 -15
  20. package/dist/chunk-4U276ICE.js +39 -0
  21. package/dist/{chunk-ZMFPW66A.js → chunk-53T4O55J.js} +4 -3
  22. package/dist/{chunk-6J5OKA4Y.js → chunk-57TDNMI3.js} +17 -15
  23. package/dist/chunk-5BD2KYLE.js +57 -0
  24. package/dist/{chunk-7EFILTCI.js → chunk-5F7GFN2F.js} +28 -0
  25. package/dist/chunk-5NMKONLP.js +95 -0
  26. package/dist/{chunk-7ZUIMTOU.js → chunk-5SJZW52K.js} +26 -24
  27. package/dist/{chunk-4RS5KZQD.js → chunk-63YRMR6J.js} +6 -5
  28. package/dist/chunk-66PPNOON.js +62 -0
  29. package/dist/chunk-6H3Z5JHH.js +64 -0
  30. package/dist/{chunk-CEXSU4S6.js → chunk-6MUGR4LS.js} +775 -89
  31. package/dist/{chunk-QSXK2RGH.js → chunk-6OJQOPUN.js} +5 -3
  32. package/dist/{chunk-MVZVGYXH.js → chunk-6PPOWY5E.js} +84 -14
  33. package/dist/{chunk-7EKXJZ2Y.js → chunk-6ZGLAACW.js} +299 -38
  34. package/dist/chunk-6ZJ5A7AF.js +222 -0
  35. package/dist/{chunk-L24C55VN.js → chunk-745DAZ4L.js} +142 -30
  36. package/dist/{chunk-Q4D5X7QB.js → chunk-7ASNL4Q4.js} +46 -24
  37. package/dist/chunk-7BR7IPOH.js +35 -0
  38. package/dist/{chunk-7WD63HU2.js → chunk-7DOR27HL.js} +6 -6
  39. package/dist/chunk-7FTTA3HD.js +341 -0
  40. package/dist/{chunk-OLQJTJJU.js → chunk-7GJS6DNX.js} +12 -3
  41. package/dist/{chunk-7JUKDRSZ.js → chunk-7IGKHZ4Z.js} +347 -226
  42. package/dist/{chunk-G2B4ZQGH.js → chunk-7IOWA5D5.js} +11 -6
  43. package/dist/{chunk-EBEW3XXQ.js → chunk-7JITZFJC.js} +7 -5
  44. package/dist/chunk-7MJSQTL5.js +174 -0
  45. package/dist/{chunk-I4JRCD6M.js → chunk-7UOMVMFG.js} +25 -17
  46. package/dist/{chunk-YY6ZQQBP.js → chunk-AFWUDXEM.js} +19 -7
  47. package/dist/chunk-AFZ3QA6W.js +47 -0
  48. package/dist/chunk-AJQ72EBM.js +420 -0
  49. package/dist/chunk-AJYXNTNZ.js +317 -0
  50. package/dist/chunk-AVTBS4OW.js +49 -0
  51. package/dist/{chunk-FHH4I4ZV.js → chunk-BDKC6H5P.js} +12 -6
  52. package/dist/{chunk-IPKHE5D6.js → chunk-BEVTIBRH.js} +1526 -875
  53. package/dist/chunk-BHT7QK4G.js +162 -0
  54. package/dist/{chunk-6JUBZBMW.js → chunk-BIGDQDHD.js} +6 -4
  55. package/dist/{chunk-2BFCZ3RK.js → chunk-BO4KX37X.js} +20 -18
  56. package/dist/chunk-BPK5P77O.js +115 -0
  57. package/dist/chunk-BQ4SQQC6.js +59 -0
  58. package/dist/chunk-BQGDB6ZL.js +7342 -0
  59. package/dist/{chunk-2ANOROX3.js → chunk-BTGPE6CR.js} +11 -9
  60. package/dist/chunk-BTY3HZBO.js +93 -0
  61. package/dist/{chunk-DPZHZQKE.js → chunk-BXYMYEJ4.js} +44 -10
  62. package/dist/{chunk-2RMYG36Q.js → chunk-C3RY6KU6.js} +309 -346
  63. package/dist/chunk-C4R4JLHE.js +40 -0
  64. package/dist/chunk-CADWLE2T.js +18 -0
  65. package/dist/chunk-CBGGOQWU.js +82 -0
  66. package/dist/chunk-CMDXGQTS.js +47 -0
  67. package/dist/{chunk-MC3H7736.js → chunk-CQDGOPGH.js} +58 -18
  68. package/dist/{chunk-HFQCFSJR.js → chunk-CX4RZ2KS.js} +4 -3
  69. package/dist/{chunk-PAMPPUR6.js → chunk-CXJ6FUKN.js} +1852 -207
  70. package/dist/{chunk-ABWHYWNI.js → chunk-D73UEXYW.js} +3 -3
  71. package/dist/chunk-DCZWQLYT.js +1205 -0
  72. package/dist/chunk-DLOBCJL6.js +48 -0
  73. package/dist/{chunk-4BN53TG3.js → chunk-DOBQKHIF.js} +31 -23
  74. package/dist/chunk-E3ISYXO3.js +423 -0
  75. package/dist/{chunk-7SW2QWLU.js → chunk-E6ZIEVOI.js} +16 -13
  76. package/dist/chunk-EBL2R3YG.js +43 -0
  77. package/dist/{chunk-AIOQPLA5.js → chunk-EGQRREQH.js} +41 -15
  78. package/dist/chunk-EHA7RMZ3.js +58 -0
  79. package/dist/{chunk-M766ZJ6W.js → chunk-EIPTLPFC.js} +38 -27
  80. package/dist/chunk-EMRIQUND.js +517 -0
  81. package/dist/{chunk-DFBCSHVT.js → chunk-EPCJQQWD.js} +6 -4
  82. package/dist/{chunk-RZPYKDWS.js → chunk-F3P7N7SF.js} +1 -1
  83. package/dist/{chunk-R77KLRB3.js → chunk-FFLNS6VP.js} +21 -18
  84. package/dist/chunk-FFTRTL6R.js +26 -0
  85. package/dist/{chunk-IHMLFRVV.js → chunk-FPJPLKDW.js} +62 -16
  86. package/dist/{chunk-JCZIKA4C.js → chunk-FSMSFDLD.js} +5 -4
  87. package/dist/{chunk-AVJDSJ2F.js → chunk-FUJM6RTF.js} +8 -7
  88. package/dist/chunk-FZOJFH7Q.js +132 -0
  89. package/dist/{chunk-QRAOANID.js → chunk-G6X77UJZ.js} +23 -21
  90. package/dist/{chunk-3ALD2W2A.js → chunk-GCWRWSU7.js} +10 -4
  91. package/dist/chunk-GIW4ZVDB.js +39 -0
  92. package/dist/{chunk-B2WLAWNJ.js → chunk-GUX3PTYM.js} +3 -3
  93. package/dist/{chunk-DPUYDDQG.js → chunk-GZY6RUZ6.js} +25 -3
  94. package/dist/chunk-H4VO6WG3.js +10 -0
  95. package/dist/{chunk-MMOSZPWJ.js → chunk-H5HBGNXU.js} +5 -4
  96. package/dist/chunk-H7KM7LZE.js +229 -0
  97. package/dist/{chunk-AA6YULYB.js → chunk-HNM2YQT2.js} +7 -7
  98. package/dist/{chunk-3C7EYRFZ.js → chunk-HYU5VLGA.js} +1 -1
  99. package/dist/{chunk-XY3P7JW7.js → chunk-IDKCWSM5.js} +1032 -172
  100. package/dist/chunk-IFKEI4SA.js +237 -0
  101. package/dist/{chunk-F7HYOUFF.js → chunk-IGOE6KPG.js} +67 -22
  102. package/dist/{chunk-TDD55CJH.js → chunk-IH2XURVQ.js} +6 -5
  103. package/dist/chunk-INQHESFB.js +38 -0
  104. package/dist/chunk-IP74LCOQ.js +57 -0
  105. package/dist/chunk-IPHHDDC6.js +45 -0
  106. package/dist/{chunk-T6AIP7H5.js → chunk-ISUAAMGS.js} +110 -153
  107. package/dist/{chunk-A7UPUQFY.js → chunk-IUPG3UKI.js} +624 -319
  108. package/dist/{chunk-L6SGQIR3.js → chunk-IVBOQAGB.js} +7 -3
  109. package/dist/{chunk-27NKUS3X.js → chunk-J2JAKCIW.js} +2205 -796
  110. package/dist/{chunk-V2YTAIQO.js → chunk-J3IOLXWM.js} +24 -7
  111. package/dist/chunk-JA5FI3QV.js +142 -0
  112. package/dist/chunk-JAVI7JSP.js +49 -0
  113. package/dist/{chunk-HLJAXMM4.js → chunk-JB5LINEM.js} +6 -2
  114. package/dist/{chunk-2VHF7OXM.js → chunk-JENSEMXF.js} +1 -1
  115. package/dist/{chunk-6BVONWJ7.js → chunk-JJF6HALY.js} +4 -3
  116. package/dist/chunk-JLUCKAEL.js +38 -0
  117. package/dist/chunk-JRBFANFE.js +221 -0
  118. package/dist/{chunk-R6XF6UR3.js → chunk-KDNTAPLX.js} +4 -4
  119. package/dist/chunk-KFAVQZSX.js +33 -0
  120. package/dist/chunk-KJXD4PNL.js +50 -0
  121. package/dist/chunk-KN5BXMWN.js +44 -0
  122. package/dist/{chunk-PCVDV3UZ.js → chunk-KQGURXFU.js} +9 -7
  123. package/dist/{chunk-WY6PP6AA.js → chunk-KXITGYLF.js} +40 -6
  124. package/dist/{chunk-66YVAGGM.js → chunk-L27SV425.js} +22 -20
  125. package/dist/{chunk-NE2W3OO7.js → chunk-LDLL7LB3.js} +24 -22
  126. package/dist/chunk-LFGTYX5U.js +379 -0
  127. package/dist/{chunk-EYWIDJFU.js → chunk-LGBMTVNT.js} +7 -5
  128. package/dist/{chunk-Q5AMFEWD.js → chunk-LGFL54FP.js} +3 -2
  129. package/dist/{chunk-6TACQN3N.js → chunk-LJXMYKZJ.js} +7 -5
  130. package/dist/{chunk-BKVWTZ6A.js → chunk-LKOR5UET.js} +29 -26
  131. package/dist/chunk-LNBQOP7D.js +294 -0
  132. package/dist/{chunk-O3WI5KWW.js → chunk-LO6P2VYG.js} +2 -2
  133. package/dist/chunk-LQJPN536.js +122 -0
  134. package/dist/{chunk-YEDDOYSC.js → chunk-LYBNHMVZ.js} +29 -5
  135. package/dist/{chunk-A3GY6SOA.js → chunk-LZ7NUC62.js} +20 -18
  136. package/dist/chunk-M32BLWDH.js +37 -0
  137. package/dist/{chunk-VYDBJ73M.js → chunk-M3NANSDZ.js} +17 -15
  138. package/dist/chunk-MFHL5URL.js +31 -0
  139. package/dist/chunk-MFR5OPBD.js +109 -0
  140. package/dist/{chunk-DE76JROX.js → chunk-MG4ZL5RW.js} +32 -20
  141. package/dist/{chunk-N7IXEHK3.js → chunk-MO6P2JZH.js} +10 -8
  142. package/dist/{chunk-65NYPGRC.js → chunk-MUWDB4R4.js} +1 -1
  143. package/dist/chunk-MZCGSXVR.js +34 -0
  144. package/dist/{chunk-MGYZM27B.js → chunk-N3XIYPU3.js} +51 -23
  145. package/dist/chunk-NDCF4R6S.js +172 -0
  146. package/dist/{chunk-DHPACDG7.js → chunk-NR2UJWOC.js} +10 -8
  147. package/dist/chunk-NXJ5URP6.js +51 -0
  148. package/dist/{chunk-UNM6ZOKP.js → chunk-NY2XSR5K.js} +147 -18
  149. package/dist/{chunk-5GDRCDQB.js → chunk-O45HFTFS.js} +3 -2
  150. package/dist/{chunk-ONLS5QA5.js → chunk-O4GXGGBX.js} +14 -12
  151. package/dist/chunk-O5PXQR67.js +249 -0
  152. package/dist/{chunk-PRPPGYZG.js → chunk-O66DM6DJ.js} +6 -4
  153. package/dist/{chunk-KEM4SDDP.js → chunk-O7FDLW7L.js} +11 -8
  154. package/dist/{chunk-T2UYZSCQ.js → chunk-O7XLYEFA.js} +169 -29
  155. package/dist/{chunk-FITWGOJ2.js → chunk-OHNCWBKF.js} +4 -4
  156. package/dist/{chunk-652QWTLZ.js → chunk-OHVTTOPS.js} +3 -3
  157. package/dist/chunk-OMI6FPPN.js +43 -0
  158. package/dist/chunk-ONUPY3H6.js +53 -0
  159. package/dist/chunk-OTLDSZDV.js +69 -0
  160. package/dist/chunk-OUBGGKDU.js +22 -0
  161. package/dist/chunk-OWNCM4ZN.js +330 -0
  162. package/dist/{chunk-YISXLPHN.js → chunk-P2V7QW4D.js} +235 -35
  163. package/dist/{chunk-CNUKCS2T.js → chunk-P32RUW3B.js} +1632 -93
  164. package/dist/{chunk-BWZ77RQT.js → chunk-PAQ2AS5E.js} +1 -1
  165. package/dist/{chunk-ZMAINWBW.js → chunk-PBPBMP2B.js} +4 -3
  166. package/dist/{chunk-ZVM6AKKM.js → chunk-PJSJPMJI.js} +3 -3
  167. package/dist/{chunk-EFHQ3TWP.js → chunk-PKBHS4AA.js} +233 -56
  168. package/dist/{chunk-GT4I4ZWM.js → chunk-PMUAJGLI.js} +20 -16
  169. package/dist/chunk-PPD7HTDP.js +152 -0
  170. package/dist/chunk-PSOFBQWB.js +42 -0
  171. package/dist/{chunk-S2A7YC3Q.js → chunk-Q2TECDIT.js} +10694 -8896
  172. package/dist/chunk-Q4K5WB2W.js +42 -0
  173. package/dist/{chunk-UGLN7QHV.js → chunk-Q6DFNVRJ.js} +14 -12
  174. package/dist/chunk-QA4O2GGC.js +265 -0
  175. package/dist/chunk-QAXW2N3B.js +1216 -0
  176. package/dist/chunk-QBNWF5ZU.js +19 -0
  177. package/dist/chunk-QFWA2DPH.js +224 -0
  178. package/dist/{chunk-23W7VWKR.js → chunk-QKUJMING.js} +1363 -114
  179. package/dist/{chunk-NXFPS2LR.js → chunk-R44CYFPV.js} +16 -13
  180. package/dist/{chunk-CKSITVS4.js → chunk-R7NYHMUU.js} +2687 -786
  181. package/dist/chunk-REWWDVQB.js +162 -0
  182. package/dist/{chunk-JMSCMUCA.js → chunk-RGERPOIV.js} +145 -21
  183. package/dist/{chunk-6JCPI55B.js → chunk-RLDGWLQ7.js} +49 -7
  184. package/dist/chunk-RUGXBPWI.js +384 -0
  185. package/dist/{chunk-CPA6HPVR.js → chunk-RXPJMEOW.js} +18 -12
  186. package/dist/{chunk-3HI6Z55Y.js → chunk-S4PMJU6H.js} +339 -43
  187. package/dist/chunk-S5LSDXV4.js +40 -0
  188. package/dist/chunk-S7FCV7S5.js +51 -0
  189. package/dist/{chunk-5GGOLAKC.js → chunk-SDKLKB6I.js} +28 -26
  190. package/dist/chunk-SFSPGFCV.js +62 -0
  191. package/dist/{chunk-ZNCEKR4J.js → chunk-SFUP7TTO.js} +12 -8
  192. package/dist/{chunk-64EQYWCA.js → chunk-SLXZOMA6.js} +69 -19
  193. package/dist/chunk-SQV37XO2.js +273 -0
  194. package/dist/{chunk-K65BJIMT.js → chunk-SU74NDMQ.js} +19 -17
  195. package/dist/chunk-SYV5LHML.js +165 -0
  196. package/dist/chunk-T4YPZIQN.js +36 -0
  197. package/dist/chunk-T6DQR5TV.js +323 -0
  198. package/dist/{chunk-JIITQXFB.js → chunk-THDMSZ3R.js} +3075 -802
  199. package/dist/{chunk-JGZCG5VM.js → chunk-TNR75OXT.js} +7 -7
  200. package/dist/{chunk-D3PO4DOZ.js → chunk-TUULXQRW.js} +174 -15
  201. package/dist/chunk-TYQBFTBR.js +516 -0
  202. package/dist/chunk-U76OWS3Q.js +49 -0
  203. package/dist/{chunk-YYQN46FY.js → chunk-UCROWG2D.js} +27 -24
  204. package/dist/{chunk-6M5NK3K3.js → chunk-UF4AZOZB.js} +50 -10
  205. package/dist/chunk-UF4GLFBX.js +345 -0
  206. package/dist/{chunk-OT2O76OS.js → chunk-UGUP3ZM6.js} +240 -39
  207. package/dist/chunk-UNAGJYET.js +45 -0
  208. package/dist/{chunk-5WG5YP4T.js → chunk-UOR2DTHH.js} +16 -14
  209. package/dist/{chunk-S3QNRWYR.js → chunk-UPOY4YSQ.js} +14 -12
  210. package/dist/{chunk-EPTBZ3GP.js → chunk-UPS2DGFC.js} +1 -1
  211. package/dist/{chunk-4AK7IBVP.js → chunk-UUU4CLJG.js} +4 -2
  212. package/dist/{chunk-W3BQAZ3Q.js → chunk-UWMJKX5U.js} +14 -12
  213. package/dist/{chunk-QZSX3F7C.js → chunk-UWOJLHFT.js} +27 -23
  214. package/dist/chunk-VBTP56CE.js +535 -0
  215. package/dist/chunk-VCTWPLAO.js +211 -0
  216. package/dist/chunk-VNU26RCO.js +1215 -0
  217. package/dist/{chunk-CSZ4C5N6.js → chunk-VTZMAJ3W.js} +93 -10
  218. package/dist/{chunk-TXLH6WHQ.js → chunk-VW62D6QE.js} +14 -12
  219. package/dist/{chunk-CAQZUNOH.js → chunk-VY72R2XZ.js} +610 -3
  220. package/dist/{chunk-2DIQQJCB.js → chunk-VZALIKIF.js} +18 -15
  221. package/dist/{chunk-TYAID7B7.js → chunk-W62H2XSO.js} +25 -23
  222. package/dist/{chunk-HVUPKCGJ.js → chunk-W7VWI2YH.js} +9 -6
  223. package/dist/{chunk-TANFV3MZ.js → chunk-WERM6KPJ.js} +7 -4
  224. package/dist/{chunk-BOHJZTEQ.js → chunk-WF7B67YE.js} +208 -87
  225. package/dist/{chunk-7FBGJFEE.js → chunk-WG5U3F5V.js} +14 -12
  226. package/dist/{chunk-4NDAAFQT.js → chunk-WJF2CS6M.js} +8 -5
  227. package/dist/{chunk-XAKWMCXI.js → chunk-WKUJ3KPV.js} +4 -4
  228. package/dist/chunk-WMTRHUI5.js +103 -0
  229. package/dist/chunk-WNKPRSGI.js +36 -0
  230. package/dist/chunk-WXFLMQSR.js +223 -0
  231. package/dist/{chunk-RRTKKSLQ.js → chunk-X3WY6MN3.js} +8 -6
  232. package/dist/{chunk-ZCJDOK2S.js → chunk-X4CXA2IL.js} +47 -23
  233. package/dist/{chunk-UBBC2XSG.js → chunk-X5F3Q5LV.js} +560 -105
  234. package/dist/{chunk-C6EKFH7J.js → chunk-XD75VZIH.js} +9 -7
  235. package/dist/chunk-XERYFDB5.js +297 -0
  236. package/dist/chunk-XI2LCCYQ.js +420 -0
  237. package/dist/chunk-Y2EQNWKV.js +933 -0
  238. package/dist/{chunk-LR3R6Z2A.js → chunk-YHCMZC2J.js} +7 -7
  239. package/dist/chunk-YYY3AZFE.js +122 -0
  240. package/dist/{chunk-GDLULHTC.js → chunk-Z5IA3WDR.js} +19 -31
  241. package/dist/{chunk-T6XQL73F.js → chunk-ZFFYNRIO.js} +63 -23
  242. package/dist/{chunk-EDS2L2LD.js → chunk-ZFL7NY4F.js} +56 -27
  243. package/dist/{chunk-YMZ3TNYB.js → chunk-ZGULQAPZ.js} +7 -4
  244. package/dist/{chunk-4SKZDI62.js → chunk-ZIUFM5HT.js} +3 -1
  245. package/dist/{chunk-DKJA76CJ.js → chunk-ZJFRMSJT.js} +15 -13
  246. package/dist/chunk-ZJXLNDH4.js +239 -0
  247. package/dist/chunk-ZQ3ON2VQ.js +252 -0
  248. package/dist/{chunk-HITVBIJS.js → chunk-ZQ7SKESZ.js} +150 -415
  249. package/dist/{chunk-6QSERWXH.js → chunk-ZQXZ2SES.js} +24 -21
  250. package/dist/chunk-ZX57KSEQ.js +39 -0
  251. package/dist/{chunk-I3E7CX4H.js → chunk-ZZK56BLP.js} +5 -3
  252. package/dist/files.json +664 -368
  253. package/dist/packages/naysayer/constitution/constitution.yaml +19 -0
  254. package/dist/packages/sdk/npm/index.js +6194 -2542
  255. package/dist/packages/ui/dist/assets/{elk-api-tma0MCuh.js → elk-api-CIf-0gz5.js} +2 -2
  256. package/dist/packages/ui/dist/assets/index-CoK_Dl0D.js +47 -0
  257. package/dist/packages/ui/dist/assets/index-Dw20IRhQ.css +1 -0
  258. package/dist/packages/ui/dist/index.html +3 -2
  259. package/package.json +5 -5
  260. package/dist/chunk-2BF2EYJV.js +0 -174
  261. package/dist/chunk-42EVSKME.js +0 -37
  262. package/dist/chunk-4BKGMUIK.js +0 -53
  263. package/dist/chunk-5KLGBXG5.js +0 -48
  264. package/dist/chunk-6BNC6EQ4.js +0 -41
  265. package/dist/chunk-6D2CQ5II.js +0 -41
  266. package/dist/chunk-7AVHLZGD.js +0 -45
  267. package/dist/chunk-D46WUV3T.js +0 -33
  268. package/dist/chunk-E36QOJMD.js +0 -47
  269. package/dist/chunk-FQXYPF7E.js +0 -147
  270. package/dist/chunk-GBRFVT63.js +0 -45
  271. package/dist/chunk-ICY36XCH.js +0 -34
  272. package/dist/chunk-J4K3KVLD.js +0 -131
  273. package/dist/chunk-JZU3H6UQ.js +0 -54
  274. package/dist/chunk-NN2ZQEB4.js +0 -38
  275. package/dist/chunk-PCOCACY3.js +0 -385
  276. package/dist/chunk-RTEYOSJY.js +0 -29
  277. package/dist/chunk-RUVFXE2L.js +0 -666
  278. package/dist/chunk-RVH5SUW5.js +0 -69
  279. package/dist/chunk-VN3DP4LQ.js +0 -43
  280. package/dist/chunk-W5BVQF44.js +0 -36
  281. package/dist/chunk-WVPJSRRJ.js +0 -52
  282. package/dist/chunk-XPTOBS2D.js +0 -48
  283. package/dist/packages/ui/dist/assets/index-B54fm9FQ.js +0 -29
  284. package/dist/packages/ui/dist/assets/index-DD_hufQz.css +0 -1
@@ -5,13 +5,16 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
5
5
  var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
6
6
  import {
7
7
  parseXml
8
- } from "./chunk-MC3H7736.js";
8
+ } from "./chunk-CQDGOPGH.js";
9
9
  import {
10
+ JOINED_BY_PERSON,
10
11
  ZipError,
11
12
  peekZip,
12
- readZip,
13
+ readZip
14
+ } from "./chunk-Q2TECDIT.js";
15
+ import {
13
16
  require_dist
14
- } from "./chunk-S2A7YC3Q.js";
17
+ } from "./chunk-BQGDB6ZL.js";
15
18
  import {
16
19
  __toESM
17
20
  } from "./chunk-TV45EUGM.js";
@@ -92,9 +95,9 @@ function isoDate(value) {
92
95
  return !Number.isNaN(d.getTime()) && d.toISOString().startsWith(m[0]) ? m[0] : void 0;
93
96
  }
94
97
  function sourceDocument(fileName, content, docType, source, meta = {}) {
95
- const clean = (s) => s && s.trim() ? s.trim() : void 0;
96
- const version = clean(meta.version);
97
- const author = clean(meta.author);
98
+ const clean2 = (s) => s && s.trim() ? s.trim() : void 0;
99
+ const version = clean2(meta.version);
100
+ const author = clean2(meta.author);
98
101
  return {
99
102
  schemaVersion: 1,
100
103
  kind: "SourceDocument",
@@ -630,7 +633,7 @@ function reconcile(input) {
630
633
  add({
631
634
  key: i.id,
632
635
  type: "code-only",
633
- summary: `In code ${i.from} ${what} ${i.to}${i.sync === "async" ? "" : ` (${i.method ?? ""} ${i.normalizedPath}`.trimEnd() + ")"}${i.confidence === "inferred" ? ", seen at one end only" : ""}; the diagram doesn't show it.`,
636
+ summary: `In code ${i.from} ${what} ${i.to}${i.sync === "async" ? "" : ` (${i.method ?? ""} ${i.normalizedPath}`.trimEnd() + ")"}${i.confidence === "inferred" && !i.flags?.includes(JOINED_BY_PERSON) ? ", seen at one end only" : ""}; the diagram doesn't show it.`,
634
637
  records: [i.id],
635
638
  suggestion: {
636
639
  text: `Add it to the diagram, or record why it is left out`,
@@ -1739,7 +1742,7 @@ function readHtml(src) {
1739
1742
  }
1740
1743
  if (!meta.date)
1741
1744
  delete meta.date;
1742
- const clean = src.replace(/<!--[\s\S]*?-->/g, blank).replace(/<!\[CDATA\[[\s\S]*?\]\]>/g, blank).replace(/<![^>]*>|<\?[\s\S]*?\?>/g, blank).replace(/<(script|style|noscript|template|svg)\b[\s\S]*?<\/\1\s*>/gi, blank).replace(/<head\b[\s\S]*?<\/head\s*>/gi, blank);
1745
+ const clean2 = src.replace(/<!--[\s\S]*?-->/g, blank).replace(/<!\[CDATA\[[\s\S]*?\]\]>/g, blank).replace(/<![^>]*>|<\?[\s\S]*?\?>/g, blank).replace(/<(script|style|noscript|template|svg)\b[\s\S]*?<\/\1\s*>/gi, blank).replace(/<head\b[\s\S]*?<\/head\s*>/gi, blank);
1743
1746
  const s = new Sections();
1744
1747
  const tables = [];
1745
1748
  let line = "";
@@ -1752,7 +1755,7 @@ function readHtml(src) {
1752
1755
  let lineNo = 1;
1753
1756
  const lineAt = (to) => {
1754
1757
  for (; pos < to; pos++)
1755
- if (clean.charCodeAt(pos) === 10)
1758
+ if (clean2.charCodeAt(pos) === 10)
1756
1759
  lineNo++;
1757
1760
  return lineNo;
1758
1761
  };
@@ -1779,8 +1782,8 @@ function readHtml(src) {
1779
1782
  line += t;
1780
1783
  }
1781
1784
  };
1782
- for (let m = tag.exec(clean); m; m = tag.exec(clean)) {
1783
- text(clean.slice(last, m.index), last);
1785
+ for (let m = tag.exec(clean2); m; m = tag.exec(clean2)) {
1786
+ text(clean2.slice(last, m.index), last);
1784
1787
  last = tag.lastIndex;
1785
1788
  const close = m[1] === "/";
1786
1789
  const name = m[2].toLowerCase();
@@ -1832,7 +1835,7 @@ function readHtml(src) {
1832
1835
  else if (BLOCK.has(name) && !heading && cell === void 0)
1833
1836
  flush();
1834
1837
  }
1835
- text(clean.slice(last), last);
1838
+ text(clean2.slice(last), last);
1836
1839
  flush();
1837
1840
  return {
1838
1841
  ...title ? { title } : {},
@@ -1884,7 +1887,11 @@ function wordText(p) {
1884
1887
  out += "\n";
1885
1888
  else if (c.name === "noBreakHyphen")
1886
1889
  out += "-";
1887
- else if (c.name !== "pPr" && c.name !== "rPr" && c.name !== "del")
1890
+ else if (c.name === "AlternateContent") {
1891
+ const one = elements(c).find((x) => x.name === "Choice") ?? elements(c).find((x) => x.name === "Fallback");
1892
+ if (one)
1893
+ walk(one);
1894
+ } else if (c.name !== "pPr" && c.name !== "rPr" && c.name !== "del" && c.name !== "moveFrom")
1888
1895
  walk(c);
1889
1896
  }
1890
1897
  };
@@ -2036,29 +2043,60 @@ var colIndex = (ref2) => {
2036
2043
  return n - 1;
2037
2044
  };
2038
2045
  var stringItem = (si) => elements(si).flatMap((c) => c.name === "t" ? [c] : c.name === "r" ? childrenNamed(c, "t") : []).map(textOf).join("");
2039
- function readXlsx(zip) {
2046
+ function readXlsx(zip, maxCells = MAX_CELLS) {
2040
2047
  const wb = need(zip, "xl/workbook.xml");
2041
2048
  const rels = relationships(zip.text("xl/_rels/workbook.xml.rels"));
2042
2049
  const shared = childrenNamed(parseXmlTree(zip.text("xl/sharedStrings.xml") ?? ""), "si").map(stringItem);
2043
2050
  const { title, meta } = coreProps(zip);
2044
2051
  const s = new Sections();
2045
2052
  const tables = [];
2053
+ const notes = [];
2054
+ let budget = maxCells;
2055
+ let unread = false;
2046
2056
  findAll(child(wb, "sheets"), "sheet").forEach((sheet, i) => {
2057
+ const name = sheet.attrs.name ?? `Sheet ${i + 1}`;
2047
2058
  const target = rels.get(relId(sheet) ?? "");
2048
2059
  const part = target ? resolvePart("xl", target) : void 0;
2049
2060
  const doc = part ? parseXmlTree(zip.text(part) ?? "") : void 0;
2050
2061
  const rows = [];
2051
2062
  let prev;
2063
+ let squeezed = false;
2052
2064
  for (const row of findAll(child(doc, "sheetData"), "row")) {
2065
+ if (budget <= 0) {
2066
+ if (childrenNamed(row, "c").length)
2067
+ unread = true;
2068
+ if (unread)
2069
+ break;
2070
+ continue;
2071
+ }
2053
2072
  const r = Number(row.attrs.r) || (prev ?? 0) + 1;
2073
+ if (r > EXCEL_ROWS) {
2074
+ notes.push(`${name}: row ${r} is past Excel's last row; skipped.`);
2075
+ continue;
2076
+ }
2054
2077
  if (prev !== void 0)
2055
- for (let k = prev + 1; k < r; k++)
2078
+ for (let k = prev + 1; k < Math.min(r, prev + 1 + MAX_GAP); k++)
2056
2079
  rows.push([]);
2057
2080
  prev = r;
2058
2081
  const cells2 = [];
2059
2082
  let next = 0;
2083
+ let shift = 0;
2060
2084
  for (const c of childrenNamed(row, "c")) {
2061
- const at = c.attrs.r ? colIndex(c.attrs.r) : next;
2085
+ const col = c.attrs.r ? colIndex(c.attrs.r) : next;
2086
+ if (col >= EXCEL_COLUMNS)
2087
+ continue;
2088
+ if (budget <= 0) {
2089
+ unread = true;
2090
+ break;
2091
+ }
2092
+ budget--;
2093
+ next = col + 1;
2094
+ let at = Math.max(0, col - shift);
2095
+ if (at - cells2.length > MAX_GAP) {
2096
+ shift += at - cells2.length - MAX_GAP;
2097
+ at = cells2.length + MAX_GAP;
2098
+ squeezed = true;
2099
+ }
2062
2100
  const v = textOf(child(c, "v"));
2063
2101
  let value;
2064
2102
  switch (c.attrs.t) {
@@ -2077,31 +2115,61 @@ function readXlsx(zip) {
2077
2115
  while (cells2.length < at)
2078
2116
  cells2.push("");
2079
2117
  cells2[at] = value;
2080
- next = at + 1;
2081
2118
  }
2082
2119
  while (cells2.length && cells2.at(-1) === "")
2083
2120
  cells2.pop();
2084
2121
  rows.push(cells2);
2085
2122
  }
2123
+ if (squeezed)
2124
+ notes.push(`${name}: more than ${MAX_GAP} blank columns between cells were left out.`);
2086
2125
  tables.push(rows);
2087
- s.heading(sheet.attrs.name ?? `Sheet ${i + 1}`, 1, { page: i + 1 });
2126
+ s.heading(name, 1, { page: i + 1 });
2088
2127
  for (const r of rows)
2089
2128
  s.add(r.join(" "));
2090
2129
  });
2091
- return { ...title ? { title } : {}, sections: s.done(), tables, meta, notes: [] };
2130
+ if (unread)
2131
+ notes.push(`The workbook has more than ${maxCells} cells; the rest wasn't read.`);
2132
+ return { ...title ? { title } : {}, sections: s.done(), tables, meta, notes };
2092
2133
  }
2134
+ var EXCEL_ROWS = 1048576;
2135
+ var EXCEL_COLUMNS = 16384;
2136
+ var MAX_GAP = 1e3;
2137
+ var MAX_CELLS = 2e6;
2093
2138
 
2094
2139
  // packages/ingestors/dist/pdf.js
2095
2140
  import { constants, inflateSync } from "node:zlib";
2096
2141
  var NO_TEXT = "No text was found in this PDF. It may be a scanned image, so a person needs to read it.";
2097
2142
  var MAX_STREAM = 64 * 1024 * 1024;
2143
+ var MAX_DECODED = 256 * 1024 * 1024;
2144
+ var MAX_PACKED = 1e5;
2145
+ var MAX_PAGES = 1e4;
2146
+ var MAX_TEXT = 64 * 1024 * 1024;
2098
2147
  var refs = (s) => [...s.matchAll(/(\d+)\s+\d+\s+R\b/g)].map((m) => Number(m[1]));
2099
2148
  var ref = (dict, key) => {
2100
2149
  const m = new RegExp(`/${key}\\s+(\\d+)\\s+\\d+\\s+R\\b`).exec(dict);
2101
2150
  return m ? Number(m[1]) : void 0;
2102
2151
  };
2103
2152
  var isType = (dict, type) => new RegExp(`/Type\\s*/${type}(?![A-Za-z])`).test(dict);
2104
- function decodeStream(o) {
2153
+ var tooMuch = () => new ReadError(`This PDF's streams inflate to more than ${MAX_DECODED / 1024 / 1024} MB, so it isn't read`);
2154
+ function decodeStream(o, d) {
2155
+ if (d.cache.has(o))
2156
+ return d.cache.get(o);
2157
+ if (o.stream && d.left <= 0)
2158
+ throw tooMuch();
2159
+ const max = Math.min(MAX_STREAM, d.left);
2160
+ const out = decodeOnce(o, max);
2161
+ if (out === "too-big") {
2162
+ if (max < MAX_STREAM)
2163
+ throw tooMuch();
2164
+ d.cache.set(o, void 0);
2165
+ return void 0;
2166
+ }
2167
+ d.cache.set(o, out);
2168
+ if (out)
2169
+ d.left -= out.length;
2170
+ return out;
2171
+ }
2172
+ function decodeOnce(o, max) {
2105
2173
  if (!o.stream)
2106
2174
  return void 0;
2107
2175
  const filter = /\/Filter\s*(\[[^\]]*\]|\/\w+)/.exec(o.dict)?.[1];
@@ -2110,20 +2178,23 @@ function decodeStream(o) {
2110
2178
  const names = filter.match(/\/\w+/g) ?? [];
2111
2179
  if (names.length !== 1 || names[0] !== "/FlateDecode")
2112
2180
  return void 0;
2181
+ const big = (e) => e.code === "ERR_BUFFER_TOO_LARGE";
2113
2182
  try {
2114
- return inflateSync(o.stream, { maxOutputLength: MAX_STREAM });
2115
- } catch {
2183
+ return inflateSync(o.stream, { maxOutputLength: max });
2184
+ } catch (e) {
2185
+ if (big(e))
2186
+ return "too-big";
2116
2187
  try {
2117
2188
  return inflateSync(o.stream, {
2118
2189
  finishFlush: constants.Z_SYNC_FLUSH,
2119
- maxOutputLength: MAX_STREAM
2190
+ maxOutputLength: max
2120
2191
  });
2121
- } catch {
2122
- return void 0;
2192
+ } catch (e2) {
2193
+ return big(e2) ? "too-big" : void 0;
2123
2194
  }
2124
2195
  }
2125
2196
  }
2126
- function objects(src, bytes) {
2197
+ function objects(src, bytes, d) {
2127
2198
  const out = /* @__PURE__ */ new Map();
2128
2199
  const re = /(\d+)\s+(\d+)\s+obj\b/g;
2129
2200
  for (let m = re.exec(src); m; m = re.exec(src)) {
@@ -2156,12 +2227,14 @@ function objects(src, bytes) {
2156
2227
  for (const o of [...out.values()]) {
2157
2228
  if (!isType(o.dict, "ObjStm"))
2158
2229
  continue;
2159
- const data = decodeStream(o)?.toString("latin1");
2160
- const n = Number(/\/N\s+(\d+)/.exec(o.dict)?.[1] ?? 0);
2230
+ const data = decodeStream(o, d)?.toString("latin1");
2161
2231
  const first = Number(/\/First\s+(\d+)/.exec(o.dict)?.[1] ?? 0);
2162
- if (!data || !n)
2232
+ if (!data)
2163
2233
  continue;
2164
2234
  const head = data.slice(0, first).trim().split(/\s+/).map(Number);
2235
+ const n = Math.min(Number(/\/N\s+(\d+)/.exec(o.dict)?.[1] ?? 0), Math.floor(head.length / 2), MAX_PACKED);
2236
+ if (!n)
2237
+ continue;
2165
2238
  for (let k = 0; k < n; k++) {
2166
2239
  const num = head[2 * k];
2167
2240
  const off = first + head[2 * k + 1];
@@ -2230,28 +2303,86 @@ function readLiteral(src, i) {
2230
2303
  return [src.slice(i, k), k + 1];
2231
2304
  }
2232
2305
  function hexBytes(h) {
2233
- const clean = h.replace(/[^0-9a-fA-F]/g, "");
2234
- const even = clean.length % 2 ? clean + "0" : clean;
2306
+ const clean2 = h.replace(/[^0-9a-fA-F]/g, "");
2307
+ const even = clean2.length % 2 ? clean2 + "0" : clean2;
2235
2308
  const out = [];
2236
2309
  for (let i = 0; i < even.length; i += 2)
2237
2310
  out.push(parseInt(even.slice(i, i + 2), 16));
2238
2311
  return out;
2239
2312
  }
2240
- function contentText(src) {
2313
+ function parseToUnicode(cmap) {
2314
+ const map = /* @__PURE__ */ new Map();
2315
+ const utf16 = (h) => {
2316
+ const b = hexBytes(h);
2317
+ let out = "";
2318
+ for (let i = 0; i + 1 < b.length; i += 2)
2319
+ out += String.fromCharCode(b[i] << 8 | b[i + 1]);
2320
+ return out;
2321
+ };
2322
+ const space = /begincodespacerange\s*<([0-9a-fA-F]+)>/.exec(cmap)?.[1];
2323
+ const bytes = space && space.length <= 2 ? 1 : 2;
2324
+ for (const block of cmap.matchAll(/beginbfchar([\s\S]*?)endbfchar/g))
2325
+ for (const m of block[1].matchAll(/<([0-9a-fA-F]+)>\s*<([0-9a-fA-F]*)>/g))
2326
+ map.set(parseInt(m[1], 16), utf16(m[2]));
2327
+ for (const block of cmap.matchAll(/beginbfrange([\s\S]*?)endbfrange/g))
2328
+ for (const m of block[1].matchAll(/<([0-9a-fA-F]+)>\s*<([0-9a-fA-F]+)>\s*(?:<([0-9a-fA-F]*)>|\[([^\]]*)\])/g)) {
2329
+ const lo = parseInt(m[1], 16);
2330
+ const hi = Math.min(parseInt(m[2], 16), lo + 65535);
2331
+ if (m[3] !== void 0) {
2332
+ const start = utf16(m[3]);
2333
+ const last = start.charCodeAt(start.length - 1);
2334
+ for (let c = lo; c <= hi; c++)
2335
+ map.set(c, start.slice(0, -1) + String.fromCharCode(last + (c - lo)));
2336
+ } else {
2337
+ const each = [...m[4].matchAll(/<([0-9a-fA-F]*)>/g)].map((x) => utf16(x[1]));
2338
+ each.forEach((t, k) => lo + k <= hi && map.set(lo + k, t));
2339
+ }
2340
+ }
2341
+ return { map, bytes };
2342
+ }
2343
+ function fontText(b, f) {
2344
+ if (!f?.map)
2345
+ return bytesText(b);
2346
+ let out = "";
2347
+ for (let i = 0; i < b.length; i += f.bytes) {
2348
+ const code = f.bytes === 2 ? b[i] << 8 | (b[i + 1] ?? 0) : b[i];
2349
+ out += f.map.get(code) ?? (f.bytes === 1 ? String.fromCharCode(code) : "");
2350
+ }
2351
+ return clean(out);
2352
+ }
2353
+ function clean(s) {
2354
+ let out = "";
2355
+ for (const ch of s) {
2356
+ const c = ch.charCodeAt(0);
2357
+ if (c >= 32 ? c !== 127 : c === 9 || c === 10 || c === 13)
2358
+ out += ch;
2359
+ }
2360
+ return out;
2361
+ }
2362
+ function contentText(src, fonts = /* @__PURE__ */ new Map(), said = {}) {
2241
2363
  const lines = [];
2242
2364
  let cur = "";
2365
+ let font;
2243
2366
  const newline = () => {
2244
2367
  if (cur.trim())
2245
2368
  lines.push(cur.replace(/\s+/g, " ").trim());
2246
2369
  cur = "";
2247
2370
  };
2371
+ const text = (b) => {
2372
+ if (font?.unreadable) {
2373
+ if (b.length)
2374
+ said.unreadable = true;
2375
+ return "";
2376
+ }
2377
+ return fontText(b, font);
2378
+ };
2248
2379
  const show = (tok) => {
2249
2380
  if (tok?.t === "str")
2250
- cur += bytesText(tok.v);
2381
+ cur += text(tok.v);
2251
2382
  else if (tok?.t === "arr")
2252
2383
  for (const x of tok.v) {
2253
2384
  if (x.t === "str")
2254
- cur += bytesText(x.v);
2385
+ cur += text(x.v);
2255
2386
  else if (x.t === "num" && x.v < -200)
2256
2387
  cur += " ";
2257
2388
  }
@@ -2289,7 +2420,7 @@ function contentText(src) {
2289
2420
  i++;
2290
2421
  } else if (c === "/") {
2291
2422
  const m = /^\/[^\s/[\]()<>{}%]*/.exec(src.slice(i, i + 128));
2292
- push({ t: "other" });
2423
+ push({ t: "name", v: m[0].slice(1) });
2293
2424
  i += m[0].length;
2294
2425
  } else {
2295
2426
  const m = /^[+-]?(\d+\.?\d*|\.\d+)/.exec(src.slice(i, i + 32));
@@ -2323,6 +2454,11 @@ function contentText(src) {
2323
2454
  lastY = y;
2324
2455
  break;
2325
2456
  }
2457
+ case "Tf": {
2458
+ const name = stack[stack.length - 2];
2459
+ font = name?.t === "name" ? fonts.get(name.v) : void 0;
2460
+ break;
2461
+ }
2326
2462
  case "Tj":
2327
2463
  case "TJ":
2328
2464
  show(stack.at(-1));
@@ -2368,7 +2504,13 @@ function pdfDate(s) {
2368
2504
  function readPdf(bytes) {
2369
2505
  const buf = Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength);
2370
2506
  const src = buf.toString("latin1");
2371
- const objs = objects(src, buf);
2507
+ const decoding = {
2508
+ cache: /* @__PURE__ */ new Map(),
2509
+ texts: /* @__PURE__ */ new Map(),
2510
+ left: MAX_DECODED,
2511
+ textLeft: MAX_TEXT
2512
+ };
2513
+ const objs = objects(src, buf, decoding);
2372
2514
  const trailers = [...src.matchAll(/trailer\s*(<<[\s\S]*?>>)/g)].map((m) => m[1]);
2373
2515
  for (const o of objs.values())
2374
2516
  if (isType(o.dict, "XRef"))
@@ -2428,18 +2570,109 @@ function readPdf(bytes) {
2428
2570
  pages2.push(n);
2429
2571
  }
2430
2572
  const s = new Sections();
2573
+ if (pages2.length > MAX_PAGES) {
2574
+ notes.push(`This PDF has ${pages2.length} pages; the first ${MAX_PAGES} are read.`);
2575
+ pages2.length = MAX_PAGES;
2576
+ }
2577
+ const dictOf = (owner, key) => {
2578
+ const r = ref(owner, key);
2579
+ if (r !== void 0)
2580
+ return objs.get(r)?.dict;
2581
+ const at = new RegExp(`/${key}\\s*<<`).exec(owner);
2582
+ if (!at)
2583
+ return void 0;
2584
+ let depth = 0;
2585
+ for (let k = at.index + at[0].length - 2; k < owner.length - 1; k++) {
2586
+ if (owner[k] === "<" && owner[k + 1] === "<") {
2587
+ depth++;
2588
+ k++;
2589
+ } else if (owner[k] === ">" && owner[k + 1] === ">") {
2590
+ if (--depth === 0)
2591
+ return owner.slice(at.index + at[0].length - 2, k + 2);
2592
+ k++;
2593
+ }
2594
+ }
2595
+ return void 0;
2596
+ };
2597
+ const fontCache = /* @__PURE__ */ new Map();
2598
+ const fontOf = (no) => {
2599
+ const had = fontCache.get(no);
2600
+ if (had)
2601
+ return had;
2602
+ const d = objs.get(no)?.dict ?? "";
2603
+ const type0 = /\/Subtype\s*\/Type0\b/.test(d);
2604
+ const tu = ref(d, "ToUnicode");
2605
+ const cmap = tu !== void 0 ? objs.get(tu) : void 0;
2606
+ const text = cmap ? decodeStream(cmap, decoding)?.toString("latin1") : void 0;
2607
+ const f = text ? (() => {
2608
+ const t = parseToUnicode(text);
2609
+ return { map: t.map, bytes: type0 ? 2 : 1 };
2610
+ })() : type0 ? { bytes: 2, unreadable: true } : { bytes: 1 };
2611
+ fontCache.set(no, f);
2612
+ return f;
2613
+ };
2614
+ const pageFonts = (pageDict) => {
2615
+ const out = /* @__PURE__ */ new Map();
2616
+ let d = pageDict;
2617
+ for (let up = 0; d && up < 32; up++) {
2618
+ const res = dictOf(d, "Resources");
2619
+ const fd = res ? dictOf(res, "Font") : void 0;
2620
+ if (fd) {
2621
+ for (const m of fd.matchAll(/\/([^\s/[\]()<>{}%]+)\s+(\d+)\s+\d+\s+R\b/g))
2622
+ if (!out.has(m[1]))
2623
+ out.set(m[1], fontOf(Number(m[2])));
2624
+ break;
2625
+ }
2626
+ const parent = ref(d, "Parent");
2627
+ d = parent !== void 0 ? objs.get(parent)?.dict : void 0;
2628
+ }
2629
+ return out;
2630
+ };
2631
+ let unreadablePages = 0;
2431
2632
  pages2.forEach((n, i) => {
2432
2633
  const dict = objs.get(n).dict;
2634
+ const fonts = pageFonts(dict);
2635
+ const key = [...fonts].map(([k, f]) => `${k}:${f.map ? "m" : f.unreadable ? "u" : "l"}`).join(",");
2636
+ const said = {};
2433
2637
  const contents = /\/Contents\s*(\[[^\]]*\]|\d+\s+\d+\s+R)/.exec(dict)?.[1] ?? "";
2434
2638
  let streams = refs(contents);
2435
2639
  if (streams.length === 1 && !objs.get(streams[0])?.stream)
2436
2640
  streams = refs(objs.get(streams[0])?.dict ?? "");
2437
- const text = streams.map((r) => objs.get(r)).map((o) => o ? decodeStream(o)?.toString("latin1") : void 0).filter((t) => t !== void 0).flatMap(contentText);
2641
+ const text = streams.map((r) => objs.get(r)).flatMap((o) => {
2642
+ if (!o)
2643
+ return [];
2644
+ let byFonts = decoding.texts.get(o);
2645
+ if (!byFonts)
2646
+ decoding.texts.set(o, byFonts = /* @__PURE__ */ new Map());
2647
+ let hit = byFonts.get(key);
2648
+ if (!hit) {
2649
+ const t = decodeStream(o, decoding)?.toString("latin1");
2650
+ const one = {};
2651
+ hit = {
2652
+ lines: t === void 0 ? [] : contentText(t, fonts, one),
2653
+ unreadable: !!one.unreadable
2654
+ };
2655
+ byFonts.set(key, hit);
2656
+ }
2657
+ if (hit.unreadable)
2658
+ said.unreadable = true;
2659
+ const lines = hit.lines;
2660
+ decoding.textLeft -= lines.reduce((n2, l) => n2 + l.length, 0);
2661
+ if (decoding.textLeft < 0)
2662
+ throw new ReadError(`This PDF's pages hold more than ${MAX_TEXT / 1024 / 1024} MB of text, so it isn't read`);
2663
+ return lines;
2664
+ });
2665
+ if (said.unreadable)
2666
+ unreadablePages++;
2438
2667
  s.heading("", 0, { page: i + 1 });
2439
2668
  for (const l of text)
2440
2669
  s.add(l);
2441
2670
  });
2442
2671
  const sections = s.done();
2672
+ if (unreadablePages) {
2673
+ notes.push(`${unreadablePages} page${unreadablePages === 1 ? "" : "s"} of this PDF use a font with no map to letters, so some text wasn't read. A person needs to read ${unreadablePages === 1 ? "it" : "them"}.`);
2674
+ meta.flags = ["needs-reading"];
2675
+ }
2443
2676
  if (!sections.length) {
2444
2677
  notes.push(NO_TEXT);
2445
2678
  meta.flags = ["needs-reading"];
@@ -2853,9 +3086,36 @@ function pickIngestor(fileName, head) {
2853
3086
  return best;
2854
3087
  }
2855
3088
 
3089
+ // packages/ingestors/dist/traffic-formats.js
3090
+ var TRAFFIC_SOURCES = {
3091
+ // A gateway analytics custom report, exported as CSV or JSON: its dimensions and metrics.
3092
+ apigee: {
3093
+ app: ["developer_app", "developer app", "app", "application"],
3094
+ method: ["request_verb", "verb", "method"],
3095
+ path: ["request_path", "request_uri", "uri", "path"],
3096
+ basepath: ["proxy_basepath", "basepath", "base path"],
3097
+ suffix: ["proxy_pathsuffix", "pathsuffix", "path suffix"],
3098
+ proxy: ["apiproxy", "api_proxy", "proxy"],
3099
+ count: ["sum(message_count)", "message_count", "traffic", "count"],
3100
+ time: ["client_received_start_timestamp", "timestamp", "time", "date", "day"]
3101
+ },
3102
+ // An API catalogue's usage export: who calls which operation, and how often.
3103
+ catalog: {
3104
+ app: ["consumer", "consumer app", "application", "app", "client name", "subscriber"],
3105
+ method: ["method", "http method", "verb"],
3106
+ path: ["path", "operation path", "resource", "route"],
3107
+ basepath: ["basepath", "base path"],
3108
+ suffix: [],
3109
+ proxy: ["api", "api name", "proxy", "product"],
3110
+ count: ["calls", "count", "requests", "hits"],
3111
+ time: ["date", "day", "timestamp", "time", "period"]
3112
+ }
3113
+ };
3114
+
2856
3115
  export {
2857
3116
  curatedAliases,
2858
3117
  resolveNames,
3118
+ labelText,
2859
3119
  readDrawio,
2860
3120
  drawioIngestor,
2861
3121
  reconcile,
@@ -2898,5 +3158,6 @@ export {
2898
3158
  pdfIngestor,
2899
3159
  figmaIngestor,
2900
3160
  listIngestors,
2901
- pickIngestor
3161
+ pickIngestor,
3162
+ TRAFFIC_SOURCES
2902
3163
  };