@graphty/graph-io 0.3.47 → 0.3.48

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 (460) hide show
  1. package/dist/chunks/{approximations-wWjCRzKj.js → approximations-C2riR4NT.js} +2 -2
  2. package/dist/chunks/{approximations-wWjCRzKj.js.map → approximations-C2riR4NT.js.map} +1 -1
  3. package/dist/chunks/{block-DiGq58c3.js → block-Cu22ewuS.js} +92 -21
  4. package/dist/chunks/block-Cu22ewuS.js.map +1 -0
  5. package/dist/chunks/{choose--jM0yYCo.js → choose-Cdx6Enl2.js} +3 -3
  6. package/dist/chunks/{choose--jM0yYCo.js.map → choose-Cdx6Enl2.js.map} +1 -1
  7. package/dist/chunks/codes-CV_Bhcyi.js +153 -0
  8. package/dist/chunks/codes-CV_Bhcyi.js.map +1 -0
  9. package/dist/chunks/{constants-BKwqelYD.js → constants-D0LqcsLJ.js} +2 -2
  10. package/dist/chunks/{constants-BKwqelYD.js.map → constants-D0LqcsLJ.js.map} +1 -1
  11. package/dist/chunks/context-cgmmOxZ2.js +663 -0
  12. package/dist/chunks/context-cgmmOxZ2.js.map +1 -0
  13. package/dist/chunks/credentials-BiQsnMTb.js +347 -0
  14. package/dist/chunks/credentials-BiQsnMTb.js.map +1 -0
  15. package/dist/chunks/cx-export-BEeF6ymo.js +259 -0
  16. package/dist/chunks/cx-export-BEeF6ymo.js.map +1 -0
  17. package/dist/chunks/descriptor-BJ-W0Jd-.js +137 -0
  18. package/dist/chunks/descriptor-BJ-W0Jd-.js.map +1 -0
  19. package/dist/chunks/descriptor-C-YDhtsn.js +48 -0
  20. package/dist/chunks/descriptor-C-YDhtsn.js.map +1 -0
  21. package/dist/chunks/{emit-CwU8cUmG.js → emit-CD8xnY8s.js} +70 -10
  22. package/dist/chunks/emit-CD8xnY8s.js.map +1 -0
  23. package/dist/chunks/{escape-CgzxiYPg.js → escape-DH2Egt-l.js} +12 -12
  24. package/dist/chunks/{escape-CgzxiYPg.js.map → escape-DH2Egt-l.js.map} +1 -1
  25. package/dist/chunks/{export-BvqAXCKh.js → export-CZ7VRm4I.js} +53 -1443
  26. package/dist/chunks/export-CZ7VRm4I.js.map +1 -0
  27. package/dist/chunks/{exporter-DndFlGSa.js → exporter-BIdaoIgh.js} +7 -6
  28. package/dist/chunks/{exporter-DndFlGSa.js.map → exporter-BIdaoIgh.js.map} +1 -1
  29. package/dist/chunks/{exporter-CJgfhF-l.js → exporter-ChjL5fmP.js} +8 -7
  30. package/dist/chunks/{exporter-CJgfhF-l.js.map → exporter-ChjL5fmP.js.map} +1 -1
  31. package/dist/chunks/{exporter--Mk9gXCJ.js → exporter-Dcw7Ldtq.js} +6 -4
  32. package/dist/chunks/{exporter--Mk9gXCJ.js.map → exporter-Dcw7Ldtq.js.map} +1 -1
  33. package/dist/chunks/exporter-DtVU80Fa.js +1008 -0
  34. package/dist/chunks/exporter-DtVU80Fa.js.map +1 -0
  35. package/dist/chunks/{exporter-CrDWIyiq.js → exporter-bxxjOrDZ.js} +11 -9
  36. package/dist/chunks/{exporter-CrDWIyiq.js.map → exporter-bxxjOrDZ.js.map} +1 -1
  37. package/dist/chunks/format-BMS-1Nxb.js +64 -0
  38. package/dist/chunks/format-BMS-1Nxb.js.map +1 -0
  39. package/dist/chunks/{generic-Dq1ntt9q.js → generic-CP6YD34u.js} +4 -4
  40. package/dist/chunks/{generic-Dq1ntt9q.js.map → generic-CP6YD34u.js.map} +1 -1
  41. package/dist/chunks/{importer-DiZRmOQG.js → importer-B87_fmVx.js} +13 -17
  42. package/dist/chunks/importer-B87_fmVx.js.map +1 -0
  43. package/dist/chunks/{importer-BSvfrX_h.js → importer-Bji2MeWr.js} +18 -1014
  44. package/dist/chunks/importer-Bji2MeWr.js.map +1 -0
  45. package/dist/chunks/{importer-COTK9Tsl.js → importer-CB_zV5_L.js} +14 -11
  46. package/dist/chunks/importer-CB_zV5_L.js.map +1 -0
  47. package/dist/chunks/{importer-e6LGpqHB.js → importer-CVT-JyDE.js} +12 -9
  48. package/dist/chunks/importer-CVT-JyDE.js.map +1 -0
  49. package/dist/chunks/{importer-yh_aBCU6.js → importer-Cyy6UseH.js} +7 -6
  50. package/dist/chunks/{importer-yh_aBCU6.js.map → importer-Cyy6UseH.js.map} +1 -1
  51. package/dist/chunks/{importer-iFYPEKaJ.js → importer-DPZDN40-.js} +14 -10
  52. package/dist/chunks/{importer-iFYPEKaJ.js.map → importer-DPZDN40-.js.map} +1 -1
  53. package/dist/chunks/{importer-CMmeMWlC.js → importer-e3huMZbm.js} +8 -260
  54. package/dist/chunks/importer-e3huMZbm.js.map +1 -0
  55. package/dist/chunks/input-Ccg9I22A.js +1397 -0
  56. package/dist/chunks/input-Ccg9I22A.js.map +1 -0
  57. package/dist/chunks/{json-elements-DJZRZ6jd.js → json-elements-By172SVq.js} +4 -4
  58. package/dist/chunks/{json-elements-DJZRZ6jd.js.map → json-elements-By172SVq.js.map} +1 -1
  59. package/dist/chunks/{lexicon-CT69Kd87.js → lexicon-u2SI5xcx.js} +19 -5
  60. package/dist/chunks/lexicon-u2SI5xcx.js.map +1 -0
  61. package/dist/chunks/{ontology-export-G4MqRdux.js → ontology-export-BwgMyuF0.js} +4 -3
  62. package/dist/chunks/{ontology-export-G4MqRdux.js.map → ontology-export-BwgMyuF0.js.map} +1 -1
  63. package/dist/chunks/{records-CiaWZrFH.js → records-Cgvxz-Vx.js} +2 -2
  64. package/dist/chunks/{records-CiaWZrFH.js.map → records-Cgvxz-Vx.js.map} +1 -1
  65. package/dist/chunks/{format-BpQBx8MZ.js → report-CgdsL9Hb.js} +72 -129
  66. package/dist/chunks/report-CgdsL9Hb.js.map +1 -0
  67. package/dist/chunks/sigv4-LkAzsLAu.js +247 -0
  68. package/dist/chunks/sigv4-LkAzsLAu.js.map +1 -0
  69. package/dist/chunks/{styles-BQnsga7p.js → styles-CaABMoO1.js} +76 -43
  70. package/dist/chunks/styles-CaABMoO1.js.map +1 -0
  71. package/dist/chunks/{styles-D3fRphrO.js → styles-P_gmFAOi.js} +101 -21
  72. package/dist/chunks/styles-P_gmFAOi.js.map +1 -0
  73. package/dist/chunks/{styles-yed-BF5x3_Y5.js → styles-yed-Cs1nmrjn.js} +60 -20
  74. package/dist/chunks/styles-yed-Cs1nmrjn.js.map +1 -0
  75. package/dist/chunks/{text-CzJNFOS9.js → text-BuKQVMz2.js} +2 -2
  76. package/dist/chunks/{text-CzJNFOS9.js.map → text-BuKQVMz2.js.map} +1 -1
  77. package/dist/chunks/{writer-DMKvthQE.js → writer-DvHTl36J.js} +5 -4
  78. package/dist/chunks/writer-DvHTl36J.js.map +1 -0
  79. package/dist/csv.js +7 -5
  80. package/dist/csv.js.map +1 -1
  81. package/dist/cx.js +5 -4
  82. package/dist/cx.js.map +1 -1
  83. package/dist/cx2.js +2 -2
  84. package/dist/cys.js +1 -1
  85. package/dist/dot.js +2 -2
  86. package/dist/gexf.js +7 -5
  87. package/dist/gexf.js.map +1 -1
  88. package/dist/gml.js +16 -13
  89. package/dist/gml.js.map +1 -1
  90. package/dist/graph-io.js +1181 -224
  91. package/dist/graph-io.js.map +1 -1
  92. package/dist/graphml.js +3 -3
  93. package/dist/json.js +1 -1
  94. package/dist/neo4j.js +6 -4
  95. package/dist/neo4j.js.map +1 -1
  96. package/dist/obo.js +1 -1
  97. package/dist/pajek.js +1 -1
  98. package/dist/sources-cypher.d.ts +1 -0
  99. package/dist/sources-cypher.js +1236 -0
  100. package/dist/sources-cypher.js.map +1 -0
  101. package/dist/sources-ndex.d.ts +1 -0
  102. package/dist/sources-ndex.js +278 -0
  103. package/dist/sources-ndex.js.map +1 -0
  104. package/dist/sources-rest.d.ts +1 -0
  105. package/dist/sources-rest.js +1367 -0
  106. package/dist/sources-rest.js.map +1 -0
  107. package/dist/src/common/report.d.ts +6 -3
  108. package/dist/src/common/report.d.ts.map +1 -1
  109. package/dist/src/common/report.js +15 -9
  110. package/dist/src/common/report.js.map +1 -1
  111. package/dist/src/formats/cx/styles.d.ts.map +1 -1
  112. package/dist/src/formats/cx/styles.js +1 -0
  113. package/dist/src/formats/cx/styles.js.map +1 -1
  114. package/dist/src/formats/dot/styles.d.ts.map +1 -1
  115. package/dist/src/formats/dot/styles.js +3 -1
  116. package/dist/src/formats/dot/styles.js.map +1 -1
  117. package/dist/src/formats/gexf/styles.d.ts +29 -12
  118. package/dist/src/formats/gexf/styles.d.ts.map +1 -1
  119. package/dist/src/formats/gexf/styles.js +160 -31
  120. package/dist/src/formats/gexf/styles.js.map +1 -1
  121. package/dist/src/formats/gml/styles.d.ts.map +1 -1
  122. package/dist/src/formats/gml/styles.js +5 -4
  123. package/dist/src/formats/gml/styles.js.map +1 -1
  124. package/dist/src/formats/graphml/styles-plain.d.ts.map +1 -1
  125. package/dist/src/formats/graphml/styles-plain.js +3 -3
  126. package/dist/src/formats/graphml/styles-plain.js.map +1 -1
  127. package/dist/src/formats/graphml/styles-yed.d.ts.map +1 -1
  128. package/dist/src/formats/graphml/styles-yed.js +89 -19
  129. package/dist/src/formats/graphml/styles-yed.js.map +1 -1
  130. package/dist/src/formats/pajek/styles.d.ts.map +1 -1
  131. package/dist/src/formats/pajek/styles.js +1 -0
  132. package/dist/src/formats/pajek/styles.js.map +1 -1
  133. package/dist/src/formats/xgmml/styles.d.ts.map +1 -1
  134. package/dist/src/formats/xgmml/styles.js +1 -0
  135. package/dist/src/formats/xgmml/styles.js.map +1 -1
  136. package/dist/src/index.d.ts +8 -1
  137. package/dist/src/index.d.ts.map +1 -1
  138. package/dist/src/index.js +9 -1
  139. package/dist/src/index.js.map +1 -1
  140. package/dist/src/registry.d.ts +173 -1
  141. package/dist/src/registry.d.ts.map +1 -1
  142. package/dist/src/registry.js +196 -1
  143. package/dist/src/registry.js.map +1 -1
  144. package/dist/src/sources/builtins.d.ts +11 -0
  145. package/dist/src/sources/builtins.d.ts.map +1 -0
  146. package/dist/src/sources/builtins.js +47 -0
  147. package/dist/src/sources/builtins.js.map +1 -0
  148. package/dist/src/sources/codes.d.ts +230 -0
  149. package/dist/src/sources/codes.d.ts.map +1 -0
  150. package/dist/src/sources/codes.js +58 -0
  151. package/dist/src/sources/codes.js.map +1 -0
  152. package/dist/src/sources/context.d.ts +112 -0
  153. package/dist/src/sources/context.d.ts.map +1 -0
  154. package/dist/src/sources/context.js +739 -0
  155. package/dist/src/sources/context.js.map +1 -0
  156. package/dist/src/sources/credentials.d.ts +179 -0
  157. package/dist/src/sources/credentials.d.ts.map +1 -0
  158. package/dist/src/sources/credentials.js +301 -0
  159. package/dist/src/sources/credentials.js.map +1 -0
  160. package/dist/src/sources/cypher/descriptor.d.ts +21 -0
  161. package/dist/src/sources/cypher/descriptor.d.ts.map +1 -0
  162. package/dist/src/sources/cypher/descriptor.js +119 -0
  163. package/dist/src/sources/cypher/descriptor.js.map +1 -0
  164. package/dist/src/sources/cypher/flatten.d.ts +72 -0
  165. package/dist/src/sources/cypher/flatten.d.ts.map +1 -0
  166. package/dist/src/sources/cypher/flatten.js +279 -0
  167. package/dist/src/sources/cypher/flatten.js.map +1 -0
  168. package/dist/src/sources/cypher/index.d.ts +33 -0
  169. package/dist/src/sources/cypher/index.d.ts.map +1 -0
  170. package/dist/src/sources/cypher/index.js +405 -0
  171. package/dist/src/sources/cypher/index.js.map +1 -0
  172. package/dist/src/sources/cypher/params.d.ts +40 -0
  173. package/dist/src/sources/cypher/params.d.ts.map +1 -0
  174. package/dist/src/sources/cypher/params.js +6 -0
  175. package/dist/src/sources/cypher/params.js.map +1 -0
  176. package/dist/src/sources/cypher/profiles.d.ts +44 -0
  177. package/dist/src/sources/cypher/profiles.d.ts.map +1 -0
  178. package/dist/src/sources/cypher/profiles.js +61 -0
  179. package/dist/src/sources/cypher/profiles.js.map +1 -0
  180. package/dist/src/sources/cypher/query-builder.d.ts +106 -0
  181. package/dist/src/sources/cypher/query-builder.d.ts.map +1 -0
  182. package/dist/src/sources/cypher/query-builder.js +236 -0
  183. package/dist/src/sources/cypher/query-builder.js.map +1 -0
  184. package/dist/src/sources/cypher/transports/bolt.d.ts +21 -0
  185. package/dist/src/sources/cypher/transports/bolt.d.ts.map +1 -0
  186. package/dist/src/sources/cypher/transports/bolt.js +185 -0
  187. package/dist/src/sources/cypher/transports/bolt.js.map +1 -0
  188. package/dist/src/sources/cypher/transports/neptune-analytics.d.ts +15 -0
  189. package/dist/src/sources/cypher/transports/neptune-analytics.d.ts.map +1 -0
  190. package/dist/src/sources/cypher/transports/neptune-analytics.js +38 -0
  191. package/dist/src/sources/cypher/transports/neptune-analytics.js.map +1 -0
  192. package/dist/src/sources/cypher/transports/neptune-https.d.ts +31 -0
  193. package/dist/src/sources/cypher/transports/neptune-https.d.ts.map +1 -0
  194. package/dist/src/sources/cypher/transports/neptune-https.js +104 -0
  195. package/dist/src/sources/cypher/transports/neptune-https.js.map +1 -0
  196. package/dist/src/sources/cypher/transports/query-api.d.ts +14 -0
  197. package/dist/src/sources/cypher/transports/query-api.d.ts.map +1 -0
  198. package/dist/src/sources/cypher/transports/query-api.js +80 -0
  199. package/dist/src/sources/cypher/transports/query-api.js.map +1 -0
  200. package/dist/src/sources/cypher/transports/transport.d.ts +78 -0
  201. package/dist/src/sources/cypher/transports/transport.d.ts.map +1 -0
  202. package/dist/src/sources/cypher/transports/transport.js +77 -0
  203. package/dist/src/sources/cypher/transports/transport.js.map +1 -0
  204. package/dist/src/sources/cypher/types-map.d.ts +91 -0
  205. package/dist/src/sources/cypher/types-map.d.ts.map +1 -0
  206. package/dist/src/sources/cypher/types-map.js +306 -0
  207. package/dist/src/sources/cypher/types-map.js.map +1 -0
  208. package/dist/src/sources/define.d.ts +47 -0
  209. package/dist/src/sources/define.d.ts.map +1 -0
  210. package/dist/src/sources/define.js +173 -0
  211. package/dist/src/sources/define.js.map +1 -0
  212. package/dist/src/sources/fail.d.ts +33 -0
  213. package/dist/src/sources/fail.d.ts.map +1 -0
  214. package/dist/src/sources/fail.js +49 -0
  215. package/dist/src/sources/fail.js.map +1 -0
  216. package/dist/src/sources/ids.d.ts +64 -0
  217. package/dist/src/sources/ids.d.ts.map +1 -0
  218. package/dist/src/sources/ids.js +64 -0
  219. package/dist/src/sources/ids.js.map +1 -0
  220. package/dist/src/sources/ndex/client.d.ts +31 -0
  221. package/dist/src/sources/ndex/client.d.ts.map +1 -0
  222. package/dist/src/sources/ndex/client.js +90 -0
  223. package/dist/src/sources/ndex/client.js.map +1 -0
  224. package/dist/src/sources/ndex/descriptor.d.ts +10 -0
  225. package/dist/src/sources/ndex/descriptor.d.ts.map +1 -0
  226. package/dist/src/sources/ndex/descriptor.js +55 -0
  227. package/dist/src/sources/ndex/descriptor.js.map +1 -0
  228. package/dist/src/sources/ndex/expand.d.ts +20 -0
  229. package/dist/src/sources/ndex/expand.d.ts.map +1 -0
  230. package/dist/src/sources/ndex/expand.js +87 -0
  231. package/dist/src/sources/ndex/expand.js.map +1 -0
  232. package/dist/src/sources/ndex/index.d.ts +25 -0
  233. package/dist/src/sources/ndex/index.d.ts.map +1 -0
  234. package/dist/src/sources/ndex/index.js +191 -0
  235. package/dist/src/sources/ndex/index.js.map +1 -0
  236. package/dist/src/sources/ndex/params.d.ts +17 -0
  237. package/dist/src/sources/ndex/params.d.ts.map +1 -0
  238. package/dist/src/sources/ndex/params.js +6 -0
  239. package/dist/src/sources/ndex/params.js.map +1 -0
  240. package/dist/src/sources/ndex/share-url.d.ts +40 -0
  241. package/dist/src/sources/ndex/share-url.d.ts.map +1 -0
  242. package/dist/src/sources/ndex/share-url.js +64 -0
  243. package/dist/src/sources/ndex/share-url.js.map +1 -0
  244. package/dist/src/sources/params.d.ts +28 -0
  245. package/dist/src/sources/params.d.ts.map +1 -0
  246. package/dist/src/sources/params.js +6 -0
  247. package/dist/src/sources/params.js.map +1 -0
  248. package/dist/src/sources/registry.d.ts +118 -0
  249. package/dist/src/sources/registry.d.ts.map +1 -0
  250. package/dist/src/sources/registry.js +193 -0
  251. package/dist/src/sources/registry.js.map +1 -0
  252. package/dist/src/sources/rest/descriptor.d.ts +16 -0
  253. package/dist/src/sources/rest/descriptor.d.ts.map +1 -0
  254. package/dist/src/sources/rest/descriptor.js +71 -0
  255. package/dist/src/sources/rest/descriptor.js.map +1 -0
  256. package/dist/src/sources/rest/index.d.ts +14 -0
  257. package/dist/src/sources/rest/index.d.ts.map +1 -0
  258. package/dist/src/sources/rest/index.js +13 -0
  259. package/dist/src/sources/rest/index.js.map +1 -0
  260. package/dist/src/sources/rest/mapping.d.ts +30 -0
  261. package/dist/src/sources/rest/mapping.d.ts.map +1 -0
  262. package/dist/src/sources/rest/mapping.js +362 -0
  263. package/dist/src/sources/rest/mapping.js.map +1 -0
  264. package/dist/src/sources/rest/openalex.d.ts +27 -0
  265. package/dist/src/sources/rest/openalex.d.ts.map +1 -0
  266. package/dist/src/sources/rest/openalex.js +269 -0
  267. package/dist/src/sources/rest/openalex.js.map +1 -0
  268. package/dist/src/sources/rest/paging.d.ts +53 -0
  269. package/dist/src/sources/rest/paging.d.ts.map +1 -0
  270. package/dist/src/sources/rest/paging.js +138 -0
  271. package/dist/src/sources/rest/paging.js.map +1 -0
  272. package/dist/src/sources/rest/params.d.ts +216 -0
  273. package/dist/src/sources/rest/params.d.ts.map +1 -0
  274. package/dist/src/sources/rest/params.js +7 -0
  275. package/dist/src/sources/rest/params.js.map +1 -0
  276. package/dist/src/sources/rest/records.d.ts +41 -0
  277. package/dist/src/sources/rest/records.d.ts.map +1 -0
  278. package/dist/src/sources/rest/records.js +240 -0
  279. package/dist/src/sources/rest/records.js.map +1 -0
  280. package/dist/src/sources/rest/samples/deps-dev.d.ts +10 -0
  281. package/dist/src/sources/rest/samples/deps-dev.d.ts.map +1 -0
  282. package/dist/src/sources/rest/samples/deps-dev.js +47 -0
  283. package/dist/src/sources/rest/samples/deps-dev.js.map +1 -0
  284. package/dist/src/sources/rest/samples/string.d.ts +9 -0
  285. package/dist/src/sources/rest/samples/string.d.ts.map +1 -0
  286. package/dist/src/sources/rest/samples/string.js +42 -0
  287. package/dist/src/sources/rest/samples/string.js.map +1 -0
  288. package/dist/src/sources/rest/selectors.d.ts +41 -0
  289. package/dist/src/sources/rest/selectors.d.ts.map +1 -0
  290. package/dist/src/sources/rest/selectors.js +81 -0
  291. package/dist/src/sources/rest/selectors.js.map +1 -0
  292. package/dist/src/sources/rest/source.d.ts +67 -0
  293. package/dist/src/sources/rest/source.d.ts.map +1 -0
  294. package/dist/src/sources/rest/source.js +635 -0
  295. package/dist/src/sources/rest/source.js.map +1 -0
  296. package/dist/src/sources/rest/templates.d.ts +38 -0
  297. package/dist/src/sources/rest/templates.d.ts.map +1 -0
  298. package/dist/src/sources/rest/templates.js +125 -0
  299. package/dist/src/sources/rest/templates.js.map +1 -0
  300. package/dist/src/sources/run.d.ts +93 -0
  301. package/dist/src/sources/run.d.ts.map +1 -0
  302. package/dist/src/sources/run.js +673 -0
  303. package/dist/src/sources/run.js.map +1 -0
  304. package/dist/src/sources/sha256.d.ts +12 -0
  305. package/dist/src/sources/sha256.d.ts.map +1 -0
  306. package/dist/src/sources/sha256.js +95 -0
  307. package/dist/src/sources/sha256.js.map +1 -0
  308. package/dist/src/sources/sigv4.d.ts +24 -0
  309. package/dist/src/sources/sigv4.d.ts.map +1 -0
  310. package/dist/src/sources/sigv4.js +182 -0
  311. package/dist/src/sources/sigv4.js.map +1 -0
  312. package/dist/src/sources/testing.d.ts +96 -0
  313. package/dist/src/sources/testing.d.ts.map +1 -0
  314. package/dist/src/sources/testing.js +138 -0
  315. package/dist/src/sources/testing.js.map +1 -0
  316. package/dist/src/sources/types.d.ts +665 -0
  317. package/dist/src/sources/types.d.ts.map +1 -0
  318. package/dist/src/sources/types.js +10 -0
  319. package/dist/src/sources/types.js.map +1 -0
  320. package/dist/src/styles/canon/enums.d.ts.map +1 -1
  321. package/dist/src/styles/canon/enums.js +1 -0
  322. package/dist/src/styles/canon/enums.js.map +1 -1
  323. package/dist/src/styles/cyjs/cascade.d.ts.map +1 -1
  324. package/dist/src/styles/cyjs/cascade.js +68 -2
  325. package/dist/src/styles/cyjs/cascade.js.map +1 -1
  326. package/dist/src/styles/cyjs/defaults-table.d.ts.map +1 -1
  327. package/dist/src/styles/cyjs/defaults-table.js +2 -0
  328. package/dist/src/styles/cyjs/defaults-table.js.map +1 -1
  329. package/dist/src/styles/cyjs/emit.d.ts.map +1 -1
  330. package/dist/src/styles/cyjs/emit.js +18 -7
  331. package/dist/src/styles/cyjs/emit.js.map +1 -1
  332. package/dist/src/styles/cyjs/mappers.d.ts +4 -1
  333. package/dist/src/styles/cyjs/mappers.d.ts.map +1 -1
  334. package/dist/src/styles/cyjs/mappers.js +2 -0
  335. package/dist/src/styles/cyjs/mappers.js.map +1 -1
  336. package/dist/src/styles/cytoscape/emit.d.ts.map +1 -1
  337. package/dist/src/styles/cytoscape/emit.js +59 -7
  338. package/dist/src/styles/cytoscape/emit.js.map +1 -1
  339. package/dist/src/styles/cytoscape/lexicon.d.ts +6 -0
  340. package/dist/src/styles/cytoscape/lexicon.d.ts.map +1 -1
  341. package/dist/src/styles/cytoscape/lexicon.js +26 -2
  342. package/dist/src/styles/cytoscape/lexicon.js.map +1 -1
  343. package/dist/src/styles/cytoscape/resolve.d.ts +4 -1
  344. package/dist/src/styles/cytoscape/resolve.d.ts.map +1 -1
  345. package/dist/src/styles/cytoscape/resolve.js +10 -6
  346. package/dist/src/styles/cytoscape/resolve.js.map +1 -1
  347. package/dist/src/styles/cytoscape/translate.d.ts.map +1 -1
  348. package/dist/src/styles/cytoscape/translate.js +10 -10
  349. package/dist/src/styles/cytoscape/translate.js.map +1 -1
  350. package/dist/src/styles/defaults.d.ts +30 -0
  351. package/dist/src/styles/defaults.d.ts.map +1 -1
  352. package/dist/src/styles/defaults.js +45 -4
  353. package/dist/src/styles/defaults.js.map +1 -1
  354. package/dist/src/styles/io/block.d.ts.map +1 -1
  355. package/dist/src/styles/io/block.js +9 -0
  356. package/dist/src/styles/io/block.js.map +1 -1
  357. package/dist/src/styles/io/writer.d.ts.map +1 -1
  358. package/dist/src/styles/io/writer.js +7 -3
  359. package/dist/src/styles/io/writer.js.map +1 -1
  360. package/dist/src/styles/plan/resolve.d.ts +2 -1
  361. package/dist/src/styles/plan/resolve.d.ts.map +1 -1
  362. package/dist/src/styles/plan/resolve.js +13 -2
  363. package/dist/src/styles/plan/resolve.js.map +1 -1
  364. package/dist/src/styles/types.d.ts +19 -2
  365. package/dist/src/styles/types.d.ts.map +1 -1
  366. package/dist/src/styles/vocabulary.d.ts.map +1 -1
  367. package/dist/src/styles/vocabulary.js +15 -1
  368. package/dist/src/styles/vocabulary.js.map +1 -1
  369. package/dist/src/types.d.ts +19 -5
  370. package/dist/src/types.d.ts.map +1 -1
  371. package/dist/src/types.js.map +1 -1
  372. package/dist/styles.js +11 -11
  373. package/dist/xgmml.js +3 -3
  374. package/docs/samples/people.json +6 -0
  375. package/package.json +29 -4
  376. package/src/common/report.ts +27 -7
  377. package/src/formats/cx/styles.ts +1 -0
  378. package/src/formats/dot/styles.ts +3 -1
  379. package/src/formats/gexf/styles.ts +185 -37
  380. package/src/formats/gml/styles.ts +5 -4
  381. package/src/formats/graphml/styles-plain.ts +3 -9
  382. package/src/formats/graphml/styles-yed.ts +93 -20
  383. package/src/formats/pajek/styles.ts +1 -0
  384. package/src/formats/xgmml/styles.ts +1 -0
  385. package/src/index.ts +90 -0
  386. package/src/registry.ts +326 -1
  387. package/src/sources/builtins.ts +56 -0
  388. package/src/sources/codes.ts +235 -0
  389. package/src/sources/context.ts +893 -0
  390. package/src/sources/credentials.ts +409 -0
  391. package/src/sources/cypher/descriptor.ts +125 -0
  392. package/src/sources/cypher/flatten.ts +323 -0
  393. package/src/sources/cypher/index.ts +498 -0
  394. package/src/sources/cypher/params.ts +41 -0
  395. package/src/sources/cypher/profiles.ts +78 -0
  396. package/src/sources/cypher/query-builder.ts +294 -0
  397. package/src/sources/cypher/transports/bolt.ts +228 -0
  398. package/src/sources/cypher/transports/neptune-analytics.ts +41 -0
  399. package/src/sources/cypher/transports/neptune-https.ts +122 -0
  400. package/src/sources/cypher/transports/query-api.ts +100 -0
  401. package/src/sources/cypher/transports/transport.ts +139 -0
  402. package/src/sources/cypher/types-map.ts +418 -0
  403. package/src/sources/define.ts +195 -0
  404. package/src/sources/fail.ts +70 -0
  405. package/src/sources/ids.ts +74 -0
  406. package/src/sources/ndex/client.ts +102 -0
  407. package/src/sources/ndex/descriptor.ts +64 -0
  408. package/src/sources/ndex/expand.ts +100 -0
  409. package/src/sources/ndex/index.ts +235 -0
  410. package/src/sources/ndex/params.ts +17 -0
  411. package/src/sources/ndex/share-url.ts +84 -0
  412. package/src/sources/params.ts +29 -0
  413. package/src/sources/registry.ts +325 -0
  414. package/src/sources/rest/descriptor.ts +74 -0
  415. package/src/sources/rest/index.ts +22 -0
  416. package/src/sources/rest/mapping.ts +401 -0
  417. package/src/sources/rest/openalex.ts +288 -0
  418. package/src/sources/rest/paging.ts +180 -0
  419. package/src/sources/rest/params.ts +243 -0
  420. package/src/sources/rest/records.ts +289 -0
  421. package/src/sources/rest/samples/deps-dev.ts +49 -0
  422. package/src/sources/rest/samples/string.ts +44 -0
  423. package/src/sources/rest/selectors.ts +91 -0
  424. package/src/sources/rest/source.ts +760 -0
  425. package/src/sources/rest/templates.ts +151 -0
  426. package/src/sources/run.ts +793 -0
  427. package/src/sources/sha256.ts +99 -0
  428. package/src/sources/sigv4.ts +207 -0
  429. package/src/sources/testing.ts +210 -0
  430. package/src/sources/types.ts +741 -0
  431. package/src/styles/canon/enums.ts +1 -0
  432. package/src/styles/cyjs/cascade.ts +81 -2
  433. package/src/styles/cyjs/defaults-table.ts +2 -0
  434. package/src/styles/cyjs/emit.ts +18 -7
  435. package/src/styles/cyjs/mappers.ts +6 -1
  436. package/src/styles/cytoscape/emit.ts +61 -7
  437. package/src/styles/cytoscape/lexicon.ts +28 -2
  438. package/src/styles/cytoscape/resolve.ts +22 -6
  439. package/src/styles/cytoscape/translate.ts +11 -11
  440. package/src/styles/defaults.ts +93 -4
  441. package/src/styles/io/block.ts +10 -0
  442. package/src/styles/io/writer.ts +8 -3
  443. package/src/styles/plan/resolve.ts +14 -2
  444. package/src/styles/types.ts +28 -2
  445. package/src/styles/vocabulary.ts +15 -1
  446. package/src/types.ts +19 -5
  447. package/dist/chunks/block-DiGq58c3.js.map +0 -1
  448. package/dist/chunks/emit-CwU8cUmG.js.map +0 -1
  449. package/dist/chunks/export-BvqAXCKh.js.map +0 -1
  450. package/dist/chunks/format-BpQBx8MZ.js.map +0 -1
  451. package/dist/chunks/importer-BSvfrX_h.js.map +0 -1
  452. package/dist/chunks/importer-CMmeMWlC.js.map +0 -1
  453. package/dist/chunks/importer-COTK9Tsl.js.map +0 -1
  454. package/dist/chunks/importer-DiZRmOQG.js.map +0 -1
  455. package/dist/chunks/importer-e6LGpqHB.js.map +0 -1
  456. package/dist/chunks/lexicon-CT69Kd87.js.map +0 -1
  457. package/dist/chunks/styles-BQnsga7p.js.map +0 -1
  458. package/dist/chunks/styles-D3fRphrO.js.map +0 -1
  459. package/dist/chunks/styles-yed-BF5x3_Y5.js.map +0 -1
  460. package/dist/chunks/writer-DMKvthQE.js.map +0 -1
@@ -48,6 +48,39 @@ export type ToolDerivedDefault =
48
48
  /** Where the default is stated. */
49
49
  readonly source: string;
50
50
  }
51
+ | {
52
+ /**
53
+ * An edge with no color of its own takes the mean of its two nodes' colors, each channel rounded down
54
+ * (Gephi Preview's "mixed" edge color).
55
+ */
56
+ readonly kind: "colorFromEndNodes";
57
+ /** Where the default is stated. */
58
+ readonly source: string;
59
+ }
60
+ | {
61
+ /**
62
+ * A node with no border of its own gets a border of its fill with each channel times `darken`, `widthFactor`
63
+ * times its width wide (Gephi Preview's "darker" border, scaled with the node).
64
+ */
65
+ readonly kind: "borderFromFill";
66
+ /** What each color channel of the fill is multiplied by. */
67
+ readonly darken: number;
68
+ /** The border's width as a share of the node's width. */
69
+ readonly widthFactor: number;
70
+ /** Where the default is stated. */
71
+ readonly source: string;
72
+ }
73
+ | {
74
+ /**
75
+ * A node with no label size of its own gets a label size of its width times `factor` (Gephi Preview's
76
+ * proportional label size).
77
+ */
78
+ readonly kind: "labelSizeFromWidth";
79
+ /** The label size per unit of the node's width. */
80
+ readonly factor: number;
81
+ /** Where the default is stated. */
82
+ readonly source: string;
83
+ }
51
84
  | {
52
85
  /** An edge with no width of its own is drawn as thick as its weight (1 for an edge with no weight, or a weight of 0 or below). */
53
86
  readonly kind: "widthFromWeight";
@@ -101,10 +134,12 @@ const GV = "graphviz.org/docs/attrs";
101
134
  const YED_QA = "yEd Q&A, How can I change the default nodes and/or default edges";
102
135
  const YED_CORPUS = "yEd GraphML corpus, most frequent value";
103
136
  const YED_EDGE = "yFiles for Java 2.19 EdgeRealizer API docs";
137
+ const YED_BG = "yFiles for Java 2.19 DefaultBackgroundRenderer API docs";
104
138
  const Y3 = "yFiles for HTML API docs,";
105
139
  const GEPHI = "gephi master 92e503df61a7";
106
140
  const VIS = "vis-network 10.1.2 vis-network.esm.js";
107
141
  const SIGMA = "sigma 3.0.3 packages/sigma/src";
142
+ const GEXFJS = "github.com/raphv/gexf-js ebfd2a7213d3 js/gexfjs.js";
108
143
  const PAJEK = "Pajek 6.02 reference manual";
109
144
  const PAJEK_SHAPES =
110
145
  "the SHAPES.CFG Pajek writes when none exists (DrawEPS.htm), " +
@@ -259,7 +294,12 @@ export const TOOL_DEFAULTS: ReadonlyMap<StyleTool, ToolDefaults> = new Map<Style
259
294
  labelSize: v(14, `${GV}/fontsize/`),
260
295
  labelFont: v("Times-Roman", `${GV}/fontname/`),
261
296
  },
262
- graph: {},
297
+ graph: {
298
+ background: v(
299
+ "#ffffff",
300
+ `${GV}/bgcolor/ (default none); lib/common/emit.c emit_background: no bgcolor paints white`,
301
+ ),
302
+ },
263
303
  derived: [
264
304
  { kind: "labelFromId", source: String.raw`${GV}/label/ (default \N, the node name)` },
265
305
  {
@@ -295,7 +335,12 @@ export const TOOL_DEFAULTS: ReadonlyMap<StyleTool, ToolDefaults> = new Map<Style
295
335
  labelFont: v("Dialog", `${YED_CORPUS} of y:EdgeLabel`),
296
336
  labelSize: v(12, `${YED_CORPUS} of y:EdgeLabel`),
297
337
  },
298
- graph: {},
338
+ graph: {
339
+ background: v(
340
+ "#ffffff",
341
+ `${YED_BG} (setColor: "By default the background color is white"); yEd manual, Preferences, Background tab`,
342
+ ),
343
+ },
299
344
  derived: [],
300
345
  },
301
346
  {
@@ -332,20 +377,64 @@ export const TOOL_DEFAULTS: ReadonlyMap<StyleTool, ToolDefaults> = new Map<Style
332
377
  width: v(10, `${GEPHI} AbstractProcessor.java lines 195-198`),
333
378
  height: v(10, `${GEPHI} AbstractProcessor.java lines 195-198`),
334
379
  shape: v("ellipse", "GEXF 1.3 viz shape default disc; Preview NodeRenderer"),
380
+ opacity: v(1, `${GEPHI} DefaultPreset.java line 87 (NODE_OPACITY 100)`),
381
+ // Preview hides labels (DefaultPreset.java line 106) and so does the Overview (VizConfig.java
382
+ // line 113); graph-io shows them as sigma.js and gexf-js do (see formats/gexf/styles.ts), in
383
+ // the color and font Gephi gives a label it shows
384
+ labelColor: v("#000000", `${GEPHI} DefaultPreset.java line 91 (DependantOriginalColor(BLACK))`),
385
+ labelFont: v("Arial", `${GEPHI} DefaultPreset.java line 93 (Arial plain 12)`),
386
+ // the size of a size-10 node's label; Preview scales it with the node (labelSizeFromWidth below)
387
+ labelSize: v(12, `${GEPHI} DefaultPreset.java line 93 (Arial plain 12)`),
335
388
  labelPosition: v(
336
389
  "center",
337
390
  `${GEPHI} NodeLabelRenderer.java (a label is drawn centered on its node)`,
338
391
  ),
339
392
  },
340
393
  edge: {
394
+ curved: v(
395
+ true,
396
+ `${GEPHI} DefaultPreset.java line 66 (EDGE_CURVED true); EdgeRenderer.java line 117`,
397
+ ),
341
398
  sourceArrow: v("none", `${GEPHI} DefaultPreset.java line 62`),
342
399
  targetArrow: v("none", `${GEPHI} DefaultPreset.java line 62`),
400
+ // the vocabulary's 1 is the tool's normal arrow: Preview's ARROW_SIZE 3, drawn 3 times the edge's
401
+ // weight long, as Cytoscape.js's arrow-scale 1 scales with the edge's width
402
+ arrowSize: v(
403
+ 1,
404
+ `${GEPHI} DefaultPreset.java line 62 (ARROW_SIZE 3); EdgeRenderer.java lines 255-256 (times the weight)`,
405
+ ),
406
+ opacity: v(1, `${GEPHI} DefaultPreset.java line 71 (EDGE_OPACITY 100)`),
343
407
  },
344
408
  graph: { background: v("#ffffff", `${GEPHI} VizConfig.java line 111`) },
345
409
  derived: [
346
410
  {
347
- kind: "colorFromSourceNode",
348
- source: `${GEPHI} VizConfig.java line 119 (EdgeColorMode.SOURCE)`,
411
+ kind: "labelFromColumn",
412
+ column: "label",
413
+ source: `${SIGMA}/settings.ts lines 119-126 (renderLabels); ${GEXFJS} lines 1019-1040`,
414
+ },
415
+ {
416
+ kind: "colorFromEndNodes",
417
+ source:
418
+ `${GEPHI} DefaultPreset.java line 65 (EdgeColor.Mode.MIXED); ` +
419
+ "PreviewAPI types/EdgeColor.java lines 89-93",
420
+ },
421
+ {
422
+ kind: "borderFromFill",
423
+ darken: 0.498,
424
+ widthFactor: 0.08,
425
+ source:
426
+ `${GEPHI} DefaultPreset.java lines 84, 86 (DependantColor DARKER, NODE_BORDER_FIXED false); ` +
427
+ "PreviewAPI types/DependantColor.java lines 55, 85-86; Utils ColorUtils.java lines 22-34; " +
428
+ "PreviewPlugin renderers/SizeUtils.java lines 11, 33-38 (0.16 x size / 2 of a node drawn " +
429
+ "size x 2 wide, builders/NodeBuilder.java line 65)",
430
+ },
431
+ {
432
+ kind: "labelSizeFromWidth",
433
+ factor: 1.2,
434
+ source:
435
+ `${GEPHI} DefaultPreset.java lines 93, 98 (Arial 12, NODE_LABEL_PROPORTIONAL_SIZE true); ` +
436
+ "PreviewPlugin renderers/NodeLabelRenderer.java lines 165-173 (12 x the node drawn size x 2 " +
437
+ "wide x 0.05, builders/NodeBuilder.java line 65)",
349
438
  },
350
439
  {
351
440
  kind: "widthFromWeight",
@@ -727,6 +727,15 @@ function predicate(v: unknown): Predicate {
727
727
  return o as Predicate;
728
728
  }
729
729
 
730
+ /**
731
+ * A positive finite number.
732
+ * @param v - the parsed value
733
+ * @returns the number
734
+ */
735
+ function positive(v: unknown): number {
736
+ return typeof v === "number" && Number.isFinite(v) && v > 0 ? v : invalid();
737
+ }
738
+
730
739
  /**
731
740
  * A mapping. A mapping of a kind this version does not know is kept and gives no value.
732
741
  * @param v - the parsed mapping
@@ -760,6 +769,7 @@ function mapping(v: unknown): Mapping {
760
769
  above: scalar(q.above),
761
770
  };
762
771
  }),
772
+ ...(o.step === undefined ? {} : { step: positive(o.step) }),
763
773
  };
764
774
  default:
765
775
  return { ...o, kind: name(o.kind), by } as unknown as Mapping;
@@ -9,6 +9,7 @@ import type { GraphSnapshot } from "@graphty/graph-format";
9
9
  import { agree, plural } from "../../common/plural.js";
10
10
  import type { GraphExporter, LossNote } from "../../types.js";
11
11
  import { STYLE_ISSUE } from "../codes.js";
12
+ import { toolDefaults } from "../defaults.js";
12
13
  import { styleFingerprint } from "../plan/features.js";
13
14
  import { canonicalFor, dataCell, degreeValues, plainCell, resolveStyles } from "../plan/resolve.js";
14
15
  import type {
@@ -516,7 +517,8 @@ function lossNotes(
516
517
  }
517
518
 
518
519
  /**
519
- * W_STYLE_NOT_WRITTEN for every graph property the format does not write.
520
+ * W_STYLE_NOT_WRITTEN for every graph property the format does not write, except one whose value is what the program
521
+ * the format is written for draws anyway (a white background for yEd): nothing is lost there.
520
522
  * @param extracted - the styles
521
523
  * @param exporter - the exporter
522
524
  * @param caps - its style capabilities, or null
@@ -528,8 +530,11 @@ function graphLossNotes(
528
530
  caps: StyleWriteCapabilities | null,
529
531
  ): LossNote[] {
530
532
  const graphWritten = new Set<string>(caps?.graph ?? []);
531
- return Object.keys(extracted.styles.graph)
532
- .filter((property) => !graphWritten.has(property))
533
+ const drawn: Readonly<Record<string, { readonly value: unknown } | undefined>> =
534
+ (caps?.tool === undefined ? null : toolDefaults(caps.tool))?.graph ?? {};
535
+ return Object.entries(extracted.styles.graph)
536
+ .filter(([property, value]) => !graphWritten.has(property) && drawn[property]?.value !== value)
537
+ .map(([property]) => property)
533
538
  .map((property) =>
534
539
  Object.freeze({
535
540
  code: STYLE_ISSUE.NOT_WRITTEN,
@@ -481,9 +481,21 @@ export function interpolate(a: StyleValue, b: StyleValue, t: number): StyleValue
481
481
  * Evaluates a continuous mapping at x.
482
482
  * @param points - the points, in increasing `at`
483
483
  * @param x - the input
484
+ * @param step - when given, a number is rounded to the nearest multiple of it (a whole-number property)
484
485
  * @returns the value, or null for a missing or non-finite input
485
486
  */
486
- export function evalContinuous(points: readonly ContinuousPoint[], x: number | null): StyleValue | null {
487
+ export function evalContinuous(points: readonly ContinuousPoint[], x: number | null, step?: number): StyleValue | null {
488
+ const v = evalPoints(points, x);
489
+ return typeof v === "number" && step !== undefined && step > 0 ? num6(Math.round(v / step) * step) : v;
490
+ }
491
+
492
+ /**
493
+ * A continuous mapping's value at x, unrounded.
494
+ * @param points - the points, in increasing `at`
495
+ * @param x - the input
496
+ * @returns the value, or null for a missing or non-finite input
497
+ */
498
+ function evalPoints(points: readonly ContinuousPoint[], x: number | null): StyleValue | null {
487
499
  if (x === null || !Number.isFinite(x) || points.length === 0) {
488
500
  return null;
489
501
  }
@@ -539,7 +551,7 @@ function evalMapping(
539
551
  return j < 0 ? null : m.table[j][1];
540
552
  }
541
553
  case "continuous":
542
- return Array.isArray(v) ? null : evalContinuous(m.points, numberOf(v));
554
+ return Array.isArray(v) ? null : evalContinuous(m.points, numberOf(v), m.step);
543
555
  default:
544
556
  return null;
545
557
  }
@@ -83,11 +83,21 @@ export type StyleArrowShape =
83
83
  export type StyleLabelWeight = "normal" | "bold";
84
84
 
85
85
  /**
86
- * Where a node's label sits relative to the node.
86
+ * Where a node's label sits relative to the node. The sides and corners are outside the node (`top` is above it);
87
+ * `inside-top` is inside the node, along its top edge (a group box's title).
87
88
  * @category Styles
88
89
  */
89
90
  export type StyleLabelPosition =
90
- "center" | "top" | "bottom" | "left" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right";
91
+ | "center"
92
+ | "top"
93
+ | "bottom"
94
+ | "left"
95
+ | "right"
96
+ | "top-left"
97
+ | "top-right"
98
+ | "bottom-left"
99
+ | "bottom-right"
100
+ | "inside-top";
91
101
 
92
102
  /**
93
103
  * The neutral node properties and the type of each value. Lengths are in the unit `FileStyles.units.length`
@@ -421,6 +431,11 @@ export type Mapping =
421
431
  readonly by: ColumnRef;
422
432
  /** The points, in increasing `at`. */
423
433
  readonly points: readonly ContinuousPoint[];
434
+ /**
435
+ * When set, a number the mapping gives is rounded to the nearest multiple of `step`, as the writing tool
436
+ * draws a property that holds whole numbers (Cytoscape's font size: 1; its 0..255 transparency: 1/255).
437
+ */
438
+ readonly step?: number;
424
439
  };
425
440
 
426
441
  /**
@@ -448,6 +463,12 @@ export type StyleRuleReason =
448
463
  | "LAYER_CAP"
449
464
  /** Edges with no color of their own take their source node's color, as the writing tool draws them. */
450
465
  | "SOURCE_NODE_COLOR"
466
+ /** Edges with no color of their own take the mean of their two nodes' colors, as the writing tool draws them. */
467
+ | "END_NODES_COLOR"
468
+ /** Nodes with no border of their own get a border darker than their fill and scaled with their size, as the writing tool draws them. */
469
+ | "FILL_BORDER"
470
+ /** Nodes with no label size of their own get a label size scaled with their size, as the writing tool draws them. */
471
+ | "NODE_SIZE_LABEL"
451
472
  /** Edges with no width of their own are as thick as their weight, as the writing tool draws them. */
452
473
  | "EDGE_WEIGHT"
453
474
  /** Nodes with no label of their own show their name, as the writing tool draws them (Graphviz's `\N`). */
@@ -792,6 +813,11 @@ export interface StyleWriteCapabilities {
792
813
  readonly edge: readonly EdgeStyleProperty[];
793
814
  /** Graph properties written natively. */
794
815
  readonly graph?: readonly GraphStyleProperty[];
816
+ /**
817
+ * The program that draws the files this writer writes, when there is one. A graph property the format has no
818
+ * place for is not reported lost when its value is what that program draws anyway (its tool default).
819
+ */
820
+ readonly tool?: StyleTool;
795
821
  /** Where the block and the tagged values go. */
796
822
  readonly block: "native" | "attributes" | "none";
797
823
  }
@@ -129,7 +129,21 @@ export const STYLE_ENUMS: ReadonlyMap<StyleValueKind, readonly string[]> = new M
129
129
  ],
130
130
  ],
131
131
  ["weight", ["normal", "bold"]],
132
- ["position", ["center", "top", "bottom", "left", "right", "top-left", "top-right", "bottom-left", "bottom-right"]],
132
+ [
133
+ "position",
134
+ [
135
+ "center",
136
+ "top",
137
+ "bottom",
138
+ "left",
139
+ "right",
140
+ "top-left",
141
+ "top-right",
142
+ "bottom-left",
143
+ "bottom-right",
144
+ "inside-top",
145
+ ],
146
+ ],
133
147
  ]);
134
148
 
135
149
  /** The enumerations that keep unknown spellings as `other:<raw>`. */
package/src/types.ts CHANGED
@@ -18,6 +18,8 @@ import {
18
18
  } from "@graphty/graph-format";
19
19
 
20
20
  import type { ImporterPositions, PositionReadContext } from "./positions/types.js";
21
+ import { type SourceIssueCode } from "./sources/codes.js";
22
+ import { type SourceReportInfo } from "./sources/types.js";
21
23
  import type {
22
24
  EdgeStyleProperty,
23
25
  GraphStyleProperty,
@@ -170,9 +172,10 @@ export interface CommonImportOptions {
170
172
  * Called as the input is read, with the bytes read so far and the total. For a string or a
171
173
  * Uint8Array the total is known from the first call. For a stream (which includes loadFromUrl()
172
174
  * and loadFromFile()) it is undefined until the last call, which always has
173
- * `bytesDone === bytesTotal`. Text counts its UTF-8 length.
175
+ * `bytesDone === bytesTotal`. Text counts its UTF-8 length. A load from a network source passes a
176
+ * third argument, "bytes" or "items", saying what is counted.
174
177
  */
175
- onProgress?: ((bytesDone: number, bytesTotal?: number) => void) | undefined;
178
+ onProgress?: ((bytesDone: number, bytesTotal?: number, unit?: "items" | "bytes") => void) | undefined;
176
179
  /**
177
180
  * The character encoding of byte input, as a label such as "utf-8", "windows-1252" or
178
181
  * "utf-16le". Without it graph-io uses a byte order mark, then the encoding the file declares
@@ -553,9 +556,18 @@ export interface ImportIssue {
553
556
  * kept, possibly changed.
554
557
  */
555
558
  readonly severity: "error" | "warning";
556
- /** A stable code; E_ for errors, W_ for warnings ("E_UNKNOWN_NODE", "W_WIDENED"). */
557
- readonly code: string;
558
- /** A plain-English message. */
559
+ /**
560
+ * A stable code; E_ for errors, W_ for warnings ("E_UNKNOWN_NODE", "W_WIDENED"). The network
561
+ * source codes (`SOURCE_ISSUE`) autocomplete; every other code is a string.
562
+ */
563
+ readonly code: SourceIssueCode | (string & {}); // NOSONAR(S4335): open string union, keeps the known names autocompleting
564
+ /**
565
+ * The issue's machine-readable values (`{ status: 401 }`), when it has any. Every network source
566
+ * issue has them (`SourceIssueParams` maps each code to its shape); an application writes its
567
+ * own words from the code and these values.
568
+ */
569
+ readonly params?: Readonly<Record<string, unknown>> | undefined;
570
+ /** A plain-English message, for logs. */
559
571
  readonly message: string;
560
572
  /** The 1-based line in the input, or null when the format has no lines or it is unknown. */
561
573
  readonly line: number | null;
@@ -598,6 +610,8 @@ export interface ImportReport {
598
610
  readonly lossy: readonly LossNote[];
599
611
  /** How long reading the file took, in milliseconds. */
600
612
  readonly durationMs: number;
613
+ /** What a load from a network source did: requests, bytes, where to resume. Experimental. */
614
+ readonly source?: SourceReportInfo | undefined;
601
615
  }
602
616
 
603
617
  /**