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/hasch.core.js
ADDED
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
var $CLJS = require("./cljs_env");
|
|
2
|
+
var $jscomp = $CLJS.$jscomp;
|
|
3
|
+
var COMPILED = false;
|
|
4
|
+
require("./cljs.core.js");
|
|
5
|
+
require("./hasch.benc.js");
|
|
6
|
+
require("./hasch.base64.js");
|
|
7
|
+
require("./hasch.platform.js");
|
|
8
|
+
var environ=$CLJS.environ || ($CLJS.environ = {});
|
|
9
|
+
var fress=$CLJS.fress || ($CLJS.fress = {});
|
|
10
|
+
var datahike=$CLJS.datahike || ($CLJS.datahike = {});
|
|
11
|
+
var clojure=$CLJS.clojure || ($CLJS.clojure = {});
|
|
12
|
+
var hasch=$CLJS.hasch || ($CLJS.hasch = {});
|
|
13
|
+
var tailrecursion=$CLJS.tailrecursion || ($CLJS.tailrecursion = {});
|
|
14
|
+
var superv=$CLJS.superv || ($CLJS.superv = {});
|
|
15
|
+
var geheimnis=$CLJS.geheimnis || ($CLJS.geheimnis = {});
|
|
16
|
+
var is=$CLJS.is || ($CLJS.is = {});
|
|
17
|
+
var cljs=$CLJS.cljs || ($CLJS.cljs = {});
|
|
18
|
+
var cljs_node_io=$CLJS.cljs_node_io || ($CLJS.cljs_node_io = {});
|
|
19
|
+
var goog=$CLJS.goog || ($CLJS.goog = {});
|
|
20
|
+
var konserve=$CLJS.konserve || ($CLJS.konserve = {});
|
|
21
|
+
var datalog=$CLJS.datalog || ($CLJS.datalog = {});
|
|
22
|
+
var spec_tools=$CLJS.spec_tools || ($CLJS.spec_tools = {});
|
|
23
|
+
var taoensso=$CLJS.taoensso || ($CLJS.taoensso = {});
|
|
24
|
+
var incognito=$CLJS.incognito || ($CLJS.incognito = {});
|
|
25
|
+
var medley=$CLJS.medley || ($CLJS.medley = {});
|
|
26
|
+
var me=$CLJS.me || ($CLJS.me = {});
|
|
27
|
+
|
|
28
|
+
$CLJS.SHADOW_ENV.setLoaded("hasch.core.js");
|
|
29
|
+
|
|
30
|
+
goog.provide('hasch.core');
|
|
31
|
+
hasch.core.uuid4 = hasch.platform.uuid4;
|
|
32
|
+
hasch.core.uuid5 = hasch.platform.uuid5;
|
|
33
|
+
hasch.core.hash__GT_str = hasch.platform.hash__GT_str;
|
|
34
|
+
/**
|
|
35
|
+
* Hash an edn value with SHA-512 by default or a compatible hash function of choice.
|
|
36
|
+
*
|
|
37
|
+
* Please use the write-handlers only in legacy cases and rather extend the PHashCoercion
|
|
38
|
+
* protocol to your own types.
|
|
39
|
+
*/
|
|
40
|
+
hasch.core.edn_hash = (function hasch$core$edn_hash(var_args){
|
|
41
|
+
var G__26440 = arguments.length;
|
|
42
|
+
switch (G__26440) {
|
|
43
|
+
case 1:
|
|
44
|
+
return hasch.core.edn_hash.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
|
|
45
|
+
|
|
46
|
+
break;
|
|
47
|
+
case 2:
|
|
48
|
+
return hasch.core.edn_hash.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
|
|
49
|
+
|
|
50
|
+
break;
|
|
51
|
+
case 3:
|
|
52
|
+
return hasch.core.edn_hash.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
|
|
53
|
+
|
|
54
|
+
break;
|
|
55
|
+
default:
|
|
56
|
+
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
|
|
57
|
+
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
(hasch.core.edn_hash.cljs$core$IFn$_invoke$arity$1 = (function (val){
|
|
62
|
+
return hasch.core.edn_hash.cljs$core$IFn$_invoke$arity$2(val,cljs.core.PersistentArrayMap.EMPTY);
|
|
63
|
+
}));
|
|
64
|
+
|
|
65
|
+
(hasch.core.edn_hash.cljs$core$IFn$_invoke$arity$2 = (function (val,write_handlers){
|
|
66
|
+
return hasch.core.edn_hash.cljs$core$IFn$_invoke$arity$3(val,hasch.platform.sha512_message_digest,write_handlers);
|
|
67
|
+
}));
|
|
68
|
+
|
|
69
|
+
(hasch.core.edn_hash.cljs$core$IFn$_invoke$arity$3 = (function (val,md_create_fn,write_handlers){
|
|
70
|
+
return cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__26435_SHARP_){
|
|
71
|
+
if((p1__26435_SHARP_ < (0))){
|
|
72
|
+
return (p1__26435_SHARP_ + (256));
|
|
73
|
+
} else {
|
|
74
|
+
return p1__26435_SHARP_;
|
|
75
|
+
}
|
|
76
|
+
}),hasch.benc.digest(hasch.benc._coerce(val,md_create_fn,(function (){var or__5002__auto__ = write_handlers;
|
|
77
|
+
if(cljs.core.truth_(or__5002__auto__)){
|
|
78
|
+
return or__5002__auto__;
|
|
79
|
+
} else {
|
|
80
|
+
return cljs.core.PersistentArrayMap.EMPTY;
|
|
81
|
+
}
|
|
82
|
+
})()),md_create_fn));
|
|
83
|
+
}));
|
|
84
|
+
|
|
85
|
+
(hasch.core.edn_hash.cljs$lang$maxFixedArity = 3);
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Creates random UUID-4 without argument or UUID-5 for the argument value.
|
|
89
|
+
*
|
|
90
|
+
* Optionally an incognito-style write-handlers map can be supplied,
|
|
91
|
+
* which describes record serialization in terms of Clojure data
|
|
92
|
+
* structures.
|
|
93
|
+
*/
|
|
94
|
+
hasch.core.uuid = (function hasch$core$uuid(var_args){
|
|
95
|
+
var G__26452 = arguments.length;
|
|
96
|
+
switch (G__26452) {
|
|
97
|
+
case 0:
|
|
98
|
+
return hasch.core.uuid.cljs$core$IFn$_invoke$arity$0();
|
|
99
|
+
|
|
100
|
+
break;
|
|
101
|
+
default:
|
|
102
|
+
var args_arr__5751__auto__ = [];
|
|
103
|
+
var len__5726__auto___26477 = arguments.length;
|
|
104
|
+
var i__5727__auto___26478 = (0);
|
|
105
|
+
while(true){
|
|
106
|
+
if((i__5727__auto___26478 < len__5726__auto___26477)){
|
|
107
|
+
args_arr__5751__auto__.push((arguments[i__5727__auto___26478]));
|
|
108
|
+
|
|
109
|
+
var G__26479 = (i__5727__auto___26478 + (1));
|
|
110
|
+
i__5727__auto___26478 = G__26479;
|
|
111
|
+
continue;
|
|
112
|
+
} else {
|
|
113
|
+
}
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
var argseq__5752__auto__ = ((((1) < args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((1)),(0),null)):null);
|
|
118
|
+
return hasch.core.uuid.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5752__auto__);
|
|
119
|
+
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
(hasch.core.uuid.cljs$core$IFn$_invoke$arity$0 = (function (){
|
|
124
|
+
return (hasch.core.uuid4.cljs$core$IFn$_invoke$arity$0 ? hasch.core.uuid4.cljs$core$IFn$_invoke$arity$0() : hasch.core.uuid4.call(null, ));
|
|
125
|
+
}));
|
|
126
|
+
|
|
127
|
+
(hasch.core.uuid.cljs$core$IFn$_invoke$arity$variadic = (function (val,p__26454){
|
|
128
|
+
var map__26455 = p__26454;
|
|
129
|
+
var map__26455__$1 = cljs.core.__destructure_map(map__26455);
|
|
130
|
+
var write_handlers = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26455__$1,new cljs.core.Keyword(null,"write-handlers","write-handlers",-2097288911));
|
|
131
|
+
var G__26456 = hasch.core.edn_hash.cljs$core$IFn$_invoke$arity$2(val,write_handlers);
|
|
132
|
+
return (hasch.core.uuid5.cljs$core$IFn$_invoke$arity$1 ? hasch.core.uuid5.cljs$core$IFn$_invoke$arity$1(G__26456) : hasch.core.uuid5.call(null, G__26456));
|
|
133
|
+
}));
|
|
134
|
+
|
|
135
|
+
/** @this {Function} */
|
|
136
|
+
(hasch.core.uuid.cljs$lang$applyTo = (function (seq26448){
|
|
137
|
+
var G__26449 = cljs.core.first(seq26448);
|
|
138
|
+
var seq26448__$1 = cljs.core.next(seq26448);
|
|
139
|
+
var self__5711__auto__ = this;
|
|
140
|
+
return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__26449,seq26448__$1);
|
|
141
|
+
}));
|
|
142
|
+
|
|
143
|
+
(hasch.core.uuid.cljs$lang$maxFixedArity = (1));
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Calculates a sequential UUID as described in
|
|
147
|
+
* https://github.com/clojure-cookbook/clojure-cookbook/blob/master/01_primitive-data/1-24_uuids.asciidoc
|
|
148
|
+
*/
|
|
149
|
+
hasch.core.squuid = (function hasch$core$squuid(var_args){
|
|
150
|
+
var G__26468 = arguments.length;
|
|
151
|
+
switch (G__26468) {
|
|
152
|
+
case 0:
|
|
153
|
+
return hasch.core.squuid.cljs$core$IFn$_invoke$arity$0();
|
|
154
|
+
|
|
155
|
+
break;
|
|
156
|
+
case 1:
|
|
157
|
+
return hasch.core.squuid.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
|
|
158
|
+
|
|
159
|
+
break;
|
|
160
|
+
default:
|
|
161
|
+
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
|
|
162
|
+
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
(hasch.core.squuid.cljs$core$IFn$_invoke$arity$0 = (function (){
|
|
167
|
+
return hasch.core.squuid.cljs$core$IFn$_invoke$arity$1((hasch.core.uuid4.cljs$core$IFn$_invoke$arity$0 ? hasch.core.uuid4.cljs$core$IFn$_invoke$arity$0() : hasch.core.uuid4.call(null, )));
|
|
168
|
+
}));
|
|
169
|
+
|
|
170
|
+
(hasch.core.squuid.cljs$core$IFn$_invoke$arity$1 = (function (uuid){
|
|
171
|
+
var time = (new Date()).getTime();
|
|
172
|
+
var secs = cljs.core.quot(time,(1000));
|
|
173
|
+
var prefix = secs.toString((16));
|
|
174
|
+
return cljs.core.uuid([cljs.core.str.cljs$core$IFn$_invoke$arity$1(prefix),cljs.core.subs.cljs$core$IFn$_invoke$arity$2(cljs.core.str.cljs$core$IFn$_invoke$arity$1(uuid),(8))].join(''));
|
|
175
|
+
}));
|
|
176
|
+
|
|
177
|
+
(hasch.core.squuid.cljs$lang$maxFixedArity = 1);
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Provides a base64 encoded string of the edn-hash of a value val. This contains
|
|
181
|
+
* all bits of the hash compared to 128 bits for the UUID-5. Both should be safe,
|
|
182
|
+
* but b64-hash is safer towards collisions.
|
|
183
|
+
*/
|
|
184
|
+
hasch.core.b64_hash = (function hasch$core$b64_hash(val){
|
|
185
|
+
return hasch.base64.encode(cljs.core.clj__GT_js(hasch.core.edn_hash.cljs$core$IFn$_invoke$arity$1(val)));
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
//# sourceMappingURL=hasch.core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["hasch/core.cljc"],"mappings":"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","names":["hasch.core/uuid4","hasch.platform/uuid4","hasch.core/uuid5","hasch.platform/uuid5","hasch.core/hash->str","hasch.platform/hash->str","var_args","G__26440","hasch.core/edn-hash","js/Error","val","hasch.core.edn_hash","write-handlers","hasch.platform/sha512-message-digest","md-create-fn","p1__26435#","cljs.core.map","hasch.benc/digest","hasch.benc/-coerce","or__5002__auto__","G__26452","hasch.core/uuid","args-arr__5751__auto__","len__5726__auto__","i__5727__auto__","argseq__5752__auto__","cljs.core/IndexedSeq","p__26454","map__26455","cljs.core/--destructure-map","cljs.core.get","seq26448","G__26449","cljs.core/first","cljs.core/next","self__5711__auto__","G__26456","G__26468","hasch.core/squuid","hasch.core.squuid","uuid","time","js/Date","secs","cljs.core/quot","prefix","cljs.core/uuid","cljs.core.subs","hasch.core/b64-hash","hasch.base64/encode","cljs.core/clj->js"],"sourcesContent":["(ns hasch.core\n \"Hashing functions for EDN.\"\n #?(:cljs (:refer-clojure :exclude [uuid]))\n (:require [hasch.benc :refer [PHashCoercion -coerce digest]]\n [hasch.base64 :as b64]\n [hasch.platform :as platform]))\n\n(def uuid4 platform/uuid4)\n(def uuid5 platform/uuid5)\n(def hash->str platform/hash->str)\n\n(defn edn-hash\n \"Hash an edn value with SHA-512 by default or a compatible hash function of choice.\n\n Please use the write-handlers only in legacy cases and rather extend the PHashCoercion\n protocol to your own types.\"\n ([val] (edn-hash val {}))\n ([val write-handlers] (edn-hash val hasch.platform/sha512-message-digest write-handlers))\n ([val md-create-fn write-handlers]\n (map #(if (neg? %) (+ % 256) %) ;; make unsigned\n (digest (-coerce val md-create-fn (or write-handlers {})) md-create-fn))))\n\n(defn uuid\n \"Creates random UUID-4 without argument or UUID-5 for the argument value.\n\n Optionally an incognito-style write-handlers map can be supplied,\n which describes record serialization in terms of Clojure data\n structures.\"\n ([] (uuid4))\n ([val & {:keys [write-handlers]}] (-> val (edn-hash write-handlers) uuid5)))\n\n(defn squuid\n \"Calculates a sequential UUID as described in\n https://github.com/clojure-cookbook/clojure-cookbook/blob/master/01_primitive-data/1-24_uuids.asciidoc\"\n ([] (squuid (uuid4)))\n ([uuid]\n #?(:clj\n (let [time (System/currentTimeMillis)\n secs (quot time 1000)\n lsb (.getLeastSignificantBits ^java.util.UUID uuid)\n msb (.getMostSignificantBits ^java.util.UUID uuid)\n timed-msb (bit-or (bit-shift-left secs 32)\n (bit-and 0x00000000ffffffff msb))]\n (java.util.UUID. timed-msb lsb))\n :cljs\n (let [time (.getTime (js/Date.))\n secs (quot time 1000)\n prefix (.toString secs 16)]\n (cljs.core/uuid (str prefix (subs (str uuid) 8)))))))\n\n(defn b64-hash\n \"Provides a base64 encoded string of the edn-hash of a value val. This contains\n all bits of the hash compared to 128 bits for the UUID-5. Both should be safe,\n but b64-hash is safer towards collisions.\"\n [val]\n (b64/encode (#?(:clj byte-array :cljs clj->js) (edn-hash val))))\n"],"x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,221 @@
|
|
|
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
|
+
require("./clojure.string.js");
|
|
7
|
+
require("./incognito.base.js");
|
|
8
|
+
require("./hasch.benc.js");
|
|
9
|
+
var environ=$CLJS.environ || ($CLJS.environ = {});
|
|
10
|
+
var fress=$CLJS.fress || ($CLJS.fress = {});
|
|
11
|
+
var datahike=$CLJS.datahike || ($CLJS.datahike = {});
|
|
12
|
+
var clojure=$CLJS.clojure || ($CLJS.clojure = {});
|
|
13
|
+
var hasch=$CLJS.hasch || ($CLJS.hasch = {});
|
|
14
|
+
var tailrecursion=$CLJS.tailrecursion || ($CLJS.tailrecursion = {});
|
|
15
|
+
var superv=$CLJS.superv || ($CLJS.superv = {});
|
|
16
|
+
var geheimnis=$CLJS.geheimnis || ($CLJS.geheimnis = {});
|
|
17
|
+
var is=$CLJS.is || ($CLJS.is = {});
|
|
18
|
+
var cljs=$CLJS.cljs || ($CLJS.cljs = {});
|
|
19
|
+
var cljs_node_io=$CLJS.cljs_node_io || ($CLJS.cljs_node_io = {});
|
|
20
|
+
var goog=$CLJS.goog || ($CLJS.goog = {});
|
|
21
|
+
var konserve=$CLJS.konserve || ($CLJS.konserve = {});
|
|
22
|
+
var datalog=$CLJS.datalog || ($CLJS.datalog = {});
|
|
23
|
+
var spec_tools=$CLJS.spec_tools || ($CLJS.spec_tools = {});
|
|
24
|
+
var taoensso=$CLJS.taoensso || ($CLJS.taoensso = {});
|
|
25
|
+
var incognito=$CLJS.incognito || ($CLJS.incognito = {});
|
|
26
|
+
var medley=$CLJS.medley || ($CLJS.medley = {});
|
|
27
|
+
var me=$CLJS.me || ($CLJS.me = {});
|
|
28
|
+
|
|
29
|
+
$CLJS.SHADOW_ENV.setLoaded("hasch.platform.js");
|
|
30
|
+
|
|
31
|
+
goog.provide('hasch.platform');
|
|
32
|
+
hasch.platform.uuid4 = cljs.core.random_uuid;
|
|
33
|
+
hasch.platform.byte__GT_hex = (function hasch$platform$byte__GT_hex(b){
|
|
34
|
+
return ((b & (255)) + (256)).toString((16)).substring((1));
|
|
35
|
+
});
|
|
36
|
+
hasch.platform.hash__GT_str = (function hasch$platform$hash__GT_str(bytes){
|
|
37
|
+
return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.map.cljs$core$IFn$_invoke$arity$2(hasch.platform.byte__GT_hex,bytes));
|
|
38
|
+
});
|
|
39
|
+
hasch.platform._STAR_use_legacy_utf8_conversion_STAR_ = false;
|
|
40
|
+
/**
|
|
41
|
+
* Encodes a string as UTF-8 in an unsigned js array.
|
|
42
|
+
*/
|
|
43
|
+
hasch.platform.legacy_utf8 = (function hasch$platform$legacy_utf8(s){
|
|
44
|
+
return cljs.core.into_array.cljs$core$IFn$_invoke$arity$1(cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (pos){
|
|
45
|
+
var c = s.charCodeAt(pos);
|
|
46
|
+
if((c <= (127))){
|
|
47
|
+
return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(c & (255))], null);
|
|
48
|
+
} else {
|
|
49
|
+
if((c <= (2047))){
|
|
50
|
+
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [((192) | (c >> (6))),((128) | (c & (63)))], null);
|
|
51
|
+
} else {
|
|
52
|
+
if((c <= (65535))){
|
|
53
|
+
return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [((224) | (c >> (12))),((128) | ((c >> (6)) & (63))),((128) | (c & (63)))], null);
|
|
54
|
+
} else {
|
|
55
|
+
var j = (function (){var j = (4);
|
|
56
|
+
while(true){
|
|
57
|
+
if(((c >> (j * (6))) > (0))){
|
|
58
|
+
var G__26136 = (j + (1));
|
|
59
|
+
j = G__26136;
|
|
60
|
+
continue;
|
|
61
|
+
} else {
|
|
62
|
+
return j;
|
|
63
|
+
}
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
})();
|
|
67
|
+
var init = ((((65280) >> j) & (255)) | (c >> ((6) * (j - (1)))));
|
|
68
|
+
return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__26047_SHARP_){
|
|
69
|
+
return ((128) | ((c >> ((6) * p1__26047_SHARP_)) & (63)));
|
|
70
|
+
}),cljs.core.reverse(cljs.core.range.cljs$core$IFn$_invoke$arity$1((j - (1))))),init);
|
|
71
|
+
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.range.cljs$core$IFn$_invoke$arity$1(s.length)], 0)));
|
|
76
|
+
});
|
|
77
|
+
hasch.platform.utf8 = (function hasch$platform$utf8(s){
|
|
78
|
+
if(cljs.core.truth_(hasch.platform._STAR_use_legacy_utf8_conversion_STAR_)){
|
|
79
|
+
return hasch.platform.legacy_utf8(s);
|
|
80
|
+
} else {
|
|
81
|
+
return goog.crypt.stringToUtf8ByteArray(s);
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
/**
|
|
85
|
+
* Generates a uuid5 from a sha-1 hash byte sequence.
|
|
86
|
+
* Our hash version is coded in first 2 bits.
|
|
87
|
+
*/
|
|
88
|
+
hasch.platform.uuid5 = (function hasch$platform$uuid5(sha_hash){
|
|
89
|
+
var vec__26048 = sha_hash;
|
|
90
|
+
var hb1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26048,(0),null);
|
|
91
|
+
var hb2 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26048,(1),null);
|
|
92
|
+
var hb3 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26048,(2),null);
|
|
93
|
+
var hb4 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26048,(3),null);
|
|
94
|
+
var hb5 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26048,(4),null);
|
|
95
|
+
var hb6 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26048,(5),null);
|
|
96
|
+
var hb7 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26048,(6),null);
|
|
97
|
+
var hb8 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26048,(7),null);
|
|
98
|
+
var lb1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26048,(8),null);
|
|
99
|
+
var lb2 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26048,(9),null);
|
|
100
|
+
var lb3 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26048,(10),null);
|
|
101
|
+
var lb4 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26048,(11),null);
|
|
102
|
+
var lb5 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26048,(12),null);
|
|
103
|
+
var lb6 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26048,(13),null);
|
|
104
|
+
var lb7 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26048,(14),null);
|
|
105
|
+
var lb8 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__26048,(15),null);
|
|
106
|
+
return cljs.core.uuid((function (s){
|
|
107
|
+
return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.take.cljs$core$IFn$_invoke$arity$2((8),s))),"-",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.take.cljs$core$IFn$_invoke$arity$2((4),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((8),s)))),"-",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.take.cljs$core$IFn$_invoke$arity$2((4),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((12),s)))),"-",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.take.cljs$core$IFn$_invoke$arity$2((4),cljs.core.drop.cljs$core$IFn$_invoke$arity$2((16),s)))),"-",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.drop.cljs$core$IFn$_invoke$arity$2((20),s)))].join('');
|
|
108
|
+
})(hasch.platform.hash__GT_str(new cljs.core.PersistentVector(null, 16, 5, cljs.core.PersistentVector.EMPTY_NODE, [((hb1 & ~(1 << (7))) & ~(1 << (6))),hb2,hb3,hb4,hb5,hb6,((80) | ((95) & hb7)),hb8,((lb1 | (1 << (7))) & ~(1 << (6))),lb2,lb3,lb4,lb5,lb6,lb7,lb8], null))));
|
|
109
|
+
});
|
|
110
|
+
hasch.platform.sha512_message_digest = (function hasch$platform$sha512_message_digest(){
|
|
111
|
+
return (new goog.crypt.Sha512());
|
|
112
|
+
});
|
|
113
|
+
hasch.platform.md5_message_digest = (function hasch$platform$md5_message_digest(){
|
|
114
|
+
return (new goog.crypt.Md5());
|
|
115
|
+
});
|
|
116
|
+
hasch.platform.encode = (function hasch$platform$encode(magic,a){
|
|
117
|
+
return [magic].concat(a);
|
|
118
|
+
});
|
|
119
|
+
hasch.platform.str__GT_utf8 = (function hasch$platform$str__GT_utf8(x){
|
|
120
|
+
return hasch.platform.utf8(cljs.core.str.cljs$core$IFn$_invoke$arity$1(x));
|
|
121
|
+
});
|
|
122
|
+
(hasch.benc.PHashCoercion["null"] = true);
|
|
123
|
+
|
|
124
|
+
(hasch.benc._coerce["null"] = (function (this$,md_create_fn,write_handlers){
|
|
125
|
+
return hasch.platform.encode(new cljs.core.Keyword(null,"nil","nil",99600501).cljs$core$IFn$_invoke$arity$1(hasch.benc.magics),[]);
|
|
126
|
+
}));
|
|
127
|
+
|
|
128
|
+
(hasch.benc.PHashCoercion["boolean"] = true);
|
|
129
|
+
|
|
130
|
+
(hasch.benc._coerce["boolean"] = (function (this$,md_create_fn,write_handlers){
|
|
131
|
+
return hasch.platform.encode(new cljs.core.Keyword(null,"boolean","boolean",-1919418404).cljs$core$IFn$_invoke$arity$1(hasch.benc.magics),[((this$)?(41):(40))]);
|
|
132
|
+
}));
|
|
133
|
+
|
|
134
|
+
(Date.prototype.hasch$benc$PHashCoercion$ = cljs.core.PROTOCOL_SENTINEL);
|
|
135
|
+
|
|
136
|
+
(Date.prototype.hasch$benc$PHashCoercion$_coerce$arity$3 = (function (this$,md_create_fn,write_handlers){
|
|
137
|
+
var this$__$1 = this;
|
|
138
|
+
return hasch.platform.encode(new cljs.core.Keyword(null,"inst","inst",645962501).cljs$core$IFn$_invoke$arity$1(hasch.benc.magics),hasch.platform.str__GT_utf8(this$__$1.getTime()));
|
|
139
|
+
}));
|
|
140
|
+
|
|
141
|
+
(cljs.core.Keyword.prototype.hasch$benc$PHashCoercion$ = cljs.core.PROTOCOL_SENTINEL);
|
|
142
|
+
|
|
143
|
+
(cljs.core.Keyword.prototype.hasch$benc$PHashCoercion$_coerce$arity$3 = (function (this$,md_create_fn,write_handlers){
|
|
144
|
+
var this$__$1 = this;
|
|
145
|
+
return hasch.platform.encode(new cljs.core.Keyword(null,"keyword","keyword",811389747).cljs$core$IFn$_invoke$arity$1(hasch.benc.magics),hasch.benc.encode_safe(hasch.platform.str__GT_utf8(this$__$1),md_create_fn));
|
|
146
|
+
}));
|
|
147
|
+
|
|
148
|
+
(hasch.benc.PHashCoercion["number"] = true);
|
|
149
|
+
|
|
150
|
+
(hasch.benc._coerce["number"] = (function (this$,md_create_fn,write_handlers){
|
|
151
|
+
return hasch.platform.encode(new cljs.core.Keyword(null,"number","number",1570378438).cljs$core$IFn$_invoke$arity$1(hasch.benc.magics),hasch.platform.str__GT_utf8(this$));
|
|
152
|
+
}));
|
|
153
|
+
|
|
154
|
+
(hasch.benc.PHashCoercion["_"] = true);
|
|
155
|
+
|
|
156
|
+
(hasch.benc._coerce["_"] = (function (this$,md_create_fn,write_handlers){
|
|
157
|
+
if((this$ instanceof incognito.base.IncognitoTaggedLiteral)){
|
|
158
|
+
var map__26076 = this$;
|
|
159
|
+
var map__26076__$1 = cljs.core.__destructure_map(map__26076);
|
|
160
|
+
var tag = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26076__$1,new cljs.core.Keyword(null,"tag","tag",-1290361223));
|
|
161
|
+
var value = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26076__$1,new cljs.core.Keyword(null,"value","value",305978217));
|
|
162
|
+
return hasch.platform.encode(new cljs.core.Keyword(null,"literal","literal",1664775605).cljs$core$IFn$_invoke$arity$1(hasch.benc.magics),hasch.benc.coerce_seq(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [tag,value], null),md_create_fn,write_handlers));
|
|
163
|
+
} else {
|
|
164
|
+
if((((!((this$ == null))))?(((((this$.cljs$lang$protocol_mask$partition0$ & (67108864))) || ((cljs.core.PROTOCOL_SENTINEL === this$.cljs$core$IRecord$))))?true:(((!this$.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.IRecord,this$):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IRecord,this$))){
|
|
165
|
+
var map__26087 = incognito.base.incognito_writer(write_handlers,this$);
|
|
166
|
+
var map__26087__$1 = cljs.core.__destructure_map(map__26087);
|
|
167
|
+
var tag = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26087__$1,new cljs.core.Keyword(null,"tag","tag",-1290361223));
|
|
168
|
+
var value = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__26087__$1,new cljs.core.Keyword(null,"value","value",305978217));
|
|
169
|
+
return hasch.platform.encode(new cljs.core.Keyword(null,"literal","literal",1664775605).cljs$core$IFn$_invoke$arity$1(hasch.benc.magics),hasch.benc.coerce_seq(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [tag,value], null),md_create_fn,write_handlers));
|
|
170
|
+
} else {
|
|
171
|
+
if((((!((this$ == null))))?(((((this$.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === this$.cljs$core$ISeq$))))?true:(((!this$.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.ISeq,this$):false)):cljs.core.native_satisfies_QMARK_(cljs.core.ISeq,this$))){
|
|
172
|
+
return hasch.platform.encode(new cljs.core.Keyword(null,"seq","seq",-1817803783).cljs$core$IFn$_invoke$arity$1(hasch.benc.magics),hasch.benc.coerce_seq(this$,md_create_fn,write_handlers));
|
|
173
|
+
} else {
|
|
174
|
+
if((((!((this$ == null))))?(((((this$.cljs$lang$protocol_mask$partition0$ & (16384))) || ((cljs.core.PROTOCOL_SENTINEL === this$.cljs$core$IVector$))))?true:(((!this$.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.IVector,this$):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IVector,this$))){
|
|
175
|
+
return hasch.platform.encode(new cljs.core.Keyword(null,"vector","vector",1902966158).cljs$core$IFn$_invoke$arity$1(hasch.benc.magics),hasch.benc.coerce_seq(this$,md_create_fn,write_handlers));
|
|
176
|
+
} else {
|
|
177
|
+
if((((!((this$ == null))))?(((((this$.cljs$lang$protocol_mask$partition0$ & (1024))) || ((cljs.core.PROTOCOL_SENTINEL === this$.cljs$core$IMap$))))?true:(((!this$.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.IMap,this$):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IMap,this$))){
|
|
178
|
+
return hasch.platform.encode(new cljs.core.Keyword(null,"map","map",1371690461).cljs$core$IFn$_invoke$arity$1(hasch.benc.magics),hasch.benc.xor_hashes(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__26051_SHARP_){
|
|
179
|
+
return hasch.benc._coerce(p1__26051_SHARP_,md_create_fn,write_handlers);
|
|
180
|
+
}),cljs.core.seq(this$))));
|
|
181
|
+
} else {
|
|
182
|
+
if((((!((this$ == null))))?(((((this$.cljs$lang$protocol_mask$partition0$ & (4096))) || ((cljs.core.PROTOCOL_SENTINEL === this$.cljs$core$ISet$))))?true:(((!this$.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.ISet,this$):false)):cljs.core.native_satisfies_QMARK_(cljs.core.ISet,this$))){
|
|
183
|
+
return hasch.platform.encode(new cljs.core.Keyword(null,"set","set",304602554).cljs$core$IFn$_invoke$arity$1(hasch.benc.magics),hasch.benc.xor_hashes(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__26052_SHARP_){
|
|
184
|
+
return hasch.benc.digest(hasch.benc._coerce(p1__26052_SHARP_,md_create_fn,write_handlers),md_create_fn);
|
|
185
|
+
}),cljs.core.seq(this$))));
|
|
186
|
+
} else {
|
|
187
|
+
if((this$ instanceof Uint8Array)){
|
|
188
|
+
return hasch.platform.encode(new cljs.core.Keyword(null,"binary","binary",-1802232288).cljs$core$IFn$_invoke$arity$1(hasch.benc.magics),hasch.benc.encode_safe(Array.prototype.slice.call(this$),md_create_fn));
|
|
189
|
+
} else {
|
|
190
|
+
throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Cannot hash unknown type, you can extend PHashCoercion protocol for:",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.type(this$),new cljs.core.Keyword(null,"value","value",305978217),this$], null));
|
|
191
|
+
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}));
|
|
200
|
+
|
|
201
|
+
(hasch.benc.PHashCoercion["string"] = true);
|
|
202
|
+
|
|
203
|
+
(hasch.benc._coerce["string"] = (function (this$,md_create_fn,write_handlers){
|
|
204
|
+
return hasch.platform.encode(new cljs.core.Keyword(null,"string","string",-1989541586).cljs$core$IFn$_invoke$arity$1(hasch.benc.magics),hasch.benc.encode_safe(hasch.platform.str__GT_utf8(this$),md_create_fn));
|
|
205
|
+
}));
|
|
206
|
+
|
|
207
|
+
(cljs.core.Symbol.prototype.hasch$benc$PHashCoercion$ = cljs.core.PROTOCOL_SENTINEL);
|
|
208
|
+
|
|
209
|
+
(cljs.core.Symbol.prototype.hasch$benc$PHashCoercion$_coerce$arity$3 = (function (this$,md_create_fn,write_handlers){
|
|
210
|
+
var this$__$1 = this;
|
|
211
|
+
return hasch.platform.encode(new cljs.core.Keyword(null,"symbol","symbol",-1038572696).cljs$core$IFn$_invoke$arity$1(hasch.benc.magics),hasch.benc.encode_safe(hasch.platform.str__GT_utf8(this$__$1),md_create_fn));
|
|
212
|
+
}));
|
|
213
|
+
|
|
214
|
+
(cljs.core.UUID.prototype.hasch$benc$PHashCoercion$ = cljs.core.PROTOCOL_SENTINEL);
|
|
215
|
+
|
|
216
|
+
(cljs.core.UUID.prototype.hasch$benc$PHashCoercion$_coerce$arity$3 = (function (this$,md_create_fn,write_handlers){
|
|
217
|
+
var this$__$1 = this;
|
|
218
|
+
return hasch.platform.encode(new cljs.core.Keyword(null,"uuid","uuid",-2145095719).cljs$core$IFn$_invoke$arity$1(hasch.benc.magics),hasch.platform.str__GT_utf8(this$__$1.uuid));
|
|
219
|
+
}));
|
|
220
|
+
|
|
221
|
+
//# sourceMappingURL=hasch.platform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["hasch/platform.cljs"],"mappings":"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","names":["hasch.platform/uuid4","cljs.core/random-uuid","hasch.platform/byte->hex","b","hasch.platform/hash->str","bytes","cljs.core.apply","cljs.core/str","cljs.core.map","hasch.platform/*use-legacy-utf8-conversion*","hasch.platform/legacy-utf8","s","cljs.core.into_array","cljs.core.mapcat","pos","c","j","init","cljs.core.conj","cljs.core.range","cljs.core/reverse","p1__26047#","hasch.platform/utf8","goog.crypt/stringToUtf8ByteArray","hasch.platform/uuid5","sha-hash","vec__26048","cljs.core.nth","hb1","hb2","hb3","hb4","hb5","hb6","hb7","hb8","lb1","lb2","lb3","lb4","lb5","lb6","lb7","lb8","cljs.core.take","cljs.core.drop","cljs.core/uuid","hasch.platform/sha512-message-digest","js/goog.crypt.Sha512","hasch.platform/md5-message-digest","js/goog.crypt.Md5","hasch.platform/encode","magic","a","hasch.platform/str->utf8","x","hasch.benc/PHashCoercion","hasch.benc/-coerce","cljs.core/PROTOCOL_SENTINEL","this","md-create-fn","write-handlers","hasch.benc/magics","hasch.benc/encode-safe","js/Date","cljs.core/UUID","cljs.core/Symbol","cljs.core/Keyword","incognito.base/IncognitoTaggedLiteral","map__26076","cljs.core/--destructure-map","cljs.core.get","tag","value","hasch.benc/coerce-seq","cljs.core/native-satisfies?","cljs.core/IRecord","map__26087","incognito.base/incognito-writer","cljs.core/ISeq","cljs.core/IVector","cljs.core/IMap","hasch.benc/xor-hashes","p1__26051#","cljs.core/seq","cljs.core/ISet","p1__26052#","hasch.benc/digest","js/Uint8Array","js/Array.prototype.slice.call","cljs.core.ex_info","cljs.core/type"],"sourcesContent":["(ns hasch.platform\n (:require [goog.crypt]\n [goog.crypt.Sha512]\n [cljs.reader :as reader]\n [clojure.string]\n [incognito.base :as ib]\n [hasch.benc :refer [magics PHashCoercion -coerce\n digest coerce-seq xor-hashes encode-safe]]))\n\n#_(do\n (ns dev)\n (def repl-env (reset! cemerick.austin.repls/browser-repl-env\n (cemerick.austin/repl-env)))\n (cemerick.austin.repls/cljs-repl repl-env))\n\n(def uuid4 random-uuid)\n\n(defn byte->hex [b]\n (-> b\n (bit-and 0xff)\n (+ 0x100)\n (.toString 16)\n (.substring 1)))\n\n(defn hash->str [bytes]\n (apply str (map byte->hex bytes)))\n\n(def ^:dynamic *use-legacy-utf8-conversion* false)\n\n;; taken from http://jsperf.com/uint8array-vs-array-encode-to-utf8/2\n;; which is taken from //http://user1.matsumoto.ne.jp/~goma/js/utf.js\n;; verified against: \"\u5c0f\u9ce9\u3061\u3083\u3093\u304b\u308f\u3044\u3044\u306a\u3041\"\n;; Note that this variant is broken for higher planes of unicode. For\n;; backwards compatibility, you can enable `*use-legacy-utf8-conversion*`\n;; to keep using the old improper conversion method.\n(defn- legacy-utf8\n \"Encodes a string as UTF-8 in an unsigned js array.\"\n [s]\n (into-array\n (mapcat\n (fn [pos]\n (let [c (.charCodeAt s pos)]\n (cond (<= c 0x7F) [(bit-and c 0xFF)]\n (<= c 0x7FF) [(bit-or 0xC0 (bit-shift-right c 6))\n (bit-or 0x80 (bit-and c 0x3F))]\n (<= c 0xFFFF) [(bit-or 0xE0 (bit-shift-right c 12))\n (bit-or 0x80 (bit-and (bit-shift-right c 6) 0x3F))\n (bit-or 0x80 (bit-and c 0x3F))]\n :default (let [j (loop [j 4]\n (if (pos? (bit-shift-right c (* j 6)))\n (recur (inc j))\n j))\n init (bit-or (bit-and (bit-shift-right 0xFF00 j) 0xFF)\n (bit-shift-right c (* 6 (dec j))))]\n (conj (->> (range (dec j))\n reverse\n (map #(bit-or 0x80\n (bit-and (bit-shift-right c (* 6 %))\n 0x3F))))\n init)))))\n (range (.-length s)))))\n\n#_(utf8 \"\u5c0f\u9ce9\u3061\u3083\u3093\u304b\u308f\u3044\u3044\u306a\u3041\")\n\n(defn utf8\n [s]\n (if *use-legacy-utf8-conversion*\n (legacy-utf8 s)\n (goog.crypt/stringToUtf8ByteArray s)))\n\n(defn uuid5\n \"Generates a uuid5 from a sha-1 hash byte sequence.\nOur hash version is coded in first 2 bits.\"\n [sha-hash]\n (let [[hb1 hb2 hb3 hb4 hb5 hb6 hb7 hb8\n lb1 lb2 lb3 lb4 lb5 lb6 lb7 lb8] sha-hash]\n (-> [(bit-clear (bit-clear hb1 7) 6) hb2 hb3 hb4 hb5 hb6 (bit-or 0x50 (bit-and 0x5f hb7)) hb8\n (bit-clear (bit-set lb1 7) 6) lb2 lb3 lb4 lb5 lb6 lb7 lb8]\n hash->str\n ((fn [s] (str (apply str (take 8 s))\n \"-\" (apply str (take 4 (drop 8 s)))\n \"-\" (apply str (take 4 (drop 12 s)))\n \"-\" (apply str (take 4 (drop 16 s)))\n \"-\" (apply str (drop 20 s)))))\n uuid)))\n\n(defn sha512-message-digest []\n (goog.crypt.Sha512.))\n\n(defn md5-message-digest []\n (goog.crypt.Md5.))\n\n(defn encode [magic a]\n (.concat #js [magic] a))\n\n(defn- str->utf8 [x]\n (-> x str utf8))\n\n(extend-protocol PHashCoercion\n nil\n (-coerce [this md-create-fn write-handlers]\n (encode (:nil magics) #js[]))\n\n boolean\n (-coerce [this md-create-fn write-handlers]\n (encode (:boolean magics) #js [(if this 41 40)]))\n\n string\n (-coerce [this md-create-fn write-handlers]\n (encode (:string magics) (encode-safe (str->utf8 this) md-create-fn)))\n\n number\n (-coerce [this md-create-fn write-handlers]\n ;; utf8 is not needed, can be optimized\n (encode (:number magics) (str->utf8 this)))\n\n js/Date\n (-coerce [this md-create-fn write-handlers]\n ;; utf8 is not needed, can be optimized\n (encode (:inst magics) (str->utf8 (.getTime this))))\n\n cljs.core/UUID\n (-coerce [this md-create-fn write-handlers]\n (encode (:uuid magics) (str->utf8 (.-uuid this))))\n\n cljs.core/Symbol\n (-coerce [this md-create-fn write-handlers]\n (encode (:symbol magics) (encode-safe (str->utf8 this) md-create-fn)))\n\n cljs.core/Keyword\n (-coerce [this md-create-fn write-handlers]\n (encode (:keyword magics) (encode-safe (str->utf8 this) md-create-fn)))\n\n default\n (-coerce [this md-create-fn write-handlers]\n (cond (instance? ib/IncognitoTaggedLiteral this)\n (let [{:keys [tag value]} this]\n (encode (:literal magics) (coerce-seq [tag value] md-create-fn write-handlers)))\n\n (satisfies? IRecord this)\n (let [{:keys [tag value]} (ib/incognito-writer write-handlers this)]\n (encode (:literal magics) (coerce-seq [tag value] md-create-fn write-handlers)))\n\n (satisfies? ISeq this)\n (encode (:seq magics) (coerce-seq this md-create-fn write-handlers))\n\n (satisfies? IVector this)\n (encode (:vector magics) (coerce-seq this md-create-fn write-handlers))\n\n (satisfies? IMap this)\n (encode (:map magics) (xor-hashes (map #(-coerce % md-create-fn write-handlers)\n (seq this))))\n\n (satisfies? ISet this)\n (encode (:set magics) (xor-hashes (map #(digest (-coerce % md-create-fn write-handlers)\n md-create-fn)\n (seq this))))\n\n (instance? js/Uint8Array this)\n (encode (:binary magics) (encode-safe (js/Array.prototype.slice.call this) md-create-fn))\n\n :else\n (throw (ex-info \"Cannot hash unknown type, you can extend PHashCoercion protocol for:\"\n {:type (type this)\n :value this})))))\n\n(comment\n (js/Array.prototype.slice.call (js/Uint8Array. #js [1 2 3]))\n (.log js/console (-coerce (js/Uint8Array. #js [1 2 3]) (sha512-message-digest) sha512-message-digest))\n\n (do\n (def datom-vector (doall (vec (repeat 10000 {:db/id 18239\n :person/name \"Frederic\"\n :person/familyname \"Johanson\"\n :person/street \"Fifty-First Street 53\"\n :person/postal 38237\n :person/telefon \"02343248474\"\n :person/weeight 0.3823}))))\n nil)\n\n (time (-coerce datom-vector sha512-message-digest))\n\n (coerce-seq (sha512-message-digest) sha512-message-digest [:foo {:a \"b\"}])\n\n ;; quick & dirty js advanced compilation benchmark\n (enable-console-print!)\n\n (def datom-vector (doall (vec (repeat 10000 {:db/id 18239\n :person/name \"Frederic\"\n :person/familyname \"Johanson\"\n :person/street \"Fifty-First Street 53\"\n :person/postal 38237\n :person/telefon \"02343248474\"\n :person/weeight 0.3823}))))\n\n (.log js/console \"benchmarking: \" (time (-coerce datom-vector sha512-message-digest))))\n"],"x_google_ignoreList":[0]}
|