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,362 @@
1
+ var $CLJS = require("./cljs_env");
2
+ var $jscomp = $CLJS.$jscomp;
3
+ var COMPILED = false;
4
+ require("./cljs.core.js");
5
+ require("./cljs.analyzer.api.js");
6
+ require("./cljs.spec.alpha.js");
7
+ require("./spec_tools.form.js");
8
+ require("./clojure.walk.js");
9
+ var environ=$CLJS.environ || ($CLJS.environ = {});
10
+ var fress=$CLJS.fress || ($CLJS.fress = {});
11
+ var datahike=$CLJS.datahike || ($CLJS.datahike = {});
12
+ var clojure=$CLJS.clojure || ($CLJS.clojure = {});
13
+ var hasch=$CLJS.hasch || ($CLJS.hasch = {});
14
+ var tailrecursion=$CLJS.tailrecursion || ($CLJS.tailrecursion = {});
15
+ var superv=$CLJS.superv || ($CLJS.superv = {});
16
+ var geheimnis=$CLJS.geheimnis || ($CLJS.geheimnis = {});
17
+ var is=$CLJS.is || ($CLJS.is = {});
18
+ var cljs=$CLJS.cljs || ($CLJS.cljs = {});
19
+ var cljs_node_io=$CLJS.cljs_node_io || ($CLJS.cljs_node_io = {});
20
+ var goog=$CLJS.goog || ($CLJS.goog = {});
21
+ var konserve=$CLJS.konserve || ($CLJS.konserve = {});
22
+ var datalog=$CLJS.datalog || ($CLJS.datalog = {});
23
+ var spec_tools=$CLJS.spec_tools || ($CLJS.spec_tools = {});
24
+ var taoensso=$CLJS.taoensso || ($CLJS.taoensso = {});
25
+ var incognito=$CLJS.incognito || ($CLJS.incognito = {});
26
+ var medley=$CLJS.medley || ($CLJS.medley = {});
27
+ var me=$CLJS.me || ($CLJS.me = {});
28
+
29
+ $CLJS.SHADOW_ENV.setLoaded("spec_tools.impl.js");
30
+
31
+ goog.provide('spec_tools.impl');
32
+ spec_tools.impl.cljs_sym = (function spec_tools$impl$cljs_sym(x){
33
+ if(cljs.core.map_QMARK_(x)){
34
+ return new cljs.core.Keyword(null,"name","name",1843675177).cljs$core$IFn$_invoke$arity$1(x);
35
+ } else {
36
+ return x;
37
+ }
38
+ });
39
+ spec_tools.impl.clj_sym = (function spec_tools$impl$clj_sym(x){
40
+ if(cljs.core.var_QMARK_(x)){
41
+ var v = x;
42
+ return cljs.core.symbol.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(v.ns().name()),cljs.core.str.cljs$core$IFn$_invoke$arity$1(v.sym()));
43
+ } else {
44
+ return x;
45
+ }
46
+ });
47
+ spec_tools.impl.__GT_sym = (function spec_tools$impl$__GT_sym(x){
48
+ return spec_tools.impl.cljs_sym(x);
49
+ });
50
+ spec_tools.impl.unfn = (function spec_tools$impl$unfn(cljs_QMARK_,expr){
51
+ if(((cljs.core.seq_QMARK_(expr)) && ((((cljs.core.first(expr) instanceof cljs.core.Symbol)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("fn*",cljs.core.name(cljs.core.first(expr)))))))){
52
+ var vec__125291 = cljs.core.rest(expr);
53
+ var seq__125292 = cljs.core.seq(vec__125291);
54
+ var first__125293 = cljs.core.first(seq__125292);
55
+ var seq__125292__$1 = cljs.core.next(seq__125292);
56
+ var vec__125294 = first__125293;
57
+ var s = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__125294,(0),null);
58
+ var form = seq__125292__$1;
59
+ return cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(clojure.walk.postwalk_replace(cljs.core.PersistentArrayMap.createAsIfByAssoc([s,new cljs.core.Symbol(null,"%","%",-950237169,null)]),form),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"%","%",-950237169,null)], null),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(cljs.core.truth_(cljs_QMARK_)?new cljs.core.Symbol("cljs.core","fn","cljs.core/fn",-1065745098,null):new cljs.core.Symbol("clojure.core","fn","clojure.core/fn",-980152636,null))], 0));
60
+ } else {
61
+ return expr;
62
+ }
63
+ });
64
+ spec_tools.impl.polish = (function spec_tools$impl$polish(x){
65
+ if(cljs.core.seq_QMARK_(x)){
66
+ return cljs.core.flatten(cljs.core.keep.cljs$core$IFn$_invoke$arity$2(spec_tools.impl.polish,x));
67
+ } else {
68
+ if((x instanceof cljs.core.Symbol)){
69
+ return null;
70
+ } else {
71
+ return x;
72
+
73
+ }
74
+ }
75
+ });
76
+ spec_tools.impl.polish_un = (function spec_tools$impl$polish_un(x){
77
+ var G__125321 = x;
78
+ var G__125321__$1 = (((G__125321 == null))?null:spec_tools.impl.polish(G__125321));
79
+ var G__125321__$2 = (((G__125321__$1 == null))?null:cljs.core.name(G__125321__$1));
80
+ if((G__125321__$2 == null)){
81
+ return null;
82
+ } else {
83
+ return cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(G__125321__$2);
84
+ }
85
+ });
86
+ spec_tools.impl.un_key = (function spec_tools$impl$un_key(x){
87
+ var G__125334 = x;
88
+ var G__125334__$1 = (((G__125334 == null))?null:cljs.core.name(G__125334));
89
+ if((G__125334__$1 == null)){
90
+ return null;
91
+ } else {
92
+ return cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(G__125334__$1);
93
+ }
94
+ });
95
+ spec_tools.impl.with_key__GT_spec = (function spec_tools$impl$with_key__GT_spec(p__125344){
96
+ var map__125345 = p__125344;
97
+ var map__125345__$1 = cljs.core.__destructure_map(map__125345);
98
+ var data = map__125345__$1;
99
+ var req = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__125345__$1,new cljs.core.Keyword(null,"req","req",-326448303));
100
+ var req_un = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__125345__$1,new cljs.core.Keyword(null,"req-un","req-un",1074571008));
101
+ var opt = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__125345__$1,new cljs.core.Keyword(null,"opt","opt",-794706369));
102
+ var opt_un = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__125345__$1,new cljs.core.Keyword(null,"opt-un","opt-un",883442496));
103
+ var key__GT_spec = cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(cljs.core.identity,cljs.core.identity),cljs.core.concat.cljs$core$IFn$_invoke$arity$2(opt,req)));
104
+ var un_key__GT_spec = cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.juxt.cljs$core$IFn$_invoke$arity$2(spec_tools.impl.un_key,cljs.core.identity),cljs.core.concat.cljs$core$IFn$_invoke$arity$2(opt_un,req_un)));
105
+ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(data,new cljs.core.Keyword(null,"key->spec","key->spec",1088543019),cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([key__GT_spec,un_key__GT_spec], 0)));
106
+ });
107
+ spec_tools.impl.with_real_keys = (function spec_tools$impl$with_real_keys(p__125361){
108
+ var map__125364 = p__125361;
109
+ var map__125364__$1 = cljs.core.__destructure_map(map__125364);
110
+ var data = map__125364__$1;
111
+ var req_un = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__125364__$1,new cljs.core.Keyword(null,"req-un","req-un",1074571008));
112
+ var opt_un = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__125364__$1,new cljs.core.Keyword(null,"opt-un","opt-un",883442496));
113
+ var G__125366 = data;
114
+ var G__125366__$1 = (cljs.core.truth_(req_un)?cljs.core.update.cljs$core$IFn$_invoke$arity$3(G__125366,new cljs.core.Keyword(null,"req-un","req-un",1074571008),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.core.mapv,spec_tools.impl.un_key)):G__125366);
115
+ if(cljs.core.truth_(opt_un)){
116
+ return cljs.core.update.cljs$core$IFn$_invoke$arity$3(G__125366__$1,new cljs.core.Keyword(null,"opt-un","opt-un",883442496),cljs.core.partial.cljs$core$IFn$_invoke$arity$2(cljs.core.mapv,spec_tools.impl.un_key));
117
+ } else {
118
+ return G__125366__$1;
119
+ }
120
+ });
121
+ spec_tools.impl.parse_keys = (function spec_tools$impl$parse_keys(form){
122
+ var m = (function (){var G__125405 = form;
123
+ var G__125405__$1 = (((G__125405 == null))?null:cljs.core.rest(G__125405));
124
+ if((G__125405__$1 == null)){
125
+ return null;
126
+ } else {
127
+ return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,G__125405__$1);
128
+ }
129
+ })();
130
+ var G__125407 = m;
131
+ var G__125407__$1 = (cljs.core.truth_(new cljs.core.Keyword(null,"req","req",-326448303).cljs$core$IFn$_invoke$arity$1(m))?cljs.core.update.cljs$core$IFn$_invoke$arity$3(G__125407,new cljs.core.Keyword(null,"req","req",-326448303),(function (p1__125378_SHARP_){
132
+ return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.keep.cljs$core$IFn$_invoke$arity$2(spec_tools.impl.polish,cljs.core.flatten(p1__125378_SHARP_)));
133
+ })):G__125407);
134
+ var G__125407__$2 = (cljs.core.truth_(new cljs.core.Keyword(null,"req-un","req-un",1074571008).cljs$core$IFn$_invoke$arity$1(m))?cljs.core.update.cljs$core$IFn$_invoke$arity$3(G__125407__$1,new cljs.core.Keyword(null,"req-un","req-un",1074571008),(function (p1__125388_SHARP_){
135
+ return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.keep.cljs$core$IFn$_invoke$arity$2(spec_tools.impl.polish,cljs.core.flatten(p1__125388_SHARP_)));
136
+ })):G__125407__$1);
137
+ var G__125407__$3 = (cljs.core.truth_(new cljs.core.Keyword(null,"opt-un","opt-un",883442496).cljs$core$IFn$_invoke$arity$1(m))?cljs.core.update.cljs$core$IFn$_invoke$arity$3(G__125407__$2,new cljs.core.Keyword(null,"opt-un","opt-un",883442496),(function (p1__125389_SHARP_){
138
+ return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.keep.cljs$core$IFn$_invoke$arity$2(spec_tools.impl.polish,p1__125389_SHARP_));
139
+ })):G__125407__$2);
140
+ return spec_tools.impl.with_real_keys(spec_tools.impl.with_key__GT_spec(G__125407__$3));
141
+
142
+ });
143
+ spec_tools.impl.extract_keys = (function spec_tools$impl$extract_keys(form){
144
+ var map__125410 = (function (){var G__125411 = form;
145
+ var G__125411__$1 = (((G__125411 == null))?null:cljs.core.rest(G__125411));
146
+ if((G__125411__$1 == null)){
147
+ return null;
148
+ } else {
149
+ return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,G__125411__$1);
150
+ }
151
+ })();
152
+ var map__125410__$1 = cljs.core.__destructure_map(map__125410);
153
+ var req = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__125410__$1,new cljs.core.Keyword(null,"req","req",-326448303));
154
+ var opt = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__125410__$1,new cljs.core.Keyword(null,"opt","opt",-794706369));
155
+ var req_un = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__125410__$1,new cljs.core.Keyword(null,"req-un","req-un",1074571008));
156
+ var opt_un = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__125410__$1,new cljs.core.Keyword(null,"opt-un","opt-un",883442496));
157
+ return cljs.core.flatten(cljs.core.map.cljs$core$IFn$_invoke$arity$2(spec_tools.impl.polish,cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic(req,opt,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([req_un,opt_un], 0))));
158
+ });
159
+ spec_tools.impl.extract_pred_and_info = (function spec_tools$impl$extract_pred_and_info(x){
160
+ if(cljs.core.map_QMARK_(x)){
161
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"spec","spec",347520401).cljs$core$IFn$_invoke$arity$1(x),cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(x,new cljs.core.Keyword(null,"spec","spec",347520401))], null);
162
+ } else {
163
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [x,cljs.core.PersistentArrayMap.EMPTY], null);
164
+ }
165
+ });
166
+ spec_tools.impl.strip_fn_if_needed = (function spec_tools$impl$strip_fn_if_needed(form){
167
+ var head = cljs.core.first(form);
168
+ if(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(form),(3))) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(head,new cljs.core.Symbol("cljs.core","fn","cljs.core/fn",-1065745098,null))))){
169
+ return cljs.core.nth.cljs$core$IFn$_invoke$arity$2(form,(2));
170
+ } else {
171
+ return form;
172
+ }
173
+ });
174
+ spec_tools.impl.normalize_symbol = (function spec_tools$impl$normalize_symbol(kw){
175
+ var G__125421 = (function (){var and__5000__auto__ = (kw instanceof cljs.core.Symbol);
176
+ if(and__5000__auto__){
177
+ return cljs.core.namespace(kw);
178
+ } else {
179
+ return and__5000__auto__;
180
+ }
181
+ })();
182
+ switch (G__125421) {
183
+ case "spec-tools.spec":
184
+ return cljs.core.symbol.cljs$core$IFn$_invoke$arity$2("clojure.core",cljs.core.name(kw));
185
+
186
+ break;
187
+ case "cljs.core":
188
+ return cljs.core.symbol.cljs$core$IFn$_invoke$arity$2("clojure.core",cljs.core.name(kw));
189
+
190
+ break;
191
+ case "cljs.spec.alpha":
192
+ return cljs.core.symbol.cljs$core$IFn$_invoke$arity$2("clojure.spec.alpha",cljs.core.name(kw));
193
+
194
+ break;
195
+ default:
196
+ return kw;
197
+
198
+ }
199
+ });
200
+ spec_tools.impl.extract_form = (function spec_tools$impl$extract_form(spec){
201
+ if(cljs.core.seq_QMARK_(spec)){
202
+ return spec;
203
+ } else {
204
+ return cljs.spec.alpha.form(spec);
205
+ }
206
+ });
207
+ spec_tools.impl.qualified_name = (function spec_tools$impl$qualified_name(key){
208
+ if((key instanceof cljs.core.Keyword)){
209
+ var temp__5802__auto__ = cljs.core.namespace(key);
210
+ if(cljs.core.truth_(temp__5802__auto__)){
211
+ var nn = temp__5802__auto__;
212
+ return [nn,"/",cljs.core.name(key)].join('');
213
+ } else {
214
+ return cljs.core.name(key);
215
+ }
216
+ } else {
217
+ return key;
218
+ }
219
+ });
220
+ spec_tools.impl.nilable_spec_QMARK_ = (function spec_tools$impl$nilable_spec_QMARK_(spec){
221
+ var form = (function (){var and__5000__auto__ = spec;
222
+ if(cljs.core.truth_(and__5000__auto__)){
223
+ return cljs.spec.alpha.form(spec);
224
+ } else {
225
+ return and__5000__auto__;
226
+ }
227
+ })();
228
+ return cljs.core.boolean$(((cljs.core.seq_QMARK_(form))?(function (){var G__125429 = form;
229
+ var G__125429__$1 = (((G__125429 == null))?null:cljs.core.seq(G__125429));
230
+ var G__125429__$2 = (((G__125429__$1 == null))?null:cljs.core.first(G__125429__$1));
231
+ if((G__125429__$2 == null)){
232
+ return null;
233
+ } else {
234
+ var fexpr__125431 = new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Symbol("cljs.spec.alpha","nilable","cljs.spec.alpha/nilable",1628308748,null),null,new cljs.core.Symbol("clojure.spec.alpha","nilable","clojure.spec.alpha/nilable",-1718644550,null),null], null), null);
235
+ return (fexpr__125431.cljs$core$IFn$_invoke$arity$1 ? fexpr__125431.cljs$core$IFn$_invoke$arity$1(G__125429__$2) : fexpr__125431.call(null, G__125429__$2));
236
+ }
237
+ })():null));
238
+ });
239
+ /**
240
+ * Unwrap [x] to x. Asserts that coll has exactly one element.
241
+ */
242
+ spec_tools.impl.unwrap = (function spec_tools$impl$unwrap(coll){
243
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2((1),cljs.core.count(coll))){
244
+ } else {
245
+ throw (new Error("Assert failed: (= 1 (count coll))"));
246
+ }
247
+
248
+ return cljs.core.first(coll);
249
+ });
250
+ spec_tools.impl.deep_merge = (function spec_tools$impl$deep_merge(var_args){
251
+ var args__5732__auto__ = [];
252
+ var len__5726__auto___125474 = arguments.length;
253
+ var i__5727__auto___125475 = (0);
254
+ while(true){
255
+ if((i__5727__auto___125475 < len__5726__auto___125474)){
256
+ args__5732__auto__.push((arguments[i__5727__auto___125475]));
257
+
258
+ var G__125476 = (i__5727__auto___125475 + (1));
259
+ i__5727__auto___125475 = G__125476;
260
+ continue;
261
+ } else {
262
+ }
263
+ break;
264
+ }
265
+
266
+ var argseq__5733__auto__ = ((((0) < args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((0)),(0),null)):null);
267
+ return spec_tools.impl.deep_merge.cljs$core$IFn$_invoke$arity$variadic(argseq__5733__auto__);
268
+ });
269
+
270
+ (spec_tools.impl.deep_merge.cljs$core$IFn$_invoke$arity$variadic = (function (values){
271
+ if(cljs.core.every_QMARK_(cljs.core.map_QMARK_,values)){
272
+ return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.merge_with,spec_tools.impl.deep_merge,values);
273
+ } else {
274
+ if(cljs.core.every_QMARK_(cljs.core.coll_QMARK_,values)){
275
+ return cljs.core.reduce.cljs$core$IFn$_invoke$arity$2(cljs.core.into,values);
276
+ } else {
277
+ return cljs.core.last(values);
278
+
279
+ }
280
+ }
281
+ }));
282
+
283
+ (spec_tools.impl.deep_merge.cljs$lang$maxFixedArity = (0));
284
+
285
+ /** @this {Function} */
286
+ (spec_tools.impl.deep_merge.cljs$lang$applyTo = (function (seq125435){
287
+ var self__5712__auto__ = this;
288
+ return self__5712__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq125435));
289
+ }));
290
+
291
+ spec_tools.impl.unlift_keys = (function spec_tools$impl$unlift_keys(data,ns_name){
292
+ return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (acc,p__125442){
293
+ var vec__125443 = p__125442;
294
+ var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__125443,(0),null);
295
+ var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__125443,(1),null);
296
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ns_name,cljs.core.namespace(k))){
297
+ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(cljs.core.name(k)),v);
298
+ } else {
299
+ return acc;
300
+ }
301
+ }),cljs.core.PersistentArrayMap.EMPTY,data);
302
+ });
303
+ spec_tools.impl.register_spec_BANG_ = (function spec_tools$impl$register_spec_BANG_(k,s){
304
+ return cljs.spec.alpha.def_impl(k,cljs.spec.alpha.form(s),s);
305
+ });
306
+ spec_tools.impl.coll_of_spec = (function spec_tools$impl$coll_of_spec(pred,type){
307
+ var form = spec_tools.form.resolve_form.cljs$core$IFn$_invoke$arity$1(pred);
308
+ var cpred = ((cljs.core.set_QMARK_(type))?cljs.core.set_QMARK_:cljs.core.vector_QMARK_);
309
+ return cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(form,pred,new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,"into","into",-150836029),type,new cljs.core.Keyword("cljs.spec.alpha","conform-all","cljs.spec.alpha/conform-all",45201917),true,new cljs.core.Keyword("cljs.spec.alpha","describe","cljs.spec.alpha/describe",1883026911),cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.spec.alpha","coll-of","cljs.spec.alpha/coll-of",1019430407,null),null,(1),null)),(new cljs.core.List(null,form,null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,new cljs.core.Keyword(null,"into","into",-150836029),null,(1),null)),(new cljs.core.List(null,type,null,(1),null))], 0)))),new cljs.core.Keyword("cljs.spec.alpha","cpred","cljs.spec.alpha/cpred",-693471218),cpred,new cljs.core.Keyword("cljs.spec.alpha","kind-form","cljs.spec.alpha/kind-form",-1047104697),null], null),null);
310
+ });
311
+ spec_tools.impl.map_of_spec = (function spec_tools$impl$map_of_spec(kpred,vpred){
312
+ var forms = cljs.core.map.cljs$core$IFn$_invoke$arity$2(spec_tools.form.resolve_form,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [kpred,vpred], null));
313
+ var tuple = cljs.spec.alpha.tuple_impl.cljs$core$IFn$_invoke$arity$2(forms,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [kpred,vpred], null));
314
+ return cljs.spec.alpha.every_impl.cljs$core$IFn$_invoke$arity$4(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.spec.alpha","tuple","cljs.spec.alpha/tuple",-415901908,null),null,(1),null)),forms))),tuple,new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,"into","into",-150836029),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,"conform-keys","conform-keys",-1800041814),true,new cljs.core.Keyword("cljs.spec.alpha","kfn","cljs.spec.alpha/kfn",672643897),(function (_,v){
315
+ return cljs.core.nth.cljs$core$IFn$_invoke$arity$2(v,(0));
316
+ }),new cljs.core.Keyword("cljs.spec.alpha","conform-all","cljs.spec.alpha/conform-all",45201917),true,new cljs.core.Keyword("cljs.spec.alpha","describe","cljs.spec.alpha/describe",1883026911),cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.spec.alpha","map-of","cljs.spec.alpha/map-of",153715093,null),null,(1),null)),forms,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,new cljs.core.Keyword(null,"conform-keys","conform-keys",-1800041814),null,(1),null)),(new cljs.core.List(null,true,null,(1),null))], 0)))),new cljs.core.Keyword("cljs.spec.alpha","cpred","cljs.spec.alpha/cpred",-693471218),cljs.core.map_QMARK_,new cljs.core.Keyword("cljs.spec.alpha","kind-form","cljs.spec.alpha/kind-form",-1047104697),null], null),null);
317
+ });
318
+ spec_tools.impl.keys_spec = (function spec_tools$impl$keys_spec(p__125452){
319
+ var map__125453 = p__125452;
320
+ var map__125453__$1 = cljs.core.__destructure_map(map__125453);
321
+ var req = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__125453__$1,new cljs.core.Keyword(null,"req","req",-326448303));
322
+ var opt = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__125453__$1,new cljs.core.Keyword(null,"opt","opt",-794706369));
323
+ var req_un = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__125453__$1,new cljs.core.Keyword(null,"req-un","req-un",1074571008));
324
+ var opt_un = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__125453__$1,new cljs.core.Keyword(null,"opt-un","opt-un",883442496));
325
+ var req_specs = cljs.core.flatten(cljs.core.map.cljs$core$IFn$_invoke$arity$2(spec_tools.impl.polish,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(req,req_un)));
326
+ var opt_specs = cljs.core.flatten(cljs.core.map.cljs$core$IFn$_invoke$arity$2(spec_tools.impl.polish,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(opt,opt_un)));
327
+ var req_keys = cljs.core.flatten(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.map.cljs$core$IFn$_invoke$arity$2(spec_tools.impl.polish,req),cljs.core.map.cljs$core$IFn$_invoke$arity$2(spec_tools.impl.polish_un,req_un)));
328
+ var opt_keys = cljs.core.flatten(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(cljs.core.map.cljs$core$IFn$_invoke$arity$2(spec_tools.impl.polish,opt),cljs.core.map.cljs$core$IFn$_invoke$arity$2(spec_tools.impl.polish_un,opt_un)));
329
+ var pred_exprs = cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(function (p1__125450_SHARP_){
330
+ return cljs.core.map_QMARK_(p1__125450_SHARP_);
331
+ })], null),cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (x){
332
+ return (function (p1__125451_SHARP_){
333
+ return cljs.core.contains_QMARK_(p1__125451_SHARP_,x);
334
+ });
335
+ }),req_keys));
336
+ var pred_forms = cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","fn","cljs.core/fn",-1065745098,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$1((new cljs.core.List(null,new cljs.core.Symbol(null,"%","%",-950237169,null),null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","map?","cljs.core/map?",-1390345523,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(null,"%","%",-950237169,null),null,(1),null))))),null,(1),null))], 0))))], null),cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (k){
337
+ return cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","fn","cljs.core/fn",-1065745098,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$1((new cljs.core.List(null,new cljs.core.Symbol(null,"%","%",-950237169,null),null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","contains?","cljs.core/contains?",-976526835,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(null,"%","%",-950237169,null),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,k,null,(1),null))], 0)))),null,(1),null))], 0))));
338
+ }),req_keys));
339
+ var keys_pred = (function (x){
340
+ return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (_,p){
341
+ var or__5002__auto__ = (p.cljs$core$IFn$_invoke$arity$1 ? p.cljs$core$IFn$_invoke$arity$1(x) : p.call(null, x));
342
+ if(cljs.core.truth_(or__5002__auto__)){
343
+ return or__5002__auto__;
344
+ } else {
345
+ return cljs.core.reduced(false);
346
+ }
347
+ }),true,pred_exprs);
348
+ });
349
+ return cljs.spec.alpha.map_spec_impl(cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,"req-un","req-un",1074571008),new cljs.core.Keyword(null,"opt-un","opt-un",883442496),new cljs.core.Keyword(null,"pred-exprs","pred-exprs",1792271395),new cljs.core.Keyword(null,"keys-pred","keys-pred",858984739),new cljs.core.Keyword(null,"opt-keys","opt-keys",1262688261),new cljs.core.Keyword(null,"req-specs","req-specs",553962313),new cljs.core.Keyword(null,"req","req",-326448303),new cljs.core.Keyword(null,"req-keys","req-keys",514319221),new cljs.core.Keyword(null,"opt-specs","opt-specs",-384905450),new cljs.core.Keyword(null,"pred-forms","pred-forms",172611832),new cljs.core.Keyword(null,"opt","opt",-794706369)],[req_un,opt_un,pred_exprs,keys_pred,opt_keys,req_specs,req,req_keys,opt_specs,pred_forms,opt]));
350
+ });
351
+ spec_tools.impl.nilable_spec = (function spec_tools$impl$nilable_spec(pred){
352
+ var form = spec_tools.form.resolve_form.cljs$core$IFn$_invoke$arity$1(pred);
353
+ return cljs.spec.alpha.nilable_impl(form,pred,null);
354
+ });
355
+ spec_tools.impl.or_spec = (function spec_tools$impl$or_spec(v){
356
+ var ks = cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.first,v);
357
+ var preds = cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(cljs.core.second,v);
358
+ var forms = cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(spec_tools.form.resolve_form,preds);
359
+ return cljs.spec.alpha.or_spec_impl(ks,forms,preds,null);
360
+ });
361
+
362
+ //# sourceMappingURL=spec_tools.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["spec_tools/impl.cljc"],"mappings":"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","names":["spec-tools.impl/cljs-sym","x","cljs.core/map?","spec-tools.impl/clj-sym","cljs.core/var?","v","cljs.core.symbol","spec-tools.impl/->sym","spec-tools.impl/unfn","cljs?","expr","cljs.core/seq?","cljs.core/Symbol","cljs.core/first","cljs.core._EQ_","cljs.core/name","vec__125291","seq__125292","cljs.core/seq","first__125293","cljs.core/next","vec__125294","cljs.core.nth","s","form","cljs.core/rest","cljs.core.conj","clojure.walk/postwalk-replace","spec-tools.impl/polish","cljs.core/flatten","cljs.core.keep","spec-tools.impl/polish-un","G__125321","cljs.core.keyword","spec-tools.impl/un-key","G__125334","p__125344","map__125345","cljs.core/--destructure-map","cljs.core.get","spec-tools.impl/with-key->spec","req","req-un","opt","opt-un","data","key->spec","cljs.core.concat","cljs.core.map","cljs.core.juxt","cljs.core/identity","cljs.core.into","un-key->spec","cljs.core.assoc","cljs.core.merge","p__125361","map__125364","spec-tools.impl/with-real-keys","G__125366","cljs.core.update","cljs.core.partial","cljs.core/mapv","spec-tools.impl/parse-keys","m","G__125405","cljs.core.apply","cljs.core/hash-map","G__125407","p1__125378#","p1__125388#","p1__125389#","spec-tools.impl/extract-keys","map__125410","G__125411","spec-tools.impl/extract-pred-and-info","cljs.core.dissoc","spec-tools.impl/strip-fn-if-needed","head","cljs.core/count","spec-tools.impl/normalize-symbol","kw","G__125421","and__5000__auto__","cljs.core/namespace","spec-tools.impl/extract-form","spec","cljs.spec.alpha/form","spec-tools.impl/qualified-name","key","cljs.core/Keyword","temp__5802__auto__","nn","spec-tools.impl/nilable-spec?","cljs.core/boolean","G__125429","fexpr__125431","js/Error","spec-tools.impl/unwrap","coll","var_args","args__5732__auto__","len__5726__auto__","i__5727__auto__","argseq__5733__auto__","cljs.core/IndexedSeq","spec-tools.impl/deep-merge","seq125435","self__5712__auto__","values","cljs.core/every?","cljs.core/merge-with","cljs.core/coll?","cljs.core.reduce","cljs.core/into","cljs.core/last","spec-tools.impl/unlift-keys","ns-name","p__125442","vec__125443","acc","k","spec-tools.impl/register-spec!","cljs.spec.alpha/def-impl","spec-tools.impl/coll-of-spec","pred","type","spec-tools.form/resolve-form","cpred","cljs.core/set?","cljs.core/vector?","cljs.core.sequence","cljs.core/List","cljs.spec.alpha.every_impl","spec-tools.impl/map-of-spec","kpred","vpred","forms","tuple","cljs.spec.alpha.tuple_impl","_","p__125452","map__125453","spec-tools.impl/keys-spec","req-specs","opt-specs","req-keys","opt-keys","pred-exprs","p1__125450#","p1__125451#","cljs.core/contains?","pred-forms","cljs.core/vec","keys-pred","p","or__5002__auto__","cljs.core/reduced","cljs.spec.alpha/map-spec-impl","spec-tools.impl/nilable-spec","cljs.spec.alpha/nilable-impl","spec-tools.impl/or-spec","ks","cljs.core.mapv","preds","cljs.core/second","cljs.spec.alpha/or-spec-impl"],"sourcesContent":["(ns spec-tools.impl\n (:refer-clojure :exclude [resolve])\n #?(:cljs (:require-macros [spec-tools.impl :refer [resolve]]))\n (:require\n #?(:cljs [cljs.analyzer.api])\n [clojure.spec.alpha :as s]\n [spec-tools.form :as form]\n [clojure.walk :as walk])\n (:import\n #?@(:clj\n [(clojure.lang Var)])))\n\n#?(:clj\n (defn in-cljs? [env]\n (:ns env)))\n\n;; ClojureScript 1.9.655 and later have a resolve macro - maybe this can be\n;; eventually converted to use it.\n#?(:clj\n (defmacro resolve\n [env sym]\n `(if (in-cljs? ~env)\n ((clojure.core/resolve 'cljs.analyzer.api/resolve) ~env ~sym)\n (clojure.core/resolve ~env ~sym))))\n\n(defn- cljs-sym [x]\n (if (map? x)\n (:name x)\n x))\n\n(defn- clj-sym [x]\n (if (var? x)\n (let [^Var v x]\n (symbol (str (.name (.ns v)))\n (str (.sym v))))\n x))\n\n(defn ->sym [x]\n #?(:clj (clj-sym x)\n :cljs (cljs-sym x)))\n\n(defn- unfn [cljs? expr]\n (if (clojure.core/and (seq? expr)\n (symbol? (first expr))\n (= \"fn*\" (name (first expr))))\n (let [[[s] & form] (rest expr)]\n (conj (walk/postwalk-replace {s '%} form) '[%] (if cljs? 'cljs.core/fn 'clojure.core/fn)))\n expr))\n\n#?(:clj\n (defn cljs-resolve [env symbol]\n (clojure.core/or (->> symbol (resolve env) cljs-sym) symbol)))\n\n(defn polish [x]\n (cond\n (seq? x) (flatten (keep polish x))\n (symbol? x) nil\n :else x))\n\n(defn polish-un [x]\n (some-> x polish name keyword))\n\n(defn un-key [x]\n (some-> x name keyword))\n\n(defn with-key->spec [{:keys [req req-un opt opt-un] :as data}]\n (let [key->spec (->> (concat opt req) (map (juxt identity identity)) (into {}))\n un-key->spec (->> (concat opt-un req-un) (map (juxt un-key identity)) (into {}))]\n (assoc data :key->spec (merge key->spec un-key->spec))))\n\n(defn with-real-keys [{:keys [req-un opt-un] :as data}]\n (cond-> data\n req-un (update :req-un (partial mapv un-key))\n opt-un (update :opt-un (partial mapv un-key))))\n\n(defn parse-keys [form]\n (let [m (some->> form (rest) (apply hash-map))]\n (cond-> m\n (:req m) (update :req #(->> % flatten (keep polish) (into [])))\n (:req-un m) (update :req-un #(->> % flatten (keep polish) (into [])))\n (:opt-un m) (update :opt-un #(->> % (keep polish) (into [])))\n true (-> with-key->spec with-real-keys))))\n\n(defn extract-keys [form]\n (let [{:keys [req opt req-un opt-un]} (some->> form (rest) (apply hash-map))]\n (flatten (map polish (concat req opt req-un opt-un)))))\n\n#?(:clj\n (defn resolve-form [env pred]\n (let [cljs? (in-cljs? env)\n res (if cljs? (partial cljs-resolve env) clojure.core/resolve)]\n (->> pred\n (walk/postwalk\n (fn [x]\n (if (symbol? x)\n (let [y (res x)\n -var-get (fn [v] (if cljs? @v (var-get v)))\n sym-or-x (fn [v] (or (->sym v) x))]\n (cond\n (var? y) (if (s/get-spec (-var-get y))\n (-var-get y)\n (sym-or-x y))\n (some? y) (sym-or-x y)\n :else x))\n x)))\n (unfn cljs?)))))\n\n(defn extract-pred-and-info [x]\n (if (map? x)\n [(:spec x) (dissoc x :spec)]\n [x {}]))\n\n(defn strip-fn-if-needed [form]\n (let [head (first form)]\n ;; Deal with the form (clojure.core/fn [%] (foo ... %))\n ;; We should just use core.match...\n (if (and (= (count form) 3) (= head #?(:clj 'clojure.core/fn :cljs 'cljs.core/fn)))\n (nth form 2)\n form)))\n\n(defn normalize-symbol [kw]\n (case (and (symbol? kw) (namespace kw))\n \"spec-tools.spec\" (symbol \"clojure.core\" (name kw))\n \"cljs.core\" (symbol \"clojure.core\" (name kw))\n \"cljs.spec.alpha\" (symbol \"clojure.spec.alpha\" (name kw))\n kw))\n\n(defn extract-form [spec]\n (if (seq? spec) spec (s/form spec)))\n\n(defn qualified-name [key]\n (if (keyword? key)\n (if-let [nn (namespace key)]\n (str nn \"/\" (name key))\n (name key))\n key))\n\n(defn nilable-spec? [spec]\n (let [form (and spec (s/form spec))]\n (boolean\n (if (seq? form)\n (some-> form\n seq\n first\n #{'clojure.spec.alpha/nilable\n 'cljs.spec.alpha/nilable})))))\n\n(defn unwrap\n \"Unwrap [x] to x. Asserts that coll has exactly one element.\"\n [coll]\n {:pre [(= 1 (count coll))]}\n (first coll))\n\n(defn deep-merge [& values]\n (cond\n (every? map? values)\n (apply merge-with deep-merge values)\n\n (every? coll? values)\n (reduce into values)\n\n :else\n (last values)))\n\n(defn unlift-keys [data ns-name]\n (reduce\n (fn [acc [k v]]\n (if (= ns-name (namespace k))\n (assoc acc (keyword (name k)) v)\n acc))\n {} data))\n\n;;\n;; FIXME: using ^:skip-wiki functions from clojure.spec. might break.\n;;\n\n(defn register-spec! [k s]\n (s/def-impl k (s/form s) s))\n\n;;\n;; functional clojure.spec\n;;\n\n(defn coll-of-spec [pred type]\n (let [form (form/resolve-form pred)\n cpred (if (set? type) set? vector?)]\n (clojure.spec.alpha/every-impl\n form\n pred\n {:into type\n ::s/conform-all true\n ::s/describe `(s/coll-of ~form :into ~type),\n ::s/cpred cpred,\n ::s/kind-form (quote nil)}\n nil)))\n\n(defn map-of-spec [kpred vpred]\n (let [forms (map form/resolve-form [kpred vpred])\n tuple (s/tuple-impl forms [kpred vpred])]\n (clojure.spec.alpha/every-impl\n `(s/tuple ~@forms)\n tuple\n {:into {}\n :conform-keys true\n ::s/kfn (fn [_ v] (nth v 0))\n ::s/conform-all true\n ::s/describe `(s/map-of ~@forms :conform-keys true),\n ::s/cpred map?,\n ::s/kind-form (quote nil)}\n nil)))\n\n(defn keys-spec [{:keys [req opt req-un opt-un]}]\n (let [req-specs (flatten (map polish (concat req req-un)))\n opt-specs (flatten (map polish (concat opt opt-un)))\n req-keys (flatten (concat (map polish req) (map polish-un req-un)))\n opt-keys (flatten (concat (map polish opt) (map polish-un opt-un)))\n pred-exprs (concat\n [#(map? %)]\n (map (fn [x] #(contains? % x)) req-keys))\n pred-forms (concat\n [`(fn [~'%] (map? ~'%))]\n (map (fn [k] `(fn [~'%] (contains? ~'% ~k))) req-keys))\n keys-pred (fn [x]\n (reduce\n (fn [_ p]\n (clojure.core/or (p x) (reduced false)))\n true\n pred-exprs))]\n\n (s/map-spec-impl\n {:req-un req-un\n :opt-un opt-un\n :pred-exprs pred-exprs\n :keys-pred keys-pred\n :opt-keys opt-keys\n :req-specs req-specs\n :req req\n :req-keys req-keys\n :opt-specs opt-specs\n :pred-forms pred-forms\n :opt opt})))\n\n(defn nilable-spec [pred]\n (let [form (form/resolve-form pred)]\n (s/nilable-impl form pred nil)))\n\n(defn or-spec [v]\n (let [ks (mapv first v)\n preds (mapv second v)\n forms (mapv form/resolve-form preds)]\n (s/or-spec-impl ks forms preds nil)))\n"],"x_google_ignoreList":[0]}