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,510 @@
1
+ var $CLJS = require("./cljs_env");
2
+ var $jscomp = $CLJS.$jscomp;
3
+ var COMPILED = false;
4
+ require("./cljs.core.js");
5
+ require("./cljs.core.async.impl.protocols.js");
6
+ require("./cljs.core.async.impl.channels.js");
7
+ require("./cljs.core.async.impl.dispatch.js");
8
+ var environ=$CLJS.environ || ($CLJS.environ = {});
9
+ var fress=$CLJS.fress || ($CLJS.fress = {});
10
+ var datahike=$CLJS.datahike || ($CLJS.datahike = {});
11
+ var clojure=$CLJS.clojure || ($CLJS.clojure = {});
12
+ var hasch=$CLJS.hasch || ($CLJS.hasch = {});
13
+ var tailrecursion=$CLJS.tailrecursion || ($CLJS.tailrecursion = {});
14
+ var superv=$CLJS.superv || ($CLJS.superv = {});
15
+ var geheimnis=$CLJS.geheimnis || ($CLJS.geheimnis = {});
16
+ var is=$CLJS.is || ($CLJS.is = {});
17
+ var cljs=$CLJS.cljs || ($CLJS.cljs = {});
18
+ var cljs_node_io=$CLJS.cljs_node_io || ($CLJS.cljs_node_io = {});
19
+ var goog=$CLJS.goog || ($CLJS.goog = {});
20
+ var konserve=$CLJS.konserve || ($CLJS.konserve = {});
21
+ var datalog=$CLJS.datalog || ($CLJS.datalog = {});
22
+ var spec_tools=$CLJS.spec_tools || ($CLJS.spec_tools = {});
23
+ var taoensso=$CLJS.taoensso || ($CLJS.taoensso = {});
24
+ var incognito=$CLJS.incognito || ($CLJS.incognito = {});
25
+ var medley=$CLJS.medley || ($CLJS.medley = {});
26
+ var me=$CLJS.me || ($CLJS.me = {});
27
+
28
+ $CLJS.SHADOW_ENV.setLoaded("cljs.core.async.impl.timers.js");
29
+
30
+ goog.provide('cljs.core.async.impl.timers');
31
+ cljs.core.async.impl.timers.MAX_LEVEL = (15);
32
+ cljs.core.async.impl.timers.P = ((1) / (2));
33
+ cljs.core.async.impl.timers.random_level = (function cljs$core$async$impl$timers$random_level(var_args){
34
+ var G__25961 = arguments.length;
35
+ switch (G__25961) {
36
+ case 0:
37
+ return cljs.core.async.impl.timers.random_level.cljs$core$IFn$_invoke$arity$0();
38
+
39
+ break;
40
+ case 1:
41
+ return cljs.core.async.impl.timers.random_level.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
42
+
43
+ break;
44
+ default:
45
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
46
+
47
+ }
48
+ });
49
+
50
+ (cljs.core.async.impl.timers.random_level.cljs$core$IFn$_invoke$arity$0 = (function (){
51
+ return cljs.core.async.impl.timers.random_level.cljs$core$IFn$_invoke$arity$1((0));
52
+ }));
53
+
54
+ (cljs.core.async.impl.timers.random_level.cljs$core$IFn$_invoke$arity$1 = (function (level){
55
+ while(true){
56
+ if((((Math.random() < cljs.core.async.impl.timers.P)) && ((level < cljs.core.async.impl.timers.MAX_LEVEL)))){
57
+ var G__26054 = (level + (1));
58
+ level = G__26054;
59
+ continue;
60
+ } else {
61
+ return level;
62
+ }
63
+ break;
64
+ }
65
+ }));
66
+
67
+ (cljs.core.async.impl.timers.random_level.cljs$lang$maxFixedArity = 1);
68
+
69
+
70
+ /**
71
+ * @constructor
72
+ * @implements {cljs.core.ISeqable}
73
+ * @implements {cljs.core.IPrintWithWriter}
74
+ */
75
+ cljs.core.async.impl.timers.SkipListNode = (function (key,val,forward){
76
+ this.key = key;
77
+ this.val = val;
78
+ this.forward = forward;
79
+ this.cljs$lang$protocol_mask$partition0$ = 2155872256;
80
+ this.cljs$lang$protocol_mask$partition1$ = 0;
81
+ });
82
+ (cljs.core.async.impl.timers.SkipListNode.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (coll){
83
+ var self__ = this;
84
+ var coll__$1 = this;
85
+ return (new cljs.core.List(null,self__.key,(new cljs.core.List(null,self__.val,null,(1),null)),(2),null));
86
+ }));
87
+
88
+ (cljs.core.async.impl.timers.SkipListNode.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (coll,writer,opts){
89
+ var self__ = this;
90
+ var coll__$1 = this;
91
+ return cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,"["," ","]",opts,coll__$1);
92
+ }));
93
+
94
+ (cljs.core.async.impl.timers.SkipListNode.getBasis = (function (){
95
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"key","key",124488940,null),cljs.core.with_meta(new cljs.core.Symbol(null,"val","val",1769233139,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"mutable","mutable",875778266),true], null)),new cljs.core.Symbol(null,"forward","forward",1083186224,null)], null);
96
+ }));
97
+
98
+ (cljs.core.async.impl.timers.SkipListNode.cljs$lang$type = true);
99
+
100
+ (cljs.core.async.impl.timers.SkipListNode.cljs$lang$ctorStr = "cljs.core.async.impl.timers/SkipListNode");
101
+
102
+ (cljs.core.async.impl.timers.SkipListNode.cljs$lang$ctorPrWriter = (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){
103
+ return cljs.core._write(writer__5288__auto__,"cljs.core.async.impl.timers/SkipListNode");
104
+ }));
105
+
106
+ /**
107
+ * Positional factory function for cljs.core.async.impl.timers/SkipListNode.
108
+ */
109
+ cljs.core.async.impl.timers.__GT_SkipListNode = (function cljs$core$async$impl$timers$__GT_SkipListNode(key,val,forward){
110
+ return (new cljs.core.async.impl.timers.SkipListNode(key,val,forward));
111
+ });
112
+
113
+ cljs.core.async.impl.timers.skip_list_node = (function cljs$core$async$impl$timers$skip_list_node(var_args){
114
+ var G__25986 = arguments.length;
115
+ switch (G__25986) {
116
+ case 1:
117
+ return cljs.core.async.impl.timers.skip_list_node.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
118
+
119
+ break;
120
+ case 3:
121
+ return cljs.core.async.impl.timers.skip_list_node.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
122
+
123
+ break;
124
+ default:
125
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
126
+
127
+ }
128
+ });
129
+
130
+ (cljs.core.async.impl.timers.skip_list_node.cljs$core$IFn$_invoke$arity$1 = (function (level){
131
+ return cljs.core.async.impl.timers.skip_list_node.cljs$core$IFn$_invoke$arity$3(null,null,level);
132
+ }));
133
+
134
+ (cljs.core.async.impl.timers.skip_list_node.cljs$core$IFn$_invoke$arity$3 = (function (k,v,level){
135
+ var arr = (new Array((level + (1))));
136
+ var i_26064 = (0);
137
+ while(true){
138
+ if((i_26064 < arr.length)){
139
+ (arr[i_26064] = null);
140
+
141
+ var G__26065 = (i_26064 + (1));
142
+ i_26064 = G__26065;
143
+ continue;
144
+ } else {
145
+ }
146
+ break;
147
+ }
148
+
149
+ return (new cljs.core.async.impl.timers.SkipListNode(k,v,arr));
150
+ }));
151
+
152
+ (cljs.core.async.impl.timers.skip_list_node.cljs$lang$maxFixedArity = 3);
153
+
154
+ cljs.core.async.impl.timers.least_greater_node = (function cljs$core$async$impl$timers$least_greater_node(var_args){
155
+ var G__25988 = arguments.length;
156
+ switch (G__25988) {
157
+ case 3:
158
+ return cljs.core.async.impl.timers.least_greater_node.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
159
+
160
+ break;
161
+ case 4:
162
+ return cljs.core.async.impl.timers.least_greater_node.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));
163
+
164
+ break;
165
+ default:
166
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
167
+
168
+ }
169
+ });
170
+
171
+ (cljs.core.async.impl.timers.least_greater_node.cljs$core$IFn$_invoke$arity$3 = (function (x,k,level){
172
+ return cljs.core.async.impl.timers.least_greater_node.cljs$core$IFn$_invoke$arity$4(x,k,level,null);
173
+ }));
174
+
175
+ (cljs.core.async.impl.timers.least_greater_node.cljs$core$IFn$_invoke$arity$4 = (function (x,k,level,update){
176
+ while(true){
177
+ if((!((level < (0))))){
178
+ var x__$1 = (function (){var x__$1 = x;
179
+ while(true){
180
+ var temp__5802__auto__ = (((level < x__$1.forward.length))?(x__$1.forward[level]):null);
181
+ if(cljs.core.truth_(temp__5802__auto__)){
182
+ var x_SINGLEQUOTE_ = temp__5802__auto__;
183
+ if((x_SINGLEQUOTE_.key < k)){
184
+ var G__26071 = x_SINGLEQUOTE_;
185
+ x__$1 = G__26071;
186
+ continue;
187
+ } else {
188
+ return x__$1;
189
+ }
190
+ } else {
191
+ return x__$1;
192
+ }
193
+ break;
194
+ }
195
+ })();
196
+ if((update == null)){
197
+ } else {
198
+ (update[level] = x__$1);
199
+ }
200
+
201
+ var G__26072 = x__$1;
202
+ var G__26073 = k;
203
+ var G__26074 = (level - (1));
204
+ var G__26075 = update;
205
+ x = G__26072;
206
+ k = G__26073;
207
+ level = G__26074;
208
+ update = G__26075;
209
+ continue;
210
+ } else {
211
+ return x;
212
+ }
213
+ break;
214
+ }
215
+ }));
216
+
217
+ (cljs.core.async.impl.timers.least_greater_node.cljs$lang$maxFixedArity = 4);
218
+
219
+
220
+ /**
221
+ * @constructor
222
+ * @implements {cljs.core.ISeqable}
223
+ * @implements {cljs.core.IPrintWithWriter}
224
+ */
225
+ cljs.core.async.impl.timers.SkipList = (function (header,level){
226
+ this.header = header;
227
+ this.level = level;
228
+ this.cljs$lang$protocol_mask$partition0$ = 2155872256;
229
+ this.cljs$lang$protocol_mask$partition1$ = 0;
230
+ });
231
+ (cljs.core.async.impl.timers.SkipList.prototype.put = (function (k,v){
232
+ var self__ = this;
233
+ var coll = this;
234
+ var update = (new Array(cljs.core.async.impl.timers.MAX_LEVEL));
235
+ var x = cljs.core.async.impl.timers.least_greater_node.cljs$core$IFn$_invoke$arity$4(self__.header,k,self__.level,update);
236
+ var x__$1 = (x.forward[(0)]);
237
+ if((((!((x__$1 == null)))) && ((x__$1.key === k)))){
238
+ return (x__$1.val = v);
239
+ } else {
240
+ var new_level = cljs.core.async.impl.timers.random_level.cljs$core$IFn$_invoke$arity$0();
241
+ if((new_level > self__.level)){
242
+ var i_26099 = (self__.level + (1));
243
+ while(true){
244
+ if((i_26099 <= (new_level + (1)))){
245
+ (update[i_26099] = self__.header);
246
+
247
+ var G__26100 = (i_26099 + (1));
248
+ i_26099 = G__26100;
249
+ continue;
250
+ } else {
251
+ }
252
+ break;
253
+ }
254
+
255
+ (self__.level = new_level);
256
+ } else {
257
+ }
258
+
259
+ var x__$2 = cljs.core.async.impl.timers.skip_list_node.cljs$core$IFn$_invoke$arity$3(k,v,(new Array(new_level)));
260
+ var i = (0);
261
+ while(true){
262
+ if((i <= self__.level)){
263
+ var links_26105 = (update[i]).forward;
264
+ if((i < x__$2.forward.length)){
265
+ (x__$2.forward[i] = (links_26105[i]));
266
+ } else {
267
+ x__$2.forward.push((((i < links_26105.length))?(links_26105[i]):null));
268
+ }
269
+
270
+ if((i < links_26105.length)){
271
+ (links_26105[i] = x__$2);
272
+ } else {
273
+ links_26105.push(x__$2);
274
+ }
275
+
276
+ var G__26108 = (i + (1));
277
+ i = G__26108;
278
+ continue;
279
+ } else {
280
+ return null;
281
+ }
282
+ break;
283
+ }
284
+ }
285
+ }));
286
+
287
+ (cljs.core.async.impl.timers.SkipList.prototype.remove = (function (k){
288
+ var self__ = this;
289
+ var coll = this;
290
+ var update = (new Array(cljs.core.async.impl.timers.MAX_LEVEL));
291
+ var x = cljs.core.async.impl.timers.least_greater_node.cljs$core$IFn$_invoke$arity$4(self__.header,k,self__.level,update);
292
+ var x__$1 = (((x.forward.length === (0)))?null:(x.forward[(0)]));
293
+ if((((!((x__$1 == null)))) && ((x__$1.key === k)))){
294
+ var i_26111 = (0);
295
+ while(true){
296
+ if((i_26111 <= self__.level)){
297
+ var links_26112 = (update[i_26111]).forward;
298
+ if((x__$1 === (((i_26111 < links_26112.length))?(links_26112[i_26111]):null))){
299
+ (links_26112[i_26111] = (x__$1.forward[i_26111]));
300
+
301
+ var G__26113 = (i_26111 + (1));
302
+ i_26111 = G__26113;
303
+ continue;
304
+ } else {
305
+ var G__26114 = (i_26111 + (1));
306
+ i_26111 = G__26114;
307
+ continue;
308
+ }
309
+ } else {
310
+ }
311
+ break;
312
+ }
313
+
314
+ while(true){
315
+ if(((((((0) < self__.level)) && ((self__.level < self__.header.forward.length)))) && (((self__.header.forward[self__.level]) == null)))){
316
+ (self__.level = (self__.level - (1)));
317
+
318
+ continue;
319
+ } else {
320
+ return null;
321
+ }
322
+ break;
323
+ }
324
+ } else {
325
+ return null;
326
+ }
327
+ }));
328
+
329
+ (cljs.core.async.impl.timers.SkipList.prototype.ceilingEntry = (function (k){
330
+ var self__ = this;
331
+ var coll = this;
332
+ var x = self__.header;
333
+ var level__$1 = self__.level;
334
+ while(true){
335
+ if((!((level__$1 < (0))))){
336
+ var nx = (function (){var x__$1 = x;
337
+ while(true){
338
+ var x_SINGLEQUOTE_ = (((level__$1 < x__$1.forward.length))?(x__$1.forward[level__$1]):null);
339
+ if((!((x_SINGLEQUOTE_ == null)))){
340
+ if((x_SINGLEQUOTE_.key > k)){
341
+ return x__$1;
342
+ } else {
343
+ var G__26117 = x_SINGLEQUOTE_;
344
+ x__$1 = G__26117;
345
+ continue;
346
+ }
347
+ } else {
348
+ if((level__$1 === (0))){
349
+ return x__$1;
350
+ } else {
351
+ return null;
352
+ }
353
+ }
354
+ break;
355
+ }
356
+ })();
357
+ if(cljs.core.truth_(nx)){
358
+ var G__26118 = nx;
359
+ var G__26119 = (level__$1 - (1));
360
+ x = G__26118;
361
+ level__$1 = G__26119;
362
+ continue;
363
+ } else {
364
+ var G__26120 = x;
365
+ var G__26121 = (level__$1 - (1));
366
+ x = G__26120;
367
+ level__$1 = G__26121;
368
+ continue;
369
+ }
370
+ } else {
371
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x.key,k)){
372
+ return x;
373
+ } else {
374
+ return (x.forward[(0)]);
375
+ }
376
+ }
377
+ break;
378
+ }
379
+ }));
380
+
381
+ (cljs.core.async.impl.timers.SkipList.prototype.floorEntry = (function (k){
382
+ var self__ = this;
383
+ var coll = this;
384
+ var x = self__.header;
385
+ var level__$1 = self__.level;
386
+ while(true){
387
+ if((!((level__$1 < (0))))){
388
+ var nx = (function (){var x__$1 = x;
389
+ while(true){
390
+ var x_SINGLEQUOTE_ = (((level__$1 < x__$1.forward.length))?(x__$1.forward[level__$1]):null);
391
+ if((!((x_SINGLEQUOTE_ == null)))){
392
+ if((x_SINGLEQUOTE_.key > k)){
393
+ return x__$1;
394
+ } else {
395
+ var G__26125 = x_SINGLEQUOTE_;
396
+ x__$1 = G__26125;
397
+ continue;
398
+ }
399
+ } else {
400
+ if((level__$1 === (0))){
401
+ return x__$1;
402
+ } else {
403
+ return null;
404
+ }
405
+ }
406
+ break;
407
+ }
408
+ })();
409
+ if(cljs.core.truth_(nx)){
410
+ var G__26127 = nx;
411
+ var G__26128 = (level__$1 - (1));
412
+ x = G__26127;
413
+ level__$1 = G__26128;
414
+ continue;
415
+ } else {
416
+ var G__26129 = x;
417
+ var G__26130 = (level__$1 - (1));
418
+ x = G__26129;
419
+ level__$1 = G__26130;
420
+ continue;
421
+ }
422
+ } else {
423
+ if((x === self__.header)){
424
+ return null;
425
+ } else {
426
+ return x;
427
+ }
428
+ }
429
+ break;
430
+ }
431
+ }));
432
+
433
+ (cljs.core.async.impl.timers.SkipList.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (coll){
434
+ var self__ = this;
435
+ var coll__$1 = this;
436
+ var iter = (function cljs$core$async$impl$timers$iter(node){
437
+ return (new cljs.core.LazySeq(null,(function (){
438
+ if((node == null)){
439
+ return null;
440
+ } else {
441
+ return cljs.core.cons(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [node.key,node.val], null),cljs$core$async$impl$timers$iter((node.forward[(0)])));
442
+ }
443
+ }),null,null));
444
+ });
445
+ return iter((self__.header.forward[(0)]));
446
+ }));
447
+
448
+ (cljs.core.async.impl.timers.SkipList.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (coll,writer,opts){
449
+ var self__ = this;
450
+ var coll__$1 = this;
451
+ var pr_pair = (function (keyval){
452
+ return cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,""," ","",opts,keyval);
453
+ });
454
+ return cljs.core.pr_sequential_writer(writer,pr_pair,"{",", ","}",opts,coll__$1);
455
+ }));
456
+
457
+ (cljs.core.async.impl.timers.SkipList.getBasis = (function (){
458
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"header","header",1759972661,null),cljs.core.with_meta(new cljs.core.Symbol(null,"level","level",-1363938217,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"mutable","mutable",875778266),true], null))], null);
459
+ }));
460
+
461
+ (cljs.core.async.impl.timers.SkipList.cljs$lang$type = true);
462
+
463
+ (cljs.core.async.impl.timers.SkipList.cljs$lang$ctorStr = "cljs.core.async.impl.timers/SkipList");
464
+
465
+ (cljs.core.async.impl.timers.SkipList.cljs$lang$ctorPrWriter = (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){
466
+ return cljs.core._write(writer__5288__auto__,"cljs.core.async.impl.timers/SkipList");
467
+ }));
468
+
469
+ /**
470
+ * Positional factory function for cljs.core.async.impl.timers/SkipList.
471
+ */
472
+ cljs.core.async.impl.timers.__GT_SkipList = (function cljs$core$async$impl$timers$__GT_SkipList(header,level){
473
+ return (new cljs.core.async.impl.timers.SkipList(header,level));
474
+ });
475
+
476
+ cljs.core.async.impl.timers.skip_list = (function cljs$core$async$impl$timers$skip_list(){
477
+ return (new cljs.core.async.impl.timers.SkipList(cljs.core.async.impl.timers.skip_list_node.cljs$core$IFn$_invoke$arity$1((0)),(0)));
478
+ });
479
+ cljs.core.async.impl.timers.timeouts_map = cljs.core.async.impl.timers.skip_list();
480
+ cljs.core.async.impl.timers.TIMEOUT_RESOLUTION_MS = (10);
481
+ /**
482
+ * returns a channel that will close after msecs
483
+ */
484
+ cljs.core.async.impl.timers.timeout = (function cljs$core$async$impl$timers$timeout(msecs){
485
+ var timeout = ((new Date()).valueOf() + msecs);
486
+ var me__$1 = cljs.core.async.impl.timers.timeouts_map.ceilingEntry(timeout);
487
+ var or__5002__auto__ = (cljs.core.truth_((function (){var and__5000__auto__ = me__$1;
488
+ if(cljs.core.truth_(and__5000__auto__)){
489
+ return (me__$1.key < (timeout + cljs.core.async.impl.timers.TIMEOUT_RESOLUTION_MS));
490
+ } else {
491
+ return and__5000__auto__;
492
+ }
493
+ })())?me__$1.val:null);
494
+ if(cljs.core.truth_(or__5002__auto__)){
495
+ return or__5002__auto__;
496
+ } else {
497
+ var timeout_channel = cljs.core.async.impl.channels.chan.cljs$core$IFn$_invoke$arity$1(null);
498
+ cljs.core.async.impl.timers.timeouts_map.put(timeout,timeout_channel);
499
+
500
+ cljs.core.async.impl.dispatch.queue_delay((function (){
501
+ cljs.core.async.impl.timers.timeouts_map.remove(timeout);
502
+
503
+ return cljs.core.async.impl.protocols.close_BANG_(timeout_channel);
504
+ }),msecs);
505
+
506
+ return timeout_channel;
507
+ }
508
+ });
509
+
510
+ //# sourceMappingURL=cljs.core.async.impl.timers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["cljs/core/async/impl/timers.cljs"],"mappings":"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","names":["cljs.core.async.impl.timers/MAX_LEVEL","cljs.core.async.impl.timers/P","var_args","G__25961","cljs.core.async.impl.timers/random-level","js/Error","cljs.core.async.impl.timers.random_level","level","js/Math","this__5287__auto__","writer__5288__auto__","opt__5289__auto__","cljs.core/-write","cljs.core.async.impl.timers/SkipListNode","cljs.core.async.impl.timers/->SkipListNode","key","val","forward","coll","cljs.core/List","writer","opts","cljs.core/pr-sequential-writer","cljs.core/pr-writer","G__25986","cljs.core.async.impl.timers/skip-list-node","cljs.core.async.impl.timers.skip_list_node","k","v","arr","js/Array","i","G__25988","cljs.core.async.impl.timers/least-greater-node","x","cljs.core.async.impl.timers.least_greater_node","update","temp__5802__auto__","x'","cljs.core.async.impl.timers/SkipList","cljs.core.async.impl.timers/->SkipList","header","new-level","links","nx","cljs.core._EQ_","node","cljs.core/LazySeq","cljs.core/cons","iter","pr-pair","keyval","cljs.core.async.impl.timers/skip-list","cljs.core.async.impl.timers/timeouts-map","cljs.core.async.impl.timers/TIMEOUT_RESOLUTION_MS","cljs.core.async.impl.timers/timeout","msecs","timeout","js/Date","me","or__5002__auto__","and__5000__auto__","timeout-channel","cljs.core.async.impl.channels.chan","cljs.core.async.impl.dispatch/queue-delay","cljs.core.async.impl.protocols/close!"],"sourcesContent":[";; Copyright (c) Rich Hickey and contributors. All rights reserved.\n;; The use and distribution terms for this software are covered by the\n;; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)\n;; which can be found in the file epl-v10.html at the root of this distribution.\n;; By using this software in any fashion, you are agreeing to be bound by\n;; the terms of this license.\n;; You must not remove this notice, or any other, from this software.\n\n(ns cljs.core.async.impl.timers\n (:require [cljs.core.async.impl.protocols :as impl]\n [cljs.core.async.impl.channels :as channels]\n [cljs.core.async.impl.dispatch :as dispatch]))\n\n(def MAX_LEVEL 15) ;; 16 levels\n(def P (/ 1 2))\n\n(defn random-level\n ([] (random-level 0))\n ([level]\n (if (and (< (.random js/Math) P)\n (< level MAX_LEVEL))\n (recur (inc level))\n level)))\n\n(deftype SkipListNode [key ^:mutable val forward]\n ISeqable\n (-seq [coll]\n (list key val))\n\n IPrintWithWriter\n (-pr-writer [coll writer opts]\n (pr-sequential-writer writer pr-writer \"[\" \" \" \"]\" opts coll)))\n\n(defn skip-list-node\n ([level] (skip-list-node nil nil level))\n ([k v level]\n (let [arr (make-array (inc level))]\n (loop [i 0]\n (when (< i (alength arr))\n (aset arr i nil)\n (recur (inc i))))\n (SkipListNode. k v arr))))\n\n(defn least-greater-node\n ([x k level] (least-greater-node x k level nil))\n ([x k level update]\n (if-not (neg? level)\n (let [x (loop [x x]\n (if-let [x' (when (< level (alength (.-forward x)))\n (aget (.-forward x) level))]\n (if (< (.-key x') k)\n (recur x')\n x)\n x))]\n (when-not (nil? update)\n (aset update level x))\n (recur x k (dec level) update))\n x)))\n\n(deftype SkipList [header ^:mutable level]\n Object\n (put [coll k v]\n (let [update (make-array MAX_LEVEL)\n x (least-greater-node header k level update)\n x (aget (.-forward x) 0)]\n (if (and (not (nil? x)) (== (.-key x) k))\n (set! (.-val x) v)\n (let [new-level (random-level)]\n (when (> new-level level)\n (loop [i (inc level)]\n (when (<= i (inc new-level))\n (aset update i header)\n (recur (inc i))))\n (set! level new-level))\n (let [x (skip-list-node k v (make-array new-level))]\n (loop [i 0]\n (when (<= i level)\n (let [links (.-forward (aget update i))]\n (if (< i (alength (.-forward x)))\n (aset (.-forward x) i (aget links i))\n (.push (.-forward x) (when (< i (alength links))\n (aget links i))))\n (if (< i (alength links))\n (aset links i x)\n (.push links x)))\n (recur (inc i)))))))))\n\n (remove [coll k]\n (let [update (make-array MAX_LEVEL)\n x (least-greater-node header k level update)\n x (when-not (zero? (alength (.-forward x)))\n (aget (.-forward x) 0))]\n (when (and (not (nil? x)) (== (.-key x) k))\n (loop [i 0]\n (when (<= i level)\n (let [links (.-forward (aget update i))]\n (if (identical? x (when (< i (alength links))\n (aget links i)))\n (do\n (aset links i (aget (.-forward x) i))\n (recur (inc i)))\n (recur (inc i))))))\n (while (and (< 0 level (alength (.-forward header)))\n (nil? (aget (.-forward header) level)))\n (set! level (dec level))))))\n\n (ceilingEntry [coll k]\n (loop [x header level level]\n (if-not (neg? level)\n (let [nx (loop [x x]\n (let [x' (when (< level (alength (.-forward x)))\n (aget (.-forward x) level))]\n (if-not (nil? x')\n (if (> (.-key x') k)\n x\n (recur x'))\n (when (zero? level)\n x))))]\n (if nx\n (recur nx (dec level))\n (recur x (dec level))))\n (if (= (.-key x) k)\n x\n (aget (.-forward x) 0)))))\n\n (floorEntry [coll k]\n (loop [x header level level]\n (if-not (neg? level)\n (let [nx (loop [x x]\n (let [x' (when (< level (alength (.-forward x)))\n (aget (.-forward x) level))]\n (if-not (nil? x')\n (if (> (.-key x') k)\n x\n (recur x'))\n (when (zero? level)\n x))))]\n (if nx\n (recur nx (dec level))\n (recur x (dec level))))\n (when-not (identical? x header)\n x))))\n\n ISeqable\n (-seq [coll]\n (letfn [(iter [node]\n (lazy-seq\n (when-not (nil? node)\n (cons [(.-key node) (.-val node)]\n (iter (aget (.-forward node) 0))))))]\n (iter (aget (.-forward header) 0))))\n\n IPrintWithWriter\n (-pr-writer [coll writer opts]\n (let [pr-pair (fn [keyval]\n (pr-sequential-writer writer pr-writer \"\" \" \" \"\" opts keyval))]\n (pr-sequential-writer writer pr-pair \"{\" \", \" \"}\" opts coll))))\n\n(defn skip-list []\n (SkipList. (skip-list-node 0) 0))\n\n(def timeouts-map (skip-list))\n\n(def TIMEOUT_RESOLUTION_MS 10)\n\n(defn timeout\n \"returns a channel that will close after msecs\"\n [msecs]\n (let [timeout (+ (.valueOf (js/Date.)) msecs)\n me (.ceilingEntry timeouts-map timeout)]\n (or (when (and me (< (.-key me) (+ timeout TIMEOUT_RESOLUTION_MS)))\n (.-val me))\n (let [timeout-channel (channels/chan nil)]\n (.put timeouts-map timeout timeout-channel)\n (dispatch/queue-delay\n (fn []\n (.remove timeouts-map timeout)\n (impl/close! timeout-channel))\n msecs)\n timeout-channel))))\n"],"x_google_ignoreList":[0]}