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,288 @@
1
+ var $CLJS = require("./cljs_env");
2
+ var $jscomp = $CLJS.$jscomp;
3
+ var COMPILED = false;
4
+ require("./cljs.core.js");
5
+ require("./cljs.spec.alpha.js");
6
+ require("./clojure.set.js");
7
+ require("./clojure.edn.js");
8
+ require("./spec_tools.parse.js");
9
+ require("./spec_tools.impl.js");
10
+ var environ=$CLJS.environ || ($CLJS.environ = {});
11
+ var fress=$CLJS.fress || ($CLJS.fress = {});
12
+ var datahike=$CLJS.datahike || ($CLJS.datahike = {});
13
+ var clojure=$CLJS.clojure || ($CLJS.clojure = {});
14
+ var hasch=$CLJS.hasch || ($CLJS.hasch = {});
15
+ var tailrecursion=$CLJS.tailrecursion || ($CLJS.tailrecursion = {});
16
+ var superv=$CLJS.superv || ($CLJS.superv = {});
17
+ var geheimnis=$CLJS.geheimnis || ($CLJS.geheimnis = {});
18
+ var is=$CLJS.is || ($CLJS.is = {});
19
+ var cljs=$CLJS.cljs || ($CLJS.cljs = {});
20
+ var cljs_node_io=$CLJS.cljs_node_io || ($CLJS.cljs_node_io = {});
21
+ var goog=$CLJS.goog || ($CLJS.goog = {});
22
+ var konserve=$CLJS.konserve || ($CLJS.konserve = {});
23
+ var datalog=$CLJS.datalog || ($CLJS.datalog = {});
24
+ var spec_tools=$CLJS.spec_tools || ($CLJS.spec_tools = {});
25
+ var taoensso=$CLJS.taoensso || ($CLJS.taoensso = {});
26
+ var incognito=$CLJS.incognito || ($CLJS.incognito = {});
27
+ var medley=$CLJS.medley || ($CLJS.medley = {});
28
+ var me=$CLJS.me || ($CLJS.me = {});
29
+
30
+ $CLJS.SHADOW_ENV.setLoaded("spec_tools.transform.js");
31
+
32
+ goog.provide('spec_tools.transform');
33
+ spec_tools.transform.keyword__GT_string = (function spec_tools$transform$keyword__GT_string(_,x){
34
+ if((x instanceof cljs.core.Keyword)){
35
+ return spec_tools.impl.qualified_name(x);
36
+ } else {
37
+ return x;
38
+ }
39
+ });
40
+ spec_tools.transform.keyword_or_string__GT_ = (function spec_tools$transform$keyword_or_string__GT_(f){
41
+ return (function (spec,x){
42
+ if((x instanceof cljs.core.Keyword)){
43
+ var G__125752 = spec;
44
+ var G__125753 = spec_tools.transform.keyword__GT_string(spec,x);
45
+ return (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__125752,G__125753) : f.call(null, G__125752,G__125753));
46
+ } else {
47
+ if(typeof x === 'string'){
48
+ return (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(spec,x) : f.call(null, spec,x));
49
+ } else {
50
+ return x;
51
+
52
+ }
53
+ }
54
+ });
55
+ });
56
+ spec_tools.transform.keyword__GT_ = (function spec_tools$transform$keyword__GT_(f){
57
+ return (function (spec,x){
58
+ if((x instanceof cljs.core.Keyword)){
59
+ var G__125758 = spec;
60
+ var G__125759 = spec_tools.transform.keyword__GT_string(spec,x);
61
+ return (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__125758,G__125759) : f.call(null, G__125758,G__125759));
62
+ } else {
63
+ return x;
64
+
65
+ }
66
+ });
67
+ });
68
+ spec_tools.transform.number__GT_string = (function spec_tools$transform$number__GT_string(_,x){
69
+ if(typeof x === 'number'){
70
+ return cljs.core.str.cljs$core$IFn$_invoke$arity$1(x);
71
+ } else {
72
+ return x;
73
+ }
74
+ });
75
+ spec_tools.transform.number_or_string__GT_ = (function spec_tools$transform$number_or_string__GT_(f){
76
+ return (function (spec,x){
77
+ if(typeof x === 'number'){
78
+ var G__125763 = spec;
79
+ var G__125764 = spec_tools.transform.number__GT_string(spec,x);
80
+ return (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(G__125763,G__125764) : f.call(null, G__125763,G__125764));
81
+ } else {
82
+ if(typeof x === 'string'){
83
+ return (f.cljs$core$IFn$_invoke$arity$2 ? f.cljs$core$IFn$_invoke$arity$2(spec,x) : f.call(null, spec,x));
84
+ } else {
85
+ return x;
86
+
87
+ }
88
+ }
89
+ });
90
+ });
91
+ spec_tools.transform.string__GT_long = (function spec_tools$transform$string__GT_long(_,x){
92
+ if(typeof x === 'string'){
93
+ try{var x_SINGLEQUOTE_ = parseInt(x,(10));
94
+ if(cljs.core.truth_(isNaN(x_SINGLEQUOTE_))){
95
+ return x;
96
+ } else {
97
+ return x_SINGLEQUOTE_;
98
+ }
99
+ }catch (e125776){if((e125776 instanceof Error)){
100
+ var ___$1 = e125776;
101
+ return x;
102
+ } else {
103
+ throw e125776;
104
+
105
+ }
106
+ }} else {
107
+ return x;
108
+ }
109
+ });
110
+ spec_tools.transform.string__GT_double = (function spec_tools$transform$string__GT_double(_,x){
111
+ if(typeof x === 'string'){
112
+ try{var x_SINGLEQUOTE_ = parseFloat(x);
113
+ if(cljs.core.truth_(isNaN(x_SINGLEQUOTE_))){
114
+ return x;
115
+ } else {
116
+ return x_SINGLEQUOTE_;
117
+ }
118
+ }catch (e125778){if((e125778 instanceof Error)){
119
+ var ___$1 = e125778;
120
+ return x;
121
+ } else {
122
+ throw e125778;
123
+
124
+ }
125
+ }} else {
126
+ return x;
127
+ }
128
+ });
129
+ spec_tools.transform.string__GT_keyword = (function spec_tools$transform$string__GT_keyword(_,x){
130
+ if(typeof x === 'string'){
131
+ return cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(x);
132
+ } else {
133
+ return x;
134
+ }
135
+ });
136
+ spec_tools.transform.string__GT_boolean = (function spec_tools$transform$string__GT_boolean(_,x){
137
+ if(typeof x === 'string'){
138
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("true",x)){
139
+ return true;
140
+ } else {
141
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("false",x)){
142
+ return false;
143
+ } else {
144
+ return x;
145
+
146
+ }
147
+ }
148
+ } else {
149
+ return x;
150
+ }
151
+ });
152
+ spec_tools.transform.string__GT_uri = (function spec_tools$transform$string__GT_uri(_,x){
153
+ if(typeof x === 'string'){
154
+ try{return goog.Uri.parse(x);
155
+ }catch (e125785){if((e125785 instanceof Error)){
156
+ var ___$1 = e125785;
157
+ return x;
158
+ } else {
159
+ throw e125785;
160
+
161
+ }
162
+ }} else {
163
+ return x;
164
+ }
165
+ });
166
+ spec_tools.transform.string__GT_uuid = (function spec_tools$transform$string__GT_uuid(_,x){
167
+ if(typeof x === 'string'){
168
+ try{if(cljs.core.truth_(cljs.core.re_find(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/,x))){
169
+ return cljs.core.uuid(x);
170
+ } else {
171
+ return x;
172
+ }
173
+ }catch (e125798){if((e125798 instanceof Error)){
174
+ var ___$1 = e125798;
175
+ return x;
176
+ } else {
177
+ throw e125798;
178
+
179
+ }
180
+ }} else {
181
+ return x;
182
+ }
183
+ });
184
+ spec_tools.transform.string__GT_date = (function spec_tools$transform$string__GT_date(_,x){
185
+ if(typeof x === 'string'){
186
+ try{return (new Date(goog.date.UtcDateTime.fromIsoString(x).getTime()));
187
+ }catch (e125799){if((e125799 instanceof Error)){
188
+ var ___$1 = e125799;
189
+ return x;
190
+ } else {
191
+ throw e125799;
192
+
193
+ }
194
+ }} else {
195
+ return x;
196
+ }
197
+ });
198
+ spec_tools.transform.date__GT_string = (function spec_tools$transform$date__GT_string(_,x){
199
+ if(cljs.core.inst_QMARK_(x)){
200
+ try{return x.toISOString();
201
+ }catch (e125804){if((e125804 instanceof Error)){
202
+ var ___$1 = e125804;
203
+ return x;
204
+ } else {
205
+ throw e125804;
206
+
207
+ }
208
+ }} else {
209
+ return x;
210
+ }
211
+ });
212
+ spec_tools.transform.string__GT_symbol = (function spec_tools$transform$string__GT_symbol(_,x){
213
+ if(typeof x === 'string'){
214
+ return cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(x);
215
+ } else {
216
+ return x;
217
+ }
218
+ });
219
+ spec_tools.transform.string__GT_nil = (function spec_tools$transform$string__GT_nil(_,x){
220
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("",x)){
221
+ return null;
222
+ } else {
223
+ return x;
224
+ }
225
+ });
226
+ spec_tools.transform.any__GT_string = (function spec_tools$transform$any__GT_string(_,x){
227
+ if((!((x == null)))){
228
+ return cljs.core.str.cljs$core$IFn$_invoke$arity$1(x);
229
+ } else {
230
+ return null;
231
+ }
232
+ });
233
+ spec_tools.transform.number__GT_double = (function spec_tools$transform$number__GT_double(_,x){
234
+ if(typeof x === 'number'){
235
+ return x;
236
+ } else {
237
+ return x;
238
+ }
239
+ });
240
+ spec_tools.transform.any__GT_any = (function spec_tools$transform$any__GT_any(_,x){
241
+ return x;
242
+ });
243
+ spec_tools.transform.strip_extra_keys = (function spec_tools$transform$strip_extra_keys(p__125806,x){
244
+ var map__125807 = p__125806;
245
+ var map__125807__$1 = cljs.core.__destructure_map(map__125807);
246
+ var keys = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__125807__$1,new cljs.core.Keyword("spec-tools.parse","keys","spec-tools.parse/keys",1331815460));
247
+ if(cljs.core.truth_((function (){var and__5000__auto__ = keys;
248
+ if(cljs.core.truth_(and__5000__auto__)){
249
+ return cljs.core.map_QMARK_(x);
250
+ } else {
251
+ return and__5000__auto__;
252
+ }
253
+ })())){
254
+ return cljs.core.select_keys(x,keys);
255
+ } else {
256
+ return x;
257
+ }
258
+ });
259
+ spec_tools.transform.fail_on_extra_keys = (function spec_tools$transform$fail_on_extra_keys(p__125808,x){
260
+ var map__125809 = p__125808;
261
+ var map__125809__$1 = cljs.core.__destructure_map(map__125809);
262
+ var keys = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__125809__$1,new cljs.core.Keyword("spec-tools.parse","keys","spec-tools.parse/keys",1331815460));
263
+ if(((cljs.core.map_QMARK_(x)) && ((!(clojure.set.subset_QMARK_(cljs.core.set(cljs.core.keys(x)),keys)))))){
264
+ return new cljs.core.Keyword("cljs.spec.alpha","invalid","cljs.spec.alpha/invalid",-1220295119);
265
+ } else {
266
+ return x;
267
+ }
268
+ });
269
+ spec_tools.transform.strip_extra_values = (function spec_tools$transform$strip_extra_values(p__125811,x){
270
+ var map__125812 = p__125811;
271
+ var map__125812__$1 = cljs.core.__destructure_map(map__125812);
272
+ var items = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__125812__$1,new cljs.core.Keyword("spec-tools.parse","items","spec-tools.parse/items",1255627600));
273
+ var size = cljs.core.count(items);
274
+ if(((cljs.core.vector_QMARK_(x)) && ((cljs.core.count(x) > size)))){
275
+ return cljs.core.subvec.cljs$core$IFn$_invoke$arity$3(x,(0),size);
276
+ } else {
277
+ return x;
278
+ }
279
+ });
280
+ spec_tools.transform.json_type_decoders = cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentArrayMap(null, 8, [new cljs.core.Keyword(null,"keyword","keyword",811389747),spec_tools.transform.string__GT_keyword,new cljs.core.Keyword(null,"uuid","uuid",-2145095719),spec_tools.transform.keyword_or_string__GT_(spec_tools.transform.string__GT_uuid),new cljs.core.Keyword(null,"date","date",-1463434462),spec_tools.transform.keyword_or_string__GT_(spec_tools.transform.string__GT_date),new cljs.core.Keyword(null,"symbol","symbol",-1038572696),spec_tools.transform.keyword_or_string__GT_(spec_tools.transform.string__GT_symbol),new cljs.core.Keyword(null,"long","long",-171452093),spec_tools.transform.keyword__GT_(spec_tools.transform.string__GT_long),new cljs.core.Keyword(null,"double","double",884886883),spec_tools.transform.keyword__GT_(spec_tools.transform.string__GT_double),new cljs.core.Keyword(null,"boolean","boolean",-1919418404),spec_tools.transform.keyword__GT_(spec_tools.transform.string__GT_boolean),new cljs.core.Keyword(null,"string","string",-1989541586),spec_tools.transform.keyword__GT_string], null)], 0));
281
+ spec_tools.transform.string_type_decoders = cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([spec_tools.transform.json_type_decoders,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"long","long",-171452093),spec_tools.transform.keyword_or_string__GT_(spec_tools.transform.string__GT_long),new cljs.core.Keyword(null,"double","double",884886883),spec_tools.transform.keyword_or_string__GT_(spec_tools.transform.string__GT_double),new cljs.core.Keyword(null,"boolean","boolean",-1919418404),spec_tools.transform.keyword_or_string__GT_(spec_tools.transform.string__GT_boolean)], null)], 0));
282
+ spec_tools.transform.strip_extra_keys_type_decoders = new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"map","map",1371690461),spec_tools.transform.strip_extra_keys], null);
283
+ spec_tools.transform.fail_on_extra_keys_type_decoders = new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"map","map",1371690461),spec_tools.transform.fail_on_extra_keys], null);
284
+ spec_tools.transform.strip_extra_values_type_decoders = new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"tuple","tuple",-472667284),spec_tools.transform.strip_extra_values], null);
285
+ spec_tools.transform.json_type_encoders = cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,"date","date",-1463434462),new cljs.core.Keyword(null,"symbol","symbol",-1038572696),new cljs.core.Keyword(null,"vector","vector",1902966158),new cljs.core.Keyword(null,"keyword","keyword",811389747),new cljs.core.Keyword(null,"bigdec","bigdec",1019443956),new cljs.core.Keyword(null,"uri","uri",-774711847),new cljs.core.Keyword(null,"uuid","uuid",-2145095719),new cljs.core.Keyword(null,"set","set",304602554),new cljs.core.Keyword(null,"map","map",1371690461)],[spec_tools.transform.date__GT_string,spec_tools.transform.any__GT_string,spec_tools.transform.any__GT_any,spec_tools.transform.keyword__GT_string,spec_tools.transform.any__GT_string,spec_tools.transform.any__GT_string,spec_tools.transform.any__GT_string,spec_tools.transform.any__GT_any,spec_tools.transform.any__GT_any]);
286
+ spec_tools.transform.string_type_encoders = cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([spec_tools.transform.json_type_encoders,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"long","long",-171452093),spec_tools.transform.any__GT_string,new cljs.core.Keyword(null,"double","double",884886883),spec_tools.transform.any__GT_string], null)], 0));
287
+
288
+ //# sourceMappingURL=spec_tools.transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["spec_tools/transform.cljc"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,0CAAA,1CAAMA,4FAAiBC,EAAEC;AAAzB,AACE,GAAI,cAAAC,bAAUD;AACZ,OAACE,+BAAoBF;;AACrBA;;;AAEJ,8CAAA,9CAAMG,oGAAqBC;AAA3B,AACE,kBAAKC,KAAKL;AAAV,AACE,GACE,cAAAC,bAAUD;AAAG,IAAAM,YAAGD;IAAHE,YAAQ,AAACT,wCAAgBO,KAAKL;AAA9B,AAAA,0EAAAM,UAAAC,0BAAAD,UAAAC,hHAACH,kCAAAA,uDAAAA;;AADhB,GAEE,OAASJ;AAAG,QAACI,kCAAAA,0CAAAA,VAAEC,uBAAAA,lBAAKL,uBAAAA;;AAFtB,AAGQA;;;;;;AAEZ,oCAAA,pCAAMQ,gFAAWJ;AAAjB,AACE,kBAAKC,KAAKL;AAAV,AACE,GACE,cAAAC,bAAUD;AAAG,IAAAS,YAAGJ;IAAHK,YAAQ,AAACZ,wCAAgBO,KAAKL;AAA9B,AAAA,0EAAAS,UAAAC,0BAAAD,UAAAC,hHAACN,kCAAAA,uDAAAA;;AADhB,AAEQJ;;;;;AAKZ,yCAAA,zCAAMW,0FAAgBZ,EAAEC;AAAxB,AACE,GAAI,OAASA;AACX,mDAAKA;;AACLA;;;AAEJ,6CAAA,7CAAMY,kGAAoBR;AAA1B,AACE,kBAAKC,KAAKL;AAAV,AACE,GACE,OAASA;AAAG,IAAAa,YAAGR;IAAHS,YAAQ,AAACH,uCAAeN,KAAKL;AAA7B,AAAA,0EAAAa,UAAAC,0BAAAD,UAAAC,hHAACV,kCAAAA,uDAAAA;;AADf,GAEE,OAASJ;AAAG,QAACI,kCAAAA,0CAAAA,VAAEC,uBAAAA,lBAAKL,uBAAAA;;AAFtB,AAGQA;;;;;;AAKZ,uCAAA,vCAAMe,sFAAchB,EAAEC;AAAtB,AACE,GAAI,OAASA;AACX,IAAA,AAEW,IAAMiB,iBAAG,WAAA,XAACC,SAAYlB;AAAtB,AACE,oBAAI,AAACmB,MAASF;AAAIjB;;AAAEiB;;iBAHjC,GAAA,CAAAD,mBAIkCI;AAJlC,YAAAJ,RAI4CjB;AAJ5C,AAI8CC;;AAJ9C,AAAA,MAAAgB;;;;AAKAhB;;;AAEJ,yCAAA,zCAAMqB,0FAAgBtB,EAAEC;AAAxB,AACE,GAAI,OAASA;AACX,IAAA,AAEW,IAAMiB,iBAAG,AAACM,WAAcvB;AAAxB,AACE,oBAAI,AAACmB,MAASF;AAAIjB;;AAAEiB;;iBAHjC,GAAA,CAAAK,mBAIkCF;AAJlC,YAAAE,RAI4CvB;AAJ5C,AAI8CC;;AAJ9C,AAAA,MAAAsB;;;;AAKAtB;;;AAEJ,0CAAA,1CAAMwB,4FAAiBzB,EAAEC;AAAzB,AACE,GAAI,OAASA;AACX,OAACyB,gDAAQzB;;AACTA;;;AAEJ,0CAAA,1CAAM0B,4FAAiB3B,EAAEC;AAAzB,AACE,GAAI,OAASA;AACX,GACE,6CAAA,7CAAC2B,oDAAS3B;AADZ;;AAAA,GAEE,6CAAA,7CAAC2B,qDAAU3B;AAFb;;AAAA,AAGQA;;;;;AACRA;;;AAqBJ,sCAAA,tCAAM4B,oFAAa7B,EAAEC;AAArB,AACE,GAAI,OAASA;AACX,IAAA,AAGW,OAAC8B,eAAe9B;iBAH3B,GAAA,CAAA6B,mBAIkCT;AAJlC,YAAAS,RAI4C9B;AAJ5C,AAI8CC;;AAJ9C,AAAA,MAAA6B;;;;AAKA7B;;;AAEJ,uCAAA,vCAAM+B,sFAAchC,EAAEC;AAAtB,AACE,GAAI,OAASA;AACX,IAAA,AAGW,oBAAI,kBAAA,lBAACiC,8FAAqFjC;AACxF,OAACkC,eAAKlC;;AACNA;;iBALb,GAAA,CAAAgC,mBAMkCZ;AANlC,YAAAY,RAM4CjC;AAN5C,AAM8CC;;AAN9C,AAAA,MAAAgC;;;;AAOAhC;;;AAUJ,uCAAA,vCAAMmC,sFAAcpC,EAAEC;AAAtB,AACE,GAAI,OAASA;AACX,IAAA,AAEW,YAAAqC,KAAU,AAAU,AAACC,oCAAoCtC;iBAFpE,GAAA,CAAAoC,mBAGkChB;AAHlC,YAAAgB,RAG4CrC;AAH5C,AAG8CC;;AAH9C,AAAA,MAAAoC;;;;AAIApC;;;AAOJ,uCAAA,vCAAMuC,sFAAcxC,EAAEC;AAAtB,AACE,GAAI,AAACwC,sBAAMxC;AACT,IAAA,AAEW,OAAcA;iBAFzB,GAAA,CAAAyC,mBAGkCrB;AAHlC,YAAAqB,RAG4C1C;AAH5C,AAG8CC;;AAH9C,AAAA,MAAAyC;;;;AAIAzC;;;AAEJ,yCAAA,zCAAM0C,0FAAgB3C,EAAEC;AAAxB,AACE,GAAI,OAASA;AACX,OAAC2C,+CAAO3C;;AACRA;;;AAEJ,sCAAA,tCAAM4C,oFAAa7C,EAAEC;AAArB,AACE,GAAI,6CAAA,7CAAC2B,gDAAK3B;AAAV;;AAEEA;;;AAEJ,sCAAA,tCAAM6C,oFAAa9C,EAAEC;AAArB,AACE,GAAA,GAAQ,MAAA,LAAMA;AACZ,mDAAKA;;AADP;;;AAGF,yCAAA,zCAAM8C,0FAAgB/C,EAAEC;AAAxB,AACE,GAAI,OAASA;AACHA;;AACRA;;;AAEJ,mCAAA,nCAAM+C,8EAAUhD,EAAEC;AAAlB,AAAqBA;;AAMrB,wCAAA,gDAAAgD,xFAAMK,kGAAyCrD;AAA/C,AAAA,IAAAiD,cAAAD;IAAAC,kBAAA,AAAAC,4BAAAD;IAAAE,OAAA,AAAAC,4CAAAH,gBAAA;AAAA,AACE,oBAAI,iBAAAK,oBAAKH;AAAL,AAAA,oBAAAG;AAAU,OAACC,qBAAKvD;;AAAhBsD;;;AACF,OAACE,sBAAYxD,EAAEmD;;AACfnD;;;AAGJ,0CAAA,kDAAAyD,5FAAME,sGAA2C3D;AAAjD,AAAA,IAAA0D,cAAAD;IAAAC,kBAAA,AAAAR,4BAAAQ;IAAAP,OAAA,AAAAC,4CAAAM,gBAAA;AAAA,AACE,GAAI,EAAK,AAACH,qBAAKvD,QAAG,GAAK,AAAC4D,uDAAgB5D,fAAE,AAAC6D,dAAmB,AAACC,iCAAMX;AAArE;;AAEEnD;;;AAMJ,0CAAA,kDAAA+D,5FAAMG,sGAA4ClE;AAAlD,AAAA,IAAAgE,cAAAD;IAAAC,kBAAA,AAAAd,4BAAAc;IAAAC,QAAA,AAAAb,4CAAAY,gBAAA;AAAA,AACE,IAAMG,OAAK,AAACC,gBAAMH;AAAlB,AACE,GAAI,EAAK,AAACI,wBAAQrE,QAAG,CAAG,AAACoE,gBAAMpE,KAAGmE;AAChC,wDAAA,jDAACG,+CAAOtE,MAAImE;;AACZnE;;;AAMN,AAAKuE,0CACH,uGAAA,2CAAA,kGAAA,wIAAA,wIAAA,8IAAA,6HAAA,kIAAA,uIAAA,xhCAACC,4MACWhD,8FACH,AAACrB,4CAAoB4B,4FACrB,AAAC5B,4CAAoBgC,gGACnB,AAAChC,4CAAoBuC,6FACvB,AAAClC,kCAAUO,8FACT,AAACP,kCAAUa,oGACV,AAACb,kCAAUkB,mGACZ5B;AAMb,AAAK2E,4CACH,+IAAA,2CAAA,uIAAA,4IAAA,7cAACD,uGACCD,wIACO,AAACpE,4CAAoBY,8FACnB,AAACZ,4CAAoBkB,oGACpB,AAAClB,4CAAoBuB;AAEnC,sDAAA,2CAAA,jGAAKgD,oJACGrB;AAER,wDAAA,2CAAA,nGAAKsB,sJACGhB;AAER,wDAAA,2CAAA,nGAAKiB,0JACKV;AAMV,0CAAA,wCAAA,sDAAA,0DAAA,yDAAA,0DAAA,yDAAA,mDAAA,sDAAA,kDAAA,zgBAAKW,wqBACO/E,rEACD+C,qLACFA,pCACDA,pCACGA,lJACFN,+RACDQ,jCACAA,rLACGA;AAGX,AAAK+B,4CACH,+IAAA,2CAAA,yFAAA,nRAACN,uGACCK,wIACOhC,4FACEA","names":["spec-tools.transform/keyword->string","_","x","cljs.core/Keyword","spec-tools.impl/qualified-name","spec-tools.transform/keyword-or-string->","f","spec","G__125752","G__125753","spec-tools.transform/keyword->","G__125758","G__125759","spec-tools.transform/number->string","spec-tools.transform/number-or-string->","G__125763","G__125764","spec-tools.transform/string->long","e125776","x'","js/parseInt","js/isNaN","js/Error","spec-tools.transform/string->double","e125778","js/parseFloat","spec-tools.transform/string->keyword","cljs.core.keyword","spec-tools.transform/string->boolean","cljs.core._EQ_","spec-tools.transform/string->uri","e125785","js/goog.Uri.parse","spec-tools.transform/string->uuid","e125798","cljs.core/re-find","cljs.core/uuid","spec-tools.transform/string->date","e125799","js/Date","js/goog.date.UtcDateTime.fromIsoString","spec-tools.transform/date->string","cljs.core/inst?","e125804","spec-tools.transform/string->symbol","cljs.core.symbol","spec-tools.transform/string->nil","spec-tools.transform/any->string","spec-tools.transform/number->double","spec-tools.transform/any->any","p__125806","map__125807","cljs.core/--destructure-map","keys","cljs.core.get","spec-tools.transform/strip-extra-keys","and__5000__auto__","cljs.core/map?","cljs.core/select-keys","p__125808","map__125809","spec-tools.transform/fail-on-extra-keys","clojure.set/subset?","cljs.core/keys","cljs.core/set","p__125811","map__125812","items","spec-tools.transform/strip-extra-values","size","cljs.core/count","cljs.core/vector?","cljs.core.subvec","spec-tools.transform/json-type-decoders","cljs.core.merge","spec-tools.transform/string-type-decoders","spec-tools.transform/strip-extra-keys-type-decoders","spec-tools.transform/fail-on-extra-keys-type-decoders","spec-tools.transform/strip-extra-values-type-decoders","spec-tools.transform/json-type-encoders","spec-tools.transform/string-type-encoders"],"sourcesContent":["(ns spec-tools.transform\n #?(:cljs (:refer-clojure :exclude [Inst Keyword UUID]))\n (:require [clojure.spec.alpha :as s]\n #?@(:cljs [[goog.date.UtcDateTime]\n [goog.date.Date]\n [goog.Uri]])\n [clojure.set :as set]\n [clojure.edn :as edn]\n [spec-tools.parse :as parse]\n [spec-tools.impl :as impl])\n #?(:clj\n (:import (java.util Date UUID)\n (java.time Instant ZoneId)\n (java.net URI)\n (java.time.format DateTimeFormatter DateTimeFormatterBuilder)\n (java.time.temporal ChronoField))))\n\n;;\n;; Keywords\n;;\n\n(defn keyword->string [_ x]\n (if (keyword? x)\n (impl/qualified-name x)\n x))\n\n(defn keyword-or-string-> [f]\n (fn [spec x]\n (cond\n (keyword? x) (f spec (keyword->string spec x))\n (string? x) (f spec x)\n :else x)))\n\n(defn keyword-> [f]\n (fn [spec x]\n (cond\n (keyword? x) (f spec (keyword->string spec x))\n :else x)))\n\n;; Numbers\n;;\n\n(defn number->string [_ x]\n (if (number? x)\n (str x)\n x))\n\n(defn number-or-string-> [f]\n (fn [spec x]\n (cond\n (number? x) (f spec (number->string spec x))\n (string? x) (f spec x)\n :else x)))\n;;\n;; Strings\n;;\n\n(defn string->long [_ x]\n (if (string? x)\n (try\n #?(:clj (Long/parseLong x)\n :cljs (let [x' (js/parseInt x 10)]\n (if (js/isNaN x') x x')))\n (catch #?(:clj Exception, :cljs js/Error) _ x))\n x))\n\n(defn string->double [_ x]\n (if (string? x)\n (try\n #?(:clj (Double/parseDouble x)\n :cljs (let [x' (js/parseFloat x)]\n (if (js/isNaN x') x x')))\n (catch #?(:clj Exception, :cljs js/Error) _ x))\n x))\n\n(defn string->keyword [_ x]\n (if (string? x)\n (keyword x)\n x))\n\n(defn string->boolean [_ x]\n (if (string? x)\n (cond\n (= \"true\" x) true\n (= \"false\" x) false\n :else x)\n x))\n\n#?(:clj\n (defn string->decimal [_ x]\n (if (string? x)\n (try\n (BigDecimal. ^String x)\n (catch Exception _ x))\n x)))\n\n#?(:clj\n (defn string->ratio [_ x]\n (if (string? x)\n (try\n (let [parsed-x (edn/read-string ^String x)]\n (if (ratio? parsed-x)\n parsed-x\n x))\n (catch Exception _ x))\n x)))\n\n(defn string->uri [_ x]\n (if (string? x)\n (try\n #?(:clj (URI/create x)\n ;; https://stackoverflow.com/questions/11528249/uri-validation-in-javascript\n :cljs (goog.Uri.parse x))\n (catch #?(:clj Exception, :cljs js/Error) _ x))\n x))\n\n(defn string->uuid [_ x]\n (if (string? x)\n (try\n #?(:clj (UUID/fromString x)\n ;; http://stackoverflow.com/questions/7905929/how-to-test-valid-uuid-guid\n :cljs (if (re-find #\"^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$\" x)\n (uuid x)\n x))\n (catch #?(:clj Exception, :cljs js/Error) _ x))\n x))\n\n#?(:clj\n (def ^DateTimeFormatter +string->date-format+\n (-> (DateTimeFormatterBuilder.)\n (.appendPattern \"yyyy-MM-dd['T'HH:mm:ss[.SSS][XXXX][XXXXX]]\")\n (.parseDefaulting ChronoField/HOUR_OF_DAY 0)\n (.parseDefaulting ChronoField/OFFSET_SECONDS 0)\n (.toFormatter))))\n\n(defn string->date [_ x]\n (if (string? x)\n (try\n #?(:clj (Date/from (Instant/from (.parse +string->date-format+ x)))\n :cljs (js/Date. (.getTime (goog.date.UtcDateTime.fromIsoString x))))\n (catch #?(:clj Exception, :cljs js/Error) _ x))\n x))\n\n#?(:clj\n (def ^DateTimeFormatter +date->string-format+\n (-> (DateTimeFormatter/ofPattern \"yyyy-MM-dd'T'HH:mm:ss.SSSXXX\")\n (.withZone (ZoneId/of \"UTC\")))))\n\n(defn date->string [_ x]\n (if (inst? x)\n (try\n #?(:clj (.format +date->string-format+ (Instant/ofEpochMilli (inst-ms x)))\n :cljs (.toISOString x))\n (catch #?(:clj Exception, :cljs js/Error) _ x))\n x))\n\n(defn string->symbol [_ x]\n (if (string? x)\n (symbol x)\n x))\n\n(defn string->nil [_ x]\n (if (= \"\" x)\n nil\n x))\n\n(defn any->string [_ x]\n (if-not (nil? x)\n (str x)))\n\n(defn number->double [_ x]\n (if (number? x)\n (double x)\n x))\n\n(defn any->any [_ x] x)\n\n;;\n;; Maps\n;;\n\n(defn strip-extra-keys [{:keys [::parse/keys]} x]\n (if (and keys (map? x))\n (select-keys x keys)\n x))\n\n;; TODO: remove this as it couples transformation & validation?\n(defn fail-on-extra-keys [{:keys [::parse/keys]} x]\n (if (and (map? x) (not (set/subset? (-> x (clojure.core/keys) (set)) keys)))\n ::s/invalid\n x))\n\n;;\n;; Tuples\n;;\n\n(defn strip-extra-values [{:keys [::parse/items]} x]\n (let [size (count items)]\n (if (and (vector? x) (> (count x) size))\n (subvec x 0 size)\n x)))\n\n;;\n;; type decoders\n;;\n\n(def json-type-decoders\n (merge\n {:keyword string->keyword\n :uuid (keyword-or-string-> string->uuid)\n :date (keyword-or-string-> string->date)\n :symbol (keyword-or-string-> string->symbol)\n :long (keyword-> string->long)\n :double (keyword-> string->double)\n :boolean (keyword-> string->boolean)\n :string keyword->string}\n #?(:clj\n {:uri string->uri\n :bigdec (number-or-string-> string->decimal)\n :ratio string->ratio})))\n\n(def string-type-decoders\n (merge\n json-type-decoders\n {:long (keyword-or-string-> string->long)\n :double (keyword-or-string-> string->double)\n :boolean (keyword-or-string-> string->boolean)}))\n\n(def strip-extra-keys-type-decoders\n {:map strip-extra-keys})\n\n(def fail-on-extra-keys-type-decoders\n {:map fail-on-extra-keys})\n\n(def strip-extra-values-type-decoders\n {:tuple strip-extra-values})\n\n;;\n;; type encoders\n;;\n\n(def json-type-encoders\n {:keyword keyword->string\n :symbol any->string\n :uuid any->string\n :uri any->string\n :bigdec any->string\n :date date->string\n :map any->any\n :set any->any\n :vector any->any\n #?@(:clj [:ratio number->double])})\n\n(def string-type-encoders\n (merge\n json-type-encoders\n {:long any->string\n :double any->string}))\n"],"x_google_ignoreList":[0]}