UNPKG

@anysoftinc/anydb-sdk

Version:

AnyDB TypeScript SDK for querying and transacting with Datomic databases

953 lines (840 loc) 151 kB
var $CLJS = require("./cljs_env"); var $jscomp = $CLJS.$jscomp; var COMPILED = false; require("./cljs.core.js"); require("./cljs.reader.js"); require("./clojure.set.js"); require("./clojure.string.js"); require("./clojure.walk.js"); require("./datascript.built_ins.js"); require("./datascript.db.js"); require("./me.tonsky.persistent_sorted_set.arrays.js"); require("./datascript.lru.js"); require("./datascript.impl.entity.js"); require("./datascript.parser.js"); require("./datascript.pull_api.js"); require("./datascript.util.js"); var anydb=$CLJS.anydb || ($CLJS.anydb = {}); var clojure=$CLJS.clojure || ($CLJS.clojure = {}); var cljs=$CLJS.cljs || ($CLJS.cljs = {}); var goog=$CLJS.goog || ($CLJS.goog = {}); var datascript=$CLJS.datascript || ($CLJS.datascript = {}); var me=$CLJS.me || ($CLJS.me = {}); var extend_clj=$CLJS.extend_clj || ($CLJS.extend_clj = {}); $CLJS.SHADOW_ENV.setLoaded("datascript.query.js"); goog.provide('datascript.query'); datascript.query._STAR_query_cache_STAR_ = datascript.lru.cache((100)); /** * @constructor * @implements {cljs.core.IRecord} * @implements {cljs.core.IKVReduce} * @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$ = 2230716170; this.cljs$lang$protocol_mask$partition1$ = 139264; }); (datascript.query.Context.prototype.cljs$core$ILookup$_lookup$arity$2 = (function (this__5300__auto__,k__5301__auto__){ var self__ = this; var this__5300__auto____$1 = this; return this__5300__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5301__auto__,null); })); (datascript.query.Context.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__5302__auto__,k9251,else__5303__auto__){ var self__ = this; var this__5302__auto____$1 = this; var G__9255 = k9251; var G__9255__$1 = (((G__9255 instanceof cljs.core.Keyword))?G__9255.fqn:null); switch (G__9255__$1) { case "rels": return self__.rels; break; case "sources": return self__.sources; break; case "rules": return self__.rules; break; default: return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k9251,else__5303__auto__); } })); (datascript.query.Context.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = (function (this__5320__auto__,f__5321__auto__,init__5322__auto__){ var self__ = this; var this__5320__auto____$1 = this; return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5323__auto__,p__9256){ var vec__9257 = p__9256; var k__5324__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__9257,(0),null); var v__5325__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__9257,(1),null); return (f__5321__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5321__auto__.cljs$core$IFn$_invoke$arity$3(ret__5323__auto__,k__5324__auto__,v__5325__auto__) : f__5321__auto__.call(null,ret__5323__auto__,k__5324__auto__,v__5325__auto__)); }),init__5322__auto__,this__5320__auto____$1); })); (datascript.query.Context.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (this__5315__auto__,writer__5316__auto__,opts__5317__auto__){ var self__ = this; var this__5315__auto____$1 = this; var pr_pair__5318__auto__ = (function (keyval__5319__auto__){ return cljs.core.pr_sequential_writer(writer__5316__auto__,cljs.core.pr_writer,""," ","",opts__5317__auto__,keyval__5319__auto__); }); return cljs.core.pr_sequential_writer(writer__5316__auto__,pr_pair__5318__auto__,"#datascript.query.Context{",", ","}",opts__5317__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(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$_iterator$arity$1 = (function (G__9250){ var self__ = this; var G__9250__$1 = this; return (new cljs.core.RecordIter((0),G__9250__$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(self__.__extmap):cljs.core.nil_iter()))); })); (datascript.query.Context.prototype.cljs$core$IMeta$_meta$arity$1 = (function (this__5298__auto__){ var self__ = this; var this__5298__auto____$1 = this; return self__.__meta; })); (datascript.query.Context.prototype.cljs$core$ICloneable$_clone$arity$1 = (function (this__5295__auto__){ var self__ = this; var this__5295__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__5304__auto__){ var self__ = this; var this__5304__auto____$1 = this; return (3 + cljs.core.count(self__.__extmap)); })); (datascript.query.Context.prototype.cljs$core$IHash$_hash$arity$1 = (function (this__5296__auto__){ var self__ = this; var this__5296__auto____$1 = this; var h__5111__auto__ = self__.__hash; if((!((h__5111__auto__ == null)))){ return h__5111__auto__; } else { var h__5111__auto____$1 = (function (coll__5297__auto__){ return (1014232958 ^ cljs.core.hash_unordered_coll(coll__5297__auto__)); })(this__5296__auto____$1); (self__.__hash = h__5111__auto____$1); return h__5111__auto____$1; } })); (datascript.query.Context.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this9252,other9253){ var self__ = this; var this9252__$1 = this; return (((!((other9253 == null)))) && ((((this9252__$1.constructor === other9253.constructor)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this9252__$1.rels,other9253.rels)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this9252__$1.sources,other9253.sources)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this9252__$1.rules,other9253.rules)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this9252__$1.__extmap,other9253.__extmap))))))))))); })); (datascript.query.Context.prototype.cljs$core$IMap$_dissoc$arity$2 = (function (this__5310__auto__,k__5311__auto__){ var self__ = this; var this__5310__auto____$1 = this; if(cljs.core.contains_QMARK_(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__5311__auto__)){ return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5310__auto____$1),self__.__meta),k__5311__auto__); } else { return (new datascript.query.Context(self__.rels,self__.sources,self__.rules,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5311__auto__)),null)); } })); (datascript.query.Context.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = (function (this__5307__auto__,k9251){ var self__ = this; var this__5307__auto____$1 = this; var G__9260 = k9251; var G__9260__$1 = (((G__9260 instanceof cljs.core.Keyword))?G__9260.fqn:null); switch (G__9260__$1) { case "rels": case "sources": case "rules": return true; break; default: return cljs.core.contains_QMARK_(self__.__extmap,k9251); } })); (datascript.query.Context.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__5308__auto__,k__5309__auto__,G__9250){ var self__ = this; var this__5308__auto____$1 = this; var pred__9261 = cljs.core.keyword_identical_QMARK_; var expr__9262 = k__5309__auto__; if(cljs.core.truth_((pred__9261.cljs$core$IFn$_invoke$arity$2 ? pred__9261.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"rels","rels",1770187185),expr__9262) : pred__9261.call(null,new cljs.core.Keyword(null,"rels","rels",1770187185),expr__9262)))){ return (new datascript.query.Context(G__9250,self__.sources,self__.rules,self__.__meta,self__.__extmap,null)); } else { if(cljs.core.truth_((pred__9261.cljs$core$IFn$_invoke$arity$2 ? pred__9261.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"sources","sources",-321166424),expr__9262) : pred__9261.call(null,new cljs.core.Keyword(null,"sources","sources",-321166424),expr__9262)))){ return (new datascript.query.Context(self__.rels,G__9250,self__.rules,self__.__meta,self__.__extmap,null)); } else { if(cljs.core.truth_((pred__9261.cljs$core$IFn$_invoke$arity$2 ? pred__9261.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"rules","rules",1198912366),expr__9262) : pred__9261.call(null,new cljs.core.Keyword(null,"rules","rules",1198912366),expr__9262)))){ return (new datascript.query.Context(self__.rels,self__.sources,G__9250,self__.__meta,self__.__extmap,null)); } else { return (new datascript.query.Context(self__.rels,self__.sources,self__.rules,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5309__auto__,G__9250),null)); } } } })); (datascript.query.Context.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this__5313__auto__){ var self__ = this; var this__5313__auto____$1 = this; return cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,"rels","rels",1770187185),self__.rels,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,"sources","sources",-321166424),self__.sources,null)),(new cljs.core.MapEntry(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__5299__auto__,G__9250){ var self__ = this; var this__5299__auto____$1 = this; return (new datascript.query.Context(self__.rels,self__.sources,self__.rules,G__9250,self__.__extmap,self__.__hash)); })); (datascript.query.Context.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this__5305__auto__,entry__5306__auto__){ var self__ = this; var this__5305__auto____$1 = this; if(cljs.core.vector_QMARK_(entry__5306__auto__)){ return this__5305__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5306__auto__,(0)),cljs.core._nth(entry__5306__auto__,(1))); } else { return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5305__auto____$1,entry__5306__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__5346__auto__){ return (new cljs.core.List(null,"datascript.query/Context",null,(1),null)); })); (datascript.query.Context.cljs$lang$ctorPrWriter = (function (this__5346__auto__,writer__5347__auto__){ return cljs.core._write(writer__5347__auto__,"datascript.query/Context"); })); /** * Positional factory function for 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)); }); /** * Factory function for datascript.query/Context, taking a map of keywords to field values. */ datascript.query.map__GT_Context = (function datascript$query$map__GT_Context(G__9254){ var extmap__5342__auto__ = (function (){var G__9264 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__9254,new cljs.core.Keyword(null,"rels","rels",1770187185),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"sources","sources",-321166424),new cljs.core.Keyword(null,"rules","rules",1198912366)], 0)); if(cljs.core.record_QMARK_(G__9254)){ return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__9264); } else { return G__9264; } })(); return (new datascript.query.Context(new cljs.core.Keyword(null,"rels","rels",1770187185).cljs$core$IFn$_invoke$arity$1(G__9254),new cljs.core.Keyword(null,"sources","sources",-321166424).cljs$core$IFn$_invoke$arity$1(G__9254),new cljs.core.Keyword(null,"rules","rules",1198912366).cljs$core$IFn$_invoke$arity$1(G__9254),null,cljs.core.not_empty(extmap__5342__auto__),null)); }); /** * @constructor * @implements {cljs.core.IRecord} * @implements {cljs.core.IKVReduce} * @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$ = 2230716170; this.cljs$lang$protocol_mask$partition1$ = 139264; }); (datascript.query.Relation.prototype.cljs$core$ILookup$_lookup$arity$2 = (function (this__5300__auto__,k__5301__auto__){ var self__ = this; var this__5300__auto____$1 = this; return this__5300__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5301__auto__,null); })); (datascript.query.Relation.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__5302__auto__,k9266,else__5303__auto__){ var self__ = this; var this__5302__auto____$1 = this; var G__9270 = k9266; var G__9270__$1 = (((G__9270 instanceof cljs.core.Keyword))?G__9270.fqn:null); switch (G__9270__$1) { case "attrs": return self__.attrs; break; case "tuples": return self__.tuples; break; default: return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k9266,else__5303__auto__); } })); (datascript.query.Relation.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = (function (this__5320__auto__,f__5321__auto__,init__5322__auto__){ var self__ = this; var this__5320__auto____$1 = this; return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5323__auto__,p__9271){ var vec__9272 = p__9271; var k__5324__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__9272,(0),null); var v__5325__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__9272,(1),null); return (f__5321__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5321__auto__.cljs$core$IFn$_invoke$arity$3(ret__5323__auto__,k__5324__auto__,v__5325__auto__) : f__5321__auto__.call(null,ret__5323__auto__,k__5324__auto__,v__5325__auto__)); }),init__5322__auto__,this__5320__auto____$1); })); (datascript.query.Relation.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (this__5315__auto__,writer__5316__auto__,opts__5317__auto__){ var self__ = this; var this__5315__auto____$1 = this; var pr_pair__5318__auto__ = (function (keyval__5319__auto__){ return cljs.core.pr_sequential_writer(writer__5316__auto__,cljs.core.pr_writer,""," ","",opts__5317__auto__,keyval__5319__auto__); }); return cljs.core.pr_sequential_writer(writer__5316__auto__,pr_pair__5318__auto__,"#datascript.query.Relation{",", ","}",opts__5317__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(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$_iterator$arity$1 = (function (G__9265){ var self__ = this; var G__9265__$1 = this; return (new cljs.core.RecordIter((0),G__9265__$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(self__.__extmap):cljs.core.nil_iter()))); })); (datascript.query.Relation.prototype.cljs$core$IMeta$_meta$arity$1 = (function (this__5298__auto__){ var self__ = this; var this__5298__auto____$1 = this; return self__.__meta; })); (datascript.query.Relation.prototype.cljs$core$ICloneable$_clone$arity$1 = (function (this__5295__auto__){ var self__ = this; var this__5295__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__5304__auto__){ var self__ = this; var this__5304__auto____$1 = this; return (2 + cljs.core.count(self__.__extmap)); })); (datascript.query.Relation.prototype.cljs$core$IHash$_hash$arity$1 = (function (this__5296__auto__){ var self__ = this; var this__5296__auto____$1 = this; var h__5111__auto__ = self__.__hash; if((!((h__5111__auto__ == null)))){ return h__5111__auto__; } else { var h__5111__auto____$1 = (function (coll__5297__auto__){ return (1107093117 ^ cljs.core.hash_unordered_coll(coll__5297__auto__)); })(this__5296__auto____$1); (self__.__hash = h__5111__auto____$1); return h__5111__auto____$1; } })); (datascript.query.Relation.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this9267,other9268){ var self__ = this; var this9267__$1 = this; return (((!((other9268 == null)))) && ((((this9267__$1.constructor === other9268.constructor)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this9267__$1.attrs,other9268.attrs)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this9267__$1.tuples,other9268.tuples)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this9267__$1.__extmap,other9268.__extmap))))))))); })); (datascript.query.Relation.prototype.cljs$core$IMap$_dissoc$arity$2 = (function (this__5310__auto__,k__5311__auto__){ var self__ = this; var this__5310__auto____$1 = this; if(cljs.core.contains_QMARK_(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__5311__auto__)){ return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5310__auto____$1),self__.__meta),k__5311__auto__); } else { return (new datascript.query.Relation(self__.attrs,self__.tuples,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5311__auto__)),null)); } })); (datascript.query.Relation.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = (function (this__5307__auto__,k9266){ var self__ = this; var this__5307__auto____$1 = this; var G__9275 = k9266; var G__9275__$1 = (((G__9275 instanceof cljs.core.Keyword))?G__9275.fqn:null); switch (G__9275__$1) { case "attrs": case "tuples": return true; break; default: return cljs.core.contains_QMARK_(self__.__extmap,k9266); } })); (datascript.query.Relation.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__5308__auto__,k__5309__auto__,G__9265){ var self__ = this; var this__5308__auto____$1 = this; var pred__9276 = cljs.core.keyword_identical_QMARK_; var expr__9277 = k__5309__auto__; if(cljs.core.truth_((pred__9276.cljs$core$IFn$_invoke$arity$2 ? pred__9276.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"attrs","attrs",-2090668713),expr__9277) : pred__9276.call(null,new cljs.core.Keyword(null,"attrs","attrs",-2090668713),expr__9277)))){ return (new datascript.query.Relation(G__9265,self__.tuples,self__.__meta,self__.__extmap,null)); } else { if(cljs.core.truth_((pred__9276.cljs$core$IFn$_invoke$arity$2 ? pred__9276.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"tuples","tuples",-676032639),expr__9277) : pred__9276.call(null,new cljs.core.Keyword(null,"tuples","tuples",-676032639),expr__9277)))){ return (new datascript.query.Relation(self__.attrs,G__9265,self__.__meta,self__.__extmap,null)); } else { return (new datascript.query.Relation(self__.attrs,self__.tuples,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5309__auto__,G__9265),null)); } } })); (datascript.query.Relation.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this__5313__auto__){ var self__ = this; var this__5313__auto____$1 = this; return cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,"attrs","attrs",-2090668713),self__.attrs,null)),(new cljs.core.MapEntry(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__5299__auto__,G__9265){ var self__ = this; var this__5299__auto____$1 = this; return (new datascript.query.Relation(self__.attrs,self__.tuples,G__9265,self__.__extmap,self__.__hash)); })); (datascript.query.Relation.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this__5305__auto__,entry__5306__auto__){ var self__ = this; var this__5305__auto____$1 = this; if(cljs.core.vector_QMARK_(entry__5306__auto__)){ return this__5305__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5306__auto__,(0)),cljs.core._nth(entry__5306__auto__,(1))); } else { return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5305__auto____$1,entry__5306__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__5346__auto__){ return (new cljs.core.List(null,"datascript.query/Relation",null,(1),null)); })); (datascript.query.Relation.cljs$lang$ctorPrWriter = (function (this__5346__auto__,writer__5347__auto__){ return cljs.core._write(writer__5347__auto__,"datascript.query/Relation"); })); /** * Positional factory function for datascript.query/Relation. */ datascript.query.__GT_Relation = (function datascript$query$__GT_Relation(attrs,tuples){ return (new datascript.query.Relation(attrs,tuples,null,null,null)); }); /** * Factory function for datascript.query/Relation, taking a map of keywords to field values. */ datascript.query.map__GT_Relation = (function datascript$query$map__GT_Relation(G__9269){ var extmap__5342__auto__ = (function (){var G__9279 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__9269,new cljs.core.Keyword(null,"attrs","attrs",-2090668713),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"tuples","tuples",-676032639)], 0)); if(cljs.core.record_QMARK_(G__9269)){ return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__9279); } else { return G__9279; } })(); return (new datascript.query.Relation(new cljs.core.Keyword(null,"attrs","attrs",-2090668713).cljs$core$IFn$_invoke$arity$1(G__9269),new cljs.core.Keyword(null,"tuples","tuples",-676032639).cljs$core$IFn$_invoke$arity$1(G__9269),null,cljs.core.not_empty(extmap__5342__auto__),null)); }); datascript.query.single = (function datascript$query$single(coll){ if((cljs.core.next(coll) == null)){ } else { throw (new Error(["Assert failed: ","Expected single element","\n","(nil? (next coll))"].join(''))); } return cljs.core.first(coll); }); datascript.query.intersect_keys = (function datascript$query$intersect_keys(attrs1,attrs2){ return clojure.set.intersection.cljs$core$IFn$_invoke$arity$2(cljs.core.set(cljs.core.keys(attrs1)),cljs.core.set(cljs.core.keys(attrs2))); }); datascript.query.concatv = (function datascript$query$concatv(var_args){ var args__5732__auto__ = []; var len__5726__auto___9579 = arguments.length; var i__5727__auto___9580 = (0); while(true){ if((i__5727__auto___9580 < len__5726__auto___9579)){ args__5732__auto__.push((arguments[i__5727__auto___9580])); var G__9581 = (i__5727__auto___9580 + (1)); i__5727__auto___9580 = G__9581; continue; } else { } break; } var argseq__5733__auto__ = ((((0) < args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null); return datascript.query.concatv.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__); }); (datascript.query.concatv.cljs$core$IFn$_invoke$arity$variadic = (function (xs){ return cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentVector.EMPTY,cljs.core.cat,xs); })); (datascript.query.concatv.cljs$lang$maxFixedArity = (0)); /** @this {Function} */ (datascript.query.concatv.cljs$lang$applyTo = (function (seq9280){ var self__5712__auto__ = this; return self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq9280)); })); datascript.query.zip = (function datascript$query$zip(var_args){ var G__9285 = arguments.length; switch (G__9285) { case 2: return datascript.query.zip.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); break; default: var args_arr__5751__auto__ = []; var len__5726__auto___9583 = arguments.length; var i__5727__auto___9584 = (0); while(true){ if((i__5727__auto___9584 < len__5726__auto___9583)){ args_arr__5751__auto__.push((arguments[i__5727__auto___9584])); var G__9585 = (i__5727__auto___9584 + (1)); i__5727__auto___9584 = G__9585; continue; } else { } break; } var argseq__5752__auto__ = ((((2) < args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null); return datascript.query.zip.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__); } }); (datascript.query.zip.cljs$core$IFn$_invoke$arity$2 = (function (a,b){ return cljs.core.mapv.cljs$core$IFn$_invoke$arity$3(cljs.core.vector,a,b); })); (datascript.query.zip.cljs$core$IFn$_invoke$arity$variadic = (function (a,b,rest){ return cljs.core.apply.cljs$core$IFn$_invoke$arity$5(cljs.core.mapv,cljs.core.vector,a,b,rest); })); /** @this {Function} */ (datascript.query.zip.cljs$lang$applyTo = (function (seq9282){ var G__9283 = cljs.core.first(seq9282); var seq9282__$1 = cljs.core.next(seq9282); var G__9284 = cljs.core.first(seq9282__$1); var seq9282__$2 = cljs.core.next(seq9282__$1); var self__5711__auto__ = this; return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__9283,G__9284,seq9282__$2); })); (datascript.query.zip.cljs$lang$maxFixedArity = (2)); datascript.query.same_keys_QMARK_ = (function datascript$query$same_keys_QMARK_(a,b){ return ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(a),cljs.core.count(b))) && (((cljs.core.every_QMARK_((function (p1__9286_SHARP_){ return cljs.core.contains_QMARK_(b,p1__9286_SHARP_); }),cljs.core.keys(a))) && (cljs.core.every_QMARK_((function (p1__9287_SHARP_){ return cljs.core.contains_QMARK_(a,p1__9287_SHARP_); }),cljs.core.keys(b)))))); }); datascript.query.looks_like_QMARK_ = (function datascript$query$looks_like_QMARK_(pattern,form){ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,"_","_",-1201019570,null),pattern)){ return true; } else { if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(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_(form); } else { if((pattern instanceof cljs.core.Symbol)){ return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(form,pattern); } else { if(cljs.core.sequential_QMARK_(pattern)){ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.last(pattern),new cljs.core.Symbol(null,"*","*",345799209,null))){ return ((cljs.core.sequential_QMARK_(form)) && (cljs.core.every_QMARK_((function (p__9288){ var vec__9289 = p__9288; var pattern_el = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__9289,(0),null); var form_el = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__9289,(1),null); return (datascript.query.looks_like_QMARK_.cljs$core$IFn$_invoke$arity$2 ? datascript.query.looks_like_QMARK_.cljs$core$IFn$_invoke$arity$2(pattern_el,form_el) : datascript.query.looks_like_QMARK_.call(null,pattern_el,form_el)); }),cljs.core.map.cljs$core$IFn$_invoke$arity$3(cljs.core.vector,cljs.core.butlast(pattern),form)))); } else { return ((cljs.core.sequential_QMARK_(form)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(form),cljs.core.count(pattern))) && (cljs.core.every_QMARK_((function (p__9292){ var vec__9293 = p__9292; var pattern_el = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__9293,(0),null); var form_el = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__9293,(1),null); return (datascript.query.looks_like_QMARK_.cljs$core$IFn$_invoke$arity$2 ? datascript.query.looks_like_QMARK_.cljs$core$IFn$_invoke$arity$2(pattern_el,form_el) : datascript.query.looks_like_QMARK_.call(null,pattern_el,form_el)); }),cljs.core.map.cljs$core$IFn$_invoke$arity$3(cljs.core.vector,pattern,form)))))); } } else { return (pattern.cljs$core$IFn$_invoke$arity$1 ? pattern.cljs$core$IFn$_invoke$arity$1(form) : pattern.call(null,form)); } } } } }); datascript.query.source_QMARK_ = (function datascript$query$source_QMARK_(sym){ return (((sym instanceof cljs.core.Symbol)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("$",cljs.core.first(cljs.core.name(sym))))); }); datascript.query.free_var_QMARK_ = (function datascript$query$free_var_QMARK_(sym){ return (((sym instanceof cljs.core.Symbol)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("?",cljs.core.first(cljs.core.name(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 ((((cljs.core.sequential_QMARK_(form)) || (me.tonsky.persistent_sorted_set.arrays.array_QMARK_(form)))) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((2),cljs.core.count(form))) && (datascript.query.attr_QMARK_(cljs.core.first(form)))))); }); datascript.query.join_tuples = (function datascript$query$join_tuples(t1,idxs1,t2,idxs2){ var l1 = idxs1.length; var l2 = idxs2.length; var res = me.tonsky.persistent_sorted_set.arrays.make_array((l1 + l2)); var n__5593__auto___9586 = l1; var i_9587 = (0); while(true){ if((i_9587 < n__5593__auto___9586)){ (res[i_9587] = (t1[(idxs1[i_9587])])); var G__9588 = (i_9587 + (1)); i_9587 = G__9588; continue; } else { } break; } var n__5593__auto___9589 = l2; var i_9590 = (0); while(true){ if((i_9590 < n__5593__auto___9589)){ (res[(l1 + i_9590)] = (t2[(idxs2[i_9590])])); var G__9591 = (i_9590 + (1)); i_9590 = G__9591; continue; } else { } break; } return res; }); datascript.query.sum_rel_STAR_ = (function datascript$query$sum_rel_STAR_(attrs_a,tuples_a,attrs_b,tuples_b){ var idxb__GT_idxa = cljs.core.vec((function (){var iter__5480__auto__ = (function datascript$query$sum_rel_STAR__$_iter__9296(s__9297){ return (new cljs.core.LazySeq(null,(function (){ var s__9297__$1 = s__9297; while(true){ var temp__5804__auto__ = cljs.core.seq(s__9297__$1); if(temp__5804__auto__){ var s__9297__$2 = temp__5804__auto__; if(cljs.core.chunked_seq_QMARK_(s__9297__$2)){ var c__5478__auto__ = cljs.core.chunk_first(s__9297__$2); var size__5479__auto__ = cljs.core.count(c__5478__auto__); var b__9299 = cljs.core.chunk_buffer(size__5479__auto__); if((function (){var i__9298 = (0); while(true){ if((i__9298 < size__5479__auto__)){ var vec__9300 = cljs.core._nth(c__5478__auto__,i__9298); var sym = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__9300,(0),null); var idx_b = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__9300,(1),null); cljs.core.chunk_append(b__9299,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [idx_b,(attrs_a.cljs$core$IFn$_invoke$arity$1 ? attrs_a.cljs$core$IFn$_invoke$arity$1(sym) : attrs_a.call(null,sym))], null)); var G__9592 = (i__9298 + (1)); i__9298 = G__9592; continue; } else { return true; } break; } })()){ return cljs.core.chunk_cons(cljs.core.chunk(b__9299),datascript$query$sum_rel_STAR__$_iter__9296(cljs.core.chunk_rest(s__9297__$2))); } else { return cljs.core.chunk_cons(cljs.core.chunk(b__9299),null); } } else { var vec__9303 = cljs.core.first(s__9297__$2); var sym = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__9303,(0),null); var idx_b = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__9303,(1),null); return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [idx_b,(attrs_a.cljs$core$IFn$_invoke$arity$1 ? attrs_a.cljs$core$IFn$_invoke$arity$1(sym) : attrs_a.call(null,sym))], null),datascript$query$sum_rel_STAR__$_iter__9296(cljs.core.rest(s__9297__$2))); } } else { return null; } break; } }),null,null)); }); return iter__5480__auto__(attrs_b); })()); var tlen = (cljs.core.reduce.cljs$core$IFn$_invoke$arity$2(cljs.core.max,cljs.core.vals(attrs_a)) + (1)); var tuples_SINGLEQUOTE_ = cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,tuple_b){ var tuple_SINGLEQUOTE_ = me.tonsky.persistent_sorted_set.arrays.make_array(tlen); var seq__9306_9593 = cljs.core.seq(idxb__GT_idxa); var chunk__9307_9594 = null; var count__9308_9595 = (0); var i__9309_9596 = (0); while(true){ if((i__9309_9596 < count__9308_9595)){ var vec__9316_9597 = chunk__9307_9594.cljs$core$IIndexed$_nth$arity$2(null,i__9309_9596); var idx_b_9598 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__9316_9597,(0),null); var idx_a_9599 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__9316_9597,(1),null); (tuple_SINGLEQUOTE_[idx_a_9599] = (tuple_b[idx_b_9598])); var G__9600 = seq__9306_9593; var G__9601 = chunk__9307_9594; var G__9602 = count__9308_9595; var G__9603 = (i__9309_9596 + (1)); seq__9306_9593 = G__9600; chunk__9307_9594 = G__9601; count__9308_9595 = G__9602; i__9309_9596 = G__9603; continue; } else { var temp__5804__auto___9604 = cljs.core.seq(seq__9306_9593); if(temp__5804__auto___9604){ var seq__9306_9605__$1 = temp__5804__auto___9604; if(cljs.core.chunked_seq_QMARK_(seq__9306_9605__$1)){ var c__5525__auto___9606 = cljs.core.chunk_first(seq__9306_9605__$1); var G__9607 = cljs.core.chunk_rest(seq__9306_9605__$1); var G__9608 = c__5525__auto___9606; var G__9609 = cljs.core.count(c__5525__auto___9606); var G__9610 = (0); seq__9306_9593 = G__9607; chunk__9307_9594 = G__9608; count__9308_9595 = G__9609; i__9309_9596 = G__9610; continue; } else { var vec__9319_9611 = cljs.core.first(seq__9306_9605__$1); var idx_b_9612 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__9319_9611,(0),null); var idx_a_9613 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__9319_9611,(1),null); (tuple_SINGLEQUOTE_[idx_a_9613] = (tuple_b[idx_b_9612])); var G__9614 = cljs.core.next(seq__9306_9605__$1); var G__9615 = null; var G__9616 = (0); var G__9617 = (0); seq__9306_9593 = G__9614; chunk__9307_9594 = G__9615; count__9308_9595 = G__9616; i__9309_9596 = G__9617; continue; } } else { } } break; } return cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(acc,tuple_SINGLEQUOTE_); }),cljs.core.transient$(cljs.core.vec(tuples_a)),tuples_b)); return (new datascript.query.Relation(attrs_a,tuples_SINGLEQUOTE_,null,null,null)); }); datascript.query.sum_rel = (function datascript$query$sum_rel(a,b){ var map__9322 = a; var map__9322__$1 = cljs.core.__destructure_map(map__9322); var attrs_a = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__9322__$1,new cljs.core.Keyword(null,"attrs","attrs",-2090668713)); var tuples_a = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__9322__$1,new cljs.core.Keyword(null,"tuples","tuples",-676032639)); var map__9323 = b; var map__9323__$1 = cljs.core.__destructure_map(map__9323); var attrs_b = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__9323__$1,new cljs.core.Keyword(null,"attrs","attrs",-2090668713)); var tuples_b = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__9323__$1,new cljs.core.Keyword(null,"tuples","tuples",-676032639)); if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(attrs_a,attrs_b)){ return (new datascript.query.Relation(attrs_a,cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.vec(tuples_a),tuples_b),null,null,null)); } else { if(cljs.core.empty_QMARK_(tuples_a)){ return b; } else { if(cljs.core.empty_QMARK_(tuples_b)){ return a; } else { if((!(datascript.query.same_keys_QMARK_(attrs_a,attrs_b)))){ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Can\u2019t sum relations with different attrs: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([attrs_a], 0))," and ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([attrs_b], 0))].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 { if(cljs.core.every_QMARK_(cljs.core.number_QMARK_,cljs.core.vals(attrs_a))){ return datascript.query.sum_rel_STAR_(attrs_a,tuples_a,attrs_b,tuples_b); } else { var number_attrs = cljs.core.zipmap(cljs.core.keys(attrs_a),cljs.core.range.cljs$core$IFn$_invoke$arity$0()); var G__9324 = datascript.query.sum_rel_STAR_(number_attrs,cljs.core.PersistentVector.EMPTY,attrs_a,tuples_a); var G__9325 = b; return (datascript.query.sum_rel.cljs$core$IFn$_invoke$arity$2 ? datascript.query.sum_rel.cljs$core$IFn$_invoke$arity$2(G__9324,G__9325) : datascript.query.sum_rel.call(null,G__9324,G__9325)); } } } } } }); datascript.query.prod_rel = (function datascript$query$prod_rel(var_args){ var G__9327 = arguments.length; switch (G__9327) { 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(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.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, [me.tonsky.persistent_sorted_set.arrays.make_array((0))], null),null,null,null)); })); (datascript.query.prod_rel.cljs$core$IFn$_invoke$arity$2 = (function (rel1,rel2){ var attrs1 = cljs.core.keys(new cljs.core.Keyword(null,"attrs","attrs",-2090668713).cljs$core$IFn$_invoke$arity$1(rel1)); var attrs2 = cljs.core.keys(new cljs.core.Keyword(null,"attrs","attrs",-2090668713).cljs$core$IFn$_invoke$arity$1(rel2)); var idxs1 = cljs.core.to_array(cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"attrs","attrs",-2090668713).cljs$core$IFn$_invoke$arity$1(rel1),attrs1)); var idxs2 = cljs.core.to_array(cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"attrs","attrs",-2090668713).cljs$core$IFn$_invoke$arity$1(rel2),attrs2)); return (new datascript.query.Relation(cljs.core.zipmap(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(attrs1,attrs2),cljs.core.range.cljs$core$IFn$_invoke$arity$0()),cljs.core.persistent_BANG_(cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,t1){ return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc__$1,t2){ return cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(acc__$1,datascript.query.join_tuples(t1,idxs1,t2,idxs2)); }),acc,new cljs.core.Keyword(null,"tuples","tuples",-676032639).cljs$core$IFn$_invoke$arity$1(rel2)); }),cljs.core.transient$(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.parse_rules = (function datascript$query$parse_rules(rules){ var rules__$1 = ((typeof rules === 'string')?cljs.reader.read_string.cljs$core$IFn$_invoke$arity$1(rules):rules); datascript.parser.parse_rules(rules__$1); return cljs.core.group_by(cljs.core.ffirst,rules__$1); }); datascript.query.empty_rel = (function datascript$query$empty_rel(binding){ var vars = cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"symbol","symbol",-1038572696),datascript.parser.collect_vars_distinct(binding)); return (new datascript.query.Relation(cljs.core.zipmap(vars,cljs.core.range.cljs$core$IFn$_invoke$arity$0()),cljs.core.PersistentVector.EMPTY,null,null,null)); }); /** * @interface */ datascript.query.IBinding = function(){}; var datascript$query$IBinding$in__GT_rel$dyn_9619 = (function (binding,value){ var x__5350__auto__ = (((binding == null))?null:binding); var m__5351__auto__ = (datascript.query.in__GT_rel[goog.typeOf(x__5350__auto__)]); if((!((m__5351__auto__ == null)))){ return (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(binding,value) : m__5351__auto__.call(null,binding,value)); } else { var m__5349__auto__ = (datascript.query.in__GT_rel["_"]); if((!((m__5349__auto__ == null)))){ return (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(binding,value) : m__5349__auto__.call(null,binding,value)); } else { throw cljs.core.missing_protocol("IBinding.in->rel",binding); } } }); 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 { return datascript$query$IBinding$in__GT_rel$dyn_9619(binding,value); } }); (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.cljs$core$IFn$_invoke$arity$0(); })); (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.createAsIfByAssoc([cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(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)]),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(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_(coll)))){ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Cannot bind value ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([coll], 0))," to collection ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([datascript.parser.source(binding__$1)], 0))].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(binding__$1)], null)); } else { if(cljs.core.empty_QMARK_(coll)){ return datascript.query.empty_rel(binding__$1); } else { return cljs.core.reduce.cljs$core$IFn$_invoke$arity$2(datascript.query.sum_rel,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__9328_SHARP_){ return datascript.query.in__GT_rel(binding__$1.binding,p1__9328_SHARP_); }),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_(coll)))){ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Cannot bind value ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([coll], 0))," to tuple ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([datascript.parser.source(binding__$1)], 0))].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(binding__$1)], null)); } else { if((cljs.core.count(coll) < cljs.core.count(binding__$1.bindings))){ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Not enough elements in a collection ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([coll], 0))," to bind tuple ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([datascript.parser.source(binding__$1)], 0))].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(binding__$1)], null)); } else { return cljs.core.reduce.cljs$core$IFn$_invoke$arity$2(datascript.query.prod_rel,cljs.core.map.cljs$core$IFn$_invoke$arity$3((function (p1__9329_SHARP_,p2__9330_SHARP_){ return datascript.query.in__GT_rel(p1__9329_SHARP_,p2__9330_SHARP_); }),binding__$1.bindings,coll)); } } })); datascript.query.resolve_in = (function datascript$query$resolve_in(context,p__9331){ var vec__9332 = p__9331; var binding = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__9332,(0),null); var value = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__9332,(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.cljs$core$IFn$_invoke$arity$5(context,new cljs.core.Keyword(null,"sources","sources",-321166424),cljs.core.assoc,cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(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.cljs$core$IFn$_invoke$arity$3(context,new cljs.core.Keyword(null,"rules","rules",1198912366),datascript.query.parse_rules(value)); } else { return cljs.core.update.cljs$core$IFn$_invoke$arity$4(context,new cljs.core.Keyword(null,"rels","rels",1770187185),cljs.core.conj,datascript.query.in__GT_rel(binding,value)); } } }); datascript.query.resolve_ins = (function datascript$query$resolve_ins(context,bindings,values){ var cb = cljs.core.count(bindings); var cv = cljs.core.count(values); if((cb < cv)){ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Extra inputs passed, expected: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (p1__9335_SHARP_){ return new cljs.core.Keyword(null,"source","source",-433931539).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(p1__9335_SHARP_)); }),bindings)], 0)),", got: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.co