@graphty/graph-io 0.3.19 → 0.3.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 (201) hide show
  1. package/README.md +49 -4
  2. package/dist/chunks/{escape-CWExcecC.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-DQiKgQJc.js → export-Bh60Dv-n.js} +5 -79
  5. package/dist/chunks/export-Bh60Dv-n.js.map +1 -0
  6. package/dist/chunks/{exporter-CbMZyVt-.js → exporter-BGrsWamJ.js} +7 -6
  7. package/dist/chunks/{exporter-CbMZyVt-.js.map → exporter-BGrsWamJ.js.map} +1 -1
  8. package/dist/chunks/exporter-DIeGJXAZ.js +834 -0
  9. package/dist/chunks/exporter-DIeGJXAZ.js.map +1 -0
  10. package/dist/chunks/{importer-BNFuV1-K.js → importer-BWY2FFc5.js} +28 -7
  11. package/dist/chunks/importer-BWY2FFc5.js.map +1 -0
  12. package/dist/chunks/importer-DD-xv9_Y.js +1471 -0
  13. package/dist/chunks/importer-DD-xv9_Y.js.map +1 -0
  14. package/dist/chunks/{importer-BAP4PrxR.js → importer-DET1tg6s.js} +30 -20
  15. package/dist/chunks/importer-DET1tg6s.js.map +1 -0
  16. package/dist/chunks/{importer-ByPGO-09.js → importer-DEcKhsmQ.js} +2 -2
  17. package/dist/chunks/{importer-ByPGO-09.js.map → importer-DEcKhsmQ.js.map} +1 -1
  18. package/dist/chunks/{importer-BW-Ft2ps.js → importer-DIrbbnAf.js} +6 -5
  19. package/dist/chunks/{importer-BW-Ft2ps.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-Bm1_5vPS.js → importer-eUREhBGj.js} +11 -8
  23. package/dist/chunks/importer-eUREhBGj.js.map +1 -0
  24. package/dist/chunks/{importer-DOepkgnG.js → importer-vi3bSdtw.js} +4 -4
  25. package/dist/chunks/{importer-DOepkgnG.js.map → importer-vi3bSdtw.js.map} +1 -1
  26. package/dist/chunks/{importer-BVGtU1NA.js → importer-zGLo8Dg_.js} +6 -5
  27. package/dist/chunks/{importer-BVGtU1NA.js.map → importer-zGLo8Dg_.js.map} +1 -1
  28. package/dist/chunks/{json-elements-CZY1wiZh.js → json-elements-DDS8N2Dd.js} +2 -2
  29. package/dist/chunks/{json-elements-CZY1wiZh.js.map → json-elements-DDS8N2Dd.js.map} +1 -1
  30. package/dist/chunks/{records-BzNicMsf.js → records-dbRkxwaq.js} +2 -2
  31. package/dist/chunks/{records-BzNicMsf.js.map → records-dbRkxwaq.js.map} +1 -1
  32. package/dist/chunks/{report-BcWboivV.js → report-B1z4WT9e.js} +143 -111
  33. package/dist/chunks/{report-BcWboivV.js.map → report-B1z4WT9e.js.map} +1 -1
  34. package/dist/chunks/{weights-CwISIpCP.js → weights-Dzba96G3.js} +5 -5
  35. package/dist/chunks/{weights-CwISIpCP.js.map → weights-Dzba96G3.js.map} +1 -1
  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 -5
  39. package/dist/csv.js.map +1 -1
  40. package/dist/cx.js +1 -1
  41. package/dist/cx2.js +2 -2
  42. package/dist/cys.d.ts +1 -0
  43. package/dist/cys.js +6 -0
  44. package/dist/cys.js.map +1 -0
  45. package/dist/dot.js +1 -1
  46. package/dist/gexf.js +5 -4
  47. package/dist/gexf.js.map +1 -1
  48. package/dist/gml.js +12 -14
  49. package/dist/gml.js.map +1 -1
  50. package/dist/graph-io.js +288 -141
  51. package/dist/graph-io.js.map +1 -1
  52. package/dist/graphml.js +1 -1
  53. package/dist/json.js +1 -1
  54. package/dist/neo4j.js +6 -5
  55. package/dist/neo4j.js.map +1 -1
  56. package/dist/obo.js +1 -1
  57. package/dist/pajek.js +1 -1
  58. package/dist/src/common/cell-budget.d.ts +84 -0
  59. package/dist/src/common/cell-budget.d.ts.map +1 -0
  60. package/dist/src/common/cell-budget.js +138 -0
  61. package/dist/src/common/cell-budget.js.map +1 -0
  62. package/dist/src/common/input.d.ts +10 -0
  63. package/dist/src/common/input.d.ts.map +1 -1
  64. package/dist/src/common/input.js +39 -0
  65. package/dist/src/common/input.js.map +1 -1
  66. package/dist/src/common/options.d.ts +6 -0
  67. package/dist/src/common/options.d.ts.map +1 -1
  68. package/dist/src/common/options.js +1 -1
  69. package/dist/src/common/options.js.map +1 -1
  70. package/dist/src/common/xml.d.ts +37 -3
  71. package/dist/src/common/xml.d.ts.map +1 -1
  72. package/dist/src/common/xml.js +86 -6
  73. package/dist/src/common/xml.js.map +1 -1
  74. package/dist/src/common/zip.d.ts +92 -0
  75. package/dist/src/common/zip.d.ts.map +1 -0
  76. package/dist/src/common/zip.js +399 -0
  77. package/dist/src/common/zip.js.map +1 -0
  78. package/dist/src/formats/cx/importer.d.ts.map +1 -1
  79. package/dist/src/formats/cx/importer.js +26 -17
  80. package/dist/src/formats/cx/importer.js.map +1 -1
  81. package/dist/src/formats/cys/constants.d.ts +68 -0
  82. package/dist/src/formats/cys/constants.d.ts.map +1 -0
  83. package/dist/src/formats/cys/constants.js +76 -0
  84. package/dist/src/formats/cys/constants.js.map +1 -0
  85. package/dist/src/formats/cys/importer.d.ts +38 -0
  86. package/dist/src/formats/cys/importer.d.ts.map +1 -0
  87. package/dist/src/formats/cys/importer.js +830 -0
  88. package/dist/src/formats/cys/importer.js.map +1 -0
  89. package/dist/src/formats/cys/index.d.ts +7 -0
  90. package/dist/src/formats/cys/index.d.ts.map +1 -0
  91. package/dist/src/formats/cys/index.js +7 -0
  92. package/dist/src/formats/cys/index.js.map +1 -0
  93. package/dist/src/formats/cys/session.d.ts +132 -0
  94. package/dist/src/formats/cys/session.d.ts.map +1 -0
  95. package/dist/src/formats/cys/session.js +315 -0
  96. package/dist/src/formats/cys/session.js.map +1 -0
  97. package/dist/src/formats/cys/tables.d.ts +90 -0
  98. package/dist/src/formats/cys/tables.d.ts.map +1 -0
  99. package/dist/src/formats/cys/tables.js +293 -0
  100. package/dist/src/formats/cys/tables.js.map +1 -0
  101. package/dist/src/formats/dot/exporter.d.ts +2 -0
  102. package/dist/src/formats/dot/exporter.d.ts.map +1 -1
  103. package/dist/src/formats/dot/exporter.js +12 -0
  104. package/dist/src/formats/dot/exporter.js.map +1 -1
  105. package/dist/src/formats/dot/importer.js +6 -2
  106. package/dist/src/formats/dot/importer.js.map +1 -1
  107. package/dist/src/formats/gexf/importer.d.ts +2 -2
  108. package/dist/src/formats/gexf/importer.d.ts.map +1 -1
  109. package/dist/src/formats/gexf/importer.js +1 -1
  110. package/dist/src/formats/gexf/importer.js.map +1 -1
  111. package/dist/src/formats/gml/exporter.d.ts +0 -8
  112. package/dist/src/formats/gml/exporter.d.ts.map +1 -1
  113. package/dist/src/formats/gml/exporter.js +7 -17
  114. package/dist/src/formats/gml/exporter.js.map +1 -1
  115. package/dist/src/formats/json/exporter.d.ts.map +1 -1
  116. package/dist/src/formats/json/exporter.js +3 -1
  117. package/dist/src/formats/json/exporter.js.map +1 -1
  118. package/dist/src/formats/json/importer.d.ts.map +1 -1
  119. package/dist/src/formats/json/importer.js +3 -2
  120. package/dist/src/formats/json/importer.js.map +1 -1
  121. package/dist/src/formats/xgmml/columns.d.ts +152 -0
  122. package/dist/src/formats/xgmml/columns.d.ts.map +1 -0
  123. package/dist/src/formats/xgmml/columns.js +593 -0
  124. package/dist/src/formats/xgmml/columns.js.map +1 -0
  125. package/dist/src/formats/xgmml/constants.d.ts +196 -0
  126. package/dist/src/formats/xgmml/constants.d.ts.map +1 -0
  127. package/dist/src/formats/xgmml/constants.js +197 -0
  128. package/dist/src/formats/xgmml/constants.js.map +1 -0
  129. package/dist/src/formats/xgmml/document.d.ts +361 -0
  130. package/dist/src/formats/xgmml/document.d.ts.map +1 -0
  131. package/dist/src/formats/xgmml/document.js +695 -0
  132. package/dist/src/formats/xgmml/document.js.map +1 -0
  133. package/dist/src/formats/xgmml/emit.d.ts +341 -0
  134. package/dist/src/formats/xgmml/emit.d.ts.map +1 -0
  135. package/dist/src/formats/xgmml/emit.js +1275 -0
  136. package/dist/src/formats/xgmml/emit.js.map +1 -0
  137. package/dist/src/formats/xgmml/exporter.d.ts +24 -0
  138. package/dist/src/formats/xgmml/exporter.d.ts.map +1 -0
  139. package/dist/src/formats/xgmml/exporter.js +999 -0
  140. package/dist/src/formats/xgmml/exporter.js.map +1 -0
  141. package/dist/src/formats/xgmml/importer.d.ts +58 -0
  142. package/dist/src/formats/xgmml/importer.d.ts.map +1 -0
  143. package/dist/src/formats/xgmml/importer.js +360 -0
  144. package/dist/src/formats/xgmml/importer.js.map +1 -0
  145. package/dist/src/formats/xgmml/index.d.ts +8 -0
  146. package/dist/src/formats/xgmml/index.d.ts.map +1 -0
  147. package/dist/src/formats/xgmml/index.js +8 -0
  148. package/dist/src/formats/xgmml/index.js.map +1 -0
  149. package/dist/src/formats/xgmml/values.d.ts +60 -0
  150. package/dist/src/formats/xgmml/values.d.ts.map +1 -0
  151. package/dist/src/formats/xgmml/values.js +148 -0
  152. package/dist/src/formats/xgmml/values.js.map +1 -0
  153. package/dist/src/index.d.ts +2 -0
  154. package/dist/src/index.d.ts.map +1 -1
  155. package/dist/src/index.js +2 -0
  156. package/dist/src/index.js.map +1 -1
  157. package/dist/src/registry.d.ts +7 -0
  158. package/dist/src/registry.d.ts.map +1 -1
  159. package/dist/src/registry.js +25 -10
  160. package/dist/src/registry.js.map +1 -1
  161. package/dist/src/sniff.d.ts +1 -1
  162. package/dist/src/sniff.d.ts.map +1 -1
  163. package/dist/src/sniff.js +2 -0
  164. package/dist/src/sniff.js.map +1 -1
  165. package/dist/xgmml.d.ts +1 -0
  166. package/dist/xgmml.js +9 -0
  167. package/dist/xgmml.js.map +1 -0
  168. package/package.json +15 -2
  169. package/src/common/cell-budget.ts +170 -0
  170. package/src/common/input.ts +40 -0
  171. package/src/common/options.ts +1 -1
  172. package/src/common/xml.ts +127 -6
  173. package/src/common/zip.ts +472 -0
  174. package/src/formats/cx/importer.ts +27 -19
  175. package/src/formats/cys/constants.ts +99 -0
  176. package/src/formats/cys/importer.ts +1100 -0
  177. package/src/formats/cys/index.ts +7 -0
  178. package/src/formats/cys/session.ts +428 -0
  179. package/src/formats/cys/tables.ts +400 -0
  180. package/src/formats/dot/exporter.ts +17 -0
  181. package/src/formats/dot/importer.ts +6 -2
  182. package/src/formats/gexf/importer.ts +0 -1
  183. package/src/formats/gml/exporter.ts +7 -18
  184. package/src/formats/json/exporter.ts +3 -1
  185. package/src/formats/json/importer.ts +3 -2
  186. package/src/formats/xgmml/columns.ts +747 -0
  187. package/src/formats/xgmml/constants.ts +265 -0
  188. package/src/formats/xgmml/document.ts +975 -0
  189. package/src/formats/xgmml/emit.ts +1563 -0
  190. package/src/formats/xgmml/exporter.ts +1215 -0
  191. package/src/formats/xgmml/importer.ts +491 -0
  192. package/src/formats/xgmml/index.ts +8 -0
  193. package/src/formats/xgmml/values.ts +183 -0
  194. package/src/index.ts +9 -0
  195. package/src/registry.ts +41 -15
  196. package/src/sniff.ts +5 -1
  197. package/dist/chunks/escape-CWExcecC.js.map +0 -1
  198. package/dist/chunks/importer-BAP4PrxR.js.map +0 -1
  199. package/dist/chunks/importer-BNFuV1-K.js.map +0 -1
  200. package/dist/chunks/importer-Bm1_5vPS.js.map +0 -1
  201. package/dist/chunks/writer-DQiKgQJc.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importer.js","sourceRoot":"","sources":["../../../../src/formats/cys/importer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * The `@graphty/graph-io/cys` subpath: the Cytoscape session importer, its option type and its
3
+ * issue code table. Sessions are read-only: graph-io writes XGMML and CX2, which Cytoscape opens.
4
+ */
5
+ export { CYS_ISSUE } from "./constants.js";
6
+ export { cysImporter, type CysImportOptions } from "./importer.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/formats/cys/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * The `@graphty/graph-io/cys` subpath: the Cytoscape session importer, its option type and its
3
+ * issue code table. Sessions are read-only: graph-io writes XGMML and CX2, which Cytoscape opens.
4
+ */
5
+ export { CYS_ISSUE } from "./constants.js";
6
+ export { cysImporter } from "./importer.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/formats/cys/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAyB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * The layout of a Cytoscape session archive (`research-session-and-style.md` sections 2.1 to 2.3;
3
+ * Cytoscape's `Cy3SessionReaderImpl`, `Cy2SessionReaderImpl` and `SessionUtil`): which entries
4
+ * are the version marker, the networks, views, tables, styles and the rest, read from the central
5
+ * directory alone. Entries are inflated one at a time, only when asked for, within the import's
6
+ * byte budget.
7
+ */
8
+ import { type ResolvedImportOptions } from "../../common/options.js";
9
+ import { ImportReportBuilder } from "../../common/report.js";
10
+ import { type ZipEntry } from "../../common/zip.js";
11
+ import { type ImportInput } from "../../types.js";
12
+ /** An entry of the session, by its path under the session's root folder. */
13
+ export interface SessionEntry {
14
+ /** The path under the root folder, as the archive spells it (URL-encoded parts). */
15
+ readonly path: string;
16
+ /** The full entry name, for messages. */
17
+ readonly name: string;
18
+ /** The zip entry. */
19
+ readonly zip: ZipEntry;
20
+ }
21
+ /** A 3.x network file: one root network (a collection). */
22
+ export interface NetworkEntry extends SessionEntry {
23
+ /** The root network's saved SUID. */
24
+ readonly suid: string;
25
+ /** The file name's network name, decoded. */
26
+ readonly title: string;
27
+ }
28
+ /** A 3.x view file. */
29
+ interface ViewEntry extends SessionEntry {
30
+ /** The SUID of the network the view shows. */
31
+ readonly network: string;
32
+ /** The view's SUID. */
33
+ readonly view: string;
34
+ }
35
+ /** A 3.x table file. */
36
+ export interface TableEntry extends SessionEntry {
37
+ /** The path under `tables/` (what `cytables.xml` names). */
38
+ readonly tablePath: string;
39
+ /** The SUID of the network the table belongs to. */
40
+ readonly network: string;
41
+ /** The namespace: LOCAL_ATTRS, SHARED_ATTRS, HIDDEN or an app's. */
42
+ readonly namespace: string;
43
+ /** The element class: CyNode, CyEdge or CyNetwork. */
44
+ readonly element: "node" | "edge" | "network" | null;
45
+ }
46
+ /** What a session archive holds, by kind. */
47
+ interface SessionLayout {
48
+ /** "3" for a 3.x session, "2" for a 2.x one. */
49
+ readonly era: "2" | "3";
50
+ /** The version marker as written (`3.0.0`), or the 2.x cysession.xml documentVersion. */
51
+ readonly version: string;
52
+ /** The root folder, with its trailing slash ("" when the entries have none). */
53
+ readonly root: string;
54
+ readonly networks: readonly NetworkEntry[];
55
+ readonly views: readonly ViewEntry[];
56
+ readonly tables: readonly TableEntry[];
57
+ /** `tables/cytables.xml`, if present. */
58
+ readonly cytables: SessionEntry | null;
59
+ /** `apps/org.cytoscape.swing-application/network_list.xml`, if present. */
60
+ readonly networkList: SessionEntry | null;
61
+ /** 2.x: `cysession.xml`. */
62
+ readonly cysession: SessionEntry | null;
63
+ /** 2.x: the network files by their path. */
64
+ readonly files: ReadonlyMap<string, SessionEntry>;
65
+ /** The style entries (`session_vizmap.xml`, `session_vizmap.props`). */
66
+ readonly styles: readonly SessionEntry[];
67
+ /** Every entry the importer does not read. */
68
+ readonly skipped: readonly string[];
69
+ }
70
+ /** An opened session: its bytes, its layout and an entry reader within the byte budget. */
71
+ export interface Session {
72
+ readonly layout: SessionLayout;
73
+ /**
74
+ * Inflate one entry.
75
+ * @param entry - the entry
76
+ * @returns its bytes
77
+ */
78
+ read(entry: SessionEntry): Promise<Uint8Array>;
79
+ }
80
+ /**
81
+ * Java's `URLDecoder.decode` (UTF-8): `+` is a space, `%XX` a byte; a malformed escape leaves the
82
+ * text as it is.
83
+ * @param text - the encoded text
84
+ * @returns the decoded text
85
+ */
86
+ export declare function urlDecode(text: string): string;
87
+ /**
88
+ * Read the input as a zip and lay out its session entries. Fatal: text input or not a zip
89
+ * (E_CYS_NOT_ZIP), an empty input, a damaged archive (E_CYS_CORRUPT), a split archive
90
+ * (E_CYS_UNSUPPORTED), no session marker (E_CYS_NOT_SESSION), a version graph-io cannot read
91
+ * (E_CYS_VERSION).
92
+ * @param input - the input
93
+ * @param report - the report
94
+ * @param common - cancellation and progress
95
+ * @param maxBytes - the import's uncompressed byte budget
96
+ * @returns the session
97
+ */
98
+ export declare function openSession(input: ImportInput, report: ImportReportBuilder, common: ResolvedImportOptions, maxBytes: number): Promise<Session>;
99
+ /**
100
+ * A list of names for a message: the first ten, then a count.
101
+ * @param names - the names
102
+ * @returns the text
103
+ */
104
+ export declare function listed(names: readonly string[]): string;
105
+ /** One element of a small XML document, as a tree. */
106
+ export interface XmlNode {
107
+ /** The local name. */
108
+ readonly name: string;
109
+ /** The attributes by name as written (prefix included). */
110
+ readonly attrs: ReadonlyMap<string, string>;
111
+ /** The child elements. */
112
+ readonly children: XmlNode[];
113
+ }
114
+ /**
115
+ * Read a small XML entry (`cytables.xml`, `network_list.xml`, `cysession.xml`) as a tree. A
116
+ * document that is not well-formed is E_CYS_CORRUPT naming the entry.
117
+ * @param bytes - the entry's bytes
118
+ * @param entry - the entry name
119
+ * @param report - the report
120
+ * @param common - cancellation
121
+ * @returns the root element
122
+ */
123
+ export declare function readXmlTree(bytes: Uint8Array, entry: string, report: ImportReportBuilder, common: ResolvedImportOptions): Promise<XmlNode>;
124
+ /**
125
+ * Every element of a tree with a local name, depth first.
126
+ * @param node - the tree
127
+ * @param name - the local name
128
+ * @returns the elements
129
+ */
130
+ export declare function elementsNamed(node: XmlNode, name: string): XmlNode[];
131
+ export {};
132
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../src/formats/cys/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,315 @@
1
+ /**
2
+ * The layout of a Cytoscape session archive (`research-session-and-style.md` sections 2.1 to 2.3;
3
+ * Cytoscape's `Cy3SessionReaderImpl`, `Cy2SessionReaderImpl` and `SessionUtil`): which entries
4
+ * are the version marker, the networks, views, tables, styles and the rest, read from the central
5
+ * directory alone. Entries are inflated one at a time, only when asked for, within the import's
6
+ * byte budget.
7
+ */
8
+ import { readBytes, textChunks } from "../../common/input.js";
9
+ import { ImportReportBuilder } from "../../common/report.js";
10
+ import { tokenizeXml, xmlDeclaredEncoding, XmlSyntaxError } from "../../common/xml.js";
11
+ import { readZipDirectory, readZipEntry, ZipError } from "../../common/zip.js";
12
+ import { ImportError } from "../../types.js";
13
+ import { CYS_ISSUE, FORMAT, MAX_RATIO } from "./constants.js";
14
+ /**
15
+ * Java's `URLDecoder.decode` (UTF-8): `+` is a space, `%XX` a byte; a malformed escape leaves the
16
+ * text as it is.
17
+ * @param text - the encoded text
18
+ * @returns the decoded text
19
+ */
20
+ export function urlDecode(text) {
21
+ const plus = text.replace(/\+/g, " ");
22
+ try {
23
+ return decodeURIComponent(plus);
24
+ }
25
+ catch {
26
+ return plus;
27
+ }
28
+ }
29
+ /**
30
+ * Read the input as a zip and lay out its session entries. Fatal: text input or not a zip
31
+ * (E_CYS_NOT_ZIP), an empty input, a damaged archive (E_CYS_CORRUPT), a split archive
32
+ * (E_CYS_UNSUPPORTED), no session marker (E_CYS_NOT_SESSION), a version graph-io cannot read
33
+ * (E_CYS_VERSION).
34
+ * @param input - the input
35
+ * @param report - the report
36
+ * @param common - cancellation and progress
37
+ * @param maxBytes - the import's uncompressed byte budget
38
+ * @returns the session
39
+ */
40
+ export async function openSession(input, report, common, maxBytes) {
41
+ const bytes = await readBytes(input, common);
42
+ if (bytes === null) {
43
+ report.fail(CYS_ISSUE.NOT_ZIP, "a Cytoscape session is a zip archive; text input cannot hold one (pass the bytes)");
44
+ }
45
+ if (bytes.byteLength === 0) {
46
+ report.fail(CYS_ISSUE.EMPTY_INPUT, "the input is empty");
47
+ }
48
+ let zipEntries;
49
+ try {
50
+ zipEntries = readZipDirectory(bytes);
51
+ }
52
+ catch (err) {
53
+ return zipFailure(err, report);
54
+ }
55
+ const layout = layoutOf(zipEntries, report);
56
+ let budget = maxBytes;
57
+ let inflated = 0;
58
+ const total = zipEntries.reduce((sum, e) => sum + e.size, 0);
59
+ return {
60
+ layout,
61
+ read: async (entry) => {
62
+ const before = inflated;
63
+ try {
64
+ const data = await readZipEntry(bytes, entry.zip, {
65
+ signal: common.signal,
66
+ maxBytes: budget,
67
+ maxRatio: MAX_RATIO,
68
+ onBytes: (n) => common.onProgress?.(before + n, total),
69
+ });
70
+ budget -= data.byteLength;
71
+ inflated += data.byteLength;
72
+ return data;
73
+ }
74
+ catch (err) {
75
+ return zipFailure(err, report);
76
+ }
77
+ },
78
+ };
79
+ }
80
+ /**
81
+ * Fail the import with the fatal issue of a zip error (any other error is rethrown).
82
+ * @param err - the error
83
+ * @param report - the report
84
+ */
85
+ function zipFailure(err, report) {
86
+ if (!(err instanceof ZipError)) {
87
+ throw err;
88
+ }
89
+ const code = {
90
+ "not-zip": CYS_ISSUE.NOT_ZIP,
91
+ corrupt: CYS_ISSUE.CORRUPT,
92
+ unsupported: CYS_ISSUE.UNSUPPORTED,
93
+ "too-large": CYS_ISSUE.TOO_LARGE,
94
+ }[err.kind];
95
+ if (err.kind === "too-large") {
96
+ // the size limits are not a parse error: graph-io records E_TOO_LARGE as unsupported
97
+ report.error("unsupported", code, err.message);
98
+ throw report.abort(err.message, { code });
99
+ }
100
+ report.fail(code, err.message);
101
+ }
102
+ /** A 3.x network entry name: `<SUID>[-<name>].xgmml`. */
103
+ const NETWORK_FILE = /^networks\/(\d+)(?:-([^/]*))?\.xgmml$/;
104
+ /** A 3.x view entry name: `<networkSUID>-<viewSUID>[-<title>].xgmml`. */
105
+ const VIEW_FILE = /^views\/(\d+)-(\d+)(?:-[^/]*)?\.xgmml$/;
106
+ /** A 3.x table: `tables/<networkSUID>[-<name>]/<namespace>-<class>-<title>.cytable`. */
107
+ const TABLE_FILE = /^tables\/((\d+)(?:-[^/]*)?\/([^/-]+)-([^/-]+)-[^/]*\.cytable)$/;
108
+ /** Entries of other tools that carry nothing: macOS resource forks and folder metadata. */
109
+ const NOISE = /(^|\/)(__MACOSX\/|\.DS_Store$)/;
110
+ /**
111
+ * Lay out the entries: drop directory entries and macOS noise, keep the first of a repeated name
112
+ * (W_CYS_DUPLICATE_ENTRY), find the session marker and its root folder, classify what is under
113
+ * it, and list what is not read.
114
+ * @param zipEntries - the central directory
115
+ * @param report - the report
116
+ * @returns the layout
117
+ */
118
+ function layoutOf(zipEntries, report) {
119
+ const byName = new Map();
120
+ const repeated = [];
121
+ for (const entry of zipEntries) {
122
+ if (entry.directory || NOISE.test(entry.name)) {
123
+ continue;
124
+ }
125
+ if (byName.has(entry.name)) {
126
+ repeated.push(entry.name);
127
+ continue;
128
+ }
129
+ byName.set(entry.name, entry);
130
+ }
131
+ if (repeated.length > 0) {
132
+ report.warning("unsupported", CYS_ISSUE.DUPLICATE_ENTRY, `${repeated.length} entry name(s) appear more than once; the first of each is read: ${listed(repeated)}`);
133
+ }
134
+ const names = [...byName.keys()];
135
+ const marker = names.find((n) => /^([^/]*\/)?[^/]+\.version$/.test(n));
136
+ const cysession = names.find((n) => /^([^/]*\/)?cysession\.xml$/.test(n));
137
+ if (marker === undefined && cysession === undefined) {
138
+ report.fail(CYS_ISSUE.NOT_SESSION, "the zip holds neither a session version marker (<x.y.z>.version) nor cysession.xml: it is not a Cytoscape session");
139
+ }
140
+ const anchor = marker ?? cysession;
141
+ const root = anchor.slice(0, anchor.lastIndexOf("/") + 1);
142
+ let era = "2";
143
+ let version = "2.0.0";
144
+ if (marker !== undefined) {
145
+ version = marker.slice(root.length, -".version".length);
146
+ const major = Number(version.split(".")[0]);
147
+ if (!Number.isInteger(major) || major > 3) {
148
+ report.fail(CYS_ISSUE.VERSION, `the session version ${version} is newer than the Cytoscape 3 sessions graph-io reads`);
149
+ }
150
+ era = major === 3 ? "3" : "2";
151
+ }
152
+ const layout = {
153
+ era,
154
+ version,
155
+ root,
156
+ networks: [],
157
+ views: [],
158
+ tables: [],
159
+ cytables: null,
160
+ networkList: null,
161
+ cysession: null,
162
+ files: new Map(),
163
+ styles: [],
164
+ skipped: [],
165
+ };
166
+ for (const [name, zip] of byName) {
167
+ if (!name.startsWith(root) || name === marker) {
168
+ if (name !== marker) {
169
+ layout.skipped.push(name);
170
+ }
171
+ continue;
172
+ }
173
+ const path = name.slice(root.length);
174
+ const entry = { path, name, zip };
175
+ if (era === "3") {
176
+ classify3(entry, layout);
177
+ }
178
+ else {
179
+ classify2(entry, layout);
180
+ }
181
+ }
182
+ return layout;
183
+ }
184
+ /**
185
+ * Classify one entry of a 3.x session.
186
+ * @param entry - the entry
187
+ * @param layout - the layout being built
188
+ */
189
+ function classify3(entry, layout) {
190
+ const { path } = entry;
191
+ const network = NETWORK_FILE.exec(path);
192
+ const view = VIEW_FILE.exec(path);
193
+ const table = TABLE_FILE.exec(path);
194
+ if (network !== null) {
195
+ layout.networks.push({ ...entry, suid: network[1], title: urlDecode(network[2] ?? "") });
196
+ }
197
+ else if (view !== null) {
198
+ layout.views.push({ ...entry, network: view[1], view: view[2] });
199
+ }
200
+ else if (path === "tables/cytables.xml") {
201
+ layout.cytables = entry;
202
+ }
203
+ else if (table !== null) {
204
+ const element = {
205
+ "org.cytoscape.model.CyNode": "node",
206
+ "org.cytoscape.model.CyEdge": "edge",
207
+ "org.cytoscape.model.CyNetwork": "network",
208
+ }[urlDecode(table[4])];
209
+ layout.tables.push({
210
+ ...entry,
211
+ tablePath: table[1],
212
+ network: table[2],
213
+ namespace: urlDecode(table[3]),
214
+ element: element ?? null,
215
+ });
216
+ }
217
+ else if (path === "apps/org.cytoscape.swing-application/network_list.xml") {
218
+ layout.networkList = entry;
219
+ }
220
+ else if (/(^|\/)session_vizmap\.(xml|props)$/.test(path)) {
221
+ layout.styles.push(entry);
222
+ }
223
+ else {
224
+ layout.skipped.push(entry.name);
225
+ }
226
+ }
227
+ /**
228
+ * Classify one entry of a 2.x session.
229
+ * @param entry - the entry
230
+ * @param layout - the layout being built
231
+ */
232
+ function classify2(entry, layout) {
233
+ const { path } = entry;
234
+ if (path === "cysession.xml") {
235
+ layout.cysession = entry;
236
+ }
237
+ else if (/^[^/]+\.xgmml$/.test(path)) {
238
+ layout.files.set(path, entry);
239
+ }
240
+ else if (/^session_vizmap\.(props|xml)$/.test(path)) {
241
+ layout.styles.push(entry);
242
+ }
243
+ else {
244
+ layout.skipped.push(entry.name);
245
+ }
246
+ }
247
+ /**
248
+ * A list of names for a message: the first ten, then a count.
249
+ * @param names - the names
250
+ * @returns the text
251
+ */
252
+ export function listed(names) {
253
+ const head = names.slice(0, 10).join(", ");
254
+ return names.length > 10 ? `${head} and ${names.length - 10} more` : head;
255
+ }
256
+ /**
257
+ * Read a small XML entry (`cytables.xml`, `network_list.xml`, `cysession.xml`) as a tree. A
258
+ * document that is not well-formed is E_CYS_CORRUPT naming the entry.
259
+ * @param bytes - the entry's bytes
260
+ * @param entry - the entry name
261
+ * @param report - the report
262
+ * @param common - cancellation
263
+ * @returns the root element
264
+ */
265
+ export async function readXmlTree(bytes, entry, report, common) {
266
+ const scratch = new ImportReportBuilder(FORMAT, 0);
267
+ const stack = [{ name: "", attrs: new Map(), children: [] }];
268
+ try {
269
+ await tokenizeXml(textChunks(bytes, scratch, { signal: common.signal, declaredEncoding: xmlDeclaredEncoding }), {
270
+ start(name, attrs) {
271
+ const node = { name: name.slice(name.lastIndexOf(":") + 1), attrs, children: [] };
272
+ stack[stack.length - 1].children.push(node);
273
+ stack.push(node);
274
+ },
275
+ end() {
276
+ stack.pop();
277
+ },
278
+ text() {
279
+ // the session documents keep everything in attributes
280
+ },
281
+ });
282
+ }
283
+ catch (err) {
284
+ if (err instanceof XmlSyntaxError || err instanceof ImportError) {
285
+ report.fail(CYS_ISSUE.CORRUPT, `${entry}: ${err.message}`);
286
+ }
287
+ throw err;
288
+ }
289
+ const [root] = stack[0].children;
290
+ if (root === undefined) {
291
+ report.fail(CYS_ISSUE.CORRUPT, `${entry}: the document is empty`);
292
+ }
293
+ return root;
294
+ }
295
+ /**
296
+ * Every element of a tree with a local name, depth first.
297
+ * @param node - the tree
298
+ * @param name - the local name
299
+ * @returns the elements
300
+ */
301
+ export function elementsNamed(node, name) {
302
+ const out = [];
303
+ const stack = [node];
304
+ while (stack.length > 0) {
305
+ const n = stack.pop();
306
+ if (n.name === name) {
307
+ out.push(n);
308
+ }
309
+ for (let i = n.children.length - 1; i >= 0; i--) {
310
+ stack.push(n.children[i]);
311
+ }
312
+ }
313
+ return out;
314
+ }
315
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../src/formats/cys/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * The tables of a Cytoscape 3 session: the CyCSV `.cytable` files (`research-session-and-style.md`
3
+ * section 2.4; Cytoscape's `CSVCyReader`) and the virtual columns `tables/cytables.xml` joins into
4
+ * them. Cells become XGMML att records, typed by the column's Java class, so the XGMML emitter
5
+ * applies the same column rules (types, widening, equations, hidden columns, renames) to a
6
+ * session's tables as to an XGMML file's atts.
7
+ */
8
+ import { type ResolvedImportOptions } from "../../common/options.js";
9
+ import { ImportReportBuilder } from "../../common/report.js";
10
+ import { type AttRec } from "../xgmml/document.js";
11
+ /** One column of a table. */
12
+ interface CyColumn {
13
+ /** The name. */
14
+ readonly name: string;
15
+ /** The Cytoscape type of a scalar column, or of a list's items. */
16
+ readonly type: string;
17
+ /** A list column. */
18
+ readonly list: boolean;
19
+ }
20
+ /** One table, read. */
21
+ export interface CyTable {
22
+ /** The table's path under `tables/` as the archive spells it (what cytables.xml names). */
23
+ readonly path: string;
24
+ /** The entry name, for messages. */
25
+ readonly entry: string;
26
+ /** The columns; the first is the primary key. */
27
+ readonly columns: readonly CyColumn[];
28
+ /** The rows by key text, in file order (the first row of a repeated key). */
29
+ readonly rows: ReadonlyMap<string, readonly string[]>;
30
+ /** The line each row starts on, by key. */
31
+ readonly lines: ReadonlyMap<string, number>;
32
+ }
33
+ /**
34
+ * Read one CyCSV table. A table that cannot be read at all (an unknown CyCSV version or column
35
+ * class, a malformed header, broken CSV) is recorded as E_CYS_TABLE and skipped (null); rows with
36
+ * the wrong number of cells or a repeated key are counted in one W_CYS_TABLE_ROW.
37
+ * @param bytes - the entry's bytes
38
+ * @param path - the table's path under `tables/`
39
+ * @param entry - the entry name, for messages
40
+ * @param report - the import's report
41
+ * @param common - cancellation
42
+ * @returns the table, or null
43
+ */
44
+ export declare function readCyTable(bytes: Uint8Array, path: string, entry: string, report: ImportReportBuilder, common: ResolvedImportOptions): Promise<CyTable | null>;
45
+ /**
46
+ * The att record of one cell, or null for an unset cell. CyCSV's rules: an empty cell is unset
47
+ * except in a String column, where it is the empty string; a list cell holds its items separated
48
+ * by newlines (Java's `split`, so trailing empty items vanish; an empty String-list cell is one
49
+ * empty item, any other empty list cell unset); a cell starting with `=` is an equation.
50
+ * @param column - the column
51
+ * @param text - the cell text
52
+ * @param line - the row's line
53
+ * @param namespace - the table namespace the column belongs to (null for the network's own table)
54
+ * @param hidden - whether the column is hidden (HIDDEN and app tables)
55
+ * @returns the att, or null
56
+ */
57
+ export declare function cellAtt(column: CyColumn, text: string, line: number, namespace: string | null, hidden: boolean): AttRec | null;
58
+ /** One virtual column of `tables/cytables.xml`. */
59
+ export interface VirtualColumn {
60
+ /** The column name in the target table. */
61
+ readonly name: string;
62
+ /** The target table's path under `tables/`. */
63
+ readonly targetTable: string;
64
+ /** The source table's path. */
65
+ readonly sourceTable: string;
66
+ /** The source column's name. */
67
+ readonly sourceColumn: string;
68
+ /** The join column of the source (normally SUID). */
69
+ readonly sourceJoinKey: string;
70
+ /** The join column of the target (normally SUID). */
71
+ readonly targetJoinKey: string;
72
+ }
73
+ /** A resolved virtual column: its type and its value per target row key. */
74
+ interface VirtualValues {
75
+ readonly column: CyColumn;
76
+ readonly values: ReadonlyMap<string, string>;
77
+ }
78
+ /**
79
+ * Resolve the virtual columns of one table: each one's values joined from its source table,
80
+ * following a source that is itself a virtual column. A column whose source table or column is
81
+ * missing, or whose sources form a cycle, is E_CYS_TABLE and skipped.
82
+ * @param target - the table
83
+ * @param virtuals - every virtual column of the session
84
+ * @param tableOf - reads (and caches) a table by path, null when it cannot be read or is absent
85
+ * @param report - the report
86
+ * @returns the virtual columns of the table, in cytables.xml order
87
+ */
88
+ export declare function virtualColumnsOf(target: CyTable, virtuals: readonly VirtualColumn[], tableOf: (path: string) => Promise<CyTable | null>, report: ImportReportBuilder): Promise<VirtualValues[]>;
89
+ export {};
90
+ //# sourceMappingURL=tables.d.ts.map