@maycombhq/atticus 2.0.0-beta.18 → 2.0.0-beta.21

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 (270) hide show
  1. package/dist/bin.js +8 -4
  2. package/dist/{chunk-MUSJJ6CQ.js → chunk-265LWMOA.js} +16 -16
  3. package/dist/chunk-26WBY34Y.js +37 -0
  4. package/dist/{chunk-6H5JG5GL.js → chunk-26Z7OGQW.js} +63 -30
  5. package/dist/{chunk-4REDBQOZ.js → chunk-2D7PWSOK.js} +20 -20
  6. package/dist/{chunk-YPH6ZJ6R.js → chunk-2HH3UCZM.js} +4 -4
  7. package/dist/{chunk-RTUUX7PX.js → chunk-2HTEMYTB.js} +12 -26
  8. package/dist/{chunk-EHQUY26D.js → chunk-2UCRFXFZ.js} +11 -11
  9. package/dist/{chunk-ILDGIXNH.js → chunk-2V2ZPQQU.js} +81 -13
  10. package/dist/{chunk-YSEZQ6D3.js → chunk-36RY7ZXM.js} +107 -64
  11. package/dist/{chunk-QXFDM2FZ.js → chunk-37WE3LS2.js} +3 -3
  12. package/dist/{chunk-BAXM3JFQ.js → chunk-3AQ2R5NL.js} +1212 -754
  13. package/dist/chunk-3G6S7LAA.js +43 -0
  14. package/dist/{chunk-7TOAS7KI.js → chunk-3J5I7ZOU.js} +4 -4
  15. package/dist/{chunk-TAKAEJRD.js → chunk-3LZ6P5EP.js} +1 -1
  16. package/dist/chunk-3SSTNB4E.js +191 -0
  17. package/dist/chunk-3TD6S4TC.js +49 -0
  18. package/dist/{chunk-UUL6ZGMU.js → chunk-3UTYPHN3.js} +1 -1
  19. package/dist/{chunk-6AP2ZUUM.js → chunk-3WON4G3M.js} +2 -2
  20. package/dist/{chunk-AXY6LBW4.js → chunk-42EPP7OB.js} +12 -12
  21. package/dist/{chunk-QKMDT7VU.js → chunk-455SYIIE.js} +2 -2
  22. package/dist/{chunk-MFUFB3LN.js → chunk-4B6BT75O.js} +110 -20
  23. package/dist/{chunk-75MYLZSB.js → chunk-4CLK2RJO.js} +7 -7
  24. package/dist/chunk-4CYTJ5TZ.js +38 -0
  25. package/dist/{chunk-IH7RANGB.js → chunk-4D62IZII.js} +5 -5
  26. package/dist/{chunk-2QMZOCWN.js → chunk-4FOAYLI4.js} +14 -7
  27. package/dist/{chunk-V3UEPUHT.js → chunk-4KNOJC6J.js} +294 -215
  28. package/dist/{chunk-O6ILVBYB.js → chunk-4PYC2UGC.js} +1 -1
  29. package/dist/{chunk-EZBAS5BL.js → chunk-4SLBCEPD.js} +82 -50
  30. package/dist/{chunk-VIRTPODJ.js → chunk-4TKVU2I2.js} +6 -14
  31. package/dist/{chunk-IVCDU443.js → chunk-4WXRPQDE.js} +281 -51
  32. package/dist/{chunk-RMEEHH24.js → chunk-5CMPVC3N.js} +24 -24
  33. package/dist/chunk-5G7ILBUG.js +66 -0
  34. package/dist/{chunk-Z75XDWQR.js → chunk-5PV7S2ZP.js} +3 -3
  35. package/dist/{chunk-WWPC2AZ2.js → chunk-5QUOPNLN.js} +4 -4
  36. package/dist/{chunk-7OVH2L7L.js → chunk-5TDRBOAV.js} +5 -5
  37. package/dist/{chunk-YXUIUOQZ.js → chunk-5WERBKLE.js} +199 -63
  38. package/dist/{chunk-6WNNXEG6.js → chunk-62DLJSLV.js} +8 -8
  39. package/dist/{chunk-KCQS52TH.js → chunk-64AADMTW.js} +99 -25
  40. package/dist/{chunk-KLRUXRPN.js → chunk-67BP7HXL.js} +17 -17
  41. package/dist/chunk-6DQYZU2W.js +379 -0
  42. package/dist/{chunk-RONDYDMQ.js → chunk-6EXDI5GI.js} +51 -34
  43. package/dist/chunk-6FNAKCET.js +38 -0
  44. package/dist/{chunk-6SNEA73E.js → chunk-75ASLHBT.js} +21 -15
  45. package/dist/{chunk-EFT4KM6K.js → chunk-75ZOZFGH.js} +18 -18
  46. package/dist/{chunk-B3KW7EQW.js → chunk-77O633L5.js} +12 -12
  47. package/dist/{chunk-TLDL2ZZI.js → chunk-7AB6OWTV.js} +3 -3
  48. package/dist/{chunk-R5YXY6NT.js → chunk-7CZHUZBL.js} +25 -25
  49. package/dist/{chunk-F4D4G2A6.js → chunk-7FHNFCHK.js} +306 -125
  50. package/dist/{chunk-CC5RNYZF.js → chunk-7FUIVIBG.js} +19 -9
  51. package/dist/{chunk-UBTOSSNK.js → chunk-7QPCGTPS.js} +21 -21
  52. package/dist/{chunk-CDLTRJ4N.js → chunk-A2G72UI4.js} +7 -7
  53. package/dist/{chunk-YGSOQ5LX.js → chunk-AE4P57KK.js} +23 -17
  54. package/dist/{chunk-PGQL5YGH.js → chunk-AHW3RY3X.js} +7 -7
  55. package/dist/chunk-AM6FP6JW.js +43 -0
  56. package/dist/{chunk-DYNC6BAQ.js → chunk-AOCWFA7T.js} +93 -10
  57. package/dist/{chunk-CYX36GKZ.js → chunk-API5TOUB.js} +1 -1
  58. package/dist/{chunk-BJ5T3KDF.js → chunk-AZDITBCT.js} +3 -3
  59. package/dist/{chunk-U6GZSUMC.js → chunk-BA2HUMDN.js} +25 -3
  60. package/dist/chunk-BA3U7ALS.js +99 -0
  61. package/dist/{chunk-63565QTF.js → chunk-BC6KKZ67.js} +5 -5
  62. package/dist/{chunk-XO5RQKNM.js → chunk-BEPCKDCP.js} +1843 -577
  63. package/dist/{chunk-KUH62AQ3.js → chunk-BPPU3PW7.js} +4 -4
  64. package/dist/{chunk-52ULYRV4.js → chunk-BVWWPBKD.js} +18 -18
  65. package/dist/{chunk-R2FGEBIU.js → chunk-BXZ4PKIT.js} +13 -11
  66. package/dist/{chunk-4BU26GFB.js → chunk-C7CEK3KW.js} +4 -4
  67. package/dist/chunk-CFH3QH26.js +29 -0
  68. package/dist/chunk-CG6CULP6.js +170 -0
  69. package/dist/chunk-CLD4RVTA.js +45 -0
  70. package/dist/{chunk-BU543ZEC.js → chunk-CNPY4NTZ.js} +13 -13
  71. package/dist/{chunk-PLBIWEPV.js → chunk-CNU5Q2D5.js} +32 -31
  72. package/dist/{chunk-JTYYEYRR.js → chunk-COYN3UAN.js} +124 -21
  73. package/dist/{chunk-TNCROWPQ.js → chunk-CPK7QSBG.js} +10 -10
  74. package/dist/{chunk-43E6XX67.js → chunk-D2WSW4GU.js} +1 -1
  75. package/dist/{chunk-SHEUEHKC.js → chunk-D57MFJPP.js} +3 -3
  76. package/dist/chunk-D5KV5PSK.js +45 -0
  77. package/dist/chunk-D5MASS4I.js +48 -0
  78. package/dist/{chunk-TQYBXDVH.js → chunk-DCWN3HFV.js} +1 -1
  79. package/dist/{chunk-FF4IGX4Z.js → chunk-DDJPM5YX.js} +2 -2
  80. package/dist/chunk-DN4A2Q2O.js +57 -0
  81. package/dist/{chunk-4ZCFCIEL.js → chunk-DUPZPDCJ.js} +52 -16
  82. package/dist/{chunk-CUJ5TIEB.js → chunk-E2VXBSIR.js} +4 -4
  83. package/dist/{chunk-BX47X5DJ.js → chunk-E57AOFYN.js} +13 -13
  84. package/dist/{chunk-SSTI7GAV.js → chunk-ECLXZWAG.js} +12 -12
  85. package/dist/{chunk-KYK3TA4Q.js → chunk-EDZ45WIR.js} +14 -14
  86. package/dist/chunk-EFCQSMXB.js +37 -0
  87. package/dist/{chunk-YC2K3FJG.js → chunk-EZIN5E5B.js} +8 -8
  88. package/dist/{chunk-MIZNACDI.js → chunk-F6H2RJ3N.js} +1 -1
  89. package/dist/{chunk-EMZVHDJP.js → chunk-FAJDKNSD.js} +7 -3
  90. package/dist/chunk-FGAGWYZB.js +47 -0
  91. package/dist/{chunk-KBGQ3IAM.js → chunk-FLVZFTLQ.js} +18 -18
  92. package/dist/{chunk-2NNXLH53.js → chunk-FQ6WH6PB.js} +22 -7
  93. package/dist/{chunk-QWSLMVHI.js → chunk-FRHD22WM.js} +61 -23
  94. package/dist/{chunk-5MEN4SM5.js → chunk-FVMPFCDS.js} +4 -4
  95. package/dist/{chunk-KLRZKW7Y.js → chunk-FY3QIRTL.js} +3 -3
  96. package/dist/{chunk-B3SWPNJF.js → chunk-FYBF5MB2.js} +13 -11
  97. package/dist/{chunk-CVZCW3NI.js → chunk-G5YJBNDZ.js} +14 -5
  98. package/dist/{chunk-U6EPS5PF.js → chunk-G6IQYM25.js} +5 -5
  99. package/dist/chunk-G6X4YL4D.js +161 -0
  100. package/dist/{chunk-DOSX3MRW.js → chunk-GC2VK3JT.js} +25 -25
  101. package/dist/{chunk-EEWBTFRP.js → chunk-GCS3FZOB.js} +27 -3
  102. package/dist/{chunk-6H6OPNEP.js → chunk-GDZB57IU.js} +5 -5
  103. package/dist/chunk-GIFMBCTW.js +221 -0
  104. package/dist/{chunk-X5WYPIH3.js → chunk-GK4PYVEC.js} +18 -8
  105. package/dist/{chunk-VBSJ5NRB.js → chunk-GNWAOVFQ.js} +5 -5
  106. package/dist/{chunk-TXFDQRBL.js → chunk-GS76RXQE.js} +11 -11
  107. package/dist/{chunk-U3YC4RGC.js → chunk-GSGIZ2OO.js} +23 -23
  108. package/dist/chunk-GUYL7RMK.js +60 -0
  109. package/dist/{chunk-AZYBHPV4.js → chunk-GX74YWR7.js} +14 -13
  110. package/dist/{chunk-YY7VP7KW.js → chunk-HE3HRDNZ.js} +2 -2
  111. package/dist/{chunk-Z7HYYDZM.js → chunk-HGHRSF3E.js} +14 -13
  112. package/dist/{chunk-Q2X4IREC.js → chunk-HK3VOHIE.js} +106 -36
  113. package/dist/{chunk-P5JYMO7Y.js → chunk-HS4BGB4G.js} +22 -22
  114. package/dist/{chunk-IOW6BF3U.js → chunk-HSZMPH5T.js} +798 -141
  115. package/dist/{chunk-L3T33FA7.js → chunk-HWD4JPU7.js} +4 -2
  116. package/dist/{chunk-7NYCH5HY.js → chunk-HXXP2NTE.js} +6 -6
  117. package/dist/{chunk-7S7OFVIU.js → chunk-I2A3Z5AK.js} +4 -4
  118. package/dist/{chunk-WQSDKX7M.js → chunk-ICHDSWEY.js} +7 -7
  119. package/dist/chunk-IFFRGC3N.js +31 -0
  120. package/dist/{chunk-HMZQAIR5.js → chunk-IFHDV6KQ.js} +24 -17
  121. package/dist/chunk-J2O4LFVI.js +80 -0
  122. package/dist/chunk-J5AAZ6OJ.js +161 -0
  123. package/dist/{chunk-CVRWAG76.js → chunk-JAABT3DA.js} +3 -3
  124. package/dist/chunk-JITJP64K.js +34 -0
  125. package/dist/chunk-JKIGL3XQ.js +162 -0
  126. package/dist/chunk-JRVNXLZP.js +615 -0
  127. package/dist/chunk-JRXHON4E.js +41 -0
  128. package/dist/{chunk-XFCK5B27.js → chunk-JS6WMC3J.js} +8 -8
  129. package/dist/chunk-JU4QNJSR.js +62 -0
  130. package/dist/{chunk-IPSFMTK2.js → chunk-JYMIB5XY.js} +152 -42
  131. package/dist/{chunk-L336AJCZ.js → chunk-JYTIHTIK.js} +8 -6
  132. package/dist/{chunk-VEJYZEPC.js → chunk-K332XW7K.js} +135 -16
  133. package/dist/{chunk-KCF7TFOE.js → chunk-K6JB6XTX.js} +11 -11
  134. package/dist/{chunk-LFIIX4OV.js → chunk-KDAHXQIE.js} +46 -34
  135. package/dist/chunk-KYZMRSPS.js +93 -0
  136. package/dist/chunk-L4CESDPB.js +22 -0
  137. package/dist/{chunk-3LR4522O.js → chunk-LEBR5NHW.js} +14 -14
  138. package/dist/{chunk-US3QZU23.js → chunk-LIJJCBQI.js} +67 -7
  139. package/dist/{chunk-XLHL6WTI.js → chunk-LIRVU3HW.js} +16 -16
  140. package/dist/{chunk-BAT4CBB7.js → chunk-LN77DXBM.js} +19 -10
  141. package/dist/{chunk-E5FM44EJ.js → chunk-LNWEWYCM.js} +2474 -315
  142. package/dist/{chunk-TX4OGZKU.js → chunk-LO3BLMVG.js} +3 -3
  143. package/dist/{chunk-RUOGHYSK.js → chunk-LPV6T362.js} +5 -5
  144. package/dist/{chunk-2T5CQH4R.js → chunk-LQH4P45K.js} +1 -1
  145. package/dist/chunk-LU4MQVAL.js +41 -0
  146. package/dist/{chunk-HW4RRIJA.js → chunk-LWDNKE4X.js} +12 -10
  147. package/dist/chunk-M4H2UG4R.js +218 -0
  148. package/dist/{chunk-CANMOOE6.js → chunk-M6D2U3YM.js} +3 -3
  149. package/dist/{chunk-AB5E5HCN.js → chunk-MD7KUEJ3.js} +14 -272
  150. package/dist/{chunk-ENTAAEDK.js → chunk-MMZUN7ZO.js} +20 -20
  151. package/dist/{chunk-L4MHJG3I.js → chunk-MZGRDONP.js} +46 -36
  152. package/dist/{chunk-IYI2S6BB.js → chunk-N3RUGTGV.js} +18 -18
  153. package/dist/{chunk-WZRCGGXG.js → chunk-NCB6656Z.js} +7 -7
  154. package/dist/{chunk-SBE773JU.js → chunk-NRQ65LTQ.js} +5 -5
  155. package/dist/{chunk-NRPMPZWJ.js → chunk-NTAVOWYD.js} +117 -18
  156. package/dist/{chunk-UJBZS5I7.js → chunk-NYOABJNK.js} +36 -27
  157. package/dist/{chunk-LXAPJ3BL.js → chunk-O4IKAIZ2.js} +24 -20
  158. package/dist/{chunk-MMB2OHUY.js → chunk-ODMBPDDV.js} +48 -13
  159. package/dist/chunk-OKUB6RJA.js +533 -0
  160. package/dist/{chunk-MKFYQQ5Q.js → chunk-OMPENNWY.js} +4 -1
  161. package/dist/chunk-OPQZISG3.js +25 -0
  162. package/dist/{chunk-ROJMXG4E.js → chunk-OV57AHCG.js} +24 -24
  163. package/dist/{chunk-7KGXDIWV.js → chunk-OZJ3JLYI.js} +9 -8
  164. package/dist/{chunk-G5BYKJIM.js → chunk-P2VBXX7N.js} +11 -10
  165. package/dist/{chunk-YK6CSODO.js → chunk-PAINMSID.js} +4353 -1106
  166. package/dist/chunk-PKJAV25S.js +43 -0
  167. package/dist/{chunk-R5MNPIMD.js → chunk-PNQLCRSS.js} +4 -4
  168. package/dist/{chunk-3SMMFQED.js → chunk-PQH56YF6.js} +37 -5
  169. package/dist/chunk-PRTBPXYA.js +50 -0
  170. package/dist/{chunk-FF4ZMLSL.js → chunk-PRW3HXM3.js} +2 -2
  171. package/dist/chunk-PRZ7KMWL.js +42 -0
  172. package/dist/{chunk-IFV6MKYV.js → chunk-PTQ3ZALZ.js} +42 -4
  173. package/dist/{chunk-ELQSLAP6.js → chunk-PUEWDYGP.js} +2 -2
  174. package/dist/{chunk-F2ZCZYIK.js → chunk-Q26LDIUV.js} +12 -11
  175. package/dist/chunk-Q46QDDMF.js +277 -0
  176. package/dist/chunk-QBNWF5ZU.js +19 -0
  177. package/dist/{chunk-ANETFNTV.js → chunk-QE527XRY.js} +24 -21
  178. package/dist/{chunk-QNMLLYTN.js → chunk-QHJJMZLX.js} +397 -32
  179. package/dist/chunk-QJCJOMW3.js +425 -0
  180. package/dist/{chunk-3HOONZUE.js → chunk-QKMRFNMA.js} +15 -15
  181. package/dist/{chunk-7S6VJ643.js → chunk-QOOEYDNJ.js} +101 -13
  182. package/dist/{chunk-4YNKN4DF.js → chunk-QSIDVFB7.js} +20 -18
  183. package/dist/{chunk-2IT7SIJY.js → chunk-RA33EYS4.js} +19 -18
  184. package/dist/{chunk-P7NV3FEJ.js → chunk-RALY3E5U.js} +4 -4
  185. package/dist/{chunk-6NESNLVU.js → chunk-S2RY3BOD.js} +35 -21
  186. package/dist/chunk-SB5GRUFM.js +54 -0
  187. package/dist/{chunk-EUQHM2CH.js → chunk-SH27FYPF.js} +18 -18
  188. package/dist/chunk-T74WQQGS.js +40 -0
  189. package/dist/{chunk-LGDW4G73.js → chunk-TGVVUKTG.js} +2 -2
  190. package/dist/chunk-THN26IEF.js +48 -0
  191. package/dist/{chunk-ZV2VCBMQ.js → chunk-TJH2EUAZ.js} +18 -12
  192. package/dist/{chunk-NGT5LLSE.js → chunk-TQ4TG57V.js} +6 -6
  193. package/dist/{chunk-WEDXFJPG.js → chunk-TQTRWENN.js} +12 -12
  194. package/dist/{chunk-ZRWS54RI.js → chunk-TSM6T6GQ.js} +23 -23
  195. package/dist/{chunk-KET7KOVE.js → chunk-TW3KOSQK.js} +15 -7
  196. package/dist/{chunk-RBXDHCN7.js → chunk-TWQRPM76.js} +2 -2
  197. package/dist/{chunk-IO6DQCZX.js → chunk-TYD6I4CZ.js} +4 -4
  198. package/dist/{chunk-5NLJH6R4.js → chunk-U3NBK4EU.js} +56 -17
  199. package/dist/{chunk-U542BJME.js → chunk-UDXWIPCB.js} +7 -7
  200. package/dist/{chunk-OSB6AKF2.js → chunk-UEVZZZU2.js} +4 -4
  201. package/dist/{chunk-5ZV7BK22.js → chunk-UF4UHCIG.js} +2 -2
  202. package/dist/{chunk-PHJOOL6U.js → chunk-UFE36WJH.js} +4 -4
  203. package/dist/{chunk-IHRP4OYV.js → chunk-URIKUID7.js} +12 -12
  204. package/dist/chunk-UYLBRRFK.js +1106 -0
  205. package/dist/chunk-UZACEG2C.js +515 -0
  206. package/dist/{chunk-LR4XBH4L.js → chunk-VAMHOHUU.js} +12 -12
  207. package/dist/{chunk-S5PSGAQ2.js → chunk-VUVGX5L2.js} +1 -1
  208. package/dist/{chunk-2TG2QGKW.js → chunk-VYOCPTUB.js} +18 -16
  209. package/dist/{chunk-VTEDQ6GY.js → chunk-WAZEXEJH.js} +175 -3
  210. package/dist/{chunk-UTSFKZ72.js → chunk-WCEF7H6L.js} +3 -3
  211. package/dist/{chunk-DXPUYG5L.js → chunk-WEOMJHPV.js} +12 -12
  212. package/dist/{chunk-NFKBU2UH.js → chunk-WFU77T3A.js} +5 -5
  213. package/dist/chunk-WIWTJMMR.js +292 -0
  214. package/dist/{chunk-MRFSUAJH.js → chunk-WNTIOBOG.js} +18 -18
  215. package/dist/{chunk-UROTYIGJ.js → chunk-X2CUXTWU.js} +6 -6
  216. package/dist/chunk-X7EMBM5X.js +34 -0
  217. package/dist/{chunk-OO5TKEAG.js → chunk-XEQCQO66.js} +8 -8
  218. package/dist/{chunk-NBQO75XT.js → chunk-XG4WJHLQ.js} +17 -1
  219. package/dist/{chunk-ZQC7MNQB.js → chunk-XOL3GFW2.js} +101 -30
  220. package/dist/{chunk-GXDATVSY.js → chunk-XQ3YZ4QW.js} +22 -22
  221. package/dist/{chunk-GTW54D3D.js → chunk-Y6K3CJBU.js} +726 -88
  222. package/dist/{chunk-CQCAJI6G.js → chunk-YAH5IQAL.js} +5 -5
  223. package/dist/{chunk-U6TD7UOH.js → chunk-YBOVNMHC.js} +51 -14
  224. package/dist/{chunk-OJICVOZH.js → chunk-YF5DZCPN.js} +79 -39
  225. package/dist/chunk-YIGBJNH4.js +37 -0
  226. package/dist/{chunk-7C7OZARH.js → chunk-YJ3TBOTK.js} +25 -25
  227. package/dist/{chunk-HXFSM4LG.js → chunk-YKTE2RU3.js} +2 -2
  228. package/dist/{chunk-7IM4BVVH.js → chunk-YO2PKTXT.js} +268 -36
  229. package/dist/{chunk-Z3UU7XV6.js → chunk-YTTNTQOX.js} +15 -15
  230. package/dist/{chunk-2ZICHO3V.js → chunk-YWAKDNMH.js} +183 -33
  231. package/dist/{chunk-OXOSJXOI.js → chunk-YZDZOEV4.js} +4 -4
  232. package/dist/{chunk-MRCETHW5.js → chunk-Z3QFH7YG.js} +4 -4
  233. package/dist/{chunk-5KZTRD4V.js → chunk-Z6VLC5X4.js} +17 -17
  234. package/dist/{chunk-EDURU5DF.js → chunk-ZFQMMU5Y.js} +2 -2
  235. package/dist/{chunk-3GLDB4IT.js → chunk-ZKYRDV7A.js} +12 -12
  236. package/dist/{chunk-GBGJ6WSO.js → chunk-ZLS6PU2O.js} +3 -3
  237. package/dist/{chunk-JZOOX3PQ.js → chunk-ZOSD4FXV.js} +3 -3
  238. package/dist/chunk-ZPDDEVQX.js +47 -0
  239. package/dist/{chunk-2TTSX7NB.js → chunk-ZQLRCA2V.js} +7 -7
  240. package/dist/{chunk-ESP3RUUR.js → chunk-ZX7235KR.js} +128 -54
  241. package/dist/{chunk-MH4XG5XS.js → chunk-ZZFHLRQW.js} +18 -16
  242. package/dist/files.json +559 -439
  243. package/dist/packages/sdk/npm/index.js +4679 -2672
  244. package/dist/packages/ui/dist/assets/{elk-api-BuFBvNyV.js → elk-api-CowTnhEJ.js} +2 -2
  245. package/dist/packages/ui/dist/assets/index-Dw20IRhQ.css +1 -0
  246. package/dist/packages/ui/dist/assets/index-z2wv0d5d.js +47 -0
  247. package/dist/packages/ui/dist/index.html +2 -2
  248. package/package.json +3 -3
  249. package/dist/chunk-25TJC2CL.js +0 -48
  250. package/dist/chunk-3Q5RHGCA.js +0 -47
  251. package/dist/chunk-4W7FOGAB.js +0 -41
  252. package/dist/chunk-6AF3CVJT.js +0 -48
  253. package/dist/chunk-A3KEXFQS.js +0 -34
  254. package/dist/chunk-BAUINGGJ.js +0 -41
  255. package/dist/chunk-BOFUCRJX.js +0 -47
  256. package/dist/chunk-GGKGILIP.js +0 -54
  257. package/dist/chunk-IKN6C67W.js +0 -53
  258. package/dist/chunk-K7MYVIFK.js +0 -54
  259. package/dist/chunk-KHA5LVPE.js +0 -34
  260. package/dist/chunk-LSXGM6MB.js +0 -37
  261. package/dist/chunk-M54TDRM3.js +0 -29
  262. package/dist/chunk-M5GF4NAB.js +0 -45
  263. package/dist/chunk-UTZGBCXE.js +0 -38
  264. package/dist/chunk-UVTSMBM4.js +0 -43
  265. package/dist/chunk-XXE3S3OG.js +0 -44
  266. package/dist/chunk-YJRQCUVJ.js +0 -43
  267. package/dist/chunk-ZFTK4BDN.js +0 -41
  268. package/dist/chunk-ZMARAW37.js +0 -38
  269. package/dist/packages/ui/dist/assets/index-C5QnK82A.css +0 -1
  270. package/dist/packages/ui/dist/assets/index-CQ0a1cBg.js +0 -29
@@ -5,13 +5,14 @@ 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-RBXDHCN7.js";
8
+ } from "./chunk-TWQRPM76.js";
9
9
  import {
10
+ JOINED_BY_PERSON,
10
11
  ZipError,
11
12
  peekZip,
12
13
  readZip,
13
14
  require_dist
14
- } from "./chunk-YK6CSODO.js";
15
+ } from "./chunk-PAINMSID.js";
15
16
  import {
16
17
  __toESM
17
18
  } from "./chunk-TV45EUGM.js";
@@ -92,9 +93,9 @@ function isoDate(value) {
92
93
  return !Number.isNaN(d.getTime()) && d.toISOString().startsWith(m[0]) ? m[0] : void 0;
93
94
  }
94
95
  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);
96
+ const clean2 = (s) => s && s.trim() ? s.trim() : void 0;
97
+ const version = clean2(meta.version);
98
+ const author = clean2(meta.author);
98
99
  return {
99
100
  schemaVersion: 1,
100
101
  kind: "SourceDocument",
@@ -630,7 +631,7 @@ function reconcile(input) {
630
631
  add({
631
632
  key: i.id,
632
633
  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.`,
634
+ 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
635
  records: [i.id],
635
636
  suggestion: {
636
637
  text: `Add it to the diagram, or record why it is left out`,
@@ -1739,7 +1740,7 @@ function readHtml(src) {
1739
1740
  }
1740
1741
  if (!meta.date)
1741
1742
  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);
1743
+ 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
1744
  const s = new Sections();
1744
1745
  const tables = [];
1745
1746
  let line = "";
@@ -1752,7 +1753,7 @@ function readHtml(src) {
1752
1753
  let lineNo = 1;
1753
1754
  const lineAt = (to) => {
1754
1755
  for (; pos < to; pos++)
1755
- if (clean.charCodeAt(pos) === 10)
1756
+ if (clean2.charCodeAt(pos) === 10)
1756
1757
  lineNo++;
1757
1758
  return lineNo;
1758
1759
  };
@@ -1779,8 +1780,8 @@ function readHtml(src) {
1779
1780
  line += t;
1780
1781
  }
1781
1782
  };
1782
- for (let m = tag.exec(clean); m; m = tag.exec(clean)) {
1783
- text(clean.slice(last, m.index), last);
1783
+ for (let m = tag.exec(clean2); m; m = tag.exec(clean2)) {
1784
+ text(clean2.slice(last, m.index), last);
1784
1785
  last = tag.lastIndex;
1785
1786
  const close = m[1] === "/";
1786
1787
  const name = m[2].toLowerCase();
@@ -1832,7 +1833,7 @@ function readHtml(src) {
1832
1833
  else if (BLOCK.has(name) && !heading && cell === void 0)
1833
1834
  flush();
1834
1835
  }
1835
- text(clean.slice(last), last);
1836
+ text(clean2.slice(last), last);
1836
1837
  flush();
1837
1838
  return {
1838
1839
  ...title ? { title } : {},
@@ -1884,7 +1885,11 @@ function wordText(p) {
1884
1885
  out += "\n";
1885
1886
  else if (c.name === "noBreakHyphen")
1886
1887
  out += "-";
1887
- else if (c.name !== "pPr" && c.name !== "rPr" && c.name !== "del")
1888
+ else if (c.name === "AlternateContent") {
1889
+ const one = elements(c).find((x) => x.name === "Choice") ?? elements(c).find((x) => x.name === "Fallback");
1890
+ if (one)
1891
+ walk(one);
1892
+ } else if (c.name !== "pPr" && c.name !== "rPr" && c.name !== "del" && c.name !== "moveFrom")
1888
1893
  walk(c);
1889
1894
  }
1890
1895
  };
@@ -2036,29 +2041,60 @@ var colIndex = (ref2) => {
2036
2041
  return n - 1;
2037
2042
  };
2038
2043
  var stringItem = (si) => elements(si).flatMap((c) => c.name === "t" ? [c] : c.name === "r" ? childrenNamed(c, "t") : []).map(textOf).join("");
2039
- function readXlsx(zip) {
2044
+ function readXlsx(zip, maxCells = MAX_CELLS) {
2040
2045
  const wb = need(zip, "xl/workbook.xml");
2041
2046
  const rels = relationships(zip.text("xl/_rels/workbook.xml.rels"));
2042
2047
  const shared = childrenNamed(parseXmlTree(zip.text("xl/sharedStrings.xml") ?? ""), "si").map(stringItem);
2043
2048
  const { title, meta } = coreProps(zip);
2044
2049
  const s = new Sections();
2045
2050
  const tables = [];
2051
+ const notes = [];
2052
+ let budget = maxCells;
2053
+ let unread = false;
2046
2054
  findAll(child(wb, "sheets"), "sheet").forEach((sheet, i) => {
2055
+ const name = sheet.attrs.name ?? `Sheet ${i + 1}`;
2047
2056
  const target = rels.get(relId(sheet) ?? "");
2048
2057
  const part = target ? resolvePart("xl", target) : void 0;
2049
2058
  const doc = part ? parseXmlTree(zip.text(part) ?? "") : void 0;
2050
2059
  const rows = [];
2051
2060
  let prev;
2061
+ let squeezed = false;
2052
2062
  for (const row of findAll(child(doc, "sheetData"), "row")) {
2063
+ if (budget <= 0) {
2064
+ if (childrenNamed(row, "c").length)
2065
+ unread = true;
2066
+ if (unread)
2067
+ break;
2068
+ continue;
2069
+ }
2053
2070
  const r = Number(row.attrs.r) || (prev ?? 0) + 1;
2071
+ if (r > EXCEL_ROWS) {
2072
+ notes.push(`${name}: row ${r} is past Excel's last row; skipped.`);
2073
+ continue;
2074
+ }
2054
2075
  if (prev !== void 0)
2055
- for (let k = prev + 1; k < r; k++)
2076
+ for (let k = prev + 1; k < Math.min(r, prev + 1 + MAX_GAP); k++)
2056
2077
  rows.push([]);
2057
2078
  prev = r;
2058
2079
  const cells2 = [];
2059
2080
  let next = 0;
2081
+ let shift = 0;
2060
2082
  for (const c of childrenNamed(row, "c")) {
2061
- const at = c.attrs.r ? colIndex(c.attrs.r) : next;
2083
+ const col = c.attrs.r ? colIndex(c.attrs.r) : next;
2084
+ if (col >= EXCEL_COLUMNS)
2085
+ continue;
2086
+ if (budget <= 0) {
2087
+ unread = true;
2088
+ break;
2089
+ }
2090
+ budget--;
2091
+ next = col + 1;
2092
+ let at = Math.max(0, col - shift);
2093
+ if (at - cells2.length > MAX_GAP) {
2094
+ shift += at - cells2.length - MAX_GAP;
2095
+ at = cells2.length + MAX_GAP;
2096
+ squeezed = true;
2097
+ }
2062
2098
  const v = textOf(child(c, "v"));
2063
2099
  let value;
2064
2100
  switch (c.attrs.t) {
@@ -2077,31 +2113,61 @@ function readXlsx(zip) {
2077
2113
  while (cells2.length < at)
2078
2114
  cells2.push("");
2079
2115
  cells2[at] = value;
2080
- next = at + 1;
2081
2116
  }
2082
2117
  while (cells2.length && cells2.at(-1) === "")
2083
2118
  cells2.pop();
2084
2119
  rows.push(cells2);
2085
2120
  }
2121
+ if (squeezed)
2122
+ notes.push(`${name}: more than ${MAX_GAP} blank columns between cells were left out.`);
2086
2123
  tables.push(rows);
2087
- s.heading(sheet.attrs.name ?? `Sheet ${i + 1}`, 1, { page: i + 1 });
2124
+ s.heading(name, 1, { page: i + 1 });
2088
2125
  for (const r of rows)
2089
2126
  s.add(r.join(" "));
2090
2127
  });
2091
- return { ...title ? { title } : {}, sections: s.done(), tables, meta, notes: [] };
2128
+ if (unread)
2129
+ notes.push(`The workbook has more than ${maxCells} cells; the rest wasn't read.`);
2130
+ return { ...title ? { title } : {}, sections: s.done(), tables, meta, notes };
2092
2131
  }
2132
+ var EXCEL_ROWS = 1048576;
2133
+ var EXCEL_COLUMNS = 16384;
2134
+ var MAX_GAP = 1e3;
2135
+ var MAX_CELLS = 2e6;
2093
2136
 
2094
2137
  // packages/ingestors/dist/pdf.js
2095
2138
  import { constants, inflateSync } from "node:zlib";
2096
2139
  var NO_TEXT = "No text was found in this PDF. It may be a scanned image, so a person needs to read it.";
2097
2140
  var MAX_STREAM = 64 * 1024 * 1024;
2141
+ var MAX_DECODED = 256 * 1024 * 1024;
2142
+ var MAX_PACKED = 1e5;
2143
+ var MAX_PAGES = 1e4;
2144
+ var MAX_TEXT = 64 * 1024 * 1024;
2098
2145
  var refs = (s) => [...s.matchAll(/(\d+)\s+\d+\s+R\b/g)].map((m) => Number(m[1]));
2099
2146
  var ref = (dict, key) => {
2100
2147
  const m = new RegExp(`/${key}\\s+(\\d+)\\s+\\d+\\s+R\\b`).exec(dict);
2101
2148
  return m ? Number(m[1]) : void 0;
2102
2149
  };
2103
2150
  var isType = (dict, type) => new RegExp(`/Type\\s*/${type}(?![A-Za-z])`).test(dict);
2104
- function decodeStream(o) {
2151
+ var tooMuch = () => new ReadError(`This PDF's streams inflate to more than ${MAX_DECODED / 1024 / 1024} MB, so it isn't read`);
2152
+ function decodeStream(o, d) {
2153
+ if (d.cache.has(o))
2154
+ return d.cache.get(o);
2155
+ if (o.stream && d.left <= 0)
2156
+ throw tooMuch();
2157
+ const max = Math.min(MAX_STREAM, d.left);
2158
+ const out = decodeOnce(o, max);
2159
+ if (out === "too-big") {
2160
+ if (max < MAX_STREAM)
2161
+ throw tooMuch();
2162
+ d.cache.set(o, void 0);
2163
+ return void 0;
2164
+ }
2165
+ d.cache.set(o, out);
2166
+ if (out)
2167
+ d.left -= out.length;
2168
+ return out;
2169
+ }
2170
+ function decodeOnce(o, max) {
2105
2171
  if (!o.stream)
2106
2172
  return void 0;
2107
2173
  const filter = /\/Filter\s*(\[[^\]]*\]|\/\w+)/.exec(o.dict)?.[1];
@@ -2110,20 +2176,23 @@ function decodeStream(o) {
2110
2176
  const names = filter.match(/\/\w+/g) ?? [];
2111
2177
  if (names.length !== 1 || names[0] !== "/FlateDecode")
2112
2178
  return void 0;
2179
+ const big = (e) => e.code === "ERR_BUFFER_TOO_LARGE";
2113
2180
  try {
2114
- return inflateSync(o.stream, { maxOutputLength: MAX_STREAM });
2115
- } catch {
2181
+ return inflateSync(o.stream, { maxOutputLength: max });
2182
+ } catch (e) {
2183
+ if (big(e))
2184
+ return "too-big";
2116
2185
  try {
2117
2186
  return inflateSync(o.stream, {
2118
2187
  finishFlush: constants.Z_SYNC_FLUSH,
2119
- maxOutputLength: MAX_STREAM
2188
+ maxOutputLength: max
2120
2189
  });
2121
- } catch {
2122
- return void 0;
2190
+ } catch (e2) {
2191
+ return big(e2) ? "too-big" : void 0;
2123
2192
  }
2124
2193
  }
2125
2194
  }
2126
- function objects(src, bytes) {
2195
+ function objects(src, bytes, d) {
2127
2196
  const out = /* @__PURE__ */ new Map();
2128
2197
  const re = /(\d+)\s+(\d+)\s+obj\b/g;
2129
2198
  for (let m = re.exec(src); m; m = re.exec(src)) {
@@ -2156,12 +2225,14 @@ function objects(src, bytes) {
2156
2225
  for (const o of [...out.values()]) {
2157
2226
  if (!isType(o.dict, "ObjStm"))
2158
2227
  continue;
2159
- const data = decodeStream(o)?.toString("latin1");
2160
- const n = Number(/\/N\s+(\d+)/.exec(o.dict)?.[1] ?? 0);
2228
+ const data = decodeStream(o, d)?.toString("latin1");
2161
2229
  const first = Number(/\/First\s+(\d+)/.exec(o.dict)?.[1] ?? 0);
2162
- if (!data || !n)
2230
+ if (!data)
2163
2231
  continue;
2164
2232
  const head = data.slice(0, first).trim().split(/\s+/).map(Number);
2233
+ const n = Math.min(Number(/\/N\s+(\d+)/.exec(o.dict)?.[1] ?? 0), Math.floor(head.length / 2), MAX_PACKED);
2234
+ if (!n)
2235
+ continue;
2165
2236
  for (let k = 0; k < n; k++) {
2166
2237
  const num = head[2 * k];
2167
2238
  const off = first + head[2 * k + 1];
@@ -2230,28 +2301,86 @@ function readLiteral(src, i) {
2230
2301
  return [src.slice(i, k), k + 1];
2231
2302
  }
2232
2303
  function hexBytes(h) {
2233
- const clean = h.replace(/[^0-9a-fA-F]/g, "");
2234
- const even = clean.length % 2 ? clean + "0" : clean;
2304
+ const clean2 = h.replace(/[^0-9a-fA-F]/g, "");
2305
+ const even = clean2.length % 2 ? clean2 + "0" : clean2;
2235
2306
  const out = [];
2236
2307
  for (let i = 0; i < even.length; i += 2)
2237
2308
  out.push(parseInt(even.slice(i, i + 2), 16));
2238
2309
  return out;
2239
2310
  }
2240
- function contentText(src) {
2311
+ function parseToUnicode(cmap) {
2312
+ const map = /* @__PURE__ */ new Map();
2313
+ const utf16 = (h) => {
2314
+ const b = hexBytes(h);
2315
+ let out = "";
2316
+ for (let i = 0; i + 1 < b.length; i += 2)
2317
+ out += String.fromCharCode(b[i] << 8 | b[i + 1]);
2318
+ return out;
2319
+ };
2320
+ const space = /begincodespacerange\s*<([0-9a-fA-F]+)>/.exec(cmap)?.[1];
2321
+ const bytes = space && space.length <= 2 ? 1 : 2;
2322
+ for (const block of cmap.matchAll(/beginbfchar([\s\S]*?)endbfchar/g))
2323
+ for (const m of block[1].matchAll(/<([0-9a-fA-F]+)>\s*<([0-9a-fA-F]*)>/g))
2324
+ map.set(parseInt(m[1], 16), utf16(m[2]));
2325
+ for (const block of cmap.matchAll(/beginbfrange([\s\S]*?)endbfrange/g))
2326
+ for (const m of block[1].matchAll(/<([0-9a-fA-F]+)>\s*<([0-9a-fA-F]+)>\s*(?:<([0-9a-fA-F]*)>|\[([^\]]*)\])/g)) {
2327
+ const lo = parseInt(m[1], 16);
2328
+ const hi = Math.min(parseInt(m[2], 16), lo + 65535);
2329
+ if (m[3] !== void 0) {
2330
+ const start = utf16(m[3]);
2331
+ const last = start.charCodeAt(start.length - 1);
2332
+ for (let c = lo; c <= hi; c++)
2333
+ map.set(c, start.slice(0, -1) + String.fromCharCode(last + (c - lo)));
2334
+ } else {
2335
+ const each = [...m[4].matchAll(/<([0-9a-fA-F]*)>/g)].map((x) => utf16(x[1]));
2336
+ each.forEach((t, k) => lo + k <= hi && map.set(lo + k, t));
2337
+ }
2338
+ }
2339
+ return { map, bytes };
2340
+ }
2341
+ function fontText(b, f) {
2342
+ if (!f?.map)
2343
+ return bytesText(b);
2344
+ let out = "";
2345
+ for (let i = 0; i < b.length; i += f.bytes) {
2346
+ const code = f.bytes === 2 ? b[i] << 8 | (b[i + 1] ?? 0) : b[i];
2347
+ out += f.map.get(code) ?? (f.bytes === 1 ? String.fromCharCode(code) : "");
2348
+ }
2349
+ return clean(out);
2350
+ }
2351
+ function clean(s) {
2352
+ let out = "";
2353
+ for (const ch of s) {
2354
+ const c = ch.charCodeAt(0);
2355
+ if (c >= 32 ? c !== 127 : c === 9 || c === 10 || c === 13)
2356
+ out += ch;
2357
+ }
2358
+ return out;
2359
+ }
2360
+ function contentText(src, fonts = /* @__PURE__ */ new Map(), said = {}) {
2241
2361
  const lines = [];
2242
2362
  let cur = "";
2363
+ let font;
2243
2364
  const newline = () => {
2244
2365
  if (cur.trim())
2245
2366
  lines.push(cur.replace(/\s+/g, " ").trim());
2246
2367
  cur = "";
2247
2368
  };
2369
+ const text = (b) => {
2370
+ if (font?.unreadable) {
2371
+ if (b.length)
2372
+ said.unreadable = true;
2373
+ return "";
2374
+ }
2375
+ return fontText(b, font);
2376
+ };
2248
2377
  const show = (tok) => {
2249
2378
  if (tok?.t === "str")
2250
- cur += bytesText(tok.v);
2379
+ cur += text(tok.v);
2251
2380
  else if (tok?.t === "arr")
2252
2381
  for (const x of tok.v) {
2253
2382
  if (x.t === "str")
2254
- cur += bytesText(x.v);
2383
+ cur += text(x.v);
2255
2384
  else if (x.t === "num" && x.v < -200)
2256
2385
  cur += " ";
2257
2386
  }
@@ -2289,7 +2418,7 @@ function contentText(src) {
2289
2418
  i++;
2290
2419
  } else if (c === "/") {
2291
2420
  const m = /^\/[^\s/[\]()<>{}%]*/.exec(src.slice(i, i + 128));
2292
- push({ t: "other" });
2421
+ push({ t: "name", v: m[0].slice(1) });
2293
2422
  i += m[0].length;
2294
2423
  } else {
2295
2424
  const m = /^[+-]?(\d+\.?\d*|\.\d+)/.exec(src.slice(i, i + 32));
@@ -2323,6 +2452,11 @@ function contentText(src) {
2323
2452
  lastY = y;
2324
2453
  break;
2325
2454
  }
2455
+ case "Tf": {
2456
+ const name = stack[stack.length - 2];
2457
+ font = name?.t === "name" ? fonts.get(name.v) : void 0;
2458
+ break;
2459
+ }
2326
2460
  case "Tj":
2327
2461
  case "TJ":
2328
2462
  show(stack.at(-1));
@@ -2368,7 +2502,13 @@ function pdfDate(s) {
2368
2502
  function readPdf(bytes) {
2369
2503
  const buf = Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength);
2370
2504
  const src = buf.toString("latin1");
2371
- const objs = objects(src, buf);
2505
+ const decoding = {
2506
+ cache: /* @__PURE__ */ new Map(),
2507
+ texts: /* @__PURE__ */ new Map(),
2508
+ left: MAX_DECODED,
2509
+ textLeft: MAX_TEXT
2510
+ };
2511
+ const objs = objects(src, buf, decoding);
2372
2512
  const trailers = [...src.matchAll(/trailer\s*(<<[\s\S]*?>>)/g)].map((m) => m[1]);
2373
2513
  for (const o of objs.values())
2374
2514
  if (isType(o.dict, "XRef"))
@@ -2428,18 +2568,109 @@ function readPdf(bytes) {
2428
2568
  pages2.push(n);
2429
2569
  }
2430
2570
  const s = new Sections();
2571
+ if (pages2.length > MAX_PAGES) {
2572
+ notes.push(`This PDF has ${pages2.length} pages; the first ${MAX_PAGES} are read.`);
2573
+ pages2.length = MAX_PAGES;
2574
+ }
2575
+ const dictOf = (owner, key) => {
2576
+ const r = ref(owner, key);
2577
+ if (r !== void 0)
2578
+ return objs.get(r)?.dict;
2579
+ const at = new RegExp(`/${key}\\s*<<`).exec(owner);
2580
+ if (!at)
2581
+ return void 0;
2582
+ let depth = 0;
2583
+ for (let k = at.index + at[0].length - 2; k < owner.length - 1; k++) {
2584
+ if (owner[k] === "<" && owner[k + 1] === "<") {
2585
+ depth++;
2586
+ k++;
2587
+ } else if (owner[k] === ">" && owner[k + 1] === ">") {
2588
+ if (--depth === 0)
2589
+ return owner.slice(at.index + at[0].length - 2, k + 2);
2590
+ k++;
2591
+ }
2592
+ }
2593
+ return void 0;
2594
+ };
2595
+ const fontCache = /* @__PURE__ */ new Map();
2596
+ const fontOf = (no) => {
2597
+ const had = fontCache.get(no);
2598
+ if (had)
2599
+ return had;
2600
+ const d = objs.get(no)?.dict ?? "";
2601
+ const type0 = /\/Subtype\s*\/Type0\b/.test(d);
2602
+ const tu = ref(d, "ToUnicode");
2603
+ const cmap = tu !== void 0 ? objs.get(tu) : void 0;
2604
+ const text = cmap ? decodeStream(cmap, decoding)?.toString("latin1") : void 0;
2605
+ const f = text ? (() => {
2606
+ const t = parseToUnicode(text);
2607
+ return { map: t.map, bytes: type0 ? 2 : 1 };
2608
+ })() : type0 ? { bytes: 2, unreadable: true } : { bytes: 1 };
2609
+ fontCache.set(no, f);
2610
+ return f;
2611
+ };
2612
+ const pageFonts = (pageDict) => {
2613
+ const out = /* @__PURE__ */ new Map();
2614
+ let d = pageDict;
2615
+ for (let up = 0; d && up < 32; up++) {
2616
+ const res = dictOf(d, "Resources");
2617
+ const fd = res ? dictOf(res, "Font") : void 0;
2618
+ if (fd) {
2619
+ for (const m of fd.matchAll(/\/([^\s/[\]()<>{}%]+)\s+(\d+)\s+\d+\s+R\b/g))
2620
+ if (!out.has(m[1]))
2621
+ out.set(m[1], fontOf(Number(m[2])));
2622
+ break;
2623
+ }
2624
+ const parent = ref(d, "Parent");
2625
+ d = parent !== void 0 ? objs.get(parent)?.dict : void 0;
2626
+ }
2627
+ return out;
2628
+ };
2629
+ let unreadablePages = 0;
2431
2630
  pages2.forEach((n, i) => {
2432
2631
  const dict = objs.get(n).dict;
2632
+ const fonts = pageFonts(dict);
2633
+ const key = [...fonts].map(([k, f]) => `${k}:${f.map ? "m" : f.unreadable ? "u" : "l"}`).join(",");
2634
+ const said = {};
2433
2635
  const contents = /\/Contents\s*(\[[^\]]*\]|\d+\s+\d+\s+R)/.exec(dict)?.[1] ?? "";
2434
2636
  let streams = refs(contents);
2435
2637
  if (streams.length === 1 && !objs.get(streams[0])?.stream)
2436
2638
  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);
2639
+ const text = streams.map((r) => objs.get(r)).flatMap((o) => {
2640
+ if (!o)
2641
+ return [];
2642
+ let byFonts = decoding.texts.get(o);
2643
+ if (!byFonts)
2644
+ decoding.texts.set(o, byFonts = /* @__PURE__ */ new Map());
2645
+ let hit = byFonts.get(key);
2646
+ if (!hit) {
2647
+ const t = decodeStream(o, decoding)?.toString("latin1");
2648
+ const one = {};
2649
+ hit = {
2650
+ lines: t === void 0 ? [] : contentText(t, fonts, one),
2651
+ unreadable: !!one.unreadable
2652
+ };
2653
+ byFonts.set(key, hit);
2654
+ }
2655
+ if (hit.unreadable)
2656
+ said.unreadable = true;
2657
+ const lines = hit.lines;
2658
+ decoding.textLeft -= lines.reduce((n2, l) => n2 + l.length, 0);
2659
+ if (decoding.textLeft < 0)
2660
+ throw new ReadError(`This PDF's pages hold more than ${MAX_TEXT / 1024 / 1024} MB of text, so it isn't read`);
2661
+ return lines;
2662
+ });
2663
+ if (said.unreadable)
2664
+ unreadablePages++;
2438
2665
  s.heading("", 0, { page: i + 1 });
2439
2666
  for (const l of text)
2440
2667
  s.add(l);
2441
2668
  });
2442
2669
  const sections = s.done();
2670
+ if (unreadablePages) {
2671
+ 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"}.`);
2672
+ meta.flags = ["needs-reading"];
2673
+ }
2443
2674
  if (!sections.length) {
2444
2675
  notes.push(NO_TEXT);
2445
2676
  meta.flags = ["needs-reading"];
@@ -2882,6 +3113,7 @@ var TRAFFIC_SOURCES = {
2882
3113
  export {
2883
3114
  curatedAliases,
2884
3115
  resolveNames,
3116
+ labelText,
2885
3117
  readDrawio,
2886
3118
  drawioIngestor,
2887
3119
  reconcile,
@@ -16,22 +16,22 @@ import {
16
16
  featureSuggestLinks,
17
17
  featureSuggestNames,
18
18
  featureTag
19
- } from "./chunk-CDLTRJ4N.js";
19
+ } from "./chunk-A2G72UI4.js";
20
20
  import "./chunk-VOGCSYOI.js";
21
- import "./chunk-IOW6BF3U.js";
22
- import "./chunk-43E6XX67.js";
23
- import "./chunk-V3UEPUHT.js";
24
- import "./chunk-EZBAS5BL.js";
25
- import "./chunk-KCQS52TH.js";
26
- import "./chunk-IPSFMTK2.js";
27
- import "./chunk-TNCROWPQ.js";
28
- import "./chunk-7IM4BVVH.js";
29
- import "./chunk-RBXDHCN7.js";
30
- import "./chunk-ZQC7MNQB.js";
31
- import "./chunk-TLDL2ZZI.js";
32
- import "./chunk-QNMLLYTN.js";
33
- import "./chunk-YK6CSODO.js";
34
- import "./chunk-MMB2OHUY.js";
21
+ import "./chunk-HSZMPH5T.js";
22
+ import "./chunk-D2WSW4GU.js";
23
+ import "./chunk-4KNOJC6J.js";
24
+ import "./chunk-4SLBCEPD.js";
25
+ import "./chunk-64AADMTW.js";
26
+ import "./chunk-JYMIB5XY.js";
27
+ import "./chunk-CPK7QSBG.js";
28
+ import "./chunk-YO2PKTXT.js";
29
+ import "./chunk-TWQRPM76.js";
30
+ import "./chunk-XOL3GFW2.js";
31
+ import "./chunk-QHJJMZLX.js";
32
+ import "./chunk-7AB6OWTV.js";
33
+ import "./chunk-PAINMSID.js";
34
+ import "./chunk-ODMBPDDV.js";
35
35
  import "./chunk-TV45EUGM.js";
36
36
  export {
37
37
  catalogMigrate,