ϸ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None +0246=KHNeo4j monadic type to be able to sequence neo4j commands in a connectionType for a connection!Exceptions this library can raiseType for an indexType for a labelnType for a Neo4j relationship, has a location URI, a relationship type, a starting node and a destination node Type for a relationship locationRelationship direction!(Type for a relationship type description'JRepresentation of a Neo4j node, has a location URI and a set of propertieslClass for top-level Neo4j entities (nodes and relationships) useful to have generic property management code)-We use hashmaps to represent Neo4j propertiesIThis class allows easy construction of property value types from literals+Wrapping type for a Neo4j single property or array of properties Using these types allows type checking for only correct properties that is int, double, string, boolean and single typed arrays of these, also nulls are not allowed.+Type for a single value of a Neo4j property3LThis operator allows easy construction of property value types from literals4Shortcut for emtpy propertiesPTries to get the path from a URL, we try our best otherwise return the url as isPath without the db*data part, useful for batch paths and such5Get the properties of a node7$Get the properties of a relationship8Get the type of a relationship JSON to IndexJSON to Relationship JSON to NodeJSON to property valuesJSON to single property values1Specifying how to convert property values to JSON8Specifying how to convert property single values to JSON  !"#$%&'()*+,-./0123456789     _  !"#$%&'()*+,-./0123456789U  !"#$%&'()*+-,.210/3456789     None:ECreate a new connection that can be manually closed with runResourceT;2Run a set of Neo4j commands in a single connection"General function for HTTP requestsjExtracts the exception description from a HTTP Neo4j response if the status code matches otherwise NothingQLaunch a POST request, this will raise an exception if 201 or 200 is not received*Launch a POST request and get some headers^Launch a POST request, this will raise an exception if 201 or 204 is not received, explain 500Launch a POST request, this will raise an exception if 201 or 204 is not received With 404 or 400 will return a left with the explanationlLaunch a POST request that doesn't expect response body, this will raise an exception if 204 is not receivedPLaunch a GET request, this will raise an exception if 200 or 404 is not receivedRLaunch GET request, just allow 200, if 404 is received an exception will be raisedLaunch a GET request, this will raise an exception if 200 or 404 is not received With 404 will return a left with the explanation Unlike httpRetrieve this method can parse any JSON value even if it's non-top (arrays and objects)Launch a DELETE request, this will raise an exception if 204 is not received If we receive 404, we will just return true, though wasn't existing already the result is the same cLaunch a DELETE request, this will raise an exception if 204 is not received We don't accept 404!Launch a DELETE request, this will raise an exception if 204 is not received If we receive 404, we will return the server explanation"PLaunch a PUT request, this will raise an exception if 200 or 204 is not received#Launch a PUT request, this will raise an exception if 200 or 204 is not received If we receive 404, we will return the server explanation$0Wrap 404 exception into Neo4jNoEntity exceptions:; !"#$:; !"#$:; !"#$None<Get all labels in the DB=Retrieve all labels for a node, if the node doesn't exist already it will raise an exception | Raises Neo4jNoEntityException if the node doesn't exist>*Get all nodes using a label and a property?OAdd labels to a node | Raises Neo4jNoEntityException if the node doesn't exist@MChange node labels | Raises Neo4jNoEntityException if the node doesn't existATRemove a label for a node | Raises Neo4jNoEntityException if the node doesn't exist<=>?@A<=>?@A<=>?@A NoneBGet the ID of a nodeC*Create a new node with a set of propertiesD1Refresh a node entity with the contents in the DBEWDelete a node, if the node has relationships it will raise a Neo4jNonOrphanNodeDeletionBCDEBCDEBCDE NoneFGet the ID of a relationshipG%Gets all relationship types in the DBH=Create a new relationship with a type and a set of propertiesI9Refresh a relationship entity with the contents in the DBJGet the "node from" from a relationship from the DB | Raises Neo4jNoEntityException if the node (and thus the relationship) does not exist any moreKGet the "node to" from a relationship from the DB | Raises Neo4jNoEntityException if the node (and thus the relationship) does not exist any moreLDelete a relationshipMXGet all relationships for a node, if the node has disappeared it will raise an exceptionFGHIJKLMFGHIJKLMFGHIJKLM NoneNRetrieve relationship/node properties from the DB, if the entity is not present it will raise an exception If the entity doesn't exist it will raise a Neo4jNoEntity exceptionOGet a relationship/node property If the 404 is because the parent entity doesn't exist we'll raise the corresponding Neo4jNoEntity If the 404 is because there is no property just return NothingPkSet all relationship/node properties If the entity doesn't exist it will raise a Neo4jNoEntity exceptionQgSet a relationship/node property If the entity doesn't exist it will raise a Neo4jNoEntity exceptionRnDelete all relationship/node properties If the entity doesn't exist it will raise a Neo4jNoEntity exceptionSjDelete a relationship/node property If the entity doesn't exist it will raise a Neo4jNoEntity exceptionNOPQRSNOPQRSNOPQRSNone T.We use hashmaps to represent Cypher parametersU`Value for a cypher parmeter value, might be a literal, a property map or a list of property mapsYNType for a Cypher response with tuples containing column name and their values^Run a cypher query_1Get the result of the response or a default value`1Get the result of the response or a default valueaTrue if the operation succeeded%DInstance toJSON for param values so we can serialize them in queries&;How to create a response object from a cypher JSON responseTUVWXYZ[\']^_`a%&TUVWXYZ[\]^_`aYZ[\UXWVT]^_`a TUXWVYZ[\']^_`a%&None dCreate an empty grapheAdd a node to the graphf^Set the properties of a node or relationship in the graph, if not present it won't do anythinggZSet a property of a node or relationship in the graph, if not present it won't do anythinghfDelete all the properties of a node or relationship, if the entity is not present it won't do anythingi^Delete a property of a node or relationship, if the entity is not present it won't do anythingj&Whether a node is present in the graphkGet a node in the graphl&Get outgoing relationships from a nodem&Get incoming relationships from a noden*Get a list with all the nodes in the grapho.Whether a relationship is present in the graphpDelete a node from the graphqAdd a relationship to the graphr2Get a list with all the relationships in the graphsGet a relationship in the grapht+Get relationships missing their "from" nodeu)Get relationships missing their "to" nodev,Remove all relationships with a missing nodew$Delete a relationship from the graphx'Get the "node from" from a relationshipy%Get the "node to" from a relationshipzSet what labels a node has{Add a label to a node|Get the labels of a node}Remove a label from a node~Filter the nodes of a graph#Filter the relationships of a graphAdd two graphs resulting in a graph with all the nodes, labels and relationships of both | If a node/entity is present in both the second one will be chosenORemove the nodes and relationships in the first graph that appear in the secondKHave a graph that only has nodes and relationships that are present in bothiFeed a cypher result (from the old API) into a graph (looks for nodes and relationships and inserts them)0b()*+,-./01c2345defghijklmnopqrstuvwxyz{|}~"bcdefghijklmnopqrstuvwxyz{|}~"bcdejpnklmroqwxystuvfghiz{|}~)b()*+,-./01c2345defghijklmnopqrstuvwxyz{|}~ None246CHelper function to parse a batch element response from a body entry7CHelper function to parse a batch element response from a from entry8lGet teh exception type for a given batch exception message, if nothing is found a default exception is given9Parse batch exceptions:;<=>?@ABCDEFG67HI89JK:;<=>?@ABCDEFG67HI89:;<=>?@ABCDEFG67HI89JK None24 Batch operation to create a node)Batch operation to get a node from the DB Batch operation to delete a node LMNOPLLMNOPNone24Retrieve all labels for a node, if the node doesn't exist already it will raise an exception | Raises Neo4jNoEntityException if the node doesn't exist*Get all nodes using a label and a propertyOAdd labels to a node | Raises Neo4jNoEntityException if the node doesn't existMChange node labels | Raises Neo4jNoEntityException if the node doesn't existTRemove a label for a node | Raises Neo4jNoEntityException if the node doesn't existQQQNone24=Create a new relationship with a type and a set of properties9Refresh a relationship entity with the contents in the DB3Get the "node from" from a relationship from the DB1Get the "node to" from a relationship from the DBDelete a relationship Get all relationships for a node RSTUVR RSTUVNone24$Set all relationship/node properties Set a relationship/node property'Delete all relationship/node properties#Delete a relationship/node propertyWXYZ[\]^_`WXWXYZ[\]^_`None24None24MaDifferent transaction states.Error code and message for a transaction errorNType for a Cypher response with tuples containing column name and their valuesHolds the connection stats Default statsbAn empty responsec$Build a graph from a cypher responsed7General function to launch queries inside a transactionRun a transaction and get its final result, has an implicit commit request (or rollback if an exception occurred). This implicit commit/rollback will only be executed if it hasn't before because of an explicit oneeeIf a query returns an error we have to stop processing the transaction and make sure it's rolled back^Run a cypher query in a transaction, if an error occurs the transaction will stop and rollbackRollback a transaction. After this, executing rollback, commit, keepalive, cypher in the transaction will result in an exceptiongRollback a transaction and stop processing it, set the message that runTransaction will return as errorCommit a transaction. After this, executing rollback, commit, keepalive, cypher in the transaction will result in an exceptionSend a cypher query and commit at the same time, if an error occurs the transaction will be rolled back. After this, executing rollback, commit, keepalive, cypher in the transaction will result in an exception0Send a keep alive message to an open transactionf/Get the transaction ID from the location headergKStart a transaction and register the transaction to be committed/rollbacked1Get the result of the response or a default value1Get the result of the response or a default valueTrue if the operation succeededh;How to create a response object from a cypher JSON responsei-Instance for the rel type in cypher responsesj.Instance for the node type in cypher responsesk#Instance to parse stats from a JSONFlmnaopqrstuvwxyz{b|}c~defghijk(TUVWX](UXWVT])lmnaqporstuvwxyz{ b|}c~defghijkNone+Creates an index for a label and a propertyGets all indexes for a labelDrop and index(c) 2014, Antoni SilvestreMIT-Antoni Silvestre <antoni.silvestre@gmail.com> experimentalportableNoneW  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSY:;.210/+-,*3)4NOPQRS'(5CDEB(6"#$%& !HILMFG789JK<=>?@A   !"#$%&'(()*+,-./01233456789:;<=>?@ABCDEFGHIJKLMNO P Q R S T U V W X Y Z [ \ ] ^ _ ` abcdefgghijklmnopqr^_`asRtuvwSx[Wyz{Z|}~     Q R SKLMNOVWXYZ[^_`ahiklmn*5   o             ! " # $ % & ' ( ) * + , - . / 0 123456789:;<=>?@ABCDEFGHIJKLggMNOPQRRSTTUVVWXYZ[\]^ _`a hypher-0.1.2Database.Neo4jDatabase.Neo4j.CypherDatabase.Neo4j.GraphDatabase.Neo4j.Batch#Database.Neo4j.Transactional.CypherDatabase.Neo4j.TypesDatabase.Neo4j.HttpDatabase.Neo4j.LabelDatabase.Neo4j.NodeDatabase.Neo4j.RelationshipDatabase.Neo4j.PropertyDatabase.Neo4j.Batch.TypesDatabase.Neo4j.Batch.NodeDatabase.Neo4j.Batch.Label!Database.Neo4j.Batch.RelationshipDatabase.Neo4j.Batch.PropertyDatabase.Neo4j.IndexNeo4jrunNeo4jPortHostname ConnectionNeo4jExceptionTransactionEndedExcNeo4jParseExceptionNeo4jBatchExceptionNeo4jNoSuchProperty Neo4jUnexpectedResponseExceptionNeo4jNoEntityException#Neo4jNonOrphanNodeDeletionExceptionNeo4jHttpExceptionIndex indexLabelindexPropertiesLabelEntityIdentifier getEntityPath RelIdentifier getRelPathRelPath runRelPath RelationshiprelPath DirectionAnyIncomingOutgoingRelationshipTypeNodeIdentifier getNodePathNodePath runNodePathNodenodePath Propertiesnewval PropertyValue ArrayProperty ValuePropertyVal DoubleValTextValBoolValIntVal|:emptyPropertiesgetNodePropertiesrunNodeIdentifiergetRelProperties getRelTyperunRelIdentifier newConnectionwithConnection allLabels getLabelsgetNodesByLabelAndProperty addLabels changeLabels removeLabelnodeId createNodegetNode deleteNoderelIdallRelationshipTypescreateRelationshipgetRelationshipgetRelationshipFromgetRelationshipTodeleteRelationshipgetRelationships getProperties getProperty setProperties setPropertydeletePropertiesdeletePropertyParams ParamValueParamPropertiesArrayParamProperties ParamLiteralResponsecolsvalsnewparamcypher fromResult fromSuccess isSuccessGraphLabelSetemptyaddNodehasNode getNodeFrom getNodeTogetNodeshasRelationshipaddRelationshipgetOrphansFrom getOrphansTocleanOrphanRelationshipsgetRelationshipNodeFromgetRelationshipNodeTo setNodeLabels addNodeLabel getNodeLabelsdeleteNodeLabel nodeFilterrelationshipFilterunion difference intersection addCypherBatch BatchFuturerunBatchNodeBatchIdentifierRelBatchIdentifier BatchEntity Transaction TransErrorResultgraphstatsStatscontainsUpdates nodesCreated nodesDeletedpropsSet relsCreated relsDeleted lblsAdded lblsRemovedidxAdded idxRemoved constAdded constRemoved emptyStats loneQueryrunTransactionrollbackrollbackAndLeavecommit commitWith keepalive createIndex getIndexes dropIndexRelUrlEntityPropertyValueConstructorurlPath urlMinPath$fFromJSONIndex$fFromJSONRelationship$fFromJSONNode$fFromJSONPropertyValue $fFromJSONVal$fToJSONPropertyValue $fToJSONVal dbHostnamedbPortmanager EntityPathEntityNodePath EntityRelPathrelType relPropertiesrelFromrelTo runRelUrlnodePropertiesNodeUrl runNodeUrl entityPath propertyPathgetEntityPropertiessetEntityProperties entityObj EntityObj EntityRel EntityNode<>nodeAPI nodeAPITxtrelationshipAPIrelationshipAPITxt$fMonadBaseNeo4jNeo4j$fMonadThrowNeo4j$fMonadIONeo4j$fApplicativeNeo4j$fFunctorNeo4j $fMonadNeo4j$fExceptionNeo4jException$fEntityIdentifierText$fEntityIdentifierRelUrl$fEntityIdentifierRelPath$fEntityIdentifierRelationship$fEntityIdentifierNodeUrl$fEntityIdentifierNodePath$fEntityIdentifierNode$fRelIdentifierInteger$fRelIdentifierRelUrl$fRelIdentifierByteString$fRelIdentifierRelPath$fRelIdentifierRelationship$fHashableRelPath$fEntityEntityObj$fEntityRelationship$fHashableRelUrl$fNodeIdentifierNodeUrl$fNodeIdentifierNodePath$fNodeIdentifierInteger$fNodeIdentifierByteString$fNodeIdentifierNode$fHashableNodePath $fEntityNode$fHashableNodeUrl$fPropertyValueConstructor[]$fPropertyValueConstructor[]0$fPropertyValueConstructor[]1$fPropertyValueConstructor[]2 $fPropertyValueConstructorDouble$fPropertyValueConstructorText$fPropertyValueConstructorBool$fPropertyValueConstructorInt64httpReqextractException httpCreatehttpCreateWithHeadershttpCreate500ExplainedhttpCreate4XXExplained httpCreate_ httpRetrievehttpRetrieveSurehttpRetrieveValue httpDeletehttpDeleteNo404httpDelete404Explained httpModifyhttpModify404Explained proc404Exc$fToJSONParamValue$fFromJSONResponse cypherAPInodeslabelsrels nodeLabels nodeFromRels nodeToRels NodeRelIndexRelSetNodeLabelIndexLabelNodeIndexNodeSetRelIndex NodeIndex tryParseBody tryParseFromexceptionByNameparseException BatchStatecommandsbatchIdBatchCmd cmdMethodcmdPathcmdBodycmdParsecmdId CmdParserdefCmdgetCmds nextStateparseBatchResponse$fToJSONBatchCmd$fToJSONStateTgetNodeBatchId $fNodeBatchIdentifierBatchFuture$fNodeBatchIdentifierNodePath$fNodeBatchIdentifierNodeUrl$fNodeBatchIdentifierNodeparseLabelsPath getRelBatchId$fRelBatchIdentifierBatchFuture$fRelBatchIdentifierRelPath$fRelBatchIdentifierRelUrl $fRelBatchIdentifierRelationshipgetEntityBatchIdparsePropertiesPath$fBatchEntityBatchFuture$fBatchEntityRelPath$fBatchEntityRelUrl$fBatchEntityRelationship$fBatchEntityBatchFuture0$fBatchEntityNodePath$fBatchEntityNodeUrl$fBatchEntityNode TransState emptyResponse buildGraphtransactionReq catchErrorstransIdFromHeaders acquireTrans$fFromJSONResult$fFromJSONCypherRel$fFromJSONCypherNode$fFromJSONStats runResponse TransDone TransStarted TransInit TransactionIdDataElem runDataElem CypherRel runCypherRel CypherNode runCypherNode readDefaultreadIntDefaulttransAPI queryBody commitReq rollbackReq keepaliveReq$fFromJSONDataElem indexPath