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.
- package/README.md +226 -0
- package/cljs.analyzer.api.js +427 -0
- package/cljs.analyzer.api.js.map +1 -0
- package/cljs.analyzer.impl.js +86 -0
- package/cljs.analyzer.impl.js.map +1 -0
- package/cljs.analyzer.impl.namespaces.js +219 -0
- package/cljs.analyzer.impl.namespaces.js.map +1 -0
- package/cljs.analyzer.js +7186 -0
- package/cljs.analyzer.js.map +1 -0
- package/cljs.analyzer.passes.and_or.js +141 -0
- package/cljs.analyzer.passes.and_or.js.map +1 -0
- package/cljs.analyzer.passes.js +104 -0
- package/cljs.analyzer.passes.js.map +1 -0
- package/cljs.cache.js +1145 -0
- package/cljs.cache.js.map +1 -0
- package/cljs.cache.wrapped.js +352 -0
- package/cljs.cache.wrapped.js.map +1 -0
- package/cljs.core.async.impl.buffers.js +489 -0
- package/cljs.core.async.impl.buffers.js.map +1 -0
- package/cljs.core.async.impl.channels.js +711 -0
- package/cljs.core.async.impl.channels.js.map +1 -0
- package/cljs.core.async.impl.dispatch.js +81 -0
- package/cljs.core.async.impl.dispatch.js.map +1 -0
- package/cljs.core.async.impl.ioc_helpers.js +192 -0
- package/cljs.core.async.impl.ioc_helpers.js.map +1 -0
- package/cljs.core.async.impl.protocols.js +368 -0
- package/cljs.core.async.impl.protocols.js.map +1 -0
- package/cljs.core.async.impl.timers.js +510 -0
- package/cljs.core.async.impl.timers.js.map +1 -0
- package/cljs.core.async.js +8813 -0
- package/cljs.core.async.js.map +1 -0
- package/cljs.core.js +38764 -0
- package/cljs.core.js.map +1 -0
- package/cljs.env.js +60 -0
- package/cljs.env.js.map +1 -0
- package/cljs.nodejs.js +80 -0
- package/cljs.nodejs.js.map +1 -0
- package/cljs.reader.js +462 -0
- package/cljs.reader.js.map +1 -0
- package/cljs.spec.alpha.js +5312 -0
- package/cljs.spec.alpha.js.map +1 -0
- package/cljs.spec.gen.alpha.js +2020 -0
- package/cljs.spec.gen.alpha.js.map +1 -0
- package/cljs.tagged_literals.js +103 -0
- package/cljs.tagged_literals.js.map +1 -0
- package/cljs.tools.reader.edn.js +960 -0
- package/cljs.tools.reader.edn.js.map +1 -0
- package/cljs.tools.reader.impl.commons.js +217 -0
- package/cljs.tools.reader.impl.commons.js.map +1 -0
- package/cljs.tools.reader.impl.errors.js +441 -0
- package/cljs.tools.reader.impl.errors.js.map +1 -0
- package/cljs.tools.reader.impl.inspect.js +182 -0
- package/cljs.tools.reader.impl.inspect.js.map +1 -0
- package/cljs.tools.reader.impl.utils.js +429 -0
- package/cljs.tools.reader.impl.utils.js.map +1 -0
- package/cljs.tools.reader.js +1830 -0
- package/cljs.tools.reader.js.map +1 -0
- package/cljs.tools.reader.reader_types.js +838 -0
- package/cljs.tools.reader.reader_types.js.map +1 -0
- package/cljs_env.js +18192 -0
- package/cljs_node_io.core.js +1278 -0
- package/cljs_node_io.core.js.map +1 -0
- package/cljs_node_io.file.js +918 -0
- package/cljs_node_io.file.js.map +1 -0
- package/cljs_node_io.fs.js +3911 -0
- package/cljs_node_io.fs.js.map +1 -0
- package/clojure.data.js +319 -0
- package/clojure.data.js.map +1 -0
- package/clojure.edn.js +119 -0
- package/clojure.edn.js.map +1 -0
- package/clojure.set.js +406 -0
- package/clojure.set.js.map +1 -0
- package/clojure.string.js +502 -0
- package/clojure.string.js.map +1 -0
- package/clojure.walk.js +156 -0
- package/clojure.walk.js.map +1 -0
- package/datahike.api.impl.js +621 -0
- package/datahike.api.impl.js.map +1 -0
- package/datahike.api.specification.js +85 -0
- package/datahike.api.specification.js.map +1 -0
- package/datahike.array.js +275 -0
- package/datahike.array.js.map +1 -0
- package/datahike.config.js +437 -0
- package/datahike.config.js.map +1 -0
- package/datahike.connections.js +55 -0
- package/datahike.connections.js.map +1 -0
- package/datahike.connector.js +1248 -0
- package/datahike.connector.js.map +1 -0
- package/datahike.constants.js +66 -0
- package/datahike.constants.js.map +1 -0
- package/datahike.core.js +628 -0
- package/datahike.core.js.map +1 -0
- package/datahike.datom.js +963 -0
- package/datahike.datom.js.map +1 -0
- package/datahike.db.interface.js +819 -0
- package/datahike.db.interface.js.map +1 -0
- package/datahike.db.js +3095 -0
- package/datahike.db.js.map +1 -0
- package/datahike.db.search.js +1004 -0
- package/datahike.db.search.js.map +1 -0
- package/datahike.db.transaction.js +1904 -0
- package/datahike.db.transaction.js.map +1 -0
- package/datahike.db.utils.js +642 -0
- package/datahike.db.utils.js.map +1 -0
- package/datahike.gc.js +1618 -0
- package/datahike.gc.js.map +1 -0
- package/datahike.impl.entity.js +604 -0
- package/datahike.impl.entity.js.map +1 -0
- package/datahike.index.interface.js +484 -0
- package/datahike.index.interface.js.map +1 -0
- package/datahike.index.js +50 -0
- package/datahike.index.js.map +1 -0
- package/datahike.index.persistent_set.js +1250 -0
- package/datahike.index.persistent_set.js.map +1 -0
- package/datahike.js.api.js +2211 -0
- package/datahike.js.api.js.map +1 -0
- package/datahike.lru.js +404 -0
- package/datahike.lru.js.map +1 -0
- package/datahike.pull_api.js +533 -0
- package/datahike.pull_api.js.map +1 -0
- package/datahike.query.js +11891 -0
- package/datahike.query.js.map +1 -0
- package/datahike.query_stats.js +152 -0
- package/datahike.query_stats.js.map +1 -0
- package/datahike.readers.js +166 -0
- package/datahike.readers.js.map +1 -0
- package/datahike.schema.js +251 -0
- package/datahike.schema.js.map +1 -0
- package/datahike.schema_cache.js +66 -0
- package/datahike.schema_cache.js.map +1 -0
- package/datahike.spec.js +70 -0
- package/datahike.spec.js.map +1 -0
- package/datahike.store.js +514 -0
- package/datahike.store.js.map +1 -0
- package/datahike.tools.js +436 -0
- package/datahike.tools.js.map +1 -0
- package/datahike.writer.js +3463 -0
- package/datahike.writer.js.map +1 -0
- package/datahike.writing.js +3168 -0
- package/datahike.writing.js.map +1 -0
- package/datalog.parser.impl.js +1421 -0
- package/datalog.parser.impl.js.map +1 -0
- package/datalog.parser.impl.proto.js +213 -0
- package/datalog.parser.impl.proto.js.map +1 -0
- package/datalog.parser.impl.util.js +117 -0
- package/datalog.parser.impl.util.js.map +1 -0
- package/datalog.parser.js +47 -0
- package/datalog.parser.js.map +1 -0
- package/datalog.parser.pull.js +2603 -0
- package/datalog.parser.pull.js.map +1 -0
- package/datalog.parser.type.js +7502 -0
- package/datalog.parser.type.js.map +1 -0
- package/datalog.parser.util.js +60 -0
- package/datalog.parser.util.js.map +1 -0
- package/environ.core.js +263 -0
- package/environ.core.js.map +1 -0
- package/fress.api.js +607 -0
- package/fress.api.js.map +1 -0
- package/fress.impl.adler32.js +435 -0
- package/fress.impl.adler32.js.map +1 -0
- package/fress.impl.bigint.js +185 -0
- package/fress.impl.bigint.js.map +1 -0
- package/fress.impl.buffer.js +1087 -0
- package/fress.impl.buffer.js.map +1 -0
- package/fress.impl.codes.js +105 -0
- package/fress.impl.codes.js.map +1 -0
- package/fress.impl.hopmap.js +603 -0
- package/fress.impl.hopmap.js.map +1 -0
- package/fress.impl.ranges.js +49 -0
- package/fress.impl.ranges.js.map +1 -0
- package/fress.impl.raw_input.js +837 -0
- package/fress.impl.raw_input.js.map +1 -0
- package/fress.impl.raw_output.js +653 -0
- package/fress.impl.raw_output.js.map +1 -0
- package/fress.impl.table.js +133 -0
- package/fress.impl.table.js.map +1 -0
- package/fress.reader.js +2312 -0
- package/fress.reader.js.map +1 -0
- package/fress.util.js +458 -0
- package/fress.util.js.map +1 -0
- package/fress.writer.js +2141 -0
- package/fress.writer.js.map +1 -0
- package/geheimnis.aes.js +132 -0
- package/geheimnis.aes.js.map +1 -0
- package/hasch.base64.js +42 -0
- package/hasch.base64.js.map +1 -0
- package/hasch.benc.js +201 -0
- package/hasch.benc.js.map +1 -0
- package/hasch.core.js +188 -0
- package/hasch.core.js.map +1 -0
- package/hasch.platform.js +221 -0
- package/hasch.platform.js.map +1 -0
- package/incognito.base.js +276 -0
- package/incognito.base.js.map +1 -0
- package/incognito.edn.js +54 -0
- package/incognito.edn.js.map +1 -0
- package/incognito.fressian.js +330 -0
- package/incognito.fressian.js.map +1 -0
- package/index.d.ts +660 -0
- package/is.simm.partial_cps.async.js +142 -0
- package/is.simm.partial_cps.async.js.map +1 -0
- package/is.simm.partial_cps.runtime.js +65 -0
- package/is.simm.partial_cps.runtime.js.map +1 -0
- package/is.simm.partial_cps.sequence.js +1255 -0
- package/is.simm.partial_cps.sequence.js.map +1 -0
- package/konserve.cache.js +2519 -0
- package/konserve.cache.js.map +1 -0
- package/konserve.compressor.js +502 -0
- package/konserve.compressor.js.map +1 -0
- package/konserve.core.js +8052 -0
- package/konserve.core.js.map +1 -0
- package/konserve.encryptor.js +553 -0
- package/konserve.encryptor.js.map +1 -0
- package/konserve.gc.js +541 -0
- package/konserve.gc.js.map +1 -0
- package/konserve.impl.defaults.js +8290 -0
- package/konserve.impl.defaults.js.map +1 -0
- package/konserve.impl.storage_layout.js +849 -0
- package/konserve.impl.storage_layout.js.map +1 -0
- package/konserve.memory.js +2102 -0
- package/konserve.memory.js.map +1 -0
- package/konserve.node_filestore.js +2951 -0
- package/konserve.node_filestore.js.map +1 -0
- package/konserve.protocols.js +590 -0
- package/konserve.protocols.js.map +1 -0
- package/konserve.serializers.js +562 -0
- package/konserve.serializers.js.map +1 -0
- package/konserve.store.js +2245 -0
- package/konserve.store.js.map +1 -0
- package/konserve.tiered.js +9574 -0
- package/konserve.tiered.js.map +1 -0
- package/konserve.utils.js +180 -0
- package/konserve.utils.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.arrays.js +66 -0
- package/me.tonsky.persistent_sorted_set.arrays.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.branch.js +2779 -0
- package/me.tonsky.persistent_sorted_set.branch.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.btset.js +14196 -0
- package/me.tonsky.persistent_sorted_set.btset.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.impl.node.js +324 -0
- package/me.tonsky.persistent_sorted_set.impl.node.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.impl.storage.js +123 -0
- package/me.tonsky.persistent_sorted_set.impl.storage.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.js +890 -0
- package/me.tonsky.persistent_sorted_set.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.leaf.js +561 -0
- package/me.tonsky.persistent_sorted_set.leaf.js.map +1 -0
- package/me.tonsky.persistent_sorted_set.util.js +402 -0
- package/me.tonsky.persistent_sorted_set.util.js.map +1 -0
- package/medley.core.js +1857 -0
- package/medley.core.js.map +1 -0
- package/package.json +38 -0
- package/spec_tools.core.js +1925 -0
- package/spec_tools.core.js.map +1 -0
- package/spec_tools.data_spec.js +1291 -0
- package/spec_tools.data_spec.js.map +1 -0
- package/spec_tools.form.js +185 -0
- package/spec_tools.form.js.map +1 -0
- package/spec_tools.impl.js +362 -0
- package/spec_tools.impl.js.map +1 -0
- package/spec_tools.parse.js +427 -0
- package/spec_tools.parse.js.map +1 -0
- package/spec_tools.transform.js +288 -0
- package/spec_tools.transform.js.map +1 -0
- package/superv.async.js +8617 -0
- package/superv.async.js.map +1 -0
- package/tailrecursion.priority_map.js +994 -0
- package/tailrecursion.priority_map.js.map +1 -0
- package/taoensso.encore.js +12385 -0
- package/taoensso.encore.js.map +1 -0
- package/taoensso.timbre.appenders.core.js +239 -0
- package/taoensso.timbre.appenders.core.js.map +1 -0
- package/taoensso.timbre.js +1264 -0
- package/taoensso.timbre.js.map +1 -0
- package/taoensso.truss.impl.js +442 -0
- package/taoensso.truss.impl.js.map +1 -0
- package/taoensso.truss.js +743 -0
- package/taoensso.truss.js.map +1 -0
- package/test-config-keys.js +33 -0
- package/test-final.js +36 -0
- package/test-key-duplication.js +67 -0
- package/test.js +557 -0
package/clojure.edn.js
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
var $CLJS = require("./cljs_env");
|
|
2
|
+
var $jscomp = $CLJS.$jscomp;
|
|
3
|
+
var COMPILED = false;
|
|
4
|
+
require("./cljs.core.js");
|
|
5
|
+
require("./cljs.reader.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.edn.js");
|
|
27
|
+
|
|
28
|
+
goog.provide('clojure.edn');
|
|
29
|
+
/**
|
|
30
|
+
* Reads the first object from an cljs.tools.reader.reader-types/IPushbackReader.
|
|
31
|
+
* Returns the object read. If EOF, throws if eof-error? is true otherwise returns eof.
|
|
32
|
+
* If no reader is provided, *in* will be used.
|
|
33
|
+
*
|
|
34
|
+
* Reads data in the edn format (subset of Clojure data):
|
|
35
|
+
* http://edn-format.org
|
|
36
|
+
*
|
|
37
|
+
* cljs.tools.reader.edn/read doesn't depend on dynamic Vars, all configuration
|
|
38
|
+
* is done by passing an opt map.
|
|
39
|
+
*
|
|
40
|
+
* opts is a map that can include the following keys:
|
|
41
|
+
* :eof - value to return on end-of-file. When not supplied, eof throws an exception.
|
|
42
|
+
* :readers - a map of tag symbols to data-reader functions to be considered before default-data-readers.
|
|
43
|
+
* When not supplied, only the default-data-readers will be used.
|
|
44
|
+
* :default - A function of two args, that will, if present and no reader is found for a tag,
|
|
45
|
+
* be called with the tag and the value.
|
|
46
|
+
*/
|
|
47
|
+
clojure.edn.read = (function clojure$edn$read(var_args){
|
|
48
|
+
var G__23448 = arguments.length;
|
|
49
|
+
switch (G__23448) {
|
|
50
|
+
case 1:
|
|
51
|
+
return clojure.edn.read.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
|
|
52
|
+
|
|
53
|
+
break;
|
|
54
|
+
case 2:
|
|
55
|
+
return clojure.edn.read.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
|
|
56
|
+
|
|
57
|
+
break;
|
|
58
|
+
case 4:
|
|
59
|
+
return clojure.edn.read.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));
|
|
60
|
+
|
|
61
|
+
break;
|
|
62
|
+
default:
|
|
63
|
+
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
|
|
64
|
+
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
(clojure.edn.read.cljs$core$IFn$_invoke$arity$1 = (function (reader){
|
|
69
|
+
return cljs.reader.read.cljs$core$IFn$_invoke$arity$1(reader);
|
|
70
|
+
}));
|
|
71
|
+
|
|
72
|
+
(clojure.edn.read.cljs$core$IFn$_invoke$arity$2 = (function (opts,reader){
|
|
73
|
+
return cljs.reader.read.cljs$core$IFn$_invoke$arity$2(opts,reader);
|
|
74
|
+
}));
|
|
75
|
+
|
|
76
|
+
(clojure.edn.read.cljs$core$IFn$_invoke$arity$4 = (function (reader,eof_error_QMARK_,eof,opts){
|
|
77
|
+
return cljs.reader.read.cljs$core$IFn$_invoke$arity$4(reader,eof_error_QMARK_,eof,opts);
|
|
78
|
+
}));
|
|
79
|
+
|
|
80
|
+
(clojure.edn.read.cljs$lang$maxFixedArity = 4);
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Reads one object from the string s.
|
|
84
|
+
* Returns nil when s is nil or empty.
|
|
85
|
+
*
|
|
86
|
+
* Reads data in the edn format (subset of Clojure data):
|
|
87
|
+
* http://edn-format.org
|
|
88
|
+
*
|
|
89
|
+
* opts is a map as per cljs.tools.reader.edn/read
|
|
90
|
+
*/
|
|
91
|
+
clojure.edn.read_string = (function clojure$edn$read_string(var_args){
|
|
92
|
+
var G__23510 = arguments.length;
|
|
93
|
+
switch (G__23510) {
|
|
94
|
+
case 1:
|
|
95
|
+
return clojure.edn.read_string.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
|
|
96
|
+
|
|
97
|
+
break;
|
|
98
|
+
case 2:
|
|
99
|
+
return clojure.edn.read_string.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
|
|
100
|
+
|
|
101
|
+
break;
|
|
102
|
+
default:
|
|
103
|
+
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
|
|
104
|
+
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
(clojure.edn.read_string.cljs$core$IFn$_invoke$arity$1 = (function (s){
|
|
109
|
+
return cljs.reader.read_string.cljs$core$IFn$_invoke$arity$1(s);
|
|
110
|
+
}));
|
|
111
|
+
|
|
112
|
+
(clojure.edn.read_string.cljs$core$IFn$_invoke$arity$2 = (function (opts,s){
|
|
113
|
+
return cljs.reader.read_string.cljs$core$IFn$_invoke$arity$2(opts,s);
|
|
114
|
+
}));
|
|
115
|
+
|
|
116
|
+
(clojure.edn.read_string.cljs$lang$maxFixedArity = 2);
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
//# sourceMappingURL=clojure.edn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["clojure/edn.cljs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,AAAA;;;;;;;;;;;;;;;;;;mBAAA,2BAAAA,9CAAME;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,+CAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,+CAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,+CAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAC,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,iDAAA,jDAAMD,4DAiBFE;AAjBJ,AAkBG,OAACC,+CAAYD;;;AAlBhB,CAAA,iDAAA,jDAAMF,4DAmBFI,KAAKF;AAnBT,AAoBG,OAACC,+CAAYC,KAAKF;;;AApBrB,CAAA,iDAAA,jDAAMF,4DAqBFE,OAAOG,iBAAWC,IAAIF;AArB1B,AAsBG,OAACD,+CAAYD,OAAOG,iBAAWC,IAAIF;;;AAtBtC,CAAA,2CAAA,3CAAMJ;;AAAN,AAwBA,AAAA;;;;;;;;;0BAAA,kCAAAF,5DAAMU;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,sDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,sDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAP,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,wDAAA,xDAAMO,mEAQFC;AARJ,AASG,OAACC,sDAAmBD;;;AATvB,CAAA,wDAAA,xDAAMD,mEAUFJ,KAAKK;AAVT,AAWG,OAACC,sDAAmBN,KAAKK;;;AAX5B,CAAA,kDAAA,lDAAMD;;AAAN","names":["var_args","G__23448","clojure.edn/read","js/Error","reader","cljs.reader.read","opts","eof-error?","eof","G__23510","clojure.edn/read-string","s","cljs.reader.read_string"],"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 clojure.edn\n \"edn reading.\n\n This namespace provides alias for cljs.reader/read and cljs.reader/read-string.\n Thus Clojure and ClojureScript source can reference these functions in the same way.\n In Clojure, read and read-string may cause evaluation,\n but clojure.edn/read and clojure.edn/read-string will not.\n In ClojureScript cljs.reader/read and cljs.reader/read-string will not cause evaluation,\n they only read edn.\"\n (:require [cljs.reader :as reader]))\n\n(defn read\n \"Reads the first object from an cljs.tools.reader.reader-types/IPushbackReader.\n Returns the object read. If EOF, throws if eof-error? is true otherwise returns eof.\n If no reader is provided, *in* will be used.\n\n Reads data in the edn format (subset of Clojure data):\n http://edn-format.org\n\n cljs.tools.reader.edn/read doesn't depend on dynamic Vars, all configuration\n is done by passing an opt map.\n\n opts is a map that can include the following keys:\n :eof - value to return on end-of-file. When not supplied, eof throws an exception.\n :readers - a map of tag symbols to data-reader functions to be considered before default-data-readers.\n When not supplied, only the default-data-readers will be used.\n :default - A function of two args, that will, if present and no reader is found for a tag,\n be called with the tag and the value.\"\n ([reader]\n (reader/read reader))\n ([opts reader]\n (reader/read opts reader))\n ([reader eof-error? eof opts]\n (reader/read reader eof-error? eof opts)))\n\n(defn read-string\n \"Reads one object from the string s.\n Returns nil when s is nil or empty.\n\n Reads data in the edn format (subset of Clojure data):\n http://edn-format.org\n\n opts is a map as per cljs.tools.reader.edn/read\"\n ([s]\n (reader/read-string s))\n ([opts s]\n (reader/read-string opts s)))\n"],"x_google_ignoreList":[0]}
|
package/clojure.set.js
ADDED
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
var $CLJS = require("./cljs_env");
|
|
2
|
+
var $jscomp = $CLJS.$jscomp;
|
|
3
|
+
var COMPILED = false;
|
|
4
|
+
require("./cljs.core.js");
|
|
5
|
+
var environ=$CLJS.environ || ($CLJS.environ = {});
|
|
6
|
+
var fress=$CLJS.fress || ($CLJS.fress = {});
|
|
7
|
+
var datahike=$CLJS.datahike || ($CLJS.datahike = {});
|
|
8
|
+
var clojure=$CLJS.clojure || ($CLJS.clojure = {});
|
|
9
|
+
var hasch=$CLJS.hasch || ($CLJS.hasch = {});
|
|
10
|
+
var tailrecursion=$CLJS.tailrecursion || ($CLJS.tailrecursion = {});
|
|
11
|
+
var superv=$CLJS.superv || ($CLJS.superv = {});
|
|
12
|
+
var geheimnis=$CLJS.geheimnis || ($CLJS.geheimnis = {});
|
|
13
|
+
var is=$CLJS.is || ($CLJS.is = {});
|
|
14
|
+
var cljs=$CLJS.cljs || ($CLJS.cljs = {});
|
|
15
|
+
var cljs_node_io=$CLJS.cljs_node_io || ($CLJS.cljs_node_io = {});
|
|
16
|
+
var goog=$CLJS.goog || ($CLJS.goog = {});
|
|
17
|
+
var konserve=$CLJS.konserve || ($CLJS.konserve = {});
|
|
18
|
+
var datalog=$CLJS.datalog || ($CLJS.datalog = {});
|
|
19
|
+
var spec_tools=$CLJS.spec_tools || ($CLJS.spec_tools = {});
|
|
20
|
+
var taoensso=$CLJS.taoensso || ($CLJS.taoensso = {});
|
|
21
|
+
var incognito=$CLJS.incognito || ($CLJS.incognito = {});
|
|
22
|
+
var medley=$CLJS.medley || ($CLJS.medley = {});
|
|
23
|
+
var me=$CLJS.me || ($CLJS.me = {});
|
|
24
|
+
|
|
25
|
+
$CLJS.SHADOW_ENV.setLoaded("clojure.set.js");
|
|
26
|
+
|
|
27
|
+
goog.provide('clojure.set');
|
|
28
|
+
clojure.set.bubble_max_key = (function clojure$set$bubble_max_key(k,coll){
|
|
29
|
+
|
|
30
|
+
var max = cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.max_key,k,coll);
|
|
31
|
+
return cljs.core.cons(max,cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p1__21551_SHARP_){
|
|
32
|
+
return (max === p1__21551_SHARP_);
|
|
33
|
+
}),coll));
|
|
34
|
+
});
|
|
35
|
+
/**
|
|
36
|
+
* Return a set that is the union of the input sets
|
|
37
|
+
*/
|
|
38
|
+
clojure.set.union = (function clojure$set$union(var_args){
|
|
39
|
+
var G__21559 = arguments.length;
|
|
40
|
+
switch (G__21559) {
|
|
41
|
+
case 0:
|
|
42
|
+
return clojure.set.union.cljs$core$IFn$_invoke$arity$0();
|
|
43
|
+
|
|
44
|
+
break;
|
|
45
|
+
case 1:
|
|
46
|
+
return clojure.set.union.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
|
|
47
|
+
|
|
48
|
+
break;
|
|
49
|
+
case 2:
|
|
50
|
+
return clojure.set.union.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
|
|
51
|
+
|
|
52
|
+
break;
|
|
53
|
+
default:
|
|
54
|
+
var args_arr__5751__auto__ = [];
|
|
55
|
+
var len__5726__auto___21655 = arguments.length;
|
|
56
|
+
var i__5727__auto___21656 = (0);
|
|
57
|
+
while(true){
|
|
58
|
+
if((i__5727__auto___21656 < len__5726__auto___21655)){
|
|
59
|
+
args_arr__5751__auto__.push((arguments[i__5727__auto___21656]));
|
|
60
|
+
|
|
61
|
+
var G__21657 = (i__5727__auto___21656 + (1));
|
|
62
|
+
i__5727__auto___21656 = G__21657;
|
|
63
|
+
continue;
|
|
64
|
+
} else {
|
|
65
|
+
}
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
var argseq__5752__auto__ = ((((2) < args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);
|
|
70
|
+
return clojure.set.union.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);
|
|
71
|
+
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
(clojure.set.union.cljs$core$IFn$_invoke$arity$0 = (function (){
|
|
76
|
+
return cljs.core.PersistentHashSet.EMPTY;
|
|
77
|
+
}));
|
|
78
|
+
|
|
79
|
+
(clojure.set.union.cljs$core$IFn$_invoke$arity$1 = (function (s1){
|
|
80
|
+
return s1;
|
|
81
|
+
}));
|
|
82
|
+
|
|
83
|
+
(clojure.set.union.cljs$core$IFn$_invoke$arity$2 = (function (s1,s2){
|
|
84
|
+
if((cljs.core.count(s1) < cljs.core.count(s2))){
|
|
85
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,s2,s1);
|
|
86
|
+
} else {
|
|
87
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,s1,s2);
|
|
88
|
+
}
|
|
89
|
+
}));
|
|
90
|
+
|
|
91
|
+
(clojure.set.union.cljs$core$IFn$_invoke$arity$variadic = (function (s1,s2,sets){
|
|
92
|
+
var bubbled_sets = clojure.set.bubble_max_key(cljs.core.count,cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(sets,s2,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([s1], 0)));
|
|
93
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.into,cljs.core.first(bubbled_sets),cljs.core.rest(bubbled_sets));
|
|
94
|
+
}));
|
|
95
|
+
|
|
96
|
+
/** @this {Function} */
|
|
97
|
+
(clojure.set.union.cljs$lang$applyTo = (function (seq21555){
|
|
98
|
+
var G__21556 = cljs.core.first(seq21555);
|
|
99
|
+
var seq21555__$1 = cljs.core.next(seq21555);
|
|
100
|
+
var G__21557 = cljs.core.first(seq21555__$1);
|
|
101
|
+
var seq21555__$2 = cljs.core.next(seq21555__$1);
|
|
102
|
+
var self__5711__auto__ = this;
|
|
103
|
+
return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__21556,G__21557,seq21555__$2);
|
|
104
|
+
}));
|
|
105
|
+
|
|
106
|
+
(clojure.set.union.cljs$lang$maxFixedArity = (2));
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Return a set that is the intersection of the input sets
|
|
110
|
+
*/
|
|
111
|
+
clojure.set.intersection = (function clojure$set$intersection(var_args){
|
|
112
|
+
var G__21577 = arguments.length;
|
|
113
|
+
switch (G__21577) {
|
|
114
|
+
case 1:
|
|
115
|
+
return clojure.set.intersection.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
|
|
116
|
+
|
|
117
|
+
break;
|
|
118
|
+
case 2:
|
|
119
|
+
return clojure.set.intersection.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
|
|
120
|
+
|
|
121
|
+
break;
|
|
122
|
+
default:
|
|
123
|
+
var args_arr__5751__auto__ = [];
|
|
124
|
+
var len__5726__auto___21680 = arguments.length;
|
|
125
|
+
var i__5727__auto___21681 = (0);
|
|
126
|
+
while(true){
|
|
127
|
+
if((i__5727__auto___21681 < len__5726__auto___21680)){
|
|
128
|
+
args_arr__5751__auto__.push((arguments[i__5727__auto___21681]));
|
|
129
|
+
|
|
130
|
+
var G__21682 = (i__5727__auto___21681 + (1));
|
|
131
|
+
i__5727__auto___21681 = G__21682;
|
|
132
|
+
continue;
|
|
133
|
+
} else {
|
|
134
|
+
}
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
var argseq__5752__auto__ = ((((2) < args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);
|
|
139
|
+
return clojure.set.intersection.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);
|
|
140
|
+
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
(clojure.set.intersection.cljs$core$IFn$_invoke$arity$1 = (function (s1){
|
|
145
|
+
return s1;
|
|
146
|
+
}));
|
|
147
|
+
|
|
148
|
+
(clojure.set.intersection.cljs$core$IFn$_invoke$arity$2 = (function (s1,s2){
|
|
149
|
+
while(true){
|
|
150
|
+
if((cljs.core.count(s2) < cljs.core.count(s1))){
|
|
151
|
+
var G__21684 = s2;
|
|
152
|
+
var G__21685 = s1;
|
|
153
|
+
s1 = G__21684;
|
|
154
|
+
s2 = G__21685;
|
|
155
|
+
continue;
|
|
156
|
+
} else {
|
|
157
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(((function (s1,s2){
|
|
158
|
+
return (function (result,item){
|
|
159
|
+
if(cljs.core.contains_QMARK_(s2,item)){
|
|
160
|
+
return result;
|
|
161
|
+
} else {
|
|
162
|
+
return cljs.core.disj.cljs$core$IFn$_invoke$arity$2(result,item);
|
|
163
|
+
}
|
|
164
|
+
});})(s1,s2))
|
|
165
|
+
,s1,s1);
|
|
166
|
+
}
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
}));
|
|
170
|
+
|
|
171
|
+
(clojure.set.intersection.cljs$core$IFn$_invoke$arity$variadic = (function (s1,s2,sets){
|
|
172
|
+
var bubbled_sets = clojure.set.bubble_max_key((function (p1__21566_SHARP_){
|
|
173
|
+
return (- cljs.core.count(p1__21566_SHARP_));
|
|
174
|
+
}),cljs.core.conj.cljs$core$IFn$_invoke$arity$variadic(sets,s2,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([s1], 0)));
|
|
175
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(clojure.set.intersection,cljs.core.first(bubbled_sets),cljs.core.rest(bubbled_sets));
|
|
176
|
+
}));
|
|
177
|
+
|
|
178
|
+
/** @this {Function} */
|
|
179
|
+
(clojure.set.intersection.cljs$lang$applyTo = (function (seq21571){
|
|
180
|
+
var G__21575 = cljs.core.first(seq21571);
|
|
181
|
+
var seq21571__$1 = cljs.core.next(seq21571);
|
|
182
|
+
var G__21576 = cljs.core.first(seq21571__$1);
|
|
183
|
+
var seq21571__$2 = cljs.core.next(seq21571__$1);
|
|
184
|
+
var self__5711__auto__ = this;
|
|
185
|
+
return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__21575,G__21576,seq21571__$2);
|
|
186
|
+
}));
|
|
187
|
+
|
|
188
|
+
(clojure.set.intersection.cljs$lang$maxFixedArity = (2));
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Return a set that is the first set without elements of the remaining sets
|
|
192
|
+
*/
|
|
193
|
+
clojure.set.difference = (function clojure$set$difference(var_args){
|
|
194
|
+
var G__21589 = arguments.length;
|
|
195
|
+
switch (G__21589) {
|
|
196
|
+
case 1:
|
|
197
|
+
return clojure.set.difference.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
|
|
198
|
+
|
|
199
|
+
break;
|
|
200
|
+
case 2:
|
|
201
|
+
return clojure.set.difference.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
|
|
202
|
+
|
|
203
|
+
break;
|
|
204
|
+
default:
|
|
205
|
+
var args_arr__5751__auto__ = [];
|
|
206
|
+
var len__5726__auto___21692 = arguments.length;
|
|
207
|
+
var i__5727__auto___21693 = (0);
|
|
208
|
+
while(true){
|
|
209
|
+
if((i__5727__auto___21693 < len__5726__auto___21692)){
|
|
210
|
+
args_arr__5751__auto__.push((arguments[i__5727__auto___21693]));
|
|
211
|
+
|
|
212
|
+
var G__21694 = (i__5727__auto___21693 + (1));
|
|
213
|
+
i__5727__auto___21693 = G__21694;
|
|
214
|
+
continue;
|
|
215
|
+
} else {
|
|
216
|
+
}
|
|
217
|
+
break;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
var argseq__5752__auto__ = ((((2) < args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((2)),(0),null)):null);
|
|
221
|
+
return clojure.set.difference.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5752__auto__);
|
|
222
|
+
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
|
|
226
|
+
(clojure.set.difference.cljs$core$IFn$_invoke$arity$1 = (function (s1){
|
|
227
|
+
return s1;
|
|
228
|
+
}));
|
|
229
|
+
|
|
230
|
+
(clojure.set.difference.cljs$core$IFn$_invoke$arity$2 = (function (s1,s2){
|
|
231
|
+
if((cljs.core.count(s1) < cljs.core.count(s2))){
|
|
232
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (result,item){
|
|
233
|
+
if(cljs.core.contains_QMARK_(s2,item)){
|
|
234
|
+
return cljs.core.disj.cljs$core$IFn$_invoke$arity$2(result,item);
|
|
235
|
+
} else {
|
|
236
|
+
return result;
|
|
237
|
+
}
|
|
238
|
+
}),s1,s1);
|
|
239
|
+
} else {
|
|
240
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.disj,s1,s2);
|
|
241
|
+
}
|
|
242
|
+
}));
|
|
243
|
+
|
|
244
|
+
(clojure.set.difference.cljs$core$IFn$_invoke$arity$variadic = (function (s1,s2,sets){
|
|
245
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(clojure.set.difference,s1,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(sets,s2));
|
|
246
|
+
}));
|
|
247
|
+
|
|
248
|
+
/** @this {Function} */
|
|
249
|
+
(clojure.set.difference.cljs$lang$applyTo = (function (seq21586){
|
|
250
|
+
var G__21587 = cljs.core.first(seq21586);
|
|
251
|
+
var seq21586__$1 = cljs.core.next(seq21586);
|
|
252
|
+
var G__21588 = cljs.core.first(seq21586__$1);
|
|
253
|
+
var seq21586__$2 = cljs.core.next(seq21586__$1);
|
|
254
|
+
var self__5711__auto__ = this;
|
|
255
|
+
return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__21587,G__21588,seq21586__$2);
|
|
256
|
+
}));
|
|
257
|
+
|
|
258
|
+
(clojure.set.difference.cljs$lang$maxFixedArity = (2));
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* Returns a set of the elements for which pred is true
|
|
262
|
+
*/
|
|
263
|
+
clojure.set.select = (function clojure$set$select(pred,xset){
|
|
264
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (s,k){
|
|
265
|
+
if(cljs.core.truth_((pred.cljs$core$IFn$_invoke$arity$1 ? pred.cljs$core$IFn$_invoke$arity$1(k) : pred.call(null, k)))){
|
|
266
|
+
return s;
|
|
267
|
+
} else {
|
|
268
|
+
return cljs.core.disj.cljs$core$IFn$_invoke$arity$2(s,k);
|
|
269
|
+
}
|
|
270
|
+
}),xset,xset);
|
|
271
|
+
});
|
|
272
|
+
/**
|
|
273
|
+
* Returns a rel of the elements of xrel with only the keys in ks
|
|
274
|
+
*/
|
|
275
|
+
clojure.set.project = (function clojure$set$project(xrel,ks){
|
|
276
|
+
return cljs.core.set(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__21594_SHARP_){
|
|
277
|
+
return cljs.core.select_keys(p1__21594_SHARP_,ks);
|
|
278
|
+
}),xrel));
|
|
279
|
+
});
|
|
280
|
+
/**
|
|
281
|
+
* Returns the map with the keys in kmap renamed to the vals in kmap
|
|
282
|
+
*/
|
|
283
|
+
clojure.set.rename_keys = (function clojure$set$rename_keys(map,kmap){
|
|
284
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,p__21596){
|
|
285
|
+
var vec__21597 = p__21596;
|
|
286
|
+
var old = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21597,(0),null);
|
|
287
|
+
var new$ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21597,(1),null);
|
|
288
|
+
if(cljs.core.contains_QMARK_(map,old)){
|
|
289
|
+
return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,new$,cljs.core.get.cljs$core$IFn$_invoke$arity$2(map,old));
|
|
290
|
+
} else {
|
|
291
|
+
return m;
|
|
292
|
+
}
|
|
293
|
+
}),cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.dissoc,map,cljs.core.keys(kmap)),kmap);
|
|
294
|
+
});
|
|
295
|
+
/**
|
|
296
|
+
* Returns a rel of the maps in xrel with the keys in kmap renamed to the vals in kmap
|
|
297
|
+
*/
|
|
298
|
+
clojure.set.rename = (function clojure$set$rename(xrel,kmap){
|
|
299
|
+
return cljs.core.set(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__21602_SHARP_){
|
|
300
|
+
return clojure.set.rename_keys(p1__21602_SHARP_,kmap);
|
|
301
|
+
}),xrel));
|
|
302
|
+
});
|
|
303
|
+
/**
|
|
304
|
+
* Returns a map of the distinct values of ks in the xrel mapped to a
|
|
305
|
+
* set of the maps in xrel with the corresponding values of ks.
|
|
306
|
+
*/
|
|
307
|
+
clojure.set.index = (function clojure$set$index(xrel,ks){
|
|
308
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (m,x){
|
|
309
|
+
var ik = cljs.core.select_keys(x,ks);
|
|
310
|
+
return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,ik,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.get.cljs$core$IFn$_invoke$arity$3(m,ik,cljs.core.PersistentHashSet.EMPTY),x));
|
|
311
|
+
}),cljs.core.PersistentArrayMap.EMPTY,xrel);
|
|
312
|
+
});
|
|
313
|
+
/**
|
|
314
|
+
* Returns the map with the vals mapped to the keys.
|
|
315
|
+
*/
|
|
316
|
+
clojure.set.map_invert = (function clojure$set$map_invert(m){
|
|
317
|
+
return cljs.core.persistent_BANG_(cljs.core.reduce_kv((function (m__$1,k,v){
|
|
318
|
+
return cljs.core.assoc_BANG_.cljs$core$IFn$_invoke$arity$3(m__$1,v,k);
|
|
319
|
+
}),cljs.core.transient$(cljs.core.PersistentArrayMap.EMPTY),m));
|
|
320
|
+
});
|
|
321
|
+
/**
|
|
322
|
+
* When passed 2 rels, returns the rel corresponding to the natural
|
|
323
|
+
* join. When passed an additional keymap, joins on the corresponding
|
|
324
|
+
* keys.
|
|
325
|
+
*/
|
|
326
|
+
clojure.set.join = (function clojure$set$join(var_args){
|
|
327
|
+
var G__21612 = arguments.length;
|
|
328
|
+
switch (G__21612) {
|
|
329
|
+
case 2:
|
|
330
|
+
return clojure.set.join.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
|
|
331
|
+
|
|
332
|
+
break;
|
|
333
|
+
case 3:
|
|
334
|
+
return clojure.set.join.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
|
|
335
|
+
|
|
336
|
+
break;
|
|
337
|
+
default:
|
|
338
|
+
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
|
|
339
|
+
|
|
340
|
+
}
|
|
341
|
+
});
|
|
342
|
+
|
|
343
|
+
(clojure.set.join.cljs$core$IFn$_invoke$arity$2 = (function (xrel,yrel){
|
|
344
|
+
if(((cljs.core.seq(xrel)) && (cljs.core.seq(yrel)))){
|
|
345
|
+
var ks = clojure.set.intersection.cljs$core$IFn$_invoke$arity$2(cljs.core.set(cljs.core.keys(cljs.core.first(xrel))),cljs.core.set(cljs.core.keys(cljs.core.first(yrel))));
|
|
346
|
+
var vec__21614 = (((cljs.core.count(xrel) <= cljs.core.count(yrel)))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [xrel,yrel], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [yrel,xrel], null));
|
|
347
|
+
var r = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21614,(0),null);
|
|
348
|
+
var s = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21614,(1),null);
|
|
349
|
+
var idx = clojure.set.index(r,ks);
|
|
350
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret,x){
|
|
351
|
+
var found = (function (){var G__21620 = cljs.core.select_keys(x,ks);
|
|
352
|
+
return (idx.cljs$core$IFn$_invoke$arity$1 ? idx.cljs$core$IFn$_invoke$arity$1(G__21620) : idx.call(null, G__21620));
|
|
353
|
+
})();
|
|
354
|
+
if(cljs.core.truth_(found)){
|
|
355
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__21607_SHARP_,p2__21608_SHARP_){
|
|
356
|
+
return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(p1__21607_SHARP_,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([p2__21608_SHARP_,x], 0)));
|
|
357
|
+
}),ret,found);
|
|
358
|
+
} else {
|
|
359
|
+
return ret;
|
|
360
|
+
}
|
|
361
|
+
}),cljs.core.PersistentHashSet.EMPTY,s);
|
|
362
|
+
} else {
|
|
363
|
+
return cljs.core.PersistentHashSet.EMPTY;
|
|
364
|
+
}
|
|
365
|
+
}));
|
|
366
|
+
|
|
367
|
+
(clojure.set.join.cljs$core$IFn$_invoke$arity$3 = (function (xrel,yrel,km){
|
|
368
|
+
var vec__21624 = (((cljs.core.count(xrel) <= cljs.core.count(yrel)))?new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [xrel,yrel,clojure.set.map_invert(km)], null):new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [yrel,xrel,km], null));
|
|
369
|
+
var r = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21624,(0),null);
|
|
370
|
+
var s = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21624,(1),null);
|
|
371
|
+
var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21624,(2),null);
|
|
372
|
+
var idx = clojure.set.index(r,cljs.core.vals(k));
|
|
373
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret,x){
|
|
374
|
+
var found = (function (){var G__21629 = clojure.set.rename_keys(cljs.core.select_keys(x,cljs.core.keys(k)),k);
|
|
375
|
+
return (idx.cljs$core$IFn$_invoke$arity$1 ? idx.cljs$core$IFn$_invoke$arity$1(G__21629) : idx.call(null, G__21629));
|
|
376
|
+
})();
|
|
377
|
+
if(cljs.core.truth_(found)){
|
|
378
|
+
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (p1__21609_SHARP_,p2__21610_SHARP_){
|
|
379
|
+
return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(p1__21609_SHARP_,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([p2__21610_SHARP_,x], 0)));
|
|
380
|
+
}),ret,found);
|
|
381
|
+
} else {
|
|
382
|
+
return ret;
|
|
383
|
+
}
|
|
384
|
+
}),cljs.core.PersistentHashSet.EMPTY,s);
|
|
385
|
+
}));
|
|
386
|
+
|
|
387
|
+
(clojure.set.join.cljs$lang$maxFixedArity = 3);
|
|
388
|
+
|
|
389
|
+
/**
|
|
390
|
+
* Is set1 a subset of set2?
|
|
391
|
+
*/
|
|
392
|
+
clojure.set.subset_QMARK_ = (function clojure$set$subset_QMARK_(set1,set2){
|
|
393
|
+
return (((cljs.core.count(set1) <= cljs.core.count(set2))) && (cljs.core.every_QMARK_((function (p1__21633_SHARP_){
|
|
394
|
+
return cljs.core.contains_QMARK_(set2,p1__21633_SHARP_);
|
|
395
|
+
}),set1)));
|
|
396
|
+
});
|
|
397
|
+
/**
|
|
398
|
+
* Is set1 a superset of set2?
|
|
399
|
+
*/
|
|
400
|
+
clojure.set.superset_QMARK_ = (function clojure$set$superset_QMARK_(set1,set2){
|
|
401
|
+
return (((cljs.core.count(set1) >= cljs.core.count(set2))) && (cljs.core.every_QMARK_((function (p1__21647_SHARP_){
|
|
402
|
+
return cljs.core.contains_QMARK_(set1,p1__21647_SHARP_);
|
|
403
|
+
}),set2)));
|
|
404
|
+
});
|
|
405
|
+
|
|
406
|
+
//# sourceMappingURL=clojure.set.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["clojure/set.cljs"],"mappings":"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","names":["clojure.set/bubble-max-key","k","coll","max","cljs.core.apply","cljs.core/max-key","cljs.core/cons","p1__21551#","cljs.core.remove","var_args","G__21559","clojure.set/union","args-arr__5751__auto__","len__5726__auto__","i__5727__auto__","argseq__5752__auto__","cljs.core/IndexedSeq","seq21555","G__21556","cljs.core/first","cljs.core/next","G__21557","self__5711__auto__","s1","s2","cljs.core/count","cljs.core.reduce","cljs.core/conj","sets","bubbled-sets","cljs.core.conj","cljs.core/into","cljs.core/rest","G__21577","clojure.set/intersection","seq21571","G__21575","G__21576","result","item","cljs.core/contains?","cljs.core.disj","p1__21566#","G__21589","clojure.set/difference","seq21586","G__21587","G__21588","cljs.core/disj","clojure.set/select","pred","xset","s","clojure.set/project","xrel","ks","cljs.core/set","p1__21594#","cljs.core.map","cljs.core/select-keys","clojure.set/rename-keys","map","kmap","p__21596","vec__21597","cljs.core.nth","m","old","new","cljs.core.assoc","cljs.core.get","cljs.core/dissoc","cljs.core/keys","clojure.set/rename","p1__21602#","clojure.set/index","x","ik","clojure.set/map-invert","cljs.core/persistent!","cljs.core/reduce-kv","v","cljs.core.assoc_BANG_","cljs.core/transient","G__21612","clojure.set/join","js/Error","yrel","cljs.core/seq","vec__21614","clojure.set.intersection","r","idx","ret","found","G__21620","p1__21607#","p2__21608#","cljs.core.merge","km","vec__21624","cljs.core/vals","G__21629","p1__21609#","p2__21610#","clojure.set/subset?","set1","set2","p1__21633#","cljs.core/every?","clojure.set/superset?","p1__21647#"],"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 ^{:doc \"Set operations such as union/intersection.\"\n :author \"Rich Hickey\"}\n clojure.set)\n\n(defn- bubble-max-key [k coll]\n \"Move a maximal element of coll according to fn k (which returns a number) \n to the front of coll.\"\n (let [max (apply max-key k coll)]\n (cons max (remove #(identical? max %) coll))))\n\n(defn union\n \"Return a set that is the union of the input sets\"\n ([] #{})\n ([s1] s1)\n ([s1 s2]\n (if (< (count s1) (count s2))\n (reduce conj s2 s1)\n (reduce conj s1 s2)))\n ([s1 s2 & sets]\n (let [bubbled-sets (bubble-max-key count (conj sets s2 s1))]\n (reduce into (first bubbled-sets) (rest bubbled-sets)))))\n\n(defn intersection\n \"Return a set that is the intersection of the input sets\"\n ([s1] s1)\n ([s1 s2]\n (if (< (count s2) (count s1))\n (recur s2 s1)\n (reduce (fn [result item]\n (if (contains? s2 item)\n\t\t result\n (disj result item)))\n\t s1 s1)))\n ([s1 s2 & sets] \n (let [bubbled-sets (bubble-max-key #(- (count %)) (conj sets s2 s1))]\n (reduce intersection (first bubbled-sets) (rest bubbled-sets)))))\n\n(defn difference\n \"Return a set that is the first set without elements of the remaining sets\"\n ([s1] s1)\n ([s1 s2] \n (if (< (count s1) (count s2))\n (reduce (fn [result item] \n (if (contains? s2 item) \n (disj result item) \n result))\n s1 s1)\n (reduce disj s1 s2)))\n ([s1 s2 & sets] \n (reduce difference s1 (conj sets s2))))\n\n\n(defn select\n \"Returns a set of the elements for which pred is true\"\n [pred xset]\n (reduce (fn [s k] (if (pred k) s (disj s k)))\n xset xset))\n\n(defn project\n \"Returns a rel of the elements of xrel with only the keys in ks\"\n [xrel ks]\n (set (map #(select-keys % ks) xrel)))\n\n(defn rename-keys\n \"Returns the map with the keys in kmap renamed to the vals in kmap\"\n [map kmap]\n (reduce\n (fn [m [old new]]\n (if (contains? map old)\n (assoc m new (get map old))\n m))\n (apply dissoc map (keys kmap)) kmap))\n\n(defn rename\n \"Returns a rel of the maps in xrel with the keys in kmap renamed to the vals in kmap\"\n [xrel kmap]\n (set (map #(rename-keys % kmap) xrel)))\n\n(defn index\n \"Returns a map of the distinct values of ks in the xrel mapped to a\n set of the maps in xrel with the corresponding values of ks.\"\n [xrel ks]\n (reduce\n (fn [m x]\n (let [ik (select-keys x ks)]\n (assoc m ik (conj (get m ik #{}) x))))\n {} xrel))\n \n(defn map-invert\n \"Returns the map with the vals mapped to the keys.\"\n [m]\n (persistent!\n (reduce-kv (fn [m k v] (assoc! m v k))\n (transient {})\n m)))\n\n(defn join\n \"When passed 2 rels, returns the rel corresponding to the natural\n join. When passed an additional keymap, joins on the corresponding\n keys.\"\n ([xrel yrel] ;natural join\n (if (and (seq xrel) (seq yrel))\n (let [ks (intersection (set (keys (first xrel))) (set (keys (first yrel))))\n [r s] (if (<= (count xrel) (count yrel))\n [xrel yrel]\n [yrel xrel])\n idx (index r ks)]\n (reduce (fn [ret x]\n (let [found (idx (select-keys x ks))]\n (if found\n (reduce #(conj %1 (merge %2 x)) ret found)\n ret)))\n #{} s))\n #{}))\n ([xrel yrel km] ;arbitrary key mapping\n (let [[r s k] (if (<= (count xrel) (count yrel))\n [xrel yrel (map-invert km)]\n [yrel xrel km])\n idx (index r (vals k))]\n (reduce (fn [ret x]\n (let [found (idx (rename-keys (select-keys x (keys k)) k))]\n (if found\n (reduce #(conj %1 (merge %2 x)) ret found)\n ret)))\n #{} s))))\n\n(defn subset? \n \"Is set1 a subset of set2?\"\n [set1 set2]\n (and (<= (count set1) (count set2))\n (every? #(contains? set2 %) set1)))\n\n(defn superset? \n \"Is set1 a superset of set2?\"\n [set1 set2]\n (and (>= (count set1) (count set2))\n (every? #(contains? set1 %) set2)))\n\n(comment\n(refer 'set)\n(def xs #{{:a 11 :b 1 :c 1 :d 4}\n {:a 2 :b 12 :c 2 :d 6}\n {:a 3 :b 3 :c 3 :d 8 :f 42}})\n\n(def ys #{{:a 11 :b 11 :c 11 :e 5}\n {:a 12 :b 11 :c 12 :e 3}\n {:a 3 :b 3 :c 3 :e 7 }})\n\n(join xs ys)\n(join xs (rename ys {:b :yb :c :yc}) {:a :a})\n\n(union #{:a :b :c} #{:c :d :e })\n(difference #{:a :b :c} #{:c :d :e})\n(intersection #{:a :b :c} #{:c :d :e})\n\n(index ys [:b]))\n\n"],"x_google_ignoreList":[0]}
|