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 @@
1
+ {"version":3,"sources":["datahike/js/api.cljs"],"mappings":"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","names":["datahike.js.api/uuid-regex","datahike.js.api/uuid-string?","s","and__5000__auto__","cljs.core/re-matches","datahike.js.api/convert-string","clojure.string/starts-with?","cljs.core.keyword","cljs.core.subs","cljs.core/uuid","datahike.js.api/js->clj-recursive","x","cljs.core/object?","cljs.core/array?","cljs.core/fn?","cljs.core.into","iter__5480__auto__","s__75784","cljs.core/LazySeq","temp__5804__auto__","cljs.core/seq","cljs.core/chunked-seq?","c__5478__auto__","size__5479__auto__","cljs.core/count","b__75786","cljs.core/chunk-buffer","i__75785","cljs.core/-nth","cljs.core/chunk-append","cljs.core/chunk-cons","cljs.core/chunk","iter__75783","cljs.core/chunk-rest","cljs.core/first","cljs.core/cons","cljs.core/rest","k","cljs.core/js-keys","v","datahike.js.api.goog$module$goog$object.get","k-kw","cljs.core.mapv","datahike.js.api/clj->js-recursive","cljs.core/PROTOCOL_SENTINEL","cljs.core/native-satisfies?","datahike.db.interface/IDB","cljs.core._EQ_","cljs.core/type","datahike.datom/Datom","cljs.core/map?","cljs.core/Keyword","obj","seq__75790","chunk__75791","count__75792","i__75793","vec__75800","cljs.core.nth","c__5525__auto__","cljs.core/chunk-first","vec__75803","cljs.core/next","datahike.js.api.goog$module$goog$object.set","cljs.core/name","cljs.core/sequential?","cljs.core.into_array","cljs.core.map","cljs.core/set?","datahike.js.api/maybe-chan->promise","cljs.core.async.impl.protocols/Channel","js/Promise","resolve","reject","c__21482__auto__","cljs.core.async.chan","cljs.core.async.impl.dispatch/run","f__21483__auto__","switch__21444__auto__","state_75832","state_val_75833","inst_75816","statearr-75834","statearr-75835","inst_75807","inst_75808","statearr-75836","inst_75815","statearr-75837","statearr-75838","statearr-75839","inst_75830","cljs.core.async.impl.ioc-helpers/return-chan","inst_75827","_","statearr-75840","statearr-75841","statearr-75842","cljs.core.async.impl.ioc-helpers/take!","inst_75825","statearr-75844","inst_75821","statearr-75845","statearr-75846","statearr-75847","ex75843","statearr-75848","statearr-75849","inst_75823","statearr-75850","inst_75819","statearr-75851","statearr-75852","state-machine__21445__auto__","ret-value__21446__auto__","result__21447__auto__","cljs.core/keyword-identical?","ex__21448__auto__","e75853","statearr-75854","statearr-75855","state__21484__auto__","statearr-75856","cljs.core.async.impl.ioc-helpers/USER-START-IDX","cljs.core.async.impl.ioc-helpers/run-state-machine-wrapped","js/Error","cljs.core/ExceptionInfo","js/Promise.resolve","datahike.js.api/unlisten","var_args","args__5732__auto__","len__5726__auto__","i__5727__auto__","argseq__5733__auto__","cljs.core/IndexedSeq","args__75753__auto__","clj-args__75754__auto__","result__75755__auto__","cljs.core.apply","datahike.core/unlisten!","seq75857","self__5712__auto__","datahike.js.api/deleteDatabase","datahike.api.impl/delete-database","seq75858","datahike.js.api/pull","datahike.pull-api/pull","seq75859","datahike.js.api/entity","datahike.impl.entity/entity","seq75860","datahike.js.api/metrics","datahike.db/metrics","seq75861","datahike.js.api/reverseSchema","datahike.api.impl/reverse-schema","seq75862","datahike.js.api/datoms","datahike.api.impl/datoms","seq75863","datahike.js.api/loadEntities","datahike.writer/load-entities","seq75864","datahike.js.api/isFiltered","datahike.core/is-filtered","seq75865","datahike.js.api/q","datahike.query/q","seq75866","datahike.js.api/schema","datahike.api.impl/schema","seq75867","datahike.js.api/indexRange","datahike.api.impl/index-range","seq75868","datahike.js.api/pullMany","datahike.pull-api/pull-many","seq75869","datahike.js.api/since","datahike.api.impl/since","seq75870","datahike.js.api/queryStats","datahike.query/query-stats","seq75871","datahike.js.api/entityDb","datahike.impl.entity/entity-db","seq75872","datahike.js.api/gcStorage","datahike.writer/gc-storage!","seq75873","datahike.js.api/createDatabase","datahike.api.impl/create-database","seq75874","datahike.js.api/db","datahike.api.impl/db","seq75875","datahike.js.api/connect","datahike.connector/connect","seq75876","datahike.js.api/release","datahike.connector/release","seq75877","datahike.js.api/history","datahike.api.impl/history","seq75878","datahike.js.api/transact","datahike.api.impl/transact!","seq75879","datahike.js.api/databaseExists","datahike.api.impl/database-exists?","seq75880","datahike.js.api/asOf","datahike.api.impl/as-of","seq75881","datahike.js.api/seekDatoms","datahike.api.impl/seek-datoms","seq75882","datahike.js.api/filter","datahike.core/filter","seq75883","datahike.js.api/listen","datahike.core/listen!","seq75884","datahike.js.api/dbWith","datahike.api.impl/db-with","seq75885","datahike.js.api/withDb","datahike.api.impl/with","seq75886","datahike.js.api/tempid","datahike.core/tempid","seq75887","datahike.js.api/isPromise"],"sourcesContent":["(ns datahike.js.api\n \"JavaScript API for Datahike with Promise conversion and data transformation\"\n (:refer-clojure :exclude [filter])\n (:require [datahike.api.specification :refer [api-specification]]\n [datahike.api.impl]\n [datahike.store] ;; Register :mem backend\n [konserve.node-filestore] ;; Register :file backend for Node.js\n [datahike.db.interface]\n [datahike.datom]\n [cljs.core.async :refer [<!]]\n [clojure.string :as str]\n [clojure.walk :as walk]\n [goog.object :as gobj])\n (:require-macros [cljs.core.async.macros :refer [go]]\n [datahike.js.api-macros :refer [emit-js-api]]))\n\n;; =============================================================================\n;; Data Conversion Helpers\n;; =============================================================================\n\n(def ^:private uuid-regex\n \"Regex pattern for UUID strings (8-4-4-4-12 hex digits)\"\n #\"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\")\n\n(defn- uuid-string?\n \"Check if a string is a valid UUID format\"\n [s]\n (and (string? s) (re-matches uuid-regex s)))\n\n(defn- convert-string\n \"Convert a string to appropriate Clojure type:\n - ':keyword' -> keyword\n - UUID format -> UUID object\n - otherwise -> string\"\n [s]\n (cond\n (str/starts-with? s \":\") (keyword (subs s 1))\n (uuid-string? s) (uuid s)\n :else s))\n\n(defn js->clj-recursive\n \"Recursively convert JS objects to Clojure data with keyword keys.\n Also converts strings like ':keyword' to keywords and UUID strings to UUIDs.\"\n [x]\n (cond\n ;; Check for JS object first (but not arrays, functions, or null)\n (and (object? x)\n (not (array? x))\n (not (fn? x))\n (not (nil? x)))\n (into {} (for [k (js-keys x)]\n (let [v (gobj/get x k)\n ;; Always convert keys to keywords (not just if they start with \":\")\n k-kw (keyword k)]\n [k-kw (js->clj-recursive v)])))\n\n ;; Arrays become vectors\n (array? x)\n (mapv js->clj-recursive x)\n\n ;; Strings: convert keywords, UUIDs, or pass through\n (string? x)\n (convert-string x)\n\n ;; Everything else passes through\n :else x))\n\n(defn clj->js-recursive\n \"Recursively convert Clojure data to JS objects.\n Converts keywords to strings with ':' prefix.\n Datahike objects (DB, connections, datoms) pass through unchanged.\"\n [x]\n (cond\n ;; Datahike DB objects - pass through unchanged\n (satisfies? datahike.db.interface/IDB x)\n x\n\n ;; Datoms - pass through unchanged\n (= (type x) datahike.datom.Datom)\n x\n\n ;; Connections (check for typical connection keys)\n (and (map? x) (:conn-atom x))\n x\n\n ;; Keywords become strings with \":\"\n (keyword? x)\n (str x)\n\n ;; Maps become JS objects\n (map? x)\n (let [obj (js-obj)]\n (doseq [[k v] x]\n (gobj/set obj\n (if (keyword? k) (name k) (str k))\n (clj->js-recursive v)))\n obj)\n\n ;; Sequential collections become arrays\n (sequential? x)\n (into-array (map clj->js-recursive x))\n\n ;; Sets become arrays\n (set? x)\n (into-array (map clj->js-recursive x))\n\n ;; Everything else passes through\n :else x))\n\n;; =============================================================================\n;; Async/Promise Conversion\n;; =============================================================================\n\n(defn maybe-chan->promise\n \"Convert a core.async channel to a Promise, or return value directly if not a channel.\n This handles the dynamic async/sync execution in Datahike API.\n\n Errors returned on the channel (not thrown) are properly rejected by checking\n if the result is a js/Error or ExceptionInfo.\"\n [x]\n (if (satisfies? cljs.core.async.impl.protocols/Channel x)\n (js/Promise.\n (fn [resolve reject]\n (go\n (try\n (let [result (<! x)]\n ;; Check if result is an error object - reject promise if so\n (if (or (instance? js/Error result)\n (instance? ExceptionInfo result))\n (reject result)\n (resolve result)))\n (catch :default e\n ;; Catch any exceptions thrown during channel operations\n (reject e))))))\n (js/Promise.resolve x)))\n\n;; =============================================================================\n;; Generate All API Functions\n;; =============================================================================\n\n(emit-js-api)\n\n;; =============================================================================\n;; Additional JS-specific Helpers\n;; =============================================================================\n\n(defn ^:export isPromise\n \"Check if a value is a Promise.\"\n [x]\n (instance? js/Promise x))\n"]}
@@ -0,0 +1,404 @@
1
+ var $CLJS = require("./cljs_env");
2
+ var $jscomp = $CLJS.$jscomp;
3
+ var COMPILED = false;
4
+ require("./cljs.core.js");
5
+ require("./cljs.cache.js");
6
+ require("./tailrecursion.priority_map.js");
7
+ var environ=$CLJS.environ || ($CLJS.environ = {});
8
+ var fress=$CLJS.fress || ($CLJS.fress = {});
9
+ var datahike=$CLJS.datahike || ($CLJS.datahike = {});
10
+ var clojure=$CLJS.clojure || ($CLJS.clojure = {});
11
+ var hasch=$CLJS.hasch || ($CLJS.hasch = {});
12
+ var tailrecursion=$CLJS.tailrecursion || ($CLJS.tailrecursion = {});
13
+ var superv=$CLJS.superv || ($CLJS.superv = {});
14
+ var geheimnis=$CLJS.geheimnis || ($CLJS.geheimnis = {});
15
+ var is=$CLJS.is || ($CLJS.is = {});
16
+ var cljs=$CLJS.cljs || ($CLJS.cljs = {});
17
+ var cljs_node_io=$CLJS.cljs_node_io || ($CLJS.cljs_node_io = {});
18
+ var goog=$CLJS.goog || ($CLJS.goog = {});
19
+ var konserve=$CLJS.konserve || ($CLJS.konserve = {});
20
+ var datalog=$CLJS.datalog || ($CLJS.datalog = {});
21
+ var spec_tools=$CLJS.spec_tools || ($CLJS.spec_tools = {});
22
+ var taoensso=$CLJS.taoensso || ($CLJS.taoensso = {});
23
+ var incognito=$CLJS.incognito || ($CLJS.incognito = {});
24
+ var medley=$CLJS.medley || ($CLJS.medley = {});
25
+ var me=$CLJS.me || ($CLJS.me = {});
26
+
27
+ $CLJS.SHADOW_ENV.setLoaded("datahike.lru.js");
28
+
29
+ goog.provide('datahike.lru');
30
+
31
+
32
+ /**
33
+ * @constructor
34
+ * @implements {cljs.core.IPrintWithWriter}
35
+ * @implements {cljs.core.IAssociative}
36
+ * @implements {cljs.core.ILookup}
37
+ */
38
+ datahike.lru.LRU = (function (key_value,gen_key,key_gen,gen,limit){
39
+ this.key_value = key_value;
40
+ this.gen_key = gen_key;
41
+ this.key_gen = key_gen;
42
+ this.gen = gen;
43
+ this.limit = limit;
44
+ this.cljs$lang$protocol_mask$partition0$ = 2147484416;
45
+ this.cljs$lang$protocol_mask$partition1$ = 0;
46
+ });
47
+ (datahike.lru.LRU.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this$,k,v){
48
+ var self__ = this;
49
+ var this$__$1 = this;
50
+ return (datahike.lru.assoc_lru.cljs$core$IFn$_invoke$arity$3 ? datahike.lru.assoc_lru.cljs$core$IFn$_invoke$arity$3(this$__$1,k,v) : datahike.lru.assoc_lru.call(null, this$__$1,k,v));
51
+ }));
52
+
53
+ (datahike.lru.LRU.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = (function (_,k){
54
+ var self__ = this;
55
+ var ___$1 = this;
56
+ return cljs.core._contains_key_QMARK_(self__.key_value,k);
57
+ }));
58
+
59
+ (datahike.lru.LRU.prototype.cljs$core$ILookup$_lookup$arity$2 = (function (_,k){
60
+ var self__ = this;
61
+ var ___$1 = this;
62
+ return cljs.core._lookup(self__.key_value,k,null);
63
+ }));
64
+
65
+ (datahike.lru.LRU.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (_,k,nf){
66
+ var self__ = this;
67
+ var ___$1 = this;
68
+ return cljs.core._lookup(self__.key_value,k,nf);
69
+ }));
70
+
71
+ (datahike.lru.LRU.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (_,writer,opts){
72
+ var self__ = this;
73
+ var ___$1 = this;
74
+ return cljs.core._pr_writer(cljs.core.persistent_BANG_(self__.key_value),writer,opts);
75
+ }));
76
+
77
+ (datahike.lru.LRU.getBasis = (function (){
78
+ return new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"key-value","key-value",1605624688,null),new cljs.core.Symbol(null,"gen-key","gen-key",392707442,null),new cljs.core.Symbol(null,"key-gen","key-gen",415199034,null),new cljs.core.Symbol(null,"gen","gen",1783106829,null),new cljs.core.Symbol(null,"limit","limit",284709164,null)], null);
79
+ }));
80
+
81
+ (datahike.lru.LRU.cljs$lang$type = true);
82
+
83
+ (datahike.lru.LRU.cljs$lang$ctorStr = "datahike.lru/LRU");
84
+
85
+ (datahike.lru.LRU.cljs$lang$ctorPrWriter = (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){
86
+ return cljs.core._write(writer__5288__auto__,"datahike.lru/LRU");
87
+ }));
88
+
89
+ /**
90
+ * Positional factory function for datahike.lru/LRU.
91
+ */
92
+ datahike.lru.__GT_LRU = (function datahike$lru$__GT_LRU(key_value,gen_key,key_gen,gen,limit){
93
+ return (new datahike.lru.LRU(key_value,gen_key,key_gen,gen,limit));
94
+ });
95
+
96
+ datahike.lru.assoc_lru = (function datahike$lru$assoc_lru(lru,k,v){
97
+ var key_value = lru.key_value;
98
+ var gen_key = lru.gen_key;
99
+ var key_gen = lru.key_gen;
100
+ var gen = lru.gen;
101
+ var limit = lru.limit;
102
+ var temp__5802__auto__ = (key_gen.cljs$core$IFn$_invoke$arity$2 ? key_gen.cljs$core$IFn$_invoke$arity$2(k,null) : key_gen.call(null, k,null));
103
+ if(cljs.core.truth_(temp__5802__auto__)){
104
+ var g = temp__5802__auto__;
105
+ return datahike.lru.__GT_LRU(key_value,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(gen_key,g),gen,k),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(key_gen,k,gen),(gen + (1)),limit);
106
+ } else {
107
+ var G__105575 = datahike.lru.__GT_LRU(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(key_value,k,v),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(gen_key,gen,k),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(key_gen,k,gen),(gen + (1)),limit);
108
+ return (datahike.lru.cleanup_lru.cljs$core$IFn$_invoke$arity$1 ? datahike.lru.cleanup_lru.cljs$core$IFn$_invoke$arity$1(G__105575) : datahike.lru.cleanup_lru.call(null, G__105575));
109
+ }
110
+ });
111
+ datahike.lru.cleanup_lru = (function datahike$lru$cleanup_lru(lru){
112
+ if((cljs.core.count(lru.key_value) > lru.limit)){
113
+ var key_value = lru.key_value;
114
+ var gen_key = lru.gen_key;
115
+ var key_gen = lru.key_gen;
116
+ var gen = lru.gen;
117
+ var limit = lru.limit;
118
+ var vec__105576 = cljs.core.first(gen_key);
119
+ var g = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__105576,(0),null);
120
+ var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__105576,(1),null);
121
+ return datahike.lru.__GT_LRU(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(key_value,k),cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(gen_key,g),cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(key_gen,k),gen,limit);
122
+ } else {
123
+ return lru;
124
+ }
125
+ });
126
+ datahike.lru.lru = (function datahike$lru$lru(limit){
127
+ return datahike.lru.__GT_LRU(cljs.core.PersistentArrayMap.EMPTY,cljs.core.sorted_map(),cljs.core.PersistentArrayMap.EMPTY,(0),limit);
128
+ });
129
+
130
+ /**
131
+ * @constructor
132
+ * @implements {cljs.core.IEquiv}
133
+ * @implements {cljs.core.ICollection}
134
+ * @implements {cljs.core.IEmptyableCollection}
135
+ * @implements {cljs.core.ICounted}
136
+ * @implements {cljs.cache.CacheProtocol}
137
+ * @implements {cljs.core.ISeqable}
138
+ * @implements {cljs.core.IIterable}
139
+ * @implements {cljs.core.IAssociative}
140
+ * @implements {cljs.core.IMap}
141
+ * @implements {cljs.core.ILookup}
142
+ */
143
+ datahike.lru.LRUDatomCache = (function (cache,lru,counts,n_total_datoms,tick,datom_limit){
144
+ this.cache = cache;
145
+ this.lru = lru;
146
+ this.counts = counts;
147
+ this.n_total_datoms = n_total_datoms;
148
+ this.tick = tick;
149
+ this.datom_limit = datom_limit;
150
+ this.cljs$lang$protocol_mask$partition0$ = 10487566;
151
+ this.cljs$lang$protocol_mask$partition1$ = 131072;
152
+ });
153
+ (datahike.lru.LRUDatomCache.prototype.toString = (function (){
154
+ var self__ = this;
155
+ var _ = this;
156
+ return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.cache),","," ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.lru),","," ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.counts),","," ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.n_total_datoms),","," ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.tick),","," ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.datom_limit)].join('');
157
+ }));
158
+
159
+ (datahike.lru.LRUDatomCache.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this__44459__auto__,other__44466__auto__){
160
+ var self__ = this;
161
+ var this__44459__auto____$1 = this;
162
+ return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(other__44466__auto__,self__.cache);
163
+ }));
164
+
165
+ (datahike.lru.LRUDatomCache.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this__44459__auto__,elem__44465__auto__){
166
+ var self__ = this;
167
+ var this__44459__auto____$1 = this;
168
+ return this__44459__auto____$1.cljs$cache$CacheProtocol$seed$arity$2(null, (function (){var fexpr__105581 = new cljs.core.Symbol("cljs.cache","-conj","cljs.cache/-conj",837886777,null);
169
+ return (fexpr__105581.cljs$core$IFn$_invoke$arity$2 ? fexpr__105581.cljs$core$IFn$_invoke$arity$2(self__.cache,elem__44465__auto__) : fexpr__105581.call(null, self__.cache,elem__44465__auto__));
170
+ })());
171
+ }));
172
+
173
+ (datahike.lru.LRUDatomCache.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = (function (this__44459__auto__){
174
+ var self__ = this;
175
+ var this__44459__auto____$1 = this;
176
+ return this__44459__auto____$1.cljs$cache$CacheProtocol$seed$arity$2(null, (function (){var fexpr__105582 = new cljs.core.Symbol("cljs.cache","-empty","cljs.cache/-empty",-190310872,null);
177
+ return (fexpr__105582.cljs$core$IFn$_invoke$arity$1 ? fexpr__105582.cljs$core$IFn$_invoke$arity$1(self__.cache) : fexpr__105582.call(null, self__.cache));
178
+ })());
179
+ }));
180
+
181
+ (datahike.lru.LRUDatomCache.prototype.cljs$core$ICounted$_count$arity$1 = (function (this__44459__auto__){
182
+ var self__ = this;
183
+ var this__44459__auto____$1 = this;
184
+ return cljs.core._count(self__.cache);
185
+ }));
186
+
187
+ (datahike.lru.LRUDatomCache.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (___44462__auto__){
188
+ var self__ = this;
189
+ var ___44462__auto____$1 = this;
190
+ return cljs.core._seq(self__.cache);
191
+ }));
192
+
193
+ (datahike.lru.LRUDatomCache.prototype.cljs$cache$CacheProtocol$ = cljs.core.PROTOCOL_SENTINEL);
194
+
195
+ (datahike.lru.LRUDatomCache.prototype.cljs$cache$CacheProtocol$lookup$arity$2 = (function (_,item){
196
+ var self__ = this;
197
+ var ___$1 = this;
198
+ return cljs.core.get.cljs$core$IFn$_invoke$arity$2(self__.cache,item);
199
+ }));
200
+
201
+ (datahike.lru.LRUDatomCache.prototype.cljs$cache$CacheProtocol$lookup$arity$3 = (function (_,item,not_found){
202
+ var self__ = this;
203
+ var ___$1 = this;
204
+ return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.cache,item,not_found);
205
+ }));
206
+
207
+ (datahike.lru.LRUDatomCache.prototype.cljs$cache$CacheProtocol$has_QMARK_$arity$2 = (function (_,item){
208
+ var self__ = this;
209
+ var ___$1 = this;
210
+ return cljs.core.contains_QMARK_(self__.cache,item);
211
+ }));
212
+
213
+ (datahike.lru.LRUDatomCache.prototype.cljs$cache$CacheProtocol$hit$arity$2 = (function (_,item){
214
+ var self__ = this;
215
+ var ___$1 = this;
216
+ var tick_PLUS_ = (self__.tick + (1));
217
+ return (new datahike.lru.LRUDatomCache(self__.cache,((cljs.core.contains_QMARK_(self__.cache,item))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.lru,item,tick_PLUS_):self__.lru),self__.counts,self__.n_total_datoms,tick_PLUS_,self__.datom_limit));
218
+ }));
219
+
220
+ (datahike.lru.LRUDatomCache.prototype.cljs$cache$CacheProtocol$miss$arity$3 = (function (this$,item,result){
221
+ var self__ = this;
222
+ var this$__$1 = this;
223
+ var tick_PLUS_ = (self__.tick + (1));
224
+ var n_new_datoms = cljs.core.count(result);
225
+ var new_size = (self__.n_total_datoms + n_new_datoms);
226
+ var vec__105583 = ((cljs.core.contains_QMARK_(self__.lru,item))?new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.cache,item),cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.lru,item),cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.counts,item),(new_size - cljs.core.get.cljs$core$IFn$_invoke$arity$2(self__.counts,item))], null):new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [self__.cache,self__.lru,self__.counts,new_size], null));
227
+ var c = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__105583,(0),null);
228
+ var l = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__105583,(1),null);
229
+ var n = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__105583,(2),null);
230
+ var s = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__105583,(3),null);
231
+ var vec__105586 = (function (){var c__$1 = c;
232
+ var l__$1 = l;
233
+ var n__$1 = n;
234
+ var s__$1 = s;
235
+ while(true){
236
+ if((s__$1 > self__.datom_limit)){
237
+ var k = cljs.core.first(cljs.core.peek(self__.lru));
238
+ var temp__5802__auto__ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(n__$1,k);
239
+ if(cljs.core.truth_(temp__5802__auto__)){
240
+ var x = temp__5802__auto__;
241
+ var G__105610 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(c__$1,k);
242
+ var G__105611 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(l__$1,k);
243
+ var G__105612 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(n__$1,k);
244
+ var G__105613 = (s__$1 - x);
245
+ c__$1 = G__105610;
246
+ l__$1 = G__105611;
247
+ n__$1 = G__105612;
248
+ s__$1 = G__105613;
249
+ continue;
250
+ } else {
251
+ return new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [c__$1,l__$1,n__$1,s__$1], null);
252
+ }
253
+ } else {
254
+ return new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [c__$1,l__$1,n__$1,s__$1], null);
255
+ }
256
+ break;
257
+ }
258
+ })();
259
+ var c__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__105586,(0),null);
260
+ var l__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__105586,(1),null);
261
+ var n__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__105586,(2),null);
262
+ var s__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__105586,(3),null);
263
+ return (new datahike.lru.LRUDatomCache(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(c__$1,item,result),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(l__$1,item,tick_PLUS_),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(n__$1,item,n_new_datoms),s__$1,tick_PLUS_,self__.datom_limit));
264
+ }));
265
+
266
+ (datahike.lru.LRUDatomCache.prototype.cljs$cache$CacheProtocol$evict$arity$2 = (function (this$,key){
267
+ var self__ = this;
268
+ var this$__$1 = this;
269
+ if(cljs.core.contains_QMARK_(self__.cache,key)){
270
+ return (new datahike.lru.LRUDatomCache(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.cache,key),cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.lru,key),cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.counts,key),(self__.n_total_datoms - cljs.core.get.cljs$core$IFn$_invoke$arity$2(self__.counts,key)),(self__.tick + (1)),self__.datom_limit));
271
+ } else {
272
+ return this$__$1;
273
+ }
274
+ }));
275
+
276
+ (datahike.lru.LRUDatomCache.prototype.cljs$cache$CacheProtocol$seed$arity$2 = (function (_,base){
277
+ var self__ = this;
278
+ var ___$1 = this;
279
+ return (new datahike.lru.LRUDatomCache(base,cljs.core.into.cljs$core$IFn$_invoke$arity$2(tailrecursion.priority_map.priority_map(),cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__105579_SHARP_){
280
+ return (new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[p1__105579_SHARP_,(0)],null));
281
+ }),cljs.core.keys(base))),cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__105580_SHARP_){
282
+ return (new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[p1__105580_SHARP_,cljs.core.count(cljs.core.get.cljs$core$IFn$_invoke$arity$2(base,p1__105580_SHARP_))],null));
283
+ }),cljs.core.keys(base))),(0),(0),self__.datom_limit));
284
+ }));
285
+
286
+ (datahike.lru.LRUDatomCache.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (___44462__auto__){
287
+ var self__ = this;
288
+ var ___44462__auto____$1 = this;
289
+ return self__.cache.iterator();
290
+ }));
291
+
292
+ (datahike.lru.LRUDatomCache.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__44459__auto__,k__44463__auto__,v__44464__auto__){
293
+ var self__ = this;
294
+ var this__44459__auto____$1 = this;
295
+ return this__44459__auto____$1.cljs$cache$CacheProtocol$miss$arity$3(null, k__44463__auto__,v__44464__auto__);
296
+ }));
297
+
298
+ (datahike.lru.LRUDatomCache.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = (function (this__44459__auto__,k__44463__auto__){
299
+ var self__ = this;
300
+ var this__44459__auto____$1 = this;
301
+ return this__44459__auto____$1.cljs$cache$CacheProtocol$has_QMARK_$arity$2(null, k__44463__auto__);
302
+ }));
303
+
304
+ (datahike.lru.LRUDatomCache.prototype.cljs$core$IMap$_dissoc$arity$2 = (function (this__44459__auto__,k__44463__auto__){
305
+ var self__ = this;
306
+ var this__44459__auto____$1 = this;
307
+ return this__44459__auto____$1.cljs$cache$CacheProtocol$evict$arity$2(null, k__44463__auto__);
308
+ }));
309
+
310
+ (datahike.lru.LRUDatomCache.prototype.cljs$core$ILookup$_lookup$arity$2 = (function (this__44459__auto__,key__44460__auto__){
311
+ var self__ = this;
312
+ var this__44459__auto____$1 = this;
313
+ return this__44459__auto____$1.cljs$core$ILookup$_lookup$arity$3(null, key__44460__auto__,null);
314
+ }));
315
+
316
+ (datahike.lru.LRUDatomCache.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__44459__auto__,key__44460__auto__,not_found__44461__auto__){
317
+ var self__ = this;
318
+ var this__44459__auto____$1 = this;
319
+ if(cljs.core.truth_(this__44459__auto____$1.cljs$cache$CacheProtocol$has_QMARK_$arity$2(null, key__44460__auto__))){
320
+ return this__44459__auto____$1.cljs$cache$CacheProtocol$lookup$arity$2(null, key__44460__auto__);
321
+ } else {
322
+ return not_found__44461__auto__;
323
+ }
324
+ }));
325
+
326
+ (datahike.lru.LRUDatomCache.getBasis = (function (){
327
+ return new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"cache","cache",403508473,null),new cljs.core.Symbol(null,"lru","lru",-315566379,null),new cljs.core.Symbol(null,"counts","counts",1874837419,null),new cljs.core.Symbol(null,"n-total-datoms","n-total-datoms",-1252770377,null),new cljs.core.Symbol(null,"tick","tick",804644551,null),new cljs.core.Symbol(null,"datom-limit","datom-limit",298983341,null)], null);
328
+ }));
329
+
330
+ (datahike.lru.LRUDatomCache.cljs$lang$type = true);
331
+
332
+ (datahike.lru.LRUDatomCache.cljs$lang$ctorStr = "datahike.lru/LRUDatomCache");
333
+
334
+ (datahike.lru.LRUDatomCache.cljs$lang$ctorPrWriter = (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){
335
+ return cljs.core._write(writer__5288__auto__,"datahike.lru/LRUDatomCache");
336
+ }));
337
+
338
+ /**
339
+ * Positional factory function for datahike.lru/LRUDatomCache.
340
+ */
341
+ datahike.lru.__GT_LRUDatomCache = (function datahike$lru$__GT_LRUDatomCache(cache,lru,counts,n_total_datoms,tick,datom_limit){
342
+ return (new datahike.lru.LRUDatomCache(cache,lru,counts,n_total_datoms,tick,datom_limit));
343
+ });
344
+
345
+ /**
346
+ * Returns an LRU cache with the cache and usage-table initialied to `base` --
347
+ * each entry is initialized with the same usage value.
348
+ * This function takes an optional `:threshold` argument that defines the maximum number
349
+ * of elements in the cache before the LRU semantics apply (default is 32).
350
+ */
351
+ datahike.lru.lru_datom_cache_factory = (function datahike$lru$lru_datom_cache_factory(var_args){
352
+ var args__5732__auto__ = [];
353
+ var len__5726__auto___105625 = arguments.length;
354
+ var i__5727__auto___105626 = (0);
355
+ while(true){
356
+ if((i__5727__auto___105626 < len__5726__auto___105625)){
357
+ args__5732__auto__.push((arguments[i__5727__auto___105626]));
358
+
359
+ var G__105627 = (i__5727__auto___105626 + (1));
360
+ i__5727__auto___105626 = G__105627;
361
+ continue;
362
+ } else {
363
+ }
364
+ break;
365
+ }
366
+
367
+ var argseq__5733__auto__ = ((((1) < args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((1)),(0),null)):null);
368
+ return datahike.lru.lru_datom_cache_factory.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5733__auto__);
369
+ });
370
+
371
+ (datahike.lru.lru_datom_cache_factory.cljs$core$IFn$_invoke$arity$variadic = (function (base,p__105595){
372
+ var map__105596 = p__105595;
373
+ var map__105596__$1 = cljs.core.__destructure_map(map__105596);
374
+ var threshold = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__105596__$1,new cljs.core.Keyword(null,"threshold","threshold",204221583),(32));
375
+ if(typeof threshold === 'number'){
376
+ } else {
377
+ throw (new Error("Assert failed: (number? threshold)"));
378
+ }
379
+
380
+ if(((0) < threshold)){
381
+ } else {
382
+ throw (new Error("Assert failed: (< 0 threshold)"));
383
+ }
384
+
385
+ if(cljs.core.map_QMARK_(base)){
386
+ } else {
387
+ throw (new Error("Assert failed: (map? base)"));
388
+ }
389
+
390
+ return cljs.core.atom.cljs$core$IFn$_invoke$arity$1((new datahike.lru.LRUDatomCache(cljs.core.PersistentArrayMap.EMPTY,tailrecursion.priority_map.priority_map(),cljs.core.PersistentArrayMap.EMPTY,(0),(0),threshold)).cljs$cache$CacheProtocol$seed$arity$2(null, base));
391
+ }));
392
+
393
+ (datahike.lru.lru_datom_cache_factory.cljs$lang$maxFixedArity = (1));
394
+
395
+ /** @this {Function} */
396
+ (datahike.lru.lru_datom_cache_factory.cljs$lang$applyTo = (function (seq105593){
397
+ var G__105594 = cljs.core.first(seq105593);
398
+ var seq105593__$1 = cljs.core.next(seq105593);
399
+ var self__5711__auto__ = this;
400
+ return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__105594,seq105593__$1);
401
+ }));
402
+
403
+
404
+ //# sourceMappingURL=datahike.lru.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["datahike/lru.cljc"],"mappings":"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","names":["this__5287__auto__","writer__5288__auto__","opt__5289__auto__","cljs.core/-write","datahike.lru/LRU","datahike.lru/->LRU","key-value","gen-key","key-gen","gen","limit","this","k","v","datahike.lru/assoc-lru","_","cljs.core/-contains-key?","cljs.core/-lookup","nf","writer","opts","cljs.core/-pr-writer","cljs.core/persistent!","lru","temp__5802__auto__","g","cljs.core.dissoc","cljs.core.assoc","G__105575","datahike.lru/cleanup-lru","cljs.core/count","vec__105576","cljs.core.nth","cljs.core/first","datahike.lru/lru","cljs.core/sorted-map","this__44459__auto__","other__44466__auto__","cljs.core._EQ_","cache","elem__44465__auto__","fexpr__105581","fexpr__105582","cljs.core/-count","___44462__auto__","cljs.core/-seq","cljs.core/PROTOCOL_SENTINEL","k__44463__auto__","v__44464__auto__","key__44460__auto__","not-found__44461__auto__","datahike.lru/LRUDatomCache","datahike.lru/->LRUDatomCache","counts","n-total-datoms","tick","datom-limit","item","cljs.core.get","not-found","cljs.core/contains?","tick+","result","vec__105583","vec__105586","n-new-datoms","new-size","c","l","n","s","cljs.core/peek","x","key","base","cljs.core.into","tailrecursion.priority-map/priority-map","p1__105579#","cljs.core.map","cljs.core/PersistentVector","cljs.core/keys","p1__105580#","var_args","args__5732__auto__","len__5726__auto__","i__5727__auto__","argseq__5733__auto__","cljs.core/IndexedSeq","datahike.lru/lru-datom-cache-factory","p__105595","map__105596","cljs.core/--destructure-map","js/Error","seq105593","G__105594","cljs.core/next","self__5711__auto__","threshold","cljs.core/map?","cljs.core.atom"],"sourcesContent":["(ns ^:no-doc datahike.lru\n (:require [#?(:clj clojure.core.cache :cljs cljs.cache) :refer [defcache CacheProtocol]]\n #?(:clj clojure.data.priority-map\n :cljs tailrecursion.priority-map)))\n\n(declare assoc-lru cleanup-lru)\n\n#?(:cljs\n (deftype LRU [key-value gen-key key-gen gen limit]\n IAssociative\n (-assoc [this k v] (assoc-lru this k v))\n (-contains-key? [_ k] (-contains-key? key-value k))\n ILookup\n (-lookup [_ k] (-lookup key-value k nil))\n (-lookup [_ k nf] (-lookup key-value k nf))\n IPrintWithWriter\n (-pr-writer [_ writer opts]\n (-pr-writer (persistent! key-value) writer opts)))\n :clj\n (deftype LRU [^clojure.lang.Associative key-value gen-key key-gen gen limit]\n clojure.lang.ILookup\n (valAt [_ k] (.valAt key-value k))\n (valAt [_ k not-found] (.valAt key-value k not-found))\n clojure.lang.Associative\n (containsKey [_ k] (.containsKey key-value k))\n (entryAt [_ k] (.entryAt key-value k))\n (assoc [this k v] (assoc-lru this k v))))\n\n(defn assoc-lru [^LRU lru k v]\n (let [key-value (.-key-value lru)\n gen-key (.-gen-key lru)\n key-gen (.-key-gen lru)\n gen (.-gen lru)\n limit (.-limit lru)]\n (if-let [g (key-gen k nil)]\n (->LRU key-value\n (-> gen-key\n (dissoc g)\n (assoc gen k))\n (assoc key-gen k gen)\n (inc gen)\n limit)\n (cleanup-lru\n (->LRU (assoc key-value k v)\n (assoc gen-key gen k)\n (assoc key-gen k gen)\n (inc gen)\n limit)))))\n\n(defn cleanup-lru [^LRU lru]\n (if (> (count (.-key-value lru)) (.-limit lru))\n (let [key-value (.-key-value lru)\n gen-key (.-gen-key lru)\n key-gen (.-key-gen lru)\n gen (.-gen lru)\n limit (.-limit lru)\n [g k] (first gen-key)]\n (->LRU (dissoc key-value k)\n (dissoc gen-key g)\n (dissoc key-gen k)\n gen\n limit))\n lru))\n\n(defn lru [limit]\n (->LRU {} (sorted-map) {} 0 limit))\n\n(defcache LRUDatomCache [cache lru counts n-total-datoms tick datom-limit]\n CacheProtocol\n (lookup [_ item]\n (get cache item))\n (lookup [_ item not-found]\n (get cache item not-found))\n (has? [_ item]\n (contains? cache item))\n (hit [_ item]\n (let [tick+ (inc tick)]\n (LRUDatomCache. cache\n (if (contains? cache item)\n (assoc lru item tick+)\n lru)\n counts\n n-total-datoms\n tick+\n datom-limit)))\n (miss [this item result]\n (let [tick+ (inc tick)\n n-new-datoms (count result)\n new-size (+ n-total-datoms n-new-datoms)\n [c l n s] (if (contains? lru item)\n [(dissoc cache item)\n (dissoc lru item)\n (dissoc counts item)\n (- new-size (get counts item))]\n [cache lru counts new-size])\n [c l n s] (loop [c c l l n n s s]\n (if (> s datom-limit)\n (let [k (first (peek lru))]\n (if-let [x (get n k)]\n (recur (dissoc c k)\n (dissoc l k)\n (dissoc n k)\n (- s x))\n [c l n s]))\n [c l n s]))]\n (LRUDatomCache. (assoc c item result)\n (assoc l item tick+)\n (assoc n item n-new-datoms)\n s\n tick+\n datom-limit)))\n (evict [this key]\n (if (contains? cache key)\n (LRUDatomCache. (dissoc cache key)\n (dissoc lru key)\n (dissoc counts key)\n (- n-total-datoms (get counts key))\n (inc tick)\n datom-limit)\n this))\n (seed [_ base]\n (LRUDatomCache. base\n (into #?(:clj (clojure.data.priority-map/priority-map)\n :cljs (tailrecursion.priority-map/priority-map))\n (map #(vector % 0)\n (keys base)))\n (into {}\n (map #(vector % (count (get base %)))\n (keys base)))\n 0\n 0\n datom-limit))\n Object\n (toString [_]\n (str cache \\, \\space lru \\, \\space counts \\, \\space n-total-datoms \\, \\space tick \\, \\space datom-limit)))\n\n(defn lru-datom-cache-factory\n \"Returns an LRU cache with the cache and usage-table initialied to `base` --\n each entry is initialized with the same usage value.\n This function takes an optional `:threshold` argument that defines the maximum number\n of elements in the cache before the LRU semantics apply (default is 32).\"\n [base & {threshold :threshold :or {threshold 32}}]\n {:pre [(number? threshold) (< 0 threshold)\n (map? base)]}\n #?(:clj (atom (clojure.core.cache/seed (LRUDatomCache. {} (clojure.data.priority-map/priority-map) {} 0 0 threshold) base))\n :cljs (atom (cljs.cache/seed (LRUDatomCache. {} (tailrecursion.priority-map/priority-map) {} 0 0 threshold) base))))\n"]}