// Compiled by ClojureScript 1.9.293 {} goog.provide('datascript.query'); goog.require('cljs.core'); goog.require('datascript.arrays'); goog.require('clojure.set'); goog.require('datascript.pull_parser'); goog.require('datascript.pull_api'); goog.require('clojure.walk'); goog.require('datascript.parser'); goog.require('datascript.db'); goog.require('datascript.lru'); goog.require('datascript.impl.entity'); goog.require('cljs.reader'); datascript.query.lru_cache_size = (100); datascript.query._collect = (function datascript$query$_collect(var_args){ var args23343 = []; var len__16327__auto___23346 = arguments.length; var i__16328__auto___23347 = (0); while(true){ if((i__16328__auto___23347 < len__16327__auto___23346)){ args23343.push((arguments[i__16328__auto___23347])); var G__23348 = (i__16328__auto___23347 + (1)); i__16328__auto___23347 = G__23348; continue; } else { } break; } var G__23345 = args23343.length; switch (G__23345) { case 2: return datascript.query._collect.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); break; case 3: return datascript.query._collect.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); break; default: throw (new Error([cljs.core.str("Invalid arity: "),cljs.core.str(args23343.length)].join(''))); } }); datascript.query._collect.cljs$core$IFn$_invoke$arity$2 = (function (context,symbols){ return null; }); datascript.query._collect.cljs$core$IFn$_invoke$arity$3 = (function (acc,rels,symbols){ return null; }); datascript.query._collect.cljs$lang$maxFixedArity = 3; datascript.query._resolve_clause = (function datascript$query$_resolve_clause(context,clause){ return null; }); /** * @constructor * @implements {cljs.core.IRecord} * @implements {cljs.core.IEquiv} * @implements {cljs.core.IHash} * @implements {cljs.core.ICollection} * @implements {cljs.core.ICounted} * @implements {cljs.core.ISeqable} * @implements {cljs.core.IMeta} * @implements {cljs.core.ICloneable} * @implements {cljs.core.IPrintWithWriter} * @implements {cljs.core.IIterable} * @implements {cljs.core.IWithMeta} * @implements {cljs.core.IAssociative} * @implements {cljs.core.IMap} * @implements {cljs.core.ILookup} */ datascript.query.Context = (function (rels,sources,rules,__meta,__extmap,__hash){ this.rels = rels; this.sources = sources; this.rules = rules; this.__meta = __meta; this.__extmap = __extmap; this.__hash = __hash; this.cljs$lang$protocol_mask$partition0$ = 2229667594; this.cljs$lang$protocol_mask$partition1$ = 8192; }) datascript.query.Context.prototype.cljs$core$ILookup$_lookup$arity$2 = (function (this__15841__auto__,k__15842__auto__){ var self__ = this; var this__15841__auto____$1 = this; return cljs.core._lookup.call(null,this__15841__auto____$1,k__15842__auto__,null); }); datascript.query.Context.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__15843__auto__,k23351,else__15844__auto__){ var self__ = this; var this__15843__auto____$1 = this; var G__23353 = (((k23351 instanceof cljs.core.Keyword))?k23351.fqn:null); switch (G__23353) { case "rels": return self__.rels; break; case "sources": return self__.sources; break; case "rules": return self__.rules; break; default: return cljs.core.get.call(null,self__.__extmap,k23351,else__15844__auto__); } }); datascript.query.Context.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (this__15855__auto__,writer__15856__auto__,opts__15857__auto__){ var self__ = this; var this__15855__auto____$1 = this; var pr_pair__15858__auto__ = ((function (this__15855__auto____$1){ return (function (keyval__15859__auto__){ return cljs.core.pr_sequential_writer.call(null,writer__15856__auto__,cljs.core.pr_writer,""," ","",opts__15857__auto__,keyval__15859__auto__); });})(this__15855__auto____$1)) ; return cljs.core.pr_sequential_writer.call(null,writer__15856__auto__,pr_pair__15858__auto__,"#datascript.query.Context{",", ","}",opts__15857__auto__,cljs.core.concat.call(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"rels","rels",1770187185),self__.rels],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"sources","sources",-321166424),self__.sources],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"rules","rules",1198912366),self__.rules],null))], null),self__.__extmap)); }); datascript.query.Context.prototype.cljs$core$IIterable$ = cljs.core.PROTOCOL_SENTINEL; datascript.query.Context.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__23350){ var self__ = this; var G__23350__$1 = this; return (new cljs.core.RecordIter((0),G__23350__$1,3,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"rels","rels",1770187185),new cljs.core.Keyword(null,"sources","sources",-321166424),new cljs.core.Keyword(null,"rules","rules",1198912366)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator.call(null,self__.__extmap):cljs.core.nil_iter.call(null)))); }); datascript.query.Context.prototype.cljs$core$IMeta$_meta$arity$1 = (function (this__15839__auto__){ var self__ = this; var this__15839__auto____$1 = this; return self__.__meta; }); datascript.query.Context.prototype.cljs$core$ICloneable$_clone$arity$1 = (function (this__15835__auto__){ var self__ = this; var this__15835__auto____$1 = this; return (new datascript.query.Context(self__.rels,self__.sources,self__.rules,self__.__meta,self__.__extmap,self__.__hash)); }); datascript.query.Context.prototype.cljs$core$ICounted$_count$arity$1 = (function (this__15845__auto__){ var self__ = this; var this__15845__auto____$1 = this; return (3 + cljs.core.count.call(null,self__.__extmap)); }); datascript.query.Context.prototype.cljs$core$IHash$_hash$arity$1 = (function (this__15836__auto__){ var self__ = this; var this__15836__auto____$1 = this; var h__15654__auto__ = self__.__hash; if(!((h__15654__auto__ == null))){ return h__15654__auto__; } else { var h__15654__auto____$1 = cljs.core.hash_imap.call(null,this__15836__auto____$1); self__.__hash = h__15654__auto____$1; return h__15654__auto____$1; } }); datascript.query.Context.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this__15837__auto__,other__15838__auto__){ var self__ = this; var this__15837__auto____$1 = this; if(cljs.core.truth_((function (){var and__15207__auto__ = other__15838__auto__; if(cljs.core.truth_(and__15207__auto__)){ var and__15207__auto____$1 = (this__15837__auto____$1.constructor === other__15838__auto__.constructor); if(and__15207__auto____$1){ return cljs.core.equiv_map.call(null,this__15837__auto____$1,other__15838__auto__); } else { return and__15207__auto____$1; } } else { return and__15207__auto__; } })())){ return true; } else { return false; } }); datascript.query.Context.prototype.cljs$core$IMap$_dissoc$arity$2 = (function (this__15850__auto__,k__15851__auto__){ var self__ = this; var this__15850__auto____$1 = this; if(cljs.core.contains_QMARK_.call(null,new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"sources","sources",-321166424),null,new cljs.core.Keyword(null,"rules","rules",1198912366),null,new cljs.core.Keyword(null,"rels","rels",1770187185),null], null), null),k__15851__auto__)){ return cljs.core.dissoc.call(null,cljs.core.with_meta.call(null,cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,this__15850__auto____$1),self__.__meta),k__15851__auto__); } else { return (new datascript.query.Context(self__.rels,self__.sources,self__.rules,self__.__meta,cljs.core.not_empty.call(null,cljs.core.dissoc.call(null,self__.__extmap,k__15851__auto__)),null)); } }); datascript.query.Context.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__15848__auto__,k__15849__auto__,G__23350){ var self__ = this; var this__15848__auto____$1 = this; var pred__23354 = cljs.core.keyword_identical_QMARK_; var expr__23355 = k__15849__auto__; if(cljs.core.truth_(pred__23354.call(null,new cljs.core.Keyword(null,"rels","rels",1770187185),expr__23355))){ return (new datascript.query.Context(G__23350,self__.sources,self__.rules,self__.__meta,self__.__extmap,null)); } else { if(cljs.core.truth_(pred__23354.call(null,new cljs.core.Keyword(null,"sources","sources",-321166424),expr__23355))){ return (new datascript.query.Context(self__.rels,G__23350,self__.rules,self__.__meta,self__.__extmap,null)); } else { if(cljs.core.truth_(pred__23354.call(null,new cljs.core.Keyword(null,"rules","rules",1198912366),expr__23355))){ return (new datascript.query.Context(self__.rels,self__.sources,G__23350,self__.__meta,self__.__extmap,null)); } else { return (new datascript.query.Context(self__.rels,self__.sources,self__.rules,self__.__meta,cljs.core.assoc.call(null,self__.__extmap,k__15849__auto__,G__23350),null)); } } } }); datascript.query.Context.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this__15853__auto__){ var self__ = this; var this__15853__auto____$1 = this; return cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"rels","rels",1770187185),self__.rels],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"sources","sources",-321166424),self__.sources],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"rules","rules",1198912366),self__.rules],null))], null),self__.__extmap)); }); datascript.query.Context.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__15840__auto__,G__23350){ var self__ = this; var this__15840__auto____$1 = this; return (new datascript.query.Context(self__.rels,self__.sources,self__.rules,G__23350,self__.__extmap,self__.__hash)); }); datascript.query.Context.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this__15846__auto__,entry__15847__auto__){ var self__ = this; var this__15846__auto____$1 = this; if(cljs.core.vector_QMARK_.call(null,entry__15847__auto__)){ return cljs.core._assoc.call(null,this__15846__auto____$1,cljs.core._nth.call(null,entry__15847__auto__,(0)),cljs.core._nth.call(null,entry__15847__auto__,(1))); } else { return cljs.core.reduce.call(null,cljs.core._conj,this__15846__auto____$1,entry__15847__auto__); } }); datascript.query.Context.getBasis = (function (){ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"rels","rels",-884248584,null),new cljs.core.Symbol(null,"sources","sources",1319365103,null),new cljs.core.Symbol(null,"rules","rules",-1455523403,null)], null); }); datascript.query.Context.cljs$lang$type = true; datascript.query.Context.cljs$lang$ctorPrSeq = (function (this__15875__auto__){ return cljs.core._conj.call(null,cljs.core.List.EMPTY,"datascript.query/Context"); }); datascript.query.Context.cljs$lang$ctorPrWriter = (function (this__15875__auto__,writer__15876__auto__){ return cljs.core._write.call(null,writer__15876__auto__,"datascript.query/Context"); }); datascript.query.__GT_Context = (function datascript$query$__GT_Context(rels,sources,rules){ return (new datascript.query.Context(rels,sources,rules,null,null,null)); }); datascript.query.map__GT_Context = (function datascript$query$map__GT_Context(G__23352){ return (new datascript.query.Context(new cljs.core.Keyword(null,"rels","rels",1770187185).cljs$core$IFn$_invoke$arity$1(G__23352),new cljs.core.Keyword(null,"sources","sources",-321166424).cljs$core$IFn$_invoke$arity$1(G__23352),new cljs.core.Keyword(null,"rules","rules",1198912366).cljs$core$IFn$_invoke$arity$1(G__23352),null,cljs.core.dissoc.call(null,G__23352,new cljs.core.Keyword(null,"rels","rels",1770187185),new cljs.core.Keyword(null,"sources","sources",-321166424),new cljs.core.Keyword(null,"rules","rules",1198912366)),null)); }); /** * @constructor * @implements {cljs.core.IRecord} * @implements {cljs.core.IEquiv} * @implements {cljs.core.IHash} * @implements {cljs.core.ICollection} * @implements {cljs.core.ICounted} * @implements {cljs.core.ISeqable} * @implements {cljs.core.IMeta} * @implements {cljs.core.ICloneable} * @implements {cljs.core.IPrintWithWriter} * @implements {cljs.core.IIterable} * @implements {cljs.core.IWithMeta} * @implements {cljs.core.IAssociative} * @implements {cljs.core.IMap} * @implements {cljs.core.ILookup} */ datascript.query.Relation = (function (attrs,tuples,__meta,__extmap,__hash){ this.attrs = attrs; this.tuples = tuples; this.__meta = __meta; this.__extmap = __extmap; this.__hash = __hash; this.cljs$lang$protocol_mask$partition0$ = 2229667594; this.cljs$lang$protocol_mask$partition1$ = 8192; }) datascript.query.Relation.prototype.cljs$core$ILookup$_lookup$arity$2 = (function (this__15841__auto__,k__15842__auto__){ var self__ = this; var this__15841__auto____$1 = this; return cljs.core._lookup.call(null,this__15841__auto____$1,k__15842__auto__,null); }); datascript.query.Relation.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__15843__auto__,k23359,else__15844__auto__){ var self__ = this; var this__15843__auto____$1 = this; var G__23361 = (((k23359 instanceof cljs.core.Keyword))?k23359.fqn:null); switch (G__23361) { case "attrs": return self__.attrs; break; case "tuples": return self__.tuples; break; default: return cljs.core.get.call(null,self__.__extmap,k23359,else__15844__auto__); } }); datascript.query.Relation.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (this__15855__auto__,writer__15856__auto__,opts__15857__auto__){ var self__ = this; var this__15855__auto____$1 = this; var pr_pair__15858__auto__ = ((function (this__15855__auto____$1){ return (function (keyval__15859__auto__){ return cljs.core.pr_sequential_writer.call(null,writer__15856__auto__,cljs.core.pr_writer,""," ","",opts__15857__auto__,keyval__15859__auto__); });})(this__15855__auto____$1)) ; return cljs.core.pr_sequential_writer.call(null,writer__15856__auto__,pr_pair__15858__auto__,"#datascript.query.Relation{",", ","}",opts__15857__auto__,cljs.core.concat.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"attrs","attrs",-2090668713),self__.attrs],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"tuples","tuples",-676032639),self__.tuples],null))], null),self__.__extmap)); }); datascript.query.Relation.prototype.cljs$core$IIterable$ = cljs.core.PROTOCOL_SENTINEL; datascript.query.Relation.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__23358){ var self__ = this; var G__23358__$1 = this; return (new cljs.core.RecordIter((0),G__23358__$1,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"attrs","attrs",-2090668713),new cljs.core.Keyword(null,"tuples","tuples",-676032639)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator.call(null,self__.__extmap):cljs.core.nil_iter.call(null)))); }); datascript.query.Relation.prototype.cljs$core$IMeta$_meta$arity$1 = (function (this__15839__auto__){ var self__ = this; var this__15839__auto____$1 = this; return self__.__meta; }); datascript.query.Relation.prototype.cljs$core$ICloneable$_clone$arity$1 = (function (this__15835__auto__){ var self__ = this; var this__15835__auto____$1 = this; return (new datascript.query.Relation(self__.attrs,self__.tuples,self__.__meta,self__.__extmap,self__.__hash)); }); datascript.query.Relation.prototype.cljs$core$ICounted$_count$arity$1 = (function (this__15845__auto__){ var self__ = this; var this__15845__auto____$1 = this; return (2 + cljs.core.count.call(null,self__.__extmap)); }); datascript.query.Relation.prototype.cljs$core$IHash$_hash$arity$1 = (function (this__15836__auto__){ var self__ = this; var this__15836__auto____$1 = this; var h__15654__auto__ = self__.__hash; if(!((h__15654__auto__ == null))){ return h__15654__auto__; } else { var h__15654__auto____$1 = cljs.core.hash_imap.call(null,this__15836__auto____$1); self__.__hash = h__15654__auto____$1; return h__15654__auto____$1; } }); datascript.query.Relation.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this__15837__auto__,other__15838__auto__){ var self__ = this; var this__15837__auto____$1 = this; if(cljs.core.truth_((function (){var and__15207__auto__ = other__15838__auto__; if(cljs.core.truth_(and__15207__auto__)){ var and__15207__auto____$1 = (this__15837__auto____$1.constructor === other__15838__auto__.constructor); if(and__15207__auto____$1){ return cljs.core.equiv_map.call(null,this__15837__auto____$1,other__15838__auto__); } else { return and__15207__auto____$1; } } else { return and__15207__auto__; } })())){ return true; } else { return false; } }); datascript.query.Relation.prototype.cljs$core$IMap$_dissoc$arity$2 = (function (this__15850__auto__,k__15851__auto__){ var self__ = this; var this__15850__auto____$1 = this; if(cljs.core.contains_QMARK_.call(null,new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"tuples","tuples",-676032639),null,new cljs.core.Keyword(null,"attrs","attrs",-2090668713),null], null), null),k__15851__auto__)){ return cljs.core.dissoc.call(null,cljs.core.with_meta.call(null,cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,this__15850__auto____$1),self__.__meta),k__15851__auto__); } else { return (new datascript.query.Relation(self__.attrs,self__.tuples,self__.__meta,cljs.core.not_empty.call(null,cljs.core.dissoc.call(null,self__.__extmap,k__15851__auto__)),null)); } }); datascript.query.Relation.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__15848__auto__,k__15849__auto__,G__23358){ var self__ = this; var this__15848__auto____$1 = this; var pred__23362 = cljs.core.keyword_identical_QMARK_; var expr__23363 = k__15849__auto__; if(cljs.core.truth_(pred__23362.call(null,new cljs.core.Keyword(null,"attrs","attrs",-2090668713),expr__23363))){ return (new datascript.query.Relation(G__23358,self__.tuples,self__.__meta,self__.__extmap,null)); } else { if(cljs.core.truth_(pred__23362.call(null,new cljs.core.Keyword(null,"tuples","tuples",-676032639),expr__23363))){ return (new datascript.query.Relation(self__.attrs,G__23358,self__.__meta,self__.__extmap,null)); } else { return (new datascript.query.Relation(self__.attrs,self__.tuples,self__.__meta,cljs.core.assoc.call(null,self__.__extmap,k__15849__auto__,G__23358),null)); } } }); datascript.query.Relation.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this__15853__auto__){ var self__ = this; var this__15853__auto____$1 = this; return cljs.core.seq.call(null,cljs.core.concat.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"attrs","attrs",-2090668713),self__.attrs],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"tuples","tuples",-676032639),self__.tuples],null))], null),self__.__extmap)); }); datascript.query.Relation.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__15840__auto__,G__23358){ var self__ = this; var this__15840__auto____$1 = this; return (new datascript.query.Relation(self__.attrs,self__.tuples,G__23358,self__.__extmap,self__.__hash)); }); datascript.query.Relation.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this__15846__auto__,entry__15847__auto__){ var self__ = this; var this__15846__auto____$1 = this; if(cljs.core.vector_QMARK_.call(null,entry__15847__auto__)){ return cljs.core._assoc.call(null,this__15846__auto____$1,cljs.core._nth.call(null,entry__15847__auto__,(0)),cljs.core._nth.call(null,entry__15847__auto__,(1))); } else { return cljs.core.reduce.call(null,cljs.core._conj,this__15846__auto____$1,entry__15847__auto__); } }); datascript.query.Relation.getBasis = (function (){ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"attrs","attrs",-450137186,null),new cljs.core.Symbol(null,"tuples","tuples",964498888,null)], null); }); datascript.query.Relation.cljs$lang$type = true; datascript.query.Relation.cljs$lang$ctorPrSeq = (function (this__15875__auto__){ return cljs.core._conj.call(null,cljs.core.List.EMPTY,"datascript.query/Relation"); }); datascript.query.Relation.cljs$lang$ctorPrWriter = (function (this__15875__auto__,writer__15876__auto__){ return cljs.core._write.call(null,writer__15876__auto__,"datascript.query/Relation"); }); datascript.query.__GT_Relation = (function datascript$query$__GT_Relation(attrs,tuples){ return (new datascript.query.Relation(attrs,tuples,null,null,null)); }); datascript.query.map__GT_Relation = (function datascript$query$map__GT_Relation(G__23360){ return (new datascript.query.Relation(new cljs.core.Keyword(null,"attrs","attrs",-2090668713).cljs$core$IFn$_invoke$arity$1(G__23360),new cljs.core.Keyword(null,"tuples","tuples",-676032639).cljs$core$IFn$_invoke$arity$1(G__23360),null,cljs.core.dissoc.call(null,G__23360,new cljs.core.Keyword(null,"attrs","attrs",-2090668713),new cljs.core.Keyword(null,"tuples","tuples",-676032639)),null)); }); datascript.query.intersect_keys = (function datascript$query$intersect_keys(attrs1,attrs2){ return clojure.set.intersection.call(null,cljs.core.set.call(null,cljs.core.keys.call(null,attrs1)),cljs.core.set.call(null,cljs.core.keys.call(null,attrs2))); }); datascript.query.concatv = (function datascript$query$concatv(var_args){ var args__16334__auto__ = []; var len__16327__auto___23367 = arguments.length; var i__16328__auto___23368 = (0); while(true){ if((i__16328__auto___23368 < len__16327__auto___23367)){ args__16334__auto__.push((arguments[i__16328__auto___23368])); var G__23369 = (i__16328__auto___23368 + (1)); i__16328__auto___23368 = G__23369; continue; } else { } break; } var argseq__16335__auto__ = ((((0) < args__16334__auto__.length))?(new cljs.core.IndexedSeq(args__16334__auto__.slice((0)),(0),null)):null); return datascript.query.concatv.cljs$core$IFn$_invoke$arity$variadic(argseq__16335__auto__); }); datascript.query.concatv.cljs$core$IFn$_invoke$arity$variadic = (function (xs){ return cljs.core.into.call(null,cljs.core.PersistentVector.EMPTY,cljs.core.cat,xs); }); datascript.query.concatv.cljs$lang$maxFixedArity = (0); datascript.query.concatv.cljs$lang$applyTo = (function (seq23366){ return datascript.query.concatv.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq.call(null,seq23366)); }); datascript.query.looks_like_QMARK_ = (function datascript$query$looks_like_QMARK_(pattern,form){ if(cljs.core._EQ_.call(null,new cljs.core.Symbol(null,"_","_",-1201019570,null),pattern)){ return true; } else { if(cljs.core._EQ_.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"*","*",345799209,null)], null),pattern)){ return cljs.core.sequential_QMARK_.call(null,form); } else { if((pattern instanceof cljs.core.Symbol)){ return cljs.core._EQ_.call(null,form,pattern); } else { if(cljs.core.sequential_QMARK_.call(null,pattern)){ if(cljs.core._EQ_.call(null,cljs.core.last.call(null,pattern),new cljs.core.Symbol(null,"*","*",345799209,null))){ return (cljs.core.sequential_QMARK_.call(null,form)) && (cljs.core.every_QMARK_.call(null,(function (p__23390){ var vec__23391 = p__23390; var pattern_el = cljs.core.nth.call(null,vec__23391,(0),null); var form_el = cljs.core.nth.call(null,vec__23391,(1),null); return datascript.query.looks_like_QMARK_.call(null,pattern_el,form_el); }),cljs.core.map.call(null,cljs.core.vector,cljs.core.butlast.call(null,pattern),form))); } else { return (cljs.core.sequential_QMARK_.call(null,form)) && (cljs.core._EQ_.call(null,cljs.core.count.call(null,form),cljs.core.count.call(null,pattern))) && (cljs.core.every_QMARK_.call(null,(function (p__23398){ var vec__23399 = p__23398; var pattern_el = cljs.core.nth.call(null,vec__23399,(0),null); var form_el = cljs.core.nth.call(null,vec__23399,(1),null); return datascript.query.looks_like_QMARK_.call(null,pattern_el,form_el); }),cljs.core.map.call(null,cljs.core.vector,pattern,form))); } } else { return pattern.call(null,form); } } } } }); datascript.query.source_QMARK_ = (function datascript$query$source_QMARK_(sym){ return ((sym instanceof cljs.core.Symbol)) && (cljs.core._EQ_.call(null,"$",cljs.core.first.call(null,cljs.core.name.call(null,sym)))); }); datascript.query.free_var_QMARK_ = (function datascript$query$free_var_QMARK_(sym){ return ((sym instanceof cljs.core.Symbol)) && (cljs.core._EQ_.call(null,"?",cljs.core.first.call(null,cljs.core.name.call(null,sym)))); }); datascript.query.attr_QMARK_ = (function datascript$query$attr_QMARK_(form){ return ((form instanceof cljs.core.Keyword)) || (typeof form === 'string'); }); datascript.query.lookup_ref_QMARK_ = (function datascript$query$lookup_ref_QMARK_(form){ return datascript.query.looks_like_QMARK_.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [datascript.query.attr_QMARK_,new cljs.core.Symbol(null,"_","_",-1201019570,null)], null),form); }); datascript.query.join_tuples = (function datascript$query$join_tuples(t1,idxs1,t2,idxs2){ var l1 = idxs1.length; var l2 = idxs2.length; var res = datascript.arrays.make_array.call(null,(l1 + l2)); var n__16137__auto___23402 = l1; var i_23403 = (0); while(true){ if((i_23403 < n__16137__auto___23402)){ (res[i_23403] = (t1[(idxs1[i_23403])])); var G__23404 = (i_23403 + (1)); i_23403 = G__23404; continue; } else { } break; } var n__16137__auto___23405 = l2; var i_23406 = (0); while(true){ if((i_23406 < n__16137__auto___23405)){ (res[(l1 + i_23406)] = (t2[(idxs2[i_23406])])); var G__23407 = (i_23406 + (1)); i_23406 = G__23407; continue; } else { } break; } return res; }); datascript.query.sum_rel = (function datascript$query$sum_rel(a,b){ return (new datascript.query.Relation(new cljs.core.Keyword(null,"attrs","attrs",-2090668713).cljs$core$IFn$_invoke$arity$1(a),cljs.core.into.call(null,new cljs.core.Keyword(null,"tuples","tuples",-676032639).cljs$core$IFn$_invoke$arity$1(a),new cljs.core.Keyword(null,"tuples","tuples",-676032639).cljs$core$IFn$_invoke$arity$1(b)),null,null,null)); }); datascript.query.prod_rel = (function datascript$query$prod_rel(var_args){ var args23408 = []; var len__16327__auto___23411 = arguments.length; var i__16328__auto___23412 = (0); while(true){ if((i__16328__auto___23412 < len__16327__auto___23411)){ args23408.push((arguments[i__16328__auto___23412])); var G__23413 = (i__16328__auto___23412 + (1)); i__16328__auto___23412 = G__23413; continue; } else { } break; } var G__23410 = args23408.length; switch (G__23410) { case 0: return datascript.query.prod_rel.cljs$core$IFn$_invoke$arity$0(); break; case 2: return datascript.query.prod_rel.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); break; default: throw (new Error([cljs.core.str("Invalid arity: "),cljs.core.str(args23408.length)].join(''))); } }); datascript.query.prod_rel.cljs$core$IFn$_invoke$arity$0 = (function (){ return (new datascript.query.Relation(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [datascript.arrays.make_array.call(null,(0))], null),null,null,null)); }); datascript.query.prod_rel.cljs$core$IFn$_invoke$arity$2 = (function (rel1,rel2){ var attrs1 = cljs.core.keys.call(null,new cljs.core.Keyword(null,"attrs","attrs",-2090668713).cljs$core$IFn$_invoke$arity$1(rel1)); var attrs2 = cljs.core.keys.call(null,new cljs.core.Keyword(null,"attrs","attrs",-2090668713).cljs$core$IFn$_invoke$arity$1(rel2)); var idxs1 = cljs.core.to_array.call(null,cljs.core.map.call(null,new cljs.core.Keyword(null,"attrs","attrs",-2090668713).cljs$core$IFn$_invoke$arity$1(rel1),attrs1)); var idxs2 = cljs.core.to_array.call(null,cljs.core.map.call(null,new cljs.core.Keyword(null,"attrs","attrs",-2090668713).cljs$core$IFn$_invoke$arity$1(rel2),attrs2)); return (new datascript.query.Relation(cljs.core.zipmap.call(null,cljs.core.concat.call(null,attrs1,attrs2),cljs.core.range.call(null)),cljs.core.persistent_BANG_.call(null,cljs.core.reduce.call(null,((function (attrs1,attrs2,idxs1,idxs2){ return (function (acc,t1){ return cljs.core.reduce.call(null,((function (attrs1,attrs2,idxs1,idxs2){ return (function (acc__$1,t2){ return cljs.core.conj_BANG_.call(null,acc__$1,datascript.query.join_tuples.call(null,t1,idxs1,t2,idxs2)); });})(attrs1,attrs2,idxs1,idxs2)) ,acc,new cljs.core.Keyword(null,"tuples","tuples",-676032639).cljs$core$IFn$_invoke$arity$1(rel2)); });})(attrs1,attrs2,idxs1,idxs2)) ,cljs.core.transient$.call(null,cljs.core.PersistentVector.EMPTY),new cljs.core.Keyword(null,"tuples","tuples",-676032639).cljs$core$IFn$_invoke$arity$1(rel1))),null,null,null)); }); datascript.query.prod_rel.cljs$lang$maxFixedArity = 2; datascript.query._differ_QMARK_ = (function datascript$query$_differ_QMARK_(var_args){ var args__16334__auto__ = []; var len__16327__auto___23416 = arguments.length; var i__16328__auto___23417 = (0); while(true){ if((i__16328__auto___23417 < len__16327__auto___23416)){ args__16334__auto__.push((arguments[i__16328__auto___23417])); var G__23418 = (i__16328__auto___23417 + (1)); i__16328__auto___23417 = G__23418; continue; } else { } break; } var argseq__16335__auto__ = ((((0) < args__16334__auto__.length))?(new cljs.core.IndexedSeq(args__16334__auto__.slice((0)),(0),null)):null); return datascript.query._differ_QMARK_.cljs$core$IFn$_invoke$arity$variadic(argseq__16335__auto__); }); datascript.query._differ_QMARK_.cljs$core$IFn$_invoke$arity$variadic = (function (xs){ var l = cljs.core.count.call(null,xs); return cljs.core.not_EQ_.call(null,cljs.core.take.call(null,(l / (2)),xs),cljs.core.drop.call(null,(l / (2)),xs)); }); datascript.query._differ_QMARK_.cljs$lang$maxFixedArity = (0); datascript.query._differ_QMARK_.cljs$lang$applyTo = (function (seq23415){ return datascript.query._differ_QMARK_.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq.call(null,seq23415)); }); datascript.query._get_else = (function datascript$query$_get_else(db,e,a,else_val){ if((else_val == null)){ throw cljs.core.ex_info.call(null,[cljs.core.str("get-else: nil default value is not supported")].join(''),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("query","where","query/where",-1935159429)], null)); } else { } var temp__4655__auto__ = cljs.core.first.call(null,datascript.db._search.call(null,db,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,a], null))); if(cljs.core.truth_(temp__4655__auto__)){ var datom = temp__4655__auto__; return new cljs.core.Keyword(null,"v","v",21465059).cljs$core$IFn$_invoke$arity$1(datom); } else { return else_val; } }); datascript.query._get_some = (function datascript$query$_get_some(var_args){ var args__16334__auto__ = []; var len__16327__auto___23422 = arguments.length; var i__16328__auto___23423 = (0); while(true){ if((i__16328__auto___23423 < len__16327__auto___23422)){ args__16334__auto__.push((arguments[i__16328__auto___23423])); var G__23424 = (i__16328__auto___23423 + (1)); i__16328__auto___23423 = G__23424; continue; } else { } break; } var argseq__16335__auto__ = ((((2) < args__16334__auto__.length))?(new cljs.core.IndexedSeq(args__16334__auto__.slice((2)),(0),null)):null); return datascript.query._get_some.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__16335__auto__); }); datascript.query._get_some.cljs$core$IFn$_invoke$arity$variadic = (function (db,e,as){ return cljs.core.reduce.call(null,(function (_,a){ var temp__4657__auto__ = cljs.core.first.call(null,datascript.db._search.call(null,db,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,a], null))); if(cljs.core.truth_(temp__4657__auto__)){ var datom = temp__4657__auto__; return cljs.core.reduced.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"a","a",-2123407586).cljs$core$IFn$_invoke$arity$1(datom),new cljs.core.Keyword(null,"v","v",21465059).cljs$core$IFn$_invoke$arity$1(datom)], null)); } else { return null; } }),null,as); }); datascript.query._get_some.cljs$lang$maxFixedArity = (2); datascript.query._get_some.cljs$lang$applyTo = (function (seq23419){ var G__23420 = cljs.core.first.call(null,seq23419); var seq23419__$1 = cljs.core.next.call(null,seq23419); var G__23421 = cljs.core.first.call(null,seq23419__$1); var seq23419__$2 = cljs.core.next.call(null,seq23419__$1); return datascript.query._get_some.cljs$core$IFn$_invoke$arity$variadic(G__23420,G__23421,seq23419__$2); }); datascript.query._missing_QMARK_ = (function datascript$query$_missing_QMARK_(db,e,a){ return (cljs.core.get.call(null,datascript.impl.entity.entity.call(null,db,e),a) == null); }); datascript.query.and_fn = (function datascript$query$and_fn(var_args){ var args__16334__auto__ = []; var len__16327__auto___23426 = arguments.length; var i__16328__auto___23427 = (0); while(true){ if((i__16328__auto___23427 < len__16327__auto___23426)){ args__16334__auto__.push((arguments[i__16328__auto___23427])); var G__23428 = (i__16328__auto___23427 + (1)); i__16328__auto___23427 = G__23428; continue; } else { } break; } var argseq__16335__auto__ = ((((0) < args__16334__auto__.length))?(new cljs.core.IndexedSeq(args__16334__auto__.slice((0)),(0),null)):null); return datascript.query.and_fn.cljs$core$IFn$_invoke$arity$variadic(argseq__16335__auto__); }); datascript.query.and_fn.cljs$core$IFn$_invoke$arity$variadic = (function (args){ return cljs.core.reduce.call(null,(function (a,b){ if(cljs.core.truth_(b)){ return b; } else { return cljs.core.reduced.call(null,b); } }),true,args); }); datascript.query.and_fn.cljs$lang$maxFixedArity = (0); datascript.query.and_fn.cljs$lang$applyTo = (function (seq23425){ return datascript.query.and_fn.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq.call(null,seq23425)); }); datascript.query.or_fn = (function datascript$query$or_fn(var_args){ var args__16334__auto__ = []; var len__16327__auto___23430 = arguments.length; var i__16328__auto___23431 = (0); while(true){ if((i__16328__auto___23431 < len__16327__auto___23430)){ args__16334__auto__.push((arguments[i__16328__auto___23431])); var G__23432 = (i__16328__auto___23431 + (1)); i__16328__auto___23431 = G__23432; continue; } else { } break; } var argseq__16335__auto__ = ((((0) < args__16334__auto__.length))?(new cljs.core.IndexedSeq(args__16334__auto__.slice((0)),(0),null)):null); return datascript.query.or_fn.cljs$core$IFn$_invoke$arity$variadic(argseq__16335__auto__); }); datascript.query.or_fn.cljs$core$IFn$_invoke$arity$variadic = (function (args){ return cljs.core.reduce.call(null,(function (a,b){ if(cljs.core.truth_(b)){ return cljs.core.reduced.call(null,b); } else { return b; } }),null,args); }); datascript.query.or_fn.cljs$lang$maxFixedArity = (0); datascript.query.or_fn.cljs$lang$applyTo = (function (seq23429){ return datascript.query.or_fn.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq.call(null,seq23429)); }); datascript.query.built_ins = cljs.core.PersistentHashMap.fromArrays([new cljs.core.Symbol(null,"true?","true?",-1600332395,null),new cljs.core.Symbol(null,"and","and",668631710,null),new cljs.core.Symbol(null,"odd?","odd?",-1458588199,null),new cljs.core.Symbol(null,"get-else","get-else",1312024065,null),new cljs.core.Symbol(null,">=",">=",1016916022,null),new cljs.core.Symbol(null,"print-str","print-str",-699700354,null),new cljs.core.Symbol(null,">",">",1085014381,null),new cljs.core.Symbol(null,"count","count",-514511684,null),new cljs.core.Symbol(null,"get-some","get-some",409442058,null),new cljs.core.Symbol(null,"nil?","nil?",1612038930,null),new cljs.core.Symbol(null,"inc","inc",324505433,null),new cljs.core.Symbol(null,"/","/",-1371932971,null),new cljs.core.Symbol(null,"quot","quot",-1125214196,null),new cljs.core.Symbol(null,"false?","false?",-1522377573,null),new cljs.core.Symbol(null,"not","not",1044554643,null),new cljs.core.Symbol(null,"identity","identity",-1007039734,null),new cljs.core.Symbol(null,"-differ?","-differ?",1465687357,null),new cljs.core.Symbol(null,"re-seq","re-seq",-2105554076,null),new cljs.core.Symbol(null,"<=","<=",1244895369,null),new cljs.core.Symbol(null,"=","=",-1501502141,null),new cljs.core.Symbol(null,"min","min",2085523049,null),new cljs.core.Symbol(null,"+","+",-740910886,null),new cljs.core.Symbol(null,"name","name",-810760592,null),new cljs.core.Symbol(null,"missing?","missing?",-1710383910,null),new cljs.core.Symbol(null,"ground","ground",-1460862835,null),new cljs.core.Symbol(null,"rand-int","rand-int",-495012157,null),new cljs.core.Symbol(null,"complement","complement",-913606051,null),new cljs.core.Symbol(null,"==","==",-234118149,null),new cljs.core.Symbol(null,"hash-map","hash-map",-439030950,null),new cljs.core.Symbol(null,"compare","compare",1109853757,null),new cljs.core.Symbol(null,"range","range",-1014743483,null),new cljs.core.Symbol(null,"max","max",1701898075,null),new cljs.core.Symbol(null,"empty?","empty?",76408555,null),new cljs.core.Symbol(null,"*","*",345799209,null),new cljs.core.Symbol(null,"pr-str","pr-str",-2066912145,null),new cljs.core.Symbol(null,"println-str","println-str",-2049216703,null),new cljs.core.Symbol(null,"meta","meta",-1154898805,null),new cljs.core.Symbol(null,"zero?","zero?",325758897,null),new cljs.core.Symbol(null,"!=","!=",-201205829,null),new cljs.core.Symbol(null,"prn-str","prn-str",-145225943,null),new cljs.core.Symbol(null,"dec","dec",-766002333,null),new cljs.core.Symbol(null,"vector","vector",-751469611,null),new cljs.core.Symbol(null,"not=","not=",1466536204,null),new cljs.core.Symbol(null,"str","str",-1564826950,null),new cljs.core.Symbol(null,"<","<",993667236,null),new cljs.core.Symbol(null,"namespace","namespace",1263021155,null),new cljs.core.Symbol(null,"-","-",-471816912,null),new cljs.core.Symbol(null,"some?","some?",234752293,null),new cljs.core.Symbol(null,"pos?","pos?",-244377722,null),new cljs.core.Symbol(null,"rand","rand",-1745930995,null),new cljs.core.Symbol(null,"re-matches","re-matches",-1865705768,null),new cljs.core.Symbol(null,"list","list",-1889078086,null),new cljs.core.Symbol(null,"contains?","contains?",-1676812576,null),new cljs.core.Symbol(null,"subs","subs",1453849536,null),new cljs.core.Symbol(null,"mod","mod",1510044207,null),new cljs.core.Symbol(null,"array-map","array-map",1555038968,null),new cljs.core.Symbol(null,"rem","rem",664046770,null),new cljs.core.Symbol(null,"even?","even?",-1827825394,null),new cljs.core.Symbol(null,"type","type",-1480165421,null),new cljs.core.Symbol(null,"neg?","neg?",-1902175577,null),new cljs.core.Symbol(null,"not-empty","not-empty",2029453590,null),new cljs.core.Symbol(null,"or","or",1876275696,null),new cljs.core.Symbol(null,"identical?","identical?",-745864205,null),new cljs.core.Symbol(null,"set","set",1945134081,null),new cljs.core.Symbol(null,"re-find","re-find",1143444147,null)],[cljs.core.true_QMARK_,datascript.query.and_fn,cljs.core.odd_QMARK_,datascript.query._get_else,cljs.core._GT__EQ_,cljs.core.print_str,cljs.core._GT_,cljs.core.count,datascript.query._get_some,cljs.core.nil_QMARK_,cljs.core.inc,cljs.core._SLASH_,cljs.core.quot,cljs.core.false_QMARK_,cljs.core.not,cljs.core.identity,datascript.query._differ_QMARK_,cljs.core.re_seq,cljs.core._LT__EQ_,cljs.core._EQ_,cljs.core.min,cljs.core._PLUS_,cljs.core.name,datascript.query._missing_QMARK_,cljs.core.identity,cljs.core.rand_int,cljs.core.complement,cljs.core._EQ__EQ_,cljs.core.hash_map,cljs.core.compare,cljs.core.range,cljs.core.max,cljs.core.empty,cljs.core._STAR_,cljs.core.pr_str,cljs.core.println_str,cljs.core.meta,cljs.core.zero_QMARK_,cljs.core.not_EQ_,cljs.core.prn_str,cljs.core.dec,cljs.core.vector,cljs.core.not_EQ_,cljs.core.str,cljs.core._LT_,cljs.core.namespace,cljs.core._,cljs.core.some_QMARK_,cljs.core.pos_QMARK_,cljs.core.rand,cljs.core.re_matches,cljs.core.list,cljs.core.contains_QMARK_,cljs.core.subs,cljs.core.mod,cljs.core.array_map,cljs.core.rem,cljs.core.even_QMARK_,cljs.core.type,cljs.core.neg_QMARK_,cljs.core.not_empty,datascript.query.or_fn,cljs.core.identical_QMARK_,cljs.core.set,cljs.core.re_find]); datascript.query.built_in_aggregates = (function (){var sum = (function datascript$query$sum(coll){ return cljs.core.reduce.call(null,cljs.core._PLUS_,(0),coll); }); var avg = (function datascript$query$avg(coll){ return (sum.call(null,coll) / cljs.core.count.call(null,coll)); }); var median = (function datascript$query$median(coll){ var terms = cljs.core.sort.call(null,coll); var size = cljs.core.count.call(null,coll); var med = (size >> (1)); var G__23444 = cljs.core.nth.call(null,terms,med); if(cljs.core.even_QMARK_.call(null,size)){ return ((G__23444 + cljs.core.nth.call(null,terms,(med - (1)))) / (2)); } else { return G__23444; } }); var variance = (function datascript$query$variance(coll){ var mean = avg.call(null,coll); var sum__$1 = sum.call(null,(function (){var iter__16002__auto__ = ((function (mean){ return (function datascript$query$variance_$_iter__23449(s__23450){ return (new cljs.core.LazySeq(null,((function (mean){ return (function (){ var s__23450__$1 = s__23450; while(true){ var temp__4657__auto__ = cljs.core.seq.call(null,s__23450__$1); if(temp__4657__auto__){ var s__23450__$2 = temp__4657__auto__; if(cljs.core.chunked_seq_QMARK_.call(null,s__23450__$2)){ var c__16000__auto__ = cljs.core.chunk_first.call(null,s__23450__$2); var size__16001__auto__ = cljs.core.count.call(null,c__16000__auto__); var b__23452 = cljs.core.chunk_buffer.call(null,size__16001__auto__); if((function (){var i__23451 = (0); while(true){ if((i__23451 < size__16001__auto__)){ var x = cljs.core._nth.call(null,c__16000__auto__,i__23451); var delta = (x - mean); cljs.core.chunk_append.call(null,b__23452,(delta * delta)); var G__23453 = (i__23451 + (1)); i__23451 = G__23453; continue; } else { return true; } break; } })()){ return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__23452),datascript$query$variance_$_iter__23449.call(null,cljs.core.chunk_rest.call(null,s__23450__$2))); } else { return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__23452),null); } } else { var x = cljs.core.first.call(null,s__23450__$2); var delta = (x - mean); return cljs.core.cons.call(null,(delta * delta),datascript$query$variance_$_iter__23449.call(null,cljs.core.rest.call(null,s__23450__$2))); } } else { return null; } break; } });})(mean)) ,null,null)); });})(mean)) ; return iter__16002__auto__.call(null,coll); })()); return (sum__$1 / cljs.core.count.call(null,coll)); }); var stddev = (function datascript$query$stddev(coll){ return Math.sqrt(variance.call(null,coll)); }); return cljs.core.PersistentHashMap.fromArrays([new cljs.core.Symbol(null,"variance","variance",-1522424942,null),new cljs.core.Symbol(null,"count","count",-514511684,null),new cljs.core.Symbol(null,"median","median",-2084869638,null),new cljs.core.Symbol(null,"sum","sum",1777518341,null),new cljs.core.Symbol(null,"min","min",2085523049,null),new cljs.core.Symbol(null,"max","max",1701898075,null),new cljs.core.Symbol(null,"count-distinct","count-distinct",-1566572514,null),new cljs.core.Symbol(null,"distinct","distinct",-148347594,null),new cljs.core.Symbol(null,"avg","avg",1837937727,null),new cljs.core.Symbol(null,"stddev","stddev",775056588,null),new cljs.core.Symbol(null,"rand","rand",-1745930995,null),new cljs.core.Symbol(null,"sample","sample",1719555128,null)],[variance,cljs.core.count,median,sum,(function() { var G__23454 = null; var G__23454__1 = (function (coll){ return cljs.core.reduce.call(null,(function (acc,x){ if((cljs.core.compare.call(null,x,acc) < (0))){ return x; } else { return acc; } }),cljs.core.first.call(null,coll),cljs.core.next.call(null,coll)); }); var G__23454__2 = (function (n,coll){ return cljs.core.vec.call(null,cljs.core.reduce.call(null,(function (acc,x){ if((cljs.core.count.call(null,acc) < n)){ return cljs.core.sort.call(null,cljs.core.compare,cljs.core.conj.call(null,acc,x)); } else { if((cljs.core.compare.call(null,x,cljs.core.last.call(null,acc)) < (0))){ return cljs.core.sort.call(null,cljs.core.compare,cljs.core.conj.call(null,cljs.core.butlast.call(null,acc),x)); } else { return acc; } } }),cljs.core.PersistentVector.EMPTY,coll)); }); G__23454 = function(n,coll){ switch(arguments.length){ case 1: return G__23454__1.call(this,n); case 2: return G__23454__2.call(this,n,coll); } throw(new Error('Invalid arity: ' + arguments.length)); }; G__23454.cljs$core$IFn$_invoke$arity$1 = G__23454__1; G__23454.cljs$core$IFn$_invoke$arity$2 = G__23454__2; return G__23454; })() ,(function() { var G__23455 = null; var G__23455__1 = (function (coll){ return cljs.core.reduce.call(null,(function (acc,x){ if((cljs.core.compare.call(null,x,acc) > (0))){ return x; } else { return acc; } }),cljs.core.first.call(null,coll),cljs.core.next.call(null,coll)); }); var G__23455__2 = (function (n,coll){ return cljs.core.vec.call(null,cljs.core.reduce.call(null,(function (acc,x){ if((cljs.core.count.call(null,acc) < n)){ return cljs.core.sort.call(null,cljs.core.compare,cljs.core.conj.call(null,acc,x)); } else { if((cljs.core.compare.call(null,x,cljs.core.first.call(null,acc)) > (0))){ return cljs.core.sort.call(null,cljs.core.compare,cljs.core.conj.call(null,cljs.core.next.call(null,acc),x)); } else { return acc; } } }),cljs.core.PersistentVector.EMPTY,coll)); }); G__23455 = function(n,coll){ switch(arguments.length){ case 1: return G__23455__1.call(this,n); case 2: return G__23455__2.call(this,n,coll); } throw(new Error('Invalid arity: ' + arguments.length)); }; G__23455.cljs$core$IFn$_invoke$arity$1 = G__23455__1; G__23455.cljs$core$IFn$_invoke$arity$2 = G__23455__2; return G__23455; })() ,(function (coll){ return cljs.core.count.call(null,cljs.core.distinct.call(null,coll)); }),cljs.core.comp.call(null,cljs.core.vec,cljs.core.distinct),avg,stddev,(function() { var G__23456 = null; var G__23456__1 = (function (coll){ return cljs.core.rand_nth.call(null,coll); }); var G__23456__2 = (function (n,coll){ return cljs.core.vec.call(null,cljs.core.repeatedly.call(null,n,(function (){ return cljs.core.rand_nth.call(null,coll); }))); }); G__23456 = function(n,coll){ switch(arguments.length){ case 1: return G__23456__1.call(this,n); case 2: return G__23456__2.call(this,n,coll); } throw(new Error('Invalid arity: ' + arguments.length)); }; G__23456.cljs$core$IFn$_invoke$arity$1 = G__23456__1; G__23456.cljs$core$IFn$_invoke$arity$2 = G__23456__2; return G__23456; })() ,(function (n,coll){ return cljs.core.vec.call(null,cljs.core.take.call(null,n,cljs.core.shuffle.call(null,coll))); })]); })(); datascript.query.parse_rules = (function datascript$query$parse_rules(rules){ var rules__$1 = ((typeof rules === 'string')?cljs.reader.read_string.call(null,rules):rules); return cljs.core.group_by.call(null,cljs.core.ffirst,rules__$1); }); datascript.query.empty_rel = (function datascript$query$empty_rel(binding){ var vars = cljs.core.map.call(null,new cljs.core.Keyword(null,"symbol","symbol",-1038572696),datascript.parser.collect_vars_distinct.call(null,binding)); return (new datascript.query.Relation(cljs.core.zipmap.call(null,vars,cljs.core.range.call(null)),cljs.core.PersistentVector.EMPTY,null,null,null)); }); /** * @interface */ datascript.query.IBinding = function(){}; datascript.query.in__GT_rel = (function datascript$query$in__GT_rel(binding,value){ if((!((binding == null))) && (!((binding.datascript$query$IBinding$in__GT_rel$arity$2 == null)))){ return binding.datascript$query$IBinding$in__GT_rel$arity$2(binding,value); } else { var x__15882__auto__ = (((binding == null))?null:binding); var m__15883__auto__ = (datascript.query.in__GT_rel[goog.typeOf(x__15882__auto__)]); if(!((m__15883__auto__ == null))){ return m__15883__auto__.call(null,binding,value); } else { var m__15883__auto____$1 = (datascript.query.in__GT_rel["_"]); if(!((m__15883__auto____$1 == null))){ return m__15883__auto____$1.call(null,binding,value); } else { throw cljs.core.missing_protocol.call(null,"IBinding.in->rel",binding); } } } }); datascript.parser.BindIgnore.prototype.datascript$query$IBinding$ = cljs.core.PROTOCOL_SENTINEL; datascript.parser.BindIgnore.prototype.datascript$query$IBinding$in__GT_rel$arity$2 = (function (_,___$1){ var ___$2 = this; return datascript.query.prod_rel.call(null); }); datascript.parser.BindScalar.prototype.datascript$query$IBinding$ = cljs.core.PROTOCOL_SENTINEL; datascript.parser.BindScalar.prototype.datascript$query$IBinding$in__GT_rel$arity$2 = (function (binding,value){ var binding__$1 = this; return (new datascript.query.Relation(cljs.core.PersistentArrayMap.fromArray([cljs.core.get_in.call(null,binding__$1,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"variable","variable",-281346492),new cljs.core.Keyword(null,"symbol","symbol",-1038572696)], null)),(0)], true, false),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.into_array.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [value], null))], null),null,null,null)); }); datascript.parser.BindColl.prototype.datascript$query$IBinding$ = cljs.core.PROTOCOL_SENTINEL; datascript.parser.BindColl.prototype.datascript$query$IBinding$in__GT_rel$arity$2 = (function (binding,coll){ var binding__$1 = this; if(!(datascript.db.seqable_QMARK_.call(null,coll))){ throw cljs.core.ex_info.call(null,[cljs.core.str("Cannot bind value "),cljs.core.str(cljs.core.pr_str.call(null,coll)),cljs.core.str(" to collection "),cljs.core.str(cljs.core.pr_str.call(null,datascript.parser.source.call(null,binding__$1)))].join(''),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("query","binding","query/binding",698240489),new cljs.core.Keyword(null,"value","value",305978217),coll,new cljs.core.Keyword(null,"binding","binding",539932593),datascript.parser.source.call(null,binding__$1)], null)); } else { if(cljs.core.empty_QMARK_.call(null,coll)){ return datascript.query.empty_rel.call(null,binding__$1); } else { return cljs.core.reduce.call(null,datascript.query.sum_rel,cljs.core.map.call(null,((function (binding__$1){ return (function (p1__23457_SHARP_){ return datascript.query.in__GT_rel.call(null,new cljs.core.Keyword(null,"binding","binding",539932593).cljs$core$IFn$_invoke$arity$1(binding__$1),p1__23457_SHARP_); });})(binding__$1)) ,coll)); } } }); datascript.parser.BindTuple.prototype.datascript$query$IBinding$ = cljs.core.PROTOCOL_SENTINEL; datascript.parser.BindTuple.prototype.datascript$query$IBinding$in__GT_rel$arity$2 = (function (binding,coll){ var binding__$1 = this; if(!(datascript.db.seqable_QMARK_.call(null,coll))){ throw cljs.core.ex_info.call(null,[cljs.core.str("Cannot bind value "),cljs.core.str(cljs.core.pr_str.call(null,coll)),cljs.core.str(" to tuple "),cljs.core.str(cljs.core.pr_str.call(null,datascript.parser.source.call(null,binding__$1)))].join(''),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("query","binding","query/binding",698240489),new cljs.core.Keyword(null,"value","value",305978217),coll,new cljs.core.Keyword(null,"binding","binding",539932593),datascript.parser.source.call(null,binding__$1)], null)); } else { if((cljs.core.count.call(null,coll) < cljs.core.count.call(null,new cljs.core.Keyword(null,"bindings","bindings",1271397192).cljs$core$IFn$_invoke$arity$1(binding__$1)))){ throw cljs.core.ex_info.call(null,[cljs.core.str("Not enough elements in a collection "),cljs.core.str(cljs.core.pr_str.call(null,coll)),cljs.core.str(" to bind tuple "),cljs.core.str(cljs.core.pr_str.call(null,datascript.parser.source.call(null,binding__$1)))].join(''),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("query","binding","query/binding",698240489),new cljs.core.Keyword(null,"value","value",305978217),coll,new cljs.core.Keyword(null,"binding","binding",539932593),datascript.parser.source.call(null,binding__$1)], null)); } else { return cljs.core.reduce.call(null,datascript.query.prod_rel,cljs.core.map.call(null,((function (binding__$1){ return (function (p1__23458_SHARP_,p2__23459_SHARP_){ return datascript.query.in__GT_rel.call(null,p1__23458_SHARP_,p2__23459_SHARP_); });})(binding__$1)) ,new cljs.core.Keyword(null,"bindings","bindings",1271397192).cljs$core$IFn$_invoke$arity$1(binding__$1),coll)); } } }); datascript.query.resolve_in = (function datascript$query$resolve_in(context,p__23460){ var vec__23464 = p__23460; var binding = cljs.core.nth.call(null,vec__23464,(0),null); var value = cljs.core.nth.call(null,vec__23464,(1),null); if(((binding instanceof datascript.parser.BindScalar)) && ((new cljs.core.Keyword(null,"variable","variable",-281346492).cljs$core$IFn$_invoke$arity$1(binding) instanceof datascript.parser.SrcVar))){ return cljs.core.update_in.call(null,context,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"sources","sources",-321166424)], null),cljs.core.assoc,cljs.core.get_in.call(null,binding,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"variable","variable",-281346492),new cljs.core.Keyword(null,"symbol","symbol",-1038572696)], null)),value); } else { if(((binding instanceof datascript.parser.BindScalar)) && ((new cljs.core.Keyword(null,"variable","variable",-281346492).cljs$core$IFn$_invoke$arity$1(binding) instanceof datascript.parser.RulesVar))){ return cljs.core.assoc.call(null,context,new cljs.core.Keyword(null,"rules","rules",1198912366),datascript.query.parse_rules.call(null,value)); } else { return cljs.core.update_in.call(null,context,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"rels","rels",1770187185)], null),cljs.core.conj,datascript.query.in__GT_rel.call(null,binding,value)); } } }); datascript.query.resolve_ins = (function datascript$query$resolve_ins(context,bindings,values){ return cljs.core.reduce.call(null,datascript.query.resolve_in,context,cljs.core.zipmap.call(null,bindings,values)); }); datascript.query._STAR_lookup_attrs_STAR_ = null; datascript.query._STAR_lookup_source_STAR_ = null; datascript.query.getter_fn = (function datascript$query$getter_fn(attrs,attr){ var idx = attrs.call(null,attr); if((!((datascript.query._STAR_lookup_attrs_STAR_ == null))) && (cljs.core.contains_QMARK_.call(null,datascript.query._STAR_lookup_attrs_STAR_,attr))){ return ((function (idx){ return (function (tuple){ var eid = (tuple[idx]); if(typeof eid === 'number'){ return eid; } else { if(cljs.core.sequential_QMARK_.call(null,eid)){ return datascript.db.entid.call(null,datascript.query._STAR_lookup_source_STAR_,eid); } else { if(datascript.arrays.array_QMARK_.call(null,eid)){ return datascript.db.entid.call(null,datascript.query._STAR_lookup_source_STAR_,eid); } else { return eid; } } } }); ;})(idx)) } else { return ((function (idx){ return (function (tuple){ return (tuple[idx]); }); ;})(idx)) } }); datascript.query.tuple_key_fn = (function datascript$query$tuple_key_fn(getters){ if((cljs.core.count.call(null,getters) === (1))){ return cljs.core.first.call(null,getters); } else { var getters__$1 = cljs.core.to_array.call(null,getters); return ((function (getters__$1){ return (function (tuple){ return cljs.core.list_STAR_.call(null,getters__$1.map(((function (getters__$1){ return (function (p1__23467_SHARP_){ return p1__23467_SHARP_.call(null,tuple); });})(getters__$1)) )); }); ;})(getters__$1)) } }); datascript.query.hash_attrs = (function datascript$query$hash_attrs(key_fn,tuples){ var tuples__$1 = tuples; var hash_table = cljs.core.transient$.call(null,cljs.core.PersistentArrayMap.EMPTY); while(true){ var temp__4655__auto__ = cljs.core.first.call(null,tuples__$1); if(cljs.core.truth_(temp__4655__auto__)){ var tuple = temp__4655__auto__; var key = key_fn.call(null,tuple); var G__23469 = cljs.core.next.call(null,tuples__$1); var G__23470 = cljs.core.assoc_BANG_.call(null,hash_table,key,cljs.core.conj.call(null,cljs.core.get.call(null,hash_table,key,cljs.core.List.EMPTY),tuple)); tuples__$1 = G__23469; hash_table = G__23470; continue; } else { return cljs.core.persistent_BANG_.call(null,hash_table); } break; } }); datascript.query.hash_join = (function datascript$query$hash_join(rel1,rel2){ var tuples1 = new cljs.core.Keyword(null,"tuples","tuples",-676032639).cljs$core$IFn$_invoke$arity$1(rel1); var tuples2 = new cljs.core.Keyword(null,"tuples","tuples",-676032639).cljs$core$IFn$_invoke$arity$1(rel2); var attrs1 = new cljs.core.Keyword(null,"attrs","attrs",-2090668713).cljs$core$IFn$_invoke$arity$1(rel1); var attrs2 = new cljs.core.Keyword(null,"attrs","attrs",-2090668713).cljs$core$IFn$_invoke$arity$1(rel2); var common_attrs = cljs.core.vec.call(null,datascript.query.intersect_keys.call(null,new cljs.core.Keyword(null,"attrs","attrs",-2090668713).cljs$core$IFn$_invoke$arity$1(rel1),new cljs.core.Keyword(null,"attrs","attrs",-2090668713).cljs$core$IFn$_invoke$arity$1(rel2))); var common_gtrs1 = cljs.core.map.call(null,((function (tuples1,tuples2,attrs1,attrs2,common_attrs){ return (function (p1__23471_SHARP_){ return datascript.query.getter_fn.call(null,attrs1,p1__23471_SHARP_); });})(tuples1,tuples2,attrs1,attrs2,common_attrs)) ,common_attrs); var common_gtrs2 = cljs.core.map.call(null,((function (tuples1,tuples2,attrs1,attrs2,common_attrs,common_gtrs1){ return (function (p1__23472_SHARP_){ return datascript.query.getter_fn.call(null,attrs2,p1__23472_SHARP_); });})(tuples1,tuples2,attrs1,attrs2,common_attrs,common_gtrs1)) ,common_attrs); var keep_attrs1 = cljs.core.keys.call(null,attrs1); var keep_attrs2 = cljs.core.vec.call(null,clojure.set.difference.call(null,cljs.core.set.call(null,cljs.core.keys.call(null,attrs2)),cljs.core.set.call(null,cljs.core.keys.call(null,attrs1)))); var keep_idxs1 = cljs.core.to_array.call(null,cljs.core.map.call(null,attrs1,keep_attrs1)); var keep_idxs2 = cljs.core.to_array.call(null,cljs.core.map.call(null,attrs2,keep_attrs2)); var key_fn1 = datascript.query.tuple_key_fn.call(null,common_gtrs1); var hash = datascript.query.hash_attrs.call(null,key_fn1,tuples1); var key_fn2 = datascript.query.tuple_key_fn.call(null,common_gtrs2); var new_tuples = cljs.core.persistent_BANG_.call(null,cljs.core.reduce.call(null,((function (tuples1,tuples2,attrs1,attrs2,common_attrs,common_gtrs1,common_gtrs2,keep_attrs1,keep_attrs2,keep_idxs1,keep_idxs2,key_fn1,hash,key_fn2){ return (function (acc,tuple2){ var key = key_fn2.call(null,tuple2); var temp__4655__auto__ = cljs.core.get.call(null,hash,key); if(cljs.core.truth_(temp__4655__auto__)){ var tuples1__$1 = temp__4655__auto__; return cljs.core.reduce.call(null,((function (tuples1__$1,temp__4655__auto__,key,tuples1,tuples2,attrs1,attrs2,common_attrs,common_gtrs1,common_gtrs2,keep_attrs1,keep_attrs2,keep_idxs1,keep_idxs2,key_fn1,hash,key_fn2){ return (function (acc__$1,tuple1){ return cljs.core.conj_BANG_.call(null,acc__$1,datascript.query.join_tuples.call(null,tuple1,keep_idxs1,tuple2,keep_idxs2)); });})(tuples1__$1,temp__4655__auto__,key,tuples1,tuples2,attrs1,attrs2,common_attrs,common_gtrs1,common_gtrs2,keep_attrs1,keep_attrs2,keep_idxs1,keep_idxs2,key_fn1,hash,key_fn2)) ,acc,tuples1__$1); } else { return acc; } });})(tuples1,tuples2,attrs1,attrs2,common_attrs,common_gtrs1,common_gtrs2,keep_attrs1,keep_attrs2,keep_idxs1,keep_idxs2,key_fn1,hash,key_fn2)) ,cljs.core.transient$.call(null,cljs.core.PersistentVector.EMPTY),tuples2)); return (new datascript.query.Relation(cljs.core.zipmap.call(null,cljs.core.concat.call(null,keep_attrs1,keep_attrs2),cljs.core.range.call(null)),new_tuples,null,null,null)); }); datascript.query.lookup_pattern_db = (function datascript$query$lookup_pattern_db(db,pattern){ var search_pattern = cljs.core.mapv.call(null,(function (p1__23473_SHARP_){ if((p1__23473_SHARP_ instanceof cljs.core.Symbol)){ return null; } else { return p1__23473_SHARP_; } }),pattern); var datoms = datascript.db._search.call(null,db,search_pattern); var attr__GT_prop = cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.call(null,((function (search_pattern,datoms){ return (function (p__23478){ var vec__23479 = p__23478; var s = cljs.core.nth.call(null,vec__23479,(0),null); var _ = cljs.core.nth.call(null,vec__23479,(1),null); return datascript.query.free_var_QMARK_.call(null,s); });})(search_pattern,datoms)) ,cljs.core.map.call(null,cljs.core.vector,pattern,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, ["e","a","v","tx"], null)))); return (new datascript.query.Relation(attr__GT_prop,datoms,null,null,null)); }); datascript.query.matches_pattern_QMARK_ = (function datascript$query$matches_pattern_QMARK_(pattern,tuple){ var tuple__$1 = tuple; var pattern__$1 = pattern; while(true){ if(cljs.core.truth_((function (){var and__15207__auto__ = tuple__$1; if(cljs.core.truth_(and__15207__auto__)){ return pattern__$1; } else { return and__15207__auto__; } })())){ var t = cljs.core.first.call(null,tuple__$1); var p = cljs.core.first.call(null,pattern__$1); if(((p instanceof cljs.core.Symbol)) || (cljs.core._EQ_.call(null,t,p))){ var G__23482 = cljs.core.next.call(null,tuple__$1); var G__23483 = cljs.core.next.call(null,pattern__$1); tuple__$1 = G__23482; pattern__$1 = G__23483; continue; } else { return false; } } else { return true; } break; } }); datascript.query.lookup_pattern_coll = (function datascript$query$lookup_pattern_coll(coll,pattern){ var data = cljs.core.filter.call(null,(function (p1__23484_SHARP_){ return datascript.query.matches_pattern_QMARK_.call(null,pattern,p1__23484_SHARP_); }),coll); var attr__GT_idx = cljs.core.into.call(null,cljs.core.PersistentArrayMap.EMPTY,cljs.core.filter.call(null,((function (data){ return (function (p__23489){ var vec__23490 = p__23489; var s = cljs.core.nth.call(null,vec__23490,(0),null); var _ = cljs.core.nth.call(null,vec__23490,(1),null); return datascript.query.free_var_QMARK_.call(null,s); });})(data)) ,cljs.core.map.call(null,cljs.core.vector,pattern,cljs.core.range.call(null)))); return (new datascript.query.Relation(attr__GT_idx,cljs.core.map.call(null,cljs.core.to_array,data),null,null,null)); }); datascript.query.normalize_pattern_clause = (function datascript$query$normalize_pattern_clause(clause){ if(cljs.core.truth_(datascript.query.source_QMARK_.call(null,cljs.core.first.call(null,clause)))){ return clause; } else { return cljs.core.concat.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"$","$",-1580747756,null)], null),clause); } }); datascript.query.lookup_pattern = (function datascript$query$lookup_pattern(source,pattern){ if(((!((source == null)))?(((false) || ((cljs.core.PROTOCOL_SENTINEL === source.datascript$db$ISearch$)))?true:(((!source.cljs$lang$protocol_mask$partition$))?cljs.core.native_satisfies_QMARK_.call(null,datascript.db.ISearch,source):false)):cljs.core.native_satisfies_QMARK_.call(null,datascript.db.ISearch,source))){ return datascript.query.lookup_pattern_db.call(null,source,pattern); } else { return datascript.query.lookup_pattern_coll.call(null,source,pattern); } }); datascript.query.collapse_rels = (function datascript$query$collapse_rels(rels,new_rel){ var rels__$1 = rels; var new_rel__$1 = new_rel; var acc = cljs.core.PersistentVector.EMPTY; while(true){ var temp__4655__auto__ = cljs.core.first.call(null,rels__$1); if(cljs.core.truth_(temp__4655__auto__)){ var rel = temp__4655__auto__; if(cljs.core.truth_(cljs.core.not_empty.call(null,datascript.query.intersect_keys.call(null,new cljs.core.Keyword(null,"attrs","attrs",-2090668713).cljs$core$IFn$_invoke$arity$1(new_rel__$1),new cljs.core.Keyword(null,"attrs","attrs",-2090668713).cljs$core$IFn$_invoke$arity$1(rel))))){ var G__23495 = cljs.core.next.call(null,rels__$1); var G__23496 = datascript.query.hash_join.call(null,rel,new_rel__$1); var G__23497 = acc; rels__$1 = G__23495; new_rel__$1 = G__23496; acc = G__23497; continue; } else { var G__23498 = cljs.core.next.call(null,rels__$1); var G__23499 = new_rel__$1; var G__23500 = cljs.core.conj.call(null,acc,rel); rels__$1 = G__23498; new_rel__$1 = G__23499; acc = G__23500; continue; } } else { return cljs.core.conj.call(null,acc,new_rel__$1); } break; } }); datascript.query.rel_with_attr = (function datascript$query$rel_with_attr(context,sym){ return cljs.core.some.call(null,(function (p1__23501_SHARP_){ if(cljs.core.contains_QMARK_.call(null,new cljs.core.Keyword(null,"attrs","attrs",-2090668713).cljs$core$IFn$_invoke$arity$1(p1__23501_SHARP_),sym)){ return p1__23501_SHARP_; } else { return null; } }),new cljs.core.Keyword(null,"rels","rels",1770187185).cljs$core$IFn$_invoke$arity$1(context)); }); datascript.query.context_resolve_val = (function datascript$query$context_resolve_val(context,sym){ var temp__4657__auto__ = datascript.query.rel_with_attr.call(null,context,sym); if(cljs.core.truth_(temp__4657__auto__)){ var rel = temp__4657__auto__; var temp__4657__auto____$1 = cljs.core.first.call(null,new cljs.core.Keyword(null,"tuples","tuples",-676032639).cljs$core$IFn$_invoke$arity$1(rel)); if(cljs.core.truth_(temp__4657__auto____$1)){ var tuple = temp__4657__auto____$1; return (tuple[new cljs.core.Keyword(null,"attrs","attrs",-2090668713).cljs$core$IFn$_invoke$arity$1(rel).call(null,sym)]); } else { return null; } } else { return null; } }); datascript.query.rel_contains_attrs_QMARK_ = (function datascript$query$rel_contains_attrs_QMARK_(rel,attrs){ return !(cljs.core.empty_QMARK_.call(null,clojure.set.intersection.call(null,cljs.core.set.call(null,attrs),cljs.core.set.call(null,cljs.core.keys.call(null,new cljs.core.Keyword(null,"attrs","attrs",-2090668713).cljs$core$IFn$_invoke$arity$1(rel)))))); }); datascript.query.rel_prod_by_attrs = (function datascript$query$rel_prod_by_attrs(context,attrs){ var rels = cljs.core.filter.call(null,(function (p1__23502_SHARP_){ return datascript.query.rel_contains_attrs_QMARK_.call(null,p1__23502_SHARP_,attrs); }),new cljs.core.Keyword(null,"rels","rels",1770187185).cljs$core$IFn$_invoke$arity$1(context)); var production = cljs.core.reduce.call(null,datascript.query.prod_rel,rels); return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.update_in.call(null,context,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"rels","rels",1770187185)], null),((function (rels,production){ return (function (p1__23503_SHARP_){ return cljs.core.remove.call(null,cljs.core.set.call(null,rels),p1__23503_SHARP_); });})(rels,production)) ),production], null); }); datascript.query._call_fn = (function datascript$query$_call_fn(context,rel,f,args){ var sources = new cljs.core.Keyword(null,"sources","sources",-321166424).cljs$core$IFn$_invoke$arity$1(context); var attrs = new cljs.core.Keyword(null,"attrs","attrs",-2090668713).cljs$core$IFn$_invoke$arity$1(rel); var len = cljs.core.count.call(null,args); var static_args = datascript.arrays.make_array.call(null,len); var tuples_args = datascript.arrays.make_array.call(null,len); var n__16137__auto___23504 = len; var i_23505 = (0); while(true){ if((i_23505 < n__16137__auto___23504)){ var arg_23506 = cljs.core.nth.call(null,args,i_23505); if((arg_23506 instanceof cljs.core.Symbol)){ var temp__4655__auto___23507 = cljs.core.get.call(null,sources,arg_23506); if(cljs.core.truth_(temp__4655__auto___23507)){ var source_23508 = temp__4655__auto___23507; (static_args[i_23505] = source_23508); } else { (tuples_args[i_23505] = cljs.core.get.call(null,attrs,arg_23506)); } } else { (static_args[i_23505] = arg_23506); } var G__23509 = (i_23505 + (1)); i_23505 = G__23509; continue; } else { } break; } return ((function (sources,attrs,len,static_args,tuples_args){ return (function (tuple){ var n__16137__auto___23510 = len; var i_23511 = (0); while(true){ if((i_23511 < n__16137__auto___23510)){ var temp__4657__auto___23512 = (tuples_args[i_23511]); if(cljs.core.truth_(temp__4657__auto___23512)){ var tuple_idx_23513 = temp__4657__auto___23512; var v_23514 = (tuple[tuple_idx_23513]); (static_args[i_23511] = v_23514); } else { } var G__23515 = (i_23511 + (1)); i_23511 = G__23515; continue; } else { } break; } return cljs.core.apply.call(null,f,static_args); }); ;})(sources,attrs,len,static_args,tuples_args)) }); datascript.query.resolve_sym = (function datascript$query$resolve_sym(sym){ return null; }); datascript.query.filter_by_pred = (function datascript$query$filter_by_pred(context,clause){ var vec__23526 = clause; var vec__23529 = cljs.core.nth.call(null,vec__23526,(0),null); var seq__23530 = cljs.core.seq.call(null,vec__23529); var first__23531 = cljs.core.first.call(null,seq__23530); var seq__23530__$1 = cljs.core.next.call(null,seq__23530); var f = first__23531; var args = seq__23530__$1; var pred = (function (){var or__15219__auto__ = cljs.core.get.call(null,datascript.query.built_ins,f); if(cljs.core.truth_(or__15219__auto__)){ return or__15219__auto__; } else { var or__15219__auto____$1 = datascript.query.context_resolve_val.call(null,context,f); if(cljs.core.truth_(or__15219__auto____$1)){ return or__15219__auto____$1; } else { var or__15219__auto____$2 = datascript.query.resolve_sym.call(null,f); if(cljs.core.truth_(or__15219__auto____$2)){ return or__15219__auto____$2; } else { if((datascript.query.rel_with_attr.call(null,context,f) == null)){ throw cljs.core.ex_info.call(null,[cljs.core.str("Unknown predicate '"),cljs.core.str(f),cljs.core.str(" in "),cljs.core.str(clause)].join(''),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("query","where","query/where",-1935159429),new cljs.core.Keyword(null,"form","form",-1624062471),clause,new cljs.core.Keyword(null,"var","var",-769682797),f], null)); } else { return null; } } } } })(); var vec__23532 = datascript.query.rel_prod_by_attrs.call(null,context,cljs.core.filter.call(null,cljs.core.symbol_QMARK_,args)); var context__$1 = cljs.core.nth.call(null,vec__23532,(0),null); var production = cljs.core.nth.call(null,vec__23532,(1),null); var new_rel = (cljs.core.truth_(pred)?(function (){var tuple_pred = datascript.query._call_fn.call(null,context__$1,production,pred,args); return cljs.core.update_in.call(null,production,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tuples","tuples",-676032639)], null),((function (tuple_pred,vec__23526,vec__23529,seq__23530,first__23531,seq__23530__$1,f,args,pred,vec__23532,context__$1,production){ return (function (p1__23516_SHARP_){ return cljs.core.filter.call(null,tuple_pred,p1__23516_SHARP_); });})(tuple_pred,vec__23526,vec__23529,seq__23530,first__23531,seq__23530__$1,f,args,pred,vec__23532,context__$1,production)) ); })():cljs.core.assoc.call(null,production,new cljs.core.Keyword(null,"tuples","tuples",-676032639),cljs.core.PersistentVector.EMPTY)); return cljs.core.update_in.call(null,context__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"rels","rels",1770187185)], null),cljs.core.conj,new_rel); }); datascript.query.bind_by_fn = (function datascript$query$bind_by_fn(context,clause){ var vec__23548 = clause; var vec__23551 = cljs.core.nth.call(null,vec__23548,(0),null); var seq__23552 = cljs.core.seq.call(null,vec__23551); var first__23553 = cljs.core.first.call(null,seq__23552); var seq__23552__$1 = cljs.core.next.call(null,seq__23552); var f = first__23553; var args = seq__23552__$1; var out = cljs.core.nth.call(null,vec__23548,(1),null); var binding = datascript.parser.parse_binding.call(null,out); var fun = (function (){var or__15219__auto__ = cljs.core.get.call(null,datascript.query.built_ins,f); if(cljs.core.truth_(or__15219__auto__)){ return or__15219__auto__; } else { var or__15219__auto____$1 = datascript.query.context_resolve_val.call(null,context,f); if(cljs.core.truth_(or__15219__auto____$1)){ return or__15219__auto____$1; } else { var or__15219__auto____$2 = datascript.query.resolve_sym.call(null,f); if(cljs.core.truth_(or__15219__auto____$2)){ return or__15219__auto____$2; } else { if((datascript.query.rel_with_attr.call(null,context,f) == null)){ throw cljs.core.ex_info.call(null,[cljs.core.str("Unknown function '"),cljs.core.str(f),cljs.core.str(" in "),cljs.core.str(clause)].join(''),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("query","where","query/where",-1935159429),new cljs.core.Keyword(null,"form","form",-1624062471),clause,new cljs.core.Keyword(null,"var","var",-769682797),f], null)); } else { return null; } } } } })(); var vec__23554 = datascript.query.rel_prod_by_attrs.call(null,context,cljs.core.filter.call(null,cljs.core.symbol_QMARK_,args)); var context__$1 = cljs.core.nth.call(null,vec__23554,(0),null); var production = cljs.core.nth.call(null,vec__23554,(1),null); var new_rel = (cljs.core.truth_(fun)?(function (){var tuple_fn = datascript.query._call_fn.call(null,context__$1,production,fun,args); var rels = (function (){var iter__16002__auto__ = ((function (tuple_fn,vec__23548,vec__23551,seq__23552,first__23553,seq__23552__$1,f,args,out,binding,fun,vec__23554,context__$1,production){ return (function datascript$query$bind_by_fn_$_iter__23557(s__23558){ return (new cljs.core.LazySeq(null,((function (tuple_fn,vec__23548,vec__23551,seq__23552,first__23553,seq__23552__$1,f,args,out,binding,fun,vec__23554,context__$1,production){ return (function (){ var s__23558__$1 = s__23558; while(true){ var temp__4657__auto__ = cljs.core.seq.call(null,s__23558__$1); if(temp__4657__auto__){ var s__23558__$2 = temp__4657__auto__; if(cljs.core.chunked_seq_QMARK_.call(null,s__23558__$2)){ var c__16000__auto__ = cljs.core.chunk_first.call(null,s__23558__$2); var size__16001__auto__ = cljs.core.count.call(null,c__16000__auto__); var b__23560 = cljs.core.chunk_buffer.call(null,size__16001__auto__); if((function (){var i__23559 = (0); while(true){ if((i__23559 < size__16001__auto__)){ var tuple = cljs.core._nth.call(null,c__16000__auto__,i__23559); var val = tuple_fn.call(null,tuple); if(!((val == null))){ cljs.core.chunk_append.call(null,b__23560,datascript.query.prod_rel.call(null,(new datascript.query.Relation(new cljs.core.Keyword(null,"attrs","attrs",-2090668713).cljs$core$IFn$_invoke$arity$1(production),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [tuple], null),null,null,null)),datascript.query.in__GT_rel.call(null,binding,val))); var G__23561 = (i__23559 + (1)); i__23559 = G__23561; continue; } else { var G__23562 = (i__23559 + (1)); i__23559 = G__23562; continue; } } else { return true; } break; } })()){ return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__23560),datascript$query$bind_by_fn_$_iter__23557.call(null,cljs.core.chunk_rest.call(null,s__23558__$2))); } else { return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__23560),null); } } else { var tuple = cljs.core.first.call(null,s__23558__$2); var val = tuple_fn.call(null,tuple); if(!((val == null))){ return cljs.core.cons.call(null,datascript.query.prod_rel.call(null,(new datascript.query.Relation(new cljs.core.Keyword(null,"attrs","attrs",-2090668713).cljs$core$IFn$_invoke$arity$1(production),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [tuple], null),null,null,null)),datascript.query.in__GT_rel.call(null,binding,val)),datascript$query$bind_by_fn_$_iter__23557.call(null,cljs.core.rest.call(null,s__23558__$2))); } else { var G__23563 = cljs.core.rest.call(null,s__23558__$2); s__23558__$1 = G__23563; continue; } } } else { return null; } break; } });})(tuple_fn,vec__23548,vec__23551,seq__23552,first__23553,seq__23552__$1,f,args,out,binding,fun,vec__23554,context__$1,production)) ,null,null)); });})(tuple_fn,vec__23548,vec__23551,seq__23552,first__23553,seq__23552__$1,f,args,out,binding,fun,vec__23554,context__$1,production)) ; return iter__16002__auto__.call(null,new cljs.core.Keyword(null,"tuples","tuples",-676032639).cljs$core$IFn$_invoke$arity$1(production)); })(); if(cljs.core.empty_QMARK_.call(null,rels)){ return datascript.query.prod_rel.call(null,production,datascript.query.empty_rel.call(null,binding)); } else { return cljs.core.reduce.call(null,datascript.query.sum_rel,rels); } })():datascript.query.prod_rel.call(null,cljs.core.assoc.call(null,production,new cljs.core.Keyword(null,"tuples","tuples",-676032639),cljs.core.PersistentVector.EMPTY),datascript.query.empty_rel.call(null,binding))); return cljs.core.update_in.call(null,context__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"rels","rels",1770187185)], null),datascript.query.collapse_rels,new_rel); }); datascript.query.rule_QMARK_ = (function datascript$query$rule_QMARK_(context,clause){ return (cljs.core.sequential_QMARK_.call(null,clause)) && (cljs.core.contains_QMARK_.call(null,new cljs.core.Keyword(null,"rules","rules",1198912366).cljs$core$IFn$_invoke$arity$1(context),(cljs.core.truth_(datascript.query.source_QMARK_.call(null,cljs.core.first.call(null,clause)))?cljs.core.second.call(null,clause):cljs.core.first.call(null,clause)))); }); datascript.query.rule_seqid = cljs.core.atom.call(null,(0)); datascript.query.expand_rule = (function datascript$query$expand_rule(clause,context,used_args){ var vec__23596 = clause; var seq__23597 = cljs.core.seq.call(null,vec__23596); var first__23598 = cljs.core.first.call(null,seq__23597); var seq__23597__$1 = cljs.core.next.call(null,seq__23597); var rule = first__23598; var call_args = seq__23597__$1; var seqid = cljs.core.swap_BANG_.call(null,datascript.query.rule_seqid,cljs.core.inc); var branches = cljs.core.get.call(null,new cljs.core.Keyword(null,"rules","rules",1198912366).cljs$core$IFn$_invoke$arity$1(context),rule); var iter__16002__auto__ = ((function (vec__23596,seq__23597,first__23598,seq__23597__$1,rule,call_args,seqid,branches){ return (function datascript$query$expand_rule_$_iter__23599(s__23600){ return (new cljs.core.LazySeq(null,((function (vec__23596,seq__23597,first__23598,seq__23597__$1,rule,call_args,seqid,branches){ return (function (){ var s__23600__$1 = s__23600; while(true){ var temp__4657__auto__ = cljs.core.seq.call(null,s__23600__$1); if(temp__4657__auto__){ var s__23600__$2 = temp__4657__auto__; if(cljs.core.chunked_seq_QMARK_.call(null,s__23600__$2)){ var c__16000__auto__ = cljs.core.chunk_first.call(null,s__23600__$2); var size__16001__auto__ = cljs.core.count.call(null,c__16000__auto__); var b__23602 = cljs.core.chunk_buffer.call(null,size__16001__auto__); if((function (){var i__23601 = (0); while(true){ if((i__23601 < size__16001__auto__)){ var branch = cljs.core._nth.call(null,c__16000__auto__,i__23601); var vec__23615 = branch; var seq__23616 = cljs.core.seq.call(null,vec__23615); var first__23617 = cljs.core.first.call(null,seq__23616); var seq__23616__$1 = cljs.core.next.call(null,seq__23616); var vec__23618 = first__23617; var seq__23619 = cljs.core.seq.call(null,vec__23618); var first__23620 = cljs.core.first.call(null,seq__23619); var seq__23619__$1 = cljs.core.next.call(null,seq__23619); var _ = first__23620; var rule_args = seq__23619__$1; var clauses = seq__23616__$1; var replacements = cljs.core.zipmap.call(null,rule_args,call_args); cljs.core.chunk_append.call(null,b__23602,clojure.walk.postwalk.call(null,((function (i__23601,vec__23615,seq__23616,first__23617,seq__23616__$1,vec__23618,seq__23619,first__23620,seq__23619__$1,_,rule_args,clauses,replacements,branch,c__16000__auto__,size__16001__auto__,b__23602,s__23600__$2,temp__4657__auto__,vec__23596,seq__23597,first__23598,seq__23597__$1,rule,call_args,seqid,branches){ return (function (p1__23564_SHARP_){ if(cljs.core.truth_(datascript.query.free_var_QMARK_.call(null,p1__23564_SHARP_))){ var x__19623__auto__ = replacements.call(null,p1__23564_SHARP_); if((x__19623__auto__ == null)){ return cljs.core.symbol.call(null,[cljs.core.str(cljs.core.name.call(null,p1__23564_SHARP_)),cljs.core.str("__auto__"),cljs.core.str(seqid)].join('')); } else { return x__19623__auto__; } } else { return p1__23564_SHARP_; } });})(i__23601,vec__23615,seq__23616,first__23617,seq__23616__$1,vec__23618,seq__23619,first__23620,seq__23619__$1,_,rule_args,clauses,replacements,branch,c__16000__auto__,size__16001__auto__,b__23602,s__23600__$2,temp__4657__auto__,vec__23596,seq__23597,first__23598,seq__23597__$1,rule,call_args,seqid,branches)) ,clauses)); var G__23627 = (i__23601 + (1)); i__23601 = G__23627; continue; } else { return true; } break; } })()){ return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__23602),datascript$query$expand_rule_$_iter__23599.call(null,cljs.core.chunk_rest.call(null,s__23600__$2))); } else { return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__23602),null); } } else { var branch = cljs.core.first.call(null,s__23600__$2); var vec__23621 = branch; var seq__23622 = cljs.core.seq.call(null,vec__23621); var first__23623 = cljs.core.first.call(null,seq__23622); var seq__23622__$1 = cljs.core.next.call(null,seq__23622); var vec__23624 = first__23623; var seq__23625 = cljs.core.seq.call(null,vec__23624); var first__23626 = cljs.core.first.call(null,seq__23625); var seq__23625__$1 = cljs.core.next.call(null,seq__23625); var _ = first__23626; var rule_args = seq__23625__$1; var clauses = seq__23622__$1; var replacements = cljs.core.zipmap.call(null,rule_args,call_args); return cljs.core.cons.call(null,clojure.walk.postwalk.call(null,((function (vec__23621,seq__23622,first__23623,seq__23622__$1,vec__23624,seq__23625,first__23626,seq__23625__$1,_,rule_args,clauses,replacements,branch,s__23600__$2,temp__4657__auto__,vec__23596,seq__23597,first__23598,seq__23597__$1,rule,call_args,seqid,branches){ return (function (p1__23564_SHARP_){ if(cljs.core.truth_(datascript.query.free_var_QMARK_.call(null,p1__23564_SHARP_))){ var x__19623__auto__ = replacements.call(null,p1__23564_SHARP_); if((x__19623__auto__ == null)){ return cljs.core.symbol.call(null,[cljs.core.str(cljs.core.name.call(null,p1__23564_SHARP_)),cljs.core.str("__auto__"),cljs.core.str(seqid)].join('')); } else { return x__19623__auto__; } } else { return p1__23564_SHARP_; } });})(vec__23621,seq__23622,first__23623,seq__23622__$1,vec__23624,seq__23625,first__23626,seq__23625__$1,_,rule_args,clauses,replacements,branch,s__23600__$2,temp__4657__auto__,vec__23596,seq__23597,first__23598,seq__23597__$1,rule,call_args,seqid,branches)) ,clauses),datascript$query$expand_rule_$_iter__23599.call(null,cljs.core.rest.call(null,s__23600__$2))); } } else { return null; } break; } });})(vec__23596,seq__23597,first__23598,seq__23597__$1,rule,call_args,seqid,branches)) ,null,null)); });})(vec__23596,seq__23597,first__23598,seq__23597__$1,rule,call_args,seqid,branches)) ; return iter__16002__auto__.call(null,branches); }); datascript.query.remove_pairs = (function datascript$query$remove_pairs(xs,ys){ var pairs = cljs.core.remove.call(null,(function (p__23632){ var vec__23633 = p__23632; var x = cljs.core.nth.call(null,vec__23633,(0),null); var y = cljs.core.nth.call(null,vec__23633,(1),null); return cljs.core._EQ_.call(null,x,y); }),cljs.core.map.call(null,cljs.core.vector,xs,ys)); return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.map.call(null,cljs.core.first,pairs),cljs.core.map.call(null,cljs.core.second,pairs)], null); }); datascript.query.rule_gen_guards = (function datascript$query$rule_gen_guards(rule_clause,used_args){ var vec__23655 = rule_clause; var seq__23656 = cljs.core.seq.call(null,vec__23655); var first__23657 = cljs.core.first.call(null,seq__23656); var seq__23656__$1 = cljs.core.next.call(null,seq__23656); var rule = first__23657; var call_args = seq__23656__$1; var prev_call_args = cljs.core.get.call(null,used_args,rule); var iter__16002__auto__ = ((function (vec__23655,seq__23656,first__23657,seq__23656__$1,rule,call_args,prev_call_args){ return (function datascript$query$rule_gen_guards_$_iter__23658(s__23659){ return (new cljs.core.LazySeq(null,((function (vec__23655,seq__23656,first__23657,seq__23656__$1,rule,call_args,prev_call_args){ return (function (){ var s__23659__$1 = s__23659; while(true){ var temp__4657__auto__ = cljs.core.seq.call(null,s__23659__$1); if(temp__4657__auto__){ var s__23659__$2 = temp__4657__auto__; if(cljs.core.chunked_seq_QMARK_.call(null,s__23659__$2)){ var c__16000__auto__ = cljs.core.chunk_first.call(null,s__23659__$2); var size__16001__auto__ = cljs.core.count.call(null,c__16000__auto__); var b__23661 = cljs.core.chunk_buffer.call(null,size__16001__auto__); if((function (){var i__23660 = (0); while(true){ if((i__23660 < size__16001__auto__)){ var prev_args = cljs.core._nth.call(null,c__16000__auto__,i__23660); var vec__23668 = datascript.query.remove_pairs.call(null,call_args,prev_args); var call_args__$1 = cljs.core.nth.call(null,vec__23668,(0),null); var prev_args__$1 = cljs.core.nth.call(null,vec__23668,(1),null); cljs.core.chunk_append.call(null,b__23661,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.concat.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"-differ?","-differ?",1465687357,null)], null),call_args__$1,prev_args__$1)], null)); var G__23674 = (i__23660 + (1)); i__23660 = G__23674; continue; } else { return true; } break; } })()){ return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__23661),datascript$query$rule_gen_guards_$_iter__23658.call(null,cljs.core.chunk_rest.call(null,s__23659__$2))); } else { return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__23661),null); } } else { var prev_args = cljs.core.first.call(null,s__23659__$2); var vec__23671 = datascript.query.remove_pairs.call(null,call_args,prev_args); var call_args__$1 = cljs.core.nth.call(null,vec__23671,(0),null); var prev_args__$1 = cljs.core.nth.call(null,vec__23671,(1),null); return cljs.core.cons.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.concat.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"-differ?","-differ?",1465687357,null)], null),call_args__$1,prev_args__$1)], null),datascript$query$rule_gen_guards_$_iter__23658.call(null,cljs.core.rest.call(null,s__23659__$2))); } } else { return null; } break; } });})(vec__23655,seq__23656,first__23657,seq__23656__$1,rule,call_args,prev_call_args)) ,null,null)); });})(vec__23655,seq__23656,first__23657,seq__23656__$1,rule,call_args,prev_call_args)) ; return iter__16002__auto__.call(null,prev_call_args); }); datascript.query.walk_collect = (function datascript$query$walk_collect(form,pred){ var res = cljs.core.atom.call(null,cljs.core.PersistentVector.EMPTY); clojure.walk.postwalk.call(null,((function (res){ return (function (p1__23675_SHARP_){ if(cljs.core.truth_(pred.call(null,p1__23675_SHARP_))){ cljs.core.swap_BANG_.call(null,res,cljs.core.conj,p1__23675_SHARP_); } else { } return p1__23675_SHARP_; });})(res)) ,form); return cljs.core.deref.call(null,res); }); datascript.query.split_guards = (function datascript$query$split_guards(clauses,guards){ var bound_vars = cljs.core.set.call(null,datascript.query.walk_collect.call(null,clauses,datascript.query.free_var_QMARK_)); var pred = ((function (bound_vars){ return (function (p__23683){ var vec__23684 = p__23683; var vec__23687 = cljs.core.nth.call(null,vec__23684,(0),null); var seq__23688 = cljs.core.seq.call(null,vec__23687); var first__23689 = cljs.core.first.call(null,seq__23688); var seq__23688__$1 = cljs.core.next.call(null,seq__23688); var _ = first__23689; var vars = seq__23688__$1; return cljs.core.every_QMARK_.call(null,bound_vars,vars); });})(bound_vars)) ; return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.filter.call(null,pred,guards),cljs.core.remove.call(null,pred,guards)], null); }); datascript.query.solve_rule = (function datascript$query$solve_rule(context,clause){ var final_attrs = cljs.core.filter.call(null,datascript.query.free_var_QMARK_,clause); var final_attrs_map = cljs.core.zipmap.call(null,final_attrs,cljs.core.range.call(null)); var solve = ((function (final_attrs,final_attrs_map){ return (function (prefix_context,clauses){ return cljs.core.reduce.call(null,datascript.query._resolve_clause,prefix_context,clauses); });})(final_attrs,final_attrs_map)) ; var empty_rels_QMARK_ = ((function (final_attrs,final_attrs_map,solve){ return (function (context__$1){ return cljs.core.some.call(null,((function (final_attrs,final_attrs_map,solve){ return (function (p1__23690_SHARP_){ return cljs.core.empty_QMARK_.call(null,new cljs.core.Keyword(null,"tuples","tuples",-676032639).cljs$core$IFn$_invoke$arity$1(p1__23690_SHARP_)); });})(final_attrs,final_attrs_map,solve)) ,new cljs.core.Keyword(null,"rels","rels",1770187185).cljs$core$IFn$_invoke$arity$1(context__$1)); });})(final_attrs,final_attrs_map,solve)) ; var stack = (function (){var x__16056__auto__ = new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,"prefix-clauses","prefix-clauses",1294180028),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,"prefix-context","prefix-context",-1269613591),context,new cljs.core.Keyword(null,"clauses","clauses",1454841241),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [clause], null),new cljs.core.Keyword(null,"used-args","used-args",23596256),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,"pending-guards","pending-guards",-1255527308),cljs.core.PersistentArrayMap.EMPTY], null); return cljs.core._conj.call(null,cljs.core.List.EMPTY,x__16056__auto__); })(); var rel = (new datascript.query.Relation(final_attrs_map,cljs.core.PersistentVector.EMPTY,null,null,null)); while(true){ var temp__4655__auto__ = cljs.core.first.call(null,stack); if(cljs.core.truth_(temp__4655__auto__)){ var frame = temp__4655__auto__; var vec__23709 = cljs.core.split_with.call(null,((function (stack,rel,frame,temp__4655__auto__,final_attrs,final_attrs_map,solve,empty_rels_QMARK_){ return (function (p1__23691_SHARP_){ return cljs.core.not.call(null,datascript.query.rule_QMARK_.call(null,context,p1__23691_SHARP_)); });})(stack,rel,frame,temp__4655__auto__,final_attrs,final_attrs_map,solve,empty_rels_QMARK_)) ,new cljs.core.Keyword(null,"clauses","clauses",1454841241).cljs$core$IFn$_invoke$arity$1(frame)); var clauses = cljs.core.nth.call(null,vec__23709,(0),null); var vec__23712 = cljs.core.nth.call(null,vec__23709,(1),null); var seq__23713 = cljs.core.seq.call(null,vec__23712); var first__23714 = cljs.core.first.call(null,seq__23713); var seq__23713__$1 = cljs.core.next.call(null,seq__23713); var rule_clause = first__23714; var next_clauses = seq__23713__$1; if((rule_clause == null)){ var context__$1 = solve.call(null,new cljs.core.Keyword(null,"prefix-context","prefix-context",-1269613591).cljs$core$IFn$_invoke$arity$1(frame),clauses); var tuples = datascript.query._collect.call(null,context__$1,final_attrs); var new_rel = (new datascript.query.Relation(final_attrs_map,tuples,null,null,null)); var G__23725 = cljs.core.next.call(null,stack); var G__23726 = datascript.query.sum_rel.call(null,rel,new_rel); stack = G__23725; rel = G__23726; continue; } else { var vec__23715 = rule_clause; var seq__23716 = cljs.core.seq.call(null,vec__23715); var first__23717 = cljs.core.first.call(null,seq__23716); var seq__23716__$1 = cljs.core.next.call(null,seq__23716); var rule = first__23717; var call_args = seq__23716__$1; var guards = datascript.query.rule_gen_guards.call(null,rule_clause,new cljs.core.Keyword(null,"used-args","used-args",23596256).cljs$core$IFn$_invoke$arity$1(frame)); var vec__23718 = datascript.query.split_guards.call(null,cljs.core.concat.call(null,new cljs.core.Keyword(null,"prefix-clauses","prefix-clauses",1294180028).cljs$core$IFn$_invoke$arity$1(frame),clauses),cljs.core.concat.call(null,guards,new cljs.core.Keyword(null,"pending-guards","pending-guards",-1255527308).cljs$core$IFn$_invoke$arity$1(frame))); var active_gs = cljs.core.nth.call(null,vec__23718,(0),null); var pending_gs = cljs.core.nth.call(null,vec__23718,(1),null); if(cljs.core.truth_(cljs.core.some.call(null,((function (stack,rel,vec__23715,seq__23716,first__23717,seq__23716__$1,rule,call_args,guards,vec__23718,active_gs,pending_gs,vec__23709,clauses,vec__23712,seq__23713,first__23714,seq__23713__$1,rule_clause,next_clauses,frame,temp__4655__auto__,final_attrs,final_attrs_map,solve,empty_rels_QMARK_){ return (function (p1__23692_SHARP_){ return cljs.core._EQ_.call(null,p1__23692_SHARP_,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.list(new cljs.core.Symbol(null,"-differ?","-differ?",1465687357,null))], null)); });})(stack,rel,vec__23715,seq__23716,first__23717,seq__23716__$1,rule,call_args,guards,vec__23718,active_gs,pending_gs,vec__23709,clauses,vec__23712,seq__23713,first__23714,seq__23713__$1,rule_clause,next_clauses,frame,temp__4655__auto__,final_attrs,final_attrs_map,solve,empty_rels_QMARK_)) ,active_gs))){ var G__23727 = cljs.core.next.call(null,stack); var G__23728 = rel; stack = G__23727; rel = G__23728; continue; } else { var prefix_clauses = cljs.core.concat.call(null,clauses,active_gs); var prefix_context = solve.call(null,new cljs.core.Keyword(null,"prefix-context","prefix-context",-1269613591).cljs$core$IFn$_invoke$arity$1(frame),prefix_clauses); if(cljs.core.truth_(empty_rels_QMARK_.call(null,prefix_context))){ var G__23729 = cljs.core.next.call(null,stack); var G__23730 = rel; stack = G__23729; rel = G__23730; continue; } else { var used_args = cljs.core.assoc.call(null,new cljs.core.Keyword(null,"used-args","used-args",23596256).cljs$core$IFn$_invoke$arity$1(frame),rule,cljs.core.conj.call(null,cljs.core.get.call(null,new cljs.core.Keyword(null,"used-args","used-args",23596256).cljs$core$IFn$_invoke$arity$1(frame),rule,cljs.core.PersistentVector.EMPTY),call_args)); var branches = datascript.query.expand_rule.call(null,rule_clause,context,used_args); var G__23731 = cljs.core.concat.call(null,(function (){var iter__16002__auto__ = ((function (stack,rel,used_args,branches,prefix_clauses,prefix_context,vec__23715,seq__23716,first__23717,seq__23716__$1,rule,call_args,guards,vec__23718,active_gs,pending_gs,vec__23709,clauses,vec__23712,seq__23713,first__23714,seq__23713__$1,rule_clause,next_clauses,frame,temp__4655__auto__,final_attrs,final_attrs_map,solve,empty_rels_QMARK_){ return (function datascript$query$solve_rule_$_iter__23721(s__23722){ return (new cljs.core.LazySeq(null,((function (stack,rel,used_args,branches,prefix_clauses,prefix_context,vec__23715,seq__23716,first__23717,seq__23716__$1,rule,call_args,guards,vec__23718,active_gs,pending_gs,vec__23709,clauses,vec__23712,seq__23713,first__23714,seq__23713__$1,rule_clause,next_clauses,frame,temp__4655__auto__,final_attrs,final_attrs_map,solve,empty_rels_QMARK_){ return (function (){ var s__23722__$1 = s__23722; while(true){ var temp__4657__auto__ = cljs.core.seq.call(null,s__23722__$1); if(temp__4657__auto__){ var s__23722__$2 = temp__4657__auto__; if(cljs.core.chunked_seq_QMARK_.call(null,s__23722__$2)){ var c__16000__auto__ = cljs.core.chunk_first.call(null,s__23722__$2); var size__16001__auto__ = cljs.core.count.call(null,c__16000__auto__); var b__23724 = cljs.core.chunk_buffer.call(null,size__16001__auto__); if((function (){var i__23723 = (0); while(true){ if((i__23723 < size__16001__auto__)){ var branch = cljs.core._nth.call(null,c__16000__auto__,i__23723); cljs.core.chunk_append.call(null,b__23724,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,"prefix-clauses","prefix-clauses",1294180028),prefix_clauses,new cljs.core.Keyword(null,"prefix-context","prefix-context",-1269613591),prefix_context,new cljs.core.Keyword(null,"clauses","clauses",1454841241),datascript.query.concatv.call(null,branch,next_clauses),new cljs.core.Keyword(null,"used-args","used-args",23596256),used_args,new cljs.core.Keyword(null,"pending-guards","pending-guards",-1255527308),pending_gs], null)); var G__23733 = (i__23723 + (1)); i__23723 = G__23733; continue; } else { return true; } break; } })()){ return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__23724),datascript$query$solve_rule_$_iter__23721.call(null,cljs.core.chunk_rest.call(null,s__23722__$2))); } else { return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__23724),null); } } else { var branch = cljs.core.first.call(null,s__23722__$2); return cljs.core.cons.call(null,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,"prefix-clauses","prefix-clauses",1294180028),prefix_clauses,new cljs.core.Keyword(null,"prefix-context","prefix-context",-1269613591),prefix_context,new cljs.core.Keyword(null,"clauses","clauses",1454841241),datascript.query.concatv.call(null,branch,next_clauses),new cljs.core.Keyword(null,"used-args","used-args",23596256),used_args,new cljs.core.Keyword(null,"pending-guards","pending-guards",-1255527308),pending_gs], null),datascript$query$solve_rule_$_iter__23721.call(null,cljs.core.rest.call(null,s__23722__$2))); } } else { return null; } break; } });})(stack,rel,used_args,branches,prefix_clauses,prefix_context,vec__23715,seq__23716,first__23717,seq__23716__$1,rule,call_args,guards,vec__23718,active_gs,pending_gs,vec__23709,clauses,vec__23712,seq__23713,first__23714,seq__23713__$1,rule_clause,next_clauses,frame,temp__4655__auto__,final_attrs,final_attrs_map,solve,empty_rels_QMARK_)) ,null,null)); });})(stack,rel,used_args,branches,prefix_clauses,prefix_context,vec__23715,seq__23716,first__23717,seq__23716__$1,rule,call_args,guards,vec__23718,active_gs,pending_gs,vec__23709,clauses,vec__23712,seq__23713,first__23714,seq__23713__$1,rule_clause,next_clauses,frame,temp__4655__auto__,final_attrs,final_attrs_map,solve,empty_rels_QMARK_)) ; return iter__16002__auto__.call(null,branches); })(),cljs.core.next.call(null,stack)); var G__23732 = rel; stack = G__23731; rel = G__23732; continue; } } } } else { return rel; } break; } }); datascript.query.resolve_pattern_lookup_refs = (function datascript$query$resolve_pattern_lookup_refs(source,pattern){ if(((!((source == null)))?(((false) || ((cljs.core.PROTOCOL_SENTINEL === source.datascript$db$IDB$)))?true:(((!source.cljs$lang$protocol_mask$partition$))?cljs.core.native_satisfies_QMARK_.call(null,datascript.db.IDB,source):false)):cljs.core.native_satisfies_QMARK_.call(null,datascript.db.IDB,source))){ var vec__23739 = pattern; var e = cljs.core.nth.call(null,vec__23739,(0),null); var a = cljs.core.nth.call(null,vec__23739,(1),null); var v = cljs.core.nth.call(null,vec__23739,(2),null); var tx = cljs.core.nth.call(null,vec__23739,(3),null); return cljs.core.subvec.call(null,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [(cljs.core.truth_(datascript.query.lookup_ref_QMARK_.call(null,e))?datascript.db.entid_strict.call(null,source,e):e),a,(cljs.core.truth_((function (){var and__15207__auto__ = v; if(cljs.core.truth_(and__15207__auto__)){ var and__15207__auto____$1 = datascript.query.attr_QMARK_.call(null,a); if(cljs.core.truth_(and__15207__auto____$1)){ var and__15207__auto____$2 = datascript.db.ref_QMARK_.call(null,source,a); if(and__15207__auto____$2){ return datascript.query.lookup_ref_QMARK_.call(null,v); } else { return and__15207__auto____$2; } } else { return and__15207__auto____$1; } } else { return and__15207__auto__; } })())?datascript.db.entid_strict.call(null,source,v):v),(cljs.core.truth_(datascript.query.lookup_ref_QMARK_.call(null,tx))?datascript.db.entid_strict.call(null,source,tx):tx)], null),(0),cljs.core.count.call(null,pattern)); } else { return pattern; } }); datascript.query.dynamic_lookup_attrs = (function datascript$query$dynamic_lookup_attrs(source,pattern){ var vec__23746 = pattern; var e = cljs.core.nth.call(null,vec__23746,(0),null); var a = cljs.core.nth.call(null,vec__23746,(1),null); var v = cljs.core.nth.call(null,vec__23746,(2),null); var tx = cljs.core.nth.call(null,vec__23746,(3),null); var G__23749 = cljs.core.PersistentHashSet.EMPTY; var G__23749__$1 = (cljs.core.truth_(datascript.query.free_var_QMARK_.call(null,e))?cljs.core.conj.call(null,G__23749,e):G__23749); var G__23749__$2 = (cljs.core.truth_(datascript.query.free_var_QMARK_.call(null,tx))?cljs.core.conj.call(null,G__23749__$1,tx):G__23749__$1); if(cljs.core.truth_((function (){var and__15207__auto__ = datascript.query.free_var_QMARK_.call(null,v); if(cljs.core.truth_(and__15207__auto__)){ return (cljs.core.not.call(null,datascript.query.free_var_QMARK_.call(null,a))) && (datascript.db.ref_QMARK_.call(null,source,a)); } else { return and__15207__auto__; } })())){ return cljs.core.conj.call(null,G__23749__$2,v); } else { return G__23749__$2; } }); datascript.query._resolve_clause = (function datascript$query$_resolve_clause(context,clause){ var pred__23759 = datascript.query.looks_like_QMARK_; var expr__23760 = clause; if(cljs.core.truth_(pred__23759.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.symbol_QMARK_,new cljs.core.Symbol(null,"*","*",345799209,null)], null)], null),expr__23760))){ return datascript.query.filter_by_pred.call(null,context,clause); } else { if(cljs.core.truth_(pred__23759.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.symbol_QMARK_,new cljs.core.Symbol(null,"*","*",345799209,null)], null),new cljs.core.Symbol(null,"_","_",-1201019570,null)], null),expr__23760))){ return datascript.query.bind_by_fn.call(null,context,clause); } else { if(cljs.core.truth_(pred__23759.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"*","*",345799209,null)], null),expr__23760))){ var vec__23762 = datascript.query.normalize_pattern_clause.call(null,clause); var seq__23763 = cljs.core.seq.call(null,vec__23762); var first__23764 = cljs.core.first.call(null,seq__23763); var seq__23763__$1 = cljs.core.next.call(null,seq__23763); var source_sym = first__23764; var pattern = seq__23763__$1; var source = cljs.core.get.call(null,new cljs.core.Keyword(null,"sources","sources",-321166424).cljs$core$IFn$_invoke$arity$1(context),source_sym); var pattern__$1 = datascript.query.resolve_pattern_lookup_refs.call(null,source,pattern); var relation = datascript.query.lookup_pattern.call(null,source,pattern__$1); var lookup_source_QMARK_ = ((!((source == null)))?(((false) || ((cljs.core.PROTOCOL_SENTINEL === source.datascript$db$IDB$)))?true:(((!source.cljs$lang$protocol_mask$partition$))?cljs.core.native_satisfies_QMARK_.call(null,datascript.db.IDB,source):false)):cljs.core.native_satisfies_QMARK_.call(null,datascript.db.IDB,source)); var _STAR_lookup_source_STAR_23766 = datascript.query._STAR_lookup_source_STAR_; var _STAR_lookup_attrs_STAR_23767 = datascript.query._STAR_lookup_attrs_STAR_; datascript.query._STAR_lookup_source_STAR_ = ((lookup_source_QMARK_)?source:null); datascript.query._STAR_lookup_attrs_STAR_ = ((lookup_source_QMARK_)?datascript.query.dynamic_lookup_attrs.call(null,source,pattern__$1):null); try{return cljs.core.update_in.call(null,context,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"rels","rels",1770187185)], null),datascript.query.collapse_rels,relation); }finally {datascript.query._STAR_lookup_attrs_STAR_ = _STAR_lookup_attrs_STAR_23767; datascript.query._STAR_lookup_source_STAR_ = _STAR_lookup_source_STAR_23766; }} else { throw (new Error([cljs.core.str("No matching clause: "),cljs.core.str(expr__23760)].join(''))); } } } }); datascript.query.resolve_clause = (function datascript$query$resolve_clause(context,clause){ if(cljs.core.truth_(datascript.query.rule_QMARK_.call(null,context,clause))){ var vec__23771 = (cljs.core.truth_(datascript.query.source_QMARK_.call(null,cljs.core.first.call(null,clause)))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first.call(null,clause),cljs.core.next.call(null,clause)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"$","$",-1580747756,null),clause], null)); var source = cljs.core.nth.call(null,vec__23771,(0),null); var rule = cljs.core.nth.call(null,vec__23771,(1),null); var source__$1 = cljs.core.get_in.call(null,context,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"sources","sources",-321166424),source], null)); var rel = datascript.query.solve_rule.call(null,cljs.core.assoc.call(null,context,new cljs.core.Keyword(null,"sources","sources",-321166424),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Symbol(null,"$","$",-1580747756,null),source__$1], null)),rule); return cljs.core.update_in.call(null,context,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"rels","rels",1770187185)], null),datascript.query.collapse_rels,rel); } else { return datascript.query._resolve_clause.call(null,context,clause); } }); datascript.query._q = (function datascript$query$_q(context,clauses){ return cljs.core.reduce.call(null,datascript.query.resolve_clause,context,clauses); }); datascript.query._collect = (function datascript$query$_collect(var_args){ var args23775 = []; var len__16327__auto___23784 = arguments.length; var i__16328__auto___23785 = (0); while(true){ if((i__16328__auto___23785 < len__16327__auto___23784)){ args23775.push((arguments[i__16328__auto___23785])); var G__23786 = (i__16328__auto___23785 + (1)); i__16328__auto___23785 = G__23786; continue; } else { } break; } var G__23777 = args23775.length; switch (G__23777) { case 2: return datascript.query._collect.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); break; case 3: return datascript.query._collect.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); break; default: throw (new Error([cljs.core.str("Invalid arity: "),cljs.core.str(args23775.length)].join(''))); } }); datascript.query._collect.cljs$core$IFn$_invoke$arity$2 = (function (context,symbols){ var rels = new cljs.core.Keyword(null,"rels","rels",1770187185).cljs$core$IFn$_invoke$arity$1(context); return datascript.query._collect.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [datascript.arrays.make_array.call(null,cljs.core.count.call(null,symbols))], null),rels,symbols); }); datascript.query._collect.cljs$core$IFn$_invoke$arity$3 = (function (acc,rels,symbols){ while(true){ var temp__4655__auto__ = cljs.core.first.call(null,rels); if(cljs.core.truth_(temp__4655__auto__)){ var rel = temp__4655__auto__; var keep_attrs = cljs.core.select_keys.call(null,new cljs.core.Keyword(null,"attrs","attrs",-2090668713).cljs$core$IFn$_invoke$arity$1(rel),symbols); if(cljs.core.empty_QMARK_.call(null,keep_attrs)){ var G__23788 = acc; var G__23789 = cljs.core.next.call(null,rels); var G__23790 = symbols; acc = G__23788; rels = G__23789; symbols = G__23790; continue; } else { var copy_map = cljs.core.to_array.call(null,cljs.core.map.call(null,((function (acc,rels,symbols,keep_attrs,rel,temp__4655__auto__){ return (function (p1__23774_SHARP_){ return cljs.core.get.call(null,keep_attrs,p1__23774_SHARP_); });})(acc,rels,symbols,keep_attrs,rel,temp__4655__auto__)) ,symbols)); var len = cljs.core.count.call(null,symbols); var G__23791 = (function (){var iter__16002__auto__ = ((function (acc,rels,symbols,copy_map,len,keep_attrs,rel,temp__4655__auto__){ return (function datascript$query$iter__23778(s__23779){ return (new cljs.core.LazySeq(null,((function (acc,rels,symbols,copy_map,len,keep_attrs,rel,temp__4655__auto__){ return (function (){ var s__23779__$1 = s__23779; while(true){ var temp__4657__auto__ = cljs.core.seq.call(null,s__23779__$1); if(temp__4657__auto__){ var xs__5205__auto__ = temp__4657__auto__; var t1 = cljs.core.first.call(null,xs__5205__auto__); var iterys__15998__auto__ = ((function (s__23779__$1,acc,rels,symbols,t1,xs__5205__auto__,temp__4657__auto__,copy_map,len,keep_attrs,rel,temp__4655__auto__){ return (function datascript$query$iter__23778_$_iter__23780(s__23781){ return (new cljs.core.LazySeq(null,((function (s__23779__$1,acc,rels,symbols,t1,xs__5205__auto__,temp__4657__auto__,copy_map,len,keep_attrs,rel,temp__4655__auto__){ return (function (){ var s__23781__$1 = s__23781; while(true){ var temp__4657__auto____$1 = cljs.core.seq.call(null,s__23781__$1); if(temp__4657__auto____$1){ var s__23781__$2 = temp__4657__auto____$1; if(cljs.core.chunked_seq_QMARK_.call(null,s__23781__$2)){ var c__16000__auto__ = cljs.core.chunk_first.call(null,s__23781__$2); var size__16001__auto__ = cljs.core.count.call(null,c__16000__auto__); var b__23783 = cljs.core.chunk_buffer.call(null,size__16001__auto__); if((function (){var i__23782 = (0); while(true){ if((i__23782 < size__16001__auto__)){ var t2 = cljs.core._nth.call(null,c__16000__auto__,i__23782); cljs.core.chunk_append.call(null,b__23783,(function (){var res = cljs.core.aclone.call(null,t1); var n__16137__auto___23794 = len; var i_23795 = (0); while(true){ if((i_23795 < n__16137__auto___23794)){ var temp__4657__auto___23796__$2 = (copy_map[i_23795]); if(cljs.core.truth_(temp__4657__auto___23796__$2)){ var idx_23797 = temp__4657__auto___23796__$2; (res[i_23795] = (t2[idx_23797])); } else { } var G__23798 = (i_23795 + (1)); i_23795 = G__23798; continue; } else { } break; } return res; })()); var G__23799 = (i__23782 + (1)); i__23782 = G__23799; continue; } else { return true; } break; } })()){ return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__23783),datascript$query$iter__23778_$_iter__23780.call(null,cljs.core.chunk_rest.call(null,s__23781__$2))); } else { return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__23783),null); } } else { var t2 = cljs.core.first.call(null,s__23781__$2); return cljs.core.cons.call(null,(function (){var res = cljs.core.aclone.call(null,t1); var n__16137__auto___23800 = len; var i_23801 = (0); while(true){ if((i_23801 < n__16137__auto___23800)){ var temp__4657__auto___23802__$2 = (copy_map[i_23801]); if(cljs.core.truth_(temp__4657__auto___23802__$2)){ var idx_23803 = temp__4657__auto___23802__$2; (res[i_23801] = (t2[idx_23803])); } else { } var G__23804 = (i_23801 + (1)); i_23801 = G__23804; continue; } else { } break; } return res; })(),datascript$query$iter__23778_$_iter__23780.call(null,cljs.core.rest.call(null,s__23781__$2))); } } else { return null; } break; } });})(s__23779__$1,acc,rels,symbols,t1,xs__5205__auto__,temp__4657__auto__,copy_map,len,keep_attrs,rel,temp__4655__auto__)) ,null,null)); });})(s__23779__$1,acc,rels,symbols,t1,xs__5205__auto__,temp__4657__auto__,copy_map,len,keep_attrs,rel,temp__4655__auto__)) ; var fs__15999__auto__ = cljs.core.seq.call(null,iterys__15998__auto__.call(null,new cljs.core.Keyword(null,"tuples","tuples",-676032639).cljs$core$IFn$_invoke$arity$1(rel))); if(fs__15999__auto__){ return cljs.core.concat.call(null,fs__15999__auto__,datascript$query$iter__23778.call(null,cljs.core.rest.call(null,s__23779__$1))); } else { var G__23805 = cljs.core.rest.call(null,s__23779__$1); s__23779__$1 = G__23805; continue; } } else { return null; } break; } });})(acc,rels,symbols,copy_map,len,keep_attrs,rel,temp__4655__auto__)) ,null,null)); });})(acc,rels,symbols,copy_map,len,keep_attrs,rel,temp__4655__auto__)) ; return iter__16002__auto__.call(null,acc); })(); var G__23792 = cljs.core.next.call(null,rels); var G__23793 = symbols; acc = G__23791; rels = G__23792; symbols = G__23793; continue; } } else { return acc; } break; } }); datascript.query._collect.cljs$lang$maxFixedArity = 3; datascript.query.collect = (function datascript$query$collect(context,symbols){ return cljs.core.set.call(null,cljs.core.map.call(null,cljs.core.vec,datascript.query._collect.call(null,context,symbols))); }); /** * @interface */ datascript.query.IContextResolve = function(){}; datascript.query._context_resolve = (function datascript$query$_context_resolve(var$,context){ if((!((var$ == null))) && (!((var$.datascript$query$IContextResolve$_context_resolve$arity$2 == null)))){ return var$.datascript$query$IContextResolve$_context_resolve$arity$2(var$,context); } else { var x__15882__auto__ = (((var$ == null))?null:var$); var m__15883__auto__ = (datascript.query._context_resolve[goog.typeOf(x__15882__auto__)]); if(!((m__15883__auto__ == null))){ return m__15883__auto__.call(null,var$,context); } else { var m__15883__auto____$1 = (datascript.query._context_resolve["_"]); if(!((m__15883__auto____$1 == null))){ return m__15883__auto____$1.call(null,var$,context); } else { throw cljs.core.missing_protocol.call(null,"IContextResolve.-context-resolve",var$); } } } }); datascript.parser.Variable.prototype.datascript$query$IContextResolve$ = cljs.core.PROTOCOL_SENTINEL; datascript.parser.Variable.prototype.datascript$query$IContextResolve$_context_resolve$arity$2 = (function (var$,context){ var var$__$1 = this; return datascript.query.context_resolve_val.call(null,context,var$__$1.symbol); }); datascript.parser.SrcVar.prototype.datascript$query$IContextResolve$ = cljs.core.PROTOCOL_SENTINEL; datascript.parser.SrcVar.prototype.datascript$query$IContextResolve$_context_resolve$arity$2 = (function (var$,context){ var var$__$1 = this; return cljs.core.get_in.call(null,context,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"sources","sources",-321166424),var$__$1.symbol], null)); }); datascript.parser.PlainSymbol.prototype.datascript$query$IContextResolve$ = cljs.core.PROTOCOL_SENTINEL; datascript.parser.PlainSymbol.prototype.datascript$query$IContextResolve$_context_resolve$arity$2 = (function (var$,_){ var var$__$1 = this; var or__15219__auto__ = cljs.core.get.call(null,datascript.query.built_in_aggregates,var$__$1.symbol); if(cljs.core.truth_(or__15219__auto__)){ return or__15219__auto__; } else { return datascript.query.resolve_sym.call(null,var$__$1.symbol); } }); datascript.parser.Constant.prototype.datascript$query$IContextResolve$ = cljs.core.PROTOCOL_SENTINEL; datascript.parser.Constant.prototype.datascript$query$IContextResolve$_context_resolve$arity$2 = (function (var$,_){ var var$__$1 = this; return var$__$1.value; }); datascript.query._aggregate = (function datascript$query$_aggregate(find_elements,context,tuples){ return cljs.core.mapv.call(null,(function (element,fixed_value,i){ if(cljs.core.truth_(datascript.parser.aggregate_QMARK_.call(null,element))){ var f = datascript.query._context_resolve.call(null,new cljs.core.Keyword(null,"fn","fn",-1175266204).cljs$core$IFn$_invoke$arity$1(element),context); var args = cljs.core.map.call(null,((function (f){ return (function (p1__23806_SHARP_){ return datascript.query._context_resolve.call(null,p1__23806_SHARP_,context); });})(f)) ,cljs.core.butlast.call(null,new cljs.core.Keyword(null,"args","args",1315556576).cljs$core$IFn$_invoke$arity$1(element))); var vals = cljs.core.map.call(null,((function (f,args){ return (function (p1__23807_SHARP_){ return cljs.core.nth.call(null,p1__23807_SHARP_,i); });})(f,args)) ,tuples); return cljs.core.apply.call(null,f,cljs.core.concat.call(null,args,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [vals], null))); } else { return fixed_value; } }),find_elements,cljs.core.first.call(null,tuples),cljs.core.range.call(null)); }); datascript.query.idxs_of = (function datascript$query$idxs_of(pred,coll){ return cljs.core.remove.call(null,cljs.core.nil_QMARK_,cljs.core.map.call(null,(function (p1__23808_SHARP_,p2__23809_SHARP_){ if(cljs.core.truth_(pred.call(null,p1__23808_SHARP_))){ return p2__23809_SHARP_; } else { return null; } }),coll,cljs.core.range.call(null))); }); datascript.query.aggregate = (function datascript$query$aggregate(find_elements,context,resultset){ var group_idxs = datascript.query.idxs_of.call(null,cljs.core.complement.call(null,datascript.parser.aggregate_QMARK_),find_elements); var group_fn = ((function (group_idxs){ return (function (tuple){ return cljs.core.map.call(null,((function (group_idxs){ return (function (p1__23810_SHARP_){ return cljs.core.nth.call(null,tuple,p1__23810_SHARP_); });})(group_idxs)) ,group_idxs); });})(group_idxs)) ; var grouped = cljs.core.group_by.call(null,group_fn,resultset); var iter__16002__auto__ = ((function (group_idxs,group_fn,grouped){ return (function datascript$query$aggregate_$_iter__23827(s__23828){ return (new cljs.core.LazySeq(null,((function (group_idxs,group_fn,grouped){ return (function (){ var s__23828__$1 = s__23828; while(true){ var temp__4657__auto__ = cljs.core.seq.call(null,s__23828__$1); if(temp__4657__auto__){ var s__23828__$2 = temp__4657__auto__; if(cljs.core.chunked_seq_QMARK_.call(null,s__23828__$2)){ var c__16000__auto__ = cljs.core.chunk_first.call(null,s__23828__$2); var size__16001__auto__ = cljs.core.count.call(null,c__16000__auto__); var b__23830 = cljs.core.chunk_buffer.call(null,size__16001__auto__); if((function (){var i__23829 = (0); while(true){ if((i__23829 < size__16001__auto__)){ var vec__23837 = cljs.core._nth.call(null,c__16000__auto__,i__23829); var _ = cljs.core.nth.call(null,vec__23837,(0),null); var tuples = cljs.core.nth.call(null,vec__23837,(1),null); cljs.core.chunk_append.call(null,b__23830,datascript.query._aggregate.call(null,find_elements,context,tuples)); var G__23843 = (i__23829 + (1)); i__23829 = G__23843; continue; } else { return true; } break; } })()){ return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__23830),datascript$query$aggregate_$_iter__23827.call(null,cljs.core.chunk_rest.call(null,s__23828__$2))); } else { return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__23830),null); } } else { var vec__23840 = cljs.core.first.call(null,s__23828__$2); var _ = cljs.core.nth.call(null,vec__23840,(0),null); var tuples = cljs.core.nth.call(null,vec__23840,(1),null); return cljs.core.cons.call(null,datascript.query._aggregate.call(null,find_elements,context,tuples),datascript$query$aggregate_$_iter__23827.call(null,cljs.core.rest.call(null,s__23828__$2))); } } else { return null; } break; } });})(group_idxs,group_fn,grouped)) ,null,null)); });})(group_idxs,group_fn,grouped)) ; return iter__16002__auto__.call(null,grouped); }); /** * @interface */ datascript.query.IPostProcess = function(){}; datascript.query._post_process = (function datascript$query$_post_process(find,tuples){ if((!((find == null))) && (!((find.datascript$query$IPostProcess$_post_process$arity$2 == null)))){ return find.datascript$query$IPostProcess$_post_process$arity$2(find,tuples); } else { var x__15882__auto__ = (((find == null))?null:find); var m__15883__auto__ = (datascript.query._post_process[goog.typeOf(x__15882__auto__)]); if(!((m__15883__auto__ == null))){ return m__15883__auto__.call(null,find,tuples); } else { var m__15883__auto____$1 = (datascript.query._post_process["_"]); if(!((m__15883__auto____$1 == null))){ return m__15883__auto____$1.call(null,find,tuples); } else { throw cljs.core.missing_protocol.call(null,"IPostProcess.-post-process",find); } } } }); datascript.parser.FindRel.prototype.datascript$query$IPostProcess$ = cljs.core.PROTOCOL_SENTINEL; datascript.parser.FindRel.prototype.datascript$query$IPostProcess$_post_process$arity$2 = (function (_,tuples){ var ___$1 = this; return tuples; }); datascript.parser.FindColl.prototype.datascript$query$IPostProcess$ = cljs.core.PROTOCOL_SENTINEL; datascript.parser.FindColl.prototype.datascript$query$IPostProcess$_post_process$arity$2 = (function (_,tuples){ var ___$1 = this; return cljs.core.into.call(null,cljs.core.PersistentVector.EMPTY,cljs.core.map.call(null,cljs.core.first),tuples); }); datascript.parser.FindScalar.prototype.datascript$query$IPostProcess$ = cljs.core.PROTOCOL_SENTINEL; datascript.parser.FindScalar.prototype.datascript$query$IPostProcess$_post_process$arity$2 = (function (_,tuples){ var ___$1 = this; return cljs.core.ffirst.call(null,tuples); }); datascript.parser.FindTuple.prototype.datascript$query$IPostProcess$ = cljs.core.PROTOCOL_SENTINEL; datascript.parser.FindTuple.prototype.datascript$query$IPostProcess$_post_process$arity$2 = (function (_,tuples){ var ___$1 = this; return cljs.core.first.call(null,tuples); }); datascript.query.pull = (function datascript$query$pull(find_elements,context,resultset){ var resolved = (function (){var iter__16002__auto__ = (function datascript$query$pull_$_iter__23864(s__23865){ return (new cljs.core.LazySeq(null,(function (){ var s__23865__$1 = s__23865; while(true){ var temp__4657__auto__ = cljs.core.seq.call(null,s__23865__$1); if(temp__4657__auto__){ var s__23865__$2 = temp__4657__auto__; if(cljs.core.chunked_seq_QMARK_.call(null,s__23865__$2)){ var c__16000__auto__ = cljs.core.chunk_first.call(null,s__23865__$2); var size__16001__auto__ = cljs.core.count.call(null,c__16000__auto__); var b__23867 = cljs.core.chunk_buffer.call(null,size__16001__auto__); if((function (){var i__23866 = (0); while(true){ if((i__23866 < size__16001__auto__)){ var find = cljs.core._nth.call(null,c__16000__auto__,i__23866); cljs.core.chunk_append.call(null,b__23867,(cljs.core.truth_(datascript.parser.pull_QMARK_.call(null,find))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [datascript.query._context_resolve.call(null,new cljs.core.Keyword(null,"source","source",-433931539).cljs$core$IFn$_invoke$arity$1(find),context),datascript.pull_parser.parse_pull.call(null,datascript.query._context_resolve.call(null,new cljs.core.Keyword(null,"pattern","pattern",242135423).cljs$core$IFn$_invoke$arity$1(find),context))], null):null)); var G__23884 = (i__23866 + (1)); i__23866 = G__23884; continue; } else { return true; } break; } })()){ return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__23867),datascript$query$pull_$_iter__23864.call(null,cljs.core.chunk_rest.call(null,s__23865__$2))); } else { return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__23867),null); } } else { var find = cljs.core.first.call(null,s__23865__$2); return cljs.core.cons.call(null,(cljs.core.truth_(datascript.parser.pull_QMARK_.call(null,find))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [datascript.query._context_resolve.call(null,new cljs.core.Keyword(null,"source","source",-433931539).cljs$core$IFn$_invoke$arity$1(find),context),datascript.pull_parser.parse_pull.call(null,datascript.query._context_resolve.call(null,new cljs.core.Keyword(null,"pattern","pattern",242135423).cljs$core$IFn$_invoke$arity$1(find),context))], null):null),datascript$query$pull_$_iter__23864.call(null,cljs.core.rest.call(null,s__23865__$2))); } } else { return null; } break; } }),null,null)); }); return iter__16002__auto__.call(null,find_elements); })(); var iter__16002__auto__ = ((function (resolved){ return (function datascript$query$pull_$_iter__23868(s__23869){ return (new cljs.core.LazySeq(null,((function (resolved){ return (function (){ var s__23869__$1 = s__23869; while(true){ var temp__4657__auto__ = cljs.core.seq.call(null,s__23869__$1); if(temp__4657__auto__){ var s__23869__$2 = temp__4657__auto__; if(cljs.core.chunked_seq_QMARK_.call(null,s__23869__$2)){ var c__16000__auto__ = cljs.core.chunk_first.call(null,s__23869__$2); var size__16001__auto__ = cljs.core.count.call(null,c__16000__auto__); var b__23871 = cljs.core.chunk_buffer.call(null,size__16001__auto__); if((function (){var i__23870 = (0); while(true){ if((i__23870 < size__16001__auto__)){ var tuple = cljs.core._nth.call(null,c__16000__auto__,i__23870); cljs.core.chunk_append.call(null,b__23871,cljs.core.mapv.call(null,((function (i__23870,tuple,c__16000__auto__,size__16001__auto__,b__23871,s__23869__$2,temp__4657__auto__,resolved){ return (function (env,el){ if(cljs.core.truth_(env)){ var vec__23878 = env; var src = cljs.core.nth.call(null,vec__23878,(0),null); var spec = cljs.core.nth.call(null,vec__23878,(1),null); return datascript.pull_api.pull_spec.call(null,src,spec,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [el], null),false); } else { return el; } });})(i__23870,tuple,c__16000__auto__,size__16001__auto__,b__23871,s__23869__$2,temp__4657__auto__,resolved)) ,resolved,tuple)); var G__23885 = (i__23870 + (1)); i__23870 = G__23885; continue; } else { return true; } break; } })()){ return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__23871),datascript$query$pull_$_iter__23868.call(null,cljs.core.chunk_rest.call(null,s__23869__$2))); } else { return cljs.core.chunk_cons.call(null,cljs.core.chunk.call(null,b__23871),null); } } else { var tuple = cljs.core.first.call(null,s__23869__$2); return cljs.core.cons.call(null,cljs.core.mapv.call(null,((function (tuple,s__23869__$2,temp__4657__auto__,resolved){ return (function (env,el){ if(cljs.core.truth_(env)){ var vec__23881 = env; var src = cljs.core.nth.call(null,vec__23881,(0),null); var spec = cljs.core.nth.call(null,vec__23881,(1),null); return datascript.pull_api.pull_spec.call(null,src,spec,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [el], null),false); } else { return el; } });})(tuple,s__23869__$2,temp__4657__auto__,resolved)) ,resolved,tuple),datascript$query$pull_$_iter__23868.call(null,cljs.core.rest.call(null,s__23869__$2))); } } else { return null; } break; } });})(resolved)) ,null,null)); });})(resolved)) ; return iter__16002__auto__.call(null,resultset); }); datascript.query.query_cache = cljs.core.volatile_BANG_.call(null,datascript.lru.lru.call(null,datascript.query.lru_cache_size)); datascript.query.memoized_parse_query = (function datascript$query$memoized_parse_query(q){ var temp__4655__auto__ = cljs.core.get.call(null,cljs.core.deref.call(null,datascript.query.query_cache),q,null); if(cljs.core.truth_(temp__4655__auto__)){ var cached = temp__4655__auto__; return cached; } else { var qp = datascript.parser.parse_query.call(null,q); cljs.core._vreset_BANG_.call(null,datascript.query.query_cache,cljs.core.assoc.call(null,cljs.core._deref.call(null,datascript.query.query_cache),q,qp)); return qp; } }); datascript.query.q = (function datascript$query$q(var_args){ var args__16334__auto__ = []; var len__16327__auto___23891 = arguments.length; var i__16328__auto___23892 = (0); while(true){ if((i__16328__auto___23892 < len__16327__auto___23891)){ args__16334__auto__.push((arguments[i__16328__auto___23892])); var G__23893 = (i__16328__auto___23892 + (1)); i__16328__auto___23892 = G__23893; continue; } else { } break; } var argseq__16335__auto__ = ((((1) < args__16334__auto__.length))?(new cljs.core.IndexedSeq(args__16334__auto__.slice((1)),(0),null)):null); return datascript.query.q.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__16335__auto__); }); datascript.query.q.cljs$core$IFn$_invoke$arity$variadic = (function (q,inputs){ var parsed_q = datascript.query.memoized_parse_query.call(null,q); var find = new cljs.core.Keyword(null,"qfind","qfind",1529332972).cljs$core$IFn$_invoke$arity$1(parsed_q); var find_elements = datascript.parser.find_elements.call(null,find); var find_vars = datascript.parser.find_vars.call(null,find); var result_arity = cljs.core.count.call(null,find_elements); var with$ = new cljs.core.Keyword(null,"qwith","qwith",-45809392).cljs$core$IFn$_invoke$arity$1(parsed_q); var all_vars = cljs.core.concat.call(null,find_vars,cljs.core.map.call(null,new cljs.core.Keyword(null,"symbol","symbol",-1038572696),with$)); var q__$1 = (function (){var G__23889 = q; if(cljs.core.sequential_QMARK_.call(null,q)){ return datascript.parser.query__GT_map.call(null,G__23889); } else { return G__23889; } })(); var wheres = new cljs.core.Keyword(null,"where","where",-2044795965).cljs$core$IFn$_invoke$arity$1(q__$1); var context = datascript.query.resolve_ins.call(null,(new datascript.query.Context(cljs.core.PersistentVector.EMPTY,cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY,null,null,null)),new cljs.core.Keyword(null,"qin","qin",1372651151).cljs$core$IFn$_invoke$arity$1(parsed_q),inputs); var resultset = datascript.query.collect.call(null,datascript.query._q.call(null,context,wheres),all_vars); var G__23890 = resultset; var G__23890__$1 = (cljs.core.truth_(new cljs.core.Keyword(null,"with","with",-1536296876).cljs$core$IFn$_invoke$arity$1(q__$1))?cljs.core.mapv.call(null,((function (G__23890,parsed_q,find,find_elements,find_vars,result_arity,with$,all_vars,q__$1,wheres,context,resultset){ return (function (p1__23886_SHARP_){ return cljs.core.vec.call(null,cljs.core.subvec.call(null,p1__23886_SHARP_,(0),result_arity)); });})(G__23890,parsed_q,find,find_elements,find_vars,result_arity,with$,all_vars,q__$1,wheres,context,resultset)) ,G__23890):G__23890); var G__23890__$2 = (cljs.core.truth_(cljs.core.some.call(null,datascript.parser.aggregate_QMARK_,find_elements))?datascript.query.aggregate.call(null,find_elements,context,G__23890__$1):G__23890__$1); var G__23890__$3 = (cljs.core.truth_(cljs.core.some.call(null,datascript.parser.pull_QMARK_,find_elements))?datascript.query.pull.call(null,find_elements,context,G__23890__$2):G__23890__$2); return datascript.query._post_process.call(null,find,G__23890__$3); }); datascript.query.q.cljs$lang$maxFixedArity = (1); datascript.query.q.cljs$lang$applyTo = (function (seq23887){ var G__23888 = cljs.core.first.call(null,seq23887); var seq23887__$1 = cljs.core.next.call(null,seq23887); return datascript.query.q.cljs$core$IFn$_invoke$arity$variadic(G__23888,seq23887__$1); }); //# sourceMappingURL=query.js.map