datahike 0.7.1630

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/README.md +226 -0
  2. package/cljs.analyzer.api.js +427 -0
  3. package/cljs.analyzer.api.js.map +1 -0
  4. package/cljs.analyzer.impl.js +86 -0
  5. package/cljs.analyzer.impl.js.map +1 -0
  6. package/cljs.analyzer.impl.namespaces.js +219 -0
  7. package/cljs.analyzer.impl.namespaces.js.map +1 -0
  8. package/cljs.analyzer.js +7186 -0
  9. package/cljs.analyzer.js.map +1 -0
  10. package/cljs.analyzer.passes.and_or.js +141 -0
  11. package/cljs.analyzer.passes.and_or.js.map +1 -0
  12. package/cljs.analyzer.passes.js +104 -0
  13. package/cljs.analyzer.passes.js.map +1 -0
  14. package/cljs.cache.js +1145 -0
  15. package/cljs.cache.js.map +1 -0
  16. package/cljs.cache.wrapped.js +352 -0
  17. package/cljs.cache.wrapped.js.map +1 -0
  18. package/cljs.core.async.impl.buffers.js +489 -0
  19. package/cljs.core.async.impl.buffers.js.map +1 -0
  20. package/cljs.core.async.impl.channels.js +711 -0
  21. package/cljs.core.async.impl.channels.js.map +1 -0
  22. package/cljs.core.async.impl.dispatch.js +81 -0
  23. package/cljs.core.async.impl.dispatch.js.map +1 -0
  24. package/cljs.core.async.impl.ioc_helpers.js +192 -0
  25. package/cljs.core.async.impl.ioc_helpers.js.map +1 -0
  26. package/cljs.core.async.impl.protocols.js +368 -0
  27. package/cljs.core.async.impl.protocols.js.map +1 -0
  28. package/cljs.core.async.impl.timers.js +510 -0
  29. package/cljs.core.async.impl.timers.js.map +1 -0
  30. package/cljs.core.async.js +8813 -0
  31. package/cljs.core.async.js.map +1 -0
  32. package/cljs.core.js +38764 -0
  33. package/cljs.core.js.map +1 -0
  34. package/cljs.env.js +60 -0
  35. package/cljs.env.js.map +1 -0
  36. package/cljs.nodejs.js +80 -0
  37. package/cljs.nodejs.js.map +1 -0
  38. package/cljs.reader.js +462 -0
  39. package/cljs.reader.js.map +1 -0
  40. package/cljs.spec.alpha.js +5312 -0
  41. package/cljs.spec.alpha.js.map +1 -0
  42. package/cljs.spec.gen.alpha.js +2020 -0
  43. package/cljs.spec.gen.alpha.js.map +1 -0
  44. package/cljs.tagged_literals.js +103 -0
  45. package/cljs.tagged_literals.js.map +1 -0
  46. package/cljs.tools.reader.edn.js +960 -0
  47. package/cljs.tools.reader.edn.js.map +1 -0
  48. package/cljs.tools.reader.impl.commons.js +217 -0
  49. package/cljs.tools.reader.impl.commons.js.map +1 -0
  50. package/cljs.tools.reader.impl.errors.js +441 -0
  51. package/cljs.tools.reader.impl.errors.js.map +1 -0
  52. package/cljs.tools.reader.impl.inspect.js +182 -0
  53. package/cljs.tools.reader.impl.inspect.js.map +1 -0
  54. package/cljs.tools.reader.impl.utils.js +429 -0
  55. package/cljs.tools.reader.impl.utils.js.map +1 -0
  56. package/cljs.tools.reader.js +1830 -0
  57. package/cljs.tools.reader.js.map +1 -0
  58. package/cljs.tools.reader.reader_types.js +838 -0
  59. package/cljs.tools.reader.reader_types.js.map +1 -0
  60. package/cljs_env.js +18192 -0
  61. package/cljs_node_io.core.js +1278 -0
  62. package/cljs_node_io.core.js.map +1 -0
  63. package/cljs_node_io.file.js +918 -0
  64. package/cljs_node_io.file.js.map +1 -0
  65. package/cljs_node_io.fs.js +3911 -0
  66. package/cljs_node_io.fs.js.map +1 -0
  67. package/clojure.data.js +319 -0
  68. package/clojure.data.js.map +1 -0
  69. package/clojure.edn.js +119 -0
  70. package/clojure.edn.js.map +1 -0
  71. package/clojure.set.js +406 -0
  72. package/clojure.set.js.map +1 -0
  73. package/clojure.string.js +502 -0
  74. package/clojure.string.js.map +1 -0
  75. package/clojure.walk.js +156 -0
  76. package/clojure.walk.js.map +1 -0
  77. package/datahike.api.impl.js +621 -0
  78. package/datahike.api.impl.js.map +1 -0
  79. package/datahike.api.specification.js +85 -0
  80. package/datahike.api.specification.js.map +1 -0
  81. package/datahike.array.js +275 -0
  82. package/datahike.array.js.map +1 -0
  83. package/datahike.config.js +437 -0
  84. package/datahike.config.js.map +1 -0
  85. package/datahike.connections.js +55 -0
  86. package/datahike.connections.js.map +1 -0
  87. package/datahike.connector.js +1248 -0
  88. package/datahike.connector.js.map +1 -0
  89. package/datahike.constants.js +66 -0
  90. package/datahike.constants.js.map +1 -0
  91. package/datahike.core.js +628 -0
  92. package/datahike.core.js.map +1 -0
  93. package/datahike.datom.js +963 -0
  94. package/datahike.datom.js.map +1 -0
  95. package/datahike.db.interface.js +819 -0
  96. package/datahike.db.interface.js.map +1 -0
  97. package/datahike.db.js +3095 -0
  98. package/datahike.db.js.map +1 -0
  99. package/datahike.db.search.js +1004 -0
  100. package/datahike.db.search.js.map +1 -0
  101. package/datahike.db.transaction.js +1904 -0
  102. package/datahike.db.transaction.js.map +1 -0
  103. package/datahike.db.utils.js +642 -0
  104. package/datahike.db.utils.js.map +1 -0
  105. package/datahike.gc.js +1618 -0
  106. package/datahike.gc.js.map +1 -0
  107. package/datahike.impl.entity.js +604 -0
  108. package/datahike.impl.entity.js.map +1 -0
  109. package/datahike.index.interface.js +484 -0
  110. package/datahike.index.interface.js.map +1 -0
  111. package/datahike.index.js +50 -0
  112. package/datahike.index.js.map +1 -0
  113. package/datahike.index.persistent_set.js +1250 -0
  114. package/datahike.index.persistent_set.js.map +1 -0
  115. package/datahike.js.api.js +2211 -0
  116. package/datahike.js.api.js.map +1 -0
  117. package/datahike.lru.js +404 -0
  118. package/datahike.lru.js.map +1 -0
  119. package/datahike.pull_api.js +533 -0
  120. package/datahike.pull_api.js.map +1 -0
  121. package/datahike.query.js +11891 -0
  122. package/datahike.query.js.map +1 -0
  123. package/datahike.query_stats.js +152 -0
  124. package/datahike.query_stats.js.map +1 -0
  125. package/datahike.readers.js +166 -0
  126. package/datahike.readers.js.map +1 -0
  127. package/datahike.schema.js +251 -0
  128. package/datahike.schema.js.map +1 -0
  129. package/datahike.schema_cache.js +66 -0
  130. package/datahike.schema_cache.js.map +1 -0
  131. package/datahike.spec.js +70 -0
  132. package/datahike.spec.js.map +1 -0
  133. package/datahike.store.js +514 -0
  134. package/datahike.store.js.map +1 -0
  135. package/datahike.tools.js +436 -0
  136. package/datahike.tools.js.map +1 -0
  137. package/datahike.writer.js +3463 -0
  138. package/datahike.writer.js.map +1 -0
  139. package/datahike.writing.js +3168 -0
  140. package/datahike.writing.js.map +1 -0
  141. package/datalog.parser.impl.js +1421 -0
  142. package/datalog.parser.impl.js.map +1 -0
  143. package/datalog.parser.impl.proto.js +213 -0
  144. package/datalog.parser.impl.proto.js.map +1 -0
  145. package/datalog.parser.impl.util.js +117 -0
  146. package/datalog.parser.impl.util.js.map +1 -0
  147. package/datalog.parser.js +47 -0
  148. package/datalog.parser.js.map +1 -0
  149. package/datalog.parser.pull.js +2603 -0
  150. package/datalog.parser.pull.js.map +1 -0
  151. package/datalog.parser.type.js +7502 -0
  152. package/datalog.parser.type.js.map +1 -0
  153. package/datalog.parser.util.js +60 -0
  154. package/datalog.parser.util.js.map +1 -0
  155. package/environ.core.js +263 -0
  156. package/environ.core.js.map +1 -0
  157. package/fress.api.js +607 -0
  158. package/fress.api.js.map +1 -0
  159. package/fress.impl.adler32.js +435 -0
  160. package/fress.impl.adler32.js.map +1 -0
  161. package/fress.impl.bigint.js +185 -0
  162. package/fress.impl.bigint.js.map +1 -0
  163. package/fress.impl.buffer.js +1087 -0
  164. package/fress.impl.buffer.js.map +1 -0
  165. package/fress.impl.codes.js +105 -0
  166. package/fress.impl.codes.js.map +1 -0
  167. package/fress.impl.hopmap.js +603 -0
  168. package/fress.impl.hopmap.js.map +1 -0
  169. package/fress.impl.ranges.js +49 -0
  170. package/fress.impl.ranges.js.map +1 -0
  171. package/fress.impl.raw_input.js +837 -0
  172. package/fress.impl.raw_input.js.map +1 -0
  173. package/fress.impl.raw_output.js +653 -0
  174. package/fress.impl.raw_output.js.map +1 -0
  175. package/fress.impl.table.js +133 -0
  176. package/fress.impl.table.js.map +1 -0
  177. package/fress.reader.js +2312 -0
  178. package/fress.reader.js.map +1 -0
  179. package/fress.util.js +458 -0
  180. package/fress.util.js.map +1 -0
  181. package/fress.writer.js +2141 -0
  182. package/fress.writer.js.map +1 -0
  183. package/geheimnis.aes.js +132 -0
  184. package/geheimnis.aes.js.map +1 -0
  185. package/hasch.base64.js +42 -0
  186. package/hasch.base64.js.map +1 -0
  187. package/hasch.benc.js +201 -0
  188. package/hasch.benc.js.map +1 -0
  189. package/hasch.core.js +188 -0
  190. package/hasch.core.js.map +1 -0
  191. package/hasch.platform.js +221 -0
  192. package/hasch.platform.js.map +1 -0
  193. package/incognito.base.js +276 -0
  194. package/incognito.base.js.map +1 -0
  195. package/incognito.edn.js +54 -0
  196. package/incognito.edn.js.map +1 -0
  197. package/incognito.fressian.js +330 -0
  198. package/incognito.fressian.js.map +1 -0
  199. package/index.d.ts +660 -0
  200. package/is.simm.partial_cps.async.js +142 -0
  201. package/is.simm.partial_cps.async.js.map +1 -0
  202. package/is.simm.partial_cps.runtime.js +65 -0
  203. package/is.simm.partial_cps.runtime.js.map +1 -0
  204. package/is.simm.partial_cps.sequence.js +1255 -0
  205. package/is.simm.partial_cps.sequence.js.map +1 -0
  206. package/konserve.cache.js +2519 -0
  207. package/konserve.cache.js.map +1 -0
  208. package/konserve.compressor.js +502 -0
  209. package/konserve.compressor.js.map +1 -0
  210. package/konserve.core.js +8052 -0
  211. package/konserve.core.js.map +1 -0
  212. package/konserve.encryptor.js +553 -0
  213. package/konserve.encryptor.js.map +1 -0
  214. package/konserve.gc.js +541 -0
  215. package/konserve.gc.js.map +1 -0
  216. package/konserve.impl.defaults.js +8290 -0
  217. package/konserve.impl.defaults.js.map +1 -0
  218. package/konserve.impl.storage_layout.js +849 -0
  219. package/konserve.impl.storage_layout.js.map +1 -0
  220. package/konserve.memory.js +2102 -0
  221. package/konserve.memory.js.map +1 -0
  222. package/konserve.node_filestore.js +2951 -0
  223. package/konserve.node_filestore.js.map +1 -0
  224. package/konserve.protocols.js +590 -0
  225. package/konserve.protocols.js.map +1 -0
  226. package/konserve.serializers.js +562 -0
  227. package/konserve.serializers.js.map +1 -0
  228. package/konserve.store.js +2245 -0
  229. package/konserve.store.js.map +1 -0
  230. package/konserve.tiered.js +9574 -0
  231. package/konserve.tiered.js.map +1 -0
  232. package/konserve.utils.js +180 -0
  233. package/konserve.utils.js.map +1 -0
  234. package/me.tonsky.persistent_sorted_set.arrays.js +66 -0
  235. package/me.tonsky.persistent_sorted_set.arrays.js.map +1 -0
  236. package/me.tonsky.persistent_sorted_set.branch.js +2779 -0
  237. package/me.tonsky.persistent_sorted_set.branch.js.map +1 -0
  238. package/me.tonsky.persistent_sorted_set.btset.js +14196 -0
  239. package/me.tonsky.persistent_sorted_set.btset.js.map +1 -0
  240. package/me.tonsky.persistent_sorted_set.impl.node.js +324 -0
  241. package/me.tonsky.persistent_sorted_set.impl.node.js.map +1 -0
  242. package/me.tonsky.persistent_sorted_set.impl.storage.js +123 -0
  243. package/me.tonsky.persistent_sorted_set.impl.storage.js.map +1 -0
  244. package/me.tonsky.persistent_sorted_set.js +890 -0
  245. package/me.tonsky.persistent_sorted_set.js.map +1 -0
  246. package/me.tonsky.persistent_sorted_set.leaf.js +561 -0
  247. package/me.tonsky.persistent_sorted_set.leaf.js.map +1 -0
  248. package/me.tonsky.persistent_sorted_set.util.js +402 -0
  249. package/me.tonsky.persistent_sorted_set.util.js.map +1 -0
  250. package/medley.core.js +1857 -0
  251. package/medley.core.js.map +1 -0
  252. package/package.json +38 -0
  253. package/spec_tools.core.js +1925 -0
  254. package/spec_tools.core.js.map +1 -0
  255. package/spec_tools.data_spec.js +1291 -0
  256. package/spec_tools.data_spec.js.map +1 -0
  257. package/spec_tools.form.js +185 -0
  258. package/spec_tools.form.js.map +1 -0
  259. package/spec_tools.impl.js +362 -0
  260. package/spec_tools.impl.js.map +1 -0
  261. package/spec_tools.parse.js +427 -0
  262. package/spec_tools.parse.js.map +1 -0
  263. package/spec_tools.transform.js +288 -0
  264. package/spec_tools.transform.js.map +1 -0
  265. package/superv.async.js +8617 -0
  266. package/superv.async.js.map +1 -0
  267. package/tailrecursion.priority_map.js +994 -0
  268. package/tailrecursion.priority_map.js.map +1 -0
  269. package/taoensso.encore.js +12385 -0
  270. package/taoensso.encore.js.map +1 -0
  271. package/taoensso.timbre.appenders.core.js +239 -0
  272. package/taoensso.timbre.appenders.core.js.map +1 -0
  273. package/taoensso.timbre.js +1264 -0
  274. package/taoensso.timbre.js.map +1 -0
  275. package/taoensso.truss.impl.js +442 -0
  276. package/taoensso.truss.impl.js.map +1 -0
  277. package/taoensso.truss.js +743 -0
  278. package/taoensso.truss.js.map +1 -0
  279. package/test-config-keys.js +33 -0
  280. package/test-final.js +36 -0
  281. package/test-key-duplication.js +67 -0
  282. package/test.js +557 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["cljs_node_io/fs.cljs"],"mappings":"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","names":["cljs-node-io.fs/fs","js/require","cljs-node-io.fs/path","cljs-node-io.fs/sep","cljs-node-io.fs/stat->clj","st","ks","js/goog.object.getKeys","vs","js/goog.object.getValues","cljs.core.into","cljs.core.comp","p1__127101#","cljs.core.remove","cljs.core._EQ_","cljs.core.nth","cljs.core.map","p__127104","vec__127105","k","v","cljs.core.keyword","cljs.core/fn?","cljs.core/vector","cljs-node-io.fs/stat","pathstr","cljs-node-io.fs/astat","cljs.core.async.promise_chan","out","err","stats","cljs.core.async.put_BANG_","cljs-node-io.fs/lstat","cljs-node-io.fs/alstat","cljs-node-io.fs/bita->int","bita","js/parseInt","cljs-node-io.fs/stat->perm-bita","s","mode","or__5002__auto__","cljs.core.get","cljs_node_io.fs.goog$module$goog$object.get","ownr","ownw","ownx","grpr","grpw","grpx","othr","othw","othx","a","a__5587__auto__","l__5588__auto__","cljs.core/aclone","i","res","cljs-node-io.fs/permissions","cljs-node-io.fs/gid-uid","js/process","cljs-node-io.fs/hidden?","js/RegExp","cljs-node-io.fs/dir?","e127116","js/Error","_","cljs-node-io.fs/adir?","cljs.core/not","cljs-node-io.fs/file?","e127121","cljs-node-io.fs/afile?","cljs-node-io.fs/absolute?","cljs-node-io.fs/exists?","e127128","e","cljs-node-io.fs/fexists?","cljs-node-io.fs/aexists?","c","cljs-node-io.fs/afexists?","cljs-node-io.fs/readable?","e127131","cljs-node-io.fs/areadable?","cljs-node-io.fs/writable?","e127136","cljs-node-io.fs/awritable?","cljs-node-io.fs/executable?","e127139","cljs-node-io.fs/aexecutable?","cljs-node-io.fs/symlink?","e127143","cljs-node-io.fs/asymlink?","stat-ch","cljs.core.async.take_BANG_","p__127149","vec__127150","cljs-node-io.fs/dirname","pathstring","var_args","G__127157","cljs-node-io.fs/basename","ext","args__5732__auto__","len__5726__auto__","i__5727__auto__","argseq__5733__auto__","cljs.core/IndexedSeq","cljs-node-io.fs/resolve-path","seq127163","self__5712__auto__","cljs.core/seq","paths","cljs.core/every?","cljs.core/string?","cljs.core.apply","cljs.core/array","cljs-node-io.fs/normalize-path","cljs-node-io.fs/ext","cljs-node-io.fs/realpath","cljs-node-io.fs/arealpath","args","cljs.core/vec","cljs-node-io.fs/readlink","cljs-node-io.fs/areadlink","G__127183","cljs-node-io.fs/readdir","dirpath","opts","cljs.core/clj->js","G__127189","cljs-node-io.fs/areaddir","data","cljs-node-io.fs/crawl","root","f","seq__127197","chunk__127198","count__127199","i__127200","temp__5804__auto__","cljs.core/chunked-seq?","c__5525__auto__","cljs.core/chunk-first","cljs.core/chunk-rest","cljs.core/count","cljs.core/first","cljs.core/next","child","cljs.core.mapv","cljs.core.partial","cljs_node_io.fs.readdir","cljs-node-io.fs/acrawl","af","c__26357__auto__","cljs.core.async.chan","cljs.core.async.impl.dispatch/run","f__26358__auto__","switch__25947__auto__","state_127263","state_val_127264","inst_127217","inst_127218","inst_127219","statearr-127265","statearr-127266","statearr-127267","inst_127250","statearr-127268","inst_127204","cljs.core.async.impl.ioc-helpers/take!","inst_127215","inst_127248","statearr-127269","inst_127253","inst_127224","inst_127235","inst_127236","inst_127257","statearr-127270","inst_127210","statearr-127271","inst_127238","statearr-127272","inst_127208","statearr-127274","statearr-127275","statearr-127276","inst_127206","statearr-127281","statearr-127282","inst_127255","statearr-127283","inst_127245","statearr-127286","inst_127227","statearr-127287","statearr-127288","inst_127222","inst_127223","statearr-127289","statearr-127290","inst_127261","cljs.core.async.impl.ioc-helpers/return-chan","statearr-127291","inst_127239","statearr-127292","statearr-127293","statearr-127294","inst_127259","statearr-127298","inst_127242","statearr-127299","statearr-127300","statearr-127301","statearr-127303","state-machine__25948__auto__","ret-value__25949__auto__","result__25950__auto__","cljs.core/keyword-identical?","ex__25951__auto__","e127304","statearr-127305","statearr-127306","state__26359__auto__","statearr-127307","cljs.core.async.impl.ioc-helpers/USER-START-IDX","cljs.core.async.impl.ioc-helpers/run-state-machine-wrapped","cljs_node_io.fs.areaddir","cljs-node-io.fs/chmod","cljs-node-io.fs/achmod","cljs-node-io.fs/chown","uid","gid","cljs-node-io.fs/achown","cljs-node-io.fs/lchown","cljs-node-io.fs/alchown","cljs-node-io.fs/utimes","atime","mtime","cljs-node-io.fs/autimes","cljs-node-io.fs/lutimes","cljs-node-io.fs/alutimes","cljs-node-io.fs/link","src","dst","cljs-node-io.fs/alink","G__127317","cljs-node-io.fs/symlink","target","link_type","G__127320","cljs-node-io.fs/asymlink","targetstr","cljs-node-io.fs/unlink","cljs-node-io.fs/aunlink","G__127327","cljs-node-io.fs/mkdir","G__127330","cljs-node-io.fs/amkdir","G__127337","cljs-node-io.fs/rmdir","G__127339","cljs-node-io.fs/armdir","cljs-node-io.fs/rm","cljs_node_io.fs.rmdir","cljs-node-io.fs/rm-f","cljs-node-io.fs/rm-r","cljs-node-io.fs/rm-rf","cljs-node-io.fs/arm","d?","cljs_node_io.fs.armdir","ev","cljs-node-io.fs/arm-f","yes?","p1__127342#","cljs-node-io.fs/arm-r","cljs-node-io.fs/arm-rf","p1__127343#","cljs-node-io.fs/rename","oldpathstr","newpathstr","cljs-node-io.fs/arename","G__127347","cljs-node-io.fs/truncate","length","G__127349","cljs-node-io.fs/atruncate","len","cljs-node-io.fs/touch","e127351","t","js/Date","cljs-node-io.fs/atouch","fd","G__127358","cljs-node-io.fs/copy-file","cljs_node_io.fs.copy_file","G__127360","cljs-node-io.fs/acopy-file","cljs_node_io.fs.acopy_file","cljs-node-io.fs/read-file","enc","cljs-node-io.fs/aread-file","cljs-node-io.fs/write-file","content","cljs-node-io.fs/awrite-file","G__127370","cljs-node-io.fs/open","flags","G__127379","cljs-node-io.fs/aopen","cljs-node-io.fs/close","and__5000__auto__","js/Number","cljs-node-io.fs/aclose","G__127382","cljs-node-io.fs/read","buf","js/Buffer","cljs_node_io.fs.read","buffer","map__127388","cljs.core/--destructure-map","offset","position","G__127390","cljs-node-io.fs/aread","cljs_node_io.fs.aread","map__127391","G__127396","cljs-node-io.fs/write","cljs_node_io.fs.write","map__127399","G__127405","cljs-node-io.fs/awrite","cljs_node_io.fs.awrite","map__127406","cljs-node-io.fs/fsync","cljs-node-io.fs/afsync","cljs-node-io.fs/fstat","cljs-node-io.fs/afstat","G__127409","cljs-node-io.fs/ftruncate","G__127416","cljs-node-io.fs/aftruncate","cljs-node-io.fs/rl","cljs-node-io.fs/readline","in","r","js/Infinity","G__127418","cljs.core.async/close!","G__127419","line","G__127425","cljs-node-io.fs/watcher->ch","p__127426","map__127427","FSWatcher","out-ch","cljs_node_io.fs.watcher__GT_ch","key","buf-or-n","G__127428","eventType","filename","cljs.core/PROTOCOL_SENTINEL","this__5287__auto__","writer__5288__auto__","opt__5289__auto__","cljs.core/-write","cljs-node-io.fs/Watcher","cljs-node-io.fs/->Watcher","this","handler","cljs.core.async.impl.protocols/take!","G__127431","cljs-node-io.fs/watch","cljs_node_io.fs.watch","defaults","cljs.core.merge","p1__127429#","cljs.core.conj","w","G__127434","cljs-node-io.fs/watchFile","cljs_node_io.fs.watchFile","map__127435","edn?","p1__127432#","curr","prev","cljs-node-io.fs/unwatchFile","cljs.core/deref","this__5300__auto__","k__5301__auto__","this__5302__auto__","k127438","else__5303__auto__","G__127445","cljs.core/Keyword","lock-file-path","locked?","release-f","__extmap","this__5320__auto__","f__5321__auto__","init__5322__auto__","cljs.core.reduce","ret__5323__auto__","p__127446","vec__127447","k__5324__auto__","v__5325__auto__","this__5315__auto__","writer__5316__auto__","opts__5317__auto__","pr-pair__5318__auto__","keyval__5319__auto__","cljs.core/pr-sequential-writer","cljs.core.concat","cljs.core/PersistentVector","G__127437","cljs.core/RecordIter","cljs.core/-iterator","cljs.core/nil-iter","this__5298__auto__","__meta","this__5295__auto__","__hash","this__5304__auto__","this__5296__auto__","h__5111__auto__","coll__5297__auto__","cljs.core/hash-unordered-coll","this127439","other127440","this__5310__auto__","k__5311__auto__","cljs.core/contains?","cljs.core.dissoc","cljs.core/-with-meta","cljs.core/not-empty","this__5307__auto__","G__127456","this__5308__auto__","k__5309__auto__","pred__127457","expr__127458","cljs.core.assoc","this__5313__auto__","cljs.core/MapEntry","this__5299__auto__","this__5305__auto__","entry__5306__auto__","cljs.core/vector?","cljs.core/-nth","cljs.core/-conj","cljs-node-io.fs/LockFile","this__5346__auto__","cljs.core/List","writer__5347__auto__","G__127444","extmap__5342__auto__","G__127461","cljs.core/record?","cljs-node-io.fs/->LockFile","cljs-node-io.fs/map->LockFile","cljs-node-io.fs/lock-path","cljs-node-io.fs/lock-file","lock-fd","e127466","cljs_node_io.fs.open","cljs.core.atom","release","cljs.core/reset!","k127468","G__127472","p__127473","vec__127474","G__127467","this127469","other127470","G__127477","pred__127479","expr__127480","cljs-node-io.fs/AsyncLockFile","G__127471","G__127485","cljs-node-io.fs/->AsyncLockFile","cljs-node-io.fs/map->AsyncLockFile","cljs-node-io.fs/alock-file","?err"],"sourcesContent":["(ns cljs-node-io.fs \"A wrapper around node's fs module.\"\n (:refer-clojure :exclude [exists?])\n (:require-macros [cljs-node-io.macros :refer [try-true with-chan with-bool-chan with-promise]]\n [cljs.core.async.macros :refer [go]])\n (:require [cljs.core.async :as async :refer [put! take! close! promise-chan chan]]\n [cljs.core.async.impl.protocols :as impl :refer [Channel]]))\n\n(def fs (js/require \"fs\"))\n(def path (js/require \"path\"))\n(def ^{:doc \"@type {!string}\"} sep (.-sep path))\n\n(defn- stat->clj\n \"Convert a fs.Stats object to edn. Function are swapped out for their return values.\n @param {!fs.Stats} st\n @return {!IMap}\"\n [st]\n (let [ks (goog.object.getKeys st)\n vs (goog.object.getValues st)]\n (into {}\n (comp\n (remove #(= (nth % 0) \"_checkModeProperty\"))\n (map (fn [[k v]] [(keyword k) (if (fn? v) (.apply v st) v)])))\n (map vector ks vs))))\n\n(defn stat\n \"Synchronous stat\n @param {!(string|Buffer|URL)} pathstring\n @return {!IMap} file stats object converted to edn\"\n [pathstr]\n (stat->clj (.statSync fs pathstr)))\n\n(defn astat\n \"Asynchronous stat\n @param {!(string|Buffer|URL)} pathstr\n @return {!Channel} yielding [?err ?edn-stats]\"\n [pathstr]\n (with-promise out\n (.stat fs pathstr\n (fn [err stats]\n (put! out (if err [err] [nil (stat->clj stats)]))))))\n\n(defn lstat\n \"Synchronous lstat identical to stat(), except that if path is a symbolic link,\n then the link itself is stat-ed, not the file that it refers to\n @param {!(string|Buffer|URL)} pathstr\n @return {!IMap} file stats object converted to edn\"\n [pathstr]\n (stat->clj (.lstatSync fs pathstr)))\n\n(defn alstat\n \"Asynchronous lstat\n @param {!(string|Buffer|URL)} pathstr\n @return {!Channel} yielding [?err ?edn-stats]\"\n [pathstr]\n (with-promise out\n (.lstat fs pathstr\n (fn [err stats]\n (put! out (if err [err] [nil (stat->clj stats)]))))))\n\n(defn- bita->int\n \"@param {!Array<!Number>} bita :: an array of 1s an 0s\n @return {!Number} integer\"\n [bita]\n (js/parseInt (.join bita \"\") 2))\n\n(defn- stat->perm-bita\n \"@param {!(fs.Stat|IMap)} s :: a fs.Stats object (or as edn)\n @return {!Array<Number>}\"\n [s]\n (let [mode (or (get s :mode)\n (goog.object/get s \"mode\"))\n ownr (bit-and mode 256)\n ownw (bit-and mode 128)\n ownx (bit-and mode 64)\n grpr (bit-and mode 32)\n grpw (bit-and mode 16)\n grpx (bit-and mode 8)\n othr (bit-and mode 4)\n othw (bit-and mode 2)\n othx (bit-and mode 1)\n a #js [ownr ownw ownx grpr grpw grpx othr othw othx]]\n (amap a i res (if-not (zero? (aget a i)) 1 0))))\n\n(defn permissions\n \"@param {!(fs.Stat|IMap)} s :: a fs.Stats object (or as edn)\n @return {!Number}\"\n [st] (-> st stat->perm-bita bita->int))\n\n(defn gid-uid\n \"@return {!IMap}\"\n []{:gid (.getgid js/process) :uid (.getuid js/process)})\n\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n;; predicates/\n\n(defn ^boolean hidden?\n \"@param {!(string|Buffer|URL)} pathstr\n @return {!boolean} is the file hidden (unix only)\"\n [pathstr]\n (.test (js/RegExp. \"(^|\\\\/)\\\\.[^\\\\/\\\\.]\" ) pathstr))\n\n(defn ^boolean dir?\n \"@param {!(string|Buffer|URL)} pathstring\n @return {!boolean} iff abstract pathname exists and is a directory\"\n [pathstr]\n (try\n (.isDirectory (.statSync fs pathstr))\n (catch js/Error _ false)))\n\n(defn adir?\n \"Asynchronous directory predicate.\n @param {!(string|Buffer|URL)} pathstr\n @return {!Channel} yielding boolean\"\n [pathstr]\n (let [out (promise-chan)]\n (.stat fs pathstr\n (fn [err stats]\n (put! out\n (if-not err\n (.isDirectory stats)\n false))))\n out))\n\n(defn ^boolean file?\n \"Synchronous file predicate\n @param {!(string|Buffer|URL)} pathstring\n @return {!boolean} iff abstract pathname exists and is a file\"\n [pathstr]\n (try\n (.isFile (.lstatSync fs pathstr))\n (catch js/Error _ false)))\n\n(defn afile?\n \"Asynchronous file predicate.\n @param {!(string|Buffer|URL)} pathstr\n @return {!Channel} yielding boolean\"\n [pathstr]\n (let [out (promise-chan)]\n (.lstat fs pathstr\n (fn [err stats]\n (put! out (if-not err (.isFile stats) false))))\n out))\n\n(defn ^boolean absolute?\n \"@param {!string} pathstr :: path to test\n @return {!boolean} is pathstr an absolute path\"\n [pathstr]\n (assert (string? pathstr))\n (.isAbsolute path pathstr))\n\n(defn ^boolean exists?\n \"Synchronously test if a file or directory exists\n @param {!(string|Buffer|URL)} pathstr :: file path to test\n @return {!boolean}\"\n [pathstr]\n (try-true (.accessSync fs pathstr (.-F_OK fs))))\n\n(def ^{:doc \"@deprecated\"} fexists? exists?)\n\n(defn aexists?\n \"Asynchronously test if a file or directory exists\n @param {!(string|Buffer|URL)} pathstr\n @return {!Channel} yielding boolean\"\n [pathstr]\n (with-bool-chan (.access fs pathstr (.-F_OK fs))))\n\n(def ^{:doc \"@deprecated\"} afexists? aexists?)\n\n(defn ^boolean readable?\n \"Synchronously test if a file is readable to the process\n @param {!(string|Buffer|URL)} pathstr :: path to test for process read permission\n @return {!boolean}\"\n [pathstr]\n (try-true (.accessSync fs pathstr (.-R_OK fs))))\n\n(defn areadable?\n \"Asynchronously test if a file is readable to the process\n @param {!(string|Buffer|URL)} pathstr\n @return {!Channel} yielding boolean\"\n [pathstr]\n (with-bool-chan (.access fs pathstr (.-R_OK fs))))\n\n(defn ^boolean writable?\n \"Synchronously test if a file is writable to the process\n @param {!(string|Buffer|URL)} pathstr :: path to test for process write permission\n @return {!boolean}\"\n [pathstr]\n (try-true (.accessSync fs pathstr (.-W_OK fs))))\n\n(defn awritable?\n \"Asynchronously test if a file is writable to the process\n @param {!(string|Buffer|URL)} pathstr :: path to test for process write permission\n @return {!Channel} yielding boolean\"\n [pathstr]\n (with-bool-chan (.access fs pathstr (.-W_OK fs))))\n\n(defn ^boolean executable?\n \"@param {!(string|Buffer|URL)} pathstr :: path to test for process executable permission\n @return {!boolean}\"\n [pathstr]\n (if-not (= \"win32\" (.-platform js/process))\n (try-true (.accessSync fs pathstr (.-X_OK fs)))\n (throw (js/Error \"Testing if a file is executable has no effect on Windows\"))))\n\n(defn aexecutable?\n \"Asynchronously test if a file is executable to the process\n @param {!(string|Buffer|URL)} pathstr :: path to test for process execute permission\n @return {!Channel} yielding boolean\"\n [pathstr]\n (if-not (= \"win32\" (.-platform js/process))\n (with-bool-chan (.access fs pathstr (.-X_OK fs)))\n (throw (js/Error \"Testing if a file is executable has no effect on Windows\"))))\n\n(defn ^boolean symlink?\n \"Synchronous test for symbolic link\n @param {!(string|Buffer|URL)} pathstr :: path to test\n @return {!boolean}\"\n [pathstr]\n (let [stats (try (lstat pathstr) (catch js/Error e false))]\n (if-not stats\n false\n (.isSymbolicLink stats))))\n\n(defn asymlink?\n \"Asynchronously test if path is a symbolic link\n @param {!(string|Buffer|URL)} pathstr :: path to test\n @return {!Channel} yielding boolean\"\n [pathstr]\n (let [c (promise-chan)\n stat-ch (alstat pathstr)]\n (take! stat-ch\n (fn [[err stats]]\n (put! c (if-not err (.isSymbolicLink stats) false))))\n c))\n\n;; /predicates\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n;; path utilities + Reads\n\n(defn dirname\n \"@param {!string} pathstring :: path to get parent of\n @return {!string} the parent directory\"\n [pathstring]\n (assert (string? pathstring))\n (.dirname path pathstring))\n\n(defn basename\n \"@return {!string}\"\n ([pathstring]\n (assert (string? pathstring))\n (.basename path pathstring))\n ([pathstring ext]\n (assert (string? pathstring))\n (.basename path pathstring ext)))\n\n(defn resolve-path\n \"@return {!string}\"\n [& paths]\n (assert (every? string? paths))\n (.apply (.-resolve path) nil (apply array paths)))\n\n(defn normalize-path\n \"@param {!string} pathstring :: pathstring to normalize\n @return {!string}\"\n [pathstring]\n (assert (string? pathstring))\n (.normalize path pathstring))\n\n(defn ext\n \"@param {!string} pathstring :: file to get extension from\n @return {!string}\"\n [pathstring]\n (assert (string? pathstring))\n (.extname path pathstring))\n\n(defn realpath\n \"Synchronous realpath\n Computes the canonical pathname by resolving ., .., and symbolic links.\n {@link https://nodejs.org/api/fs.html#fsrealpathsyncpath-options}\n @param {!(string|Buffer|URL)} pathstr\n @return {!string} resolved path\"\n [pathstr]\n (.realpathSync fs pathstr))\n\n(defn arealpath\n \"Asynchronous realpath.\n Computes the canonical pathname by resolving ., .., and symbolic links.\n {@link https://nodejs.org/api/fs.html#fsrealpathpath-options-callback}\n @param {!(string|Buffer|URL)} pathstr\n @return {!Channel} yielding [?err ?resolvedPathstr]\"\n [pathstr]\n (with-chan (.realpath fs pathstr)))\n\n(defn readlink\n \"Synchronous readlink.\n Reads the contents of the symbolic link referred to by path.\n {@link https://nodejs.org/api/fs.html#fsreadlinksyncpath-options}\n @param {!(string|Buffer|URL)} pathstr :: the symbolic link to read\n @return {!string} the symbolic link's string value\"\n [pathstr]\n (.readlinkSync fs pathstr))\n\n(defn areadlink\n \"Asynchronous readlink.\n Reads the contents of the symbolic link referred to by path.\n {@link https://nodejs.org/api/fs.html#fsreadlinkpath-options-callback}\n @param {!(string|Buffer|URL)} pathstr :: the symbolic link to read\n @return {!Channel} yielding [?err ?linkstring]\"\n [pathstr]\n (with-chan (.readlink fs pathstr)))\n\n(defn readdir\n \"Synchronously reads directory content\n {@link https://nodejs.org/api/fs.html#fsreaddirsyncpath-options}\n @param {!(string|Buffer|URL)} dirpath :: directory path to read\n @param {?IMap} opts :: options\n :encoding (string) -> defaults to 'utf8'\n :withFileTypes (bool) -> return fs.Dirent objects instead of strings. see\n {@link https://nodejs.org/api/fs.html#class-fsdirent}\n @return {!IVector} Vector<strings> representing directory content\"\n ([dirpath] (vec (.readdirSync fs dirpath)))\n ([dirpath opts] (vec (.readdirSync fs dirpath (clj->js opts)))))\n\n(defn areaddir\n \"Asynchronously reads directory content\n {@link https://nodejs.org/api/fs.html#fsreaddirpath-options-callback}\n @param {!(string|Buffer|URL)} dirpath :: directory path to read\n @param {?IMap} opts :: options\n :encoding (string) -> defaults to 'utf8'\n :withFileTypes (bool) -> return fs.Dirent objects instead of strings. see\n {@link https://nodejs.org/api/fs.html#class-fsdirent}\n @return {!Channel} yielding [?err, ?Vector<string|fs.Dirent>]\"\n ([dirpath]\n (with-chan (.readdir fs dirpath) vec))\n ([dirpath opts]\n (with-chan (.readdir fs dirpath (clj->js opts)) vec)))\n\n(defn crawl\n \"Synchronous depth-first recursive crawl through a directory tree, calling the supplied\n side-effecting function on every node. This function will throw if your supplied\n f throws on any node.\n @param {!string} root :: where to start the crawl. A file simply returns (f root)\n @param {!function<string>} f :: function called on both files & directories\n returns value of (f top-level-root)\"\n [root f]\n (assert (fn? f))\n (if (file? root)\n (f root)\n (do\n (doseq [child (mapv (partial resolve-path root) (readdir root))]\n (crawl child f))\n (f root))))\n\n(defn acrawl\n \"Asynchronous depth-first recursive crawl through a directory tree, calling the supplied\n potentially side-effecting function on every node. This function will short\n and return on an error.\n\n The user supplied function must return a 'result-chan'...a Readport/channel\n yielding [?err, ?ok]. There is no easy way to get the compiler to enforce this!\n\n @param {!string} root :: where to start the crawl. A file simply returns (af root)\n @param {!function<string>} af :: async function called on both files & directories\n @return {!Channel} yields a short circuited [err] or [nil ok].\n This depends on the user following the result chan conventions.\"\n [root af]\n (assert (fn? af))\n (go\n (if (<! (afile? root))\n (<! (af root))\n (let [[err names :as res] (<! (areaddir root))]\n (if err\n res\n (or (loop [children (mapv (partial resolve-path root) names)]\n (when (seq children)\n (let [[err :as res] (<! (acrawl (first children) af))]\n (if err\n res\n (recur (next children))))))\n (<! (af root))))))))\n\n;; /path utilities + reads\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n;; writes/\n\n(defn chmod\n \"Synchronous chmod\n {@link https://nodejs.org/api/fs.html#fsfchmodsyncfd-mode}\n @param {!(string|Buffer|URL)} pathstr\n @param {!Number} mode :: must be an integer\n @return {nil}\"\n [pathstr mode]\n (.chmodSync fs pathstr mode))\n\n(defn achmod\n \"Asynchronous chmod\n {@link https://nodejs.org/api/fs.html#fschmodpath-mode-callback}\n @param {!(string|Buffer|URL)} pathstr\n @param {!Number} mode :: must be an integer\n @return {!Channel} yielding [?err]\"\n [pathstr mode]\n (with-chan (.chmod fs pathstr mode)))\n\n(defn chown\n \"Synchronous chown\n {@link https://nodejs.org/api/fs.html#fschownsyncpath-uid-gid}\n @param {!(string|Buffer|URL)} pathstr\n @param {!Number} uid\n @param {!Number} gid\n @return {nil}\"\n [pathstr uid gid]\n (.chownSync fs pathstr uid gid))\n\n(defn achown\n \"Asynchronous chown\n {@link https://nodejs.org/api/fs.html#fschownpath-uid-gid-callback}\n @param {!(string|Buffer|URL)} pathstr\n @param {!Number} uid\n @param {!Number} gid\n @return {!Channel} yielding [?err]\"\n [pathstr uid gid]\n (with-chan (.chown fs pathstr uid gid)))\n\n(defn lchown\n \"Synchronous lchown\n {@link https://nodejs.org/api/fs.html#fslchownsyncpath-uid-gid}\n @param {!(string|Buffer|URL)} pathstr\n @param {!Number} uid\n @param {!Number} gid\n @return {nil}\"\n [pathstr uid gid]\n (.lchownSync fs pathstr uid gid))\n\n(defn alchown\n \"Asynchronous lchown\n {@link https://nodejs.org/api/fs.html#fslchownpath-uid-gid-callback}\n @param {!(string|Buffer|URL)} pathstr\n @param {!Number} uid\n @param {!Number} gid\n @return {!Channel} yielding [?err]\"\n [pathstr uid gid]\n (with-chan (.lchown fs pathstr uid gid)))\n\n(defn utimes\n \"synchronous utimes\n Change the file system timestamps of the object referenced by path.\n - If the value is NaN or Infinity, the value would get converted to Date.now()\n - numerable strings ie '12235' are converted to numbers\n {@link https://nodejs.org/api/fs.html#fsutimessyncpath-atime-mtime}\n @param {!(string|Buffer|URL)} pathstr\n @param {(string|Number)} atime\n @param {(string|Number)} mtime\n @return {nil}\"\n [pathstr atime mtime]\n (.utimesSync fs pathstr atime mtime))\n\n(defn autimes\n \"asynchronous utimes.\n Change the file system timestamps of the object referenced by path.\n - If the value is NaN or Infinity, the value would get converted to Date.now()\n - numerable strings ie '12235' are converted to numbers\n {@link https://nodejs.org/api/fs.html#fsutimespath-atime-mtime-callback}\n @param {!(string|Buffer|URL)} pathstr\n @param {(string|Number)} atime\n @param {(string|Number)} mtime\n @return {!Channel} yielding [?err]\"\n [pathstr atime mtime]\n (assert (string? pathstr))\n (with-chan (.utimes fs pathstr atime mtime)))\n\n(defn lutimes\n \"synchronous lutimes\n - same as utimes but symbolic links are not derefed\n - If the value is NaN or Infinity, the value would get converted to Date.now()\n - numerable strings ie '12235' are converted to numbers\n {@link https://nodejs.org/api/fs.html#fslutimessyncpath-atime-mtime}\n @param {!(string|Buffer|URL)} pathstr\n @param {(string|Number)} atime\n @param {(string|Number)} mtime\n @return {nil}\"\n [pathstr atime mtime]\n (.lutimesSync fs pathstr atime mtime))\n\n(defn alutimes\n \"asynchronous lutimes\n - same as utimes but symbolic links are not derefed\n - If the value is NaN or Infinity, the value would get converted to Date.now()\n - numerable strings ie '12235' are converted to numbers\n {@link https://nodejs.org/api/fs.html#fslutimespath-atime-mtime-callback}\n @param {!(string|Buffer|URL)} pathstr\n @param {(string|Number)} atime\n @param {(string|Number)} mtime\n @return {!Channel} yielding [?err]\"\n [pathstr atime mtime]\n (with-chan (.lutimes fs pathstr atime mtime)))\n\n(defn link\n \"Synchronously creates a new link from the src to dst\n Will not overwrite newpath if it exists.\n {@link https://nodejs.org/api/fs.html#fslinksyncexistingpath-newpath}\n @param {!(string|Buffer|URL)} src\n @param {!(string|Buffer|URL)} dst\n @return {nil}\"\n [src dst]\n (.linkSync fs src dst))\n\n(defn alink\n \"Asynchronously creates a new link from the src to dst.\n Will not overwrite newpath if it exists.\n {@link https://nodejs.org/api/fs.html#fslinkexistingpath-newpath-callback}\n @param {!(string|Buffer|URL)} src\n @param {!(string|Buffer|URL)} dst\n @return {!Channel} yielding [?err]\"\n [src dst]\n (with-chan (.link fs src dst)))\n\n(defn symlink\n \"Synchronous symlink.\n {@link https://nodejs.org/api/fs.html#fssymlinksynctarget-path-type}\n @param {!(string|Buffer|URL)} target :: what gets pointed to\n @param {!(string|Buffer|URL)} pathstr :: the new symbolic link that points to target\n @param {?string} link_type ::'file' or 'dir'\n @return {nil}\"\n ([target pathstr] (.symlinkSync fs target pathstr))\n ([target pathstr link_type] (.symlinkSync fs target pathstr link_type)))\n\n(defn asymlink\n \"Synchronous symlink.\n {@link https://nodejs.org/api/fs.html#fssymlinktarget-path-type-callback}\n @param {!(string|Buffer|URL)} targetstr :: what gets pointed to\n @param {!(string|Buffer|URL)} pathstr :: the new symbolic link that points to target\n @param {?string} link_type ::'file' or 'dir'\n @return {!Channel} yielding [?err]\"\n ([targetstr pathstr]\n (with-chan (.symlink fs targetstr pathstr)))\n ([targetstr pathstr link_type]\n (with-chan (.symlink fs targetstr pathstr link_type))))\n\n(defn unlink\n \"Synchronously unlink a file.\n {@link https://nodejs.org/api/fs.html#fsunlinksyncpath}\n @param {!(string|Buffer|URL)} pathstr :: path of file to unlink\n @return {nil}\"\n [pathstr]\n (.unlinkSync fs pathstr))\n\n(defn aunlink\n \"Asynchronously unlink a file\n {@link https://nodejs.org/api/fs.html#fsunlinkpath-callback}\n @param {!(string|Buffer|URL)} pathstr :: path of file to unlink\n @return {!Channel} yielding [?err]\"\n [pathstr]\n (assert (string? pathstr))\n (with-chan (.unlink fs pathstr)))\n\n(defn mkdir\n \"Synchronously create a directory\n {@link https://nodejs.org/api/fs.html#fsmkdirsyncpath-options}\n @param {!(string|Buffer|URL)} pathstr :: path of directory to create\n @param {?IMap} opts\n :recursive (boolean) -> the first directory path created.\n :mode (string|Number)\n @return {nil}\"\n ([pathstr] (.mkdirSync fs pathstr))\n ([pathstr opts] (.mkdirSync fs pathstr (clj->js opts))))\n\n(defn amkdir\n \"Asynchronously create a directory\n {@link https://nodejs.org/api/fs.html#fsmkdirpath-options-callback}\n @param {!(string|Buffer|URL)} pathstr :: path of directory to create\n @param {?IMap} opts\n :recursive (boolean) -> the first directory path created.\n :mode (string|number)\n @return {!Channel} yielding [?err]\"\n ([pathstr] (with-chan (.mkdir fs pathstr)))\n ([pathstr opts] (with-chan (.mkdir fs pathstr (clj->js opts)))))\n\n(defn rmdir\n \"Synchronously remove a directory.\n {@link https://nodejs.org/api/fs.html#fsrmdirsyncpath-options}\n @param {!(string|Buffer|URL)} pathstr :: path of directory to remove\n @param {?IMap} opts\n :maxRetries (number)\n :retryDelay (number)\n @return {nil}\"\n ([pathstr](.rmdirSync fs pathstr))\n ([pathstr opts](.rmdirSync fs pathstr (clj->js opts))))\n\n(defn armdir\n \"Asynchronously remove a directory\n {@link https://nodejs.org/api/fs.html#fsrmdirpath-options-callback}\n @param {!(string|Buffer|URL)} pathstr :: path of directory to remove\n @param {?IMap} opts\n :maxRetries (number)\n :retryDelay (number)\n @return {!Channel} yielding [?err]\"\n ([pathstr](with-chan (.rmdir fs pathstr)))\n ([pathstr opts](with-chan (.rmdir fs pathstr (clj->js opts)))))\n\n(defn rm\n \"Synchronously delete the file or directory path\n @param {!string} pathstr :: can be file or directory\n @return {nil}\"\n [pathstr]\n (if (dir? pathstr)\n (rmdir pathstr)\n (unlink pathstr)))\n\n(defn rm-f\n \"Synchronously delete the file or directory path\n Ignores paths that do not exist.\n @param {!string} pathstr :: can be file or directory\n @return {nil}\"\n [pathstr]\n (when (exists? pathstr)\n (rm pathstr)))\n\n(defn rm-r\n \"Synchronous recursive delete. Throws when doesnt exist\n @param {!(string|Buffer|URL)} pathstr :: file/dir to recursively delete.\n @return {nil}\"\n [pathstr]\n (crawl pathstr rm))\n\n(defn rm-rf\n \"Synchronous recursive delete. Ignores paths that do not exist.\n @param {!(string|Buffer|URL)} pathstr :: file/dir to recursively delete.\n @return {nil}\"\n [pathstr]\n (when (exists? pathstr)\n (crawl pathstr rm)))\n\n(defn arm\n \"Asynchronously delete the file or directory path\n @param {!(string|Buffer|URL)} pathstr\n @return {!Channel} yielding [?err]\"\n [pathstr]\n (with-promise out\n (take! (adir? pathstr)\n (fn [d?]\n (take! (if d? (armdir pathstr) (aunlink pathstr))\n (fn [ev] (put! out ev)))))))\n\n(defn arm-f\n \"Asynchronously delete the file or directory path\n Ignores paths that do not exist.\n @param {!(string|Buffer|URL)} pathstr\n @return {!Channel} yielding [?err]\"\n [pathstr]\n (with-promise out\n (take! (aexists? pathstr)\n (fn [yes?]\n (if ^boolean yes?\n (take! (arm pathstr) #(put! out %))\n (put! out [nil]))))))\n\n(defn arm-r\n \"Asynchronous recursive delete. Ignores paths that do not exist.\n Crawls in order provided by readdir and makes unlink/rmdir calls sequentially\n after the previous has completed. Breaks on any err which is returned as [err]\n Returns err on does not exist.\n @param {!(string|Buffer|URL)} pathstr\n @return {!Channel} yielding [?err]\"\n [pathstr]\n (acrawl pathstr arm))\n\n(defn arm-rf\n \"Asynchronous recursive delete. Ignores paths that do not exist.\n Crawls in order provided by readdir and makes unlink/rmdir calls sequentially\n after the previous has completed. Breaks on any err which is returned as [err]\n Returns err on does not exist.\n @param {!(string|Buffer|URL)} pathstr\n @return {!Channel} yielding [?err]\"\n [pathstr]\n (with-promise out\n (take! (aexists? pathstr)\n (fn [yes?]\n (if ^boolean yes?\n (take! (acrawl pathstr arm) #(put! out %))\n (put! out [nil]))))))\n\n(defn rename\n \"Synchronously rename a file.\n {@link https://nodejs.org/api/fs.html#fsrenamesyncoldpath-newpath}\n @param {!(string|Buffer|URL)} oldpathstr :: file to rename\n @param {!(string|Buffer|URL)} newpathstr :: what to rename it to\n @return {nil}\"\n [oldpathstr newpathstr]\n (.renameSync fs oldpathstr newpathstr))\n\n(defn arename\n \"Asynchronously rename a file\n {@link https://nodejs.org/api/fs.html#fsrenameoldpath-newpath-callback}\n @param {!(string|Buffer|URL)} oldpathstr :: file to rename\n @param {!(string|Buffer|URL)} newpathstr :: what to rename it to\n @return {!Channel} yielding [?err]\"\n [oldpathstr newpathstr]\n (with-chan (.rename fs oldpathstr newpathstr)))\n\n(defn truncate\n \"Synchronous truncate\n {@link https://nodejs.org/api/fs.html#fstruncatesyncpath-len}\n @param {!(string|Buffer|URL)} pathstr\n @param {?number} length\n @return {nil}\"\n ([pathstr]\n (.truncateSync fs pathstr))\n ([pathstr length]\n (.truncateSync fs pathstr length)))\n\n(defn atruncate\n \"Asynchronous truncate\n {@link https://nodejs.org/api/fs.html#fstruncatepath-len-callback}\n @param {!(string|Buffer|URL)} pathstr\n @param {?number} len\n @return {!Channel} yielding [?err]\"\n ([pathstr]\n (with-chan (.truncate fs pathstr)))\n ([pathstr len]\n (with-chan (.truncate fs pathstr len))))\n\n(defn touch\n \"Creates a file if non-existent\n @param {!string} pathstr\n @return {nil}\"\n [pathstr]\n (try\n (let [t (js/Date.)]\n (.utimesSync fs pathstr t t))\n (catch js/Error _\n (.closeSync fs (.openSync fs pathstr \"w\")))))\n\n(defn atouch\n \"creates a file if non-existent\n @param {!string} pathstr\n @return {!Channel} yielding [?err]\"\n [pathstr]\n (with-promise out\n (let [t (js/Date.)]\n (.utimes fs pathstr t t\n (fn [err]\n (if (nil? err)\n (put! out [nil])\n (.open fs pathstr \"w\"\n (fn [err fd]\n (if err\n (put! out [err])\n (.close fs fd (fn [err] (put! out [err]))))))))))))\n\n(defn copy-file\n \"Synchronously copy file from src to dst. By default dst is overwritten.\n {@link https://nodejs.org/api/fs.html#fscopyfilesyncsrc-dest-mode}\n @param {(string|buffer.Buffer|URL)} src\n @param {(string|buffer.Buffer|URL)} dst\n @return {nil}\"\n ([src dst]\n (copy-file src dst 0))\n ([src dst mode]\n (.copyFileSync fs src dst mode)))\n\n(defn acopy-file\n \"Asynchronously copy file from src to dst. By default dst is overwritten.\n {@link https://nodejs.org/api/fs.html#fscopyfilesrc-dest-mode-callback}\n @param {(string|buffer.Buffer|URL)} src\n @param {(string|buffer.Buffer|URL)} dst\n @return {!Channel} yielding [?err]\"\n ([src dst]\n (acopy-file src dst 0))\n ([src dst mode]\n (with-chan (.copyFile fs src dst mode))))\n\n;; /writes\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n;; read+write Files\n\n(defn read-file\n \"@param {!string} pathstr :: the file path to read\n @param {!string} enc :: encoding , if \\\"\\\" (an explicit empty string), => raw buffer\n @return {(buffer.Buffer|string)}\"\n [pathstr enc] (.readFileSync fs pathstr enc))\n\n(defn aread-file\n \"@param {!string} pathstr\n @param {!string} enc :: if \\\"\\\" (an explicit empty string) => raw buffer\n @return {!Channel} yielding [?err (str|Buffer)]\"\n [pathstr enc]\n (with-chan (.readFile fs pathstr enc)))\n\n(defn write-file\n \"synchronously writes content to file represented by pathstring.\n @param {!string} pathstr :: file to write to\n @param {(string|buffer.Buffer)} content :: if buffer, :encoding is ignored\n @param {?IMap} opts:\n :encoding {string} - defaults to utf8. use\n :append {bool} - add content to existing file.\n :flags {string} - overrides :append when set\n :mode {int} - set on newly created files\n @return {nil}\"\n [pathstr content opts]\n (.writeFileSync fs pathstr content\n #js{\"flag\" (or (:flags opts) (if (:append opts) \"a\" \"w\"))\n \"mode\" (or (:mode opts) 438)\n \"encoding\" (or (:encoding opts) \"utf8\")}))\n\n(defn awrite-file\n \"Asynchronously write to a file.\n @param {!string} pathstring : file to write to\n @param {(string|buffer.Buffer)} content : if buffer, :encoding is ignored\n @param {?IMap} opts:\n :encoding {string} - defaults to utf8. use\n :append {bool} - add content to existing file.\n :flags {string} - overrides :append when set\n :mode {int} - set on newly created files\n @return {!Channel} promise-chan recieving [?err]\"\n [pathstring content opts]\n (with-chan\n (.writeFile fs pathstring content\n #js{\"flag\" (or (:flags opts) (if (:append opts) \"a\" \"w\"))\n \"mode\" (or (:mode opts) 438)\n \"encoding\" (or (:encoding opts) \"utf8\")})))\n\n;; /read+write Files\n;;==============================================================================\n;; File Descriptors\n\n(defn ^number open\n \"Synchronously open a file-descriptor\n {@link https://nodejs.org/api/fs.html#fsopenpath-flags-mode-callback}\n @param {!string} pathstr\n @return {!Number} integer file-descriptor\"\n ([pathstr]\n (.openSync fs pathstr \"r\"))\n ([pathstr flags]\n (.openSync fs pathstr flags))\n ([pathstr flags mode]\n (.openSync fs pathstr flags mode)))\n\n(defn aopen\n \"Asynchronously open a file-descriptor\n {@link https://nodejs.org/api/fs.html#fsopenpath-flags-mode-callback}\n @param {!string} pathstr\n @return {!Channel} yielding [?err ?fd]\"\n ([pathstr]\n (with-chan (.open fs pathstr \"r\")))\n ([pathstr flags]\n (with-chan (.open fs pathstr flags)))\n ([pathstr flags mode]\n (with-chan (.open fs pathstr flags mode))))\n\n(defn close\n \"Synchronously close a file-descriptor\n {@link https://nodejs.org/api/fs.html#fsclosesyncfd}\n @param {Number} fd :: the file descriptor to close\n @return {nil}\"\n [fd]\n (assert (and (number? fd) (.isInteger js/Number fd)))\n (.closeSync fs fd))\n\n(defn aclose\n \"Asynchronously close a file-descriptor\n {@link https://nodejs.org/api/fs.html#fsclosefd-callback}\n @param {Number} fd :: the file descriptor to close\n @return {Channel} yielding [?err]\"\n [fd]\n (with-chan (.close fs fd)))\n\n(defn ^number read\n \"Synchronously read data from the fd into the specified buffer\n {@link https://nodejs.org/api/fs.html#fsreadsyncfd-buffer-offset-length-position}\n Can pass arguments individually or as a map:\n :buffer (Buffer|ArrayBuffer) - where data will be written\n :offset (Number) - where to start writing in the buffer\n :length (Number) - how many bytes to read from fd\n :pos (Number|Bigint) - Where to begin reading. if -1 reads from current-pos\n @return {!Number} number of bytes read\"\n ([fd opts]\n (let [buf (:buffer opts)]\n (assert (.isBuffer js/Buffer buf) \":buffer entry needed to read from a fd\")\n (read fd (:buffer opts) opts)))\n ([fd buffer opts]\n (let [{:keys [offset length position]} opts\n offset (or offset 0)\n length (or length (.-byteLength buffer))\n position (or position 0)]\n (read fd buffer offset length position)))\n ([fd buffer offset length position]\n (.readSync fs fd buffer offset length position)))\n\n(defn aread\n \"Asynchronously read data from the fd into the specified buffer\n {@link https://nodejs.org/api/fs.html#fsreadfd-buffer-offset-length-position-callback}\n Can pass arguments individually or as a map:\n :buffer (Buffer|ArrayBuffer) - where data will be written\n :offset (Number) - where to start writing in the buffer\n :length (Number) - how many bytes to read from fd\n :pos (Number|Bigint) - Where to begin reading. if -1 reads from current-pos\n @return {!Channel} yielding [?err bytes-read buffer]\"\n ([fd opts]\n (let [buf (:buffer opts)]\n (assert (.isBuffer js/Buffer buf) \":buffer entry needed to read from a fd\")\n (aread fd (:buffer opts) opts)))\n ([fd buffer opts]\n (let [{:keys [offset length position]} opts\n offset (or offset 0)\n length (or length (.-byteLength buffer))\n position (or position 0)]\n (aread fd buffer offset length position)))\n ([fd buffer offset length position]\n (with-chan (.read fs fd buffer offset length position))))\n\n(defn ^number write\n \"Synchronously write data from the buffer to the fd\n {@link https://nodejs.org/api/fs.html#fswritesyncfd-buffer-offset-length-position}\n Can pass arguments individually or as a map:\n :buffer (Buffer|ArrayBuffer) - data to be written\n :offset (Number) - where to start reading in the buffer\n :length (Number) - how many bytes to read\n :pos (Number|Bigint) - where to begin writing in the fd\n @return {!Number} number of bytes written\"\n ([fd opts]\n (let [buf (:buffer opts)]\n (assert (.isBuffer js/Buffer buf) \":buffer entry needed to read from a fd\")\n (write fd (:buffer opts) opts)))\n ([fd buffer opts]\n (let [{:keys [offset length position]} opts\n offset (or offset 0)\n length (or length (- (.-byteLength buffer) offset))\n position (or position 0)]\n (write fd buffer offset length position)))\n ([fd buffer offset length position]\n (.writeSync fs fd buffer offset length position)))\n\n(defn awrite\n \"Asynchronously write data from the buffer to the fd\n {@link https://nodejs.org/api/fs.html#fswritesyncfd-buffer-offset-length-position}\n Can pass arguments individually or as a map:\n :buffer (Buffer|ArrayBuffer) - data to be written\n :offset (Number) - where to start reading in the buffer\n :length (Number) - how many bytes to read\n :pos (Number|Bigint) - where to begin writing in the fd\n @return {!Channel} yielding [?err bytes-written buffer]\"\n ([fd opts]\n (let [buf (:buffer opts)]\n (assert (.isBuffer js/Buffer buf) \":buffer entry needed to read from a fd\")\n (awrite fd (:buffer opts) opts)))\n ([fd buffer opts]\n (let [{:keys [offset length position]} opts\n offset (or offset 0)\n length (or length (- (.-byteLength buffer) offset))\n position (or position 0)]\n (awrite fd buffer offset length position)))\n ([fd buffer offset length position]\n (with-chan (.write fs fd buffer offset length position))))\n\n(defn fsync\n \"Synchronously flush to storage\n {@link https://nodejs.org/api/fs.html#fsfstatsyncfd-options}\n @param {!Number} fd\n @return {nil}\"\n [fd]\n (.fsyncSync fs fd))\n\n(defn afsync\n \"Asynchronously flush to storage\n {@link https://nodejs.org/api/fs.html#fsfsyncfd-callback}\n @param {!Number} fd\n @return {Channel} yielding [?err]\"\n [fd]\n (with-chan (.fsync fs fd)))\n\n(defn fstat\n \"Synchronously retrieve a stats map from the file descriptor\n {@link https://nodejs.org/api/fs.html#fsfstatsyncfd-options}\n @param {!Number} fd\n @return {!IMap} edn stats\"\n [fd]\n (stat->clj (.fstatSync fd)))\n\n(defn afstat\n \"Asynchronously retrieve a stats map from the file descriptor\n {@link https://nodejs.org/api/fs.html#fsfstatfd-options-callback}\n @param {!Number} fd\n @param {!Channel} yielding [?err edn-stats]\"\n [fd]\n (with-promise out\n (.fstat fs fd\n (fn [err stats]\n (put! out (if err [err] [nil (stat->clj stats)]))))))\n\n(defn ftruncate\n \"Synchronous ftruncate\n {@link https://nodejs.org/api/fs.html#fsftruncatesyncfd-len}\n @param {!Number} fd\n @param {?Number} len\n @return {nil}\"\n ([fd]\n (.ftruncateSync fs fd))\n ([fd len]\n (.ftruncateSync fs fd len)))\n\n(defn aftruncate\n \"Asynchronous ftruncate\n {@link https://nodejs.org/api/fs.html#fsftruncatefd-len-callback}\n @param {!Number} fd\n @param {?Number} len\n @return {!Channel} yielding [?err]\"\n ([fd]\n (with-chan (.ftruncate fs fd)))\n ([fd len]\n (with-chan (.ftruncate fs fd len))))\n\n;; /fd\n;;==============================================================================\n\n(def rl (js/require \"readline\"))\n\n(defn readline\n \"A simple file line reader.\n @param {!string} pathstr\n @return {!Channel} chan receiving [?err ?line] until file is consumed,\n and then the channel closes.\"\n [pathstr]\n (let [out (chan 10)\n in (.createReadStream fs pathstr)\n _(set! (.-in out) in)\n r (.createInterface rl #js{:input in :crlfDelay js/Infinity})]\n (doto in\n (.on \"error\" (fn [e] (put! out [e])))\n (.on \"close\" #(close! out)))\n (doto r\n (.on \"line\" (fn [line] (put! out [nil line]))))\n out))\n\n;;==============================================================================\n;; watch\n\n(defn watcher->ch\n ([FSWatcher out-ch] (watcher->ch FSWatcher out-ch nil))\n ([FSWatcher out-ch {:keys [key buf-or-n] :or {buf-or-n 10}}]\n (let []\n (doto FSWatcher\n (.on \"change\"\n (fn [eventType filename] ;[string string|Buffer]\n (put! out-ch [(keyword eventType)])))\n (.on \"error\" (fn [e] (put! out-ch [:error [e]]))))\n out-ch)))\n\n(deftype Watcher [FSWatcher out]\n impl/ReadPort\n (take! [this handler] (impl/take! out handler))\n Object\n (close [this]\n (.close FSWatcher)\n (put! out [:close] #(close! out))))\n\n(defn watch\n \"Watch a file or directory.\n Make note of caveats https://nodejs.org/api/fs.html#fs_caveats\n events : 'rename', 'change' , 'error', 'close'\n opts :\n :peristent {boolean} (true) :: whether the process should continue as long as files are being watched.\n :recursive {boolean} (false) :: watch subdirectories\n :buf-or-n {(impl/Buffer|number)} (10) :: channel buffer\n :encoding {string} ('utf8') :: used to interpret passed filename\n @return {!Watcher}\"\n ([filename] (watch filename nil))\n ([filename opts]\n (let [defaults {:persistent true\n :recursive false\n :encoding \"utf8\"\n :buf-or-n 10}\n opts (merge defaults opts)\n key (or (get opts :key) filename)\n out (chan (get opts :buf-or-n) (map #(conj [key] %)))\n w (.watch fs filename (clj->js opts))]\n (->Watcher w (watcher->ch w out)))))\n\n(defn watchFile\n \"Prefer watch. Polls files and returns stat objects. Opts:\n :peristent {boolean} (true) :: whether the process should continue as long as files are being watched.\n :interval {number} (5007) :: polling interval in msecs\n :buf-or-n {(impl/Buffer|number)} (10) :: channel buffer\n @return {!Channel} yielding [filename [current fs.stat, previous fs.stat]]\"\n ([filename] (watchFile filename nil))\n ([filename opts]\n (let [defaults {:interval 5007\n :persistent true\n :buf-or-n 10}\n {:keys [edn? buf-or-n] :as opts} (merge defaults opts)\n out (chan buf-or-n (map #(conj [filename] %)))\n w (.watchFile fs filename (clj->js opts)\n (fn [curr prev]\n (put! out [(stat->clj curr)(stat->clj prev)])))]\n out)))\n\n(defn unwatchFile\n \"remove all watchers from a file\n @param {!string} pathstr\n @return {nil}\"\n [pathstr]\n (.unwatchFile fs pathstr))\n\n;; /watch\n;;==============================================================================\n;; Lock Files\n\n(defrecord LockFile [lock-file-path locked? release-f]\n Object\n (isValid [this] @locked?)\n (release [this] (release-f))\n (close [this] (release-f)))\n\n(defn lock-path\n [pathstr]\n (str pathstr \".LOCK\"))\n\n(defn lock-file\n \"Attempts to synchronously open a lock-file exclusively. This prevents\n future openings until the holding lock has been released, thereby can\n use to prevent reads and writes within a process.\n If a lock is already held, will throw\n @param {string} pathstr :: the file you want to lock\n @return {LockFile} record with .release() method to unlock the file\"\n [pathstr]\n (let [lock-file-path (lock-path pathstr)\n lock-fd (try\n (open lock-file-path \"wx+\")\n (catch js/Error e\n (throw (js/Error. (str \"Failed to acquire lock for path: '\" pathstr \"':\\n\" (.-message e))))))\n locked? (atom true)\n release #(when ^boolean @locked?\n (.closeSync fs lock-fd)\n (.unlinkSync fs lock-file-path)\n (reset! locked? false))]\n (LockFile. lock-file-path locked? release)))\n\n(defrecord AsyncLockFile [lock-file-path locked? release-f]\n Object\n (isValid [this] @locked?)\n (release [this] (release-f)) ;; chan<?err>\n (close [this] (release-f))) ;; chan<?err>\n\n(defn alock-file\n \"Attempts to asynchronously open a lock-file exclusively. This prevents\n future openings until the holding lock has been released, thereby can\n use to prevent reads and writes within a process.\n A yielded err indicates a failure to obtain a lock, & AsyncLockFile is a\n record with .release() method to unlock the file, returning a promise-chan\n yielding [?err]\n @param {string} pathstr :: the file you want to lock\n @return {Channel} yielding [?err ?AsyncLockFile]\"\n [pathstr]\n (with-promise out\n (let [lock-file-path (lock-path pathstr)]\n (.open fs lock-file-path \"wx+\"\n (fn [?err lock-fd]\n (if (some? ?err)\n (put! out [?err])\n (let [locked? (atom true)\n release (fn []\n (with-promise out\n (if (not @locked?)\n (put! out [nil])\n (.close fs lock-fd\n (fn [?err]\n (if (some? ?err)\n (put! out [?err])\n (.unlink fs lock-file-path\n (fn [?err]\n (if (some? ?err)\n (put! out [?err])\n (do\n (reset! locked? false)\n (put! out [nil])))))))))))]\n (put! out [nil (AsyncLockFile. lock-file-path locked? release)]))))))))\n"],"x_google_ignoreList":[0]}
@@ -0,0 +1,319 @@
1
+ var $CLJS = require("./cljs_env");
2
+ var $jscomp = $CLJS.$jscomp;
3
+ var COMPILED = false;
4
+ require("./cljs.core.js");
5
+ require("./clojure.set.js");
6
+ var environ=$CLJS.environ || ($CLJS.environ = {});
7
+ var fress=$CLJS.fress || ($CLJS.fress = {});
8
+ var datahike=$CLJS.datahike || ($CLJS.datahike = {});
9
+ var clojure=$CLJS.clojure || ($CLJS.clojure = {});
10
+ var hasch=$CLJS.hasch || ($CLJS.hasch = {});
11
+ var tailrecursion=$CLJS.tailrecursion || ($CLJS.tailrecursion = {});
12
+ var superv=$CLJS.superv || ($CLJS.superv = {});
13
+ var geheimnis=$CLJS.geheimnis || ($CLJS.geheimnis = {});
14
+ var is=$CLJS.is || ($CLJS.is = {});
15
+ var cljs=$CLJS.cljs || ($CLJS.cljs = {});
16
+ var cljs_node_io=$CLJS.cljs_node_io || ($CLJS.cljs_node_io = {});
17
+ var goog=$CLJS.goog || ($CLJS.goog = {});
18
+ var konserve=$CLJS.konserve || ($CLJS.konserve = {});
19
+ var datalog=$CLJS.datalog || ($CLJS.datalog = {});
20
+ var spec_tools=$CLJS.spec_tools || ($CLJS.spec_tools = {});
21
+ var taoensso=$CLJS.taoensso || ($CLJS.taoensso = {});
22
+ var incognito=$CLJS.incognito || ($CLJS.incognito = {});
23
+ var medley=$CLJS.medley || ($CLJS.medley = {});
24
+ var me=$CLJS.me || ($CLJS.me = {});
25
+
26
+ $CLJS.SHADOW_ENV.setLoaded("clojure.data.js");
27
+
28
+ goog.provide('clojure.data');
29
+ /**
30
+ * Internal helper for diff.
31
+ */
32
+ clojure.data.atom_diff = (function clojure$data$atom_diff(a,b){
33
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,b)){
34
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,null,a], null);
35
+ } else {
36
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,b,null], null);
37
+ }
38
+ });
39
+ /**
40
+ * Convert an associative-by-numeric-index collection into
41
+ * an equivalent vector, with nil for any missing keys
42
+ */
43
+ clojure.data.vectorize = (function clojure$data$vectorize(m){
44
+ if(cljs.core.seq(m)){
45
+ return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (result,p__21665){
46
+ var vec__21667 = p__21665;
47
+ var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21667,(0),null);
48
+ var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21667,(1),null);
49
+ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(result,k,v);
50
+ }),cljs.core.vec(cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.max,cljs.core.keys(m)),null)),m);
51
+ } else {
52
+ return null;
53
+ }
54
+ });
55
+ /**
56
+ * Diff associative things a and b, comparing only the key k.
57
+ */
58
+ clojure.data.diff_associative_key = (function clojure$data$diff_associative_key(a,b,k){
59
+ var va = cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,k);
60
+ var vb = cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,k);
61
+ var vec__21673 = clojure.data.diff(va,vb);
62
+ var a_STAR_ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21673,(0),null);
63
+ var b_STAR_ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21673,(1),null);
64
+ var ab = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21673,(2),null);
65
+ var in_a = cljs.core.contains_QMARK_(a,k);
66
+ var in_b = cljs.core.contains_QMARK_(b,k);
67
+ var same = ((in_a) && (((in_b) && ((((!((ab == null)))) || ((((va == null)) && ((vb == null)))))))));
68
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [((((in_a) && ((((!((a_STAR_ == null)))) || ((!(same)))))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([k,a_STAR_]):null),((((in_b) && ((((!((b_STAR_ == null)))) || ((!(same)))))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([k,b_STAR_]):null),((same)?cljs.core.PersistentArrayMap.createAsIfByAssoc([k,ab]):null)], null);
69
+ });
70
+ /**
71
+ * Diff associative things a and b, comparing only keys in ks (if supplied).
72
+ */
73
+ clojure.data.diff_associative = (function clojure$data$diff_associative(var_args){
74
+ var G__21710 = arguments.length;
75
+ switch (G__21710) {
76
+ case 2:
77
+ return clojure.data.diff_associative.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
78
+
79
+ break;
80
+ case 3:
81
+ return clojure.data.diff_associative.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
82
+
83
+ break;
84
+ default:
85
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
86
+
87
+ }
88
+ });
89
+
90
+ (clojure.data.diff_associative.cljs$core$IFn$_invoke$arity$2 = (function (a,b){
91
+ return clojure.data.diff_associative.cljs$core$IFn$_invoke$arity$3(a,b,clojure.set.union.cljs$core$IFn$_invoke$arity$2(cljs.core.keys(a),cljs.core.keys(b)));
92
+ }));
93
+
94
+ (clojure.data.diff_associative.cljs$core$IFn$_invoke$arity$3 = (function (a,b,ks){
95
+ return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (diff1,diff2){
96
+ return cljs.core.doall.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$3(cljs.core.merge,diff1,diff2));
97
+ }),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,null,null], null),cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$3(clojure.data.diff_associative_key,a,b),ks));
98
+ }));
99
+
100
+ (clojure.data.diff_associative.cljs$lang$maxFixedArity = 3);
101
+
102
+ clojure.data.diff_sequential = (function clojure$data$diff_sequential(a,b){
103
+ return cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(clojure.data.vectorize,clojure.data.diff_associative.cljs$core$IFn$_invoke$arity$3(((cljs.core.vector_QMARK_(a))?a:cljs.core.vec(a)),((cljs.core.vector_QMARK_(b))?b:cljs.core.vec(b)),cljs.core.range.cljs$core$IFn$_invoke$arity$1((function (){var x__5087__auto__ = cljs.core.count(a);
104
+ var y__5088__auto__ = cljs.core.count(b);
105
+ return ((x__5087__auto__ > y__5088__auto__) ? x__5087__auto__ : y__5088__auto__);
106
+ })()))));
107
+ });
108
+ clojure.data.diff_set = (function clojure$data$diff_set(a,b){
109
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.not_empty(clojure.set.difference.cljs$core$IFn$_invoke$arity$2(a,b)),cljs.core.not_empty(clojure.set.difference.cljs$core$IFn$_invoke$arity$2(b,a)),cljs.core.not_empty(clojure.set.intersection.cljs$core$IFn$_invoke$arity$2(a,b))], null);
110
+ });
111
+
112
+ /**
113
+ * Implementation detail. Subject to change.
114
+ * @interface
115
+ */
116
+ clojure.data.EqualityPartition = function(){};
117
+
118
+ var clojure$data$EqualityPartition$equality_partition$dyn_21780 = (function (x){
119
+ var x__5350__auto__ = (((x == null))?null:x);
120
+ var m__5351__auto__ = (clojure.data.equality_partition[goog.typeOf(x__5350__auto__)]);
121
+ if((!((m__5351__auto__ == null)))){
122
+ return (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(x) : m__5351__auto__.call(null, x));
123
+ } else {
124
+ var m__5349__auto__ = (clojure.data.equality_partition["_"]);
125
+ if((!((m__5349__auto__ == null)))){
126
+ return (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(x) : m__5349__auto__.call(null, x));
127
+ } else {
128
+ throw cljs.core.missing_protocol("EqualityPartition.equality-partition",x);
129
+ }
130
+ }
131
+ });
132
+ /**
133
+ * Implementation detail. Subject to change.
134
+ */
135
+ clojure.data.equality_partition = (function clojure$data$equality_partition(x){
136
+ if((((!((x == null)))) && ((!((x.clojure$data$EqualityPartition$equality_partition$arity$1 == null)))))){
137
+ return x.clojure$data$EqualityPartition$equality_partition$arity$1(x);
138
+ } else {
139
+ return clojure$data$EqualityPartition$equality_partition$dyn_21780(x);
140
+ }
141
+ });
142
+
143
+
144
+ /**
145
+ * Implementation detail. Subject to change.
146
+ * @interface
147
+ */
148
+ clojure.data.Diff = function(){};
149
+
150
+ var clojure$data$Diff$diff_similar$dyn_21782 = (function (a,b){
151
+ var x__5350__auto__ = (((a == null))?null:a);
152
+ var m__5351__auto__ = (clojure.data.diff_similar[goog.typeOf(x__5350__auto__)]);
153
+ if((!((m__5351__auto__ == null)))){
154
+ return (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(a,b) : m__5351__auto__.call(null, a,b));
155
+ } else {
156
+ var m__5349__auto__ = (clojure.data.diff_similar["_"]);
157
+ if((!((m__5349__auto__ == null)))){
158
+ return (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(a,b) : m__5349__auto__.call(null, a,b));
159
+ } else {
160
+ throw cljs.core.missing_protocol("Diff.diff-similar",a);
161
+ }
162
+ }
163
+ });
164
+ /**
165
+ * Implementation detail. Subject to change.
166
+ */
167
+ clojure.data.diff_similar = (function clojure$data$diff_similar(a,b){
168
+ if((((!((a == null)))) && ((!((a.clojure$data$Diff$diff_similar$arity$2 == null)))))){
169
+ return a.clojure$data$Diff$diff_similar$arity$2(a,b);
170
+ } else {
171
+ return clojure$data$Diff$diff_similar$dyn_21782(a,b);
172
+ }
173
+ });
174
+
175
+ (clojure.data.EqualityPartition["null"] = true);
176
+
177
+ (clojure.data.equality_partition["null"] = (function (x){
178
+ return new cljs.core.Keyword(null,"atom","atom",-397043653);
179
+ }));
180
+
181
+ (clojure.data.EqualityPartition["string"] = true);
182
+
183
+ (clojure.data.equality_partition["string"] = (function (x){
184
+ return new cljs.core.Keyword(null,"atom","atom",-397043653);
185
+ }));
186
+
187
+ (clojure.data.EqualityPartition["number"] = true);
188
+
189
+ (clojure.data.equality_partition["number"] = (function (x){
190
+ return new cljs.core.Keyword(null,"atom","atom",-397043653);
191
+ }));
192
+
193
+ (clojure.data.EqualityPartition["array"] = true);
194
+
195
+ (clojure.data.equality_partition["array"] = (function (x){
196
+ return new cljs.core.Keyword(null,"sequential","sequential",-1082983960);
197
+ }));
198
+
199
+ (clojure.data.EqualityPartition["function"] = true);
200
+
201
+ (clojure.data.equality_partition["function"] = (function (x){
202
+ return new cljs.core.Keyword(null,"atom","atom",-397043653);
203
+ }));
204
+
205
+ (clojure.data.EqualityPartition["boolean"] = true);
206
+
207
+ (clojure.data.equality_partition["boolean"] = (function (x){
208
+ return new cljs.core.Keyword(null,"atom","atom",-397043653);
209
+ }));
210
+
211
+ (clojure.data.EqualityPartition["_"] = true);
212
+
213
+ (clojure.data.equality_partition["_"] = (function (x){
214
+ if((((!((x == null))))?(((((x.cljs$lang$protocol_mask$partition0$ & (1024))) || ((cljs.core.PROTOCOL_SENTINEL === x.cljs$core$IMap$))))?true:(((!x.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.IMap,x):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IMap,x))){
215
+ return new cljs.core.Keyword(null,"map","map",1371690461);
216
+ } else {
217
+ if((((!((x == null))))?(((((x.cljs$lang$protocol_mask$partition0$ & (4096))) || ((cljs.core.PROTOCOL_SENTINEL === x.cljs$core$ISet$))))?true:(((!x.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.ISet,x):false)):cljs.core.native_satisfies_QMARK_(cljs.core.ISet,x))){
218
+ return new cljs.core.Keyword(null,"set","set",304602554);
219
+ } else {
220
+ if((((!((x == null))))?(((((x.cljs$lang$protocol_mask$partition0$ & (16777216))) || ((cljs.core.PROTOCOL_SENTINEL === x.cljs$core$ISequential$))))?true:(((!x.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.ISequential,x):false)):cljs.core.native_satisfies_QMARK_(cljs.core.ISequential,x))){
221
+ return new cljs.core.Keyword(null,"sequential","sequential",-1082983960);
222
+ } else {
223
+ return new cljs.core.Keyword(null,"atom","atom",-397043653);
224
+
225
+ }
226
+ }
227
+ }
228
+ }));
229
+ (clojure.data.Diff["null"] = true);
230
+
231
+ (clojure.data.diff_similar["null"] = (function (a,b){
232
+ return clojure.data.atom_diff(a,b);
233
+ }));
234
+
235
+ (clojure.data.Diff["string"] = true);
236
+
237
+ (clojure.data.diff_similar["string"] = (function (a,b){
238
+ return clojure.data.atom_diff(a,b);
239
+ }));
240
+
241
+ (clojure.data.Diff["number"] = true);
242
+
243
+ (clojure.data.diff_similar["number"] = (function (a,b){
244
+ return clojure.data.atom_diff(a,b);
245
+ }));
246
+
247
+ (clojure.data.Diff["array"] = true);
248
+
249
+ (clojure.data.diff_similar["array"] = (function (a,b){
250
+ return clojure.data.diff_sequential(a,b);
251
+ }));
252
+
253
+ (clojure.data.Diff["function"] = true);
254
+
255
+ (clojure.data.diff_similar["function"] = (function (a,b){
256
+ return clojure.data.atom_diff(a,b);
257
+ }));
258
+
259
+ (clojure.data.Diff["boolean"] = true);
260
+
261
+ (clojure.data.diff_similar["boolean"] = (function (a,b){
262
+ return clojure.data.atom_diff(a,b);
263
+ }));
264
+
265
+ (clojure.data.Diff["_"] = true);
266
+
267
+ (clojure.data.diff_similar["_"] = (function (a,b){
268
+ var fexpr__21749 = (function (){var G__21751 = clojure.data.equality_partition(a);
269
+ var G__21751__$1 = (((G__21751 instanceof cljs.core.Keyword))?G__21751.fqn:null);
270
+ switch (G__21751__$1) {
271
+ case "atom":
272
+ return clojure.data.atom_diff;
273
+
274
+ break;
275
+ case "set":
276
+ return clojure.data.diff_set;
277
+
278
+ break;
279
+ case "sequential":
280
+ return clojure.data.diff_sequential;
281
+
282
+ break;
283
+ case "map":
284
+ return clojure.data.diff_associative;
285
+
286
+ break;
287
+ default:
288
+ throw (new Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__21751__$1)].join('')));
289
+
290
+ }
291
+ })();
292
+ return (fexpr__21749.cljs$core$IFn$_invoke$arity$2 ? fexpr__21749.cljs$core$IFn$_invoke$arity$2(a,b) : fexpr__21749.call(null, a,b));
293
+ }));
294
+ /**
295
+ * Recursively compares a and b, returning a tuple of
296
+ * [things-only-in-a things-only-in-b things-in-both].
297
+ * Comparison rules:
298
+ *
299
+ * * For equal a and b, return [nil nil a].
300
+ * * Maps are subdiffed where keys match and values differ.
301
+ * * Sets are never subdiffed.
302
+ * * All sequential things are treated as associative collections
303
+ * by their indexes, with results returned as vectors.
304
+ * * Everything else (including strings!) is treated as
305
+ * an atom and compared for equality.
306
+ */
307
+ clojure.data.diff = (function clojure$data$diff(a,b){
308
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,b)){
309
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,null,a], null);
310
+ } else {
311
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(clojure.data.equality_partition(a),clojure.data.equality_partition(b))){
312
+ return clojure.data.diff_similar(a,b);
313
+ } else {
314
+ return clojure.data.atom_diff(a,b);
315
+ }
316
+ }
317
+ });
318
+
319
+ //# sourceMappingURL=clojure.data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["clojure/data.cljs"],"mappings":"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","names":["clojure.data/atom-diff","a","b","cljs.core._EQ_","clojure.data/vectorize","m","cljs.core/seq","cljs.core.reduce","p__21665","vec__21667","cljs.core.nth","result","k","v","cljs.core.assoc","cljs.core/vec","cljs.core.repeat","cljs.core.apply","cljs.core/max","cljs.core/keys","clojure.data/diff-associative-key","vec__21673","va","cljs.core.get","vb","a*","b*","ab","clojure.data/diff","in-a","cljs.core/contains?","in-b","same","var_args","G__21710","clojure.data/diff-associative","js/Error","clojure.data.diff_associative","clojure.set.union","ks","diff1","diff2","cljs.core.doall","cljs.core.map","cljs.core/merge","cljs.core.partial","clojure.data/diff-sequential","cljs.core/vector?","cljs.core.range","x__5087__auto__","y__5088__auto__","cljs.core/count","clojure.data/diff-set","cljs.core/not-empty","clojure.set.difference","clojure.set.intersection","clojure$data$EqualityPartition$equality_partition$dyn","x__5350__auto__","m__5351__auto__","clojure.data/equality-partition","goog/typeOf","m__5349__auto__","cljs.core/missing-protocol","clojure.data/EqualityPartition","x","clojure$data$Diff$diff_similar$dyn","clojure.data/diff-similar","clojure.data/Diff","cljs.core/PROTOCOL_SENTINEL","cljs.core/native-satisfies?","cljs.core/IMap","cljs.core/ISet","cljs.core/ISequential","fexpr__21749","G__21751","cljs.core/Keyword"],"sourcesContent":["; Copyright (c) Rich Hickey. 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 \n ^{:author \"Stuart Halloway\",\n :doc \"Non-core data functions.\"}\n clojure.data\n (:require [clojure.set :as set]))\n\n(declare ^{:arglists '([a b])} diff)\n\n(defn- atom-diff\n \"Internal helper for diff.\"\n [a b]\n (if (= a b) [nil nil a] [a b nil]))\n\n;; for big things a sparse vector class would be better\n(defn- vectorize\n \"Convert an associative-by-numeric-index collection into\n an equivalent vector, with nil for any missing keys\"\n [m]\n (when (seq m)\n (reduce\n (fn [result [k v]] (assoc result k v))\n (vec (repeat (apply max (keys m)) nil))\n m)))\n\n(defn- diff-associative-key\n \"Diff associative things a and b, comparing only the key k.\"\n [a b k]\n (let [va (get a k)\n vb (get b k)\n [a* b* ab] (diff va vb)\n in-a (contains? a k)\n in-b (contains? b k)\n same (and in-a in-b\n (or (not (nil? ab))\n (and (nil? va) (nil? vb))))]\n [(when (and in-a (or (not (nil? a*)) (not same))) {k a*})\n (when (and in-b (or (not (nil? b*)) (not same))) {k b*})\n (when same {k ab})\n ]))\n\n(defn- diff-associative\n \"Diff associative things a and b, comparing only keys in ks (if supplied).\"\n ([a b]\n (diff-associative a b (set/union (keys a) (keys b))))\n ([a b ks]\n (reduce\n (fn [diff1 diff2]\n (doall (map merge diff1 diff2)))\n [nil nil nil]\n (map\n (partial diff-associative-key a b)\n ks))))\n\n(defn- diff-sequential\n [a b]\n (vec (map vectorize (diff-associative\n (if (vector? a) a (vec a))\n (if (vector? b) b (vec b))\n (range (max (count a) (count b)))))))\n\n(defn- diff-set\n [a b]\n [(not-empty (set/difference a b))\n (not-empty (set/difference b a))\n (not-empty (set/intersection a b))])\n\n(defprotocol EqualityPartition\n \"Implementation detail. Subject to change.\"\n (equality-partition [x] \"Implementation detail. Subject to change.\"))\n\n(defprotocol Diff\n \"Implementation detail. Subject to change.\"\n (diff-similar [a b] \"Implementation detail. Subject to change.\"))\n\n(extend-protocol EqualityPartition\n nil\n (equality-partition [x] :atom)\n\n string\n (equality-partition [x] :atom)\n\n number\n (equality-partition [x] :atom)\n\n array\n (equality-partition [x] :sequential)\n\n function\n (equality-partition [x] :atom)\n\n boolean\n (equality-partition [x] :atom)\n\n default\n (equality-partition [x]\n (cond\n (satisfies? IMap x) :map\n (satisfies? ISet x) :set\n (satisfies? ISequential x) :sequential\n :default :atom)))\n\n(extend-protocol Diff\n nil\n (diff-similar [a b]\n (atom-diff a b))\n\n string\n (diff-similar [a b]\n (atom-diff a b))\n\n number\n (diff-similar [a b]\n (atom-diff a b))\n\n array\n (diff-similar [a b]\n (diff-sequential a b))\n\n function\n (diff-similar [a b]\n (atom-diff a b))\n\n boolean\n (diff-similar [a b]\n (atom-diff a b))\n\n default\n (diff-similar [a b]\n ((case (equality-partition a)\n :atom atom-diff\n :set diff-set\n :sequential diff-sequential\n :map diff-associative)\n a b)))\n\n(defn diff\n \"Recursively compares a and b, returning a tuple of\n [things-only-in-a things-only-in-b things-in-both].\n Comparison rules:\n\n * For equal a and b, return [nil nil a].\n * Maps are subdiffed where keys match and values differ.\n * Sets are never subdiffed.\n * All sequential things are treated as associative collections\n by their indexes, with results returned as vectors.\n * Everything else (including strings!) is treated as\n an atom and compared for equality.\"\n [a b]\n (if (= a b)\n [nil nil a]\n (if (= (equality-partition a) (equality-partition b))\n (diff-similar a b)\n (atom-diff a b))))\n \n"],"x_google_ignoreList":[0]}