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/fress.api.js
ADDED
|
@@ -0,0 +1,607 @@
|
|
|
1
|
+
var $CLJS = require("./cljs_env");
|
|
2
|
+
var $jscomp = $CLJS.$jscomp;
|
|
3
|
+
var COMPILED = false;
|
|
4
|
+
require("./cljs.core.js");
|
|
5
|
+
require("./fress.reader.js");
|
|
6
|
+
require("./fress.writer.js");
|
|
7
|
+
require("./fress.impl.buffer.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("fress.api.js");
|
|
29
|
+
|
|
30
|
+
goog.provide('fress.api');
|
|
31
|
+
fress.api._STAR_write_utf8_tag_STAR_ = false;
|
|
32
|
+
fress.api.fressian_reader_QMARK_ = (function fress$api$fressian_reader_QMARK_(in$){
|
|
33
|
+
return (in$ instanceof fress.reader.FressianReader);
|
|
34
|
+
});
|
|
35
|
+
fress.api.fressian_writer_QMARK_ = (function fress$api$fressian_writer_QMARK_(in$){
|
|
36
|
+
return (in$ instanceof fress.writer.FressianWriter);
|
|
37
|
+
});
|
|
38
|
+
/**
|
|
39
|
+
* Create a fressian reader targeting in.
|
|
40
|
+
* - :handlers is just a map of tag->fn merged with default read handlers
|
|
41
|
+
* - :checksum? {boolean} :: maintain a checksum for each byte read, validated
|
|
42
|
+
* when footer received. throws when fails. If no footer, has no effect
|
|
43
|
+
* - :name->map-ctor map of record names to map->Record constructors at runtime
|
|
44
|
+
* {'string-name' map->some-record}
|
|
45
|
+
* - cljs allows reading from :offset
|
|
46
|
+
*/
|
|
47
|
+
fress.api.create_reader = (function fress$api$create_reader(var_args){
|
|
48
|
+
var args__5732__auto__ = [];
|
|
49
|
+
var len__5726__auto___49710 = arguments.length;
|
|
50
|
+
var i__5727__auto___49711 = (0);
|
|
51
|
+
while(true){
|
|
52
|
+
if((i__5727__auto___49711 < len__5726__auto___49710)){
|
|
53
|
+
args__5732__auto__.push((arguments[i__5727__auto___49711]));
|
|
54
|
+
|
|
55
|
+
var G__49712 = (i__5727__auto___49711 + (1));
|
|
56
|
+
i__5727__auto___49711 = G__49712;
|
|
57
|
+
continue;
|
|
58
|
+
} else {
|
|
59
|
+
}
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
var argseq__5733__auto__ = ((((1) < args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((1)),(0),null)):null);
|
|
64
|
+
return fress.api.create_reader.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5733__auto__);
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
(fress.api.create_reader.cljs$core$IFn$_invoke$arity$variadic = (function (in$,opts){
|
|
68
|
+
return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(fress.reader.reader,in$,opts);
|
|
69
|
+
}));
|
|
70
|
+
|
|
71
|
+
(fress.api.create_reader.cljs$lang$maxFixedArity = (1));
|
|
72
|
+
|
|
73
|
+
/** @this {Function} */
|
|
74
|
+
(fress.api.create_reader.cljs$lang$applyTo = (function (seq49396){
|
|
75
|
+
var G__49401 = cljs.core.first(seq49396);
|
|
76
|
+
var seq49396__$1 = cljs.core.next(seq49396);
|
|
77
|
+
var self__5711__auto__ = this;
|
|
78
|
+
return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49401,seq49396__$1);
|
|
79
|
+
}));
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Read a single object from a fressian reader.
|
|
83
|
+
*/
|
|
84
|
+
fress.api.read_object = (function fress$api$read_object(rdr){
|
|
85
|
+
if(fress.api.fressian_reader_QMARK_(rdr)){
|
|
86
|
+
} else {
|
|
87
|
+
throw (new Error("Assert failed: (fressian-reader? rdr)"));
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
return fress.reader.readObject(rdr);
|
|
91
|
+
});
|
|
92
|
+
/**
|
|
93
|
+
* Returns true if o is a tagged object, which will occur when
|
|
94
|
+
* the reader does not recognized a specific type. Use tag
|
|
95
|
+
* and tagged-value to access the contents of a tagged-object.
|
|
96
|
+
*/
|
|
97
|
+
fress.api.tagged_object_QMARK_ = (function fress$api$tagged_object_QMARK_(o){
|
|
98
|
+
return (o instanceof fress.reader.TaggedObject);
|
|
99
|
+
});
|
|
100
|
+
/**
|
|
101
|
+
* Returns the tag if object is a tagged-object, else nil.
|
|
102
|
+
*/
|
|
103
|
+
fress.api.tag = (function fress$api$tag(o){
|
|
104
|
+
return cljs.core.get.cljs$core$IFn$_invoke$arity$2(o,new cljs.core.Keyword(null,"tag","tag",-1290361223));
|
|
105
|
+
});
|
|
106
|
+
/**
|
|
107
|
+
* Returns the value (an Object array) wrapped by obj, or nil
|
|
108
|
+
* if obj is not a tagged object.
|
|
109
|
+
*/
|
|
110
|
+
fress.api.tagged_value = (function fress$api$tagged_value(o){
|
|
111
|
+
return cljs.core.get.cljs$core$IFn$_invoke$arity$2(o,new cljs.core.Keyword(null,"value","value",305978217));
|
|
112
|
+
});
|
|
113
|
+
/**
|
|
114
|
+
* Create a fressian writer targeting out.
|
|
115
|
+
* - :handlers is just a map of {type {'tag' write-fn}} merged with default
|
|
116
|
+
* write handlers
|
|
117
|
+
* - :record->name (cljs only) map of record ctor to string-name (the string
|
|
118
|
+
* version of the record's fully resolved symbol)
|
|
119
|
+
*/
|
|
120
|
+
fress.api.create_writer = (function fress$api$create_writer(var_args){
|
|
121
|
+
var args__5732__auto__ = [];
|
|
122
|
+
var len__5726__auto___49716 = arguments.length;
|
|
123
|
+
var i__5727__auto___49717 = (0);
|
|
124
|
+
while(true){
|
|
125
|
+
if((i__5727__auto___49717 < len__5726__auto___49716)){
|
|
126
|
+
args__5732__auto__.push((arguments[i__5727__auto___49717]));
|
|
127
|
+
|
|
128
|
+
var G__49718 = (i__5727__auto___49717 + (1));
|
|
129
|
+
i__5727__auto___49717 = G__49718;
|
|
130
|
+
continue;
|
|
131
|
+
} else {
|
|
132
|
+
}
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
var argseq__5733__auto__ = ((((1) < args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((1)),(0),null)):null);
|
|
137
|
+
return fress.api.create_writer.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5733__auto__);
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
(fress.api.create_writer.cljs$core$IFn$_invoke$arity$variadic = (function (out,opts){
|
|
141
|
+
return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(fress.writer.writer,out,opts);
|
|
142
|
+
}));
|
|
143
|
+
|
|
144
|
+
(fress.api.create_writer.cljs$lang$maxFixedArity = (1));
|
|
145
|
+
|
|
146
|
+
/** @this {Function} */
|
|
147
|
+
(fress.api.create_writer.cljs$lang$applyTo = (function (seq49433){
|
|
148
|
+
var G__49434 = cljs.core.first(seq49433);
|
|
149
|
+
var seq49433__$1 = cljs.core.next(seq49433);
|
|
150
|
+
var self__5711__auto__ = this;
|
|
151
|
+
return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49434,seq49433__$1);
|
|
152
|
+
}));
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Write a single object to a fressian writer.
|
|
156
|
+
*/
|
|
157
|
+
fress.api.write_object = (function fress$api$write_object(var_args){
|
|
158
|
+
var G__49445 = arguments.length;
|
|
159
|
+
switch (G__49445) {
|
|
160
|
+
case 2:
|
|
161
|
+
return fress.api.write_object.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
|
|
162
|
+
|
|
163
|
+
break;
|
|
164
|
+
case 3:
|
|
165
|
+
return fress.api.write_object.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
|
|
166
|
+
|
|
167
|
+
break;
|
|
168
|
+
default:
|
|
169
|
+
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
|
|
170
|
+
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
(fress.api.write_object.cljs$core$IFn$_invoke$arity$2 = (function (writer,o){
|
|
175
|
+
if(fress.api.fressian_writer_QMARK_(writer)){
|
|
176
|
+
} else {
|
|
177
|
+
throw (new Error("Assert failed: (fressian-writer? writer)"));
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
return fress.writer.writeObject(writer,o);
|
|
181
|
+
}));
|
|
182
|
+
|
|
183
|
+
(fress.api.write_object.cljs$core$IFn$_invoke$arity$3 = (function (writer,o,cache_QMARK_){
|
|
184
|
+
if(fress.api.fressian_writer_QMARK_(writer)){
|
|
185
|
+
} else {
|
|
186
|
+
throw (new Error("Assert failed: (fressian-writer? writer)"));
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
return fress.writer.writeObject(writer,o,cache_QMARK_);
|
|
190
|
+
}));
|
|
191
|
+
|
|
192
|
+
(fress.api.write_object.cljs$lang$maxFixedArity = 3);
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* write a string as raw utf-8 bytes
|
|
196
|
+
*/
|
|
197
|
+
fress.api.write_utf8 = (function fress$api$write_utf8(var_args){
|
|
198
|
+
var G__49460 = arguments.length;
|
|
199
|
+
switch (G__49460) {
|
|
200
|
+
case 2:
|
|
201
|
+
return fress.api.write_utf8.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
|
|
202
|
+
|
|
203
|
+
break;
|
|
204
|
+
case 3:
|
|
205
|
+
return fress.api.write_utf8.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
|
|
206
|
+
|
|
207
|
+
break;
|
|
208
|
+
default:
|
|
209
|
+
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
|
|
210
|
+
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
(fress.api.write_utf8.cljs$core$IFn$_invoke$arity$2 = (function (writer,s){
|
|
215
|
+
return fress.api.write_utf8.cljs$core$IFn$_invoke$arity$3(writer,s,false);
|
|
216
|
+
}));
|
|
217
|
+
|
|
218
|
+
(fress.api.write_utf8.cljs$core$IFn$_invoke$arity$3 = (function (writer,s,cache_QMARK_){
|
|
219
|
+
if(fress.api.fressian_writer_QMARK_(writer)){
|
|
220
|
+
} else {
|
|
221
|
+
throw (new Error("Assert failed: (fressian-writer? writer)"));
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
if(typeof s === 'string'){
|
|
225
|
+
} else {
|
|
226
|
+
throw (new Error("Assert failed: (string? s)"));
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
var _STAR_write_raw_utf8_STAR__orig_val__49467 = fress.writer._STAR_write_raw_utf8_STAR_;
|
|
230
|
+
var _STAR_write_utf8_tag_STAR__orig_val__49468 = fress.writer._STAR_write_utf8_tag_STAR_;
|
|
231
|
+
var _STAR_write_raw_utf8_STAR__temp_val__49469 = true;
|
|
232
|
+
var _STAR_write_utf8_tag_STAR__temp_val__49470 = fress.api._STAR_write_utf8_tag_STAR_;
|
|
233
|
+
(fress.writer._STAR_write_raw_utf8_STAR_ = _STAR_write_raw_utf8_STAR__temp_val__49469);
|
|
234
|
+
|
|
235
|
+
(fress.writer._STAR_write_utf8_tag_STAR_ = _STAR_write_utf8_tag_STAR__temp_val__49470);
|
|
236
|
+
|
|
237
|
+
try{return fress.api.write_object.cljs$core$IFn$_invoke$arity$3(writer,s,cache_QMARK_);
|
|
238
|
+
}finally {(fress.writer._STAR_write_utf8_tag_STAR_ = _STAR_write_utf8_tag_STAR__orig_val__49468);
|
|
239
|
+
|
|
240
|
+
(fress.writer._STAR_write_raw_utf8_STAR_ = _STAR_write_raw_utf8_STAR__orig_val__49467);
|
|
241
|
+
}}));
|
|
242
|
+
|
|
243
|
+
(fress.api.write_utf8.cljs$lang$maxFixedArity = 3);
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* for use in custom write handlers
|
|
247
|
+
*/
|
|
248
|
+
fress.api.write_tag = (function fress$api$write_tag(writer,tag,field_count){
|
|
249
|
+
if(typeof tag === 'string'){
|
|
250
|
+
} else {
|
|
251
|
+
throw (new Error("Assert failed: (string? tag)"));
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
if(((typeof field_count === 'number') && (((1) <= field_count)))){
|
|
255
|
+
} else {
|
|
256
|
+
throw (new Error("Assert failed: (and (number? field-count) (<= 1 field-count))"));
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
return fress.writer.writeTag(writer,tag,field_count);
|
|
260
|
+
});
|
|
261
|
+
/**
|
|
262
|
+
* use to seal off a writer with a final byte count & checksum for
|
|
263
|
+
* verification by a reader. Induces EOF
|
|
264
|
+
*/
|
|
265
|
+
fress.api.write_footer = (function fress$api$write_footer(writer){
|
|
266
|
+
if(fress.api.fressian_writer_QMARK_(writer)){
|
|
267
|
+
} else {
|
|
268
|
+
throw (new Error("Assert failed: (fressian-writer? writer)"));
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
return fress.writer.writeFooter(writer);
|
|
272
|
+
});
|
|
273
|
+
/**
|
|
274
|
+
* write a signal to the reader to forget established cache codes
|
|
275
|
+
*/
|
|
276
|
+
fress.api.reset_caches = (function fress$api$reset_caches(writer){
|
|
277
|
+
if(fress.api.fressian_writer_QMARK_(writer)){
|
|
278
|
+
} else {
|
|
279
|
+
throw (new Error("Assert failed: (fressian-writer? writer)"));
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
return fress.writer.resetCaches(writer);
|
|
283
|
+
});
|
|
284
|
+
/**
|
|
285
|
+
* Begin writing a fressianed list. To end the list, call end-list.
|
|
286
|
+
* Used to write sequential data whose size is not known in advance.
|
|
287
|
+
*/
|
|
288
|
+
fress.api.begin_closed_list = (function fress$api$begin_closed_list(writer){
|
|
289
|
+
if(fress.api.fressian_writer_QMARK_(writer)){
|
|
290
|
+
} else {
|
|
291
|
+
throw (new Error("Assert failed: (fressian-writer? writer)"));
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
return fress.writer.beginClosedList(writer);
|
|
295
|
+
});
|
|
296
|
+
/**
|
|
297
|
+
* Ends a list begun with begin-closed-list.
|
|
298
|
+
*/
|
|
299
|
+
fress.api.end_list = (function fress$api$end_list(writer){
|
|
300
|
+
if(fress.api.fressian_writer_QMARK_(writer)){
|
|
301
|
+
} else {
|
|
302
|
+
throw (new Error("Assert failed: (fressian-writer? writer)"));
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
return fress.writer.endList(writer);
|
|
306
|
+
});
|
|
307
|
+
/**
|
|
308
|
+
* Writes fressian code to begin an open list. An
|
|
309
|
+
* open list can be terminated either by a call to end-list,
|
|
310
|
+
* or by simply closing the stream. Used to write sequential
|
|
311
|
+
* data whose size is not known in advance, in contexts where
|
|
312
|
+
* stream failure can safely be interpreted as end of list.
|
|
313
|
+
*/
|
|
314
|
+
fress.api.begin_open_list = (function fress$api$begin_open_list(writer){
|
|
315
|
+
if(fress.api.fressian_writer_QMARK_(writer)){
|
|
316
|
+
} else {
|
|
317
|
+
throw (new Error("Assert failed: (fressian-writer? writer)"));
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
return fress.writer.beginOpenList(writer);
|
|
321
|
+
});
|
|
322
|
+
/**
|
|
323
|
+
* Returns a record writer that caches values for keys
|
|
324
|
+
* matching cache-pred, which is typically specified
|
|
325
|
+
* as a set, e.g. (field-caching-writer #{:color})
|
|
326
|
+
*/
|
|
327
|
+
fress.api.field_caching_writer = (function fress$api$field_caching_writer(cache_pred){
|
|
328
|
+
return (function (w,rec,record__GT_name){
|
|
329
|
+
fress.writer.writeTag(w,"record",(2));
|
|
330
|
+
|
|
331
|
+
fress.writer.writeObject(w,fress.writer.class_sym(rec,record__GT_name),true);
|
|
332
|
+
|
|
333
|
+
fress.writer.writeTag(w,"map",(1));
|
|
334
|
+
|
|
335
|
+
fress.writer.beginClosedList(w);
|
|
336
|
+
|
|
337
|
+
var seq__49523_49724 = cljs.core.seq(rec);
|
|
338
|
+
var chunk__49524_49725 = null;
|
|
339
|
+
var count__49525_49726 = (0);
|
|
340
|
+
var i__49526_49727 = (0);
|
|
341
|
+
while(true){
|
|
342
|
+
if((i__49526_49727 < count__49525_49726)){
|
|
343
|
+
var vec__49547_49728 = chunk__49524_49725.cljs$core$IIndexed$_nth$arity$2(null, i__49526_49727);
|
|
344
|
+
var field_49729 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__49547_49728,(0),null);
|
|
345
|
+
var value_49730 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__49547_49728,(1),null);
|
|
346
|
+
fress.writer.writeObject(w,field_49729,true);
|
|
347
|
+
|
|
348
|
+
fress.writer.writeObject(w,value_49730,cljs.core.boolean$((cache_pred.cljs$core$IFn$_invoke$arity$1 ? cache_pred.cljs$core$IFn$_invoke$arity$1(field_49729) : cache_pred.call(null, field_49729))));
|
|
349
|
+
|
|
350
|
+
|
|
351
|
+
var G__49731 = seq__49523_49724;
|
|
352
|
+
var G__49732 = chunk__49524_49725;
|
|
353
|
+
var G__49733 = count__49525_49726;
|
|
354
|
+
var G__49734 = (i__49526_49727 + (1));
|
|
355
|
+
seq__49523_49724 = G__49731;
|
|
356
|
+
chunk__49524_49725 = G__49732;
|
|
357
|
+
count__49525_49726 = G__49733;
|
|
358
|
+
i__49526_49727 = G__49734;
|
|
359
|
+
continue;
|
|
360
|
+
} else {
|
|
361
|
+
var temp__5804__auto___49735 = cljs.core.seq(seq__49523_49724);
|
|
362
|
+
if(temp__5804__auto___49735){
|
|
363
|
+
var seq__49523_49736__$1 = temp__5804__auto___49735;
|
|
364
|
+
if(cljs.core.chunked_seq_QMARK_(seq__49523_49736__$1)){
|
|
365
|
+
var c__5525__auto___49739 = cljs.core.chunk_first(seq__49523_49736__$1);
|
|
366
|
+
var G__49740 = cljs.core.chunk_rest(seq__49523_49736__$1);
|
|
367
|
+
var G__49741 = c__5525__auto___49739;
|
|
368
|
+
var G__49742 = cljs.core.count(c__5525__auto___49739);
|
|
369
|
+
var G__49743 = (0);
|
|
370
|
+
seq__49523_49724 = G__49740;
|
|
371
|
+
chunk__49524_49725 = G__49741;
|
|
372
|
+
count__49525_49726 = G__49742;
|
|
373
|
+
i__49526_49727 = G__49743;
|
|
374
|
+
continue;
|
|
375
|
+
} else {
|
|
376
|
+
var vec__49553_49744 = cljs.core.first(seq__49523_49736__$1);
|
|
377
|
+
var field_49745 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__49553_49744,(0),null);
|
|
378
|
+
var value_49746 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__49553_49744,(1),null);
|
|
379
|
+
fress.writer.writeObject(w,field_49745,true);
|
|
380
|
+
|
|
381
|
+
fress.writer.writeObject(w,value_49746,cljs.core.boolean$((cache_pred.cljs$core$IFn$_invoke$arity$1 ? cache_pred.cljs$core$IFn$_invoke$arity$1(field_49745) : cache_pred.call(null, field_49745))));
|
|
382
|
+
|
|
383
|
+
|
|
384
|
+
var G__49749 = cljs.core.next(seq__49523_49736__$1);
|
|
385
|
+
var G__49750 = null;
|
|
386
|
+
var G__49751 = (0);
|
|
387
|
+
var G__49752 = (0);
|
|
388
|
+
seq__49523_49724 = G__49749;
|
|
389
|
+
chunk__49524_49725 = G__49750;
|
|
390
|
+
count__49525_49726 = G__49751;
|
|
391
|
+
i__49526_49727 = G__49752;
|
|
392
|
+
continue;
|
|
393
|
+
}
|
|
394
|
+
} else {
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
break;
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
return fress.writer.endList(w);
|
|
401
|
+
});
|
|
402
|
+
});
|
|
403
|
+
fress.api.byte_stream = (function fress$api$byte_stream(){
|
|
404
|
+
return fress.impl.buffer.byte_stream();
|
|
405
|
+
});
|
|
406
|
+
fress.api.flush_to = (function fress$api$flush_to(var_args){
|
|
407
|
+
var G__49572 = arguments.length;
|
|
408
|
+
switch (G__49572) {
|
|
409
|
+
case 2:
|
|
410
|
+
return fress.api.flush_to.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
|
|
411
|
+
|
|
412
|
+
break;
|
|
413
|
+
case 3:
|
|
414
|
+
return fress.api.flush_to.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
|
|
415
|
+
|
|
416
|
+
break;
|
|
417
|
+
default:
|
|
418
|
+
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
|
|
419
|
+
|
|
420
|
+
}
|
|
421
|
+
});
|
|
422
|
+
|
|
423
|
+
(fress.api.flush_to.cljs$core$IFn$_invoke$arity$2 = (function (stream,out){
|
|
424
|
+
return fress.api.flush_to.cljs$core$IFn$_invoke$arity$3(stream,out,(0));
|
|
425
|
+
}));
|
|
426
|
+
|
|
427
|
+
(fress.api.flush_to.cljs$core$IFn$_invoke$arity$3 = (function (stream,out,offset){
|
|
428
|
+
if((stream instanceof fress.impl.buffer.BytesOutputStream)){
|
|
429
|
+
} else {
|
|
430
|
+
throw (new Error("Assert failed: (instance? buf/BytesOutputStream stream)"));
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
if((!((out.buffer == null)))){
|
|
434
|
+
} else {
|
|
435
|
+
throw (new Error("Assert failed: (some? (.-buffer out))"));
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
return fress.impl.buffer.flushTo(stream,out,offset);
|
|
439
|
+
}));
|
|
440
|
+
|
|
441
|
+
(fress.api.flush_to.cljs$lang$maxFixedArity = 3);
|
|
442
|
+
|
|
443
|
+
/**
|
|
444
|
+
* Convenience method for reading a single fressian object.
|
|
445
|
+
* Takes same options as create-reader
|
|
446
|
+
*/
|
|
447
|
+
fress.api.read = (function fress$api$read(var_args){
|
|
448
|
+
var args__5732__auto__ = [];
|
|
449
|
+
var len__5726__auto___49757 = arguments.length;
|
|
450
|
+
var i__5727__auto___49758 = (0);
|
|
451
|
+
while(true){
|
|
452
|
+
if((i__5727__auto___49758 < len__5726__auto___49757)){
|
|
453
|
+
args__5732__auto__.push((arguments[i__5727__auto___49758]));
|
|
454
|
+
|
|
455
|
+
var G__49760 = (i__5727__auto___49758 + (1));
|
|
456
|
+
i__5727__auto___49758 = G__49760;
|
|
457
|
+
continue;
|
|
458
|
+
} else {
|
|
459
|
+
}
|
|
460
|
+
break;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
var argseq__5733__auto__ = ((((1) < args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((1)),(0),null)):null);
|
|
464
|
+
return fress.api.read.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5733__auto__);
|
|
465
|
+
});
|
|
466
|
+
|
|
467
|
+
(fress.api.read.cljs$core$IFn$_invoke$arity$variadic = (function (readable,options){
|
|
468
|
+
return fress.reader.readObject(cljs.core.apply.cljs$core$IFn$_invoke$arity$3(fress.api.create_reader,readable,options));
|
|
469
|
+
}));
|
|
470
|
+
|
|
471
|
+
(fress.api.read.cljs$lang$maxFixedArity = (1));
|
|
472
|
+
|
|
473
|
+
/** @this {Function} */
|
|
474
|
+
(fress.api.read.cljs$lang$applyTo = (function (seq49613){
|
|
475
|
+
var G__49614 = cljs.core.first(seq49613);
|
|
476
|
+
var seq49613__$1 = cljs.core.next(seq49613);
|
|
477
|
+
var self__5711__auto__ = this;
|
|
478
|
+
return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49614,seq49613__$1);
|
|
479
|
+
}));
|
|
480
|
+
|
|
481
|
+
/**
|
|
482
|
+
* Read a fressian reader fully (until eof), returning a (possibly empty)
|
|
483
|
+
* vector of results.
|
|
484
|
+
*/
|
|
485
|
+
fress.api.read_batch = (function fress$api$read_batch(fin){
|
|
486
|
+
if(fress.api.fressian_reader_QMARK_(fin)){
|
|
487
|
+
} else {
|
|
488
|
+
throw (new Error("Assert failed: (fressian-reader? fin)"));
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
var sentinel = ({});
|
|
492
|
+
var objects = cljs.core.transient$(cljs.core.PersistentVector.EMPTY);
|
|
493
|
+
while(true){
|
|
494
|
+
var obj = (function (){try{return fress.reader.readObject(fin);
|
|
495
|
+
}catch (e49664){if((e49664 instanceof Error)){
|
|
496
|
+
var e = e49664;
|
|
497
|
+
return sentinel;
|
|
498
|
+
} else {
|
|
499
|
+
throw e49664;
|
|
500
|
+
|
|
501
|
+
}
|
|
502
|
+
}})();
|
|
503
|
+
if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(obj,sentinel)){
|
|
504
|
+
return cljs.core.persistent_BANG_(objects);
|
|
505
|
+
} else {
|
|
506
|
+
var G__49762 = cljs.core.conj_BANG_.cljs$core$IFn$_invoke$arity$2(objects,obj);
|
|
507
|
+
objects = G__49762;
|
|
508
|
+
continue;
|
|
509
|
+
}
|
|
510
|
+
break;
|
|
511
|
+
}
|
|
512
|
+
});
|
|
513
|
+
/**
|
|
514
|
+
* like read-batch but accepts readables in addition to FressianReaders
|
|
515
|
+
*/
|
|
516
|
+
fress.api.read_all = (function fress$api$read_all(var_args){
|
|
517
|
+
var args__5732__auto__ = [];
|
|
518
|
+
var len__5726__auto___49763 = arguments.length;
|
|
519
|
+
var i__5727__auto___49764 = (0);
|
|
520
|
+
while(true){
|
|
521
|
+
if((i__5727__auto___49764 < len__5726__auto___49763)){
|
|
522
|
+
args__5732__auto__.push((arguments[i__5727__auto___49764]));
|
|
523
|
+
|
|
524
|
+
var G__49765 = (i__5727__auto___49764 + (1));
|
|
525
|
+
i__5727__auto___49764 = G__49765;
|
|
526
|
+
continue;
|
|
527
|
+
} else {
|
|
528
|
+
}
|
|
529
|
+
break;
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
var argseq__5733__auto__ = ((((1) < args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((1)),(0),null)):null);
|
|
533
|
+
return fress.api.read_all.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5733__auto__);
|
|
534
|
+
});
|
|
535
|
+
|
|
536
|
+
(fress.api.read_all.cljs$core$IFn$_invoke$arity$variadic = (function (in$,options){
|
|
537
|
+
if(fress.api.fressian_reader_QMARK_(in$)){
|
|
538
|
+
return fress.api.read_batch(in$);
|
|
539
|
+
} else {
|
|
540
|
+
return fress.api.read_batch(cljs.core.apply.cljs$core$IFn$_invoke$arity$3(fress.api.create_reader,in$,options));
|
|
541
|
+
}
|
|
542
|
+
}));
|
|
543
|
+
|
|
544
|
+
(fress.api.read_all.cljs$lang$maxFixedArity = (1));
|
|
545
|
+
|
|
546
|
+
/** @this {Function} */
|
|
547
|
+
(fress.api.read_all.cljs$lang$applyTo = (function (seq49676){
|
|
548
|
+
var G__49677 = cljs.core.first(seq49676);
|
|
549
|
+
var seq49676__$1 = cljs.core.next(seq49676);
|
|
550
|
+
var self__5711__auto__ = this;
|
|
551
|
+
return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49677,seq49676__$1);
|
|
552
|
+
}));
|
|
553
|
+
|
|
554
|
+
/**
|
|
555
|
+
* Convenience method for writing a single object. Returns a
|
|
556
|
+
* byte buffer. Options are the same as for create-reader,
|
|
557
|
+
* with one additional option :footer? {bool}, if specified will
|
|
558
|
+
* write a fressian footer after writing the object.
|
|
559
|
+
*/
|
|
560
|
+
fress.api.write = (function fress$api$write(var_args){
|
|
561
|
+
var args__5732__auto__ = [];
|
|
562
|
+
var len__5726__auto___49767 = arguments.length;
|
|
563
|
+
var i__5727__auto___49768 = (0);
|
|
564
|
+
while(true){
|
|
565
|
+
if((i__5727__auto___49768 < len__5726__auto___49767)){
|
|
566
|
+
args__5732__auto__.push((arguments[i__5727__auto___49768]));
|
|
567
|
+
|
|
568
|
+
var G__49769 = (i__5727__auto___49768 + (1));
|
|
569
|
+
i__5727__auto___49768 = G__49769;
|
|
570
|
+
continue;
|
|
571
|
+
} else {
|
|
572
|
+
}
|
|
573
|
+
break;
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
var argseq__5733__auto__ = ((((1) < args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((1)),(0),null)):null);
|
|
577
|
+
return fress.api.write.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5733__auto__);
|
|
578
|
+
});
|
|
579
|
+
|
|
580
|
+
(fress.api.write.cljs$core$IFn$_invoke$arity$variadic = (function (obj,options){
|
|
581
|
+
var map__49697 = (cljs.core.truth_(options)?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,options):null);
|
|
582
|
+
var map__49697__$1 = cljs.core.__destructure_map(map__49697);
|
|
583
|
+
var footer_QMARK_ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__49697__$1,new cljs.core.Keyword(null,"footer?","footer?",-986176238));
|
|
584
|
+
var bos = fress.impl.buffer.byte_stream();
|
|
585
|
+
var writer = cljs.core.apply.cljs$core$IFn$_invoke$arity$3(fress.api.create_writer,bos,options);
|
|
586
|
+
fress.writer.writeObject(writer,obj);
|
|
587
|
+
|
|
588
|
+
if(cljs.core.truth_(footer_QMARK_)){
|
|
589
|
+
fress.writer.writeFooter(writer);
|
|
590
|
+
} else {
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
return cljs.core.deref(bos);
|
|
594
|
+
}));
|
|
595
|
+
|
|
596
|
+
(fress.api.write.cljs$lang$maxFixedArity = (1));
|
|
597
|
+
|
|
598
|
+
/** @this {Function} */
|
|
599
|
+
(fress.api.write.cljs$lang$applyTo = (function (seq49686){
|
|
600
|
+
var G__49687 = cljs.core.first(seq49686);
|
|
601
|
+
var seq49686__$1 = cljs.core.next(seq49686);
|
|
602
|
+
var self__5711__auto__ = this;
|
|
603
|
+
return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__49687,seq49686__$1);
|
|
604
|
+
}));
|
|
605
|
+
|
|
606
|
+
|
|
607
|
+
//# sourceMappingURL=fress.api.js.map
|
package/fress.api.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["fress/api.cljc"],"mappings":"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","names":["fress.api/*write-utf8-tag*","fress.api/fressian-reader?","in","fress.reader/FressianReader","fress.api/fressian-writer?","fress.writer/FressianWriter","var_args","args__5732__auto__","len__5726__auto__","i__5727__auto__","argseq__5733__auto__","cljs.core/IndexedSeq","fress.api/create-reader","seq49396","G__49401","cljs.core/first","cljs.core/next","self__5711__auto__","opts","cljs.core.apply","fress.reader/reader","fress.api/read-object","rdr","js/Error","fress.reader/readObject","fress.api/tagged-object?","o","fress.reader/TaggedObject","fress.api/tag","cljs.core.get","fress.api/tagged-value","fress.api/create-writer","seq49433","G__49434","out","fress.writer/writer","G__49445","fress.api/write-object","writer","fress.writer/writeObject","cache?","G__49460","fress.api/write-utf8","s","fress.api.write_utf8","*write-raw-utf8*-orig-val__49467","*write-utf8-tag*-orig-val__49468","*write-raw-utf8*-temp-val__49469","*write-utf8-tag*-temp-val__49470","fress.writer/*write-raw-utf8*","fress.writer/*write-utf8-tag*","fress.api.write_object","fress.api/write-tag","tag","field-count","fress.writer/writeTag","fress.api/write-footer","fress.writer/writeFooter","fress.api/reset-caches","fress.writer/resetCaches","fress.api/begin-closed-list","fress.writer/beginClosedList","fress.api/end-list","fress.writer/endList","fress.api/begin-open-list","fress.writer/beginOpenList","fress.api/field-caching-writer","cache-pred","w","rec","record->name","fress.writer/class-sym","seq__49523","cljs.core/seq","chunk__49524","count__49525","i__49526","vec__49547","cljs.core.nth","temp__5804__auto__","cljs.core/chunked-seq?","c__5525__auto__","cljs.core/chunk-first","cljs.core/chunk-rest","cljs.core/count","vec__49553","field","value","cljs.core/boolean","fress.api/byte-stream","fress.impl.buffer/byte-stream","G__49572","fress.api/flush-to","stream","fress.api.flush_to","offset","fress.impl.buffer/BytesOutputStream","fress.impl.buffer/flushTo","fress.api/read","seq49613","G__49614","readable","options","fress.api/read-batch","fin","sentinel","objects","cljs.core/transient","obj","e49664","e","cljs.core._EQ_","cljs.core/persistent!","cljs.core.conj_BANG_","fress.api/read-all","seq49676","G__49677","fress.api/write","seq49686","G__49687","map__49697","cljs.core/--destructure-map","cljs.core/deref","footer?","cljs.core/hash-map","bos"],"sourcesContent":["(ns fress.api\n #?(:clj (:refer-clojure :exclude (read)))\n #?(:cljs\n (:require [fress.reader :as r]\n [fress.writer :as w]\n [fress.impl.buffer :as buf])\n :clj\n (:require [clojure.data.fressian :as fressian]\n [fress.impl.bytestream]))\n #?(:clj (:import [org.fressian.handlers WriteHandler ReadHandler]\n [org.fressian FressianWriter StreamingWriter FressianReader TaggedObject Writer Reader]\n [org.fressian.impl RawOutput RawInput BytesOutputStream]\n java.nio.ByteBuffer\n [fress.impl bytestream]\n [java.io InputStream OutputStream EOFException])))\n\n#?(:clj (set! *warn-on-reflection* true))\n\n#?(:clj\n (defn private-field [^Object obj name-string]\n (let [m (. (.getClass obj)(getDeclaredField name-string))]\n (. m (setAccessible true))\n (. m (get obj)))))\n\n#?(:clj\n (defn- w->raw [wrt] (private-field wrt \"rawOut\")))\n\n#?(:clj\n (defn- rdr->raw [rdr] (private-field rdr \"is\")))\n\n#?(:clj\n (deftype utf8 [^String s]))\n\n#?(:clj\n (defn utf8? [o] (instance? utf8 o)))\n\n(def ^:dynamic *write-utf8-tag* false)\n\n#?(:clj\n (defn fn->write-handler [f]\n (if (instance? org.fressian.handlers.WriteHandler f)\n f\n (reify WriteHandler\n (write [_ writer obj]\n (try\n (f ^Writer writer obj)\n (catch clojure.lang.ArityException e\n (throw (Exception. \"fressian write-handlers need to be fn<writer,obj>\")))))))))\n\n#?(:clj\n (defn fn->read-handler [f]\n (if (instance? org.fressian.handlers.ReadHandler f)\n f\n (reify ReadHandler\n (read [_ rdr tag field-count]\n (try\n (f ^Reader rdr ^String tag field-count)\n (catch clojure.lang.ArityException e\n (throw (Exception. \"fressian read-handlers need to be fn<reader,tag,field-count>\")))))))))\n\n#?(:clj\n (defn utf8-writer [w u]\n (let [s (.-s ^utf8 u)\n bytes (.getBytes ^String s \"UTF-8\")\n raw-out (w->raw w)\n length (count bytes)]\n (if *write-utf8-tag* ;<= client can read either\n (.writeTag ^FressianWriter w \"utf8\" 2)\n (.writeCode ^FressianWriter w (int 191)))\n (.writeCount ^FressianWriter w length)\n ;FIXME use writeBytes, code makes tagged-object compatible\n (.writeRawBytes ^RawOutput raw-out bytes 0 length))))\n\n\n#?(:clj\n (defn utf8-reader\n \"cant modify fressian.impl.Codes so using code from client will fail\n JVM readers must use \\\"utf8\\\" tag.\"\n [^Reader rdr tag _]\n (let [length (int (.readInt rdr))\n offset (int 0)\n bytes (byte-array length)\n raw-in (rdr->raw rdr)]\n (.readFully ^RawInput raw-in bytes offset length)\n (String. bytes \"UTF-8\"))))\n\n#?(:clj\n (defn read-handlers\n \"merge in user handlers with default-handlers, wrap for fressian lookup\"\n ([] (read-handlers nil))\n ([user-handlers]\n (when user-handlers\n (assert\n (and (map? user-handlers)\n (every? string? (keys user-handlers))\n (every? fn? (vals user-handlers)))))\n (let [user-handlers (merge {\"utf8\" utf8-reader} user-handlers)\n handlers (into fressian/clojure-read-handlers\n (map\n (fn [[tag f]]\n [tag (fn->read-handler f)]))\n user-handlers)]\n (fressian/associative-lookup handlers)))))\n\n#?(:clj\n (defn write-handlers\n \"merge in user handlers with default-handlers, wrap for fressian lookup\"\n ([](write-handlers nil))\n ([user-handlers]\n (let [user-handlers (merge {utf8 {\"utf8\" utf8-writer}} user-handlers)\n handlers (into fressian/clojure-write-handlers\n (map\n (fn [[T m]]\n (let [[k v] (first (seq m))]\n [T {k (fn->write-handler v)}])))\n user-handlers)]\n (-> handlers\n fressian/associative-lookup\n fressian/inheritance-lookup)))))\n\n#?(:clj\n (extend-protocol fressian/FressianReadable\n BytesOutputStream\n (to-input-stream [stream]\n (fressian/to-input-stream (ByteBuffer/wrap (.internalBuffer stream) 0 (.length stream))))\n bytestream\n (to-input-stream [stream]\n (fressian/to-input-stream (deref stream)))))\n\n(defn- ^boolean fressian-reader? [in]\n #?(:clj (instance? org.fressian.FressianReader in)\n :cljs (instance? r/FressianReader in)))\n\n(defn- ^boolean fressian-writer? [in]\n #?(:clj (instance? org.fressian.FressianWriter in)\n :cljs (instance? w/FressianWriter in)))\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n\n(defn create-reader\n \"Create a fressian reader targeting in.\n - :handlers is just a map of tag->fn merged with default read handlers\n - :checksum? {boolean} :: maintain a checksum for each byte read, validated\n when footer received. throws when fails. If no footer, has no effect\n - :name->map-ctor map of record names to map->Record constructors at runtime\n {'string-name' map->some-record}\n - cljs allows reading from :offset\"\n [^InputStream in & opts]\n #?(:clj\n (let [in (fressian/to-input-stream in)\n {:keys [handlers checksum?]} (apply hash-map opts)\n handlers (read-handlers handlers)]\n (fressian/create-reader in :handlers handlers :checksum? checksum?))\n :cljs\n (apply r/reader in opts)))\n\n(defn read-object\n \"Read a single object from a fressian reader.\"\n [rdr]\n (assert (fressian-reader? rdr))\n #?(:clj (fressian/read-object rdr)\n :cljs (r/readObject rdr)))\n\n(defn tagged-object?\n \"Returns true if o is a tagged object, which will occur when\n the reader does not recognized a specific type. Use tag\n and tagged-value to access the contents of a tagged-object.\"\n [o]\n #?(:clj (fressian/tagged-object? o)\n :cljs (instance? r/TaggedObject o)))\n\n(defn tag\n \"Returns the tag if object is a tagged-object, else nil.\"\n [o]\n #?(:clj (fressian/tag o)\n :cljs (get o :tag)))\n\n(defn tagged-value\n \"Returns the value (an Object array) wrapped by obj, or nil\n if obj is not a tagged object.\"\n [o]\n #?(:clj (fressian/tagged-value o)\n :cljs (get o :value)))\n\n(defn create-writer\n \"Create a fressian writer targeting out.\n - :handlers is just a map of {type {'tag' write-fn}} merged with default\n write handlers\n - :record->name (cljs only) map of record ctor to string-name (the string\n version of the record's fully resolved symbol)\"\n [^OutputStream out & opts]\n #?(:clj (let [{:keys [handlers] :as opts} (apply hash-map opts)\n handlers (write-handlers handlers)]\n (fressian/create-writer out :handlers handlers))\n :cljs (apply w/writer out opts)))\n\n(defn write-object\n \"Write a single object to a fressian writer.\"\n ([writer o]\n (assert (fressian-writer? writer))\n #?(:clj (fressian/write-object writer o)\n :cljs (w/writeObject writer o)))\n ([writer o cache?]\n (assert (fressian-writer? writer))\n #?(:clj (.writeObject ^FressianWriter writer o (boolean cache?))\n :cljs (w/writeObject writer o cache?))))\n\n(defn write-utf8\n \"write a string as raw utf-8 bytes\"\n ([writer s](write-utf8 writer s false))\n ([writer s cache?]\n (assert (fressian-writer? writer))\n (assert (string? s))\n #?(:clj (write-object writer (utf8. s) cache?)\n :cljs\n (binding [w/*write-raw-utf8* true\n w/*write-utf8-tag* *write-utf8-tag*]\n (write-object writer s cache?)))))\n\n(defn write-tag\n \"for use in custom write handlers\"\n [writer tag field-count]\n (assert (string? tag))\n (assert (and (number? field-count) (<= 1 field-count)))\n #?(:clj (.writeTag ^FressianWriter writer tag field-count)\n :cljs (w/writeTag writer tag field-count)))\n\n(defn write-footer\n \"use to seal off a writer with a final byte count & checksum for\n verification by a reader. Induces EOF\"\n [writer]\n (assert (fressian-writer? writer))\n #?(:clj (fressian/write-footer writer)\n :cljs (w/writeFooter writer)))\n\n(defn reset-caches\n \"write a signal to the reader to forget established cache codes\"\n [writer]\n (assert (fressian-writer? writer))\n #?(:clj (.resetCaches ^FressianWriter writer)\n :cljs (w/resetCaches writer)))\n\n(defn begin-closed-list\n \"Begin writing a fressianed list. To end the list, call end-list.\n Used to write sequential data whose size is not known in advance.\"\n [writer]\n (assert (fressian-writer? writer))\n #?(:clj (fressian/begin-closed-list writer)\n :cljs (w/beginClosedList writer)))\n\n(defn end-list\n \"Ends a list begun with begin-closed-list.\"\n [writer]\n (assert (fressian-writer? writer))\n #?(:clj (fressian/end-list writer)\n :cljs (w/endList writer)))\n\n(defn begin-open-list\n \"Writes fressian code to begin an open list. An\n open list can be terminated either by a call to end-list,\n or by simply closing the stream. Used to write sequential\n data whose size is not known in advance, in contexts where\n stream failure can safely be interpreted as end of list.\"\n [writer]\n (assert (fressian-writer? writer))\n #?(:clj (fressian/begin-open-list writer)\n :cljs (w/beginOpenList writer)))\n\n(defn field-caching-writer\n \"Returns a record writer that caches values for keys\n matching cache-pred, which is typically specified\n as a set, e.g. (field-caching-writer #{:color})\"\n [cache-pred]\n #?(:clj (fressian/field-caching-writer cache-pred)\n :cljs\n (fn [w rec record->name]\n (w/writeTag w \"record\" 2)\n (w/writeObject w (w/class-sym rec record->name) true)\n (w/writeTag w \"map\" 1)\n (w/beginClosedList w)\n (doseq [[field value] rec]\n (w/writeObject w field true)\n (w/writeObject w value (boolean (cache-pred field))))\n (w/endList w))))\n\n(defn ^byte-stream byte-stream []\n #?(:clj (fress.impl.bytestream.)\n :cljs (buf/byte-stream)))\n\n#?(:cljs\n (defn flush-to\n ([stream out](flush-to stream out 0))\n ([stream out offset]\n (assert (instance? buf/BytesOutputStream stream))\n (assert (some? (.-buffer out)))\n (buf/flushTo stream out offset))))\n\n#_(:cljs\n (defn wrap ;TODO\n ([stream out])\n ([stream out offset])))\n\n(defn read\n \"Convenience method for reading a single fressian object.\n Takes same options as create-reader\"\n [readable & options]\n #?(:clj\n (.readObject ^Reader (apply create-reader (fressian/to-input-stream readable) options))\n :cljs\n (r/readObject (apply create-reader readable options))))\n\n(defn read-batch\n \"Read a fressian reader fully (until eof), returning a (possibly empty)\n vector of results.\"\n [fin]\n (assert (fressian-reader? fin))\n (let [sentinel #?(:clj (Object.) :cljs #js{})]\n (loop [objects (transient [])]\n (let [obj #?(:clj (try (.readObject ^Reader fin) (catch EOFException e sentinel))\n :cljs (try (r/readObject fin) (catch js/Error e sentinel)))]\n (if (= obj sentinel)\n (persistent! objects)\n (recur (conj! objects obj)))))))\n\n(defn read-all\n \"like read-batch but accepts readables in addition to FressianReaders\"\n [in & options]\n (if (fressian-reader? in)\n (read-batch in)\n (read-batch (apply create-reader in options))))\n\n(defn write\n \"Convenience method for writing a single object. Returns a\n byte buffer. Options are the same as for create-reader,\n with one additional option :footer? {bool}, if specified will\n write a fressian footer after writing the object.\"\n [obj & options]\n #?(:clj\n (let [{:keys [footer?]} (apply hash-map options)\n bos (byte-stream)\n writer ^Writer (apply create-writer bos options)]\n (.writeObject writer obj)\n (when footer?\n (.writeFooter writer))\n @bos)\n :cljs\n (let [{:keys [footer?]} (when options (apply hash-map options))\n bos (buf/byte-stream)\n writer (apply create-writer bos options)]\n (w/writeObject writer obj)\n (when footer?\n (w/writeFooter writer))\n @bos)))\n\n\n\n"],"x_google_ignoreList":[0]}
|