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,1904 @@
1
+ var $CLJS = require("./cljs_env");
2
+ var $jscomp = $CLJS.$jscomp;
3
+ var COMPILED = false;
4
+ require("./cljs.core.js");
5
+ require("./cljs.spec.alpha.js");
6
+ require("./clojure.string.js");
7
+ require("./datahike.index.js");
8
+ require("./datahike.datom.js");
9
+ require("./datahike.db.js");
10
+ require("./datahike.db.interface.js");
11
+ require("./datahike.db.search.js");
12
+ require("./datahike.db.utils.js");
13
+ require("./datahike.constants.js");
14
+ require("./datahike.tools.js");
15
+ require("./datahike.schema.js");
16
+ require("./me.tonsky.persistent_sorted_set.arrays.js");
17
+ var environ=$CLJS.environ || ($CLJS.environ = {});
18
+ var fress=$CLJS.fress || ($CLJS.fress = {});
19
+ var datahike=$CLJS.datahike || ($CLJS.datahike = {});
20
+ var clojure=$CLJS.clojure || ($CLJS.clojure = {});
21
+ var hasch=$CLJS.hasch || ($CLJS.hasch = {});
22
+ var tailrecursion=$CLJS.tailrecursion || ($CLJS.tailrecursion = {});
23
+ var superv=$CLJS.superv || ($CLJS.superv = {});
24
+ var geheimnis=$CLJS.geheimnis || ($CLJS.geheimnis = {});
25
+ var is=$CLJS.is || ($CLJS.is = {});
26
+ var cljs=$CLJS.cljs || ($CLJS.cljs = {});
27
+ var cljs_node_io=$CLJS.cljs_node_io || ($CLJS.cljs_node_io = {});
28
+ var goog=$CLJS.goog || ($CLJS.goog = {});
29
+ var konserve=$CLJS.konserve || ($CLJS.konserve = {});
30
+ var datalog=$CLJS.datalog || ($CLJS.datalog = {});
31
+ var spec_tools=$CLJS.spec_tools || ($CLJS.spec_tools = {});
32
+ var taoensso=$CLJS.taoensso || ($CLJS.taoensso = {});
33
+ var incognito=$CLJS.incognito || ($CLJS.incognito = {});
34
+ var medley=$CLJS.medley || ($CLJS.medley = {});
35
+ var me=$CLJS.me || ($CLJS.me = {});
36
+
37
+ $CLJS.SHADOW_ENV.setLoaded("datahike.db.transaction.js");
38
+
39
+ goog.provide('datahike.db.transaction');
40
+ datahike.db.transaction.validate_datom = (function datahike$db$transaction$validate_datom(db,datom){
41
+ if(cljs.core.truth_((function (){var and__5000__auto__ = datahike.datom.datom_added(datom);
42
+ if(cljs.core.truth_(and__5000__auto__)){
43
+ return datahike.db.utils.is_attr_QMARK_(db,datom.a,new cljs.core.Keyword("db","unique","db/unique",329396388));
44
+ } else {
45
+ return and__5000__auto__;
46
+ }
47
+ })())){
48
+ var temp__5804__auto__ = cljs.core.not_empty(datahike.db.interface$.datoms(db,new cljs.core.Keyword(null,"avet","avet",1383857032),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [datom.a,datom.v], null)));
49
+ if(cljs.core.truth_(temp__5804__auto__)){
50
+ var found = temp__5804__auto__;
51
+ var G__58927 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Cannot add ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([datom], 0))," because of unique constraint: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([found], 0))].join(''),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","unique","transact/unique",-940992320),new cljs.core.Keyword(null,"attribute","attribute",-2074029119),datom.a,new cljs.core.Keyword(null,"datom","datom",-371556090),datom], null))})();
52
+ var fexpr__58926 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,26,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
53
+ return new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Cannot add ",datom," because of unique constraint: ",found,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","unique","transact/unique",-940992320),new cljs.core.Keyword(null,"attribute","attribute",-2074029119),datom.a,new cljs.core.Keyword(null,"datom","datom",-371556090),datom], null)], null);
54
+ }),null)),null,(251),null,null,null);
55
+ return (fexpr__58926.cljs$core$IFn$_invoke$arity$1 ? fexpr__58926.cljs$core$IFn$_invoke$arity$1(G__58927) : fexpr__58926.call(null, G__58927));
56
+ } else {
57
+ return null;
58
+ }
59
+ } else {
60
+ return null;
61
+ }
62
+ });
63
+ datahike.db.transaction.validate_val = (function datahike$db$transaction$validate_val(v,p__58937,p__58938){
64
+ var vec__58939 = p__58937;
65
+ var _ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__58939,(0),null);
66
+ var ___$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__58939,(1),null);
67
+ var a = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__58939,(2),null);
68
+ var ___$2 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__58939,(3),null);
69
+ var ___$3 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__58939,(4),null);
70
+ var at = vec__58939;
71
+ var map__58942 = p__58938;
72
+ var map__58942__$1 = cljs.core.__destructure_map(map__58942);
73
+ var db = map__58942__$1;
74
+ var config = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__58942__$1,new cljs.core.Keyword(null,"config","config",994861415));
75
+ var schema = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__58942__$1,new cljs.core.Keyword(null,"schema","schema",-1582001791));
76
+ var ref_ident_map = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__58942__$1,new cljs.core.Keyword(null,"ref-ident-map","ref-ident-map",107296375));
77
+ if((v == null)){
78
+ var G__58946_59552 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Cannot store nil as a value at ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([at], 0))].join(''),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"value","value",305978217),v,new cljs.core.Keyword(null,"context","context",-830191113),at], null))})();
79
+ var fexpr__58945_59553 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,31,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
80
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Cannot store nil as a value at ",at,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"value","value",305978217),v,new cljs.core.Keyword(null,"context","context",-830191113),at], null)], null);
81
+ }),null)),null,(253),null,null,null);
82
+ (fexpr__58945_59553.cljs$core$IFn$_invoke$arity$1 ? fexpr__58945_59553.cljs$core$IFn$_invoke$arity$1(G__58946_59552) : fexpr__58945_59553.call(null, G__58946_59552));
83
+ } else {
84
+ }
85
+
86
+ var map__58947 = config;
87
+ var map__58947__$1 = cljs.core.__destructure_map(map__58947);
88
+ var attribute_refs_QMARK_ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__58947__$1,new cljs.core.Keyword(null,"attribute-refs?","attribute-refs?",-1070298065));
89
+ var schema_flexibility = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__58947__$1,new cljs.core.Keyword(null,"schema-flexibility","schema-flexibility",-1255871751));
90
+ var a_ident = (cljs.core.truth_((function (){var and__5000__auto__ = attribute_refs_QMARK_;
91
+ if(cljs.core.truth_(and__5000__auto__)){
92
+ return typeof a === 'number';
93
+ } else {
94
+ return and__5000__auto__;
95
+ }
96
+ })())?datahike.db.interface$._ident_for(db,a):a);
97
+ var v_ident = (cljs.core.truth_((function (){var and__5000__auto__ = attribute_refs_QMARK_;
98
+ if(cljs.core.truth_(and__5000__auto__)){
99
+ return ((cljs.core.contains_QMARK_(datahike.db.interface$._system_entities(db),a)) && ((!(((ref_ident_map.cljs$core$IFn$_invoke$arity$1 ? ref_ident_map.cljs$core$IFn$_invoke$arity$1(v) : ref_ident_map.call(null, v)) == null)))));
100
+ } else {
101
+ return and__5000__auto__;
102
+ }
103
+ })())?(ref_ident_map.cljs$core$IFn$_invoke$arity$1 ? ref_ident_map.cljs$core$IFn$_invoke$arity$1(v) : ref_ident_map.call(null, v)):v);
104
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"write","write",-1857649168),schema_flexibility)){
105
+ var schema_spec = ((((datahike.schema.meta_attr_QMARK_(a_ident)) || (datahike.schema.schema_attr_QMARK_(a_ident))))?cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword("db","index","db/index",-1531680669),new cljs.core.Keyword("db","unique","db/unique",329396388),new cljs.core.Keyword("db.entity","attrs","db.entity/attrs",655746694),new cljs.core.Keyword("db","valueType","db/valueType",1827971944),new cljs.core.Keyword("db","txInstant","db/txInstant",-990494199),new cljs.core.Keyword("db","tupleType","db/tupleType",448013354),new cljs.core.Keyword("db","tupleTypes","db/tupleTypes",1512507626),new cljs.core.Keyword("db","noHistory","db/noHistory",-1975127444),new cljs.core.Keyword("db","isComponent","db/isComponent",423352398),new cljs.core.Keyword("db.install","_attribute","db.install/_attribute",1853441294),new cljs.core.Keyword("db","retracted","db/retracted",-1399750448),new cljs.core.Keyword("db","noCommit","db/noCommit",-367367436),new cljs.core.Keyword("db","cardinality","db/cardinality",-104975659),new cljs.core.Keyword("db","doc","db/doc",1913350069),new cljs.core.Keyword("db","id","db/id",-1388397098),new cljs.core.Keyword("db","ident","db/ident",-737096),new cljs.core.Keyword("db","ensure","db/ensure",-439176357),new cljs.core.Keyword("db","tupleAttrs","db/tupleAttrs",250080092),new cljs.core.Keyword("db.entity","preds","db.entity/preds",-872853699)],[new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword("db","valueType","db/valueType",1827971944),new cljs.core.Keyword("db.type","boolean","db.type/boolean",-645454270),new cljs.core.Keyword("db","unique","db/unique",329396388),new cljs.core.Keyword("db.unique","identity","db.unique/identity",1675950722),new cljs.core.Keyword("db","cardinality","db/cardinality",-104975659),new cljs.core.Keyword("db.cardinality","one","db.cardinality/one",1428352190)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword("db","valueType","db/valueType",1827971944),new cljs.core.Keyword("db.type","unique","db.type/unique",-1086628224),new cljs.core.Keyword("db","unique","db/unique",329396388),new cljs.core.Keyword("db.unique","identity","db.unique/identity",1675950722),new cljs.core.Keyword("db","cardinality","db/cardinality",-104975659),new cljs.core.Keyword("db.cardinality","one","db.cardinality/one",1428352190)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword("db","valueType","db/valueType",1827971944),new cljs.core.Keyword("db.type","keyword","db.type/keyword",205926793),new cljs.core.Keyword("db","cardinality","db/cardinality",-104975659),new cljs.core.Keyword("db.cardinality","many","db.cardinality/many",772806234)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword("db","valueType","db/valueType",1827971944),new cljs.core.Keyword("db.type","value","db.type/value",1194578983),new cljs.core.Keyword("db","unique","db/unique",329396388),new cljs.core.Keyword("db.unique","identity","db.unique/identity",1675950722),new cljs.core.Keyword("db","cardinality","db/cardinality",-104975659),new cljs.core.Keyword("db.cardinality","one","db.cardinality/one",1428352190)], null),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword("db","valueType","db/valueType",1827971944),new cljs.core.Keyword("db.type","instant","db.type/instant",-1024769248),new cljs.core.Keyword("db","unique","db/unique",329396388),new cljs.core.Keyword("db.unique","identity","db.unique/identity",1675950722),new cljs.core.Keyword("db","index","db/index",-1531680669),true,new cljs.core.Keyword("db","cardinality","db/cardinality",-104975659),new cljs.core.Keyword("db.cardinality","one","db.cardinality/one",1428352190)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword("db","valueType","db/valueType",1827971944),new cljs.core.Keyword("db.type","value","db.type/value",1194578983),new cljs.core.Keyword("db","cardinality","db/cardinality",-104975659),new cljs.core.Keyword("db.cardinality","one","db.cardinality/one",1428352190)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword("db","valueType","db/valueType",1827971944),new cljs.core.Keyword("db.type","tuple","db.type/tuple",938234914),new cljs.core.Keyword("db","cardinality","db/cardinality",-104975659),new cljs.core.Keyword("db.cardinality","one","db.cardinality/one",1428352190)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword("db","valueType","db/valueType",1827971944),new cljs.core.Keyword("db.type","boolean","db.type/boolean",-645454270),new cljs.core.Keyword("db","unique","db/unique",329396388),new cljs.core.Keyword("db.unique","identity","db.unique/identity",1675950722),new cljs.core.Keyword("db","cardinality","db/cardinality",-104975659),new cljs.core.Keyword("db.cardinality","one","db.cardinality/one",1428352190)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword("db","valueType","db/valueType",1827971944),new cljs.core.Keyword("db.type","boolean","db.type/boolean",-645454270),new cljs.core.Keyword("db","unique","db/unique",329396388),new cljs.core.Keyword("db.unique","identity","db.unique/identity",1675950722),new cljs.core.Keyword("db","cardinality","db/cardinality",-104975659),new cljs.core.Keyword("db.cardinality","one","db.cardinality/one",1428352190)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword("db","valueType","db/valueType",1827971944),new cljs.core.Keyword("db.type.install","_attribute","db.type.install/_attribute",1199219386),new cljs.core.Keyword("db","unique","db/unique",329396388),new cljs.core.Keyword("db.unique","identity","db.unique/identity",1675950722),new cljs.core.Keyword("db","cardinality","db/cardinality",-104975659),new cljs.core.Keyword("db.cardinality","one","db.cardinality/one",1428352190)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword("db","valueType","db/valueType",1827971944),new cljs.core.Keyword("db.type","long","db.type/long",700514073),new cljs.core.Keyword("db","unique","db/unique",329396388),new cljs.core.Keyword("db.unique","identity","db.unique/identity",1675950722),new cljs.core.Keyword("db","cardinality","db/cardinality",-104975659),new cljs.core.Keyword("db.cardinality","many","db.cardinality/many",772806234)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword("db","valueType","db/valueType",1827971944),new cljs.core.Keyword("db.type","boolean","db.type/boolean",-645454270),new cljs.core.Keyword("db","unique","db/unique",329396388),new cljs.core.Keyword("db.unique","identity","db.unique/identity",1675950722),new cljs.core.Keyword("db","cardinality","db/cardinality",-104975659),new cljs.core.Keyword("db.cardinality","one","db.cardinality/one",1428352190)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword("db","valueType","db/valueType",1827971944),new cljs.core.Keyword("db.type","cardinality","db.type/cardinality",1307142401),new cljs.core.Keyword("db","unique","db/unique",329396388),new cljs.core.Keyword("db.unique","identity","db.unique/identity",1675950722),new cljs.core.Keyword("db","cardinality","db/cardinality",-104975659),new cljs.core.Keyword("db.cardinality","one","db.cardinality/one",1428352190)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword("db","valueType","db/valueType",1827971944),new cljs.core.Keyword("db.type","string","db.type/string",1432572808),new cljs.core.Keyword("db","index","db/index",-1531680669),true,new cljs.core.Keyword("db","cardinality","db/cardinality",-104975659),new cljs.core.Keyword("db.cardinality","one","db.cardinality/one",1428352190)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword("db","valueType","db/valueType",1827971944),new cljs.core.Keyword("db.type","id","db.type/id",2041941930),new cljs.core.Keyword("db","unique","db/unique",329396388),new cljs.core.Keyword("db.unique","identity","db.unique/identity",1675950722),new cljs.core.Keyword("db","cardinality","db/cardinality",-104975659),new cljs.core.Keyword("db.cardinality","one","db.cardinality/one",1428352190)], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword("db","valueType","db/valueType",1827971944),new cljs.core.Keyword("db.type","keyword","db.type/keyword",205926793),new cljs.core.Keyword("db","unique","db/unique",329396388),new cljs.core.Keyword("db.unique","identity","db.unique/identity",1675950722),new cljs.core.Keyword("db","cardinality","db/cardinality",-104975659),new cljs.core.Keyword("db.cardinality","one","db.cardinality/one",1428352190)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword("db","valueType","db/valueType",1827971944),new cljs.core.Keyword("db.type","keyword","db.type/keyword",205926793),new cljs.core.Keyword("db","cardinality","db/cardinality",-104975659),new cljs.core.Keyword("db.cardinality","one","db.cardinality/one",1428352190)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword("db","valueType","db/valueType",1827971944),new cljs.core.Keyword("db.type","tuple","db.type/tuple",938234914),new cljs.core.Keyword("db","cardinality","db/cardinality",-104975659),new cljs.core.Keyword("db.cardinality","one","db.cardinality/one",1428352190)], null),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword("db","valueType","db/valueType",1827971944),new cljs.core.Keyword("db.type","symbol","db.type/symbol",905953406),new cljs.core.Keyword("db","cardinality","db/cardinality",-104975659),new cljs.core.Keyword("db.cardinality","many","db.cardinality/many",772806234)], null)]):schema);
106
+ if(datahike.schema.value_valid_QMARK_(a_ident,v_ident,schema)){
107
+ return null;
108
+ } else {
109
+ var G__58953 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Bad entity value ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v_ident], 0))," at ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([at], 0)),", value does not match schema definition. Must be conform to: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([datahike.schema.describe_type(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(schema_spec,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a_ident,new cljs.core.Keyword("db","valueType","db/valueType",1827971944)], null)))], 0))].join(''),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","schema","transact/schema",1426844139),new cljs.core.Keyword(null,"value","value",305978217),v_ident,new cljs.core.Keyword(null,"attribute","attribute",-2074029119),a_ident,new cljs.core.Keyword(null,"schema","schema",-1582001791),cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(db,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"schema","schema",-1582001791),a_ident], null))], null))})();
110
+ var fexpr__58952 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,46,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
111
+ return new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Bad entity value ",v_ident," at ",at,", value does not match schema definition. Must be conform to: ",datahike.schema.describe_type(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(schema_spec,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a_ident,new cljs.core.Keyword("db","valueType","db/valueType",1827971944)], null))),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","schema","transact/schema",1426844139),new cljs.core.Keyword(null,"value","value",305978217),v_ident,new cljs.core.Keyword(null,"attribute","attribute",-2074029119),a_ident,new cljs.core.Keyword(null,"schema","schema",-1582001791),cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(db,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"schema","schema",-1582001791),a_ident], null))], null)], null);
112
+ }),null)),null,(255),null,null,null);
113
+ return (fexpr__58952.cljs$core$IFn$_invoke$arity$1 ? fexpr__58952.cljs$core$IFn$_invoke$arity$1(G__58953) : fexpr__58952.call(null, G__58953));
114
+ }
115
+ } else {
116
+ return null;
117
+ }
118
+ });
119
+ datahike.db.transaction.current_tx = (function datahike$db$transaction$current_tx(report){
120
+ return (cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(report,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"db-before","db-before",-553691536),new cljs.core.Keyword(null,"max-tx","max-tx",1119558339)], null)) + (1));
121
+ });
122
+ datahike.db.transaction.next_eid = (function datahike$db$transaction$next_eid(db){
123
+ return (new cljs.core.Keyword(null,"max-eid","max-eid",2134868075).cljs$core$IFn$_invoke$arity$1(db) + (1));
124
+ });
125
+ datahike.db.transaction.tx_id_QMARK_ = (function datahike$db$transaction$tx_id_QMARK_(e){
126
+ return ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(e,new cljs.core.Keyword("db","current-tx","db/current-tx",1600722132))) || (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(e,":db/current-tx")) || (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(e,"datomic.tx")) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(e,"datahike.tx")))))));
127
+ });
128
+ datahike.db.transaction.tempid_QMARK_ = (function datahike$db$transaction$tempid_QMARK_(x){
129
+ return ((((typeof x === 'number') && ((x < (0))))) || (typeof x === 'string'));
130
+ });
131
+ datahike.db.transaction.advance_max_eid = (function datahike$db$transaction$advance_max_eid(db,eid){
132
+ var G__58962 = db;
133
+ if((((eid > new cljs.core.Keyword(null,"max-eid","max-eid",2134868075).cljs$core$IFn$_invoke$arity$1(db))) && ((eid < (536870912))))){
134
+ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__58962,new cljs.core.Keyword(null,"max-eid","max-eid",2134868075),eid);
135
+ } else {
136
+ return G__58962;
137
+ }
138
+ });
139
+ datahike.db.transaction.allocate_eid = (function datahike$db$transaction$allocate_eid(var_args){
140
+ var G__58966 = arguments.length;
141
+ switch (G__58966) {
142
+ case 2:
143
+ return datahike.db.transaction.allocate_eid.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
144
+
145
+ break;
146
+ case 3:
147
+ return datahike.db.transaction.allocate_eid.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
148
+
149
+ break;
150
+ default:
151
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
152
+
153
+ }
154
+ });
155
+
156
+ (datahike.db.transaction.allocate_eid.cljs$core$IFn$_invoke$arity$2 = (function (report,eid){
157
+ return cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(report,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"db-after","db-after",-571884666)], null),datahike.db.transaction.advance_max_eid,eid);
158
+ }));
159
+
160
+ (datahike.db.transaction.allocate_eid.cljs$core$IFn$_invoke$arity$3 = (function (report,e,eid){
161
+ var G__58972 = report;
162
+ var G__58972__$1 = ((datahike.db.transaction.tx_id_QMARK_(e))?cljs.core.assoc_in(G__58972,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tempids","tempids",1767509089),e], null),eid):G__58972);
163
+ var G__58972__$2 = ((datahike.db.transaction.tempid_QMARK_(e))?cljs.core.assoc_in(G__58972__$1,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tempids","tempids",1767509089),e], null),eid):G__58972__$1);
164
+ return cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(G__58972__$2,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"db-after","db-after",-571884666)], null),datahike.db.transaction.advance_max_eid,eid);
165
+
166
+ }));
167
+
168
+ (datahike.db.transaction.allocate_eid.cljs$lang$maxFixedArity = 3);
169
+
170
+ datahike.db.transaction.update_schema = (function datahike$db$transaction$update_schema(db,datom){
171
+ var schema = datahike.db.interface$._schema(db);
172
+ var attribute_refs_QMARK_ = new cljs.core.Keyword(null,"attribute-refs?","attribute-refs?",-1070298065).cljs$core$IFn$_invoke$arity$1(datahike.db.interface$._config(db));
173
+ var e = datom.e;
174
+ var a = datom.a;
175
+ var v = datom.v;
176
+ var a_ident = (cljs.core.truth_(attribute_refs_QMARK_)?datahike.db.interface$._ident_for(db,a):a);
177
+ var v_ident = (cljs.core.truth_((function (){var and__5000__auto__ = attribute_refs_QMARK_;
178
+ if(cljs.core.truth_(and__5000__auto__)){
179
+ return cljs.core.contains_QMARK_(datahike.db.interface$._system_entities(db),v);
180
+ } else {
181
+ return and__5000__auto__;
182
+ }
183
+ })())?datahike.db.interface$._ident_for(db,v):v);
184
+ if(cljs.core.truth_((function (){var and__5000__auto__ = attribute_refs_QMARK_;
185
+ if(cljs.core.truth_(and__5000__auto__)){
186
+ return cljs.core.contains_QMARK_(datahike.db.interface$._system_entities(db),e);
187
+ } else {
188
+ return and__5000__auto__;
189
+ }
190
+ })())){
191
+ var G__59005_59560 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("System schema entity cannot be changed",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","schema","transact/schema",1426844139),new cljs.core.Keyword(null,"entity-id","entity-id",1485898093),e], null))})();
192
+ var fexpr__59004_59561 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,98,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
193
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, ["System schema entity cannot be changed",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","schema","transact/schema",1426844139),new cljs.core.Keyword(null,"entity-id","entity-id",1485898093),e], null)], null);
194
+ }),null)),null,(257),null,null,null);
195
+ (fexpr__59004_59561.cljs$core$IFn$_invoke$arity$1 ? fexpr__59004_59561.cljs$core$IFn$_invoke$arity$1(G__59005_59560) : fexpr__59004_59561.call(null, G__59005_59560));
196
+ } else {
197
+ }
198
+
199
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a_ident,new cljs.core.Keyword("db","ident","db/ident",-737096))){
200
+ if(cljs.core.truth_((schema.cljs$core$IFn$_invoke$arity$1 ? schema.cljs$core$IFn$_invoke$arity$1(v_ident) : schema.call(null, v_ident)))){
201
+ var G__59007 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([["Schema with attribute ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(v_ident)," already exists"].join('')], 0)),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","schema","transact/schema",1426844139),new cljs.core.Keyword(null,"attribute","attribute",-2074029119),v_ident], null))})();
202
+ var fexpr__59006 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,102,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
203
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [["Schema with attribute ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(v_ident)," already exists"].join(''),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","schema","transact/schema",1426844139),new cljs.core.Keyword(null,"attribute","attribute",-2074029119),v_ident], null)], null);
204
+ }),null)),null,(259),null,null,null);
205
+ return (fexpr__59006.cljs$core$IFn$_invoke$arity$1 ? fexpr__59006.cljs$core$IFn$_invoke$arity$1(G__59007) : fexpr__59006.call(null, G__59007));
206
+ } else {
207
+ return cljs.core.assoc_in(cljs.core.assoc_in(cljs.core.assoc_in(cljs.core.assoc_in(db,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"schema","schema",-1582001791),v_ident], null),cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(function (){var or__5002__auto__ = (schema.cljs$core$IFn$_invoke$arity$1 ? schema.cljs$core$IFn$_invoke$arity$1(e) : schema.call(null, e));
208
+ if(cljs.core.truth_(or__5002__auto__)){
209
+ return or__5002__auto__;
210
+ } else {
211
+ return cljs.core.PersistentArrayMap.EMPTY;
212
+ }
213
+ })(),cljs.core.PersistentHashMap.fromArrays([a_ident],[v_ident])], 0))),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"schema","schema",-1582001791),e], null),v_ident),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ident-ref-map","ident-ref-map",1187514335),v_ident], null),e),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ref-ident-map","ref-ident-map",107296375),e], null),v_ident);
214
+ }
215
+ } else {
216
+ var temp__5802__auto__ = (schema.cljs$core$IFn$_invoke$arity$1 ? schema.cljs$core$IFn$_invoke$arity$1(e) : schema.call(null, e));
217
+ if(cljs.core.truth_(temp__5802__auto__)){
218
+ var schema_entry = temp__5802__auto__;
219
+ if(cljs.core.truth_((schema.cljs$core$IFn$_invoke$arity$1 ? schema.cljs$core$IFn$_invoke$arity$1(schema_entry) : schema.call(null, schema_entry)))){
220
+ return cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(db,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"schema","schema",-1582001791),schema_entry,a_ident], null),(function (old){
221
+ if(datahike.schema.entity_spec_attr_QMARK_(a_ident)){
222
+ if(cljs.core.truth_(old)){
223
+ return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(old,v_ident);
224
+ } else {
225
+ return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [v_ident], null);
226
+ }
227
+ } else {
228
+ return v_ident;
229
+ }
230
+ }));
231
+ } else {
232
+ return cljs.core.assoc_in(db,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"schema","schema",-1582001791),e,a_ident], null),v_ident);
233
+ }
234
+ } else {
235
+ return cljs.core.assoc_in(db,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"schema","schema",-1582001791),e], null),cljs.core.PersistentHashMap.fromArrays([a_ident],[v_ident]));
236
+ }
237
+ }
238
+ });
239
+ datahike.db.transaction.update_rschema = (function datahike$db$transaction$update_rschema(db){
240
+ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(db,new cljs.core.Keyword(null,"rschema","rschema",-1196134054),datahike.db.utils.rschema(new cljs.core.Keyword(null,"schema","schema",-1582001791).cljs$core$IFn$_invoke$arity$1(db)));
241
+ });
242
+ datahike.db.transaction.remove_schema = (function datahike$db$transaction$remove_schema(db,datom){
243
+ var schema = datahike.db.interface$._schema(db);
244
+ var attribute_refs_QMARK_ = new cljs.core.Keyword(null,"attribute-refs?","attribute-refs?",-1070298065).cljs$core$IFn$_invoke$arity$1(datahike.db.interface$._config(db));
245
+ var e = datom.e;
246
+ var a = datom.a;
247
+ var v = datom.v;
248
+ var a_ident = (cljs.core.truth_(attribute_refs_QMARK_)?datahike.db.interface$._ident_for(db,a):a);
249
+ var v_ident = (cljs.core.truth_((function (){var and__5000__auto__ = attribute_refs_QMARK_;
250
+ if(cljs.core.truth_(and__5000__auto__)){
251
+ return cljs.core.contains_QMARK_(datahike.db.interface$._system_entities(db),v);
252
+ } else {
253
+ return and__5000__auto__;
254
+ }
255
+ })())?datahike.db.interface$._ident_for(db,v):v);
256
+ if(cljs.core.truth_((function (){var and__5000__auto__ = attribute_refs_QMARK_;
257
+ if(cljs.core.truth_(and__5000__auto__)){
258
+ return cljs.core.contains_QMARK_(datahike.db.interface$._system_entities(db),e);
259
+ } else {
260
+ return and__5000__auto__;
261
+ }
262
+ })())){
263
+ var G__59038_59565 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("System schema entity cannot be changed",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("retract","schema","retract/schema",1546437764),new cljs.core.Keyword(null,"entity-id","entity-id",1485898093),e], null))})();
264
+ var fexpr__59037_59566 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,133,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
265
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, ["System schema entity cannot be changed",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("retract","schema","retract/schema",1546437764),new cljs.core.Keyword(null,"entity-id","entity-id",1485898093),e], null)], null);
266
+ }),null)),null,(261),null,null,null);
267
+ (fexpr__59037_59566.cljs$core$IFn$_invoke$arity$1 ? fexpr__59037_59566.cljs$core$IFn$_invoke$arity$1(G__59038_59565) : fexpr__59037_59566.call(null, G__59038_59565));
268
+ } else {
269
+ }
270
+
271
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a_ident,new cljs.core.Keyword("db","ident","db/ident",-737096))){
272
+ if(cljs.core.not((schema.cljs$core$IFn$_invoke$arity$1 ? schema.cljs$core$IFn$_invoke$arity$1(v_ident) : schema.call(null, v_ident)))){
273
+ var err_msg = ["Schema with attribute ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(v_ident)," does not exist"].join('');
274
+ var err_map = new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("retract","schema","retract/schema",1546437764),new cljs.core.Keyword(null,"attribute","attribute",-2074029119),v_ident], null);
275
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(err_msg,err_map);
276
+ } else {
277
+ return cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.assoc_in(db,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"schema","schema",-1582001791),e], null),cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2((schema.cljs$core$IFn$_invoke$arity$1 ? schema.cljs$core$IFn$_invoke$arity$1(v_ident) : schema.call(null, v_ident)),a_ident)),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"schema","schema",-1582001791)], null),(function (p1__59030_SHARP_){
278
+ return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(p1__59030_SHARP_,v_ident);
279
+ })),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ident-ref-map","ident-ref-map",1187514335)], null),(function (p1__59031_SHARP_){
280
+ return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(p1__59031_SHARP_,v_ident);
281
+ })),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"ref-ident-map","ref-ident-map",107296375)], null),(function (p1__59032_SHARP_){
282
+ return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(p1__59032_SHARP_,e);
283
+ }));
284
+ }
285
+ } else {
286
+ var temp__5802__auto__ = (schema.cljs$core$IFn$_invoke$arity$1 ? schema.cljs$core$IFn$_invoke$arity$1(e) : schema.call(null, e));
287
+ if(cljs.core.truth_(temp__5802__auto__)){
288
+ var schema_entry = temp__5802__auto__;
289
+ if(cljs.core.truth_((schema.cljs$core$IFn$_invoke$arity$1 ? schema.cljs$core$IFn$_invoke$arity$1(schema_entry) : schema.call(null, schema_entry)))){
290
+ return cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(db,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"schema","schema",-1582001791),schema_entry], null),(function (p1__59033_SHARP_){
291
+ return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(p1__59033_SHARP_,a_ident);
292
+ }));
293
+ } else {
294
+ return cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(db,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"schema","schema",-1582001791),e], null),(function (p1__59034_SHARP_){
295
+ return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(p1__59034_SHARP_,a_ident,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v_ident], 0));
296
+ }));
297
+ }
298
+ } else {
299
+ var err_msg = ["Schema with entity id ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(e)," does not exist"].join('');
300
+ var err_map = new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("retract","schema","retract/schema",1546437764),new cljs.core.Keyword(null,"entity-id","entity-id",1485898093),e,new cljs.core.Keyword(null,"attribute","attribute",-2074029119),a,new cljs.core.Keyword(null,"value","value",305978217),e], null);
301
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(err_msg,err_map);
302
+ }
303
+ }
304
+ });
305
+ datahike.db.transaction.with_datom = (function datahike$db$transaction$with_datom(db,datom){
306
+ datahike.db.transaction.validate_datom(db,datom);
307
+
308
+ var map__59052 = datahike.db.utils.attr_info(db,datom.a);
309
+ var map__59052__$1 = cljs.core.__destructure_map(map__59052);
310
+ var a_ident = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__59052__$1,new cljs.core.Keyword(null,"ident","ident",-742346));
311
+ var indexing_QMARK_ = datahike.db.utils.indexing_QMARK_(db,a_ident);
312
+ var schema_QMARK_ = ((datahike.schema.schema_attr_QMARK_(a_ident)) || (datahike.schema.entity_spec_attr_QMARK_(a_ident)));
313
+ var keep_history_QMARK_ = (function (){var and__5000__auto__ = datahike.db.interface$._keep_history_QMARK_(db);
314
+ if(cljs.core.truth_(and__5000__auto__)){
315
+ return (!(datahike.db.utils.no_history_QMARK_(db,a_ident)));
316
+ } else {
317
+ return and__5000__auto__;
318
+ }
319
+ })();
320
+ var op_count = new cljs.core.Keyword(null,"op-count","op-count",-1218914478).cljs$core$IFn$_invoke$arity$1(db);
321
+ if(cljs.core.truth_(datahike.datom.datom_added(datom))){
322
+ var G__59053 = db;
323
+ var G__59053__$1 = cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__59053,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"eavt","eavt",-666437073)], null),(function (p1__59040_SHARP_){
324
+ return (datahike.index._insert.cljs$core$IFn$_invoke$arity$4 ? datahike.index._insert.cljs$core$IFn$_invoke$arity$4(p1__59040_SHARP_,datom,new cljs.core.Keyword(null,"eavt","eavt",-666437073),op_count) : datahike.index._insert.call(null, p1__59040_SHARP_,datom,new cljs.core.Keyword(null,"eavt","eavt",-666437073),op_count));
325
+ }))
326
+ ;
327
+ var G__59053__$2 = cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__59053__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"aevt","aevt",-585148059)], null),(function (p1__59041_SHARP_){
328
+ return (datahike.index._insert.cljs$core$IFn$_invoke$arity$4 ? datahike.index._insert.cljs$core$IFn$_invoke$arity$4(p1__59041_SHARP_,datom,new cljs.core.Keyword(null,"aevt","aevt",-585148059),op_count) : datahike.index._insert.call(null, p1__59041_SHARP_,datom,new cljs.core.Keyword(null,"aevt","aevt",-585148059),op_count));
329
+ }))
330
+ ;
331
+ var G__59053__$3 = ((indexing_QMARK_)?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__59053__$2,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"avet","avet",1383857032)], null),(function (p1__59042_SHARP_){
332
+ return (datahike.index._insert.cljs$core$IFn$_invoke$arity$4 ? datahike.index._insert.cljs$core$IFn$_invoke$arity$4(p1__59042_SHARP_,datom,new cljs.core.Keyword(null,"avet","avet",1383857032),op_count) : datahike.index._insert.call(null, p1__59042_SHARP_,datom,new cljs.core.Keyword(null,"avet","avet",1383857032),op_count));
333
+ })):G__59053__$2);
334
+ var G__59053__$4 = datahike.db.transaction.advance_max_eid(G__59053__$3,datom.e)
335
+ ;
336
+ var G__59053__$5 = cljs.core.update.cljs$core$IFn$_invoke$arity$4(G__59053__$4,new cljs.core.Keyword(null,"hash","hash",-13781596),cljs.core._PLUS_,cljs.core.hash(datom))
337
+ ;
338
+ var G__59053__$6 = ((schema_QMARK_)?datahike.db.transaction.update_rschema(datahike.db.transaction.update_schema(G__59053__$5,datom)):G__59053__$5);
339
+ return cljs.core.update.cljs$core$IFn$_invoke$arity$3(G__59053__$6,new cljs.core.Keyword(null,"op-count","op-count",-1218914478),cljs.core.inc);
340
+
341
+ } else {
342
+ var temp__5806__auto__ = cljs.core.first(datahike.db.interface$.search(db,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [datom.e,datom.a,datom.v], null)));
343
+ if((temp__5806__auto__ == null)){
344
+ return db;
345
+ } else {
346
+ var removing = temp__5806__auto__;
347
+ var G__59055 = db;
348
+ var G__59055__$1 = cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__59055,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"eavt","eavt",-666437073)], null),(function (p1__59043_SHARP_){
349
+ return (datahike.index._remove.cljs$core$IFn$_invoke$arity$4 ? datahike.index._remove.cljs$core$IFn$_invoke$arity$4(p1__59043_SHARP_,removing,new cljs.core.Keyword(null,"eavt","eavt",-666437073),op_count) : datahike.index._remove.call(null, p1__59043_SHARP_,removing,new cljs.core.Keyword(null,"eavt","eavt",-666437073),op_count));
350
+ }))
351
+ ;
352
+ var G__59055__$2 = cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__59055__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"aevt","aevt",-585148059)], null),(function (p1__59044_SHARP_){
353
+ return (datahike.index._remove.cljs$core$IFn$_invoke$arity$4 ? datahike.index._remove.cljs$core$IFn$_invoke$arity$4(p1__59044_SHARP_,removing,new cljs.core.Keyword(null,"aevt","aevt",-585148059),op_count) : datahike.index._remove.call(null, p1__59044_SHARP_,removing,new cljs.core.Keyword(null,"aevt","aevt",-585148059),op_count));
354
+ }))
355
+ ;
356
+ var G__59055__$3 = ((indexing_QMARK_)?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__59055__$2,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"avet","avet",1383857032)], null),(function (p1__59045_SHARP_){
357
+ return (datahike.index._remove.cljs$core$IFn$_invoke$arity$4 ? datahike.index._remove.cljs$core$IFn$_invoke$arity$4(p1__59045_SHARP_,removing,new cljs.core.Keyword(null,"avet","avet",1383857032),op_count) : datahike.index._remove.call(null, p1__59045_SHARP_,removing,new cljs.core.Keyword(null,"avet","avet",1383857032),op_count));
358
+ })):G__59055__$2);
359
+ var G__59055__$4 = cljs.core.update.cljs$core$IFn$_invoke$arity$4(G__59055__$3,new cljs.core.Keyword(null,"hash","hash",-13781596),cljs.core._,cljs.core.hash(removing))
360
+ ;
361
+ var G__59055__$5 = ((schema_QMARK_)?datahike.db.transaction.update_rschema(datahike.db.transaction.remove_schema(G__59055__$4,datom)):G__59055__$4);
362
+ var G__59055__$6 = (cljs.core.truth_(keep_history_QMARK_)?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__59055__$5,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"temporal-eavt","temporal-eavt",-1065512715)], null),(function (p1__59046_SHARP_){
363
+ return (datahike.index._temporal_insert.cljs$core$IFn$_invoke$arity$4 ? datahike.index._temporal_insert.cljs$core$IFn$_invoke$arity$4(p1__59046_SHARP_,removing,new cljs.core.Keyword(null,"eavt","eavt",-666437073),op_count) : datahike.index._temporal_insert.call(null, p1__59046_SHARP_,removing,new cljs.core.Keyword(null,"eavt","eavt",-666437073),op_count));
364
+ })):G__59055__$5);
365
+ var G__59055__$7 = (cljs.core.truth_(keep_history_QMARK_)?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__59055__$6,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"temporal-eavt","temporal-eavt",-1065512715)], null),(function (p1__59047_SHARP_){
366
+ var G__59081 = p1__59047_SHARP_;
367
+ var G__59082 = datom;
368
+ var G__59083 = new cljs.core.Keyword(null,"eavt","eavt",-666437073);
369
+ var G__59084 = (op_count + (1));
370
+ return (datahike.index._temporal_insert.cljs$core$IFn$_invoke$arity$4 ? datahike.index._temporal_insert.cljs$core$IFn$_invoke$arity$4(G__59081,G__59082,G__59083,G__59084) : datahike.index._temporal_insert.call(null, G__59081,G__59082,G__59083,G__59084));
371
+ })):G__59055__$6);
372
+ var G__59055__$8 = (cljs.core.truth_(keep_history_QMARK_)?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__59055__$7,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"temporal-aevt","temporal-aevt",341636346)], null),(function (p1__59048_SHARP_){
373
+ return (datahike.index._temporal_insert.cljs$core$IFn$_invoke$arity$4 ? datahike.index._temporal_insert.cljs$core$IFn$_invoke$arity$4(p1__59048_SHARP_,removing,new cljs.core.Keyword(null,"aevt","aevt",-585148059),op_count) : datahike.index._temporal_insert.call(null, p1__59048_SHARP_,removing,new cljs.core.Keyword(null,"aevt","aevt",-585148059),op_count));
374
+ })):G__59055__$7);
375
+ var G__59055__$9 = (cljs.core.truth_(keep_history_QMARK_)?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__59055__$8,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"temporal-aevt","temporal-aevt",341636346)], null),(function (p1__59049_SHARP_){
376
+ var G__59085 = p1__59049_SHARP_;
377
+ var G__59086 = datom;
378
+ var G__59087 = new cljs.core.Keyword(null,"aevt","aevt",-585148059);
379
+ var G__59088 = (op_count + (1));
380
+ return (datahike.index._temporal_insert.cljs$core$IFn$_invoke$arity$4 ? datahike.index._temporal_insert.cljs$core$IFn$_invoke$arity$4(G__59085,G__59086,G__59087,G__59088) : datahike.index._temporal_insert.call(null, G__59085,G__59086,G__59087,G__59088));
381
+ })):G__59055__$8);
382
+ var G__59055__$10 = (cljs.core.truth_(keep_history_QMARK_)?cljs.core.update.cljs$core$IFn$_invoke$arity$4(G__59055__$9,new cljs.core.Keyword(null,"hash","hash",-13781596),cljs.core._PLUS_,cljs.core.hash(datom)):G__59055__$9);
383
+ var G__59055__$11 = (cljs.core.truth_((function (){var and__5000__auto__ = keep_history_QMARK_;
384
+ if(cljs.core.truth_(and__5000__auto__)){
385
+ return indexing_QMARK_;
386
+ } else {
387
+ return and__5000__auto__;
388
+ }
389
+ })())?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__59055__$10,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"temporal-avet","temporal-avet",-558341228)], null),(function (p1__59050_SHARP_){
390
+ return (datahike.index._temporal_insert.cljs$core$IFn$_invoke$arity$4 ? datahike.index._temporal_insert.cljs$core$IFn$_invoke$arity$4(p1__59050_SHARP_,removing,new cljs.core.Keyword(null,"avet","avet",1383857032),op_count) : datahike.index._temporal_insert.call(null, p1__59050_SHARP_,removing,new cljs.core.Keyword(null,"avet","avet",1383857032),op_count));
391
+ })):G__59055__$10);
392
+ var G__59055__$12 = (cljs.core.truth_((function (){var and__5000__auto__ = keep_history_QMARK_;
393
+ if(cljs.core.truth_(and__5000__auto__)){
394
+ return indexing_QMARK_;
395
+ } else {
396
+ return and__5000__auto__;
397
+ }
398
+ })())?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__59055__$11,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"temporal-avet","temporal-avet",-558341228)], null),(function (p1__59051_SHARP_){
399
+ var G__59089 = p1__59051_SHARP_;
400
+ var G__59090 = datom;
401
+ var G__59091 = new cljs.core.Keyword(null,"avet","avet",1383857032);
402
+ var G__59092 = (op_count + (1));
403
+ return (datahike.index._temporal_insert.cljs$core$IFn$_invoke$arity$4 ? datahike.index._temporal_insert.cljs$core$IFn$_invoke$arity$4(G__59089,G__59090,G__59091,G__59092) : datahike.index._temporal_insert.call(null, G__59089,G__59090,G__59091,G__59092));
404
+ })):G__59055__$11);
405
+ return cljs.core.update.cljs$core$IFn$_invoke$arity$4(G__59055__$12,new cljs.core.Keyword(null,"op-count","op-count",-1218914478),cljs.core._PLUS_,(cljs.core.truth_((function (){var or__5002__auto__ = keep_history_QMARK_;
406
+ if(cljs.core.truth_(or__5002__auto__)){
407
+ return or__5002__auto__;
408
+ } else {
409
+ return indexing_QMARK_;
410
+ }
411
+ })())?(2):(1)));
412
+
413
+ }
414
+ }
415
+ });
416
+ datahike.db.transaction.with_temporal_datom = (function datahike$db$transaction$with_temporal_datom(db,datom){
417
+ var map__59109 = datahike.db.utils.attr_info(db,datom.a);
418
+ var map__59109__$1 = cljs.core.__destructure_map(map__59109);
419
+ var a_ident = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__59109__$1,new cljs.core.Keyword(null,"ident","ident",-742346));
420
+ var indexing_QMARK_ = datahike.db.utils.indexing_QMARK_(db,a_ident);
421
+ var schema_QMARK_ = datahike.schema.schema_attr_QMARK_(a_ident);
422
+ var current_datom = cljs.core.first(datahike.db.interface$.search(db,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [datom.e,datom.a,datom.v], null)));
423
+ var history_datom = cljs.core.first(datahike.db.search.search_temporal_indices.cljs$core$IFn$_invoke$arity$2(db,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [datom.e,datom.a,datom.v,datom.tx], null)));
424
+ var current_QMARK_ = (!((current_datom == null)));
425
+ var history_QMARK_ = (!((history_datom == null)));
426
+ var op_count = new cljs.core.Keyword(null,"op-count","op-count",-1218914478).cljs$core$IFn$_invoke$arity$1(db);
427
+ var G__59120 = db;
428
+ var G__59120__$1 = ((current_QMARK_)?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__59120,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"eavt","eavt",-666437073)], null),(function (p1__59101_SHARP_){
429
+ return (datahike.index._remove.cljs$core$IFn$_invoke$arity$4 ? datahike.index._remove.cljs$core$IFn$_invoke$arity$4(p1__59101_SHARP_,current_datom,new cljs.core.Keyword(null,"eavt","eavt",-666437073),op_count) : datahike.index._remove.call(null, p1__59101_SHARP_,current_datom,new cljs.core.Keyword(null,"eavt","eavt",-666437073),op_count));
430
+ })):G__59120);
431
+ var G__59120__$2 = ((current_QMARK_)?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__59120__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"aevt","aevt",-585148059)], null),(function (p1__59102_SHARP_){
432
+ return (datahike.index._remove.cljs$core$IFn$_invoke$arity$4 ? datahike.index._remove.cljs$core$IFn$_invoke$arity$4(p1__59102_SHARP_,current_datom,new cljs.core.Keyword(null,"aevt","aevt",-585148059),op_count) : datahike.index._remove.call(null, p1__59102_SHARP_,current_datom,new cljs.core.Keyword(null,"aevt","aevt",-585148059),op_count));
433
+ })):G__59120__$1);
434
+ var G__59120__$3 = ((((current_QMARK_) && (indexing_QMARK_)))?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__59120__$2,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"avet","avet",1383857032)], null),(function (p1__59103_SHARP_){
435
+ return (datahike.index._remove.cljs$core$IFn$_invoke$arity$4 ? datahike.index._remove.cljs$core$IFn$_invoke$arity$4(p1__59103_SHARP_,current_datom,new cljs.core.Keyword(null,"avet","avet",1383857032),op_count) : datahike.index._remove.call(null, p1__59103_SHARP_,current_datom,new cljs.core.Keyword(null,"avet","avet",1383857032),op_count));
436
+ })):G__59120__$2);
437
+ var G__59120__$4 = ((current_QMARK_)?cljs.core.update.cljs$core$IFn$_invoke$arity$4(G__59120__$3,new cljs.core.Keyword(null,"hash","hash",-13781596),cljs.core._,cljs.core.hash(current_datom)):G__59120__$3);
438
+ var G__59120__$5 = ((((current_QMARK_) && (schema_QMARK_)))?datahike.db.transaction.update_rschema(datahike.db.transaction.remove_schema(G__59120__$4,datom)):G__59120__$4);
439
+ var G__59120__$6 = ((history_QMARK_)?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__59120__$5,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"temporal-eavt","temporal-eavt",-1065512715)], null),(function (p1__59104_SHARP_){
440
+ return (datahike.index._remove.cljs$core$IFn$_invoke$arity$4 ? datahike.index._remove.cljs$core$IFn$_invoke$arity$4(p1__59104_SHARP_,history_datom,new cljs.core.Keyword(null,"eavt","eavt",-666437073),op_count) : datahike.index._remove.call(null, p1__59104_SHARP_,history_datom,new cljs.core.Keyword(null,"eavt","eavt",-666437073),op_count));
441
+ })):G__59120__$5);
442
+ var G__59120__$7 = ((history_QMARK_)?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__59120__$6,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"temporal-aevt","temporal-aevt",341636346)], null),(function (p1__59105_SHARP_){
443
+ return (datahike.index._remove.cljs$core$IFn$_invoke$arity$4 ? datahike.index._remove.cljs$core$IFn$_invoke$arity$4(p1__59105_SHARP_,history_datom,new cljs.core.Keyword(null,"aevt","aevt",-585148059),op_count) : datahike.index._remove.call(null, p1__59105_SHARP_,history_datom,new cljs.core.Keyword(null,"aevt","aevt",-585148059),op_count));
444
+ })):G__59120__$6);
445
+ var G__59120__$8 = ((((history_QMARK_) && (indexing_QMARK_)))?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__59120__$7,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"temporal-avet","temporal-avet",-558341228)], null),(function (p1__59106_SHARP_){
446
+ return (datahike.index._remove.cljs$core$IFn$_invoke$arity$4 ? datahike.index._remove.cljs$core$IFn$_invoke$arity$4(p1__59106_SHARP_,history_datom,new cljs.core.Keyword(null,"avet","avet",1383857032),op_count) : datahike.index._remove.call(null, p1__59106_SHARP_,history_datom,new cljs.core.Keyword(null,"avet","avet",1383857032),op_count));
447
+ })):G__59120__$7);
448
+ if(((current_QMARK_) || (history_QMARK_))){
449
+ return cljs.core.update.cljs$core$IFn$_invoke$arity$3(G__59120__$8,new cljs.core.Keyword(null,"op-count","op-count",-1218914478),cljs.core.inc);
450
+ } else {
451
+ return G__59120__$8;
452
+ }
453
+ });
454
+ datahike.db.transaction.queue_tuple = (function datahike$db$transaction$queue_tuple(queue,tuple,idx,db,e,v){
455
+ var tuple_value = (function (){var or__5002__auto__ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(queue,tuple);
456
+ if(cljs.core.truth_(or__5002__auto__)){
457
+ return or__5002__auto__;
458
+ } else {
459
+ var or__5002__auto____$1 = new cljs.core.Keyword(null,"v","v",21465059).cljs$core$IFn$_invoke$arity$1(cljs.core.first(datahike.db.interface$.datoms(db,new cljs.core.Keyword(null,"eavt","eavt",-666437073),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,tuple], null))));
460
+ if(cljs.core.truth_(or__5002__auto____$1)){
461
+ return or__5002__auto____$1;
462
+ } else {
463
+ return cljs.core.vec(cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(cljs.core.count(new cljs.core.Keyword("db","tupleAttrs","db/tupleAttrs",250080092).cljs$core$IFn$_invoke$arity$1(cljs.core.get.cljs$core$IFn$_invoke$arity$2(datahike.db.interface$._schema(db),tuple))),null));
464
+ }
465
+ }
466
+ })();
467
+ var tuple_value_SINGLEQUOTE_ = cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(tuple_value,idx,v);
468
+ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(queue,tuple,tuple_value_SINGLEQUOTE_);
469
+ });
470
+ /**
471
+ * Assuming the attribute we are concerned with is :a and its associated value is 'a',
472
+ * returns {:a+b+c [a nil nil], :a+d [a, nil]}
473
+ */
474
+ datahike.db.transaction.queue_tuples = (function datahike$db$transaction$queue_tuples(queue,tuples,db,e,v){
475
+ return cljs.core.reduce_kv((function (queue__$1,tuple,idx){
476
+ return datahike.db.transaction.queue_tuple(queue__$1,tuple,idx,db,e,v);
477
+ }),queue,tuples);
478
+ });
479
+ datahike.db.transaction.validate_datom_upsert = (function datahike$db$transaction$validate_datom_upsert(db,datom){
480
+ if(datahike.db.utils.is_attr_QMARK_(db,datom.a,new cljs.core.Keyword("db","unique","db/unique",329396388))){
481
+ var temp__5804__auto__ = cljs.core.first(datahike.db.interface$.datoms(db,new cljs.core.Keyword(null,"avet","avet",1383857032),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [datom.a,datom.v], null)));
482
+ if(cljs.core.truth_(temp__5804__auto__)){
483
+ var old = temp__5804__auto__;
484
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(datom.e,old.e)){
485
+ return null;
486
+ } else {
487
+ var G__59129 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Cannot add ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([datom], 0))," because of unique constraint: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([old], 0))].join(''),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","unique","transact/unique",-940992320),new cljs.core.Keyword(null,"attribute","attribute",-2074029119),datom.a,new cljs.core.Keyword(null,"datom","datom",-371556090),datom], null))})();
488
+ var fexpr__59128 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,231,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
489
+ return new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Cannot add ",datom," because of unique constraint: ",old,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","unique","transact/unique",-940992320),new cljs.core.Keyword(null,"attribute","attribute",-2074029119),datom.a,new cljs.core.Keyword(null,"datom","datom",-371556090),datom], null)], null);
490
+ }),null)),null,(263),null,null,null);
491
+ return (fexpr__59128.cljs$core$IFn$_invoke$arity$1 ? fexpr__59128.cljs$core$IFn$_invoke$arity$1(G__59129) : fexpr__59128.call(null, G__59129));
492
+ }
493
+ } else {
494
+ return null;
495
+ }
496
+ } else {
497
+ return null;
498
+ }
499
+ });
500
+ datahike.db.transaction.with_datom_upsert = (function datahike$db$transaction$with_datom_upsert(db,datom){
501
+ datahike.db.transaction.validate_datom_upsert(db,datom);
502
+
503
+ var indexing_QMARK_ = datahike.db.utils.indexing_QMARK_(db,datom.a);
504
+ var map__59149 = datahike.db.utils.attr_info(db,datom.a);
505
+ var map__59149__$1 = cljs.core.__destructure_map(map__59149);
506
+ var a_ident = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__59149__$1,new cljs.core.Keyword(null,"ident","ident",-742346));
507
+ var schema_QMARK_ = datahike.schema.schema_attr_QMARK_(a_ident);
508
+ var keep_history_QMARK_ = (function (){var and__5000__auto__ = datahike.db.interface$._keep_history_QMARK_(db);
509
+ if(cljs.core.truth_(and__5000__auto__)){
510
+ return (((!(datahike.db.utils.no_history_QMARK_(db,a_ident)))) && (cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword("db","txInstant","db/txInstant",-990494199),a_ident)));
511
+ } else {
512
+ return and__5000__auto__;
513
+ }
514
+ })();
515
+ var op_count = new cljs.core.Keyword(null,"op-count","op-count",-1218914478).cljs$core$IFn$_invoke$arity$1(db);
516
+ var old_datom = cljs.core.first((function (){var G__59150 = new cljs.core.Keyword(null,"eavt","eavt",-666437073).cljs$core$IFn$_invoke$arity$1(db);
517
+ var G__59151 = datahike.datom.datom.cljs$core$IFn$_invoke$arity$4(datom.e,datom.a,null,datom.tx);
518
+ var G__59152 = datahike.datom.datom.cljs$core$IFn$_invoke$arity$4(datom.e,datom.a,null,datom.tx);
519
+ var G__59153 = new cljs.core.Keyword(null,"eavt","eavt",-666437073);
520
+ return (datahike.index._slice.cljs$core$IFn$_invoke$arity$4 ? datahike.index._slice.cljs$core$IFn$_invoke$arity$4(G__59150,G__59151,G__59152,G__59153) : datahike.index._slice.call(null, G__59150,G__59151,G__59152,G__59153));
521
+ })());
522
+ var G__59158 = db;
523
+ var G__59158__$1 = ((schema_QMARK_)?(function (){try{
524
+ return datahike.db.transaction.update_rschema(datahike.db.transaction.remove_schema(db,datom));
525
+ }catch (e59159){if((e59159 instanceof cljs.core.ExceptionInfo)){
526
+ var _e = e59159;
527
+ return db;
528
+ } else {
529
+ throw e59159;
530
+
531
+ }
532
+ }})():G__59158);
533
+ var G__59158__$2 = (cljs.core.truth_(keep_history_QMARK_)?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__59158__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"temporal-eavt","temporal-eavt",-1065512715)], null),(function (p1__59140_SHARP_){
534
+ return (datahike.index._temporal_upsert.cljs$core$IFn$_invoke$arity$5 ? datahike.index._temporal_upsert.cljs$core$IFn$_invoke$arity$5(p1__59140_SHARP_,datom,new cljs.core.Keyword(null,"eavt","eavt",-666437073),op_count,old_datom) : datahike.index._temporal_upsert.call(null, p1__59140_SHARP_,datom,new cljs.core.Keyword(null,"eavt","eavt",-666437073),op_count,old_datom));
535
+ })):G__59158__$1);
536
+ var G__59158__$3 = cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__59158__$2,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"eavt","eavt",-666437073)], null),(function (p1__59141_SHARP_){
537
+ return (datahike.index._upsert.cljs$core$IFn$_invoke$arity$5 ? datahike.index._upsert.cljs$core$IFn$_invoke$arity$5(p1__59141_SHARP_,datom,new cljs.core.Keyword(null,"eavt","eavt",-666437073),op_count,old_datom) : datahike.index._upsert.call(null, p1__59141_SHARP_,datom,new cljs.core.Keyword(null,"eavt","eavt",-666437073),op_count,old_datom));
538
+ }))
539
+ ;
540
+ var G__59158__$4 = (cljs.core.truth_(keep_history_QMARK_)?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__59158__$3,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"temporal-aevt","temporal-aevt",341636346)], null),(function (p1__59142_SHARP_){
541
+ return (datahike.index._temporal_upsert.cljs$core$IFn$_invoke$arity$5 ? datahike.index._temporal_upsert.cljs$core$IFn$_invoke$arity$5(p1__59142_SHARP_,datom,new cljs.core.Keyword(null,"aevt","aevt",-585148059),op_count,old_datom) : datahike.index._temporal_upsert.call(null, p1__59142_SHARP_,datom,new cljs.core.Keyword(null,"aevt","aevt",-585148059),op_count,old_datom));
542
+ })):G__59158__$3);
543
+ var G__59158__$5 = cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__59158__$4,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"aevt","aevt",-585148059)], null),(function (p1__59143_SHARP_){
544
+ return (datahike.index._upsert.cljs$core$IFn$_invoke$arity$5 ? datahike.index._upsert.cljs$core$IFn$_invoke$arity$5(p1__59143_SHARP_,datom,new cljs.core.Keyword(null,"aevt","aevt",-585148059),op_count,old_datom) : datahike.index._upsert.call(null, p1__59143_SHARP_,datom,new cljs.core.Keyword(null,"aevt","aevt",-585148059),op_count,old_datom));
545
+ }))
546
+ ;
547
+ var G__59158__$6 = (cljs.core.truth_((function (){var and__5000__auto__ = keep_history_QMARK_;
548
+ if(cljs.core.truth_(and__5000__auto__)){
549
+ return indexing_QMARK_;
550
+ } else {
551
+ return and__5000__auto__;
552
+ }
553
+ })())?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__59158__$5,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"temporal-avet","temporal-avet",-558341228)], null),(function (p1__59144_SHARP_){
554
+ return (datahike.index._temporal_upsert.cljs$core$IFn$_invoke$arity$5 ? datahike.index._temporal_upsert.cljs$core$IFn$_invoke$arity$5(p1__59144_SHARP_,datom,new cljs.core.Keyword(null,"avet","avet",1383857032),op_count,old_datom) : datahike.index._temporal_upsert.call(null, p1__59144_SHARP_,datom,new cljs.core.Keyword(null,"avet","avet",1383857032),op_count,old_datom));
555
+ })):G__59158__$5);
556
+ var G__59158__$7 = ((indexing_QMARK_)?cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(G__59158__$6,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"avet","avet",1383857032)], null),(function (p1__59146_SHARP_){
557
+ return (datahike.index._upsert.cljs$core$IFn$_invoke$arity$5 ? datahike.index._upsert.cljs$core$IFn$_invoke$arity$5(p1__59146_SHARP_,datom,new cljs.core.Keyword(null,"avet","avet",1383857032),op_count,old_datom) : datahike.index._upsert.call(null, p1__59146_SHARP_,datom,new cljs.core.Keyword(null,"avet","avet",1383857032),op_count,old_datom));
558
+ })):G__59158__$6);
559
+ var G__59158__$8 = cljs.core.update.cljs$core$IFn$_invoke$arity$3(G__59158__$7,new cljs.core.Keyword(null,"op-count","op-count",-1218914478),cljs.core.inc)
560
+ ;
561
+ var G__59158__$9 = datahike.db.transaction.advance_max_eid(G__59158__$8,datom.e)
562
+ ;
563
+ var G__59158__$10 = cljs.core.update.cljs$core$IFn$_invoke$arity$4(G__59158__$9,new cljs.core.Keyword(null,"hash","hash",-13781596),cljs.core._PLUS_,cljs.core.hash(datom))
564
+ ;
565
+ if(schema_QMARK_){
566
+ return datahike.db.transaction.update_rschema(datahike.db.transaction.update_schema(G__59158__$10,datom));
567
+ } else {
568
+ return G__59158__$10;
569
+ }
570
+ });
571
+ datahike.db.transaction.transact_report = (function datahike$db$transaction$transact_report(var_args){
572
+ var G__59168 = arguments.length;
573
+ switch (G__59168) {
574
+ case 2:
575
+ return datahike.db.transaction.transact_report.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
576
+
577
+ break;
578
+ case 3:
579
+ return datahike.db.transaction.transact_report.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
580
+
581
+ break;
582
+ default:
583
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
584
+
585
+ }
586
+ });
587
+
588
+ (datahike.db.transaction.transact_report.cljs$core$IFn$_invoke$arity$2 = (function (report,datom){
589
+ return datahike.db.transaction.transact_report.cljs$core$IFn$_invoke$arity$3(report,datom,false);
590
+ }));
591
+
592
+ (datahike.db.transaction.transact_report.cljs$core$IFn$_invoke$arity$3 = (function (report,datom,upsert_QMARK_){
593
+ var db = new cljs.core.Keyword(null,"db-after","db-after",-571884666).cljs$core$IFn$_invoke$arity$1(report);
594
+ var a = new cljs.core.Keyword(null,"a","a",-2123407586).cljs$core$IFn$_invoke$arity$1(datom);
595
+ var update_fn = (cljs.core.truth_(upsert_QMARK_)?datahike.db.transaction.with_datom_upsert:datahike.db.transaction.with_datom);
596
+ var report_SINGLEQUOTE_ = cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(report,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"db-after","db-after",-571884666)], null),update_fn,datom),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tx-data","tx-data",934159761)], null),cljs.core.conj,datom);
597
+ if(datahike.db.utils.tuple_source_QMARK_(db,a)){
598
+ var e = new cljs.core.Keyword(null,"e","e",1381269198).cljs$core$IFn$_invoke$arity$1(datom);
599
+ var v = (cljs.core.truth_(datahike.datom.datom_added(datom))?new cljs.core.Keyword(null,"v","v",21465059).cljs$core$IFn$_invoke$arity$1(datom):null);
600
+ var queue = (function (){var or__5002__auto__ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword("datahike.db.transaction","queued-tuples","datahike.db.transaction/queued-tuples",2119460387).cljs$core$IFn$_invoke$arity$1(report_SINGLEQUOTE_),e);
601
+ if(cljs.core.truth_(or__5002__auto__)){
602
+ return or__5002__auto__;
603
+ } else {
604
+ return cljs.core.PersistentArrayMap.EMPTY;
605
+ }
606
+ })();
607
+ var tuples = cljs.core.get.cljs$core$IFn$_invoke$arity$2(datahike.db.interface$._attrs_by(db,new cljs.core.Keyword("db","attrTuples","db/attrTuples",860541631)),a);
608
+ var queue_SINGLEQUOTE_ = datahike.db.transaction.queue_tuples(queue,tuples,db,e,v);
609
+ return cljs.core.update.cljs$core$IFn$_invoke$arity$5(report_SINGLEQUOTE_,new cljs.core.Keyword("datahike.db.transaction","queued-tuples","datahike.db.transaction/queued-tuples",2119460387),cljs.core.assoc,e,queue_SINGLEQUOTE_);
610
+ } else {
611
+ return report_SINGLEQUOTE_;
612
+ }
613
+ }));
614
+
615
+ (datahike.db.transaction.transact_report.cljs$lang$maxFixedArity = 3);
616
+
617
+ datahike.db.transaction.check_upsert_conflict = (function datahike$db$transaction$check_upsert_conflict(entity,acc){
618
+ var vec__59173 = acc;
619
+ var e = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59173,(0),null);
620
+ var a = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59173,(1),null);
621
+ var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59173,(2),null);
622
+ var _e = new cljs.core.Keyword("db","id","db/id",-1388397098).cljs$core$IFn$_invoke$arity$1(entity);
623
+ if((((_e == null)) || (((datahike.db.transaction.tempid_QMARK_(_e)) || ((((acc == null)) || ((_e === e)))))))){
624
+ return acc;
625
+ } else {
626
+ var G__59178 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Conflicting upsert: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,v], null)], 0))," resolves to ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e], 0)),", but entity already has :db/id ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([_e], 0))].join(''),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","upsert","transact/upsert",412688078),new cljs.core.Keyword(null,"entity","entity",-450970276),entity,new cljs.core.Keyword(null,"assertion","assertion",-1645134882),acc], null))})();
627
+ var fexpr__59177 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,295,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
628
+ return new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Conflicting upsert: ",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,v], null)," resolves to ",e,", but entity already has :db/id ",_e,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","upsert","transact/upsert",412688078),new cljs.core.Keyword(null,"entity","entity",-450970276),entity,new cljs.core.Keyword(null,"assertion","assertion",-1645134882),acc], null)], null);
629
+ }),null)),null,(265),null,null,null);
630
+ return (fexpr__59177.cljs$core$IFn$_invoke$arity$1 ? fexpr__59177.cljs$core$IFn$_invoke$arity$1(G__59178) : fexpr__59177.call(null, G__59178));
631
+ }
632
+ });
633
+ datahike.db.transaction.upsert_eid = (function datahike$db$transaction$upsert_eid(db,entity,tempids){
634
+ var temp__5804__auto__ = cljs.core.not_empty(datahike.db.interface$._attrs_by(db,new cljs.core.Keyword("db.unique","identity","db.unique/identity",1675950722)));
635
+ if(cljs.core.truth_(temp__5804__auto__)){
636
+ var unique_idents = temp__5804__auto__;
637
+ var unique_tuple_idents = clojure.set.intersection.cljs$core$IFn$_invoke$arity$2(datahike.db.interface$._attrs_by(db,new cljs.core.Keyword("db.type","tuple","db.type/tuple",938234914)),unique_idents);
638
+ var found_eav = cljs.core.reduce_kv((function (acc,a_ident,v_original){
639
+ if((!(cljs.core.contains_QMARK_(unique_idents,a_ident)))){
640
+ return acc;
641
+ } else {
642
+ var a = (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);
643
+ var tempid_val = ((datahike.db.utils.ref_QMARK_(db,a_ident)) && (datahike.db.transaction.tempid_QMARK_(v_original)));
644
+ var v = ((tempid_val)?(tempids.cljs$core$IFn$_invoke$arity$1 ? tempids.cljs$core$IFn$_invoke$arity$1(v_original) : tempids.call(null, v_original)):v_original);
645
+ var temp__5806__auto__ = (cljs.core.truth_(v)?(function (){
646
+ datahike.db.transaction.validate_val(v,new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,null,a,v,null], null),db);
647
+
648
+ return new cljs.core.Keyword(null,"e","e",1381269198).cljs$core$IFn$_invoke$arity$1(cljs.core.first(datahike.db.interface$.datoms(db,new cljs.core.Keyword(null,"avet","avet",1383857032),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,v], null))));
649
+ })()
650
+ :null);
651
+ if((temp__5806__auto__ == null)){
652
+ return acc;
653
+ } else {
654
+ var e = temp__5806__auto__;
655
+ if((acc == null)){
656
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,a,v], null);
657
+ } else {
658
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$2(acc,(0)),e)){
659
+ return acc;
660
+ } else {
661
+ var vec__59185 = acc;
662
+ var _e = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59185,(0),null);
663
+ var _a = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59185,(1),null);
664
+ var _v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59185,(2),null);
665
+ var G__59193 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Conflicting upserts: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [_a,_v], null)], 0))," resolves to ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([_e], 0)),", but ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,v], null)], 0))," resolves to ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e], 0))].join(''),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","upsert","transact/upsert",412688078),new cljs.core.Keyword(null,"entity","entity",-450970276),entity,new cljs.core.Keyword(null,"assertion","assertion",-1645134882),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,a,v], null),new cljs.core.Keyword(null,"conflict","conflict",1978796605),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [_e,_a,_v], null)], null))})();
666
+ var fexpr__59192 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,326,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
667
+ return new cljs.core.PersistentVector(null, 9, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Conflicting upserts: ",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [_a,_v], null)," resolves to ",_e,", but ",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,v], null)," resolves to ",e,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","upsert","transact/upsert",412688078),new cljs.core.Keyword(null,"entity","entity",-450970276),entity,new cljs.core.Keyword(null,"assertion","assertion",-1645134882),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,a,v], null),new cljs.core.Keyword(null,"conflict","conflict",1978796605),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [_e,_a,_v], null)], null)], null);
668
+ }),null)),null,(267),null,null,null);
669
+ return (fexpr__59192.cljs$core$IFn$_invoke$arity$1 ? fexpr__59192.cljs$core$IFn$_invoke$arity$1(G__59193) : fexpr__59192.call(null, G__59193));
670
+
671
+ }
672
+ }
673
+ }
674
+ }
675
+ }),null,entity);
676
+ var found_eav_including_composite_tuples = cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,a_tuple){
677
+ var tuple_attrs = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(datahike.db.interface$._schema(db),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a_tuple,new cljs.core.Keyword("db","tupleAttrs","db/tupleAttrs",250080092)], null));
678
+ var contains_tuple_attrs_QMARK_ = clojure.set.subset_QMARK_(cljs.core.set(tuple_attrs),cljs.core.set(cljs.core.keys(entity)));
679
+ var tuple_contains_tempids_QMARK_ = (function (){var and__5000__auto__ = contains_tuple_attrs_QMARK_;
680
+ if(and__5000__auto__){
681
+ return cljs.core.some((function (a){
682
+ return ((datahike.db.utils.ref_QMARK_(db,a)) && (datahike.db.transaction.tempid_QMARK_(cljs.core.get.cljs$core$IFn$_invoke$arity$2(entity,a))));
683
+ }),tuple_attrs);
684
+ } else {
685
+ return and__5000__auto__;
686
+ }
687
+ })();
688
+ var v_tuple = (function (){var and__5000__auto__ = contains_tuple_attrs_QMARK_;
689
+ if(and__5000__auto__){
690
+ var and__5000__auto____$1 = cljs.core.not(tuple_contains_tempids_QMARK_);
691
+ if(and__5000__auto____$1){
692
+ return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (a){
693
+ var v = cljs.core.get.cljs$core$IFn$_invoke$arity$2(entity,a);
694
+ datahike.db.transaction.validate_val(v,new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,null,a,v,null], null),db);
695
+
696
+ if(datahike.db.utils.ref_QMARK_(db,a)){
697
+ return datahike.db.utils.entid_strict.cljs$core$IFn$_invoke$arity$2(db,v);
698
+ } else {
699
+ return v;
700
+ }
701
+ }),tuple_attrs);
702
+ } else {
703
+ return and__5000__auto____$1;
704
+ }
705
+ } else {
706
+ return and__5000__auto__;
707
+ }
708
+ })();
709
+ var temp__5802__auto__ = (function (){var and__5000__auto__ = contains_tuple_attrs_QMARK_;
710
+ if(and__5000__auto__){
711
+ var and__5000__auto____$1 = cljs.core.not(tuple_contains_tempids_QMARK_);
712
+ if(and__5000__auto____$1){
713
+ return new cljs.core.Keyword(null,"e","e",1381269198).cljs$core$IFn$_invoke$arity$1(cljs.core.first(datahike.db.interface$.datoms(db,new cljs.core.Keyword(null,"avet","avet",1383857032),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a_tuple,v_tuple], null))));
714
+ } else {
715
+ return and__5000__auto____$1;
716
+ }
717
+ } else {
718
+ return and__5000__auto__;
719
+ }
720
+ })();
721
+ if(cljs.core.truth_(temp__5802__auto__)){
722
+ var e = temp__5802__auto__;
723
+ if((acc == null)){
724
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,a_tuple,v_tuple], null);
725
+ } else {
726
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$2(acc,(0)),e)){
727
+ return acc;
728
+ } else {
729
+ var vec__59197 = acc;
730
+ var _e = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59197,(0),null);
731
+ var _a = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59197,(1),null);
732
+ var _v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59197,(2),null);
733
+ var G__59203 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Conflicting upserts: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [_a,_v], null)], 0))," resolves to ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([_e], 0)),", but ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a_tuple,v_tuple], null)], 0))," resolves to ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e], 0))].join(''),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","upsert","transact/upsert",412688078),new cljs.core.Keyword(null,"entity","entity",-450970276),entity,new cljs.core.Keyword(null,"assertion","assertion",-1645134882),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,a_tuple,v_tuple], null),new cljs.core.Keyword(null,"conflict","conflict",1978796605),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [_e,_a,_v], null)], null))})();
734
+ var fexpr__59202 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,364,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
735
+ return new cljs.core.PersistentVector(null, 9, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Conflicting upserts: ",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [_a,_v], null)," resolves to ",_e,", but ",new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a_tuple,v_tuple], null)," resolves to ",e,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","upsert","transact/upsert",412688078),new cljs.core.Keyword(null,"entity","entity",-450970276),entity,new cljs.core.Keyword(null,"assertion","assertion",-1645134882),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [e,a_tuple,v_tuple], null),new cljs.core.Keyword(null,"conflict","conflict",1978796605),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [_e,_a,_v], null)], null)], null);
736
+ }),null)),null,(269),null,null,null);
737
+ return (fexpr__59202.cljs$core$IFn$_invoke$arity$1 ? fexpr__59202.cljs$core$IFn$_invoke$arity$1(G__59203) : fexpr__59202.call(null, G__59203));
738
+
739
+ }
740
+ }
741
+ } else {
742
+ return acc;
743
+ }
744
+ }),found_eav,unique_tuple_idents);
745
+ return cljs.core.first(datahike.db.transaction.check_upsert_conflict(entity,found_eav_including_composite_tuples));
746
+ } else {
747
+ return null;
748
+ }
749
+ });
750
+ datahike.db.transaction.maybe_wrap_multival = (function datahike$db$transaction$maybe_wrap_multival(db,a_ident,vs){
751
+ if((!(((datahike.db.utils.reverse_ref_QMARK_(a_ident)) || (datahike.db.utils.multival_QMARK_(db,a_ident)))))){
752
+ return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [vs], null);
753
+ } else {
754
+ if((!(((me.tonsky.persistent_sorted_set.arrays.array_QMARK_(vs)) || (((cljs.core.coll_QMARK_(vs)) && ((!(cljs.core.map_QMARK_(vs)))))))))){
755
+ return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [vs], null);
756
+ } else {
757
+ if(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(vs),(2))) && ((((cljs.core.first(vs) instanceof cljs.core.Keyword)) && (((datahike.db.utils.is_attr_QMARK_(db,cljs.core.first(vs),new cljs.core.Keyword("db.unique","identity","db.unique/identity",1675950722))) && ((!(datahike.schema.entity_spec_attr_QMARK_(a_ident)))))))))){
758
+ return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [vs], null);
759
+ } else {
760
+ return vs;
761
+
762
+ }
763
+ }
764
+ }
765
+ });
766
+ datahike.db.transaction.explode = (function datahike$db$transaction$explode(db,entity){
767
+ var eid = new cljs.core.Keyword("db","id","db/id",-1388397098).cljs$core$IFn$_invoke$arity$1(entity);
768
+ var attribute_refs_QMARK_ = new cljs.core.Keyword(null,"attribute-refs?","attribute-refs?",-1070298065).cljs$core$IFn$_invoke$arity$1(datahike.db.interface$._config(db));
769
+ var _ = (cljs.core.truth_((function (){var and__5000__auto__ = attribute_refs_QMARK_;
770
+ if(cljs.core.truth_(and__5000__auto__)){
771
+ return cljs.core.contains_QMARK_(datahike.db.interface$._system_entities(db),eid);
772
+ } else {
773
+ return and__5000__auto__;
774
+ }
775
+ })())?(function (){var G__59209 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Entity with ID ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([eid], 0))," is a system attribute ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([datahike.db.interface$._ident_for(db,eid)], 0))," and cannot be changed"].join(''),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"eid","eid",559519930),eid,new cljs.core.Keyword(null,"attribute","attribute",-2074029119),datahike.db.interface$._ident_for(db,eid),new cljs.core.Keyword(null,"context","context",-830191113),entity], null))})();
776
+ var fexpr__59208 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,403,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
777
+ return new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Entity with ID ",eid," is a system attribute ",datahike.db.interface$._ident_for(db,eid)," and cannot be changed",new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"eid","eid",559519930),eid,new cljs.core.Keyword(null,"attribute","attribute",-2074029119),datahike.db.interface$._ident_for(db,eid),new cljs.core.Keyword(null,"context","context",-830191113),entity], null)], null);
778
+ }),null)),null,(271),null,null,null);
779
+ return (fexpr__59208.cljs$core$IFn$_invoke$arity$1 ? fexpr__59208.cljs$core$IFn$_invoke$arity$1(G__59209) : fexpr__59208.call(null, G__59209));
780
+ })():null);
781
+ var ensure = new cljs.core.Keyword("db","ensure","db/ensure",-439176357).cljs$core$IFn$_invoke$arity$1(entity);
782
+ var entities = (function (){var iter__5480__auto__ = (function datahike$db$transaction$explode_$_iter__59212(s__59213){
783
+ return (new cljs.core.LazySeq(null,(function (){
784
+ var s__59213__$1 = s__59213;
785
+ while(true){
786
+ var temp__5804__auto__ = cljs.core.seq(s__59213__$1);
787
+ if(temp__5804__auto__){
788
+ var xs__6360__auto__ = temp__5804__auto__;
789
+ var vec__59218 = cljs.core.first(xs__6360__auto__);
790
+ var a_ident = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59218,(0),null);
791
+ var vs = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59218,(1),null);
792
+ if((!(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a_ident,new cljs.core.Keyword("db","id","db/id",-1388397098))) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a_ident,new cljs.core.Keyword("db","ensure","db/ensure",-439176357))))))){
793
+ var ___$1 = datahike.db.utils.validate_attr_ident(a_ident,cljs.core.PersistentArrayMap.createAsIfByAssoc([new cljs.core.Keyword("db","id","db/id",-1388397098),eid,a_ident,vs]),db);
794
+ var reverse_QMARK_ = datahike.db.utils.reverse_ref_QMARK_(a_ident);
795
+ var straight_a_ident = ((reverse_QMARK_)?datahike.db.utils.reverse_ref(a_ident):a_ident);
796
+ var straight_a = (cljs.core.truth_(attribute_refs_QMARK_)?datahike.db.interface$._ref_for(db,straight_a_ident):straight_a_ident);
797
+ var ___$2 = ((((reverse_QMARK_) && ((!(datahike.db.utils.ref_QMARK_(db,straight_a_ident))))))?(function (){var G__59224 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Bad attribute ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a_ident], 0)),": reverse attribute name requires {:db/valueType :db.type/ref} in schema"].join(''),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"attribute","attribute",-2074029119),a_ident,new cljs.core.Keyword(null,"context","context",-830191113),cljs.core.PersistentArrayMap.createAsIfByAssoc([new cljs.core.Keyword("db","id","db/id",-1388397098),eid,a_ident,vs])], null))})();
798
+ var fexpr__59223 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,415,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay(((function (s__59213__$1,G__59224,___$1,reverse_QMARK_,straight_a_ident,straight_a,vec__59218,a_ident,vs,xs__6360__auto__,temp__5804__auto__,eid,attribute_refs_QMARK_,_,ensure){
799
+ return (function (){
800
+ return new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Bad attribute ",a_ident,": reverse attribute name requires {:db/valueType :db.type/ref} in schema",new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"attribute","attribute",-2074029119),a_ident,new cljs.core.Keyword(null,"context","context",-830191113),cljs.core.PersistentArrayMap.createAsIfByAssoc([new cljs.core.Keyword("db","id","db/id",-1388397098),eid,a_ident,vs])], null)], null);
801
+ });})(s__59213__$1,G__59224,___$1,reverse_QMARK_,straight_a_ident,straight_a,vec__59218,a_ident,vs,xs__6360__auto__,temp__5804__auto__,eid,attribute_refs_QMARK_,_,ensure))
802
+ ,null)),null,(273),null,null,null);
803
+ return (fexpr__59223.cljs$core$IFn$_invoke$arity$1 ? fexpr__59223.cljs$core$IFn$_invoke$arity$1(G__59224) : fexpr__59223.call(null, G__59224));
804
+ })():null);
805
+ var iterys__5476__auto__ = ((function (s__59213__$1,___$1,reverse_QMARK_,straight_a_ident,straight_a,___$2,vec__59218,a_ident,vs,xs__6360__auto__,temp__5804__auto__,eid,attribute_refs_QMARK_,_,ensure){
806
+ return (function datahike$db$transaction$explode_$_iter__59212_$_iter__59214(s__59215){
807
+ return (new cljs.core.LazySeq(null,((function (s__59213__$1,___$1,reverse_QMARK_,straight_a_ident,straight_a,___$2,vec__59218,a_ident,vs,xs__6360__auto__,temp__5804__auto__,eid,attribute_refs_QMARK_,_,ensure){
808
+ return (function (){
809
+ var s__59215__$1 = s__59215;
810
+ while(true){
811
+ var temp__5804__auto____$1 = cljs.core.seq(s__59215__$1);
812
+ if(temp__5804__auto____$1){
813
+ var s__59215__$2 = temp__5804__auto____$1;
814
+ if(cljs.core.chunked_seq_QMARK_(s__59215__$2)){
815
+ var c__5478__auto__ = cljs.core.chunk_first(s__59215__$2);
816
+ var size__5479__auto__ = cljs.core.count(c__5478__auto__);
817
+ var b__59217 = cljs.core.chunk_buffer(size__5479__auto__);
818
+ if((function (){var i__59216 = (0);
819
+ while(true){
820
+ if((i__59216 < size__5479__auto__)){
821
+ var v = cljs.core._nth(c__5478__auto__,i__59216);
822
+ cljs.core.chunk_append(b__59217,((((datahike.db.utils.ref_QMARK_(db,straight_a_ident)) && (cljs.core.map_QMARK_(v))))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(v,datahike.db.utils.reverse_ref(a_ident),eid):((reverse_QMARK_)?new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("db","add","db/add",235286841),v,straight_a,eid], null):new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("db","add","db/add",235286841),eid,straight_a,(cljs.core.truth_((function (){var and__5000__auto__ = attribute_refs_QMARK_;
823
+ if(cljs.core.truth_(and__5000__auto__)){
824
+ return ((datahike.db.utils.is_attr_QMARK_(db,straight_a_ident,new cljs.core.Keyword("db","systemAttribRef","db/systemAttribRef",-740486325))) && (datahike.schema.is_system_keyword_QMARK_(v)));
825
+ } else {
826
+ return and__5000__auto__;
827
+ }
828
+ })())?datahike.db.interface$._ref_for(db,v):v)], null))));
829
+
830
+ var G__59609 = (i__59216 + (1));
831
+ i__59216 = G__59609;
832
+ continue;
833
+ } else {
834
+ return true;
835
+ }
836
+ break;
837
+ }
838
+ })()){
839
+ return cljs.core.chunk_cons(cljs.core.chunk(b__59217),datahike$db$transaction$explode_$_iter__59212_$_iter__59214(cljs.core.chunk_rest(s__59215__$2)));
840
+ } else {
841
+ return cljs.core.chunk_cons(cljs.core.chunk(b__59217),null);
842
+ }
843
+ } else {
844
+ var v = cljs.core.first(s__59215__$2);
845
+ return cljs.core.cons(((((datahike.db.utils.ref_QMARK_(db,straight_a_ident)) && (cljs.core.map_QMARK_(v))))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(v,datahike.db.utils.reverse_ref(a_ident),eid):((reverse_QMARK_)?new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("db","add","db/add",235286841),v,straight_a,eid], null):new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("db","add","db/add",235286841),eid,straight_a,(cljs.core.truth_((function (){var and__5000__auto__ = attribute_refs_QMARK_;
846
+ if(cljs.core.truth_(and__5000__auto__)){
847
+ return ((datahike.db.utils.is_attr_QMARK_(db,straight_a_ident,new cljs.core.Keyword("db","systemAttribRef","db/systemAttribRef",-740486325))) && (datahike.schema.is_system_keyword_QMARK_(v)));
848
+ } else {
849
+ return and__5000__auto__;
850
+ }
851
+ })())?datahike.db.interface$._ref_for(db,v):v)], null))),datahike$db$transaction$explode_$_iter__59212_$_iter__59214(cljs.core.rest(s__59215__$2)));
852
+ }
853
+ } else {
854
+ return null;
855
+ }
856
+ break;
857
+ }
858
+ });})(s__59213__$1,___$1,reverse_QMARK_,straight_a_ident,straight_a,___$2,vec__59218,a_ident,vs,xs__6360__auto__,temp__5804__auto__,eid,attribute_refs_QMARK_,_,ensure))
859
+ ,null,null));
860
+ });})(s__59213__$1,___$1,reverse_QMARK_,straight_a_ident,straight_a,___$2,vec__59218,a_ident,vs,xs__6360__auto__,temp__5804__auto__,eid,attribute_refs_QMARK_,_,ensure))
861
+ ;
862
+ var fs__5477__auto__ = cljs.core.seq(iterys__5476__auto__(datahike.db.transaction.maybe_wrap_multival(db,a_ident,vs)));
863
+ if(fs__5477__auto__){
864
+ return cljs.core.concat.cljs$core$IFn$_invoke$arity$2(fs__5477__auto__,datahike$db$transaction$explode_$_iter__59212(cljs.core.rest(s__59213__$1)));
865
+ } else {
866
+ var G__59610 = cljs.core.rest(s__59213__$1);
867
+ s__59213__$1 = G__59610;
868
+ continue;
869
+ }
870
+ } else {
871
+ var G__59611 = cljs.core.rest(s__59213__$1);
872
+ s__59213__$1 = G__59611;
873
+ continue;
874
+ }
875
+ } else {
876
+ return null;
877
+ }
878
+ break;
879
+ }
880
+ }),null,null));
881
+ });
882
+ return iter__5480__auto__(entity);
883
+ })();
884
+ if(cljs.core.truth_(ensure)){
885
+ var map__59229 = (function (){var G__59230 = new cljs.core.Keyword(null,"schema","schema",-1582001791).cljs$core$IFn$_invoke$arity$1(db);
886
+ return (ensure.cljs$core$IFn$_invoke$arity$1 ? ensure.cljs$core$IFn$_invoke$arity$1(G__59230) : ensure.call(null, G__59230));
887
+ })();
888
+ var map__59229__$1 = cljs.core.__destructure_map(map__59229);
889
+ var attrs = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__59229__$1,new cljs.core.Keyword("db.entity","attrs","db.entity/attrs",655746694));
890
+ var preds = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__59229__$1,new cljs.core.Keyword("db.entity","preds","db.entity/preds",-872853699));
891
+ if(cljs.core.empty_QMARK_(attrs)){
892
+ if(cljs.core.empty_QMARK_(preds)){
893
+ return entities;
894
+ } else {
895
+ return cljs.core.concat.cljs$core$IFn$_invoke$arity$2(entities,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("db.ensure","preds","db.ensure/preds",-872900708),eid,ensure,preds], null)], null));
896
+ }
897
+ } else {
898
+ if(cljs.core.empty_QMARK_(preds)){
899
+ return cljs.core.concat.cljs$core$IFn$_invoke$arity$2(entities,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("db.ensure","attrs","db.ensure/attrs",655728873),eid,ensure,attrs], null)], null));
900
+ } else {
901
+ return cljs.core.concat.cljs$core$IFn$_invoke$arity$2(entities,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("db.ensure","attrs","db.ensure/attrs",655728873),eid,ensure,attrs], null),new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("db.ensure","preds","db.ensure/preds",-872900708),eid,ensure,preds], null)], null));
902
+ }
903
+ }
904
+ } else {
905
+ return entities;
906
+ }
907
+ });
908
+ datahike.db.transaction.transact_add = (function datahike$db$transaction$transact_add(p__59233,p__59234){
909
+ var map__59235 = p__59233;
910
+ var map__59235__$1 = cljs.core.__destructure_map(map__59235);
911
+ var report = map__59235__$1;
912
+ var db_after = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__59235__$1,new cljs.core.Keyword(null,"db-after","db-after",-571884666));
913
+ var vec__59236 = p__59234;
914
+ var _ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59236,(0),null);
915
+ var e = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59236,(1),null);
916
+ var a = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59236,(2),null);
917
+ var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59236,(3),null);
918
+ var tx = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59236,(4),null);
919
+ var ent = vec__59236;
920
+ var a__$1 = datahike.db.utils.normalize_and_validate_attr(a,ent,db_after);
921
+ var ___$1 = datahike.db.transaction.validate_val(v,ent,db_after);
922
+ var attribute_refs_QMARK_ = new cljs.core.Keyword(null,"attribute-refs?","attribute-refs?",-1070298065).cljs$core$IFn$_invoke$arity$1(datahike.db.interface$._config(db_after));
923
+ var tx__$1 = (function (){var or__5002__auto__ = tx;
924
+ if(cljs.core.truth_(or__5002__auto__)){
925
+ return or__5002__auto__;
926
+ } else {
927
+ return datahike.db.transaction.current_tx(report);
928
+ }
929
+ })();
930
+ var db = db_after;
931
+ var e__$1 = datahike.db.utils.entid_strict.cljs$core$IFn$_invoke$arity$2(db,e);
932
+ var a_ident = (cljs.core.truth_(attribute_refs_QMARK_)?datahike.db.interface$._ident_for(db,a__$1):a__$1);
933
+ var v__$1 = ((datahike.db.utils.ref_QMARK_(db,a_ident))?datahike.db.utils.entid_strict.cljs$core$IFn$_invoke$arity$2(db,v):v);
934
+ var new_datom = datahike.datom.datom.cljs$core$IFn$_invoke$arity$4(e__$1,a__$1,v__$1,tx__$1);
935
+ var upsert_QMARK_ = (!(datahike.db.utils.multival_QMARK_(db,a__$1)));
936
+ return datahike.db.transaction.transact_report.cljs$core$IFn$_invoke$arity$3(report,new_datom,upsert_QMARK_);
937
+ });
938
+ datahike.db.transaction.transact_retract_datom = (function datahike$db$transaction$transact_retract_datom(var_args){
939
+ var G__59244 = arguments.length;
940
+ switch (G__59244) {
941
+ case 2:
942
+ return datahike.db.transaction.transact_retract_datom.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
943
+
944
+ break;
945
+ case 3:
946
+ return datahike.db.transaction.transact_retract_datom.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
947
+
948
+ break;
949
+ default:
950
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
951
+
952
+ }
953
+ });
954
+
955
+ (datahike.db.transaction.transact_retract_datom.cljs$core$IFn$_invoke$arity$2 = (function (report,d){
956
+ return datahike.db.transaction.transact_retract_datom.cljs$core$IFn$_invoke$arity$3(report,d,false);
957
+ }));
958
+
959
+ (datahike.db.transaction.transact_retract_datom.cljs$core$IFn$_invoke$arity$3 = (function (report,d,keep_tx_id){
960
+ var txid = (function (){var or__5002__auto__ = (function (){var and__5000__auto__ = keep_tx_id;
961
+ if(cljs.core.truth_(and__5000__auto__)){
962
+ return datahike.datom.datom_tx(d);
963
+ } else {
964
+ return and__5000__auto__;
965
+ }
966
+ })();
967
+ if(cljs.core.truth_(or__5002__auto__)){
968
+ return or__5002__auto__;
969
+ } else {
970
+ return datahike.db.transaction.current_tx(report);
971
+ }
972
+ })();
973
+ return datahike.db.transaction.transact_report.cljs$core$IFn$_invoke$arity$2(report,datahike.datom.datom.cljs$core$IFn$_invoke$arity$5(d.e,d.a,d.v,txid,false));
974
+ }));
975
+
976
+ (datahike.db.transaction.transact_retract_datom.cljs$lang$maxFixedArity = 3);
977
+
978
+ datahike.db.transaction.transact_purge_datom = (function datahike$db$transaction$transact_purge_datom(report,d){
979
+ return cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(report,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"db-after","db-after",-571884666)], null),datahike.db.transaction.with_temporal_datom,d);
980
+ });
981
+ datahike.db.transaction.retract_components = (function datahike$db$transaction$retract_components(db,datoms){
982
+ return cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentHashSet.EMPTY,cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.filter.cljs$core$IFn$_invoke$arity$1((function (d){
983
+ return datahike.db.utils.component_QMARK_(db,d.a);
984
+ })),cljs.core.map.cljs$core$IFn$_invoke$arity$1((function (d){
985
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("db.fn","retractEntity","db.fn/retractEntity",-1423535441),d.v], null);
986
+ }))),datoms);
987
+ });
988
+ datahike.db.transaction.purge_components = (function datahike$db$transaction$purge_components(db,datoms){
989
+ var xf = cljs.core.comp.cljs$core$IFn$_invoke$arity$2(cljs.core.filter.cljs$core$IFn$_invoke$arity$1((function (d){
990
+ return datahike.db.utils.component_QMARK_(db,d.a);
991
+ })),cljs.core.map.cljs$core$IFn$_invoke$arity$1((function (d){
992
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("db.purge","entity","db.purge/entity",-669607897),d.v], null);
993
+ })));
994
+ return cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentHashSet.EMPTY,xf,datoms);
995
+ });
996
+ datahike.db.transaction.retry_with_tempid = (function datahike$db$transaction$retry_with_tempid(initial_report,report,es,tempid,upserted_eid){
997
+ if(cljs.core.contains_QMARK_(new cljs.core.Keyword(null,"tempids","tempids",1767509089).cljs$core$IFn$_invoke$arity$1(initial_report),tempid)){
998
+ var G__59256 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Conflicting upsert: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([tempid], 0))," resolves"," both to ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([upserted_eid], 0))," and ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(initial_report,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tempids","tempids",1767509089),tempid], null))], 0))].join(''),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","upsert","transact/upsert",412688078)], null))})();
999
+ var fexpr__59255 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,477,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1000
+ return new cljs.core.PersistentVector(null, 8, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Conflicting upsert: ",tempid," resolves"," both to ",upserted_eid," and ",cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(initial_report,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tempids","tempids",1767509089),tempid], null)),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","upsert","transact/upsert",412688078)], null)], null);
1001
+ }),null)),null,(275),null,null,null);
1002
+ return (fexpr__59255.cljs$core$IFn$_invoke$arity$1 ? fexpr__59255.cljs$core$IFn$_invoke$arity$1(G__59256) : fexpr__59255.call(null, G__59256));
1003
+ } else {
1004
+ var tempids_SINGLEQUOTE_ = cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,"tempids","tempids",1767509089).cljs$core$IFn$_invoke$arity$1(report),tempid,upserted_eid);
1005
+ var report_SINGLEQUOTE_ = cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(initial_report,new cljs.core.Keyword(null,"tempids","tempids",1767509089),tempids_SINGLEQUOTE_);
1006
+ return (datahike.db.transaction.transact_tx_data.cljs$core$IFn$_invoke$arity$2 ? datahike.db.transaction.transact_tx_data.cljs$core$IFn$_invoke$arity$2(report_SINGLEQUOTE_,es) : datahike.db.transaction.transact_tx_data.call(null, report_SINGLEQUOTE_,es));
1007
+ }
1008
+ });
1009
+ datahike.db.transaction.assert_preds = (function datahike$db$transaction$assert_preds(db,p__59259){
1010
+ var vec__59260 = p__59259;
1011
+ var _ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59260,(0),null);
1012
+ var e = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59260,(1),null);
1013
+ var ___$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59260,(2),null);
1014
+ var preds = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59260,(3),null);
1015
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("tx predicate resolution is not supported in cljs at this time",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"e","e",1381269198),e,new cljs.core.Keyword(null,"preds","preds",-1489609750),preds], null));
1016
+ });
1017
+ datahike.db.transaction.builtin_op_QMARK_ = new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 14, [new cljs.core.Keyword("db.purge","entity","db.purge/entity",-669607897),null,new cljs.core.Keyword("db.ensure","attrs","db.ensure/attrs",655728873),null,new cljs.core.Keyword("db.fn","call","db.fn/call",-151594418),null,new cljs.core.Keyword("db","cas","db/cas",-451542322),null,new cljs.core.Keyword("db.purge","attribute","db.purge/attribute",1566082862),null,new cljs.core.Keyword("db.fn","retractEntity","db.fn/retractEntity",-1423535441),null,new cljs.core.Keyword("db","retractEntity","db/retractEntity",-1452737935),null,new cljs.core.Keyword("db","retract","db/retract",-1549825231),null,new cljs.core.Keyword("db","purge","db/purge",169414195),null,new cljs.core.Keyword("db.fn","retractAttribute","db.fn/retractAttribute",937402164),null,new cljs.core.Keyword("db.fn","cas","db.fn/cas",-379352172),null,new cljs.core.Keyword("db","add","db/add",235286841),null,new cljs.core.Keyword("db.history.purge","before","db.history.purge/before",-2097354183),null,new cljs.core.Keyword("db.ensure","preds","db.ensure/preds",-872900708),null], null), null);
1018
+ /**
1019
+ * Generates all the add or retract operations needed for updating the states of composite tuples.
1020
+ * E.g., if '::queued-tuples' contains {100 {:a+b+c [123 nil nil]}}, this function creates this vector [:db/add 100 :a+b+c [123 nil nil]]
1021
+ */
1022
+ datahike.db.transaction.flush_tuples = (function datahike$db$transaction$flush_tuples(report){
1023
+ var db = new cljs.core.Keyword(null,"db-after","db-after",-571884666).cljs$core$IFn$_invoke$arity$1(report);
1024
+ return cljs.core.reduce_kv((function (entities,eid,tuples_PLUS_values){
1025
+ return cljs.core.reduce_kv((function (entities__$1,tuple,value){
1026
+ var value__$1 = ((cljs.core.every_QMARK_(cljs.core.nil_QMARK_,value))?null:value);
1027
+ var current = new cljs.core.Keyword(null,"v","v",21465059).cljs$core$IFn$_invoke$arity$1(cljs.core.first(datahike.db.interface$.datoms(db,new cljs.core.Keyword(null,"eavt","eavt",-666437073),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [eid,tuple], null))));
1028
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(value__$1,current)){
1029
+ return entities__$1;
1030
+ } else {
1031
+ if((value__$1 == null)){
1032
+ return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(entities__$1,cljs.core.with_meta(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("db","retract","db/retract",-1549825231),eid,tuple,current], null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("datahike.db.transaction","internal","datahike.db.transaction/internal",-1391460122),true], null)));
1033
+ } else {
1034
+ return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(entities__$1,cljs.core.with_meta(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("db","add","db/add",235286841),eid,tuple,value__$1], null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("datahike.db.transaction","internal","datahike.db.transaction/internal",-1391460122),true], null)));
1035
+
1036
+ }
1037
+ }
1038
+ }),entities,tuples_PLUS_values);
1039
+ }),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword("datahike.db.transaction","queued-tuples","datahike.db.transaction/queued-tuples",2119460387).cljs$core$IFn$_invoke$arity$1(report));
1040
+ });
1041
+ /**
1042
+ * Generates add-operations for transaction meta data.
1043
+ */
1044
+ datahike.db.transaction.flush_tx_meta = (function datahike$db$transaction$flush_tx_meta(p__59268){
1045
+ var map__59270 = p__59268;
1046
+ var map__59270__$1 = cljs.core.__destructure_map(map__59270);
1047
+ var report = map__59270__$1;
1048
+ var tx_meta = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__59270__$1,new cljs.core.Keyword(null,"tx-meta","tx-meta",1159283194));
1049
+ var db_before = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__59270__$1,new cljs.core.Keyword(null,"db-before","db-before",-553691536));
1050
+ var tid = datahike.db.transaction.current_tx(report);
1051
+ var map__59271 = datahike.db.interface$._config(db_before);
1052
+ var map__59271__$1 = cljs.core.__destructure_map(map__59271);
1053
+ var attribute_refs_QMARK_ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__59271__$1,new cljs.core.Keyword(null,"attribute-refs?","attribute-refs?",-1070298065));
1054
+ return cljs.core.reduce_kv((function (entities,attribute,value){
1055
+ var straight_a = (cljs.core.truth_(attribute_refs_QMARK_)?datahike.db.interface$._ref_for(db_before,attribute):attribute);
1056
+ if((!((straight_a == null)))){
1057
+ return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(entities,new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("db","add","db/add",235286841),tid,straight_a,value,tid], null));
1058
+ } else {
1059
+ var G__59274 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Bad transaction meta attribute ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([attribute], 0))," at ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([tx_meta], 0)),", not defined in system or current schema"].join(''),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","schema","transact/schema",1426844139),new cljs.core.Keyword(null,"attribute","attribute",-2074029119),attribute,new cljs.core.Keyword(null,"context","context",-830191113),tx_meta], null))})();
1060
+ var fexpr__59273 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,550,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1061
+ return new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Bad transaction meta attribute ",attribute," at ",tx_meta,", not defined in system or current schema",new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","schema","transact/schema",1426844139),new cljs.core.Keyword(null,"attribute","attribute",-2074029119),attribute,new cljs.core.Keyword(null,"context","context",-830191113),tx_meta], null)], null);
1062
+ }),null)),null,(277),null,null,null);
1063
+ return (fexpr__59273.cljs$core$IFn$_invoke$arity$1 ? fexpr__59273.cljs$core$IFn$_invoke$arity$1(G__59274) : fexpr__59273.call(null, G__59274));
1064
+ }
1065
+ }),cljs.core.PersistentVector.EMPTY,tx_meta);
1066
+ });
1067
+ datahike.db.transaction.check_schema_update = (function datahike$db$transaction$check_schema_update(db,entity,new_eid){
1068
+ if(cljs.core.truth_(datahike.schema.schema_entity_QMARK_(entity))){
1069
+ if(((cljs.core.contains_QMARK_(entity,new cljs.core.Keyword("db","ident","db/ident",-737096))) && (datahike.schema.is_system_keyword_QMARK_(new cljs.core.Keyword("db","ident","db/ident",-737096).cljs$core$IFn$_invoke$arity$1(entity))))){
1070
+ var G__59284_59635 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Using namespace 'db' for attribute identifiers is not allowed",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","schema","transact/schema",1426844139),new cljs.core.Keyword(null,"entity","entity",-450970276),entity], null))})();
1071
+ var fexpr__59283_59636 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,559,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1072
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Using namespace 'db' for attribute identifiers is not allowed",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","schema","transact/schema",1426844139),new cljs.core.Keyword(null,"entity","entity",-450970276),entity], null)], null);
1073
+ }),null)),null,(279),null,null,null);
1074
+ (fexpr__59283_59636.cljs$core$IFn$_invoke$arity$1 ? fexpr__59283_59636.cljs$core$IFn$_invoke$arity$1(G__59284_59635) : fexpr__59283_59636.call(null, G__59284_59635));
1075
+ } else {
1076
+ }
1077
+
1078
+ var temp__5802__auto__ = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(db,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"schema","schema",-1582001791),new_eid], null));
1079
+ if(cljs.core.truth_(temp__5802__auto__)){
1080
+ var attr_name = temp__5802__auto__;
1081
+ var temp__5804__auto__ = datahike.schema.find_invalid_schema_updates(entity,cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(db,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"schema","schema",-1582001791),attr_name], null)));
1082
+ if(cljs.core.truth_(temp__5804__auto__)){
1083
+ var invalid_updates = temp__5804__auto__;
1084
+ if(cljs.core.empty_QMARK_(invalid_updates)){
1085
+ return null;
1086
+ } else {
1087
+ var G__59288 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Update not supported for these schema attributes",new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","schema","transact/schema",1426844139),new cljs.core.Keyword(null,"entity","entity",-450970276),entity,new cljs.core.Keyword(null,"invalid-updates","invalid-updates",1952998983),invalid_updates], null))})();
1088
+ var fexpr__59287 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,564,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1089
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Update not supported for these schema attributes",new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","schema","transact/schema",1426844139),new cljs.core.Keyword(null,"entity","entity",-450970276),entity,new cljs.core.Keyword(null,"invalid-updates","invalid-updates",1952998983),invalid_updates], null)], null);
1090
+ }),null)),null,(281),null,null,null);
1091
+ return (fexpr__59287.cljs$core$IFn$_invoke$arity$1 ? fexpr__59287.cljs$core$IFn$_invoke$arity$1(G__59288) : fexpr__59287.call(null, G__59288));
1092
+ }
1093
+ } else {
1094
+ return null;
1095
+ }
1096
+ } else {
1097
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"write","write",-1857649168),cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(db,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"config","config",994861415),new cljs.core.Keyword(null,"schema-flexibility","schema-flexibility",-1255871751)], null)))){
1098
+ if(cljs.core.truth_((function (){var or__5002__auto__ = new cljs.core.Keyword("db","cardinality","db/cardinality",-104975659).cljs$core$IFn$_invoke$arity$1(entity);
1099
+ if(cljs.core.truth_(or__5002__auto__)){
1100
+ return or__5002__auto__;
1101
+ } else {
1102
+ return new cljs.core.Keyword("db","valueType","db/valueType",1827971944).cljs$core$IFn$_invoke$arity$1(entity);
1103
+ }
1104
+ })())){
1105
+ if(datahike.schema.schema_QMARK_(entity)){
1106
+ return null;
1107
+ } else {
1108
+ var G__59292 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Incomplete schema transaction attributes, expected :db/ident, :db/valueType, :db/cardinality",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","schema","transact/schema",1426844139),new cljs.core.Keyword(null,"entity","entity",-450970276),entity], null))})();
1109
+ var fexpr__59291 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,569,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1110
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Incomplete schema transaction attributes, expected :db/ident, :db/valueType, :db/cardinality",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","schema","transact/schema",1426844139),new cljs.core.Keyword(null,"entity","entity",-450970276),entity], null)], null);
1111
+ }),null)),null,(283),null,null,null);
1112
+ return (fexpr__59291.cljs$core$IFn$_invoke$arity$1 ? fexpr__59291.cljs$core$IFn$_invoke$arity$1(G__59292) : fexpr__59291.call(null, G__59292));
1113
+ }
1114
+ } else {
1115
+ return null;
1116
+ }
1117
+ } else {
1118
+ return null;
1119
+ }
1120
+ }
1121
+ } else {
1122
+ return null;
1123
+ }
1124
+ });
1125
+ datahike.db.transaction.entity_map__GT_op_vec = (function datahike$db$transaction$entity_map__GT_op_vec(db,p__59294,entity){
1126
+ var map__59296 = p__59294;
1127
+ var map__59296__$1 = cljs.core.__destructure_map(map__59296);
1128
+ var report = map__59296__$1;
1129
+ var tempids = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__59296__$1,new cljs.core.Keyword(null,"tempids","tempids",1767509089));
1130
+ var old_eid = new cljs.core.Keyword("db","id","db/id",-1388397098).cljs$core$IFn$_invoke$arity$1(entity);
1131
+ var tx_QMARK_ = datahike.db.transaction.tx_id_QMARK_(old_eid);
1132
+ var resolved_eid = ((tx_QMARK_)?datahike.db.transaction.current_tx(report):((cljs.core.sequential_QMARK_(old_eid))?datahike.db.utils.entid_strict.cljs$core$IFn$_invoke$arity$2(db,old_eid):old_eid
1133
+ ));
1134
+ var updated_entity = cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(entity,new cljs.core.Keyword("db","id","db/id",-1388397098),resolved_eid);
1135
+ var updated_report = (function (){var G__59298 = report;
1136
+ if(tx_QMARK_){
1137
+ return datahike.db.transaction.allocate_eid.cljs$core$IFn$_invoke$arity$3(G__59298,old_eid,resolved_eid);
1138
+ } else {
1139
+ return G__59298;
1140
+ }
1141
+ })();
1142
+ var resolved_tempid = (tempids.cljs$core$IFn$_invoke$arity$1 ? tempids.cljs$core$IFn$_invoke$arity$1(resolved_eid) : tempids.call(null, resolved_eid));
1143
+ var upserted_eid = datahike.db.transaction.upsert_eid(db,updated_entity,tempids);
1144
+ if(cljs.core.truth_((function (){var and__5000__auto__ = (!((upserted_eid == null)));
1145
+ if(and__5000__auto__){
1146
+ var and__5000__auto____$1 = resolved_tempid;
1147
+ if(cljs.core.truth_(and__5000__auto____$1)){
1148
+ return cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(upserted_eid,resolved_tempid);
1149
+ } else {
1150
+ return and__5000__auto____$1;
1151
+ }
1152
+ } else {
1153
+ return and__5000__auto__;
1154
+ }
1155
+ })())){
1156
+ return new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"retry?","retry?",-1054643849),true,new cljs.core.Keyword(null,"old-eid","old-eid",2091014856),resolved_eid,new cljs.core.Keyword(null,"upserted-eid","upserted-eid",-196454814),upserted_eid], null);
1157
+ } else {
1158
+ var new_eid = (((!((upserted_eid == null))))?upserted_eid:(((resolved_eid == null))?datahike.db.transaction.next_eid(db):((datahike.db.transaction.tempid_QMARK_(resolved_eid))?(function (){var or__5002__auto__ = resolved_tempid;
1159
+ if(cljs.core.truth_(or__5002__auto__)){
1160
+ return or__5002__auto__;
1161
+ } else {
1162
+ return datahike.db.transaction.next_eid(db);
1163
+ }
1164
+ })():((typeof resolved_eid === 'number')?resolved_eid:(function (){var G__59300 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Expected number, string or lookup ref for :db/id, got ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([old_eid], 0))].join(''),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("entity-id","syntax","entity-id/syntax",1921317045),new cljs.core.Keyword(null,"entity","entity",-450970276),updated_entity], null))})();
1165
+ var fexpr__59299 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,592,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1166
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Expected number, string or lookup ref for :db/id, got ",old_eid,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("entity-id","syntax","entity-id/syntax",1921317045),new cljs.core.Keyword(null,"entity","entity",-450970276),updated_entity], null)], null);
1167
+ }),null)),null,(285),null,null,null);
1168
+ return (fexpr__59299.cljs$core$IFn$_invoke$arity$1 ? fexpr__59299.cljs$core$IFn$_invoke$arity$1(G__59300) : fexpr__59299.call(null, G__59300));
1169
+ })()
1170
+ ))));
1171
+ var new_entity = cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(updated_entity,new cljs.core.Keyword("db","id","db/id",-1388397098),new_eid);
1172
+ datahike.db.transaction.check_schema_update(db,updated_entity,new_eid);
1173
+
1174
+ return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"new-report","new-report",-1088769062),datahike.db.transaction.allocate_eid.cljs$core$IFn$_invoke$arity$3(updated_report,resolved_eid,new_eid),new cljs.core.Keyword(null,"new-entities","new-entities",1399989483),datahike.db.transaction.explode(db,new_entity)], null);
1175
+ }
1176
+ });
1177
+ datahike.db.transaction.compare_and_swap = (function datahike$db$transaction$compare_and_swap(db,report,op_vec){
1178
+ var vec__59303 = op_vec;
1179
+ var _ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59303,(0),null);
1180
+ var e = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59303,(1),null);
1181
+ var a = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59303,(2),null);
1182
+ var ov = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59303,(3),null);
1183
+ var nv = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59303,(4),null);
1184
+ var e__$1 = datahike.db.utils.entid_strict.cljs$core$IFn$_invoke$arity$2(db,e);
1185
+ var ___$1 = datahike.db.utils.validate_attr(a,op_vec,db);
1186
+ var nv__$1 = ((datahike.db.utils.ref_QMARK_(db,a))?datahike.db.utils.entid_strict.cljs$core$IFn$_invoke$arity$2(db,nv):nv);
1187
+ var datoms = datahike.db.interface$.search(db,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [e__$1,a], null));
1188
+ if((ov == null)){
1189
+ if(cljs.core.empty_QMARK_(datoms)){
1190
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [datahike.db.transaction.transact_add(report,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("db","add","db/add",235286841),e__$1,a,nv__$1], null)),cljs.core.PersistentVector.EMPTY], null);
1191
+ } else {
1192
+ var G__59310 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2([":db.fn/cas failed on datom [",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e__$1], 0))," ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a], 0))," ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([((datahike.db.utils.multival_QMARK_(db,a))?cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"v","v",21465059),datoms):new cljs.core.Keyword(null,"v","v",21465059).cljs$core$IFn$_invoke$arity$1(cljs.core.first(datoms)))], 0)),"], expected nil"].join(''),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","cas","transact/cas",816687170),new cljs.core.Keyword(null,"old","old",-1825222690),((datahike.db.utils.multival_QMARK_(db,a))?datoms:cljs.core.first(datoms)),new cljs.core.Keyword(null,"expected","expected",1583670997),ov,new cljs.core.Keyword(null,"new","new",-2085437848),nv__$1], null))})();
1193
+ var fexpr__59309 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,608,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1194
+ return new cljs.core.PersistentVector(null, 8, 5, cljs.core.PersistentVector.EMPTY_NODE, [":db.fn/cas failed on datom [",e__$1," ",a," ",((datahike.db.utils.multival_QMARK_(db,a))?cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"v","v",21465059),datoms):new cljs.core.Keyword(null,"v","v",21465059).cljs$core$IFn$_invoke$arity$1(cljs.core.first(datoms))),"], expected nil",new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","cas","transact/cas",816687170),new cljs.core.Keyword(null,"old","old",-1825222690),((datahike.db.utils.multival_QMARK_(db,a))?datoms:cljs.core.first(datoms)),new cljs.core.Keyword(null,"expected","expected",1583670997),ov,new cljs.core.Keyword(null,"new","new",-2085437848),nv__$1], null)], null);
1195
+ }),null)),null,(287),null,null,null);
1196
+ return (fexpr__59309.cljs$core$IFn$_invoke$arity$1 ? fexpr__59309.cljs$core$IFn$_invoke$arity$1(G__59310) : fexpr__59309.call(null, G__59310));
1197
+ }
1198
+ } else {
1199
+ var ov__$1 = ((datahike.db.utils.ref_QMARK_(db,a))?datahike.db.utils.entid_strict.cljs$core$IFn$_invoke$arity$2(db,ov):ov);
1200
+ datahike.db.transaction.validate_val(nv__$1,op_vec,db);
1201
+
1202
+ if(datahike.db.utils.multival_QMARK_(db,a)){
1203
+ if(cljs.core.truth_(cljs.core.some((function (d){
1204
+ return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(d.v,ov__$1);
1205
+ }),datoms))){
1206
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [datahike.db.transaction.transact_add(report,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("db","add","db/add",235286841),e__$1,a,nv__$1], null)),cljs.core.PersistentVector.EMPTY], null);
1207
+ } else {
1208
+ var G__59321 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2([":db.fn/cas failed on datom [",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e__$1], 0))," ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a], 0))," ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"v","v",21465059),datoms)], 0)),"], expected ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ov__$1], 0))].join(''),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","cas","transact/cas",816687170),new cljs.core.Keyword(null,"old","old",-1825222690),datoms,new cljs.core.Keyword(null,"expected","expected",1583670997),ov__$1,new cljs.core.Keyword(null,"new","new",-2085437848),nv__$1], null))})();
1209
+ var fexpr__59320 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,615,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1210
+ return new cljs.core.PersistentVector(null, 9, 5, cljs.core.PersistentVector.EMPTY_NODE, [":db.fn/cas failed on datom [",e__$1," ",a," ",cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"v","v",21465059),datoms),"], expected ",ov__$1,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","cas","transact/cas",816687170),new cljs.core.Keyword(null,"old","old",-1825222690),datoms,new cljs.core.Keyword(null,"expected","expected",1583670997),ov__$1,new cljs.core.Keyword(null,"new","new",-2085437848),nv__$1], null)], null);
1211
+ }),null)),null,(289),null,null,null);
1212
+ return (fexpr__59320.cljs$core$IFn$_invoke$arity$1 ? fexpr__59320.cljs$core$IFn$_invoke$arity$1(G__59321) : fexpr__59320.call(null, G__59321));
1213
+ }
1214
+ } else {
1215
+ var v = new cljs.core.Keyword(null,"v","v",21465059).cljs$core$IFn$_invoke$arity$1(cljs.core.first(datoms));
1216
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(v,ov__$1)){
1217
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [datahike.db.transaction.transact_add(report,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("db","add","db/add",235286841),e__$1,a,nv__$1], null)),cljs.core.PersistentVector.EMPTY], null);
1218
+ } else {
1219
+ var G__59323 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2([":db.fn/cas failed on datom [",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e__$1], 0))," ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a], 0))," ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([v], 0)),"], expected ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ov__$1], 0))].join(''),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","cas","transact/cas",816687170),new cljs.core.Keyword(null,"old","old",-1825222690),cljs.core.first(datoms),new cljs.core.Keyword(null,"expected","expected",1583670997),ov__$1,new cljs.core.Keyword(null,"new","new",-2085437848),nv__$1], null))})();
1220
+ var fexpr__59322 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,620,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1221
+ return new cljs.core.PersistentVector(null, 9, 5, cljs.core.PersistentVector.EMPTY_NODE, [":db.fn/cas failed on datom [",e__$1," ",a," ",v,"], expected ",ov__$1,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","cas","transact/cas",816687170),new cljs.core.Keyword(null,"old","old",-1825222690),cljs.core.first(datoms),new cljs.core.Keyword(null,"expected","expected",1583670997),ov__$1,new cljs.core.Keyword(null,"new","new",-2085437848),nv__$1], null)], null);
1222
+ }),null)),null,(291),null,null,null);
1223
+ return (fexpr__59322.cljs$core$IFn$_invoke$arity$1 ? fexpr__59322.cljs$core$IFn$_invoke$arity$1(G__59323) : fexpr__59322.call(null, G__59323));
1224
+ }
1225
+ }
1226
+ }
1227
+ });
1228
+ datahike.db.transaction.retract_entity = (function datahike$db$transaction$retract_entity(db,report,op_vec){
1229
+ var vec__59327 = op_vec;
1230
+ var _ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59327,(0),null);
1231
+ var e = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59327,(1),null);
1232
+ var temp__5802__auto__ = datahike.db.utils.entid.cljs$core$IFn$_invoke$arity$2(db,e);
1233
+ if(cljs.core.truth_(temp__5802__auto__)){
1234
+ var e__$1 = temp__5802__auto__;
1235
+ var e_datoms = cljs.core.vec(datahike.db.interface$.search(db,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [e__$1], null)));
1236
+ var v_datoms = cljs.core.vec(cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (a){
1237
+ return datahike.db.interface$.search(db,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,a,e__$1], null));
1238
+ }),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(datahike.db.interface$._ident_for,db),datahike.db.interface$._attrs_by(db,new cljs.core.Keyword("db.type","ref","db.type/ref",-1728373079)))], 0)));
1239
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(datahike.db.transaction.transact_retract_datom,report,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(e_datoms,v_datoms)),datahike.db.transaction.retract_components(db,e_datoms)], null);
1240
+ } else {
1241
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [report,cljs.core.PersistentVector.EMPTY], null);
1242
+ }
1243
+ });
1244
+ datahike.db.transaction.check_tuple = (function datahike$db$transaction$check_tuple(db,op_vec){
1245
+ var vec__59332 = op_vec;
1246
+ var _ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59332,(0),null);
1247
+ var ___$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59332,(1),null);
1248
+ var a = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59332,(2),null);
1249
+ var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59332,(3),null);
1250
+ var attr_schema = cljs.core.get.cljs$core$IFn$_invoke$arity$2(datahike.db.interface$._schema(db),a);
1251
+ if(cljs.core.truth_(new cljs.core.Keyword("db","tupleType","db/tupleType",448013354).cljs$core$IFn$_invoke$arity$1(attr_schema))){
1252
+ if((cljs.core.count(v) > (8))){
1253
+ var G__59338 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Cannot store more than 8 values for homogeneous tuple: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([op_vec], 0))].join(''),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null))})();
1254
+ var fexpr__59337 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,640,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1255
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Cannot store more than 8 values for homogeneous tuple: ",op_vec,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null)], null);
1256
+ }),null)),null,(293),null,null,null);
1257
+ return (fexpr__59337.cljs$core$IFn$_invoke$arity$1 ? fexpr__59337.cljs$core$IFn$_invoke$arity$1(G__59338) : fexpr__59337.call(null, G__59338));
1258
+ } else {
1259
+ if(cljs.core.not(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core._EQ_,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.type,v)))){
1260
+ var G__59340 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Cannot store homogeneous tuple with values of different type: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([op_vec], 0))].join(''),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null))})();
1261
+ var fexpr__59339 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,644,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1262
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Cannot store homogeneous tuple with values of different type: ",op_vec,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null)], null);
1263
+ }),null)),null,(295),null,null,null);
1264
+ return (fexpr__59339.cljs$core$IFn$_invoke$arity$1 ? fexpr__59339.cljs$core$IFn$_invoke$arity$1(G__59340) : fexpr__59339.call(null, G__59340));
1265
+ } else {
1266
+ if((!(cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword("db","tupleType","db/tupleType",448013354).cljs$core$IFn$_invoke$arity$1((function (){var G__59343 = datahike.db.interface$._schema(db);
1267
+ return (a.cljs$core$IFn$_invoke$arity$1 ? a.cljs$core$IFn$_invoke$arity$1(G__59343) : a.call(null, G__59343));
1268
+ })()),cljs.core.first(v))))){
1269
+ var G__59345 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Cannot store homogeneous tuple. Values are of wrong type: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([op_vec], 0))].join(''),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null))})();
1270
+ var fexpr__59344 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,648,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1271
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Cannot store homogeneous tuple. Values are of wrong type: ",op_vec,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null)], null);
1272
+ }),null)),null,(297),null,null,null);
1273
+ return (fexpr__59344.cljs$core$IFn$_invoke$arity$1 ? fexpr__59344.cljs$core$IFn$_invoke$arity$1(G__59345) : fexpr__59344.call(null, G__59345));
1274
+ } else {
1275
+ return null;
1276
+ }
1277
+ }
1278
+ }
1279
+ } else {
1280
+ if(cljs.core.truth_(new cljs.core.Keyword("db","tupleTypes","db/tupleTypes",1512507626).cljs$core$IFn$_invoke$arity$1(attr_schema))){
1281
+ if((!(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(v),cljs.core.count(new cljs.core.Keyword("db","tupleTypes","db/tupleTypes",1512507626).cljs$core$IFn$_invoke$arity$1(attr_schema)))))){
1282
+ var G__59348 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([["Cannot store heterogeneous tuple: expecting ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.count(new cljs.core.Keyword("db","tupleTypes","db/tupleTypes",1512507626).cljs$core$IFn$_invoke$arity$1(attr_schema)))," values, got ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.count(v))].join('')], 0)),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null))})();
1283
+ var fexpr__59347 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,652,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1284
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [["Cannot store heterogeneous tuple: expecting ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.count(new cljs.core.Keyword("db","tupleTypes","db/tupleTypes",1512507626).cljs$core$IFn$_invoke$arity$1(attr_schema)))," values, got ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.count(v))].join(''),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null)], null);
1285
+ }),null)),null,(299),null,null,null);
1286
+ return (fexpr__59347.cljs$core$IFn$_invoke$arity$1 ? fexpr__59347.cljs$core$IFn$_invoke$arity$1(G__59348) : fexpr__59347.call(null, G__59348));
1287
+ } else {
1288
+ if(cljs.core.not(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core._EQ_,cljs.core.map.cljs$core$IFn$_invoke$arity$3(cljs.spec.alpha.valid_QMARK_,new cljs.core.Keyword("db","tupleTypes","db/tupleTypes",1512507626).cljs$core$IFn$_invoke$arity$1(attr_schema),v)))){
1289
+ var G__59353 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([["Cannot store heterogeneous tuple: there is a mismatch between values ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(v)," and their types ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword("db","tupleTypes","db/tupleTypes",1512507626).cljs$core$IFn$_invoke$arity$1(attr_schema))].join('')], 0)),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null))})();
1290
+ var fexpr__59352 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,656,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1291
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [["Cannot store heterogeneous tuple: there is a mismatch between values ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(v)," and their types ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword("db","tupleTypes","db/tupleTypes",1512507626).cljs$core$IFn$_invoke$arity$1(attr_schema))].join(''),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null)], null);
1292
+ }),null)),null,(301),null,null,null);
1293
+ return (fexpr__59352.cljs$core$IFn$_invoke$arity$1 ? fexpr__59352.cljs$core$IFn$_invoke$arity$1(G__59353) : fexpr__59352.call(null, G__59353));
1294
+ } else {
1295
+ return null;
1296
+ }
1297
+ }
1298
+ } else {
1299
+ if(cljs.core.truth_((function (){var and__5000__auto__ = new cljs.core.Keyword("db","tupleAttrs","db/tupleAttrs",250080092).cljs$core$IFn$_invoke$arity$1(attr_schema);
1300
+ if(cljs.core.truth_(and__5000__auto__)){
1301
+ return cljs.core.not(new cljs.core.Keyword("datahike.db.transaction","internal","datahike.db.transaction/internal",-1391460122).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(op_vec)));
1302
+ } else {
1303
+ return and__5000__auto__;
1304
+ }
1305
+ })())){
1306
+ var G__59357 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Can\u2019t modify tuple attrs directly: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([op_vec], 0))].join(''),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null))})();
1307
+ var fexpr__59356 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,660,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1308
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Can\u2019t modify tuple attrs directly: ",op_vec,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null)], null);
1309
+ }),null)),null,(303),null,null,null);
1310
+ return (fexpr__59356.cljs$core$IFn$_invoke$arity$1 ? fexpr__59356.cljs$core$IFn$_invoke$arity$1(G__59357) : fexpr__59356.call(null, G__59357));
1311
+ } else {
1312
+ return null;
1313
+ }
1314
+ }
1315
+ }
1316
+ });
1317
+ datahike.db.transaction.filter_before = (function datahike$db$transaction$filter_before(datoms,before_date,db){
1318
+ var before_pred = (function (d){
1319
+ return d.v.before(before_date);
1320
+ });
1321
+ var filtered_tx_ids = datahike.db.utils.filter_txInstant(datoms,before_pred,db);
1322
+ return cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (d){
1323
+ return cljs.core.contains_QMARK_(filtered_tx_ids,datahike.datom.datom_tx(d));
1324
+ }),datoms);
1325
+ });
1326
+ datahike.db.transaction.apply_db_op = (function datahike$db$transaction$apply_db_op(db,report,op_vec){
1327
+ var vec__59370 = op_vec;
1328
+ var op = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59370,(0),null);
1329
+ var e = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59370,(1),null);
1330
+ var a = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59370,(2),null);
1331
+ var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59370,(3),null);
1332
+ var G__59374 = op;
1333
+ var G__59374__$1 = (((G__59374 instanceof cljs.core.Keyword))?G__59374.fqn:null);
1334
+ switch (G__59374__$1) {
1335
+ case "db/add":
1336
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [datahike.db.transaction.transact_add(report,op_vec),cljs.core.PersistentVector.EMPTY], null);
1337
+
1338
+ break;
1339
+ case "db/retract":
1340
+ var temp__5806__auto__ = datahike.db.utils.entid.cljs$core$IFn$_invoke$arity$2(db,e);
1341
+ if((temp__5806__auto__ == null)){
1342
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [report,cljs.core.PersistentVector.EMPTY], null);
1343
+ } else {
1344
+ var e__$1 = temp__5806__auto__;
1345
+ var a__$1 = datahike.db.utils.normalize_and_validate_attr(a,op_vec,db);
1346
+ var pattern = (((v == null))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [e__$1,a__$1], null):(function (){var v__$1 = ((datahike.db.utils.ref_QMARK_(db,a__$1))?datahike.db.utils.entid_strict.cljs$core$IFn$_invoke$arity$2(db,v):v);
1347
+ datahike.db.transaction.validate_val(v__$1,op_vec,db);
1348
+
1349
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [e__$1,a__$1,v__$1], null);
1350
+ })());
1351
+ var datoms = cljs.core.vec(datahike.db.interface$.search(db,pattern));
1352
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(datahike.db.transaction.transact_retract_datom,report,datoms),cljs.core.PersistentVector.EMPTY], null);
1353
+ }
1354
+
1355
+ break;
1356
+ case "db.fn/retractAttribute":
1357
+ var temp__5802__auto__ = datahike.db.utils.entid.cljs$core$IFn$_invoke$arity$2(db,e);
1358
+ if(cljs.core.truth_(temp__5802__auto__)){
1359
+ var e__$1 = temp__5802__auto__;
1360
+ var a__$1 = datahike.db.utils.normalize_and_validate_attr(a,op_vec,db);
1361
+ var datoms = cljs.core.vec(datahike.db.interface$.search(db,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [e__$1,a__$1], null)));
1362
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(datahike.db.transaction.transact_retract_datom,report,datoms),datahike.db.transaction.retract_components(db,datoms)], null);
1363
+ } else {
1364
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [report,cljs.core.PersistentVector.EMPTY], null);
1365
+ }
1366
+
1367
+ break;
1368
+ case "db.fn/retractEntity":
1369
+ return datahike.db.transaction.retract_entity(db,report,op_vec);
1370
+
1371
+ break;
1372
+ case "db/retractEntity":
1373
+ return datahike.db.transaction.retract_entity(db,report,op_vec);
1374
+
1375
+ break;
1376
+ case "db/purge":
1377
+ if(cljs.core.truth_(datahike.db.interface$._keep_history_QMARK_(db))){
1378
+ var history__$1 = (new datahike.db.HistoricalDB(db,null,null,null));
1379
+ var temp__5806__auto__ = datahike.db.utils.entid.cljs$core$IFn$_invoke$arity$2(history__$1,e);
1380
+ if((temp__5806__auto__ == null)){
1381
+ var G__59379 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Can't find entity with ID ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e], 0))," to be purged"].join(''),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","purge","transact/purge",-574572673),new cljs.core.Keyword(null,"operation","operation",-1267664310),op,new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null))})();
1382
+ var fexpr__59377 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,706,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1383
+ return new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Can't find entity with ID ",e," to be purged",new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","purge","transact/purge",-574572673),new cljs.core.Keyword(null,"operation","operation",-1267664310),op,new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null)], null);
1384
+ }),null)),null,(305),null,null,null);
1385
+ return (fexpr__59377.cljs$core$IFn$_invoke$arity$1 ? fexpr__59377.cljs$core$IFn$_invoke$arity$1(G__59379) : fexpr__59377.call(null, G__59379));
1386
+ } else {
1387
+ var e__$1 = temp__5806__auto__;
1388
+ var v__$1 = ((datahike.db.utils.ref_QMARK_(history__$1,a))?datahike.db.utils.entid_strict.cljs$core$IFn$_invoke$arity$2(history__$1,v):v);
1389
+ var old_datoms = datahike.db.interface$.search(history__$1,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [e__$1,a,v__$1], null));
1390
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(datahike.db.transaction.transact_purge_datom,report,old_datoms),cljs.core.PersistentVector.EMPTY], null);
1391
+ }
1392
+ } else {
1393
+ var G__59382 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Purge is only available in temporal databases.",new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","purge","transact/purge",-574572673),new cljs.core.Keyword(null,"operation","operation",-1267664310),op,new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null))})();
1394
+ var fexpr__59381 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,708,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1395
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Purge is only available in temporal databases.",new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","purge","transact/purge",-574572673),new cljs.core.Keyword(null,"operation","operation",-1267664310),op,new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null)], null);
1396
+ }),null)),null,(307),null,null,null);
1397
+ return (fexpr__59381.cljs$core$IFn$_invoke$arity$1 ? fexpr__59381.cljs$core$IFn$_invoke$arity$1(G__59382) : fexpr__59381.call(null, G__59382));
1398
+ }
1399
+
1400
+ break;
1401
+ case "db.purge/attribute":
1402
+ if(cljs.core.truth_(datahike.db.interface$._keep_history_QMARK_(db))){
1403
+ var history__$1 = (new datahike.db.HistoricalDB(db,null,null,null));
1404
+ var temp__5802__auto__ = datahike.db.utils.entid.cljs$core$IFn$_invoke$arity$2(history__$1,e);
1405
+ if(cljs.core.truth_(temp__5802__auto__)){
1406
+ var e__$1 = temp__5802__auto__;
1407
+ var datoms = cljs.core.vec(datahike.db.interface$.search(history__$1,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [e__$1,a], null)));
1408
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(datahike.db.transaction.transact_purge_datom,report,datoms),datahike.db.transaction.purge_components(history__$1,datoms)], null);
1409
+ } else {
1410
+ var G__59386 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Can't find entity with ID ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e], 0))," to be purged"].join(''),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","purge","transact/purge",-574572673),new cljs.core.Keyword(null,"operation","operation",-1267664310),op,new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null))})();
1411
+ var fexpr__59385 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,717,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1412
+ return new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Can't find entity with ID ",e," to be purged",new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","purge","transact/purge",-574572673),new cljs.core.Keyword(null,"operation","operation",-1267664310),op,new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null)], null);
1413
+ }),null)),null,(309),null,null,null);
1414
+ return (fexpr__59385.cljs$core$IFn$_invoke$arity$1 ? fexpr__59385.cljs$core$IFn$_invoke$arity$1(G__59386) : fexpr__59385.call(null, G__59386));
1415
+ }
1416
+ } else {
1417
+ var G__59388 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Purge attribute is only available in temporal databases.",new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","purge","transact/purge",-574572673),new cljs.core.Keyword(null,"operation","operation",-1267664310),op,new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null))})();
1418
+ var fexpr__59387 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,719,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1419
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Purge attribute is only available in temporal databases.",new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","purge","transact/purge",-574572673),new cljs.core.Keyword(null,"operation","operation",-1267664310),op,new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null)], null);
1420
+ }),null)),null,(311),null,null,null);
1421
+ return (fexpr__59387.cljs$core$IFn$_invoke$arity$1 ? fexpr__59387.cljs$core$IFn$_invoke$arity$1(G__59388) : fexpr__59387.call(null, G__59388));
1422
+ }
1423
+
1424
+ break;
1425
+ case "db.purge/entity":
1426
+ if(cljs.core.truth_(datahike.db.interface$._keep_history_QMARK_(db))){
1427
+ var history__$1 = (new datahike.db.HistoricalDB(db,null,null,null));
1428
+ var temp__5802__auto__ = datahike.db.utils.entid.cljs$core$IFn$_invoke$arity$2(history__$1,e);
1429
+ if(cljs.core.truth_(temp__5802__auto__)){
1430
+ var e__$1 = temp__5802__auto__;
1431
+ var e_datoms = cljs.core.vec(datahike.db.interface$.search(history__$1,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [e__$1], null)));
1432
+ var v_datoms = cljs.core.vec(cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (a__$1){
1433
+ return datahike.db.interface$.search(history__$1,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,a__$1,e__$1], null));
1434
+ }),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([datahike.db.interface$._attrs_by(history__$1,new cljs.core.Keyword("db.type","ref","db.type/ref",-1728373079))], 0)));
1435
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(datahike.db.transaction.transact_purge_datom,report,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(e_datoms,v_datoms)),datahike.db.transaction.purge_components(history__$1,e_datoms)], null);
1436
+ } else {
1437
+ var G__59395 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Can't find entity with ID ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e], 0))," to be purged"].join(''),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","purge","transact/purge",-574572673),new cljs.core.Keyword(null,"operation","operation",-1267664310),op,new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null))})();
1438
+ var fexpr__59394 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,730,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1439
+ return new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Can't find entity with ID ",e," to be purged",new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","purge","transact/purge",-574572673),new cljs.core.Keyword(null,"operation","operation",-1267664310),op,new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null)], null);
1440
+ }),null)),null,(313),null,null,null);
1441
+ return (fexpr__59394.cljs$core$IFn$_invoke$arity$1 ? fexpr__59394.cljs$core$IFn$_invoke$arity$1(G__59395) : fexpr__59394.call(null, G__59395));
1442
+ }
1443
+ } else {
1444
+ var G__59398 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Purge entity is only available in temporal databases.",new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","purge","transact/purge",-574572673),new cljs.core.Keyword(null,"operation","operation",-1267664310),op,new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null))})();
1445
+ var fexpr__59397 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,732,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1446
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Purge entity is only available in temporal databases.",new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","purge","transact/purge",-574572673),new cljs.core.Keyword(null,"operation","operation",-1267664310),op,new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null)], null);
1447
+ }),null)),null,(315),null,null,null);
1448
+ return (fexpr__59397.cljs$core$IFn$_invoke$arity$1 ? fexpr__59397.cljs$core$IFn$_invoke$arity$1(G__59398) : fexpr__59397.call(null, G__59398));
1449
+ }
1450
+
1451
+ break;
1452
+ case "db.history.purge/before":
1453
+ if(cljs.core.truth_(datahike.db.interface$._keep_history_QMARK_(db))){
1454
+ var history__$1 = (new datahike.db.HistoricalDB(db,null,null,null));
1455
+ var into_sorted_set = (function (p1__59367_SHARP_){
1456
+ return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.sorted_set_by,datahike.datom.cmp_datoms_eavt_quick,p1__59367_SHARP_);
1457
+ });
1458
+ var e_datoms = cljs.core.vec(datahike.db.transaction.filter_before(clojure.set.difference.cljs$core$IFn$_invoke$arity$2(into_sorted_set(datahike.db.search.search_temporal_indices.cljs$core$IFn$_invoke$arity$2(db,null)),into_sorted_set(datahike.db.search.search_current_indices.cljs$core$IFn$_invoke$arity$2(db,null))),e,db));
1459
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(datahike.db.transaction.transact_purge_datom,report,e_datoms),datahike.db.transaction.purge_components(history__$1,e_datoms)], null);
1460
+ } else {
1461
+ var G__59409 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Purge entity is only available in temporal databases.",new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","purge","transact/purge",-574572673),new cljs.core.Keyword(null,"operation","operation",-1267664310),op,new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null))})();
1462
+ var fexpr__59408 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,745,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1463
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Purge entity is only available in temporal databases.",new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","purge","transact/purge",-574572673),new cljs.core.Keyword(null,"operation","operation",-1267664310),op,new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null)], null);
1464
+ }),null)),null,(317),null,null,null);
1465
+ return (fexpr__59408.cljs$core$IFn$_invoke$arity$1 ? fexpr__59408.cljs$core$IFn$_invoke$arity$1(G__59409) : fexpr__59408.call(null, G__59409));
1466
+ }
1467
+
1468
+ break;
1469
+ case "db.ensure/attrs":
1470
+ var map__59410 = report;
1471
+ var map__59410__$1 = cljs.core.__destructure_map(map__59410);
1472
+ var tx_data = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__59410__$1,new cljs.core.Keyword(null,"tx-data","tx-data",934159761));
1473
+ var asserting_datoms = cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (d){
1474
+ return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(e,d.e);
1475
+ }),tx_data);
1476
+ var asserting_attributes = cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (d){
1477
+ return d.a;
1478
+ }),asserting_datoms);
1479
+ var diff = clojure.set.difference.cljs$core$IFn$_invoke$arity$2(cljs.core.set(v),cljs.core.set(asserting_attributes));
1480
+ if(cljs.core.empty_QMARK_(diff)){
1481
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [report,cljs.core.PersistentVector.EMPTY], null);
1482
+ } else {
1483
+ var G__59413 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Entity ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e], 0))," missing attributes ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([diff], 0))," of spec ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a], 0))].join(''),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","ensure","transact/ensure",-1845814289),new cljs.core.Keyword(null,"operation","operation",-1267664310),op,new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec,new cljs.core.Keyword(null,"asserting-datoms","asserting-datoms",1156634849),asserting_datoms], null))})();
1484
+ var fexpr__59412 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,754,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1485
+ return new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Entity ",e," missing attributes ",diff," of spec ",a,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","ensure","transact/ensure",-1845814289),new cljs.core.Keyword(null,"operation","operation",-1267664310),op,new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec,new cljs.core.Keyword(null,"asserting-datoms","asserting-datoms",1156634849),asserting_datoms], null)], null);
1486
+ }),null)),null,(319),null,null,null);
1487
+ return (fexpr__59412.cljs$core$IFn$_invoke$arity$1 ? fexpr__59412.cljs$core$IFn$_invoke$arity$1(G__59413) : fexpr__59412.call(null, G__59413));
1488
+ }
1489
+
1490
+ break;
1491
+ case "db.ensure/preds":
1492
+ var map__59415 = report;
1493
+ var map__59415__$1 = cljs.core.__destructure_map(map__59415);
1494
+ var db_after = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__59415__$1,new cljs.core.Keyword(null,"db-after","db-after",-571884666));
1495
+ var preds = datahike.db.transaction.assert_preds(db_after,op_vec);
1496
+ if((!(cljs.core.empty_QMARK_(preds)))){
1497
+ var G__59418 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Entity ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e], 0))," failed predicates ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([preds], 0))," of spec ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([a], 0))].join(''),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","ensure","transact/ensure",-1845814289),new cljs.core.Keyword(null,"operation","operation",-1267664310),op,new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null))})();
1498
+ var fexpr__59417 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,761,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1499
+ return new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Entity ",e," failed predicates ",preds," of spec ",a,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","ensure","transact/ensure",-1845814289),new cljs.core.Keyword(null,"operation","operation",-1267664310),op,new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null)], null);
1500
+ }),null)),null,(321),null,null,null);
1501
+ return (fexpr__59417.cljs$core$IFn$_invoke$arity$1 ? fexpr__59417.cljs$core$IFn$_invoke$arity$1(G__59418) : fexpr__59417.call(null, G__59418));
1502
+ } else {
1503
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [report,cljs.core.PersistentVector.EMPTY], null);
1504
+ }
1505
+
1506
+ break;
1507
+ case "db.fn/cas":
1508
+ return datahike.db.transaction.compare_and_swap(db,report,op_vec);
1509
+
1510
+ break;
1511
+ case "db/cas":
1512
+ return datahike.db.transaction.compare_and_swap(db,report,op_vec);
1513
+
1514
+ break;
1515
+ case "db.fn/call":
1516
+ var vec__59421 = op_vec;
1517
+ var seq__59422 = cljs.core.seq(vec__59421);
1518
+ var first__59423 = cljs.core.first(seq__59422);
1519
+ var seq__59422__$1 = cljs.core.next(seq__59422);
1520
+ var _ = first__59423;
1521
+ var first__59423__$1 = cljs.core.first(seq__59422__$1);
1522
+ var seq__59422__$2 = cljs.core.next(seq__59422__$1);
1523
+ var f = first__59423__$1;
1524
+ var args = seq__59422__$2;
1525
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [report,cljs.core.apply.cljs$core$IFn$_invoke$arity$3(f,db,args)], null);
1526
+
1527
+ break;
1528
+ default:
1529
+ if((((op instanceof cljs.core.Keyword)) && (cljs.core.not((datahike.db.transaction.builtin_op_QMARK_.cljs$core$IFn$_invoke$arity$1 ? datahike.db.transaction.builtin_op_QMARK_.cljs$core$IFn$_invoke$arity$1(op) : datahike.db.transaction.builtin_op_QMARK_.call(null, op)))))){
1530
+ var temp__5806__auto__ = datahike.db.utils.entid.cljs$core$IFn$_invoke$arity$2(db,op);
1531
+ if((temp__5806__auto__ == null)){
1532
+ var G__59426 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Can\u2019t find entity for transaction fn ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([op], 0))].join(''),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"operation","operation",-1267664310),new cljs.core.Keyword("db.fn","call","db.fn/call",-151594418),new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null))})();
1533
+ var fexpr__59425 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,781,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1534
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Can\u2019t find entity for transaction fn ",op,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"operation","operation",-1267664310),new cljs.core.Keyword("db.fn","call","db.fn/call",-151594418),new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null)], null);
1535
+ }),null)),null,(323),null,null,null);
1536
+ return (fexpr__59425.cljs$core$IFn$_invoke$arity$1 ? fexpr__59425.cljs$core$IFn$_invoke$arity$1(G__59426) : fexpr__59425.call(null, G__59426));
1537
+ } else {
1538
+ var ident = temp__5806__auto__;
1539
+ var fun = new cljs.core.Keyword(null,"v","v",21465059).cljs$core$IFn$_invoke$arity$1(cljs.core.first(datahike.db.interface$.search(db,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [ident,new cljs.core.Keyword("db","fn","db/fn",-1175261470)], null))));
1540
+ var args = cljs.core.next(op_vec);
1541
+ if(cljs.core.fn_QMARK_(fun)){
1542
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [report,cljs.core.apply.cljs$core$IFn$_invoke$arity$3(fun,db,args)], null);
1543
+ } else {
1544
+ var G__59429 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Entity ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([op], 0))," expected to have :db/fn attribute with fn? value"].join(''),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"operation","operation",-1267664310),new cljs.core.Keyword("db.fn","call","db.fn/call",-151594418),new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null))})();
1545
+ var fexpr__59428 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,779,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1546
+ return new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Entity ",op," expected to have :db/fn attribute with fn? value",new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"operation","operation",-1267664310),new cljs.core.Keyword("db.fn","call","db.fn/call",-151594418),new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null)], null);
1547
+ }),null)),null,(325),null,null,null);
1548
+ return (fexpr__59428.cljs$core$IFn$_invoke$arity$1 ? fexpr__59428.cljs$core$IFn$_invoke$arity$1(G__59429) : fexpr__59428.call(null, G__59429));
1549
+ }
1550
+ }
1551
+ } else {
1552
+ var G__59433 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([["Unknown operation at ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(op_vec),", expected ",clojure.string.join.cljs$core$IFn$_invoke$arity$2(",",datahike.db.transaction.builtin_op_QMARK_)," or an ident corresponding to an installed transaction function"," (e.g. {:db/ident <keyword> :db/fn <Ifn>}, usage of :db/ident requires {:db/unique :db.unique/identity} in schema)"].join('')], 0)),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"operation","operation",-1267664310),op,new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null))})();
1553
+ var fexpr__59432 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,783,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1554
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [["Unknown operation at ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(op_vec),", expected ",clojure.string.join.cljs$core$IFn$_invoke$arity$2(",",datahike.db.transaction.builtin_op_QMARK_)," or an ident corresponding to an installed transaction function"," (e.g. {:db/ident <keyword> :db/fn <Ifn>}, usage of :db/ident requires {:db/unique :db.unique/identity} in schema)"].join(''),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"operation","operation",-1267664310),op,new cljs.core.Keyword(null,"tx-data","tx-data",934159761),op_vec], null)], null);
1555
+ }),null)),null,(327),null,null,null);
1556
+ return (fexpr__59432.cljs$core$IFn$_invoke$arity$1 ? fexpr__59432.cljs$core$IFn$_invoke$arity$1(G__59433) : fexpr__59432.call(null, G__59433));
1557
+ }
1558
+
1559
+ }
1560
+ });
1561
+ datahike.db.transaction.transact_tx_data = (function datahike$db$transaction$transact_tx_data(p__59441,initial_es){
1562
+ var map__59442 = p__59441;
1563
+ var map__59442__$1 = cljs.core.__destructure_map(map__59442);
1564
+ var initial_report = map__59442__$1;
1565
+ var db_before = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__59442__$1,new cljs.core.Keyword(null,"db-before","db-before",-553691536));
1566
+ if((((initial_es == null)) || (cljs.core.sequential_QMARK_(initial_es)))){
1567
+ } else {
1568
+ var G__59449_59684 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Bad transaction data ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([initial_es], 0)),", expected sequential collection"].join(''),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"tx-data","tx-data",934159761),initial_es], null))})();
1569
+ var fexpr__59448_59685 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,791,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay((function (){
1570
+ return new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Bad transaction data ",initial_es,", expected sequential collection",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"tx-data","tx-data",934159761),initial_es], null)], null);
1571
+ }),null)),null,(329),null,null,null);
1572
+ (fexpr__59448_59685.cljs$core$IFn$_invoke$arity$1 ? fexpr__59448_59685.cljs$core$IFn$_invoke$arity$1(G__59449_59684) : fexpr__59448_59685.call(null, G__59449_59684));
1573
+ }
1574
+
1575
+ var has_tuples_QMARK_ = cljs.core.seq(datahike.db.interface$._attrs_by(new cljs.core.Keyword(null,"db-after","db-after",-571884666).cljs$core$IFn$_invoke$arity$1(initial_report),new cljs.core.Keyword("db.type","tuple","db.type/tuple",938234914)));
1576
+ var initial_es_SINGLEQUOTE_ = ((has_tuples_QMARK_)?cljs.core.interleave.cljs$core$IFn$_invoke$arity$2(initial_es,cljs.core.repeat.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword("datahike.db.transaction","flush-tuples","datahike.db.transaction/flush-tuples",-2016816594))):initial_es);
1577
+ var initial_report__$1 = cljs.core.update.cljs$core$IFn$_invoke$arity$3(initial_report,new cljs.core.Keyword(null,"tx-meta","tx-meta",1159283194),(function (p1__59436_SHARP_){
1578
+ return cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("db","txInstant","db/txInstant",-990494199),datahike.tools.get_date.call(null, )], null),p1__59436_SHARP_], 0));
1579
+ }));
1580
+ var meta_entities = datahike.db.transaction.flush_tx_meta(initial_report__$1);
1581
+ var report = cljs.core.update.cljs$core$IFn$_invoke$arity$3(initial_report__$1,new cljs.core.Keyword(null,"db-after","db-after",-571884666),cljs.core.transient$);
1582
+ var es = (cljs.core.truth_(datahike.db.interface$._keep_history_QMARK_(db_before))?cljs.core.concat.cljs$core$IFn$_invoke$arity$2(meta_entities,initial_es_SINGLEQUOTE_):initial_es_SINGLEQUOTE_);
1583
+ while(true){
1584
+ var vec__59479 = es;
1585
+ var seq__59480 = cljs.core.seq(vec__59479);
1586
+ var first__59481 = cljs.core.first(seq__59480);
1587
+ var seq__59480__$1 = cljs.core.next(seq__59480);
1588
+ var entity = first__59481;
1589
+ var entities = seq__59480__$1;
1590
+ var map__59482 = report;
1591
+ var map__59482__$1 = cljs.core.__destructure_map(map__59482);
1592
+ var tempids = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__59482__$1,new cljs.core.Keyword(null,"tempids","tempids",1767509089));
1593
+ var db_after = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__59482__$1,new cljs.core.Keyword(null,"db-after","db-after",-571884666));
1594
+ var db = db_after;
1595
+ if(cljs.core.empty_QMARK_(es)){
1596
+ return cljs.core.update.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.assoc_in(report,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tempids","tempids",1767509089),new cljs.core.Keyword("db","current-tx","db/current-tx",1600722132)], null),datahike.db.transaction.current_tx(report)),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"db-after","db-after",-571884666),new cljs.core.Keyword(null,"max-tx","max-tx",1119558339)], null),cljs.core.inc),new cljs.core.Keyword(null,"db-after","db-after",-571884666),cljs.core.persistent_BANG_);
1597
+ } else {
1598
+ if((entity == null)){
1599
+ var G__59689 = report;
1600
+ var G__59690 = entities;
1601
+ report = G__59689;
1602
+ es = G__59690;
1603
+ continue;
1604
+ } else {
1605
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword("datahike.db.transaction","flush-tuples","datahike.db.transaction/flush-tuples",-2016816594),entity)){
1606
+ if(cljs.core.contains_QMARK_(report,new cljs.core.Keyword("datahike.db.transaction","queued-tuples","datahike.db.transaction/queued-tuples",2119460387))){
1607
+ var G__59691 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(report,new cljs.core.Keyword("datahike.db.transaction","queued-tuples","datahike.db.transaction/queued-tuples",2119460387));
1608
+ var G__59692 = cljs.core.concat.cljs$core$IFn$_invoke$arity$2(datahike.db.transaction.flush_tuples(report),entities);
1609
+ report = G__59691;
1610
+ es = G__59692;
1611
+ continue;
1612
+ } else {
1613
+ var G__59693 = report;
1614
+ var G__59694 = entities;
1615
+ report = G__59693;
1616
+ es = G__59694;
1617
+ continue;
1618
+ }
1619
+ } else {
1620
+ if(cljs.core.map_QMARK_(entity)){
1621
+ var map__59485 = datahike.db.transaction.entity_map__GT_op_vec(db,report,entity);
1622
+ var map__59485__$1 = cljs.core.__destructure_map(map__59485);
1623
+ var new_report = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__59485__$1,new cljs.core.Keyword(null,"new-report","new-report",-1088769062));
1624
+ var new_entities = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__59485__$1,new cljs.core.Keyword(null,"new-entities","new-entities",1399989483));
1625
+ var retry_QMARK_ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__59485__$1,new cljs.core.Keyword(null,"retry?","retry?",-1054643849));
1626
+ var old_eid = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__59485__$1,new cljs.core.Keyword(null,"old-eid","old-eid",2091014856));
1627
+ var upserted_eid = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__59485__$1,new cljs.core.Keyword(null,"upserted-eid","upserted-eid",-196454814));
1628
+ if(cljs.core.truth_(retry_QMARK_)){
1629
+ return datahike.db.transaction.retry_with_tempid(initial_report__$1,report,initial_es,old_eid,upserted_eid);
1630
+ } else {
1631
+ var G__59696 = new_report;
1632
+ var G__59697 = cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new_entities,entities);
1633
+ report = G__59696;
1634
+ es = G__59697;
1635
+ continue;
1636
+ }
1637
+ } else {
1638
+ if(cljs.core.sequential_QMARK_(entity)){
1639
+ var vec__59486 = entity;
1640
+ var op = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59486,(0),null);
1641
+ var e = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59486,(1),null);
1642
+ var a = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59486,(2),null);
1643
+ var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59486,(3),null);
1644
+ if(datahike.db.utils.tuple_QMARK_(db,a)){
1645
+ datahike.db.transaction.check_tuple(db,entity);
1646
+ } else {
1647
+ }
1648
+
1649
+ if(datahike.db.transaction.tx_id_QMARK_(e)){
1650
+ var G__59698 = datahike.db.transaction.allocate_eid.cljs$core$IFn$_invoke$arity$3(report,e,datahike.db.transaction.current_tx(report));
1651
+ var G__59699 = cljs.core.cons(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [op,datahike.db.transaction.current_tx(report),a,v], null),entities);
1652
+ report = G__59698;
1653
+ es = G__59699;
1654
+ continue;
1655
+ } else {
1656
+ if(((datahike.db.utils.ref_QMARK_(db,a)) && (datahike.db.transaction.tx_id_QMARK_(v)))){
1657
+ var G__59701 = datahike.db.transaction.allocate_eid.cljs$core$IFn$_invoke$arity$3(report,v,datahike.db.transaction.current_tx(report));
1658
+ var G__59702 = cljs.core.cons(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [op,e,a,datahike.db.transaction.current_tx(report)], null),entities);
1659
+ report = G__59701;
1660
+ es = G__59702;
1661
+ continue;
1662
+ } else {
1663
+ if(datahike.db.transaction.tempid_QMARK_(e)){
1664
+ if(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(op,new cljs.core.Keyword("db","add","db/add",235286841))){
1665
+ var G__59492 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Can't use tempid in '",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([entity], 0)),"'. Tempids are allowed in :db/add only"].join(''),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"op","op",-1882987955),entity], null))})();
1666
+ var fexpr__59491 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,845,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay(((function (report,es,G__59492,vec__59486,op,e,a,v,vec__59479,seq__59480,first__59481,seq__59480__$1,entity,entities,map__59482,map__59482__$1,tempids,db_after,db,has_tuples_QMARK_,initial_es_SINGLEQUOTE_,initial_report__$1,meta_entities,map__59442,map__59442__$1,initial_report,db_before){
1667
+ return (function (){
1668
+ return new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Can't use tempid in '",entity,"'. Tempids are allowed in :db/add only",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"op","op",-1882987955),entity], null)], null);
1669
+ });})(report,es,G__59492,vec__59486,op,e,a,v,vec__59479,seq__59480,first__59481,seq__59480__$1,entity,entities,map__59482,map__59482__$1,tempids,db_after,db,has_tuples_QMARK_,initial_es_SINGLEQUOTE_,initial_report__$1,meta_entities,map__59442,map__59442__$1,initial_report,db_before))
1670
+ ,null)),null,(335),null,null,null);
1671
+ return (fexpr__59491.cljs$core$IFn$_invoke$arity$1 ? fexpr__59491.cljs$core$IFn$_invoke$arity$1(G__59492) : fexpr__59491.call(null, G__59492));
1672
+ } else {
1673
+ var upserted_eid = ((datahike.db.utils.is_attr_QMARK_(db,a,new cljs.core.Keyword("db.unique","identity","db.unique/identity",1675950722)))?new cljs.core.Keyword(null,"e","e",1381269198).cljs$core$IFn$_invoke$arity$1(cljs.core.first(datahike.db.interface$.datoms(db,new cljs.core.Keyword(null,"avet","avet",1383857032),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,v], null)))):null);
1674
+ var allocated_eid = cljs.core.get.cljs$core$IFn$_invoke$arity$2(tempids,e);
1675
+ if(cljs.core.truth_((function (){var and__5000__auto__ = upserted_eid;
1676
+ if(cljs.core.truth_(and__5000__auto__)){
1677
+ var and__5000__auto____$1 = allocated_eid;
1678
+ if(cljs.core.truth_(and__5000__auto____$1)){
1679
+ return cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(upserted_eid,allocated_eid);
1680
+ } else {
1681
+ return and__5000__auto____$1;
1682
+ }
1683
+ } else {
1684
+ return and__5000__auto__;
1685
+ }
1686
+ })())){
1687
+ return datahike.db.transaction.retry_with_tempid(initial_report__$1,report,initial_es,e,upserted_eid);
1688
+ } else {
1689
+ var eid = (function (){var or__5002__auto__ = upserted_eid;
1690
+ if(cljs.core.truth_(or__5002__auto__)){
1691
+ return or__5002__auto__;
1692
+ } else {
1693
+ var or__5002__auto____$1 = allocated_eid;
1694
+ if(cljs.core.truth_(or__5002__auto____$1)){
1695
+ return or__5002__auto____$1;
1696
+ } else {
1697
+ return datahike.db.transaction.next_eid(db);
1698
+ }
1699
+ }
1700
+ })();
1701
+ var G__59705 = datahike.db.transaction.allocate_eid.cljs$core$IFn$_invoke$arity$3(report,e,eid);
1702
+ var G__59706 = cljs.core.cons(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [op,eid,a,v], null),entities);
1703
+ report = G__59705;
1704
+ es = G__59706;
1705
+ continue;
1706
+ }
1707
+ }
1708
+ } else {
1709
+ if(((datahike.db.utils.ref_QMARK_(db,a)) && (datahike.db.transaction.tempid_QMARK_(v)))){
1710
+ var temp__5802__auto__ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(tempids,v);
1711
+ if(cljs.core.truth_(temp__5802__auto__)){
1712
+ var vid = temp__5802__auto__;
1713
+ var G__59708 = report;
1714
+ var G__59709 = cljs.core.cons(new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [op,e,a,vid], null),entities);
1715
+ report = G__59708;
1716
+ es = G__59709;
1717
+ continue;
1718
+ } else {
1719
+ var G__59710 = datahike.db.transaction.allocate_eid.cljs$core$IFn$_invoke$arity$3(report,v,datahike.db.transaction.next_eid(db));
1720
+ var G__59711 = es;
1721
+ report = G__59710;
1722
+ es = G__59711;
1723
+ continue;
1724
+ }
1725
+ } else {
1726
+ var vec__59500 = datahike.db.transaction.apply_db_op(db,report,entity);
1727
+ var new_report = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59500,(0),null);
1728
+ var new_entities = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59500,(1),null);
1729
+ var G__59712 = new_report;
1730
+ var G__59713 = cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new_entities,entities);
1731
+ report = G__59712;
1732
+ es = G__59713;
1733
+ continue;
1734
+
1735
+ }
1736
+ }
1737
+ }
1738
+ }
1739
+ } else {
1740
+ if(datahike.datom.datom_QMARK_(entity)){
1741
+ var vec__59503 = entity;
1742
+ var e = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59503,(0),null);
1743
+ var a = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59503,(1),null);
1744
+ var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59503,(2),null);
1745
+ var tx = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59503,(3),null);
1746
+ var added = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59503,(4),null);
1747
+ if(cljs.core.truth_(added)){
1748
+ var G__59714 = datahike.db.transaction.transact_add(report,new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("db","add","db/add",235286841),e,a,v,tx], null));
1749
+ var G__59715 = entities;
1750
+ report = G__59714;
1751
+ es = G__59715;
1752
+ continue;
1753
+ } else {
1754
+ var G__59716 = datahike.db.transaction.transact_retract_datom.cljs$core$IFn$_invoke$arity$3(report,entity,true);
1755
+ var G__59717 = entities;
1756
+ report = G__59716;
1757
+ es = G__59717;
1758
+ continue;
1759
+ }
1760
+ } else {
1761
+ var G__59507 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Bad entity type at ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([entity], 0)),", expected map or vector"].join(''),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"tx-data","tx-data",934159761),entity], null))})();
1762
+ var fexpr__59506 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,871,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay(((function (report,es,G__59507,vec__59479,seq__59480,first__59481,seq__59480__$1,entity,entities,map__59482,map__59482__$1,tempids,db_after,db,has_tuples_QMARK_,initial_es_SINGLEQUOTE_,initial_report__$1,meta_entities,map__59442,map__59442__$1,initial_report,db_before){
1763
+ return (function (){
1764
+ return new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Bad entity type at ",entity,", expected map or vector",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transact","syntax","transact/syntax",-299207078),new cljs.core.Keyword(null,"tx-data","tx-data",934159761),entity], null)], null);
1765
+ });})(report,es,G__59507,vec__59479,seq__59480,first__59481,seq__59480__$1,entity,entities,map__59482,map__59482__$1,tempids,db_after,db,has_tuples_QMARK_,initial_es_SINGLEQUOTE_,initial_report__$1,meta_entities,map__59442,map__59442__$1,initial_report,db_before))
1766
+ ,null)),null,(337),null,null,null);
1767
+ return (fexpr__59506.cljs$core$IFn$_invoke$arity$1 ? fexpr__59506.cljs$core$IFn$_invoke$arity$1(G__59507) : fexpr__59506.call(null, G__59507));
1768
+
1769
+ }
1770
+ }
1771
+ }
1772
+ }
1773
+ }
1774
+ }
1775
+ break;
1776
+ }
1777
+ });
1778
+ datahike.db.transaction.transact_entities_directly = (function datahike$db$transaction$transact_entities_directly(initial_report,initial_es){
1779
+ var report = cljs.core.update.cljs$core$IFn$_invoke$arity$3(initial_report,new cljs.core.Keyword(null,"db-after","db-after",-571884666),cljs.core.transient$);
1780
+ var es = initial_es;
1781
+ var migration_state = (function (){var or__5002__auto__ = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(initial_report,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"db-before","db-before",-553691536),new cljs.core.Keyword(null,"migration","migration",1931085118)], null));
1782
+ if(cljs.core.truth_(or__5002__auto__)){
1783
+ return or__5002__auto__;
1784
+ } else {
1785
+ return cljs.core.PersistentArrayMap.EMPTY;
1786
+ }
1787
+ })();
1788
+ while(true){
1789
+ var vec__59527 = es;
1790
+ var seq__59528 = cljs.core.seq(vec__59527);
1791
+ var first__59529 = cljs.core.first(seq__59528);
1792
+ var seq__59528__$1 = cljs.core.next(seq__59528);
1793
+ var entity = first__59529;
1794
+ var entities = seq__59528__$1;
1795
+ var map__59530 = new cljs.core.Keyword(null,"db-after","db-after",-571884666).cljs$core$IFn$_invoke$arity$1(report);
1796
+ var map__59530__$1 = cljs.core.__destructure_map(map__59530);
1797
+ var db = map__59530__$1;
1798
+ var config = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__59530__$1,new cljs.core.Keyword(null,"config","config",994861415));
1799
+ var vec__59531 = entity;
1800
+ var e = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59531,(0),null);
1801
+ var a = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59531,(1),null);
1802
+ var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59531,(2),null);
1803
+ var t = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59531,(3),null);
1804
+ var op = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__59531,(4),null);
1805
+ var a_ident = (cljs.core.truth_((function (){var and__5000__auto__ = typeof a === 'number';
1806
+ if(and__5000__auto__){
1807
+ return new cljs.core.Keyword(null,"attribute-refs?","attribute-refs?",-1070298065).cljs$core$IFn$_invoke$arity$1(config);
1808
+ } else {
1809
+ return and__5000__auto__;
1810
+ }
1811
+ })())?datahike.db.interface$._ident_for(db,a):a);
1812
+ var a__$1 = (cljs.core.truth_(new cljs.core.Keyword(null,"attribute-refs?","attribute-refs?",-1070298065).cljs$core$IFn$_invoke$arity$1(config))?datahike.db.interface$._ref_for(db,a_ident):((typeof a === 'number')?(function (){var G__59535 = (function(){throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Configuration mismatch: import data with attribute references can not be imported into a database with no attribute references.",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("import","mismatch","import/mismatch",-632636114),new cljs.core.Keyword(null,"data","data",-232669377),entity], null))})();
1813
+ var fexpr__59534 = taoensso.timbre._log_BANG_.cljs$core$IFn$_invoke$arity$14(taoensso.timbre._STAR_config_STAR_,new cljs.core.Keyword(null,"error","error",-978969032),"datahike.db.transaction",null,887,null,new cljs.core.Keyword(null,"p","p",151049309),new cljs.core.Keyword(null,"auto","auto",-566279492),(new cljs.core.Delay(((function (report,es,migration_state,G__59535,vec__59527,seq__59528,first__59529,seq__59528__$1,entity,entities,map__59530,map__59530__$1,db,config,vec__59531,e,a,v,t,op,a_ident){
1814
+ return (function (){
1815
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, ["Configuration mismatch: import data with attribute references can not be imported into a database with no attribute references.",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("import","mismatch","import/mismatch",-632636114),new cljs.core.Keyword(null,"data","data",-232669377),entity], null)], null);
1816
+ });})(report,es,migration_state,G__59535,vec__59527,seq__59528,first__59529,seq__59528__$1,entity,entities,map__59530,map__59530__$1,db,config,vec__59531,e,a,v,t,op,a_ident))
1817
+ ,null)),null,(341),null,null,null);
1818
+ return (fexpr__59534.cljs$core$IFn$_invoke$arity$1 ? fexpr__59534.cljs$core$IFn$_invoke$arity$1(G__59535) : fexpr__59534.call(null, G__59535));
1819
+ })():a_ident));
1820
+ var max_eid = datahike.db.transaction.next_eid(db);
1821
+ var max_tid = (cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(report,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"db-after","db-after",-571884666),new cljs.core.Keyword(null,"max-tx","max-tx",1119558339)], null)) + (1));
1822
+ if(cljs.core.empty_QMARK_(es)){
1823
+ return cljs.core.update.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(report,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"db-after","db-after",-571884666),new cljs.core.Keyword(null,"max-tx","max-tx",1119558339)], null),cljs.core.inc),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"db-after","db-after",-571884666),new cljs.core.Keyword(null,"migration","migration",1931085118)], null),((function (report,es,migration_state,vec__59527,seq__59528,first__59529,seq__59528__$1,entity,entities,map__59530,map__59530__$1,db,config,vec__59531,e,a,v,t,op,a_ident,a__$1,max_eid,max_tid){
1824
+ return (function (p1__59510_SHARP_){
1825
+ if(cljs.core.truth_(p1__59510_SHARP_)){
1826
+ return cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([p1__59510_SHARP_,migration_state], 0));
1827
+ } else {
1828
+ return migration_state;
1829
+ }
1830
+ });})(report,es,migration_state,vec__59527,seq__59528,first__59529,seq__59528__$1,entity,entities,map__59530,map__59530__$1,db,config,vec__59531,e,a,v,t,op,a_ident,a__$1,max_eid,max_tid))
1831
+ ),new cljs.core.Keyword(null,"db-after","db-after",-571884666),cljs.core.persistent_BANG_);
1832
+ } else {
1833
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword("db.install","attribute","db.install/attribute",-225839074),a_ident)){
1834
+ var G__59721 = report;
1835
+ var G__59722 = entities;
1836
+ var G__59723 = migration_state;
1837
+ report = G__59721;
1838
+ es = G__59722;
1839
+ migration_state = G__59723;
1840
+ continue;
1841
+ } else {
1842
+ if(datahike.schema.meta_attr_QMARK_(a_ident)){
1843
+ var new_t = cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(migration_state,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tids","tids",-1783124481),t], null),max_tid);
1844
+ var new_datom = datahike.datom.datom.cljs$core$IFn$_invoke$arity$5(new_t,a__$1,v,new_t,op);
1845
+ var new_e = new_datom.e;
1846
+ var upsert_QMARK_ = (!(datahike.db.utils.multival_QMARK_(db,a_ident)));
1847
+ var G__59724 = cljs.core.assoc_in(datahike.db.transaction.transact_report.cljs$core$IFn$_invoke$arity$3(report,new_datom,upsert_QMARK_),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"db-after","db-after",-571884666),new cljs.core.Keyword(null,"max-tx","max-tx",1119558339)], null),max_tid);
1848
+ var G__59725 = entities;
1849
+ var G__59726 = cljs.core.assoc_in(cljs.core.assoc_in(migration_state,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tids","tids",-1783124481),e], null),new_e),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"eids","eids",1546550700),e], null),new_e);
1850
+ report = G__59724;
1851
+ es = G__59725;
1852
+ migration_state = G__59726;
1853
+ continue;
1854
+ } else {
1855
+ if((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(migration_state,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tids","tids",-1783124481),t], null)) == null)){
1856
+ var G__59727 = cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(report,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"db-after","db-after",-571884666),new cljs.core.Keyword(null,"max-tx","max-tx",1119558339)], null),cljs.core.inc);
1857
+ var G__59728 = es;
1858
+ var G__59729 = cljs.core.assoc_in(migration_state,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tids","tids",-1783124481),t], null),max_tid);
1859
+ report = G__59727;
1860
+ es = G__59728;
1861
+ migration_state = G__59729;
1862
+ continue;
1863
+ } else {
1864
+ if(((datahike.db.utils.ref_QMARK_(db,a__$1)) && ((cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(migration_state,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"eids","eids",1546550700),v], null)) == null)))){
1865
+ var G__59730 = datahike.db.transaction.allocate_eid.cljs$core$IFn$_invoke$arity$2(report,max_eid);
1866
+ var G__59731 = es;
1867
+ var G__59732 = cljs.core.assoc_in(migration_state,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"eids","eids",1546550700),v], null),max_eid);
1868
+ report = G__59730;
1869
+ es = G__59731;
1870
+ migration_state = G__59732;
1871
+ continue;
1872
+ } else {
1873
+ var new_datom = datahike.datom.datom.cljs$core$IFn$_invoke$arity$5((function (){var or__5002__auto__ = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(migration_state,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"eids","eids",1546550700),e], null));
1874
+ if(cljs.core.truth_(or__5002__auto__)){
1875
+ return or__5002__auto__;
1876
+ } else {
1877
+ return max_eid;
1878
+ }
1879
+ })(),a__$1,((datahike.db.utils.ref_QMARK_(db,a__$1))?cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(migration_state,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"eids","eids",1546550700),v], null)):v),cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(migration_state,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"tids","tids",-1783124481),t], null)),op);
1880
+ var upsert_QMARK_ = (function (){var and__5000__auto__ = (!(datahike.db.utils.multival_QMARK_(db,a_ident)));
1881
+ if(and__5000__auto__){
1882
+ return op;
1883
+ } else {
1884
+ return and__5000__auto__;
1885
+ }
1886
+ })();
1887
+ var G__59734 = datahike.db.transaction.transact_report.cljs$core$IFn$_invoke$arity$3(report,new_datom,upsert_QMARK_);
1888
+ var G__59735 = entities;
1889
+ var G__59736 = cljs.core.assoc_in(migration_state,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"eids","eids",1546550700),e], null),new_datom.e);
1890
+ report = G__59734;
1891
+ es = G__59735;
1892
+ migration_state = G__59736;
1893
+ continue;
1894
+
1895
+ }
1896
+ }
1897
+ }
1898
+ }
1899
+ }
1900
+ break;
1901
+ }
1902
+ });
1903
+
1904
+ //# sourceMappingURL=datahike.db.transaction.js.map