@graphty/graph-io 0.3.27 → 0.3.28

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 (52) hide show
  1. package/dist/chunks/export-CHd4tQE2.js.map +1 -1
  2. package/dist/chunks/{exporter-IHv4nkCm.js → exporter-Cl021ZIE.js} +71 -47
  3. package/dist/chunks/exporter-Cl021ZIE.js.map +1 -0
  4. package/dist/chunks/exporter-D23CKNqF.js.map +1 -1
  5. package/dist/chunks/importer-BSALvkui.js.map +1 -1
  6. package/dist/chunks/{importer-B1wmPQjr.js → importer-BZB7iP9r.js} +31 -5
  7. package/dist/chunks/importer-BZB7iP9r.js.map +1 -0
  8. package/dist/chunks/importer-z_FL4VMb.js.map +1 -1
  9. package/dist/csv.js +11 -1
  10. package/dist/csv.js.map +1 -1
  11. package/dist/cx2.js +1 -1
  12. package/dist/dot.js +1 -1
  13. package/dist/gml.js +15 -6
  14. package/dist/gml.js.map +1 -1
  15. package/dist/graph-io.js +4 -4
  16. package/dist/graph-io.js.map +1 -1
  17. package/dist/src/common/declared-types.d.ts.map +1 -1
  18. package/dist/src/common/declared-types.js.map +1 -1
  19. package/dist/src/common/zip.js.map +1 -1
  20. package/dist/src/formats/csv/importer.d.ts.map +1 -1
  21. package/dist/src/formats/csv/importer.js +20 -2
  22. package/dist/src/formats/csv/importer.js.map +1 -1
  23. package/dist/src/formats/cx2/exporter.d.ts.map +1 -1
  24. package/dist/src/formats/cx2/exporter.js +84 -33
  25. package/dist/src/formats/cx2/exporter.js.map +1 -1
  26. package/dist/src/formats/dot/exporter.js +30 -4
  27. package/dist/src/formats/dot/exporter.js.map +1 -1
  28. package/dist/src/formats/dot/importer.js.map +1 -1
  29. package/dist/src/formats/gml/exporter.d.ts.map +1 -1
  30. package/dist/src/formats/gml/exporter.js +23 -6
  31. package/dist/src/formats/gml/exporter.js.map +1 -1
  32. package/dist/src/formats/pajek/importer.js.map +1 -1
  33. package/dist/src/registry.d.ts.map +1 -1
  34. package/dist/src/registry.js.map +1 -1
  35. package/dist/src/sniff.d.ts.map +1 -1
  36. package/dist/src/sniff.js.map +1 -1
  37. package/dist/src/types.d.ts.map +1 -1
  38. package/dist/src/types.js.map +1 -1
  39. package/package.json +2 -2
  40. package/src/common/declared-types.ts +1 -10
  41. package/src/common/zip.ts +1 -1
  42. package/src/formats/csv/importer.ts +21 -2
  43. package/src/formats/cx2/exporter.ts +123 -49
  44. package/src/formats/dot/exporter.ts +37 -4
  45. package/src/formats/dot/importer.ts +1 -1
  46. package/src/formats/gml/exporter.ts +24 -6
  47. package/src/formats/pajek/importer.ts +1 -1
  48. package/src/registry.ts +9 -10
  49. package/src/sniff.ts +2 -21
  50. package/src/types.ts +1 -7
  51. package/dist/chunks/exporter-IHv4nkCm.js.map +0 -1
  52. package/dist/chunks/importer-B1wmPQjr.js.map +0 -1
package/dist/cx2.js CHANGED
@@ -1,4 +1,4 @@
1
- import { C, a, c } from "./chunks/exporter-IHv4nkCm.js";
1
+ import { C, a, c } from "./chunks/exporter-Cl021ZIE.js";
2
2
  import { C as C2, c as c2 } from "./chunks/importer-BVRE--Un.js";
3
3
  export {
4
4
  C as CX2_CAPABILITIES,
package/dist/dot.js CHANGED
@@ -1,4 +1,4 @@
1
- import { D, a, d, b } from "./chunks/importer-B1wmPQjr.js";
1
+ import { D, a, d, b } from "./chunks/importer-BZB7iP9r.js";
2
2
  export {
3
3
  D as DOT_ISSUE,
4
4
  a as DOT_LOSS,
package/dist/gml.js CHANGED
@@ -473,17 +473,26 @@ function isTopLevel(column) {
473
473
  function versionText(text) {
474
474
  return NUMBER_TEXT.test(text) ? text : quoteGmlString(text);
475
475
  }
476
+ function labelRoleColumn(columns, label, used) {
477
+ if (label !== "node" && label !== "edge") {
478
+ return void 0;
479
+ }
480
+ const column = columns.find((c) => c.meta.role === "label");
481
+ if (column !== void 0) {
482
+ used.add("label");
483
+ }
484
+ return column;
485
+ }
476
486
  function selectColumns(table, reserved, label, plan, notes, filter = () => true) {
477
487
  const used = new Set(reserved);
478
488
  const out = [];
479
- for (const column of table) {
480
- if (!isWritten(column) || !filter(column)) {
481
- continue;
482
- }
483
- const preferred = preferredKey(column.meta);
489
+ const columns = [...table].filter((c) => isWritten(c) && filter(c));
490
+ const labelRole = labelRoleColumn(columns, label, used);
491
+ for (const column of columns) {
492
+ const preferred = column === labelRole ? "label" : preferredKey(column.meta);
484
493
  let key = preferred;
485
494
  const valid = isGmlKey(preferred);
486
- const taken = used.has(preferred);
495
+ const taken = column !== labelRole && used.has(preferred);
487
496
  if (!valid || taken) {
488
497
  const code = valid ? RESERVED_KEY_CODE : INVALID_KEY_CODE;
489
498
  let why = "is not a GML key";