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,628 @@
1
+ var $CLJS = require("./cljs_env");
2
+ var $jscomp = $CLJS.$jscomp;
3
+ var COMPILED = false;
4
+ require("./cljs.core.js");
5
+ require("./datahike.constants.js");
6
+ require("./datahike.datom.js");
7
+ require("./datahike.db.js");
8
+ require("./datahike.db.interface.js");
9
+ require("./datahike.db.transaction.js");
10
+ require("./datahike.db.utils.js");
11
+ require("./datahike.impl.entity.js");
12
+ require("./datahike.pull_api.js");
13
+ require("./datahike.query.js");
14
+ var environ=$CLJS.environ || ($CLJS.environ = {});
15
+ var fress=$CLJS.fress || ($CLJS.fress = {});
16
+ var datahike=$CLJS.datahike || ($CLJS.datahike = {});
17
+ var clojure=$CLJS.clojure || ($CLJS.clojure = {});
18
+ var hasch=$CLJS.hasch || ($CLJS.hasch = {});
19
+ var tailrecursion=$CLJS.tailrecursion || ($CLJS.tailrecursion = {});
20
+ var superv=$CLJS.superv || ($CLJS.superv = {});
21
+ var geheimnis=$CLJS.geheimnis || ($CLJS.geheimnis = {});
22
+ var is=$CLJS.is || ($CLJS.is = {});
23
+ var cljs=$CLJS.cljs || ($CLJS.cljs = {});
24
+ var cljs_node_io=$CLJS.cljs_node_io || ($CLJS.cljs_node_io = {});
25
+ var goog=$CLJS.goog || ($CLJS.goog = {});
26
+ var konserve=$CLJS.konserve || ($CLJS.konserve = {});
27
+ var datalog=$CLJS.datalog || ($CLJS.datalog = {});
28
+ var spec_tools=$CLJS.spec_tools || ($CLJS.spec_tools = {});
29
+ var taoensso=$CLJS.taoensso || ($CLJS.taoensso = {});
30
+ var incognito=$CLJS.incognito || ($CLJS.incognito = {});
31
+ var medley=$CLJS.medley || ($CLJS.medley = {});
32
+ var me=$CLJS.me || ($CLJS.me = {});
33
+
34
+ $CLJS.SHADOW_ENV.setLoaded("datahike.core.js");
35
+
36
+ goog.provide('datahike.core');
37
+ datahike.core.tx0 = (536870912);
38
+ datahike.core.entity = datahike.impl.entity.entity;
39
+ /**
40
+ * Given lookup ref `[unique-attr value]`, returns numeric entity id.
41
+ *
42
+ * If entity does not exist, returns `nil`.
43
+ *
44
+ * For numeric `eid` returns `eid` itself (does not check for entity existence in that case).
45
+ */
46
+ datahike.core.entid = datahike.db.utils.entid;
47
+ /**
48
+ * Returns a db that entity was created from.
49
+ */
50
+ datahike.core.entity_db = (function datahike$core$entity_db(entity){
51
+ if(datahike.impl.entity.entity_QMARK_(entity)){
52
+ } else {
53
+ throw (new Error("Assert failed: (de/entity? entity)"));
54
+ }
55
+
56
+ return entity.db;
57
+ });
58
+ /**
59
+ * Forces all entity attributes to be eagerly fetched and cached. Only usable for debug output.
60
+ *
61
+ * Usage:
62
+ *
63
+ * ```
64
+ * (entity db 1) ; => {:db/id 1}
65
+ * (touch (entity db 1)) ; => {:db/id 1, :dislikes [:pie], :likes [:pizza]}
66
+ * ```
67
+ */
68
+ datahike.core.touch = datahike.impl.entity.touch;
69
+ datahike.core.pull = datahike.pull_api.pull;
70
+ datahike.core.pull_many = datahike.pull_api.pull_many;
71
+ datahike.core.q = datahike.query.q;
72
+ /**
73
+ * Creates an empty database with an optional schema and configuration.
74
+ *
75
+ * Usage:
76
+ * ```
77
+ * (empty-db) ; => #datahike/DB {:schema {}, :datoms []}
78
+ *
79
+ * (empty-db {:likes {:db/cardinality :db.cardinality/many}})
80
+ * ; => #datahike/DB {:schema {:likes {:db/cardinality :db.cardinality/many}}
81
+ * ; :datoms []}
82
+ *
83
+ * (empty-db {} {:keep-history? false :index datahike.index.hitchhiker-tree :schema-flexibility :write})
84
+ * ```
85
+ */
86
+ datahike.core.empty_db = datahike.db.empty_db;
87
+ /**
88
+ * Returns `true` if the given value is an immutable database, `false` otherwise.
89
+ */
90
+ datahike.core.db_QMARK_ = datahike.db.utils.db_QMARK_;
91
+ /**
92
+ * Low-level fn to create raw datoms.
93
+ *
94
+ * Optionally with transaction id (number) and `added` flag (`true` for addition, `false` for retraction).
95
+ *
96
+ * See also [[init-db]].
97
+ */
98
+ datahike.core.datom = datahike.datom.datom;
99
+ /**
100
+ * Returns `true` if the given value is a datom, `false` otherwise.
101
+ */
102
+ datahike.core.datom_QMARK_ = datahike.datom.datom_QMARK_;
103
+ /**
104
+ * Low-level fn for creating database quickly from a trusted sequence of datoms.
105
+ *
106
+ * Does no validation on inputs, so `datoms` must be well-formed and match schema.
107
+ *
108
+ * Used internally in db (de)serialization. See also [[datom]].
109
+ */
110
+ datahike.core.init_db = datahike.db.init_db;
111
+ /**
112
+ * Returns `true` if this database was filtered using [[filter]], `false` otherwise.
113
+ */
114
+ datahike.core.is_filtered = (function datahike$core$is_filtered(x){
115
+ return (x instanceof datahike.db.FilteredDB);
116
+ });
117
+ datahike.core.filter = (function datahike$core$filter(db,pred){
118
+ if(datahike.db.utils.db_QMARK_(db)){
119
+ } else {
120
+ throw (new Error("Assert failed: (dbu/db? db)"));
121
+ }
122
+
123
+ if(datahike.core.is_filtered(db)){
124
+ var fdb = db;
125
+ var orig_pred = fdb.pred;
126
+ var orig_db = fdb.unfiltered_db;
127
+ return (new datahike.db.FilteredDB(orig_db,(function (p1__68033_SHARP_){
128
+ var and__5000__auto__ = (orig_pred.cljs$core$IFn$_invoke$arity$1 ? orig_pred.cljs$core$IFn$_invoke$arity$1(p1__68033_SHARP_) : orig_pred.call(null, p1__68033_SHARP_));
129
+ if(cljs.core.truth_(and__5000__auto__)){
130
+ return (pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(orig_db,p1__68033_SHARP_) : pred.call(null, orig_db,p1__68033_SHARP_));
131
+ } else {
132
+ return and__5000__auto__;
133
+ }
134
+ }),null,null,null));
135
+ } else {
136
+ return (new datahike.db.FilteredDB(db,(function (p1__68034_SHARP_){
137
+ return (pred.cljs$core$IFn$_invoke$arity$2 ? pred.cljs$core$IFn$_invoke$arity$2(db,p1__68034_SHARP_) : pred.call(null, db,p1__68034_SHARP_));
138
+ }),null,null,null));
139
+ }
140
+ });
141
+ /**
142
+ * Same as [[transact!]], but applies to an immutable database value. Returns transaction report (see [[transact!]]).
143
+ */
144
+ datahike.core.with$ = (function datahike$core$with(var_args){
145
+ var G__68071 = arguments.length;
146
+ switch (G__68071) {
147
+ case 2:
148
+ return datahike.core.with$.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
149
+
150
+ break;
151
+ case 3:
152
+ return datahike.core.with$.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
153
+
154
+ break;
155
+ default:
156
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
157
+
158
+ }
159
+ });
160
+
161
+ (datahike.core.with$.cljs$core$IFn$_invoke$arity$2 = (function (db,tx_data){
162
+ return datahike.core.with$.cljs$core$IFn$_invoke$arity$3(db,tx_data,null);
163
+ }));
164
+
165
+ (datahike.core.with$.cljs$core$IFn$_invoke$arity$3 = (function (db,tx_data,tx_meta){
166
+ if(datahike.db.utils.db_QMARK_(db)){
167
+ } else {
168
+ throw (new Error("Assert failed: (dbu/db? db)"));
169
+ }
170
+
171
+ if(datahike.core.is_filtered(db)){
172
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Filtered DB cannot be modified",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transaction","filtered","transaction/filtered",1699706605)], null));
173
+ } else {
174
+ return datahike.db.transaction.transact_tx_data(datahike.db.map__GT_TxReport(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,"db-before","db-before",-553691536),db,new cljs.core.Keyword(null,"db-after","db-after",-571884666),db,new cljs.core.Keyword(null,"tx-data","tx-data",934159761),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,"tempids","tempids",1767509089),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,"tx-meta","tx-meta",1159283194),tx_meta], null)),tx_data);
175
+ }
176
+ }));
177
+
178
+ (datahike.core.with$.cljs$lang$maxFixedArity = 3);
179
+
180
+ datahike.core.load_entities_with = (function datahike$core$load_entities_with(db,entities,tx_meta){
181
+ return datahike.db.transaction.transact_entities_directly(datahike.db.map__GT_TxReport(new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,"db-before","db-before",-553691536),db,new cljs.core.Keyword(null,"db-after","db-after",-571884666),db,new cljs.core.Keyword(null,"tx-data","tx-data",934159761),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,"tempids","tempids",1767509089),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,"tx-meta","tx-meta",1159283194),tx_meta], null)),entities);
182
+ });
183
+ /**
184
+ * Applies transaction to an immutable db value, returning new immutable db value. Same as `(:db-after (with db tx-data))`.
185
+ */
186
+ datahike.core.db_with = (function datahike$core$db_with(db,tx_data){
187
+ if(datahike.db.utils.db_QMARK_(db)){
188
+ } else {
189
+ throw (new Error("Assert failed: (dbu/db? db)"));
190
+ }
191
+
192
+ return new cljs.core.Keyword(null,"db-after","db-after",-571884666).cljs$core$IFn$_invoke$arity$1(datahike.core.with$.cljs$core$IFn$_invoke$arity$2(db,tx_data));
193
+ });
194
+ datahike.core.datoms = (function datahike$core$datoms(var_args){
195
+ var G__68099 = arguments.length;
196
+ switch (G__68099) {
197
+ case 2:
198
+ return datahike.core.datoms.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
199
+
200
+ break;
201
+ case 3:
202
+ return datahike.core.datoms.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
203
+
204
+ break;
205
+ case 4:
206
+ return datahike.core.datoms.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));
207
+
208
+ break;
209
+ case 5:
210
+ return datahike.core.datoms.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));
211
+
212
+ break;
213
+ case 6:
214
+ return datahike.core.datoms.cljs$core$IFn$_invoke$arity$6((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]));
215
+
216
+ break;
217
+ default:
218
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
219
+
220
+ }
221
+ });
222
+
223
+ (datahike.core.datoms.cljs$core$IFn$_invoke$arity$2 = (function (db,index){
224
+ if(datahike.db.utils.db_QMARK_(db)){
225
+ } else {
226
+ throw (new Error("Assert failed: (dbu/db? db)"));
227
+ }
228
+
229
+ return datahike.db.interface$.datoms(db,index,cljs.core.PersistentVector.EMPTY);
230
+ }));
231
+
232
+ (datahike.core.datoms.cljs$core$IFn$_invoke$arity$3 = (function (db,index,c1){
233
+ if(datahike.db.utils.db_QMARK_(db)){
234
+ } else {
235
+ throw (new Error("Assert failed: (dbu/db? db)"));
236
+ }
237
+
238
+ return datahike.db.interface$.datoms(db,index,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [c1], null));
239
+ }));
240
+
241
+ (datahike.core.datoms.cljs$core$IFn$_invoke$arity$4 = (function (db,index,c1,c2){
242
+ if(datahike.db.utils.db_QMARK_(db)){
243
+ } else {
244
+ throw (new Error("Assert failed: (dbu/db? db)"));
245
+ }
246
+
247
+ return datahike.db.interface$.datoms(db,index,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [c1,c2], null));
248
+ }));
249
+
250
+ (datahike.core.datoms.cljs$core$IFn$_invoke$arity$5 = (function (db,index,c1,c2,c3){
251
+ if(datahike.db.utils.db_QMARK_(db)){
252
+ } else {
253
+ throw (new Error("Assert failed: (dbu/db? db)"));
254
+ }
255
+
256
+ return datahike.db.interface$.datoms(db,index,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [c1,c2,c3], null));
257
+ }));
258
+
259
+ (datahike.core.datoms.cljs$core$IFn$_invoke$arity$6 = (function (db,index,c1,c2,c3,c4){
260
+ if(datahike.db.utils.db_QMARK_(db)){
261
+ } else {
262
+ throw (new Error("Assert failed: (dbu/db? db)"));
263
+ }
264
+
265
+ return datahike.db.interface$.datoms(db,index,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [c1,c2,c3,c4], null));
266
+ }));
267
+
268
+ (datahike.core.datoms.cljs$lang$maxFixedArity = 6);
269
+
270
+ datahike.core.seek_datoms = (function datahike$core$seek_datoms(var_args){
271
+ var G__68126 = arguments.length;
272
+ switch (G__68126) {
273
+ case 2:
274
+ return datahike.core.seek_datoms.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
275
+
276
+ break;
277
+ case 3:
278
+ return datahike.core.seek_datoms.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
279
+
280
+ break;
281
+ case 4:
282
+ return datahike.core.seek_datoms.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));
283
+
284
+ break;
285
+ case 5:
286
+ return datahike.core.seek_datoms.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));
287
+
288
+ break;
289
+ case 6:
290
+ return datahike.core.seek_datoms.cljs$core$IFn$_invoke$arity$6((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]));
291
+
292
+ break;
293
+ default:
294
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
295
+
296
+ }
297
+ });
298
+
299
+ (datahike.core.seek_datoms.cljs$core$IFn$_invoke$arity$2 = (function (db,index){
300
+ if(datahike.db.utils.db_QMARK_(db)){
301
+ } else {
302
+ throw (new Error("Assert failed: (dbu/db? db)"));
303
+ }
304
+
305
+ return datahike.db.interface$.seek_datoms(db,index,cljs.core.PersistentVector.EMPTY);
306
+ }));
307
+
308
+ (datahike.core.seek_datoms.cljs$core$IFn$_invoke$arity$3 = (function (db,index,c1){
309
+ if(datahike.db.utils.db_QMARK_(db)){
310
+ } else {
311
+ throw (new Error("Assert failed: (dbu/db? db)"));
312
+ }
313
+
314
+ return datahike.db.interface$.seek_datoms(db,index,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [c1], null));
315
+ }));
316
+
317
+ (datahike.core.seek_datoms.cljs$core$IFn$_invoke$arity$4 = (function (db,index,c1,c2){
318
+ if(datahike.db.utils.db_QMARK_(db)){
319
+ } else {
320
+ throw (new Error("Assert failed: (dbu/db? db)"));
321
+ }
322
+
323
+ return datahike.db.interface$.seek_datoms(db,index,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [c1,c2], null));
324
+ }));
325
+
326
+ (datahike.core.seek_datoms.cljs$core$IFn$_invoke$arity$5 = (function (db,index,c1,c2,c3){
327
+ if(datahike.db.utils.db_QMARK_(db)){
328
+ } else {
329
+ throw (new Error("Assert failed: (dbu/db? db)"));
330
+ }
331
+
332
+ return datahike.db.interface$.seek_datoms(db,index,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [c1,c2,c3], null));
333
+ }));
334
+
335
+ (datahike.core.seek_datoms.cljs$core$IFn$_invoke$arity$6 = (function (db,index,c1,c2,c3,c4){
336
+ if(datahike.db.utils.db_QMARK_(db)){
337
+ } else {
338
+ throw (new Error("Assert failed: (dbu/db? db)"));
339
+ }
340
+
341
+ return datahike.db.interface$.seek_datoms(db,index,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [c1,c2,c3,c4], null));
342
+ }));
343
+
344
+ (datahike.core.seek_datoms.cljs$lang$maxFixedArity = 6);
345
+
346
+ /**
347
+ * Same as [[seek-datoms]], but goes backwards until the beginning of the index.
348
+ */
349
+ datahike.core.rseek_datoms = (function datahike$core$rseek_datoms(var_args){
350
+ var G__68145 = arguments.length;
351
+ switch (G__68145) {
352
+ case 2:
353
+ return datahike.core.rseek_datoms.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
354
+
355
+ break;
356
+ case 3:
357
+ return datahike.core.rseek_datoms.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
358
+
359
+ break;
360
+ case 4:
361
+ return datahike.core.rseek_datoms.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));
362
+
363
+ break;
364
+ case 5:
365
+ return datahike.core.rseek_datoms.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]));
366
+
367
+ break;
368
+ case 6:
369
+ return datahike.core.rseek_datoms.cljs$core$IFn$_invoke$arity$6((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)]));
370
+
371
+ break;
372
+ default:
373
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
374
+
375
+ }
376
+ });
377
+
378
+ (datahike.core.rseek_datoms.cljs$core$IFn$_invoke$arity$2 = (function (db,index){
379
+ if(datahike.db.utils.db_QMARK_(db)){
380
+ } else {
381
+ throw (new Error("Assert failed: (dbu/db? db)"));
382
+ }
383
+
384
+ return datahike.db.interface$.rseek_datoms(db,index,cljs.core.PersistentVector.EMPTY);
385
+ }));
386
+
387
+ (datahike.core.rseek_datoms.cljs$core$IFn$_invoke$arity$3 = (function (db,index,c1){
388
+ if(datahike.db.utils.db_QMARK_(db)){
389
+ } else {
390
+ throw (new Error("Assert failed: (dbu/db? db)"));
391
+ }
392
+
393
+ return datahike.db.interface$.rseek_datoms(db,index,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [c1], null));
394
+ }));
395
+
396
+ (datahike.core.rseek_datoms.cljs$core$IFn$_invoke$arity$4 = (function (db,index,c1,c2){
397
+ if(datahike.db.utils.db_QMARK_(db)){
398
+ } else {
399
+ throw (new Error("Assert failed: (dbu/db? db)"));
400
+ }
401
+
402
+ return datahike.db.interface$.rseek_datoms(db,index,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [c1,c2], null));
403
+ }));
404
+
405
+ (datahike.core.rseek_datoms.cljs$core$IFn$_invoke$arity$5 = (function (db,index,c1,c2,c3){
406
+ if(datahike.db.utils.db_QMARK_(db)){
407
+ } else {
408
+ throw (new Error("Assert failed: (dbu/db? db)"));
409
+ }
410
+
411
+ return datahike.db.interface$.rseek_datoms(db,index,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [c1,c2,c3], null));
412
+ }));
413
+
414
+ (datahike.core.rseek_datoms.cljs$core$IFn$_invoke$arity$6 = (function (db,index,c1,c2,c3,c4){
415
+ if(datahike.db.utils.db_QMARK_(db)){
416
+ } else {
417
+ throw (new Error("Assert failed: (dbu/db? db)"));
418
+ }
419
+
420
+ return datahike.db.interface$.rseek_datoms(db,index,new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [c1,c2,c3,c4], null));
421
+ }));
422
+
423
+ (datahike.core.rseek_datoms.cljs$lang$maxFixedArity = 6);
424
+
425
+ datahike.core.index_range = (function datahike$core$index_range(db,attr,start,end){
426
+ if(datahike.db.utils.db_QMARK_(db)){
427
+ } else {
428
+ throw (new Error("Assert failed: (dbu/db? db)"));
429
+ }
430
+
431
+ return datahike.db.interface$.index_range(db,attr,start,end);
432
+ });
433
+ /**
434
+ * Returns `true` if this is a connection to a DataScript db, `false` otherwise.
435
+ */
436
+ datahike.core.conn_QMARK_ = (function datahike$core$conn_QMARK_(conn){
437
+ var and__5000__auto__ = (((!((conn == null))))?(((((conn.cljs$lang$protocol_mask$partition0$ & (32768))) || ((cljs.core.PROTOCOL_SENTINEL === conn.cljs$core$IDeref$))))?true:(((!conn.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.IDeref,conn):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IDeref,conn));
438
+ if(and__5000__auto__){
439
+ return datahike.db.utils.db_QMARK_(cljs.core.deref(conn));
440
+ } else {
441
+ return and__5000__auto__;
442
+ }
443
+ });
444
+ datahike.core.atom_QMARK_ = (function datahike$core$atom_QMARK_(a){
445
+ return (a instanceof cljs.core.Atom);
446
+ });
447
+ /**
448
+ * Listen for changes on the given connection. Whenever a transaction is applied to the database via [[transact!]], the callback is called
449
+ * with the transaction report. `key` is any opaque unique value.
450
+ *
451
+ * Idempotent. Calling [[listen!]] with the same twice will override old callback with the new value.
452
+ *
453
+ * Returns the key under which this listener is registered. See also [[unlisten!]].
454
+ */
455
+ datahike.core.listen_BANG_ = (function datahike$core$listen_BANG_(var_args){
456
+ var G__68174 = arguments.length;
457
+ switch (G__68174) {
458
+ case 2:
459
+ return datahike.core.listen_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
460
+
461
+ break;
462
+ case 3:
463
+ return datahike.core.listen_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
464
+
465
+ break;
466
+ default:
467
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
468
+
469
+ }
470
+ });
471
+
472
+ (datahike.core.listen_BANG_.cljs$core$IFn$_invoke$arity$2 = (function (conn,callback){
473
+ return datahike.core.listen_BANG_.cljs$core$IFn$_invoke$arity$3(conn,cljs.core.rand.cljs$core$IFn$_invoke$arity$0(),callback);
474
+ }));
475
+
476
+ (datahike.core.listen_BANG_.cljs$core$IFn$_invoke$arity$3 = (function (conn,key,callback){
477
+ if(datahike.core.conn_QMARK_(conn)){
478
+ } else {
479
+ throw (new Error("Assert failed: (conn? conn)"));
480
+ }
481
+
482
+ if(datahike.core.atom_QMARK_(new cljs.core.Keyword(null,"listeners","listeners",394544445).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(conn)))){
483
+ } else {
484
+ throw (new Error("Assert failed: (atom? (:listeners (meta conn)))"));
485
+ }
486
+
487
+ cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(new cljs.core.Keyword(null,"listeners","listeners",394544445).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(conn)),cljs.core.assoc,key,callback);
488
+
489
+ return key;
490
+ }));
491
+
492
+ (datahike.core.listen_BANG_.cljs$lang$maxFixedArity = 3);
493
+
494
+ /**
495
+ * Removes registered listener from connection. See also [[listen!]].
496
+ */
497
+ datahike.core.unlisten_BANG_ = (function datahike$core$unlisten_BANG_(conn,key){
498
+ if(datahike.core.conn_QMARK_(conn)){
499
+ } else {
500
+ throw (new Error("Assert failed: (conn? conn)"));
501
+ }
502
+
503
+ if(datahike.core.atom_QMARK_(new cljs.core.Keyword(null,"listeners","listeners",394544445).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(conn)))){
504
+ } else {
505
+ throw (new Error("Assert failed: (atom? (:listeners (meta conn)))"));
506
+ }
507
+
508
+ return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(new cljs.core.Keyword(null,"listeners","listeners",394544445).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(conn)),cljs.core.dissoc,key);
509
+ });
510
+ datahike.core.last_tempid = cljs.core.atom.cljs$core$IFn$_invoke$arity$1((-1000000));
511
+ /**
512
+ * Allocates and returns a unique temporary id (a negative integer). Ignores `part`. Returns `x` if it is specified.
513
+ *
514
+ * Exists for Datomic API compatibility. Prefer using negative integers directly if possible.
515
+ */
516
+ datahike.core.tempid = (function datahike$core$tempid(var_args){
517
+ var G__68194 = arguments.length;
518
+ switch (G__68194) {
519
+ case 1:
520
+ return datahike.core.tempid.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
521
+
522
+ break;
523
+ case 2:
524
+ return datahike.core.tempid.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
525
+
526
+ break;
527
+ default:
528
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
529
+
530
+ }
531
+ });
532
+
533
+ (datahike.core.tempid.cljs$core$IFn$_invoke$arity$1 = (function (part){
534
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(part,new cljs.core.Keyword("db.part","tx","db.part/tx",-1480923213))){
535
+ return new cljs.core.Keyword("db","current-tx","db/current-tx",1600722132);
536
+ } else {
537
+ return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(datahike.core.last_tempid,cljs.core.dec);
538
+ }
539
+ }));
540
+
541
+ (datahike.core.tempid.cljs$core$IFn$_invoke$arity$2 = (function (part,x){
542
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(part,new cljs.core.Keyword("db.part","tx","db.part/tx",-1480923213))){
543
+ return new cljs.core.Keyword("db","current-tx","db/current-tx",1600722132);
544
+ } else {
545
+ return x;
546
+ }
547
+ }));
548
+
549
+ (datahike.core.tempid.cljs$lang$maxFixedArity = 2);
550
+
551
+ /**
552
+ * Does a lookup in tempids map, returning an entity id that tempid was resolved to.
553
+ *
554
+ * Exists for Datomic API compatibility. Prefer using map lookup directly if possible.
555
+ */
556
+ datahike.core.resolve_tempid = (function datahike$core$resolve_tempid(_db,tempids,tempid){
557
+ return cljs.core.get.cljs$core$IFn$_invoke$arity$2(tempids,tempid);
558
+ });
559
+ /**
560
+ * Returns the underlying immutable database value from a connection.
561
+ *
562
+ * Exists for Datomic API compatibility. Prefer using `@conn` directly if possible.
563
+ */
564
+ datahike.core.db = (function datahike$core$db(conn){
565
+ if(datahike.core.conn_QMARK_(conn)){
566
+ } else {
567
+ throw (new Error("Assert failed: (conn? conn)"));
568
+ }
569
+
570
+ return cljs.core.deref(conn);
571
+ });
572
+ datahike.core.rand_bits = (function datahike$core$rand_bits(pow){
573
+ return cljs.core.rand_int(((1) << pow));
574
+ });
575
+ datahike.core.to_hex_string = (function datahike$core$to_hex_string(n,l){
576
+ var s = n.toString((16));
577
+ var c = cljs.core.count(s);
578
+ if((c > l)){
579
+ return cljs.core.subs.cljs$core$IFn$_invoke$arity$3(s,(0),l);
580
+ } else {
581
+ if((c < l)){
582
+ return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.repeat.cljs$core$IFn$_invoke$arity$2((l - c),"0"))),cljs.core.str.cljs$core$IFn$_invoke$arity$1(s)].join('');
583
+ } else {
584
+ return s;
585
+
586
+ }
587
+ }
588
+ });
589
+ /**
590
+ * Generates a UUID that grow with time. Such UUIDs will always go to the end of the index and that will minimize insertions in the middle.
591
+ *
592
+ * Consist of 64 bits of current UNIX timestamp (in seconds) and 64 random bits (2^64 different unique values per second).
593
+ */
594
+ datahike.core.squuid = (function datahike$core$squuid(var_args){
595
+ var G__68227 = arguments.length;
596
+ switch (G__68227) {
597
+ case 0:
598
+ return datahike.core.squuid.cljs$core$IFn$_invoke$arity$0();
599
+
600
+ break;
601
+ case 1:
602
+ return datahike.core.squuid.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
603
+
604
+ break;
605
+ default:
606
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
607
+
608
+ }
609
+ });
610
+
611
+ (datahike.core.squuid.cljs$core$IFn$_invoke$arity$0 = (function (){
612
+ return datahike.core.squuid.cljs$core$IFn$_invoke$arity$1((new Date()).getTime());
613
+ }));
614
+
615
+ (datahike.core.squuid.cljs$core$IFn$_invoke$arity$1 = (function (msec){
616
+ return cljs.core.uuid([cljs.core.str.cljs$core$IFn$_invoke$arity$1(datahike.core.to_hex_string(((msec / (1000)) | (0)),(8))),"-",cljs.core.str.cljs$core$IFn$_invoke$arity$1(datahike.core.to_hex_string(datahike.core.rand_bits((16)),(4))),"-",cljs.core.str.cljs$core$IFn$_invoke$arity$1(datahike.core.to_hex_string(((datahike.core.rand_bits((16)) & (4095)) | (16384)),(4))),"-",cljs.core.str.cljs$core$IFn$_invoke$arity$1(datahike.core.to_hex_string(((datahike.core.rand_bits((16)) & (16383)) | (32768)),(4))),"-",cljs.core.str.cljs$core$IFn$_invoke$arity$1(datahike.core.to_hex_string(datahike.core.rand_bits((16)),(4))),cljs.core.str.cljs$core$IFn$_invoke$arity$1(datahike.core.to_hex_string(datahike.core.rand_bits((16)),(4))),cljs.core.str.cljs$core$IFn$_invoke$arity$1(datahike.core.to_hex_string(datahike.core.rand_bits((16)),(4)))].join(''));
617
+ }));
618
+
619
+ (datahike.core.squuid.cljs$lang$maxFixedArity = 1);
620
+
621
+ /**
622
+ * Returns time that was used in [[squuid]] call, in milliseconds, rounded to the closest second.
623
+ */
624
+ datahike.core.squuid_time_millis = (function datahike$core$squuid_time_millis(uuid){
625
+ return (parseInt(cljs.core.subs.cljs$core$IFn$_invoke$arity$3(cljs.core.str.cljs$core$IFn$_invoke$arity$1(uuid),(0),(8)),(16)) * (1000));
626
+ });
627
+
628
+ //# sourceMappingURL=datahike.core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["datahike/core.cljc"],"mappings":"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","names":["datahike.core/tx0","datahike.constants/tx0","datahike.core/entity","datahike.impl.entity/entity","datahike.core/entid","datahike.db.utils/entid","js/Error","datahike.core/entity-db","entity","datahike.impl.entity/entity?","datahike.core/touch","datahike.impl.entity/touch","datahike.core/pull","datahike.pull-api/pull","datahike.core/pull-many","datahike.pull-api/pull-many","datahike.core/q","datahike.query/q","datahike.core/empty-db","datahike.db/empty-db","datahike.core/db?","datahike.db.utils/db?","datahike.core/datom","datahike.datom/datom","datahike.core/datom?","datahike.datom/datom?","datahike.core/init-db","datahike.db/init-db","datahike.core/is-filtered","x","datahike.db/FilteredDB","datahike.core/filter","db","pred","fdb","orig-pred","orig-db","p1__68033#","and__5000__auto__","p1__68034#","var_args","G__68071","datahike.core/with","tx-data","datahike.core.with$","tx-meta","cljs.core.ex_info","datahike.db.transaction/transact-tx-data","datahike.db/map->TxReport","datahike.core/load-entities-with","entities","datahike.db.transaction/transact-entities-directly","datahike.core/db-with","G__68099","datahike.core/datoms","index","datahike.db.interface/datoms","c1","c2","c3","c4","G__68126","datahike.core/seek-datoms","datahike.db.interface/seek-datoms","G__68145","datahike.core/rseek-datoms","datahike.db.interface/rseek-datoms","datahike.core/index-range","attr","start","end","datahike.db.interface/index-range","datahike.core/conn?","conn","cljs.core/PROTOCOL_SENTINEL","cljs.core/native-satisfies?","cljs.core/IDeref","cljs.core/deref","datahike.core/atom?","a","cljs.core/Atom","G__68174","datahike.core/listen!","callback","datahike.core.listen_BANG_","cljs.core.rand","key","cljs.core/meta","cljs.core.swap_BANG_","cljs.core/assoc","datahike.core/unlisten!","cljs.core/dissoc","datahike.core/last-tempid","cljs.core.atom","G__68194","datahike.core/tempid","part","cljs.core._EQ_","cljs.core/dec","datahike.core/resolve-tempid","_db","tempids","tempid","cljs.core.get","datahike.core/db","datahike.core/rand-bits","pow","cljs.core/rand-int","datahike.core/to-hex-string","n","l","s","c","cljs.core/count","cljs.core.subs","cljs.core.apply","cljs.core/str","cljs.core.repeat","G__68227","datahike.core/squuid","datahike.core.squuid","js/Date","msec","cljs.core/uuid","datahike.core/squuid-time-millis","uuid","js/parseInt"],"sourcesContent":["(ns ^:no-doc datahike.core\n (:refer-clojure :exclude [filter])\n (:require\n [datahike.constants :as dc]\n [datahike.datom :as dd]\n [datahike.db :as db #?@(:cljs [:refer [FilteredDB]])]\n [datahike.db.interface :as dbi]\n [datahike.db.transaction :as dbt]\n [datahike.db.utils :as dbu]\n [datahike.impl.entity :as de]\n [datahike.pull-api :as dp]\n [datahike.query :as dq])\n #?(:clj\n (:import\n [datahike.db FilteredDB]\n [datahike.impl.entity Entity]\n [java.util UUID]\n (clojure.lang IDeref IBlockingDeref IAtom IPending))))\n\n(def ^:const ^:no-doc tx0 dc/tx0)\n\n; Entities\n\n(def ^{:arglists '([db eid])}\n\n entity de/entity)\n\n(def ^{:arglists '([db eid])\n :doc \"Given lookup ref `[unique-attr value]`, returns numeric entity id.\n\n If entity does not exist, returns `nil`.\n\n For numeric `eid` returns `eid` itself (does not check for entity existence in that case).\"}\n entid dbu/entid)\n\n(defn entity-db\n \"Returns a db that entity was created from.\"\n [^Entity entity]\n {:pre [(de/entity? entity)]}\n (.-db entity))\n\n(def ^{:arglists '([e])\n :doc \"Forces all entity attributes to be eagerly fetched and cached. Only usable for debug output.\n\n Usage:\n\n ```\n (entity db 1) ; => {:db/id 1}\n (touch (entity db 1)) ; => {:db/id 1, :dislikes [:pie], :likes [:pizza]}\n ```\"}\n touch de/touch)\n\n; Pull\n\n(def ^{:arglists '([db selector eid])}\n pull dp/pull)\n\n(def ^{:arglists '([db selector eids])}\n pull-many dp/pull-many)\n\n; Query\n\n(def ^{:arglists '([query & inputs])}\n q dq/q)\n\n; Creating DB\n\n(def ^{:arglists '([] [schema] [schema config])\n :doc \"Creates an empty database with an optional schema and configuration.\n\n Usage:\n ```\n (empty-db) ; => #datahike/DB {:schema {}, :datoms []}\n\n (empty-db {:likes {:db/cardinality :db.cardinality/many}})\n ; => #datahike/DB {:schema {:likes {:db/cardinality :db.cardinality/many}}\n ; :datoms []}\n\n (empty-db {} {:keep-history? false :index datahike.index.hitchhiker-tree :schema-flexibility :write})\n ```\"}\n empty-db db/empty-db)\n\n(def ^{:arglists '([x])\n :doc \"Returns `true` if the given value is an immutable database, `false` otherwise.\"}\n db? dbu/db?)\n\n(def ^{:arglists '([e a v] [e a v tx] [e a v tx added])\n :doc \"Low-level fn to create raw datoms.\n\n Optionally with transaction id (number) and `added` flag (`true` for addition, `false` for retraction).\n\n See also [[init-db]].\"}\n datom dd/datom)\n\n(def ^{:arglists '([x])\n :doc \"Returns `true` if the given value is a datom, `false` otherwise.\"}\n datom? dd/datom?)\n\n(def ^{:arglists '([datoms] [datoms schema] [datoms schema config])\n :doc \"Low-level fn for creating database quickly from a trusted sequence of datoms.\n\n Does no validation on inputs, so `datoms` must be well-formed and match schema.\n\n Used internally in db (de)serialization. See also [[datom]].\"}\n init-db db/init-db)\n\n; Filtered db\n\n(defn is-filtered\n \"Returns `true` if this database was filtered using [[filter]], `false` otherwise.\"\n [x]\n (instance? FilteredDB x))\n\n(defn filter\n [db pred]\n {:pre [(dbu/db? db)]}\n (if (is-filtered db)\n (let [^FilteredDB fdb db\n orig-pred (.-pred fdb)\n orig-db (.-unfiltered-db fdb)]\n (FilteredDB. orig-db #(and (orig-pred %) (pred orig-db %))))\n (FilteredDB. db #(pred db %))))\n\n; Changing DB\n\n(defn with\n \"Same as [[transact!]], but applies to an immutable database value. Returns transaction report (see [[transact!]]).\"\n ([db tx-data] (with db tx-data nil))\n ([db tx-data tx-meta]\n {:pre [(dbu/db? db)]}\n (if (is-filtered db)\n (throw (ex-info \"Filtered DB cannot be modified\" {:error :transaction/filtered}))\n (dbt/transact-tx-data (db/map->TxReport\n {:db-before db\n :db-after db\n :tx-data []\n :tempids {}\n :tx-meta tx-meta}) tx-data))))\n\n(defn load-entities-with [db entities tx-meta]\n (dbt/transact-entities-directly\n (db/map->TxReport {:db-before db\n :db-after db\n :tx-data []\n :tempids {}\n :tx-meta tx-meta})\n entities))\n\n(defn db-with\n \"Applies transaction to an immutable db value, returning new immutable db value. Same as `(:db-after (with db tx-data))`.\"\n [db tx-data]\n {:pre [(dbu/db? db)]}\n (:db-after (with db tx-data)))\n\n; Index lookups\n\n(defn datoms\n ([db index] {:pre [(dbu/db? db)]} (dbi/datoms db index []))\n ([db index c1] {:pre [(dbu/db? db)]} (dbi/datoms db index [c1]))\n ([db index c1 c2] {:pre [(dbu/db? db)]} (dbi/datoms db index [c1 c2]))\n ([db index c1 c2 c3] {:pre [(dbu/db? db)]} (dbi/datoms db index [c1 c2 c3]))\n ([db index c1 c2 c3 c4] {:pre [(dbu/db? db)]} (dbi/datoms db index [c1 c2 c3 c4])))\n\n(defn seek-datoms\n ([db index] {:pre [(dbu/db? db)]} (dbi/seek-datoms db index []))\n ([db index c1] {:pre [(dbu/db? db)]} (dbi/seek-datoms db index [c1]))\n ([db index c1 c2] {:pre [(dbu/db? db)]} (dbi/seek-datoms db index [c1 c2]))\n ([db index c1 c2 c3] {:pre [(dbu/db? db)]} (dbi/seek-datoms db index [c1 c2 c3]))\n ([db index c1 c2 c3 c4] {:pre [(dbu/db? db)]} (dbi/seek-datoms db index [c1 c2 c3 c4])))\n\n(defn rseek-datoms\n \"Same as [[seek-datoms]], but goes backwards until the beginning of the index.\"\n ([db index] {:pre [(dbu/db? db)]} (dbi/rseek-datoms db index []))\n ([db index c1] {:pre [(dbu/db? db)]} (dbi/rseek-datoms db index [c1]))\n ([db index c1 c2] {:pre [(dbu/db? db)]} (dbi/rseek-datoms db index [c1 c2]))\n ([db index c1 c2 c3] {:pre [(dbu/db? db)]} (dbi/rseek-datoms db index [c1 c2 c3]))\n ([db index c1 c2 c3 c4] {:pre [(dbu/db? db)]} (dbi/rseek-datoms db index [c1 c2 c3 c4])))\n\n(defn index-range\n [db attr start end]\n {:pre [(dbu/db? db)]}\n (dbi/index-range db attr start end))\n\n;; Conn\n\n(defn conn?\n \"Returns `true` if this is a connection to a DataScript db, `false` otherwise.\"\n [conn]\n (and #?(:clj (instance? IDeref conn)\n :cljs (satisfies? cljs.core/IDeref conn))\n (dbu/db? @conn)))\n\n(defn- atom? [a]\n #?(:cljs (instance? Atom a)\n :clj (instance? IAtom a)))\n\n(defn listen!\n \"Listen for changes on the given connection. Whenever a transaction is applied to the database via [[transact!]], the callback is called\n with the transaction report. `key` is any opaque unique value.\n\n Idempotent. Calling [[listen!]] with the same twice will override old callback with the new value.\n\n Returns the key under which this listener is registered. See also [[unlisten!]].\"\n ([conn callback] (listen! conn (rand) callback))\n ([conn key callback]\n {:pre [(conn? conn) (atom? (:listeners (meta conn)))]}\n (swap! (:listeners (meta conn)) assoc key callback)\n key))\n\n(defn unlisten!\n \"Removes registered listener from connection. See also [[listen!]].\"\n [conn key]\n {:pre [(conn? conn)\n (atom? (:listeners (meta conn)))]}\n (swap! (:listeners (meta conn)) dissoc key))\n\n;; Datomic compatibility layer\n\n(def ^:private last-tempid (atom -1000000))\n\n(defn tempid\n \"Allocates and returns a unique temporary id (a negative integer). Ignores `part`. Returns `x` if it is specified.\n\n Exists for Datomic API compatibility. Prefer using negative integers directly if possible.\"\n ([part]\n (if (= part :db.part/tx)\n :db/current-tx\n (swap! last-tempid dec)))\n ([part x]\n (if (= part :db.part/tx)\n :db/current-tx\n x)))\n\n(defn resolve-tempid\n \"Does a lookup in tempids map, returning an entity id that tempid was resolved to.\n \n Exists for Datomic API compatibility. Prefer using map lookup directly if possible.\"\n [_db tempids tempid]\n (get tempids tempid))\n\n(defn db\n \"Returns the underlying immutable database value from a connection.\n \n Exists for Datomic API compatibility. Prefer using `@conn` directly if possible.\"\n [conn]\n {:pre [(conn? conn)]}\n @conn)\n\n(defn- rand-bits [pow]\n (rand-int (bit-shift-left 1 pow)))\n\n#?(:cljs\n (defn- to-hex-string [n l]\n (let [s (.toString n 16)\n c (count s)]\n (cond\n (> c l) (subs s 0 l)\n (< c l) (str (apply str (repeat (- l c) \"0\")) s)\n :else s))))\n\n(defn squuid\n \"Generates a UUID that grow with time. Such UUIDs will always go to the end of the index and that will minimize insertions in the middle.\n \n Consist of 64 bits of current UNIX timestamp (in seconds) and 64 random bits (2^64 different unique values per second).\"\n ([]\n (squuid #?(:clj (System/currentTimeMillis)\n :cljs (.getTime (js/Date.)))))\n ([msec]\n #?(:clj\n (let [uuid (UUID/randomUUID)\n time (int (/ msec 1000))\n high (.getMostSignificantBits uuid)\n low (.getLeastSignificantBits uuid)\n new-high (bit-or (bit-and high 0x00000000FFFFFFFF)\n (bit-shift-left time 32))]\n (UUID. new-high low))\n :cljs\n (uuid\n (str\n (-> (int (/ msec 1000))\n (to-hex-string 8))\n \"-\" (-> (rand-bits 16) (to-hex-string 4))\n \"-\" (-> (rand-bits 16) (bit-and 0x0FFF) (bit-or 0x4000) (to-hex-string 4))\n \"-\" (-> (rand-bits 16) (bit-and 0x3FFF) (bit-or 0x8000) (to-hex-string 4))\n \"-\" (-> (rand-bits 16) (to-hex-string 4))\n (-> (rand-bits 16) (to-hex-string 4))\n (-> (rand-bits 16) (to-hex-string 4)))))))\n\n(defn squuid-time-millis\n \"Returns time that was used in [[squuid]] call, in milliseconds, rounded to the closest second.\"\n [uuid]\n #?(:clj (-> (.getMostSignificantBits ^UUID uuid)\n (bit-shift-right 32)\n (* 1000))\n :cljs (-> (subs (str uuid) 0 8)\n (js/parseInt 16)\n (* 1000))))\n"]}