- Improving performance and memory usage of multigraphs.
- Adding
#.inboundDegree
,#.outboundDegree
,#.inboundDegreeWithoutSelfLoops
,#.outboundDegreeWithoutSelfLoops
. - Adding missing
#.dropDirectedEdge
&#.dropUndirectedEdge
. - Adding possibility to pass upgrading options to
#.copy
. - Refactoring internal edge & neighbor iteration schemes.
- Dropping undocumented
#.upgradeToMixed
&#.upgradeToMulti
. - Refactoring internal indices.
- Fixing edge iteration wrt. self loops.
- Dropping some irrelevant arities for edge attribute updates.
- Improving performance of edge iteration.
- Improving perfromance of neighbor iteration.
- Improving performance of node deletion.
- Improving performance of edge attribute edition.
- Improving performance of internal edge key generator.
- Improving memory usage.
- Improving performance of default degree methods.
- Improving serialization performance.
- Fixing a
#.mergeUndirectedEdgeWithKey
&#.updateUndirectedEdgeWithKey
bug when source & target are given in the reverse order.
- Fixing
#.copy
not copying the graph's attributes. - Improving performance of
#.copy
.
- Adding
#.updateAttributes
. - Adding
#.updateNodeAttributes
. - Adding
#.updateEdgeAttributes
. - Adding
#.getSourceAttribute
,#.getTargetAttribute
,#.getOppositeAttribute
and friends. - Aligning
#.updateEachEdgeAttributes
callback arguments to#.forEachEdge
. - Improving
#.merge*
and#.update*
function by returning useful information. - Improving
#.opposite
performance.
Migration guide
This release should only affect you in the following cases:
- You were relying on the keys returned by
#.mergeEdge
,#.updateEdge
etc. In which case those methods now return a useful tuple containing said key as its first element as well as additional information about whether target elements already existed in the graph or not. - Some hidden adjacency iteration methods were mangled and are still hidden. This could only affect you if you were using
#.forEach
,#.find
or#.adjacency
(not to be confused with their node, edge & neighbor counterparts).
- Fixing
#.mergeEdge
&#.updateEdge
error messages. - Improving performance of
#.addEdge
etc. (less deopt). - Improving
#.inspect
output wrt undirected multi edges.
- Fixing
prepublishOnly
script and shipped package.
- Rolling back to robust generated ids for edges.
- Adding
#.mapNodes
,#.filterNodes
,#.reduceNodes
,#.findNode
#.someNode
,#.everyNode
. - Adding
#.mapEdges
,#.filterEdges
,#.reduceEdges
,#.findEdge
#.someEdge
,#.everyEdge
. - Adding
#.mapNeighbors
,#.filterNeighbors
,#.reduceNeighbors
,#.findNeighbor
#.someNeighbor
,#.everyNeighbor
. - Adding
#.degreeWithoutSelfLoops
. - Changing
#.forEach*Until
methods to#.find*
methods. - Dropping
#.hasGeneratedKey
. - Dropping the
generated
last argument to edge & adjacency iterations. - Dropping the
edgeKeyGenerator
instanciation option. - Dropping second argument of
#.degree
. - Changing
#.neighbors(source, target)
to#.areNeighbors
. - Changing iterator entries to objects rather than arrays.
#.exportEdge
will now always return a key.- Fixing mutability bug with
#.copy
. - Fixing adjacency iterator items missing
undirected
. - Fixing edge iterator items missing
undirected
. - Fixing bug related to instance counters and
#.clear
,#.clearEdges
. - Improving
#.copy
peformance. - Improving
#.areNeighbors
performance. - Improving
#.forEachNode
performance. - Upgrading
obliterator
and improving iterator-based methods.
Migration guide
This release should only affect you in the following use-cases:
- You were using
#.forEach*Until
methods, in which case you should replace them by the relevant#.find*
or#.some*
method. - You were using the boolean second argument to the
#.degree
methods. Replace those calls by#.degreeWithoutSelfLoops
. - You were using the (well-hidden) two-arguments polymorphism of
#.neighbors
. Replace those calls by#.areNeighbors
. - You were using iterators in which case the yielded entries are now objects rather than arrays and should be easier to destructure to access the parts you need.
- You were doing despicable things with automatically generated keys.
- Fixing
#.removeNodeAttribute
error message. - Upgrading types to
0.20.0
.
*Until
methods now return whether they broke.- Fixing a bug with
#.forEachNodeUntil
.
- Changing default edge key generator to simple incremental id.
- Fixing issues related to
rollup
bundling.
- Fixing
#.dropNode
bug.
- Optimizing
#.dropNode
.
- Adding
#.forEachUntil
. - Adding
#.forEachNodeUntil
. - Adding
#.forEachEdgeUntil
. - Adding
#.forEachNeighborUntil
. - Adding
#.updateNode
. - Adding
#.updateEdge
. - Adding
attributes
toattributesUpdated
events. - Adding
attributes
tonodeAttributesUpdated
events. - Adding
attributes
toedgeAttributesUpdated
events. - Adding
#.updateEachNodeAttributes
. - Adding
#.updateEachEdgeAttributes
. - Passing
undirected
&generatedKey
to#.forEachEdge
callbacks. - Changing
#.forEach
&#.adjacency
semantics to something actually useful. - Optimizing
*AttributesUpdated
events payload. - Optimizing
#.edges(A, B)
. - Optimizing
#.forEachEdge
. - Optimizing
#.mergeEdge
. - Optimizing
#.edges
and#.nodes
. - Optimizing
#.import
. - Fixing
#.edges(A, B)
with directed self loops. - Fixing
#.mergeEdgeWithKey
edge cases. - Fixing
#.mergeAttributes
event payload. - Fixing
#.edgeEntries
stack overflow with undirected edges. - Dropping
before
andafter
fromreplace
events metadata. - Dropping
value
fromset
events metadata. - Dropping overkill
toString
method. - Correctly emitting
nodeAttributesUpdated
event when node is merged. - Correctly emitting
edgeAttributesUpdated
event when edge is merged. graphology-types
is now a peer dependency.
- Adding
#.implementation
. - Adding
#.hasExtremity
. - Adding
#.selfLoopCount
,#.directedSelfLoopCount
&#.undirectedSelfLoopCount
. - Adding
#.hasGeneratedKey
. - Renaming
#.directed
&#.undirected
to#.isDirected
&#.isUndirected
. - Renanming
#.selfLoop
to#.isSelfLoop
. - Serializing options & accepting them with
#.from
static methods. - Improving performance of
#.opposite
. - Improving serialization performance.
- Updating type declarations & adding generics.
- Optimizing various degree methods.
- Optimizing graph attributes methods.
- Fixing edges & neighbors iteration regarding self loops in the directed case.
- Optimizing
#.forEachEdge
methods.
- Changing packaging system.
- Fixing browser bundle.
- Bundle fixes (@zakjan).
- Proper
#.nullCopy
&#.emptyCopy
methods.
- More flexible dependency to
graphology-types
.
- Adding missing
MultiGraph
export. - Adding missing error typings.
- TypeScript support.
- Adding possibility to merge options using
#.emptyCopy
.
- Fixing
#.mergeEdge
for the self loop case.
- Adding
Symbol.iterator
to the prototype. - Fixing custom inspection for node >= 10.
- Fixing edge attributes methods with typed graphs.
- Adding
#.nodeEntries
. - Adding
#.edgeEntries
. - Adding
#.neighborEntries
. - Adding
#.forEach
. - Adding
#.adjacency
.
- Adding
#.clearEdges
. - Adding
#.forEachEdge
& alii. - Adding
#.forEachNode
& alii. - Adding
#.forEachNeighbor
& alii. - Adding
#.inboundNeighbors
&#.outboundNeighbors
. - Adding
#.inboundEdges
&#.outboundEdges
. - Dropping
#.addNodesFrom
. - Dropping
#.dropNodes
&#.dropEdges
. - Dropping plural serialization methods.
- Dropping
defaultNodeAttributes
&defaultEdgeAttributes
. - Fixing semantics of
#.inEdges
&#.outEdges
for arity 2. - Improving performance of edges-related methods.
- Improving performance of internal indices.
- Improving performance of
#.mergeNode
. - Fixing edge-case deopt for
#.dropEdges
. - Fixing bug related to multigraphs' neighbors.
- Attribute copy is now done on serialization.
- Completely reworking internal indices.
- Improving performance of neighbors-related methods.
- Improving performance of edges-related methods.
- Fixing issues related to the
obliterator
dependencies.
- Fixing an issue with
#.mergeNode
& string coercion.
- Fixing the
#.edges
for undirected graphs.
- Adding
#.directedSize
&#.undirectedSize
.
- Performance enhancements.
- Performance enhancements.
- Fixing a bug with
#.mergeEdge
& undirected edges.
- Adding basic edges iterators.
- Fixing
#.inspect
.
- Fixing a bug concerning
#.hasEdge
& typed graphs.
- Major write performance improvements.
- Shifting the default edge key generation system.
- Dropping index' laziness.
- Adding the
#.nodesIterator
method. - Performance improvements.
- Fixing a bug related to typed graphs' attributes.
- Fixing a bug with the dropping methods.
- Adding the
#.edge
& variants methods. - Adding the
#.upgradeToMixed
method. - Adding the
#.upgradeToMulti
method. - Refactoring indices methods.
- Dropping
inbound
&outbound
iteration methods. - Dropping useless counting iteration methods.
- Dropping bunch consuming polymorphisms from iteration methods.
- Refactoring internal indices for undirected graphs.
- Improving performance.
- Fixing degree methods for typed graphs.
- Improving performance.
- Node.js 0.12.x compatibility.
- Fixing bug related to the graph's string coercion.
- Improving performance.
- Better error message when adding a self-loop when it's not authorized.
- Better unit tests.
- Internal refactoring.
- Implementing the static
#.from
method & switching constructor paradigm. - Fixing bug related to the
attributesUpdated
event. - Adding more errors related to attributes' setters.
- Adding typed edges attributes' getters/setters.
- Rewrote internal indices.
- Dropping
#.getEdge
& friends. - Dropping
#.selfLoops
.
- Adding missing built files to the npm package.
- Adding missing
attributes
in export.
- Adding
#.removeNodeAttribute
&#.removeEdgeAttribute
that was actually missing from earlier versions. - Adding graph attributes.
nodeUpdated
&edgeUpdated
changing tonodeAttributesUpdated
&edgeAttributesUpdated
respectively.
- Adding merge flags to import methods.
- Adding
#.hasNodeAttribute
&#.hasEdgeAttribute
. - Adding
#.removeNodeAttribute
&#.removeEdgeAttribute
. - Adding
#.mergeNode
. - Adding
#.mergeEdge
,#.mergeEdgeWithKey
and friends. - Renaming
#.relatedNode
to#.opposite
. - Dropping the
onDuplicateNode
&onDuplicateEdge
options.
- Fixing the argument passed to the
edgeKeyGenerator
function. - Fixing a bug where source & target of an edge were not internally coerced to strings.
Initial version compliant to the specs.