@graphty/graph-io 0.3.18 → 0.3.20

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 (235) hide show
  1. package/README.md +80 -2
  2. package/dist/chunks/{escape-D-gZWO26.js → escape-B-tkk_Cl.js} +74 -16
  3. package/dist/chunks/escape-B-tkk_Cl.js.map +1 -0
  4. package/dist/chunks/{writer-GAdltGmC.js → export-Bh60Dv-n.js} +7 -252
  5. package/dist/chunks/export-Bh60Dv-n.js.map +1 -0
  6. package/dist/chunks/exporter-BGrsWamJ.js +736 -0
  7. package/dist/chunks/exporter-BGrsWamJ.js.map +1 -0
  8. package/dist/chunks/exporter-DIeGJXAZ.js +834 -0
  9. package/dist/chunks/exporter-DIeGJXAZ.js.map +1 -0
  10. package/dist/chunks/{importer-Br_QeAeE.js → importer-BWY2FFc5.js} +28 -6
  11. package/dist/chunks/importer-BWY2FFc5.js.map +1 -0
  12. package/dist/chunks/importer-BaQpCEcJ.js +2194 -0
  13. package/dist/chunks/importer-BaQpCEcJ.js.map +1 -0
  14. package/dist/chunks/importer-DD-xv9_Y.js +1471 -0
  15. package/dist/chunks/importer-DD-xv9_Y.js.map +1 -0
  16. package/dist/chunks/{importer-aNJfe0qu.js → importer-DEcKhsmQ.js} +2 -2
  17. package/dist/chunks/{importer-aNJfe0qu.js.map → importer-DEcKhsmQ.js.map} +1 -1
  18. package/dist/chunks/{importer-DHagxvDD.js → importer-DIrbbnAf.js} +6 -4
  19. package/dist/chunks/{importer-DHagxvDD.js.map → importer-DIrbbnAf.js.map} +1 -1
  20. package/dist/chunks/importer-D_e7e7LX.js +3055 -0
  21. package/dist/chunks/importer-D_e7e7LX.js.map +1 -0
  22. package/dist/chunks/{importer-Du5crN9l.js → importer-Wv4C4gaF.js} +278 -82
  23. package/dist/chunks/importer-Wv4C4gaF.js.map +1 -0
  24. package/dist/chunks/importer-vi3bSdtw.js +1713 -0
  25. package/dist/chunks/importer-vi3bSdtw.js.map +1 -0
  26. package/dist/chunks/{importer-d0uQxFp6.js → importer-zGLo8Dg_.js} +6 -4
  27. package/dist/chunks/{importer-d0uQxFp6.js.map → importer-zGLo8Dg_.js.map} +1 -1
  28. package/dist/chunks/json-elements-DDS8N2Dd.js +779 -0
  29. package/dist/chunks/json-elements-DDS8N2Dd.js.map +1 -0
  30. package/dist/chunks/{records-Bk9jgodz.js → records-dbRkxwaq.js} +2 -2
  31. package/dist/chunks/{records-Bk9jgodz.js.map → records-dbRkxwaq.js.map} +1 -1
  32. package/dist/chunks/{report-BOk0p5y8.js → report-B1z4WT9e.js} +143 -111
  33. package/dist/chunks/{report-BOk0p5y8.js.map → report-B1z4WT9e.js.map} +1 -1
  34. package/dist/chunks/weights-Dzba96G3.js +176 -0
  35. package/dist/chunks/weights-Dzba96G3.js.map +1 -0
  36. package/dist/chunks/writer-C7flM-Ih.js +77 -0
  37. package/dist/chunks/writer-C7flM-Ih.js.map +1 -0
  38. package/dist/csv.js +6 -4
  39. package/dist/csv.js.map +1 -1
  40. package/dist/cx.d.ts +1 -0
  41. package/dist/cx.js +6 -0
  42. package/dist/cx.js.map +1 -0
  43. package/dist/cx2.d.ts +1 -0
  44. package/dist/cx2.js +10 -0
  45. package/dist/cx2.js.map +1 -0
  46. package/dist/cys.d.ts +1 -0
  47. package/dist/cys.js +6 -0
  48. package/dist/cys.js.map +1 -0
  49. package/dist/dot.js +1 -1
  50. package/dist/gexf.js +16 -4
  51. package/dist/gexf.js.map +1 -1
  52. package/dist/gml.js +13 -14
  53. package/dist/gml.js.map +1 -1
  54. package/dist/graph-io.js +302 -399
  55. package/dist/graph-io.js.map +1 -1
  56. package/dist/graphml.js +1 -1
  57. package/dist/json.js +1 -1
  58. package/dist/neo4j.js +6 -4
  59. package/dist/neo4j.js.map +1 -1
  60. package/dist/obo.js +1 -1
  61. package/dist/pajek.js +1 -1
  62. package/dist/src/common/cell-budget.d.ts +84 -0
  63. package/dist/src/common/cell-budget.d.ts.map +1 -0
  64. package/dist/src/common/cell-budget.js +138 -0
  65. package/dist/src/common/cell-budget.js.map +1 -0
  66. package/dist/src/common/input.d.ts +10 -0
  67. package/dist/src/common/input.d.ts.map +1 -1
  68. package/dist/src/common/input.js +39 -0
  69. package/dist/src/common/input.js.map +1 -1
  70. package/dist/src/common/json-elements.d.ts +286 -0
  71. package/dist/src/common/json-elements.d.ts.map +1 -0
  72. package/dist/src/common/json-elements.js +926 -0
  73. package/dist/src/common/json-elements.js.map +1 -0
  74. package/dist/src/common/options.d.ts +6 -0
  75. package/dist/src/common/options.d.ts.map +1 -1
  76. package/dist/src/common/options.js +1 -1
  77. package/dist/src/common/options.js.map +1 -1
  78. package/dist/src/common/xml.d.ts +37 -3
  79. package/dist/src/common/xml.d.ts.map +1 -1
  80. package/dist/src/common/xml.js +86 -6
  81. package/dist/src/common/xml.js.map +1 -1
  82. package/dist/src/common/zip.d.ts +92 -0
  83. package/dist/src/common/zip.d.ts.map +1 -0
  84. package/dist/src/common/zip.js +399 -0
  85. package/dist/src/common/zip.js.map +1 -0
  86. package/dist/src/formats/cx/importer.d.ts +133 -0
  87. package/dist/src/formats/cx/importer.d.ts.map +1 -0
  88. package/dist/src/formats/cx/importer.js +2220 -0
  89. package/dist/src/formats/cx/importer.js.map +1 -0
  90. package/dist/src/formats/cx/index.d.ts +7 -0
  91. package/dist/src/formats/cx/index.d.ts.map +1 -0
  92. package/dist/src/formats/cx/index.js +7 -0
  93. package/dist/src/formats/cx/index.js.map +1 -0
  94. package/dist/src/formats/cx2/exporter.d.ts +59 -0
  95. package/dist/src/formats/cx2/exporter.d.ts.map +1 -0
  96. package/dist/src/formats/cx2/exporter.js +864 -0
  97. package/dist/src/formats/cx2/exporter.js.map +1 -0
  98. package/dist/src/formats/cx2/importer.d.ts +169 -0
  99. package/dist/src/formats/cx2/importer.d.ts.map +1 -0
  100. package/dist/src/formats/cx2/importer.js +1652 -0
  101. package/dist/src/formats/cx2/importer.js.map +1 -0
  102. package/dist/src/formats/cx2/index.d.ts +7 -0
  103. package/dist/src/formats/cx2/index.d.ts.map +1 -0
  104. package/dist/src/formats/cx2/index.js +7 -0
  105. package/dist/src/formats/cx2/index.js.map +1 -0
  106. package/dist/src/formats/cys/constants.d.ts +68 -0
  107. package/dist/src/formats/cys/constants.d.ts.map +1 -0
  108. package/dist/src/formats/cys/constants.js +76 -0
  109. package/dist/src/formats/cys/constants.js.map +1 -0
  110. package/dist/src/formats/cys/importer.d.ts +38 -0
  111. package/dist/src/formats/cys/importer.d.ts.map +1 -0
  112. package/dist/src/formats/cys/importer.js +830 -0
  113. package/dist/src/formats/cys/importer.js.map +1 -0
  114. package/dist/src/formats/cys/index.d.ts +7 -0
  115. package/dist/src/formats/cys/index.d.ts.map +1 -0
  116. package/dist/src/formats/cys/index.js +7 -0
  117. package/dist/src/formats/cys/index.js.map +1 -0
  118. package/dist/src/formats/cys/session.d.ts +132 -0
  119. package/dist/src/formats/cys/session.d.ts.map +1 -0
  120. package/dist/src/formats/cys/session.js +315 -0
  121. package/dist/src/formats/cys/session.js.map +1 -0
  122. package/dist/src/formats/cys/tables.d.ts +90 -0
  123. package/dist/src/formats/cys/tables.d.ts.map +1 -0
  124. package/dist/src/formats/cys/tables.js +293 -0
  125. package/dist/src/formats/cys/tables.js.map +1 -0
  126. package/dist/src/formats/dot/exporter.d.ts +2 -0
  127. package/dist/src/formats/dot/exporter.d.ts.map +1 -1
  128. package/dist/src/formats/dot/exporter.js +12 -0
  129. package/dist/src/formats/dot/exporter.js.map +1 -1
  130. package/dist/src/formats/dot/importer.js +6 -2
  131. package/dist/src/formats/dot/importer.js.map +1 -1
  132. package/dist/src/formats/gexf/exporter.d.ts +2 -0
  133. package/dist/src/formats/gexf/exporter.d.ts.map +1 -1
  134. package/dist/src/formats/gexf/exporter.js +6 -0
  135. package/dist/src/formats/gexf/exporter.js.map +1 -1
  136. package/dist/src/formats/gexf/importer.d.ts +0 -2
  137. package/dist/src/formats/gexf/importer.d.ts.map +1 -1
  138. package/dist/src/formats/gexf/importer.js +1 -3
  139. package/dist/src/formats/gexf/importer.js.map +1 -1
  140. package/dist/src/formats/gexf/index.d.ts +1 -1
  141. package/dist/src/formats/gexf/index.js +2 -2
  142. package/dist/src/formats/gexf/index.js.map +1 -1
  143. package/dist/src/formats/gml/exporter.d.ts +0 -8
  144. package/dist/src/formats/gml/exporter.d.ts.map +1 -1
  145. package/dist/src/formats/gml/exporter.js +8 -18
  146. package/dist/src/formats/gml/exporter.js.map +1 -1
  147. package/dist/src/formats/json/importer.d.ts.map +1 -1
  148. package/dist/src/formats/json/importer.js +6 -104
  149. package/dist/src/formats/json/importer.js.map +1 -1
  150. package/dist/src/formats/xgmml/columns.d.ts +152 -0
  151. package/dist/src/formats/xgmml/columns.d.ts.map +1 -0
  152. package/dist/src/formats/xgmml/columns.js +593 -0
  153. package/dist/src/formats/xgmml/columns.js.map +1 -0
  154. package/dist/src/formats/xgmml/constants.d.ts +196 -0
  155. package/dist/src/formats/xgmml/constants.d.ts.map +1 -0
  156. package/dist/src/formats/xgmml/constants.js +197 -0
  157. package/dist/src/formats/xgmml/constants.js.map +1 -0
  158. package/dist/src/formats/xgmml/document.d.ts +361 -0
  159. package/dist/src/formats/xgmml/document.d.ts.map +1 -0
  160. package/dist/src/formats/xgmml/document.js +695 -0
  161. package/dist/src/formats/xgmml/document.js.map +1 -0
  162. package/dist/src/formats/xgmml/emit.d.ts +341 -0
  163. package/dist/src/formats/xgmml/emit.d.ts.map +1 -0
  164. package/dist/src/formats/xgmml/emit.js +1275 -0
  165. package/dist/src/formats/xgmml/emit.js.map +1 -0
  166. package/dist/src/formats/xgmml/exporter.d.ts +24 -0
  167. package/dist/src/formats/xgmml/exporter.d.ts.map +1 -0
  168. package/dist/src/formats/xgmml/exporter.js +999 -0
  169. package/dist/src/formats/xgmml/exporter.js.map +1 -0
  170. package/dist/src/formats/xgmml/importer.d.ts +58 -0
  171. package/dist/src/formats/xgmml/importer.d.ts.map +1 -0
  172. package/dist/src/formats/xgmml/importer.js +360 -0
  173. package/dist/src/formats/xgmml/importer.js.map +1 -0
  174. package/dist/src/formats/xgmml/index.d.ts +8 -0
  175. package/dist/src/formats/xgmml/index.d.ts.map +1 -0
  176. package/dist/src/formats/xgmml/index.js +8 -0
  177. package/dist/src/formats/xgmml/index.js.map +1 -0
  178. package/dist/src/formats/xgmml/values.d.ts +60 -0
  179. package/dist/src/formats/xgmml/values.d.ts.map +1 -0
  180. package/dist/src/formats/xgmml/values.js +148 -0
  181. package/dist/src/formats/xgmml/values.js.map +1 -0
  182. package/dist/src/index.d.ts +4 -0
  183. package/dist/src/index.d.ts.map +1 -1
  184. package/dist/src/index.js +4 -0
  185. package/dist/src/index.js.map +1 -1
  186. package/dist/src/registry.d.ts +7 -0
  187. package/dist/src/registry.d.ts.map +1 -1
  188. package/dist/src/registry.js +30 -10
  189. package/dist/src/registry.js.map +1 -1
  190. package/dist/src/sniff.d.ts +1 -1
  191. package/dist/src/sniff.d.ts.map +1 -1
  192. package/dist/src/sniff.js +4 -0
  193. package/dist/src/sniff.js.map +1 -1
  194. package/dist/xgmml.d.ts +1 -0
  195. package/dist/xgmml.js +9 -0
  196. package/dist/xgmml.js.map +1 -0
  197. package/package.json +25 -2
  198. package/src/common/cell-budget.ts +170 -0
  199. package/src/common/input.ts +40 -0
  200. package/src/common/json-elements.ts +1147 -0
  201. package/src/common/options.ts +1 -1
  202. package/src/common/xml.ts +127 -6
  203. package/src/common/zip.ts +472 -0
  204. package/src/formats/cx/importer.ts +2733 -0
  205. package/src/formats/cx/index.ts +7 -0
  206. package/src/formats/cx2/exporter.ts +1036 -0
  207. package/src/formats/cx2/importer.ts +2187 -0
  208. package/src/formats/cx2/index.ts +7 -0
  209. package/src/formats/cys/constants.ts +99 -0
  210. package/src/formats/cys/importer.ts +1100 -0
  211. package/src/formats/cys/index.ts +7 -0
  212. package/src/formats/cys/session.ts +428 -0
  213. package/src/formats/cys/tables.ts +400 -0
  214. package/src/formats/dot/exporter.ts +17 -0
  215. package/src/formats/dot/importer.ts +6 -2
  216. package/src/formats/gexf/exporter.ts +11 -0
  217. package/src/formats/gexf/importer.ts +1 -2
  218. package/src/formats/gexf/index.ts +1 -1
  219. package/src/formats/gml/exporter.ts +8 -19
  220. package/src/formats/json/importer.ts +6 -105
  221. package/src/formats/xgmml/columns.ts +747 -0
  222. package/src/formats/xgmml/constants.ts +265 -0
  223. package/src/formats/xgmml/document.ts +975 -0
  224. package/src/formats/xgmml/emit.ts +1563 -0
  225. package/src/formats/xgmml/exporter.ts +1215 -0
  226. package/src/formats/xgmml/importer.ts +491 -0
  227. package/src/formats/xgmml/index.ts +8 -0
  228. package/src/formats/xgmml/values.ts +183 -0
  229. package/src/index.ts +19 -0
  230. package/src/registry.ts +46 -15
  231. package/src/sniff.ts +18 -1
  232. package/dist/chunks/escape-D-gZWO26.js.map +0 -1
  233. package/dist/chunks/importer-Br_QeAeE.js.map +0 -1
  234. package/dist/chunks/importer-Du5crN9l.js.map +0 -1
  235. package/dist/chunks/writer-GAdltGmC.js.map +0 -1
package/dist/obo.js CHANGED
@@ -1,4 +1,4 @@
1
- import { O, o } from "./chunks/importer-aNJfe0qu.js";
1
+ import { O, o } from "./chunks/importer-DEcKhsmQ.js";
2
2
  export {
3
3
  O as OBO_ISSUE,
4
4
  o as oboImporter
package/dist/pajek.js CHANGED
@@ -1,4 +1,4 @@
1
- import { P, a, p, b } from "./chunks/importer-d0uQxFp6.js";
1
+ import { P, a, p, b } from "./chunks/importer-zGLo8Dg_.js";
2
2
  export {
3
3
  P as PAJEK_ISSUE,
4
4
  a as PAJEK_LOSS,
@@ -0,0 +1,84 @@
1
+ /**
2
+ * A memory guard for the builder importGraph() fills. graph-format stores every attribute as a dense
3
+ * column, one slot per node (or edge) whether or not that element has a value, so a file whose nodes
4
+ * each carry a differently named attribute holds n values but allocates n x n slots: a few hundred
5
+ * kilobytes of input can need gigabytes. The guard counts the slots that hold no value and stops the
6
+ * import once they pass a limit. A dense file has almost no empty slots, so it is never stopped
7
+ * however large it is.
8
+ */
9
+ import { type ColumnDecl, type ColumnHandle, GraphBuilder, type GraphBuilderOptions, type NodeId } from "@graphty/graph-format";
10
+ /** The issue code of an import stopped for allocating too many empty attribute slots. */
11
+ export declare const TOO_MANY_EMPTY_CELLS_CODE = "E_TOO_MANY_EMPTY_CELLS";
12
+ /**
13
+ * Resolve the maxEmptyCells option.
14
+ * @param value - the caller's value
15
+ * @returns a non-negative integer or Infinity
16
+ * @throws GraphFormatError E_UNSUPPORTED for anything else
17
+ */
18
+ export declare function maxEmptyCellsOption(value: unknown): number;
19
+ /** A GraphBuilder that throws an ImportError once its attribute columns hold too many empty slots. */
20
+ export declare class CellBudgetBuilder extends GraphBuilder {
21
+ private readonly format;
22
+ private readonly maxEmptyCells;
23
+ private readonly nodeColumns;
24
+ private readonly edgeColumns;
25
+ private values;
26
+ /**
27
+ * Create a builder with a limit.
28
+ * @param options - the builder options
29
+ * @param format - the format being read, for the error's report
30
+ * @param maxEmptyCells - the most empty slots allowed
31
+ */
32
+ constructor(options: GraphBuilderOptions, format: string, maxEmptyCells: number);
33
+ /**
34
+ * Add a node, then check the limit (its row adds a slot to every node column).
35
+ * @param id - the node id
36
+ * @returns the node index
37
+ */
38
+ addNode(id: NodeId): number;
39
+ /**
40
+ * Add an edge, then check the limit (its row adds a slot to every edge column).
41
+ * @param source - source id
42
+ * @param target - target id
43
+ * @param weight - the weight
44
+ * @returns the edge index
45
+ */
46
+ addEdge(source: NodeId, target: NodeId, weight?: number): number;
47
+ /**
48
+ * Declare a node column, then check the limit.
49
+ * @param decl - the declaration
50
+ * @returns the column handle
51
+ */
52
+ declareNodeColumn(decl: ColumnDecl): ColumnHandle;
53
+ /**
54
+ * Declare an edge column, then check the limit.
55
+ * @param decl - the declaration
56
+ * @returns the column handle
57
+ */
58
+ declareEdgeColumn(decl: ColumnDecl): ColumnHandle;
59
+ /**
60
+ * Set a node cell (a new name declares a column), then check the limit.
61
+ * @param column - the handle or name
62
+ * @param index - the node index
63
+ * @param value - the value
64
+ */
65
+ setNodeValue(column: ColumnHandle | string, index: number, value: unknown): void;
66
+ /**
67
+ * Set an edge cell (a new name declares a column), then check the limit.
68
+ * @param column - the handle or name
69
+ * @param edge - the edge index
70
+ * @param value - the value
71
+ */
72
+ setEdgeValue(column: ColumnHandle | string, edge: number, value: unknown): void;
73
+ /**
74
+ * Count a written value and check the budget.
75
+ * @param value - the value; null and undefined unset a slot and do not count
76
+ */
77
+ private count;
78
+ /**
79
+ * Throw when the columns' slots minus the values written pass the limit.
80
+ * @throws ImportError E_TOO_MANY_EMPTY_CELLS
81
+ */
82
+ private checkBudget;
83
+ }
84
+ //# sourceMappingURL=cell-budget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cell-budget.d.ts","sourceRoot":"","sources":["../../../src/common/cell-budget.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACH,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,YAAY,EACZ,KAAK,mBAAmB,EAExB,KAAK,MAAM,EACd,MAAM,uBAAuB,CAAC;AAK/B,yFAAyF;AACzF,eAAO,MAAM,yBAAyB,2BAA2B,CAAC;AAKlE;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAY1D;AAED,sGAAsG;AACtG,qBAAa,iBAAkB,SAAQ,YAAY;IAa3C,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAblC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,MAAM,CAAK;IAEnB;;;;;OAKG;gBAEC,OAAO,EAAE,mBAAmB,EACX,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM;IAK1C;;;;OAIG;IACM,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAMpC;;;;;;OAMG;IACM,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAMzE;;;;OAIG;IACM,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY;IAO1D;;;;OAIG;IACM,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY;IAO1D;;;;;OAKG;IACM,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAMzF;;;;;OAKG;IACM,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAMxF;;;OAGG;IACH,OAAO,CAAC,KAAK;IAOb;;;OAGG;IACH,OAAO,CAAC,WAAW;CAetB"}
@@ -0,0 +1,138 @@
1
+ /**
2
+ * A memory guard for the builder importGraph() fills. graph-format stores every attribute as a dense
3
+ * column, one slot per node (or edge) whether or not that element has a value, so a file whose nodes
4
+ * each carry a differently named attribute holds n values but allocates n x n slots: a few hundred
5
+ * kilobytes of input can need gigabytes. The guard counts the slots that hold no value and stops the
6
+ * import once they pass a limit. A dense file has almost no empty slots, so it is never stopped
7
+ * however large it is.
8
+ */
9
+ import { GraphBuilder, GraphFormatError, } from "@graphty/graph-format";
10
+ import { describe } from "./options.js";
11
+ import { ImportReportBuilder } from "./report.js";
12
+ /** The issue code of an import stopped for allocating too many empty attribute slots. */
13
+ export const TOO_MANY_EMPTY_CELLS_CODE = "E_TOO_MANY_EMPTY_CELLS";
14
+ /** The default limit: 2^24 empty slots, about 130 MB of f64 columns. */
15
+ const DEFAULT_MAX_EMPTY_CELLS = 2 ** 24;
16
+ /**
17
+ * Resolve the maxEmptyCells option.
18
+ * @param value - the caller's value
19
+ * @returns a non-negative integer or Infinity
20
+ * @throws GraphFormatError E_UNSUPPORTED for anything else
21
+ */
22
+ export function maxEmptyCellsOption(value) {
23
+ if (value === undefined) {
24
+ return DEFAULT_MAX_EMPTY_CELLS;
25
+ }
26
+ if (typeof value === "number" && value >= 0 && (Number.isInteger(value) || value === Infinity)) {
27
+ return value;
28
+ }
29
+ throw new GraphFormatError("E_UNSUPPORTED", `option maxEmptyCells: ${describe(value)} is not a non-negative integer or Infinity`, { option: "maxEmptyCells", found: value });
30
+ }
31
+ /** A GraphBuilder that throws an ImportError once its attribute columns hold too many empty slots. */
32
+ export class CellBudgetBuilder extends GraphBuilder {
33
+ /**
34
+ * Create a builder with a limit.
35
+ * @param options - the builder options
36
+ * @param format - the format being read, for the error's report
37
+ * @param maxEmptyCells - the most empty slots allowed
38
+ */
39
+ constructor(options, format, maxEmptyCells) {
40
+ super(options);
41
+ this.format = format;
42
+ this.maxEmptyCells = maxEmptyCells;
43
+ this.nodeColumns = new Set();
44
+ this.edgeColumns = new Set();
45
+ this.values = 0;
46
+ }
47
+ /**
48
+ * Add a node, then check the limit (its row adds a slot to every node column).
49
+ * @param id - the node id
50
+ * @returns the node index
51
+ */
52
+ addNode(id) {
53
+ const index = super.addNode(id);
54
+ this.checkBudget();
55
+ return index;
56
+ }
57
+ /**
58
+ * Add an edge, then check the limit (its row adds a slot to every edge column).
59
+ * @param source - source id
60
+ * @param target - target id
61
+ * @param weight - the weight
62
+ * @returns the edge index
63
+ */
64
+ addEdge(source, target, weight) {
65
+ const edge = super.addEdge(source, target, weight);
66
+ this.checkBudget();
67
+ return edge;
68
+ }
69
+ /**
70
+ * Declare a node column, then check the limit.
71
+ * @param decl - the declaration
72
+ * @returns the column handle
73
+ */
74
+ declareNodeColumn(decl) {
75
+ const handle = super.declareNodeColumn(decl);
76
+ this.nodeColumns.add(handle);
77
+ this.checkBudget();
78
+ return handle;
79
+ }
80
+ /**
81
+ * Declare an edge column, then check the limit.
82
+ * @param decl - the declaration
83
+ * @returns the column handle
84
+ */
85
+ declareEdgeColumn(decl) {
86
+ const handle = super.declareEdgeColumn(decl);
87
+ this.edgeColumns.add(handle);
88
+ this.checkBudget();
89
+ return handle;
90
+ }
91
+ /**
92
+ * Set a node cell (a new name declares a column), then check the limit.
93
+ * @param column - the handle or name
94
+ * @param index - the node index
95
+ * @param value - the value
96
+ */
97
+ setNodeValue(column, index, value) {
98
+ super.setNodeValue(column, index, value);
99
+ this.nodeColumns.add(typeof column === "string" ? this.nodeColumn(column) : column);
100
+ this.count(value);
101
+ }
102
+ /**
103
+ * Set an edge cell (a new name declares a column), then check the limit.
104
+ * @param column - the handle or name
105
+ * @param edge - the edge index
106
+ * @param value - the value
107
+ */
108
+ setEdgeValue(column, edge, value) {
109
+ super.setEdgeValue(column, edge, value);
110
+ this.edgeColumns.add(typeof column === "string" ? this.edgeColumn(column) : column);
111
+ this.count(value);
112
+ }
113
+ /**
114
+ * Count a written value and check the budget.
115
+ * @param value - the value; null and undefined unset a slot and do not count
116
+ */
117
+ count(value) {
118
+ if (value !== null && value !== undefined) {
119
+ this.values++;
120
+ }
121
+ this.checkBudget();
122
+ }
123
+ /**
124
+ * Throw when the columns' slots minus the values written pass the limit.
125
+ * @throws ImportError E_TOO_MANY_EMPTY_CELLS
126
+ */
127
+ checkBudget() {
128
+ const slots = this.nodeColumns.size * this.nodeBound + this.edgeColumns.size * this.edgeBound;
129
+ const empty = slots - this.values;
130
+ if (empty > this.maxEmptyCells) {
131
+ new ImportReportBuilder(this.format, Infinity).fail(TOO_MANY_EMPTY_CELLS_CODE, `the attributes are too sparse: ${this.nodeColumns.size} node and ${this.edgeColumns.size} edge ` +
132
+ `attribute column(s) over ${this.nodeBound} node(s) and ${this.edgeBound} edge(s) would ` +
133
+ `allocate more than ${this.maxEmptyCells} slots that hold no value; pass a larger ` +
134
+ `maxEmptyCells (or Infinity) to read the file anyway`, undefined, { emptyCells: empty, maxEmptyCells: this.maxEmptyCells });
135
+ }
136
+ }
137
+ }
138
+ //# sourceMappingURL=cell-budget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cell-budget.js","sourceRoot":"","sources":["../../../src/common/cell-budget.ts"],"names":[],"mappings":"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"}
@@ -85,6 +85,16 @@ export declare function throwIfAborted(signal: AbortSignal | null | undefined):
85
85
  * @returns nothing
86
86
  */
87
87
  export declare function textChunks(input: ImportInput, report: ImportReportBuilder, options?: ReadOptions): AsyncGenerator<string, void, undefined>;
88
+ /**
89
+ * Read the whole input as bytes, for a binary format (a zip): nothing is decoded. The signal is
90
+ * checked before every chunk and progress reported after it; a stream is cancelled when the read
91
+ * stops early.
92
+ * @param input - the input
93
+ * @param options - cancellation and progress (the encoding is ignored)
94
+ * @returns the bytes, or null when the input is text (a string, or a chunk that is a string),
95
+ * which a binary format cannot read
96
+ */
97
+ export declare function readBytes(input: ImportInput, options?: ReadOptions): Promise<Uint8Array | null>;
88
98
  /**
89
99
  * Read the whole input as one string (the GML / DOT / JSON path, design section 8.4).
90
100
  * @param input - the input
@@ -1 +1 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/common/input.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAiD,iBAAiB,EAAyB,MAAM,YAAY,CAAC;AACrH,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B;;;;GAIG;AACH,MAAM,WAAW,WAAW;IACxB,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IACjD,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5F,qGAAqG;IACrG,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9C;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;CAC7E;AAQD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM9D;AA2MD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAMzD;AA8BD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAQlE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAQ7D;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAU3E;AAgBD;;;;;;;;;;GAUG;AACH,wBAAuB,UAAU,CAC7B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,mBAAmB,EAC3B,OAAO,GAAE,WAAgB,GAC1B,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAmGzC;AA4CD;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAC1B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,mBAAmB,EAC3B,OAAO,GAAE,WAAgB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED;;;;;;GAMG;AACH,qBAAa,UAAW,YAAW,aAAa,CAAC,MAAM,CAAC;IACpD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IAEpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAE7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IAEtC,OAAO,CAAC,UAAU,CAAK;IAEvB;;;;;OAKG;gBACS,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,GAAE,WAAgB;IAMtF;;;OAGG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;OAIG;IACI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC;CAoE3E"}
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/common/input.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAiD,iBAAiB,EAAyB,MAAM,YAAY,CAAC;AACrH,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B;;;;GAIG;AACH,MAAM,WAAW,WAAW;IACxB,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IACjD,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5F,qGAAqG;IACrG,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9C;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;CAC7E;AAQD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM9D;AA2MD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAMzD;AA8BD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAQlE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAQ7D;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAU3E;AAgBD;;;;;;;;;;GAUG;AACH,wBAAuB,UAAU,CAC7B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,mBAAmB,EAC3B,OAAO,GAAE,WAAgB,GAC1B,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAmGzC;AA4CD;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CA6BzG;AAED;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAC1B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,mBAAmB,EAC3B,OAAO,GAAE,WAAgB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED;;;;;;GAMG;AACH,qBAAa,UAAW,YAAW,aAAa,CAAC,MAAM,CAAC;IACpD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IAEpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAE7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IAEtC,OAAO,CAAC,UAAU,CAAK;IAEvB;;;;;OAKG;gBACS,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,GAAE,WAAgB;IAMtF;;;OAGG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;OAIG;IACI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC;CAoE3E"}
@@ -462,6 +462,45 @@ async function* streamChunks(stream, signal) {
462
462
  reader.releaseLock();
463
463
  }
464
464
  }
465
+ /**
466
+ * Read the whole input as bytes, for a binary format (a zip): nothing is decoded. The signal is
467
+ * checked before every chunk and progress reported after it; a stream is cancelled when the read
468
+ * stops early.
469
+ * @param input - the input
470
+ * @param options - cancellation and progress (the encoding is ignored)
471
+ * @returns the bytes, or null when the input is text (a string, or a chunk that is a string),
472
+ * which a binary format cannot read
473
+ */
474
+ export async function readBytes(input, options = {}) {
475
+ const signal = options.signal ?? null;
476
+ throwIfAborted(signal);
477
+ if (typeof input === "string") {
478
+ return null;
479
+ }
480
+ if (input instanceof Uint8Array) {
481
+ options.onProgress?.(input.byteLength, input.byteLength);
482
+ return input;
483
+ }
484
+ const parts = [];
485
+ let done = 0;
486
+ for await (const chunk of isReadableStream(input) ? streamChunks(input, signal) : input) {
487
+ throwIfAborted(signal);
488
+ if (typeof chunk === "string") {
489
+ return null;
490
+ }
491
+ if (!(chunk instanceof Uint8Array)) {
492
+ throw new GraphFormatError("E_UNSUPPORTED", "an input chunk must be a string or a Uint8Array", {
493
+ reason: "chunk type",
494
+ found: typeof chunk,
495
+ });
496
+ }
497
+ parts.push(chunk);
498
+ done += chunk.byteLength;
499
+ options.onProgress?.(done);
500
+ }
501
+ options.onProgress?.(done, done);
502
+ return parts.length === 0 ? new Uint8Array(0) : concatBytes(parts);
503
+ }
465
504
  /**
466
505
  * Read the whole input as one string (the GML / DOT / JSON path, design section 8.4).
467
506
  * @param input - the input
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/common/input.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/common/input.ts"],"names":[],"mappings":"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"}