datahike 0.7.1630
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +226 -0
- package/cljs.analyzer.api.js +427 -0
- package/cljs.analyzer.api.js.map +1 -0
- package/cljs.analyzer.impl.js +86 -0
- package/cljs.analyzer.impl.js.map +1 -0
- package/cljs.analyzer.impl.namespaces.js +219 -0
- package/cljs.analyzer.impl.namespaces.js.map +1 -0
- package/cljs.analyzer.js +7186 -0
- package/cljs.analyzer.js.map +1 -0
- package/cljs.analyzer.passes.and_or.js +141 -0
- package/cljs.analyzer.passes.and_or.js.map +1 -0
- package/cljs.analyzer.passes.js +104 -0
- package/cljs.analyzer.passes.js.map +1 -0
- package/cljs.cache.js +1145 -0
- package/cljs.cache.js.map +1 -0
- package/cljs.cache.wrapped.js +352 -0
- package/cljs.cache.wrapped.js.map +1 -0
- package/cljs.core.async.impl.buffers.js +489 -0
- package/cljs.core.async.impl.buffers.js.map +1 -0
- package/cljs.core.async.impl.channels.js +711 -0
- package/cljs.core.async.impl.channels.js.map +1 -0
- package/cljs.core.async.impl.dispatch.js +81 -0
- package/cljs.core.async.impl.dispatch.js.map +1 -0
- package/cljs.core.async.impl.ioc_helpers.js +192 -0
- package/cljs.core.async.impl.ioc_helpers.js.map +1 -0
- package/cljs.core.async.impl.protocols.js +368 -0
- package/cljs.core.async.impl.protocols.js.map +1 -0
- package/cljs.core.async.impl.timers.js +510 -0
- package/cljs.core.async.impl.timers.js.map +1 -0
- package/cljs.core.async.js +8813 -0
- package/cljs.core.async.js.map +1 -0
- package/cljs.core.js +38764 -0
- package/cljs.core.js.map +1 -0
- package/cljs.env.js +60 -0
- package/cljs.env.js.map +1 -0
- package/cljs.nodejs.js +80 -0
- package/cljs.nodejs.js.map +1 -0
- package/cljs.reader.js +462 -0
- package/cljs.reader.js.map +1 -0
- package/cljs.spec.alpha.js +5312 -0
- package/cljs.spec.alpha.js.map +1 -0
- package/cljs.spec.gen.alpha.js +2020 -0
- package/cljs.spec.gen.alpha.js.map +1 -0
- package/cljs.tagged_literals.js +103 -0
- package/cljs.tagged_literals.js.map +1 -0
- package/cljs.tools.reader.edn.js +960 -0
- package/cljs.tools.reader.edn.js.map +1 -0
- package/cljs.tools.reader.impl.commons.js +217 -0
- package/cljs.tools.reader.impl.commons.js.map +1 -0
- package/cljs.tools.reader.impl.errors.js +441 -0
- package/cljs.tools.reader.impl.errors.js.map +1 -0
- package/cljs.tools.reader.impl.inspect.js +182 -0
- package/cljs.tools.reader.impl.inspect.js.map +1 -0
- package/cljs.tools.reader.impl.utils.js +429 -0
- package/cljs.tools.reader.impl.utils.js.map +1 -0
- package/cljs.tools.reader.js +1830 -0
- package/cljs.tools.reader.js.map +1 -0
- package/cljs.tools.reader.reader_types.js +838 -0
- package/cljs.tools.reader.reader_types.js.map +1 -0
- package/cljs_env.js +18192 -0
- package/cljs_node_io.core.js +1278 -0
- package/cljs_node_io.core.js.map +1 -0
- package/cljs_node_io.file.js +918 -0
- package/cljs_node_io.file.js.map +1 -0
- package/cljs_node_io.fs.js +3911 -0
- package/cljs_node_io.fs.js.map +1 -0
- package/clojure.data.js +319 -0
- package/clojure.data.js.map +1 -0
- package/clojure.edn.js +119 -0
- package/clojure.edn.js.map +1 -0
- package/clojure.set.js +406 -0
- package/clojure.set.js.map +1 -0
- package/clojure.string.js +502 -0
- package/clojure.string.js.map +1 -0
- package/clojure.walk.js +156 -0
- package/clojure.walk.js.map +1 -0
- package/datahike.api.impl.js +621 -0
- package/datahike.api.impl.js.map +1 -0
- package/datahike.api.specification.js +85 -0
- package/datahike.api.specification.js.map +1 -0
- package/datahike.array.js +275 -0
- package/datahike.array.js.map +1 -0
- package/datahike.config.js +437 -0
- package/datahike.config.js.map +1 -0
- package/datahike.connections.js +55 -0
- package/datahike.connections.js.map +1 -0
- package/datahike.connector.js +1248 -0
- package/datahike.connector.js.map +1 -0
- package/datahike.constants.js +66 -0
- package/datahike.constants.js.map +1 -0
- package/datahike.core.js +628 -0
- package/datahike.core.js.map +1 -0
- package/datahike.datom.js +963 -0
- package/datahike.datom.js.map +1 -0
- package/datahike.db.interface.js +819 -0
- package/datahike.db.interface.js.map +1 -0
- package/datahike.db.js +3095 -0
- package/datahike.db.js.map +1 -0
- package/datahike.db.search.js +1004 -0
- package/datahike.db.search.js.map +1 -0
- package/datahike.db.transaction.js +1904 -0
- package/datahike.db.transaction.js.map +1 -0
- package/datahike.db.utils.js +642 -0
- package/datahike.db.utils.js.map +1 -0
- package/datahike.gc.js +1618 -0
- package/datahike.gc.js.map +1 -0
- package/datahike.impl.entity.js +604 -0
- package/datahike.impl.entity.js.map +1 -0
- package/datahike.index.interface.js +484 -0
- package/datahike.index.interface.js.map +1 -0
- package/datahike.index.js +50 -0
- package/datahike.index.js.map +1 -0
- package/datahike.index.persistent_set.js +1250 -0
- package/datahike.index.persistent_set.js.map +1 -0
- package/datahike.js.api.js +2211 -0
- package/datahike.js.api.js.map +1 -0
- package/datahike.lru.js +404 -0
- package/datahike.lru.js.map +1 -0
- package/datahike.pull_api.js +533 -0
- package/datahike.pull_api.js.map +1 -0
- package/datahike.query.js +11891 -0
- package/datahike.query.js.map +1 -0
- package/datahike.query_stats.js +152 -0
- package/datahike.query_stats.js.map +1 -0
- package/datahike.readers.js +166 -0
- package/datahike.readers.js.map +1 -0
- package/datahike.schema.js +251 -0
- package/datahike.schema.js.map +1 -0
- package/datahike.schema_cache.js +66 -0
- package/datahike.schema_cache.js.map +1 -0
- package/datahike.spec.js +70 -0
- package/datahike.spec.js.map +1 -0
- package/datahike.store.js +514 -0
- package/datahike.store.js.map +1 -0
- package/datahike.tools.js +436 -0
- package/datahike.tools.js.map +1 -0
- package/datahike.writer.js +3463 -0
- package/datahike.writer.js.map +1 -0
- package/datahike.writing.js +3168 -0
- package/datahike.writing.js.map +1 -0
- package/datalog.parser.impl.js +1421 -0
- package/datalog.parser.impl.js.map +1 -0
- package/datalog.parser.impl.proto.js +213 -0
- package/datalog.parser.impl.proto.js.map +1 -0
- package/datalog.parser.impl.util.js +117 -0
- package/datalog.parser.impl.util.js.map +1 -0
- package/datalog.parser.js +47 -0
- package/datalog.parser.js.map +1 -0
- package/datalog.parser.pull.js +2603 -0
- package/datalog.parser.pull.js.map +1 -0
- package/datalog.parser.type.js +7502 -0
- package/datalog.parser.type.js.map +1 -0
- package/datalog.parser.util.js +60 -0
- package/datalog.parser.util.js.map +1 -0
- package/environ.core.js +263 -0
- package/environ.core.js.map +1 -0
- package/fress.api.js +607 -0
- package/fress.api.js.map +1 -0
- package/fress.impl.adler32.js +435 -0
- package/fress.impl.adler32.js.map +1 -0
- package/fress.impl.bigint.js +185 -0
- package/fress.impl.bigint.js.map +1 -0
- package/fress.impl.buffer.js +1087 -0
- package/fress.impl.buffer.js.map +1 -0
- package/fress.impl.codes.js +105 -0
- package/fress.impl.codes.js.map +1 -0
- package/fress.impl.hopmap.js +603 -0
- package/fress.impl.hopmap.js.map +1 -0
- package/fress.impl.ranges.js +49 -0
- package/fress.impl.ranges.js.map +1 -0
- package/fress.impl.raw_input.js +837 -0
- package/fress.impl.raw_input.js.map +1 -0
- package/fress.impl.raw_output.js +653 -0
- package/fress.impl.raw_output.js.map +1 -0
- package/fress.impl.table.js +133 -0
- package/fress.impl.table.js.map +1 -0
- package/fress.reader.js +2312 -0
- package/fress.reader.js.map +1 -0
- package/fress.util.js +458 -0
- package/fress.util.js.map +1 -0
- package/fress.writer.js +2141 -0
- package/fress.writer.js.map +1 -0
- package/geheimnis.aes.js +132 -0
- package/geheimnis.aes.js.map +1 -0
- package/hasch.base64.js +42 -0
- package/hasch.base64.js.map +1 -0
- package/hasch.benc.js +201 -0
- package/hasch.benc.js.map +1 -0
- package/hasch.core.js +188 -0
- package/hasch.core.js.map +1 -0
- package/hasch.platform.js +221 -0
- package/hasch.platform.js.map +1 -0
- package/incognito.base.js +276 -0
- package/incognito.base.js.map +1 -0
- package/incognito.edn.js +54 -0
- package/incognito.edn.js.map +1 -0
- package/incognito.fressian.js +330 -0
- package/incognito.fressian.js.map +1 -0
- package/index.d.ts +660 -0
- package/is.simm.partial_cps.async.js +142 -0
- package/is.simm.partial_cps.async.js.map +1 -0
- package/is.simm.partial_cps.runtime.js +65 -0
- package/is.simm.partial_cps.runtime.js.map +1 -0
- package/is.simm.partial_cps.sequence.js +1255 -0
- package/is.simm.partial_cps.sequence.js.map +1 -0
- package/konserve.cache.js +2519 -0
- package/konserve.cache.js.map +1 -0
- package/konserve.compressor.js +502 -0
- package/konserve.compressor.js.map +1 -0
- package/konserve.core.js +8052 -0
- package/konserve.core.js.map +1 -0
- package/konserve.encryptor.js +553 -0
- package/konserve.encryptor.js.map +1 -0
- package/konserve.gc.js +541 -0
- package/konserve.gc.js.map +1 -0
- package/konserve.impl.defaults.js +8290 -0
- package/konserve.impl.defaults.js.map +1 -0
- package/konserve.impl.storage_layout.js +849 -0
- package/konserve.impl.storage_layout.js.map +1 -0
- package/konserve.memory.js +2102 -0
- package/konserve.memory.js.map +1 -0
- package/konserve.node_filestore.js +2951 -0
- package/konserve.node_filestore.js.map +1 -0
- package/konserve.protocols.js +590 -0
- package/konserve.protocols.js.map +1 -0
- package/konserve.serializers.js +562 -0
- package/konserve.serializers.js.map +1 -0
- package/konserve.store.js +2245 -0
- package/konserve.store.js.map +1 -0
- package/konserve.tiered.js +9574 -0
- package/konserve.tiered.js.map +1 -0
- package/konserve.utils.js +180 -0
- package/konserve.utils.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.arrays.js +66 -0
- package/me.tonsky.persistent_sorted_set.arrays.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.branch.js +2779 -0
- package/me.tonsky.persistent_sorted_set.branch.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.btset.js +14196 -0
- package/me.tonsky.persistent_sorted_set.btset.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.impl.node.js +324 -0
- package/me.tonsky.persistent_sorted_set.impl.node.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.impl.storage.js +123 -0
- package/me.tonsky.persistent_sorted_set.impl.storage.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.js +890 -0
- package/me.tonsky.persistent_sorted_set.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.leaf.js +561 -0
- package/me.tonsky.persistent_sorted_set.leaf.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.util.js +402 -0
- package/me.tonsky.persistent_sorted_set.util.js.map +1 -0
- package/medley.core.js +1857 -0
- package/medley.core.js.map +1 -0
- package/package.json +38 -0
- package/spec_tools.core.js +1925 -0
- package/spec_tools.core.js.map +1 -0
- package/spec_tools.data_spec.js +1291 -0
- package/spec_tools.data_spec.js.map +1 -0
- package/spec_tools.form.js +185 -0
- package/spec_tools.form.js.map +1 -0
- package/spec_tools.impl.js +362 -0
- package/spec_tools.impl.js.map +1 -0
- package/spec_tools.parse.js +427 -0
- package/spec_tools.parse.js.map +1 -0
- package/spec_tools.transform.js +288 -0
- package/spec_tools.transform.js.map +1 -0
- package/superv.async.js +8617 -0
- package/superv.async.js.map +1 -0
- package/tailrecursion.priority_map.js +994 -0
- package/tailrecursion.priority_map.js.map +1 -0
- package/taoensso.encore.js +12385 -0
- package/taoensso.encore.js.map +1 -0
- package/taoensso.timbre.appenders.core.js +239 -0
- package/taoensso.timbre.appenders.core.js.map +1 -0
- package/taoensso.timbre.js +1264 -0
- package/taoensso.timbre.js.map +1 -0
- package/taoensso.truss.impl.js +442 -0
- package/taoensso.truss.impl.js.map +1 -0
- package/taoensso.truss.js +743 -0
- package/taoensso.truss.js.map +1 -0
- package/test-config-keys.js +33 -0
- package/test-final.js +36 -0
- package/test-key-duplication.js +67 -0
- package/test.js +557 -0
|
@@ -0,0 +1,604 @@
|
|
|
1
|
+
var $CLJS = require("./cljs_env");
|
|
2
|
+
var $jscomp = $CLJS.$jscomp;
|
|
3
|
+
var COMPILED = false;
|
|
4
|
+
require("./cljs.core.js");
|
|
5
|
+
require("./datahike.db.js");
|
|
6
|
+
require("./datahike.db.interface.js");
|
|
7
|
+
require("./datahike.db.utils.js");
|
|
8
|
+
var environ=$CLJS.environ || ($CLJS.environ = {});
|
|
9
|
+
var fress=$CLJS.fress || ($CLJS.fress = {});
|
|
10
|
+
var datahike=$CLJS.datahike || ($CLJS.datahike = {});
|
|
11
|
+
var clojure=$CLJS.clojure || ($CLJS.clojure = {});
|
|
12
|
+
var hasch=$CLJS.hasch || ($CLJS.hasch = {});
|
|
13
|
+
var tailrecursion=$CLJS.tailrecursion || ($CLJS.tailrecursion = {});
|
|
14
|
+
var superv=$CLJS.superv || ($CLJS.superv = {});
|
|
15
|
+
var geheimnis=$CLJS.geheimnis || ($CLJS.geheimnis = {});
|
|
16
|
+
var is=$CLJS.is || ($CLJS.is = {});
|
|
17
|
+
var cljs=$CLJS.cljs || ($CLJS.cljs = {});
|
|
18
|
+
var cljs_node_io=$CLJS.cljs_node_io || ($CLJS.cljs_node_io = {});
|
|
19
|
+
var goog=$CLJS.goog || ($CLJS.goog = {});
|
|
20
|
+
var konserve=$CLJS.konserve || ($CLJS.konserve = {});
|
|
21
|
+
var datalog=$CLJS.datalog || ($CLJS.datalog = {});
|
|
22
|
+
var spec_tools=$CLJS.spec_tools || ($CLJS.spec_tools = {});
|
|
23
|
+
var taoensso=$CLJS.taoensso || ($CLJS.taoensso = {});
|
|
24
|
+
var incognito=$CLJS.incognito || ($CLJS.incognito = {});
|
|
25
|
+
var medley=$CLJS.medley || ($CLJS.medley = {});
|
|
26
|
+
var me=$CLJS.me || ($CLJS.me = {});
|
|
27
|
+
|
|
28
|
+
$CLJS.SHADOW_ENV.setLoaded("datahike.impl.entity.js");
|
|
29
|
+
|
|
30
|
+
goog.provide('datahike.impl.entity');
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
datahike.impl.entity.entid = (function datahike$impl$entity$entid(db,eid){
|
|
36
|
+
if(((typeof eid === 'number') || (((cljs.core.sequential_QMARK_(eid)) || ((eid instanceof cljs.core.Keyword)))))){
|
|
37
|
+
return datahike.db.utils.entid.cljs$core$IFn$_invoke$arity$2(db,eid);
|
|
38
|
+
} else {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
datahike.impl.entity.entity = (function datahike$impl$entity$entity(db,eid){
|
|
43
|
+
if(datahike.db.utils.db_QMARK_(db)){
|
|
44
|
+
} else {
|
|
45
|
+
throw (new Error("Assert failed: (dbu/db? db)"));
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
var temp__5804__auto__ = datahike.impl.entity.entid(db,eid);
|
|
49
|
+
if(cljs.core.truth_(temp__5804__auto__)){
|
|
50
|
+
var e = temp__5804__auto__;
|
|
51
|
+
var G__58929 = db;
|
|
52
|
+
var G__58930 = e;
|
|
53
|
+
var G__58931 = cljs.core.volatile_BANG_(false);
|
|
54
|
+
var G__58932 = cljs.core.volatile_BANG_(cljs.core.PersistentArrayMap.EMPTY);
|
|
55
|
+
return (datahike.impl.entity.__GT_Entity.cljs$core$IFn$_invoke$arity$4 ? datahike.impl.entity.__GT_Entity.cljs$core$IFn$_invoke$arity$4(G__58929,G__58930,G__58931,G__58932) : datahike.impl.entity.__GT_Entity.call(null, G__58929,G__58930,G__58931,G__58932));
|
|
56
|
+
} else {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
datahike.impl.entity.entity_attr = (function datahike$impl$entity$entity_attr(db,a_ident,datoms){
|
|
61
|
+
if(datahike.db.utils.multival_QMARK_(db,a_ident)){
|
|
62
|
+
if(datahike.db.utils.ref_QMARK_(db,a_ident)){
|
|
63
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__58933_SHARP_,p2__58934_SHARP_){
|
|
64
|
+
return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(p1__58933_SHARP_,datahike.impl.entity.entity(db,new cljs.core.Keyword(null,"v","v",21465059).cljs$core$IFn$_invoke$arity$1(p2__58934_SHARP_)));
|
|
65
|
+
}),cljs.core.PersistentHashSet.EMPTY,datoms);
|
|
66
|
+
} else {
|
|
67
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__58935_SHARP_,p2__58936_SHARP_){
|
|
68
|
+
return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(p1__58935_SHARP_,new cljs.core.Keyword(null,"v","v",21465059).cljs$core$IFn$_invoke$arity$1(p2__58936_SHARP_));
|
|
69
|
+
}),cljs.core.PersistentHashSet.EMPTY,datoms);
|
|
70
|
+
}
|
|
71
|
+
} else {
|
|
72
|
+
if(datahike.db.utils.ref_QMARK_(db,a_ident)){
|
|
73
|
+
return datahike.impl.entity.entity(db,new cljs.core.Keyword(null,"v","v",21465059).cljs$core$IFn$_invoke$arity$1(cljs.core.first(datoms)));
|
|
74
|
+
} else {
|
|
75
|
+
return new cljs.core.Keyword(null,"v","v",21465059).cljs$core$IFn$_invoke$arity$1(cljs.core.first(datoms));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
/**
|
|
80
|
+
* Translate reverse attribute recording to database and find datoms
|
|
81
|
+
*/
|
|
82
|
+
datahike.impl.entity._lookup_backwards = (function datahike$impl$entity$_lookup_backwards(db,eid,a_ident,not_found){
|
|
83
|
+
var a_db = (cljs.core.truth_(new cljs.core.Keyword(null,"attribute-refs?","attribute-refs?",-1070298065).cljs$core$IFn$_invoke$arity$1(datahike.db.interface$._config(db)))?datahike.db.interface$._ref_for(db,a_ident):a_ident);
|
|
84
|
+
var temp__5802__auto__ = cljs.core.not_empty(datahike.db.interface$.search(db,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,a_db,eid], null)));
|
|
85
|
+
if(cljs.core.truth_(temp__5802__auto__)){
|
|
86
|
+
var datoms = temp__5802__auto__;
|
|
87
|
+
if(datahike.db.utils.component_QMARK_(db,a_ident)){
|
|
88
|
+
return datahike.impl.entity.entity(db,new cljs.core.Keyword(null,"e","e",1381269198).cljs$core$IFn$_invoke$arity$1(cljs.core.first(datoms)));
|
|
89
|
+
} else {
|
|
90
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__58943_SHARP_,p2__58944_SHARP_){
|
|
91
|
+
return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(p1__58943_SHARP_,datahike.impl.entity.entity(db,new cljs.core.Keyword(null,"e","e",1381269198).cljs$core$IFn$_invoke$arity$1(p2__58944_SHARP_)));
|
|
92
|
+
}),cljs.core.PersistentHashSet.EMPTY,datoms);
|
|
93
|
+
}
|
|
94
|
+
} else {
|
|
95
|
+
return not_found;
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
datahike.impl.entity.multival__GT_js = (function datahike$impl$entity$multival__GT_js(val){
|
|
99
|
+
if(cljs.core.truth_(val)){
|
|
100
|
+
return cljs.core.to_array(val);
|
|
101
|
+
} else {
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
datahike.impl.entity.js_seq = (function datahike$impl$entity$js_seq(e){
|
|
106
|
+
(datahike.impl.entity.touch.cljs$core$IFn$_invoke$arity$1 ? datahike.impl.entity.touch.cljs$core$IFn$_invoke$arity$1(e) : datahike.impl.entity.touch.call(null, e));
|
|
107
|
+
|
|
108
|
+
var iter__5480__auto__ = (function datahike$impl$entity$js_seq_$_iter__58948(s__58949){
|
|
109
|
+
return (new cljs.core.LazySeq(null,(function (){
|
|
110
|
+
var s__58949__$1 = s__58949;
|
|
111
|
+
while(true){
|
|
112
|
+
var temp__5804__auto__ = cljs.core.seq(s__58949__$1);
|
|
113
|
+
if(temp__5804__auto__){
|
|
114
|
+
var s__58949__$2 = temp__5804__auto__;
|
|
115
|
+
if(cljs.core.chunked_seq_QMARK_(s__58949__$2)){
|
|
116
|
+
var c__5478__auto__ = cljs.core.chunk_first(s__58949__$2);
|
|
117
|
+
var size__5479__auto__ = cljs.core.count(c__5478__auto__);
|
|
118
|
+
var b__58951 = cljs.core.chunk_buffer(size__5479__auto__);
|
|
119
|
+
if((function (){var i__58950 = (0);
|
|
120
|
+
while(true){
|
|
121
|
+
if((i__58950 < size__5479__auto__)){
|
|
122
|
+
var vec__58954 = cljs.core._nth(c__5478__auto__,i__58950);
|
|
123
|
+
var a = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__58954,(0),null);
|
|
124
|
+
var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__58954,(1),null);
|
|
125
|
+
cljs.core.chunk_append(b__58951,((datahike.db.utils.multival_QMARK_(e.db,a))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,datahike.impl.entity.multival__GT_js(v)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,v], null)));
|
|
126
|
+
|
|
127
|
+
var G__59054 = (i__58950 + (1));
|
|
128
|
+
i__58950 = G__59054;
|
|
129
|
+
continue;
|
|
130
|
+
} else {
|
|
131
|
+
return true;
|
|
132
|
+
}
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
})()){
|
|
136
|
+
return cljs.core.chunk_cons(cljs.core.chunk(b__58951),datahike$impl$entity$js_seq_$_iter__58948(cljs.core.chunk_rest(s__58949__$2)));
|
|
137
|
+
} else {
|
|
138
|
+
return cljs.core.chunk_cons(cljs.core.chunk(b__58951),null);
|
|
139
|
+
}
|
|
140
|
+
} else {
|
|
141
|
+
var vec__58957 = cljs.core.first(s__58949__$2);
|
|
142
|
+
var a = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__58957,(0),null);
|
|
143
|
+
var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__58957,(1),null);
|
|
144
|
+
return cljs.core.cons(((datahike.db.utils.multival_QMARK_(e.db,a))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,datahike.impl.entity.multival__GT_js(v)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,v], null)),datahike$impl$entity$js_seq_$_iter__58948(cljs.core.rest(s__58949__$2)));
|
|
145
|
+
}
|
|
146
|
+
} else {
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
break;
|
|
150
|
+
}
|
|
151
|
+
}),null,null));
|
|
152
|
+
});
|
|
153
|
+
return iter__5480__auto__(cljs.core.deref(e.cache));
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* @constructor
|
|
158
|
+
* @implements {cljs.core.IEquiv}
|
|
159
|
+
* @implements {cljs.core.IHash}
|
|
160
|
+
* @implements {cljs.core.IFn}
|
|
161
|
+
* @implements {cljs.core.ICounted}
|
|
162
|
+
* @implements {cljs.core.ISeqable}
|
|
163
|
+
* @implements {cljs.core.IPrintWithWriter}
|
|
164
|
+
* @implements {cljs.core.IAssociative}
|
|
165
|
+
* @implements {cljs.core.ILookup}
|
|
166
|
+
*/
|
|
167
|
+
datahike.impl.entity.Entity = (function (db,eid,touched,cache){
|
|
168
|
+
this.db = db;
|
|
169
|
+
this.eid = eid;
|
|
170
|
+
this.touched = touched;
|
|
171
|
+
this.cache = cache;
|
|
172
|
+
this.cljs$lang$protocol_mask$partition0$ = 2162164483;
|
|
173
|
+
this.cljs$lang$protocol_mask$partition1$ = 0;
|
|
174
|
+
});
|
|
175
|
+
(datahike.impl.entity.Entity.prototype.entry_set = (function (){
|
|
176
|
+
var self__ = this;
|
|
177
|
+
var this$ = this;
|
|
178
|
+
return cljs.core.to_array(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.to_array,datahike.impl.entity.js_seq(this$)));
|
|
179
|
+
}));
|
|
180
|
+
|
|
181
|
+
(datahike.impl.entity.Entity.prototype.forEach = (function() {
|
|
182
|
+
var G__59056 = null;
|
|
183
|
+
var G__59056__1 = (function (f){
|
|
184
|
+
var self__ = this;
|
|
185
|
+
var this$ = this;
|
|
186
|
+
var seq__58968 = cljs.core.seq(datahike.impl.entity.js_seq(this$));
|
|
187
|
+
var chunk__58969 = null;
|
|
188
|
+
var count__58970 = (0);
|
|
189
|
+
var i__58971 = (0);
|
|
190
|
+
while(true){
|
|
191
|
+
if((i__58971 < count__58970)){
|
|
192
|
+
var vec__58979 = chunk__58969.cljs$core$IIndexed$_nth$arity$2(null, i__58971);
|
|
193
|
+
var a = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__58979,(0),null);
|
|
194
|
+
var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__58979,(1),null);
|
|
195
|
+
(f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(v,a,this$) : f.call(null, v,a,this$));
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
var G__59057 = seq__58968;
|
|
199
|
+
var G__59058 = chunk__58969;
|
|
200
|
+
var G__59059 = count__58970;
|
|
201
|
+
var G__59060 = (i__58971 + (1));
|
|
202
|
+
seq__58968 = G__59057;
|
|
203
|
+
chunk__58969 = G__59058;
|
|
204
|
+
count__58970 = G__59059;
|
|
205
|
+
i__58971 = G__59060;
|
|
206
|
+
continue;
|
|
207
|
+
} else {
|
|
208
|
+
var temp__5804__auto__ = cljs.core.seq(seq__58968);
|
|
209
|
+
if(temp__5804__auto__){
|
|
210
|
+
var seq__58968__$1 = temp__5804__auto__;
|
|
211
|
+
if(cljs.core.chunked_seq_QMARK_(seq__58968__$1)){
|
|
212
|
+
var c__5525__auto__ = cljs.core.chunk_first(seq__58968__$1);
|
|
213
|
+
var G__59061 = cljs.core.chunk_rest(seq__58968__$1);
|
|
214
|
+
var G__59062 = c__5525__auto__;
|
|
215
|
+
var G__59063 = cljs.core.count(c__5525__auto__);
|
|
216
|
+
var G__59064 = (0);
|
|
217
|
+
seq__58968 = G__59061;
|
|
218
|
+
chunk__58969 = G__59062;
|
|
219
|
+
count__58970 = G__59063;
|
|
220
|
+
i__58971 = G__59064;
|
|
221
|
+
continue;
|
|
222
|
+
} else {
|
|
223
|
+
var vec__58982 = cljs.core.first(seq__58968__$1);
|
|
224
|
+
var a = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__58982,(0),null);
|
|
225
|
+
var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__58982,(1),null);
|
|
226
|
+
(f.cljs$core$IFn$_invoke$arity$3 ? f.cljs$core$IFn$_invoke$arity$3(v,a,this$) : f.call(null, v,a,this$));
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
var G__59065 = cljs.core.next(seq__58968__$1);
|
|
230
|
+
var G__59066 = null;
|
|
231
|
+
var G__59067 = (0);
|
|
232
|
+
var G__59068 = (0);
|
|
233
|
+
seq__58968 = G__59065;
|
|
234
|
+
chunk__58969 = G__59066;
|
|
235
|
+
count__58970 = G__59067;
|
|
236
|
+
i__58971 = G__59068;
|
|
237
|
+
continue;
|
|
238
|
+
}
|
|
239
|
+
} else {
|
|
240
|
+
return null;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
break;
|
|
244
|
+
}
|
|
245
|
+
});
|
|
246
|
+
var G__59056__2 = (function (f,use_as_this){
|
|
247
|
+
var self__ = this;
|
|
248
|
+
var this$ = this;
|
|
249
|
+
var seq__58985 = cljs.core.seq(datahike.impl.entity.js_seq(this$));
|
|
250
|
+
var chunk__58986 = null;
|
|
251
|
+
var count__58987 = (0);
|
|
252
|
+
var i__58988 = (0);
|
|
253
|
+
while(true){
|
|
254
|
+
if((i__58988 < count__58987)){
|
|
255
|
+
var vec__58995 = chunk__58986.cljs$core$IIndexed$_nth$arity$2(null, i__58988);
|
|
256
|
+
var a = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__58995,(0),null);
|
|
257
|
+
var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__58995,(1),null);
|
|
258
|
+
f.call(use_as_this,v,a,this$);
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
var G__59069 = seq__58985;
|
|
262
|
+
var G__59070 = chunk__58986;
|
|
263
|
+
var G__59071 = count__58987;
|
|
264
|
+
var G__59072 = (i__58988 + (1));
|
|
265
|
+
seq__58985 = G__59069;
|
|
266
|
+
chunk__58986 = G__59070;
|
|
267
|
+
count__58987 = G__59071;
|
|
268
|
+
i__58988 = G__59072;
|
|
269
|
+
continue;
|
|
270
|
+
} else {
|
|
271
|
+
var temp__5804__auto__ = cljs.core.seq(seq__58985);
|
|
272
|
+
if(temp__5804__auto__){
|
|
273
|
+
var seq__58985__$1 = temp__5804__auto__;
|
|
274
|
+
if(cljs.core.chunked_seq_QMARK_(seq__58985__$1)){
|
|
275
|
+
var c__5525__auto__ = cljs.core.chunk_first(seq__58985__$1);
|
|
276
|
+
var G__59073 = cljs.core.chunk_rest(seq__58985__$1);
|
|
277
|
+
var G__59074 = c__5525__auto__;
|
|
278
|
+
var G__59075 = cljs.core.count(c__5525__auto__);
|
|
279
|
+
var G__59076 = (0);
|
|
280
|
+
seq__58985 = G__59073;
|
|
281
|
+
chunk__58986 = G__59074;
|
|
282
|
+
count__58987 = G__59075;
|
|
283
|
+
i__58988 = G__59076;
|
|
284
|
+
continue;
|
|
285
|
+
} else {
|
|
286
|
+
var vec__58999 = cljs.core.first(seq__58985__$1);
|
|
287
|
+
var a = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__58999,(0),null);
|
|
288
|
+
var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__58999,(1),null);
|
|
289
|
+
f.call(use_as_this,v,a,this$);
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
var G__59077 = cljs.core.next(seq__58985__$1);
|
|
293
|
+
var G__59078 = null;
|
|
294
|
+
var G__59079 = (0);
|
|
295
|
+
var G__59080 = (0);
|
|
296
|
+
seq__58985 = G__59077;
|
|
297
|
+
chunk__58986 = G__59078;
|
|
298
|
+
count__58987 = G__59079;
|
|
299
|
+
i__58988 = G__59080;
|
|
300
|
+
continue;
|
|
301
|
+
}
|
|
302
|
+
} else {
|
|
303
|
+
return null;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
break;
|
|
307
|
+
}
|
|
308
|
+
});
|
|
309
|
+
G__59056 = function(f,use_as_this){
|
|
310
|
+
switch(arguments.length){
|
|
311
|
+
case 1:
|
|
312
|
+
return G__59056__1.call(this,f);
|
|
313
|
+
case 2:
|
|
314
|
+
return G__59056__2.call(this,f,use_as_this);
|
|
315
|
+
}
|
|
316
|
+
throw(new Error('Invalid arity: ' + arguments.length));
|
|
317
|
+
};
|
|
318
|
+
G__59056.cljs$core$IFn$_invoke$arity$1 = G__59056__1;
|
|
319
|
+
G__59056.cljs$core$IFn$_invoke$arity$2 = G__59056__2;
|
|
320
|
+
return G__59056;
|
|
321
|
+
})()
|
|
322
|
+
);
|
|
323
|
+
|
|
324
|
+
(datahike.impl.entity.Entity.prototype.get = (function (a_ident){
|
|
325
|
+
var self__ = this;
|
|
326
|
+
var this$ = this;
|
|
327
|
+
if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a_ident,":db/id")){
|
|
328
|
+
return self__.eid;
|
|
329
|
+
} else {
|
|
330
|
+
if(datahike.db.utils.reverse_ref_QMARK_(a_ident)){
|
|
331
|
+
return datahike.impl.entity.multival__GT_js(datahike.impl.entity._lookup_backwards(self__.db,self__.eid,datahike.db.utils.reverse_ref(a_ident),null));
|
|
332
|
+
} else {
|
|
333
|
+
var G__59002 = (datahike.impl.entity.lookup_entity.cljs$core$IFn$_invoke$arity$2 ? datahike.impl.entity.lookup_entity.cljs$core$IFn$_invoke$arity$2(this$,a_ident) : datahike.impl.entity.lookup_entity.call(null, this$,a_ident));
|
|
334
|
+
if(datahike.db.utils.multival_QMARK_(self__.db,a_ident)){
|
|
335
|
+
return datahike.impl.entity.multival__GT_js(G__59002);
|
|
336
|
+
} else {
|
|
337
|
+
return G__59002;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
}));
|
|
342
|
+
|
|
343
|
+
(datahike.impl.entity.Entity.prototype.key_set = (function (){
|
|
344
|
+
var self__ = this;
|
|
345
|
+
var this$ = this;
|
|
346
|
+
return cljs.core.to_array(cljs.core.keys(this$));
|
|
347
|
+
}));
|
|
348
|
+
|
|
349
|
+
(datahike.impl.entity.Entity.prototype.entries = (function (){
|
|
350
|
+
var self__ = this;
|
|
351
|
+
var this$ = this;
|
|
352
|
+
return cljs.core.es6_entries_iterator(datahike.impl.entity.js_seq(this$));
|
|
353
|
+
}));
|
|
354
|
+
|
|
355
|
+
(datahike.impl.entity.Entity.prototype.value_set = (function (){
|
|
356
|
+
var self__ = this;
|
|
357
|
+
var this$ = this;
|
|
358
|
+
return cljs.core.to_array(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.second,datahike.impl.entity.js_seq(this$)));
|
|
359
|
+
}));
|
|
360
|
+
|
|
361
|
+
(datahike.impl.entity.Entity.prototype.toString = (function (){
|
|
362
|
+
var self__ = this;
|
|
363
|
+
var this$ = this;
|
|
364
|
+
return cljs.core.pr_str_STAR_(this$);
|
|
365
|
+
}));
|
|
366
|
+
|
|
367
|
+
(datahike.impl.entity.Entity.prototype.keys = (function (){
|
|
368
|
+
var self__ = this;
|
|
369
|
+
var this$ = this;
|
|
370
|
+
return cljs.core.es6_iterator(cljs.core.keys(this$));
|
|
371
|
+
}));
|
|
372
|
+
|
|
373
|
+
(datahike.impl.entity.Entity.prototype.values = (function (){
|
|
374
|
+
var self__ = this;
|
|
375
|
+
var this$ = this;
|
|
376
|
+
return cljs.core.es6_iterator(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.second,datahike.impl.entity.js_seq(this$)));
|
|
377
|
+
}));
|
|
378
|
+
|
|
379
|
+
(datahike.impl.entity.Entity.prototype.equiv = (function (other){
|
|
380
|
+
var self__ = this;
|
|
381
|
+
var this$ = this;
|
|
382
|
+
return (datahike.impl.entity.equiv_entity.cljs$core$IFn$_invoke$arity$2 ? datahike.impl.entity.equiv_entity.cljs$core$IFn$_invoke$arity$2(this$,other) : datahike.impl.entity.equiv_entity.call(null, this$,other));
|
|
383
|
+
}));
|
|
384
|
+
|
|
385
|
+
(datahike.impl.entity.Entity.prototype.has = (function (a_ident){
|
|
386
|
+
var self__ = this;
|
|
387
|
+
var this$ = this;
|
|
388
|
+
return (!((this$.get(a_ident) == null)));
|
|
389
|
+
}));
|
|
390
|
+
|
|
391
|
+
(datahike.impl.entity.Entity.prototype.cljs$core$ILookup$_lookup$arity$2 = (function (this$,a_ident){
|
|
392
|
+
var self__ = this;
|
|
393
|
+
var this$__$1 = this;
|
|
394
|
+
return (datahike.impl.entity.lookup_entity.cljs$core$IFn$_invoke$arity$3 ? datahike.impl.entity.lookup_entity.cljs$core$IFn$_invoke$arity$3(this$__$1,a_ident,null) : datahike.impl.entity.lookup_entity.call(null, this$__$1,a_ident,null));
|
|
395
|
+
}));
|
|
396
|
+
|
|
397
|
+
(datahike.impl.entity.Entity.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this$,a_ident,not_found){
|
|
398
|
+
var self__ = this;
|
|
399
|
+
var this$__$1 = this;
|
|
400
|
+
return (datahike.impl.entity.lookup_entity.cljs$core$IFn$_invoke$arity$3 ? datahike.impl.entity.lookup_entity.cljs$core$IFn$_invoke$arity$3(this$__$1,a_ident,not_found) : datahike.impl.entity.lookup_entity.call(null, this$__$1,a_ident,not_found));
|
|
401
|
+
}));
|
|
402
|
+
|
|
403
|
+
(datahike.impl.entity.Entity.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (_,writer,opts){
|
|
404
|
+
var self__ = this;
|
|
405
|
+
var ___$1 = this;
|
|
406
|
+
return cljs.core._pr_writer(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(self__.cache),new cljs.core.Keyword("db","id","db/id",-1388397098),self__.eid),writer,opts);
|
|
407
|
+
}));
|
|
408
|
+
|
|
409
|
+
(datahike.impl.entity.Entity.prototype.cljs$core$ICounted$_count$arity$1 = (function (this$){
|
|
410
|
+
var self__ = this;
|
|
411
|
+
var this$__$1 = this;
|
|
412
|
+
(datahike.impl.entity.touch.cljs$core$IFn$_invoke$arity$1 ? datahike.impl.entity.touch.cljs$core$IFn$_invoke$arity$1(this$__$1) : datahike.impl.entity.touch.call(null, this$__$1));
|
|
413
|
+
|
|
414
|
+
return cljs.core.count(cljs.core.deref(self__.cache));
|
|
415
|
+
}));
|
|
416
|
+
|
|
417
|
+
(datahike.impl.entity.Entity.prototype.cljs$core$IHash$_hash$arity$1 = (function (_){
|
|
418
|
+
var self__ = this;
|
|
419
|
+
var ___$1 = this;
|
|
420
|
+
return cljs.core.hash(self__.eid);
|
|
421
|
+
}));
|
|
422
|
+
|
|
423
|
+
(datahike.impl.entity.Entity.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this$,o){
|
|
424
|
+
var self__ = this;
|
|
425
|
+
var this$__$1 = this;
|
|
426
|
+
return (datahike.impl.entity.equiv_entity.cljs$core$IFn$_invoke$arity$2 ? datahike.impl.entity.equiv_entity.cljs$core$IFn$_invoke$arity$2(this$__$1,o) : datahike.impl.entity.equiv_entity.call(null, this$__$1,o));
|
|
427
|
+
}));
|
|
428
|
+
|
|
429
|
+
(datahike.impl.entity.Entity.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = (function (this$,k){
|
|
430
|
+
var self__ = this;
|
|
431
|
+
var this$__$1 = this;
|
|
432
|
+
return cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword("datahike.impl.entity","nf","datahike.impl.entity/nf",-1428330489),(datahike.impl.entity.lookup_entity.cljs$core$IFn$_invoke$arity$3 ? datahike.impl.entity.lookup_entity.cljs$core$IFn$_invoke$arity$3(this$__$1,k,new cljs.core.Keyword("datahike.impl.entity","nf","datahike.impl.entity/nf",-1428330489)) : datahike.impl.entity.lookup_entity.call(null, this$__$1,k,new cljs.core.Keyword("datahike.impl.entity","nf","datahike.impl.entity/nf",-1428330489))));
|
|
433
|
+
}));
|
|
434
|
+
|
|
435
|
+
(datahike.impl.entity.Entity.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this$){
|
|
436
|
+
var self__ = this;
|
|
437
|
+
var this$__$1 = this;
|
|
438
|
+
(datahike.impl.entity.touch.cljs$core$IFn$_invoke$arity$1 ? datahike.impl.entity.touch.cljs$core$IFn$_invoke$arity$1(this$__$1) : datahike.impl.entity.touch.call(null, this$__$1));
|
|
439
|
+
|
|
440
|
+
return cljs.core.seq(cljs.core.deref(self__.cache));
|
|
441
|
+
}));
|
|
442
|
+
|
|
443
|
+
(datahike.impl.entity.Entity.prototype.call = (function (unused__11820__auto__){
|
|
444
|
+
var self__ = this;
|
|
445
|
+
var self__ = this;
|
|
446
|
+
var G__59009 = (arguments.length - (1));
|
|
447
|
+
switch (G__59009) {
|
|
448
|
+
case (1):
|
|
449
|
+
return self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)]));
|
|
450
|
+
|
|
451
|
+
break;
|
|
452
|
+
case (2):
|
|
453
|
+
return self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)]));
|
|
454
|
+
|
|
455
|
+
break;
|
|
456
|
+
default:
|
|
457
|
+
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join('')));
|
|
458
|
+
|
|
459
|
+
}
|
|
460
|
+
}));
|
|
461
|
+
|
|
462
|
+
(datahike.impl.entity.Entity.prototype.apply = (function (self__,args58963){
|
|
463
|
+
var self__ = this;
|
|
464
|
+
var self____$1 = this;
|
|
465
|
+
return self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args58963)));
|
|
466
|
+
}));
|
|
467
|
+
|
|
468
|
+
(datahike.impl.entity.Entity.prototype.cljs$core$IFn$_invoke$arity$1 = (function (k){
|
|
469
|
+
var self__ = this;
|
|
470
|
+
var this$ = this;
|
|
471
|
+
return (datahike.impl.entity.lookup_entity.cljs$core$IFn$_invoke$arity$2 ? datahike.impl.entity.lookup_entity.cljs$core$IFn$_invoke$arity$2(this$,k) : datahike.impl.entity.lookup_entity.call(null, this$,k));
|
|
472
|
+
}));
|
|
473
|
+
|
|
474
|
+
(datahike.impl.entity.Entity.prototype.cljs$core$IFn$_invoke$arity$2 = (function (k,not_found){
|
|
475
|
+
var self__ = this;
|
|
476
|
+
var this$ = this;
|
|
477
|
+
return (datahike.impl.entity.lookup_entity.cljs$core$IFn$_invoke$arity$3 ? datahike.impl.entity.lookup_entity.cljs$core$IFn$_invoke$arity$3(this$,k,not_found) : datahike.impl.entity.lookup_entity.call(null, this$,k,not_found));
|
|
478
|
+
}));
|
|
479
|
+
|
|
480
|
+
(datahike.impl.entity.Entity.getBasis = (function (){
|
|
481
|
+
return new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"db","db",-1661185010,null),new cljs.core.Symbol(null,"eid","eid",-2094915839,null),new cljs.core.Symbol(null,"touched","touched",1031397108,null),new cljs.core.Symbol(null,"cache","cache",403508473,null)], null);
|
|
482
|
+
}));
|
|
483
|
+
|
|
484
|
+
(datahike.impl.entity.Entity.cljs$lang$type = true);
|
|
485
|
+
|
|
486
|
+
(datahike.impl.entity.Entity.cljs$lang$ctorStr = "datahike.impl.entity/Entity");
|
|
487
|
+
|
|
488
|
+
(datahike.impl.entity.Entity.cljs$lang$ctorPrWriter = (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){
|
|
489
|
+
return cljs.core._write(writer__5288__auto__,"datahike.impl.entity/Entity");
|
|
490
|
+
}));
|
|
491
|
+
|
|
492
|
+
/**
|
|
493
|
+
* Positional factory function for datahike.impl.entity/Entity.
|
|
494
|
+
*/
|
|
495
|
+
datahike.impl.entity.__GT_Entity = (function datahike$impl$entity$__GT_Entity(db,eid,touched,cache){
|
|
496
|
+
return (new datahike.impl.entity.Entity(db,eid,touched,cache));
|
|
497
|
+
});
|
|
498
|
+
|
|
499
|
+
datahike.impl.entity.entity_QMARK_ = (function datahike$impl$entity$entity_QMARK_(x){
|
|
500
|
+
return (x instanceof datahike.impl.entity.Entity);
|
|
501
|
+
});
|
|
502
|
+
datahike.impl.entity.equiv_entity = (function datahike$impl$entity$equiv_entity(this$,that){
|
|
503
|
+
return (((that instanceof datahike.impl.entity.Entity)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this$.db,that.db)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this$.eid,that.eid)))));
|
|
504
|
+
});
|
|
505
|
+
datahike.impl.entity.lookup_entity = (function datahike$impl$entity$lookup_entity(var_args){
|
|
506
|
+
var G__59025 = arguments.length;
|
|
507
|
+
switch (G__59025) {
|
|
508
|
+
case 2:
|
|
509
|
+
return datahike.impl.entity.lookup_entity.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
|
|
510
|
+
|
|
511
|
+
break;
|
|
512
|
+
case 3:
|
|
513
|
+
return datahike.impl.entity.lookup_entity.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
|
|
514
|
+
|
|
515
|
+
break;
|
|
516
|
+
default:
|
|
517
|
+
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
|
|
518
|
+
|
|
519
|
+
}
|
|
520
|
+
});
|
|
521
|
+
|
|
522
|
+
(datahike.impl.entity.lookup_entity.cljs$core$IFn$_invoke$arity$2 = (function (this$,a_ident){
|
|
523
|
+
return datahike.impl.entity.lookup_entity.cljs$core$IFn$_invoke$arity$3(this$,a_ident,null);
|
|
524
|
+
}));
|
|
525
|
+
|
|
526
|
+
(datahike.impl.entity.lookup_entity.cljs$core$IFn$_invoke$arity$3 = (function (this$,a_ident,not_found){
|
|
527
|
+
if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a_ident,new cljs.core.Keyword("db","id","db/id",-1388397098))){
|
|
528
|
+
return this$.eid;
|
|
529
|
+
} else {
|
|
530
|
+
if(datahike.db.utils.reverse_ref_QMARK_(a_ident)){
|
|
531
|
+
return datahike.impl.entity._lookup_backwards(this$.db,this$.eid,datahike.db.utils.reverse_ref(a_ident),not_found);
|
|
532
|
+
} else {
|
|
533
|
+
var temp__5806__auto__ = (function (){var fexpr__59035 = cljs.core.deref(this$.cache);
|
|
534
|
+
return (fexpr__59035.cljs$core$IFn$_invoke$arity$1 ? fexpr__59035.cljs$core$IFn$_invoke$arity$1(a_ident) : fexpr__59035.call(null, a_ident));
|
|
535
|
+
})();
|
|
536
|
+
if((temp__5806__auto__ == null)){
|
|
537
|
+
if(cljs.core.truth_(cljs.core.deref(this$.touched))){
|
|
538
|
+
return not_found;
|
|
539
|
+
} else {
|
|
540
|
+
var temp__5802__auto__ = (cljs.core.truth_(new cljs.core.Keyword(null,"attribute-refs?","attribute-refs?",-1070298065).cljs$core$IFn$_invoke$arity$1(datahike.db.interface$._config(this$.db)))?datahike.db.interface$._ref_for(this$.db,a_ident):a_ident);
|
|
541
|
+
if(cljs.core.truth_(temp__5802__auto__)){
|
|
542
|
+
var a_db = temp__5802__auto__;
|
|
543
|
+
var temp__5806__auto____$1 = cljs.core.not_empty(datahike.db.interface$.search(this$.db,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [this$.eid,a_db], null)));
|
|
544
|
+
if((temp__5806__auto____$1 == null)){
|
|
545
|
+
return not_found;
|
|
546
|
+
} else {
|
|
547
|
+
var datoms = temp__5806__auto____$1;
|
|
548
|
+
var value = datahike.impl.entity.entity_attr(this$.db,a_ident,datoms);
|
|
549
|
+
cljs.core.vreset_BANG_(this$.cache,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(this$.cache),a_ident,value));
|
|
550
|
+
|
|
551
|
+
return value;
|
|
552
|
+
}
|
|
553
|
+
} else {
|
|
554
|
+
return not_found;
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
} else {
|
|
558
|
+
var v = temp__5806__auto__;
|
|
559
|
+
return v;
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
}));
|
|
564
|
+
|
|
565
|
+
(datahike.impl.entity.lookup_entity.cljs$lang$maxFixedArity = 3);
|
|
566
|
+
|
|
567
|
+
datahike.impl.entity.touch_components = (function datahike$impl$entity$touch_components(db,a__GT_v){
|
|
568
|
+
return cljs.core.reduce_kv((function (acc,a_ident,v){
|
|
569
|
+
return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,a_ident,((datahike.db.utils.component_QMARK_(db,a_ident))?((datahike.db.utils.multival_QMARK_(db,a_ident))?cljs.core.set(cljs.core.map.cljs$core$IFn$_invoke$arity$2(datahike.impl.entity.touch,v)):(datahike.impl.entity.touch.cljs$core$IFn$_invoke$arity$1 ? datahike.impl.entity.touch.cljs$core$IFn$_invoke$arity$1(v) : datahike.impl.entity.touch.call(null, v))):v));
|
|
570
|
+
}),cljs.core.PersistentArrayMap.EMPTY,a__GT_v);
|
|
571
|
+
});
|
|
572
|
+
datahike.impl.entity.datoms__GT_cache = (function datahike$impl$entity$datoms__GT_cache(db,datoms){
|
|
573
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,partition){
|
|
574
|
+
var a_db = new cljs.core.Keyword(null,"a","a",-2123407586).cljs$core$IFn$_invoke$arity$1(cljs.core.first(partition));
|
|
575
|
+
var a_ident = (cljs.core.truth_(new cljs.core.Keyword(null,"attribute-refs?","attribute-refs?",-1070298065).cljs$core$IFn$_invoke$arity$1(datahike.db.interface$._config(db)))?datahike.db.interface$._ident_for(db,a_db):a_db);
|
|
576
|
+
return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,a_ident,datahike.impl.entity.entity_attr(db,a_ident,partition));
|
|
577
|
+
}),cljs.core.PersistentArrayMap.EMPTY,cljs.core.partition_by.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"a","a",-2123407586),datoms));
|
|
578
|
+
});
|
|
579
|
+
datahike.impl.entity.touch = (function datahike$impl$entity$touch(e){
|
|
580
|
+
if(datahike.impl.entity.entity_QMARK_(e)){
|
|
581
|
+
} else {
|
|
582
|
+
throw (new Error("Assert failed: (entity? e)"));
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
if(cljs.core.truth_(cljs.core.deref(e.touched))){
|
|
586
|
+
} else {
|
|
587
|
+
var temp__5804__auto___59110 = cljs.core.not_empty(datahike.db.interface$.search(e.db,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [e.eid], null)));
|
|
588
|
+
if(cljs.core.truth_(temp__5804__auto___59110)){
|
|
589
|
+
var datoms_59111 = temp__5804__auto___59110;
|
|
590
|
+
cljs.core.vreset_BANG_(e.cache,datahike.impl.entity.touch_components(e.db,datahike.impl.entity.datoms__GT_cache(e.db,datoms_59111)));
|
|
591
|
+
|
|
592
|
+
cljs.core.vreset_BANG_(e.touched,true);
|
|
593
|
+
} else {
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
return e;
|
|
598
|
+
});
|
|
599
|
+
goog.exportSymbol("datahike.impl.entity.Entity",datahike.impl.entity.Entity);
|
|
600
|
+
datahike.impl.entity.entity_db = (function datahike$impl$entity$entity_db(entity){
|
|
601
|
+
return entity.db;
|
|
602
|
+
});
|
|
603
|
+
|
|
604
|
+
//# sourceMappingURL=datahike.impl.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["datahike/impl/entity.cljc"],"mappings":"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","names":["datahike.impl.entity/entid","db","eid","cljs.core/sequential?","cljs.core/Keyword","datahike.db.utils.entid","js/Error","datahike.impl.entity/entity","datahike.db.utils/db?","temp__5804__auto__","e","G__58929","G__58930","G__58931","G__58932","datahike.impl.entity/->Entity","cljs.core/volatile!","datahike.impl.entity/entity-attr","a-ident","datoms","datahike.db.utils/multival?","datahike.db.utils/ref?","p1__58933#","p2__58934#","cljs.core.reduce","cljs.core.conj","p1__58935#","p2__58936#","cljs.core/first","datahike.impl.entity/-lookup-backwards","not-found","a-db","datahike.db.interface/-config","datahike.db.interface/-ref-for","temp__5802__auto__","cljs.core/not-empty","datahike.db.interface/search","datahike.db.utils/component?","p1__58943#","p2__58944#","datahike.impl.entity/multival->js","val","cljs.core/to-array","datahike.impl.entity/js-seq","datahike.impl.entity/touch","iter__5480__auto__","s__58949","cljs.core/LazySeq","cljs.core/seq","cljs.core/chunked-seq?","c__5478__auto__","size__5479__auto__","cljs.core/count","b__58951","cljs.core/chunk-buffer","i__58950","vec__58954","cljs.core/-nth","cljs.core.nth","cljs.core/chunk-append","cljs.core/chunk-cons","cljs.core/chunk","iter__58948","cljs.core/chunk-rest","vec__58957","cljs.core/cons","cljs.core/rest","cljs.core/deref","a","v","unused__11820__auto__","self__","G__59009","args58963","cljs.core/aclone","this__5287__auto__","writer__5288__auto__","opt__5289__auto__","cljs.core/-write","datahike.impl.entity/Entity","touched","cache","this","cljs.core/pr-str*","other","datahike.impl.entity/equiv-entity","cljs.core/es6-iterator","cljs.core/keys","cljs.core/es6-entries-iterator","cljs.core.map","cljs.core/second","cljs.core._EQ_","datahike.db.utils/reverse-ref?","datahike.db.utils/reverse-ref","G__59002","datahike.impl.entity/lookup-entity","f","seq__58968","chunk__58969","count__58970","i__58971","vec__58979","c__5525__auto__","cljs.core/chunk-first","vec__58982","cljs.core/next","use-as-this","seq__58985","chunk__58986","count__58987","i__58988","vec__58995","vec__58999","o","_","cljs.core/hash","k","cljs.core.not_EQ_","writer","opts","cljs.core/-pr-writer","cljs.core.assoc","datahike.impl.entity/entity?","x","that","var_args","G__59025","datahike.impl.entity.lookup_entity","temp__5806__auto__","fexpr__59035","value","cljs.core/vreset!","datahike.impl.entity/touch-components","a->v","cljs.core/reduce-kv","acc","cljs.core/set","datahike.impl.entity/datoms->cache","partition","datahike.db.interface/-ident-for","cljs.core.partition_by","goog/exportSymbol","datahike.impl.entity/entity-db","entity"],"sourcesContent":["(ns ^:no-doc datahike.impl.entity\n (:refer-clojure :exclude [keys get])\n (:require [#?(:cljs cljs.core :clj clojure.core)]\n [datahike.db :as db]\n [datahike.db.interface :as dbi]\n [datahike.db.utils :as dbu])\n #?(:clj (:import [datahike.java IEntity])))\n\n(declare entity ->Entity equiv-entity lookup-entity touch)\n\n(defn- entid [db eid]\n (when (or (number? eid)\n (sequential? eid)\n (keyword? eid))\n (dbu/entid db eid)))\n\n(defn entity [db eid]\n {:pre [(dbu/db? db)]}\n (when-let [e (entid db eid)]\n (->Entity db e (volatile! false) (volatile! {}))))\n\n(defn- entity-attr [db a-ident datoms]\n (if (dbu/multival? db a-ident)\n (if (dbu/ref? db a-ident)\n (reduce #(conj %1 (entity db (:v %2))) #{} datoms)\n (reduce #(conj %1 (:v %2)) #{} datoms))\n (if (dbu/ref? db a-ident)\n (entity db (:v (first datoms)))\n (:v (first datoms)))))\n\n(defn- -lookup-backwards\n \"Translate reverse attribute recording to database and find datoms\"\n [db eid a-ident not-found]\n (let [a-db (if (:attribute-refs? (dbi/-config db)) (dbi/-ref-for db a-ident) a-ident)]\n (if-let [datoms (not-empty (dbi/search db [nil a-db eid]))]\n (if (dbu/component? db a-ident)\n (entity db (:e (first datoms)))\n (reduce #(conj %1 (entity db (:e %2))) #{} datoms))\n not-found)))\n\n#?(:cljs\n (defn- multival->js [val]\n (when val (to-array val))))\n\n#?(:cljs\n (defn- js-seq [e]\n (touch e)\n (for [[a v] @(.-cache e)]\n (if (dbu/multival? (.-db e) a)\n [a (multival->js v)]\n [a v]))))\n\n(deftype Entity [db eid touched cache]\n #?@(:cljs\n [Object\n (toString [this]\n (pr-str* this))\n (equiv [this other]\n (equiv-entity this other))\n\n ;; js/map interface\n (keys [this]\n (es6-iterator (cljs.core/keys this)))\n (entries [this]\n (es6-entries-iterator (js-seq this)))\n (values [this]\n (es6-iterator (map second (js-seq this))))\n (has [this a-ident]\n (not (nil? (.get this a-ident))))\n (get [this a-ident]\n (if (= a-ident \":db/id\")\n eid\n (if (dbu/reverse-ref? a-ident)\n (-> (-lookup-backwards db eid (dbu/reverse-ref a-ident) nil)\n multival->js)\n (cond-> (lookup-entity this a-ident)\n (dbu/multival? db a-ident) multival->js))))\n (forEach [this f]\n (doseq [[a v] (js-seq this)]\n (f v a this)))\n (forEach [this f use-as-this]\n (doseq [[a v] (js-seq this)]\n (.call f use-as-this v a this)))\n\n ;; js fallbacks\n (key_set [this] (to-array (cljs.core/keys this)))\n (entry_set [this] (to-array (map to-array (js-seq this))))\n (value_set [this] (to-array (map second (js-seq this))))\n\n IEquiv\n (-equiv [this o] (equiv-entity this o))\n\n IHash\n (-hash [_]\n (hash eid)) ;; db?\n\n ISeqable\n (-seq [this]\n (touch this)\n (seq @cache))\n\n ICounted\n (-count [this]\n (touch this)\n (count @cache))\n\n ILookup\n (-lookup [this a-ident] (lookup-entity this a-ident nil))\n (-lookup [this a-ident not-found] (lookup-entity this a-ident not-found))\n\n IAssociative\n (-contains-key? [this k]\n (not= ::nf (lookup-entity this k ::nf)))\n\n IFn\n (-invoke [this k]\n (lookup-entity this k))\n (-invoke [this k not-found]\n (lookup-entity this k not-found))\n\n IPrintWithWriter\n (-pr-writer [_ writer opts]\n (-pr-writer (assoc @cache :db/id eid) writer opts))]\n\n :clj\n [Object\n IEntity\n (toString [e] (pr-str (assoc @cache :db/id eid)))\n (hashCode [e] (hash eid)) ; db?\n (equals [e o] (equiv-entity e o))\n\n clojure.lang.Seqable\n (seq [e] (touch e) (seq @cache))\n\n clojure.lang.Associative\n (equiv [e o] (equiv-entity e o))\n (containsKey [e k] (not= ::nf (lookup-entity e k ::nf)))\n (entryAt [e k] (some->> (lookup-entity e k) (clojure.lang.MapEntry. k)))\n\n (empty [e] {})\n (assoc [e k v] (throw (UnsupportedOperationException.)))\n (cons [e [k v]] (throw (UnsupportedOperationException.)))\n (count [e] (touch e) (count @(.-cache e)))\n\n clojure.lang.ILookup\n (valAt [e k] (lookup-entity e k))\n (valAt [e k not-found] (lookup-entity e k not-found))\n\n clojure.lang.IFn\n (invoke [e k] (lookup-entity e k))\n (invoke [e k not-found] (lookup-entity e k not-found))]))\n\n(defn entity? [x] (instance? Entity x))\n\n#?(:clj\n (defmethod print-method Entity [e, ^java.io.Writer w]\n (.write w (str e))))\n\n(defn- equiv-entity [^Entity this that]\n (and\n (instance? Entity that)\n (= (.-db ^Entity this) (.-db ^Entity that))\n (= (.-eid this) (.-eid ^Entity that))))\n\n(defn- lookup-entity\n ([this a-ident] (lookup-entity this a-ident nil))\n ([^Entity this a-ident not-found]\n (if (= a-ident :db/id)\n (.-eid this)\n (if (dbu/reverse-ref? a-ident)\n (-lookup-backwards (.-db this) (.-eid this) (dbu/reverse-ref a-ident) not-found)\n (if-some [v (@(.-cache this) a-ident)]\n v\n (if @(.-touched this)\n not-found\n (if-let [a-db (if (:attribute-refs? (dbi/-config (.-db this)))\n (dbi/-ref-for (.-db this) a-ident)\n a-ident)]\n (if-some [datoms (not-empty (dbi/search (.-db this) [(.-eid this) a-db]))]\n (let [value (entity-attr (.-db this) a-ident datoms)]\n (vreset! (.-cache this) (assoc @(.-cache this) a-ident value))\n value)\n not-found)\n not-found)))))))\n\n(defn touch-components [db a->v]\n (reduce-kv (fn [acc a-ident v]\n (assoc acc a-ident\n (if (dbu/component? db a-ident)\n (if (dbu/multival? db a-ident)\n (set (map touch v))\n (touch v))\n v)))\n {} a->v))\n\n(defn- datoms->cache [db datoms]\n (reduce (fn [acc partition]\n (let [a-db (:a (first partition))\n a-ident (if (:attribute-refs? (dbi/-config db))\n (dbi/-ident-for db a-db)\n a-db)]\n (assoc acc a-ident (entity-attr db a-ident partition))))\n {} (partition-by :a datoms)))\n\n(defn touch [^Entity e]\n {:pre [(entity? e)]}\n (when-not @(.-touched e)\n (when-let [datoms (not-empty (dbi/search (.-db e) [(.-eid e)]))]\n (vreset! (.-cache e) (->> datoms\n (datoms->cache (.-db e))\n (touch-components (.-db e))))\n (vreset! (.-touched e) true)))\n e)\n\n#?(:cljs (goog/exportSymbol \"datahike.impl.entity.Entity\" Entity))\n\n(defn entity-db [^Entity entity]\n (.-db entity))\n"]}
|