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.
Files changed (282) hide show
  1. package/README.md +226 -0
  2. package/cljs.analyzer.api.js +427 -0
  3. package/cljs.analyzer.api.js.map +1 -0
  4. package/cljs.analyzer.impl.js +86 -0
  5. package/cljs.analyzer.impl.js.map +1 -0
  6. package/cljs.analyzer.impl.namespaces.js +219 -0
  7. package/cljs.analyzer.impl.namespaces.js.map +1 -0
  8. package/cljs.analyzer.js +7186 -0
  9. package/cljs.analyzer.js.map +1 -0
  10. package/cljs.analyzer.passes.and_or.js +141 -0
  11. package/cljs.analyzer.passes.and_or.js.map +1 -0
  12. package/cljs.analyzer.passes.js +104 -0
  13. package/cljs.analyzer.passes.js.map +1 -0
  14. package/cljs.cache.js +1145 -0
  15. package/cljs.cache.js.map +1 -0
  16. package/cljs.cache.wrapped.js +352 -0
  17. package/cljs.cache.wrapped.js.map +1 -0
  18. package/cljs.core.async.impl.buffers.js +489 -0
  19. package/cljs.core.async.impl.buffers.js.map +1 -0
  20. package/cljs.core.async.impl.channels.js +711 -0
  21. package/cljs.core.async.impl.channels.js.map +1 -0
  22. package/cljs.core.async.impl.dispatch.js +81 -0
  23. package/cljs.core.async.impl.dispatch.js.map +1 -0
  24. package/cljs.core.async.impl.ioc_helpers.js +192 -0
  25. package/cljs.core.async.impl.ioc_helpers.js.map +1 -0
  26. package/cljs.core.async.impl.protocols.js +368 -0
  27. package/cljs.core.async.impl.protocols.js.map +1 -0
  28. package/cljs.core.async.impl.timers.js +510 -0
  29. package/cljs.core.async.impl.timers.js.map +1 -0
  30. package/cljs.core.async.js +8813 -0
  31. package/cljs.core.async.js.map +1 -0
  32. package/cljs.core.js +38764 -0
  33. package/cljs.core.js.map +1 -0
  34. package/cljs.env.js +60 -0
  35. package/cljs.env.js.map +1 -0
  36. package/cljs.nodejs.js +80 -0
  37. package/cljs.nodejs.js.map +1 -0
  38. package/cljs.reader.js +462 -0
  39. package/cljs.reader.js.map +1 -0
  40. package/cljs.spec.alpha.js +5312 -0
  41. package/cljs.spec.alpha.js.map +1 -0
  42. package/cljs.spec.gen.alpha.js +2020 -0
  43. package/cljs.spec.gen.alpha.js.map +1 -0
  44. package/cljs.tagged_literals.js +103 -0
  45. package/cljs.tagged_literals.js.map +1 -0
  46. package/cljs.tools.reader.edn.js +960 -0
  47. package/cljs.tools.reader.edn.js.map +1 -0
  48. package/cljs.tools.reader.impl.commons.js +217 -0
  49. package/cljs.tools.reader.impl.commons.js.map +1 -0
  50. package/cljs.tools.reader.impl.errors.js +441 -0
  51. package/cljs.tools.reader.impl.errors.js.map +1 -0
  52. package/cljs.tools.reader.impl.inspect.js +182 -0
  53. package/cljs.tools.reader.impl.inspect.js.map +1 -0
  54. package/cljs.tools.reader.impl.utils.js +429 -0
  55. package/cljs.tools.reader.impl.utils.js.map +1 -0
  56. package/cljs.tools.reader.js +1830 -0
  57. package/cljs.tools.reader.js.map +1 -0
  58. package/cljs.tools.reader.reader_types.js +838 -0
  59. package/cljs.tools.reader.reader_types.js.map +1 -0
  60. package/cljs_env.js +18192 -0
  61. package/cljs_node_io.core.js +1278 -0
  62. package/cljs_node_io.core.js.map +1 -0
  63. package/cljs_node_io.file.js +918 -0
  64. package/cljs_node_io.file.js.map +1 -0
  65. package/cljs_node_io.fs.js +3911 -0
  66. package/cljs_node_io.fs.js.map +1 -0
  67. package/clojure.data.js +319 -0
  68. package/clojure.data.js.map +1 -0
  69. package/clojure.edn.js +119 -0
  70. package/clojure.edn.js.map +1 -0
  71. package/clojure.set.js +406 -0
  72. package/clojure.set.js.map +1 -0
  73. package/clojure.string.js +502 -0
  74. package/clojure.string.js.map +1 -0
  75. package/clojure.walk.js +156 -0
  76. package/clojure.walk.js.map +1 -0
  77. package/datahike.api.impl.js +621 -0
  78. package/datahike.api.impl.js.map +1 -0
  79. package/datahike.api.specification.js +85 -0
  80. package/datahike.api.specification.js.map +1 -0
  81. package/datahike.array.js +275 -0
  82. package/datahike.array.js.map +1 -0
  83. package/datahike.config.js +437 -0
  84. package/datahike.config.js.map +1 -0
  85. package/datahike.connections.js +55 -0
  86. package/datahike.connections.js.map +1 -0
  87. package/datahike.connector.js +1248 -0
  88. package/datahike.connector.js.map +1 -0
  89. package/datahike.constants.js +66 -0
  90. package/datahike.constants.js.map +1 -0
  91. package/datahike.core.js +628 -0
  92. package/datahike.core.js.map +1 -0
  93. package/datahike.datom.js +963 -0
  94. package/datahike.datom.js.map +1 -0
  95. package/datahike.db.interface.js +819 -0
  96. package/datahike.db.interface.js.map +1 -0
  97. package/datahike.db.js +3095 -0
  98. package/datahike.db.js.map +1 -0
  99. package/datahike.db.search.js +1004 -0
  100. package/datahike.db.search.js.map +1 -0
  101. package/datahike.db.transaction.js +1904 -0
  102. package/datahike.db.transaction.js.map +1 -0
  103. package/datahike.db.utils.js +642 -0
  104. package/datahike.db.utils.js.map +1 -0
  105. package/datahike.gc.js +1618 -0
  106. package/datahike.gc.js.map +1 -0
  107. package/datahike.impl.entity.js +604 -0
  108. package/datahike.impl.entity.js.map +1 -0
  109. package/datahike.index.interface.js +484 -0
  110. package/datahike.index.interface.js.map +1 -0
  111. package/datahike.index.js +50 -0
  112. package/datahike.index.js.map +1 -0
  113. package/datahike.index.persistent_set.js +1250 -0
  114. package/datahike.index.persistent_set.js.map +1 -0
  115. package/datahike.js.api.js +2211 -0
  116. package/datahike.js.api.js.map +1 -0
  117. package/datahike.lru.js +404 -0
  118. package/datahike.lru.js.map +1 -0
  119. package/datahike.pull_api.js +533 -0
  120. package/datahike.pull_api.js.map +1 -0
  121. package/datahike.query.js +11891 -0
  122. package/datahike.query.js.map +1 -0
  123. package/datahike.query_stats.js +152 -0
  124. package/datahike.query_stats.js.map +1 -0
  125. package/datahike.readers.js +166 -0
  126. package/datahike.readers.js.map +1 -0
  127. package/datahike.schema.js +251 -0
  128. package/datahike.schema.js.map +1 -0
  129. package/datahike.schema_cache.js +66 -0
  130. package/datahike.schema_cache.js.map +1 -0
  131. package/datahike.spec.js +70 -0
  132. package/datahike.spec.js.map +1 -0
  133. package/datahike.store.js +514 -0
  134. package/datahike.store.js.map +1 -0
  135. package/datahike.tools.js +436 -0
  136. package/datahike.tools.js.map +1 -0
  137. package/datahike.writer.js +3463 -0
  138. package/datahike.writer.js.map +1 -0
  139. package/datahike.writing.js +3168 -0
  140. package/datahike.writing.js.map +1 -0
  141. package/datalog.parser.impl.js +1421 -0
  142. package/datalog.parser.impl.js.map +1 -0
  143. package/datalog.parser.impl.proto.js +213 -0
  144. package/datalog.parser.impl.proto.js.map +1 -0
  145. package/datalog.parser.impl.util.js +117 -0
  146. package/datalog.parser.impl.util.js.map +1 -0
  147. package/datalog.parser.js +47 -0
  148. package/datalog.parser.js.map +1 -0
  149. package/datalog.parser.pull.js +2603 -0
  150. package/datalog.parser.pull.js.map +1 -0
  151. package/datalog.parser.type.js +7502 -0
  152. package/datalog.parser.type.js.map +1 -0
  153. package/datalog.parser.util.js +60 -0
  154. package/datalog.parser.util.js.map +1 -0
  155. package/environ.core.js +263 -0
  156. package/environ.core.js.map +1 -0
  157. package/fress.api.js +607 -0
  158. package/fress.api.js.map +1 -0
  159. package/fress.impl.adler32.js +435 -0
  160. package/fress.impl.adler32.js.map +1 -0
  161. package/fress.impl.bigint.js +185 -0
  162. package/fress.impl.bigint.js.map +1 -0
  163. package/fress.impl.buffer.js +1087 -0
  164. package/fress.impl.buffer.js.map +1 -0
  165. package/fress.impl.codes.js +105 -0
  166. package/fress.impl.codes.js.map +1 -0
  167. package/fress.impl.hopmap.js +603 -0
  168. package/fress.impl.hopmap.js.map +1 -0
  169. package/fress.impl.ranges.js +49 -0
  170. package/fress.impl.ranges.js.map +1 -0
  171. package/fress.impl.raw_input.js +837 -0
  172. package/fress.impl.raw_input.js.map +1 -0
  173. package/fress.impl.raw_output.js +653 -0
  174. package/fress.impl.raw_output.js.map +1 -0
  175. package/fress.impl.table.js +133 -0
  176. package/fress.impl.table.js.map +1 -0
  177. package/fress.reader.js +2312 -0
  178. package/fress.reader.js.map +1 -0
  179. package/fress.util.js +458 -0
  180. package/fress.util.js.map +1 -0
  181. package/fress.writer.js +2141 -0
  182. package/fress.writer.js.map +1 -0
  183. package/geheimnis.aes.js +132 -0
  184. package/geheimnis.aes.js.map +1 -0
  185. package/hasch.base64.js +42 -0
  186. package/hasch.base64.js.map +1 -0
  187. package/hasch.benc.js +201 -0
  188. package/hasch.benc.js.map +1 -0
  189. package/hasch.core.js +188 -0
  190. package/hasch.core.js.map +1 -0
  191. package/hasch.platform.js +221 -0
  192. package/hasch.platform.js.map +1 -0
  193. package/incognito.base.js +276 -0
  194. package/incognito.base.js.map +1 -0
  195. package/incognito.edn.js +54 -0
  196. package/incognito.edn.js.map +1 -0
  197. package/incognito.fressian.js +330 -0
  198. package/incognito.fressian.js.map +1 -0
  199. package/index.d.ts +660 -0
  200. package/is.simm.partial_cps.async.js +142 -0
  201. package/is.simm.partial_cps.async.js.map +1 -0
  202. package/is.simm.partial_cps.runtime.js +65 -0
  203. package/is.simm.partial_cps.runtime.js.map +1 -0
  204. package/is.simm.partial_cps.sequence.js +1255 -0
  205. package/is.simm.partial_cps.sequence.js.map +1 -0
  206. package/konserve.cache.js +2519 -0
  207. package/konserve.cache.js.map +1 -0
  208. package/konserve.compressor.js +502 -0
  209. package/konserve.compressor.js.map +1 -0
  210. package/konserve.core.js +8052 -0
  211. package/konserve.core.js.map +1 -0
  212. package/konserve.encryptor.js +553 -0
  213. package/konserve.encryptor.js.map +1 -0
  214. package/konserve.gc.js +541 -0
  215. package/konserve.gc.js.map +1 -0
  216. package/konserve.impl.defaults.js +8290 -0
  217. package/konserve.impl.defaults.js.map +1 -0
  218. package/konserve.impl.storage_layout.js +849 -0
  219. package/konserve.impl.storage_layout.js.map +1 -0
  220. package/konserve.memory.js +2102 -0
  221. package/konserve.memory.js.map +1 -0
  222. package/konserve.node_filestore.js +2951 -0
  223. package/konserve.node_filestore.js.map +1 -0
  224. package/konserve.protocols.js +590 -0
  225. package/konserve.protocols.js.map +1 -0
  226. package/konserve.serializers.js +562 -0
  227. package/konserve.serializers.js.map +1 -0
  228. package/konserve.store.js +2245 -0
  229. package/konserve.store.js.map +1 -0
  230. package/konserve.tiered.js +9574 -0
  231. package/konserve.tiered.js.map +1 -0
  232. package/konserve.utils.js +180 -0
  233. package/konserve.utils.js.map +1 -0
  234. package/me.tonsky.persistent_sorted_set.arrays.js +66 -0
  235. package/me.tonsky.persistent_sorted_set.arrays.js.map +1 -0
  236. package/me.tonsky.persistent_sorted_set.branch.js +2779 -0
  237. package/me.tonsky.persistent_sorted_set.branch.js.map +1 -0
  238. package/me.tonsky.persistent_sorted_set.btset.js +14196 -0
  239. package/me.tonsky.persistent_sorted_set.btset.js.map +1 -0
  240. package/me.tonsky.persistent_sorted_set.impl.node.js +324 -0
  241. package/me.tonsky.persistent_sorted_set.impl.node.js.map +1 -0
  242. package/me.tonsky.persistent_sorted_set.impl.storage.js +123 -0
  243. package/me.tonsky.persistent_sorted_set.impl.storage.js.map +1 -0
  244. package/me.tonsky.persistent_sorted_set.js +890 -0
  245. package/me.tonsky.persistent_sorted_set.js.map +1 -0
  246. package/me.tonsky.persistent_sorted_set.leaf.js +561 -0
  247. package/me.tonsky.persistent_sorted_set.leaf.js.map +1 -0
  248. package/me.tonsky.persistent_sorted_set.util.js +402 -0
  249. package/me.tonsky.persistent_sorted_set.util.js.map +1 -0
  250. package/medley.core.js +1857 -0
  251. package/medley.core.js.map +1 -0
  252. package/package.json +38 -0
  253. package/spec_tools.core.js +1925 -0
  254. package/spec_tools.core.js.map +1 -0
  255. package/spec_tools.data_spec.js +1291 -0
  256. package/spec_tools.data_spec.js.map +1 -0
  257. package/spec_tools.form.js +185 -0
  258. package/spec_tools.form.js.map +1 -0
  259. package/spec_tools.impl.js +362 -0
  260. package/spec_tools.impl.js.map +1 -0
  261. package/spec_tools.parse.js +427 -0
  262. package/spec_tools.parse.js.map +1 -0
  263. package/spec_tools.transform.js +288 -0
  264. package/spec_tools.transform.js.map +1 -0
  265. package/superv.async.js +8617 -0
  266. package/superv.async.js.map +1 -0
  267. package/tailrecursion.priority_map.js +994 -0
  268. package/tailrecursion.priority_map.js.map +1 -0
  269. package/taoensso.encore.js +12385 -0
  270. package/taoensso.encore.js.map +1 -0
  271. package/taoensso.timbre.appenders.core.js +239 -0
  272. package/taoensso.timbre.appenders.core.js.map +1 -0
  273. package/taoensso.timbre.js +1264 -0
  274. package/taoensso.timbre.js.map +1 -0
  275. package/taoensso.truss.impl.js +442 -0
  276. package/taoensso.truss.impl.js.map +1 -0
  277. package/taoensso.truss.js +743 -0
  278. package/taoensso.truss.js.map +1 -0
  279. package/test-config-keys.js +33 -0
  280. package/test-final.js +36 -0
  281. package/test-key-duplication.js +67 -0
  282. 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"]}