UNPKG

macrovich

Version:

A set of three macros to ease writing `*.cljc` supporting Clojure, Clojurescript and self-hosted Clojurescript.

1,270 lines (1,179 loc) 224 kB
// Compiled by ClojureScript 1.9.293 {:target :nodejs} goog.provide('cljs.spec'); goog.require('cljs.core'); goog.require('cljs.core'); goog.require('goog.object'); goog.require('clojure.walk'); goog.require('cljs.spec.impl.gen'); goog.require('clojure.string'); cljs.spec.MAX_INT = (9007199254740991); /** * A soft limit on how many times a branching spec (or/alt/* /opt-keys/multi-spec) * can be recursed through during generation. After this a * non-recursive branch will be chosen. */ cljs.spec._STAR_recursion_limit_STAR_ = (4); /** * The number of times an anonymous fn specified by fspec will be (generatively) tested during conform */ cljs.spec._STAR_fspec_iterations_STAR_ = (21); /** * The number of items validated in a collection spec'ed with 'every' */ cljs.spec._STAR_coll_check_limit_STAR_ = (101); /** * The number of errors reported by explain in a collection spec'ed with 'every' */ cljs.spec._STAR_coll_error_limit_STAR_ = (20); /** * @interface */ cljs.spec.Spec = function(){}; cljs.spec.conform_STAR_ = (function cljs$spec$conform_STAR_(spec,x){ if((!((spec == null))) && (!((spec.cljs$spec$Spec$conform_STAR_$arity$2 == null)))){ return spec.cljs$spec$Spec$conform_STAR_$arity$2(spec,x); } else { var x__7554__auto__ = (((spec == null))?null:spec); var m__7555__auto__ = (cljs.spec.conform_STAR_[goog.typeOf(x__7554__auto__)]); if(!((m__7555__auto__ == null))){ return m__7555__auto__.call(null,spec,x); } else { var m__7555__auto____$1 = (cljs.spec.conform_STAR_["_"]); if(!((m__7555__auto____$1 == null))){ return m__7555__auto____$1.call(null,spec,x); } else { throw cljs.core.missing_protocol.call(null,"Spec.conform*",spec); } } } }); cljs.spec.unform_STAR_ = (function cljs$spec$unform_STAR_(spec,y){ if((!((spec == null))) && (!((spec.cljs$spec$Spec$unform_STAR_$arity$2 == null)))){ return spec.cljs$spec$Spec$unform_STAR_$arity$2(spec,y); } else { var x__7554__auto__ = (((spec == null))?null:spec); var m__7555__auto__ = (cljs.spec.unform_STAR_[goog.typeOf(x__7554__auto__)]); if(!((m__7555__auto__ == null))){ return m__7555__auto__.call(null,spec,y); } else { var m__7555__auto____$1 = (cljs.spec.unform_STAR_["_"]); if(!((m__7555__auto____$1 == null))){ return m__7555__auto____$1.call(null,spec,y); } else { throw cljs.core.missing_protocol.call(null,"Spec.unform*",spec); } } } }); cljs.spec.explain_STAR_ = (function cljs$spec$explain_STAR_(spec,path,via,in$,x){ if((!((spec == null))) && (!((spec.cljs$spec$Spec$explain_STAR_$arity$5 == null)))){ return spec.cljs$spec$Spec$explain_STAR_$arity$5(spec,path,via,in$,x); } else { var x__7554__auto__ = (((spec == null))?null:spec); var m__7555__auto__ = (cljs.spec.explain_STAR_[goog.typeOf(x__7554__auto__)]); if(!((m__7555__auto__ == null))){ return m__7555__auto__.call(null,spec,path,via,in$,x); } else { var m__7555__auto____$1 = (cljs.spec.explain_STAR_["_"]); if(!((m__7555__auto____$1 == null))){ return m__7555__auto____$1.call(null,spec,path,via,in$,x); } else { throw cljs.core.missing_protocol.call(null,"Spec.explain*",spec); } } } }); cljs.spec.gen_STAR_ = (function cljs$spec$gen_STAR_(spec,overrides,path,rmap){ if((!((spec == null))) && (!((spec.cljs$spec$Spec$gen_STAR_$arity$4 == null)))){ return spec.cljs$spec$Spec$gen_STAR_$arity$4(spec,overrides,path,rmap); } else { var x__7554__auto__ = (((spec == null))?null:spec); var m__7555__auto__ = (cljs.spec.gen_STAR_[goog.typeOf(x__7554__auto__)]); if(!((m__7555__auto__ == null))){ return m__7555__auto__.call(null,spec,overrides,path,rmap); } else { var m__7555__auto____$1 = (cljs.spec.gen_STAR_["_"]); if(!((m__7555__auto____$1 == null))){ return m__7555__auto____$1.call(null,spec,overrides,path,rmap); } else { throw cljs.core.missing_protocol.call(null,"Spec.gen*",spec); } } } }); cljs.spec.with_gen_STAR_ = (function cljs$spec$with_gen_STAR_(spec,gfn){ if((!((spec == null))) && (!((spec.cljs$spec$Spec$with_gen_STAR_$arity$2 == null)))){ return spec.cljs$spec$Spec$with_gen_STAR_$arity$2(spec,gfn); } else { var x__7554__auto__ = (((spec == null))?null:spec); var m__7555__auto__ = (cljs.spec.with_gen_STAR_[goog.typeOf(x__7554__auto__)]); if(!((m__7555__auto__ == null))){ return m__7555__auto__.call(null,spec,gfn); } else { var m__7555__auto____$1 = (cljs.spec.with_gen_STAR_["_"]); if(!((m__7555__auto____$1 == null))){ return m__7555__auto____$1.call(null,spec,gfn); } else { throw cljs.core.missing_protocol.call(null,"Spec.with-gen*",spec); } } } }); cljs.spec.describe_STAR_ = (function cljs$spec$describe_STAR_(spec){ if((!((spec == null))) && (!((spec.cljs$spec$Spec$describe_STAR_$arity$1 == null)))){ return spec.cljs$spec$Spec$describe_STAR_$arity$1(spec); } else { var x__7554__auto__ = (((spec == null))?null:spec); var m__7555__auto__ = (cljs.spec.describe_STAR_[goog.typeOf(x__7554__auto__)]); if(!((m__7555__auto__ == null))){ return m__7555__auto__.call(null,spec); } else { var m__7555__auto____$1 = (cljs.spec.describe_STAR_["_"]); if(!((m__7555__auto____$1 == null))){ return m__7555__auto____$1.call(null,spec); } else { throw cljs.core.missing_protocol.call(null,"Spec.describe*",spec); } } } }); if(typeof cljs.spec.registry_ref !== 'undefined'){ } else { cljs.spec.registry_ref = cljs.core.atom.call(null,cljs.core.PersistentArrayMap.EMPTY); } cljs.spec.named_QMARK_ = (function cljs$spec$named_QMARK_(x){ if(!((x == null))){ if(((x.cljs$lang$protocol_mask$partition1$ & (4096))) || ((cljs.core.PROTOCOL_SENTINEL === x.cljs$core$INamed$))){ return true; } else { return false; } } else { return false; } }); cljs.spec.with_name = (function cljs$spec$with_name(spec,name){ return cljs.core.with_meta.call(null,spec,cljs.core.assoc.call(null,cljs.core.meta.call(null,spec),new cljs.core.Keyword("cljs.spec","name","cljs.spec/name",-1902005006),name)); }); cljs.spec.spec_name = (function cljs$spec$spec_name(spec){ if((spec instanceof cljs.core.Keyword)){ return spec; } else { if(((!((spec == null)))?((((spec.cljs$lang$protocol_mask$partition0$ & (131072))) || ((cljs.core.PROTOCOL_SENTINEL === spec.cljs$core$IMeta$)))?true:false):false)){ return new cljs.core.Keyword("cljs.spec","name","cljs.spec/name",-1902005006).cljs$core$IFn$_invoke$arity$1(cljs.core.meta.call(null,spec)); } else { return null; } } }); /** * returns the spec/regex at end of alias chain starting with k, nil if not found, k if k not Named */ cljs.spec.reg_resolve = (function cljs$spec$reg_resolve(k){ if(cljs.core.truth_(cljs.spec.named_QMARK_.call(null,k))){ var reg = cljs.core.deref.call(null,cljs.spec.registry_ref); var spec = k; while(true){ if(cljs.core.truth_(cljs.spec.named_QMARK_.call(null,spec))){ var G__11926 = cljs.core.get.call(null,reg,spec); spec = G__11926; continue; } else { if(cljs.core.truth_(spec)){ return cljs.spec.with_name.call(null,spec,k); } else { return null; } } break; } } else { return k; } }); /** * returns the spec/regex at end of alias chain starting with k, throws if not found, k if k not ident */ cljs.spec.reg_resolve_BANG_ = (function cljs$spec$reg_resolve_BANG_(k){ if(cljs.core.ident_QMARK_.call(null,k)){ var or__6891__auto__ = cljs.spec.reg_resolve.call(null,k); if(cljs.core.truth_(or__6891__auto__)){ return or__6891__auto__; } else { throw (new Error([cljs.core.str("Unable to resolve spec: "),cljs.core.str(k)].join(''))); } } else { return k; } }); /** * returns x if x is a spec object, else logical false */ cljs.spec.spec_QMARK_ = (function cljs$spec$spec_QMARK_(x){ var and__6879__auto__ = ((!((x == null)))?(((false) || ((cljs.core.PROTOCOL_SENTINEL === x.cljs$spec$Spec$)))?true:false):false); if(and__6879__auto__){ return x; } else { return and__6879__auto__; } }); /** * returns x if x is a (clojure.spec) regex op, else logical false */ cljs.spec.regex_QMARK_ = (function cljs$spec$regex_QMARK_(x){ var and__6879__auto__ = new cljs.core.Keyword("cljs.spec","op","cljs.spec/op",939378204).cljs$core$IFn$_invoke$arity$1(x); if(cljs.core.truth_(and__6879__auto__)){ return x; } else { return and__6879__auto__; } }); /** * spec-or-k must be a spec, regex or resolvable kw/sym, else returns nil. */ cljs.spec.maybe_spec = (function cljs$spec$maybe_spec(spec_or_k){ var s = (function (){var or__6891__auto__ = cljs.spec.spec_QMARK_.call(null,spec_or_k); if(cljs.core.truth_(or__6891__auto__)){ return or__6891__auto__; } else { var or__6891__auto____$1 = cljs.spec.regex_QMARK_.call(null,spec_or_k); if(cljs.core.truth_(or__6891__auto____$1)){ return or__6891__auto____$1; } else { var or__6891__auto____$2 = (function (){var and__6879__auto__ = cljs.spec.named_QMARK_.call(null,spec_or_k); if(cljs.core.truth_(and__6879__auto__)){ return cljs.spec.reg_resolve.call(null,spec_or_k); } else { return and__6879__auto__; } })(); if(cljs.core.truth_(or__6891__auto____$2)){ return or__6891__auto____$2; } else { return null; } } } })(); if(cljs.core.truth_(cljs.spec.regex_QMARK_.call(null,s))){ return cljs.spec.with_name.call(null,cljs.spec.regex_spec_impl.call(null,s,null),cljs.spec.spec_name.call(null,s)); } else { return s; } }); /** * spec-or-k must be a spec, regex or kw/sym, else returns nil. Throws if unresolvable kw/sym */ cljs.spec.the_spec = (function cljs$spec$the_spec(spec_or_k){ var or__6891__auto__ = cljs.spec.maybe_spec.call(null,spec_or_k); if(cljs.core.truth_(or__6891__auto__)){ return or__6891__auto__; } else { if(cljs.core.truth_(cljs.spec.named_QMARK_.call(null,spec_or_k))){ throw (new Error([cljs.core.str("Unable to resolve spec: "),cljs.core.str(spec_or_k)].join(''))); } else { return null; } } }); cljs.spec.specize = (function cljs$spec$specize(s){ var or__6891__auto__ = cljs.spec.the_spec.call(null,s); if(cljs.core.truth_(or__6891__auto__)){ return or__6891__auto__; } else { return cljs.spec.spec_impl.call(null,new cljs.core.Keyword("cljs.spec","unknown","cljs.spec/unknown",-1620309582),s,null,null); } }); /** * Given a spec and a value, returns :clojure.spec/invalid if value does not match spec, * else the (possibly destructured) value. */ cljs.spec.conform = (function cljs$spec$conform(spec,x){ return cljs.spec.conform_STAR_.call(null,cljs.spec.specize.call(null,spec),x); }); /** * Given a spec and a value created by or compliant with a call to * 'conform' with the same spec, returns a value with all conform * destructuring undone. */ cljs.spec.unform = (function cljs$spec$unform(spec,x){ return cljs.spec.unform_STAR_.call(null,cljs.spec.specize.call(null,spec),x); }); /** * returns the spec as data */ cljs.spec.form = (function cljs$spec$form(spec){ return cljs.spec.describe_STAR_.call(null,cljs.spec.specize.call(null,spec)); }); cljs.spec.abbrev = (function cljs$spec$abbrev(form){ if(cljs.core.seq_QMARK_.call(null,form)){ return clojure.walk.postwalk.call(null,(function (form__$1){ if(cljs.core.truth_((function (){var and__6879__auto__ = (form__$1 instanceof cljs.core.Symbol); if(and__6879__auto__){ return cljs.core.namespace.call(null,form__$1); } else { return and__6879__auto__; } })())){ return cljs.core.symbol.call(null,cljs.core.name.call(null,form__$1)); } else { if((cljs.core.seq_QMARK_.call(null,form__$1)) && (cljs.core._EQ_.call(null,new cljs.core.Symbol(null,"fn","fn",465265323,null),cljs.core.first.call(null,form__$1))) && (cljs.core._EQ_.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"%","%",-950237169,null)], null),cljs.core.second.call(null,form__$1)))){ return cljs.core.last.call(null,form__$1); } else { return form__$1; } } }),form); } else { if(cljs.core.truth_((function (){var and__6879__auto__ = (form instanceof cljs.core.Symbol); if(and__6879__auto__){ return cljs.core.namespace.call(null,form); } else { return and__6879__auto__; } })())){ return cljs.core.symbol.call(null,cljs.core.name.call(null,form)); } else { return form; } } }); /** * returns an abbreviated description of the spec as data */ cljs.spec.describe = (function cljs$spec$describe(spec){ return cljs.spec.abbrev.call(null,cljs.spec.form.call(null,spec)); }); /** * Takes a spec and a no-arg, generator-returning fn and returns a version of that spec that uses that generator */ cljs.spec.with_gen = (function cljs$spec$with_gen(spec,gen_fn){ var spec__$1 = cljs.spec.reg_resolve.call(null,spec); if(cljs.core.truth_(cljs.spec.regex_QMARK_.call(null,spec__$1))){ return cljs.core.assoc.call(null,spec__$1,new cljs.core.Keyword("cljs.spec","gfn","cljs.spec/gfn",-432034727),gen_fn); } else { return cljs.spec.with_gen_STAR_.call(null,cljs.spec.specize.call(null,spec__$1),gen_fn); } }); cljs.spec.explain_data_STAR_ = (function cljs$spec$explain_data_STAR_(spec,path,via,in$,x){ var temp__4657__auto__ = cljs.spec.explain_STAR_.call(null,cljs.spec.specize.call(null,spec),path,via,in$,x); if(cljs.core.truth_(temp__4657__auto__)){ var probs = temp__4657__auto__; if(cljs.core.empty_QMARK_.call(null,probs)){ return null; } else { return new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("cljs.spec","problems","cljs.spec/problems",608491678),probs], null); } } else { return null; } }); /** * Given a spec and a value x which ought to conform, returns nil if x * conforms, else a map with at least the key ::problems whose value is * a collection of problem-maps, where problem-map has at least :path :pred and :val * keys describing the predicate and the value that failed at that * path. */ cljs.spec.explain_data = (function cljs$spec$explain_data(spec,x){ return cljs.spec.explain_data_STAR_.call(null,spec,cljs.core.PersistentVector.EMPTY,(function (){var temp__4655__auto__ = cljs.spec.spec_name.call(null,spec); if(cljs.core.truth_(temp__4655__auto__)){ var name = temp__4655__auto__; return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [name], null); } else { return cljs.core.PersistentVector.EMPTY; } })(),cljs.core.PersistentVector.EMPTY,x); }); /** * Default printer for explain-data. nil indicates a successful validation. */ cljs.spec.explain_printer = (function cljs$spec$explain_printer(ed){ if(cljs.core.truth_(ed)){ return cljs.core.print.call(null,(function (){var sb__7880__auto__ = (new goog.string.StringBuffer()); var _STAR_print_newline_STAR_11971_12011 = cljs.core._STAR_print_newline_STAR_; var _STAR_print_fn_STAR_11972_12012 = cljs.core._STAR_print_fn_STAR_; cljs.core._STAR_print_newline_STAR_ = true; cljs.core._STAR_print_fn_STAR_ = ((function (_STAR_print_newline_STAR_11971_12011,_STAR_print_fn_STAR_11972_12012,sb__7880__auto__){ return (function (x__7881__auto__){ return sb__7880__auto__.append(x__7881__auto__); });})(_STAR_print_newline_STAR_11971_12011,_STAR_print_fn_STAR_11972_12012,sb__7880__auto__)) ; try{var seq__11973_12013 = cljs.core.seq.call(null,new cljs.core.Keyword("cljs.spec","problems","cljs.spec/problems",608491678).cljs$core$IFn$_invoke$arity$1(ed)); var chunk__11974_12014 = null; var count__11975_12015 = (0); var i__11976_12016 = (0); while(true){ if((i__11976_12016 < count__11975_12015)){ var map__11977_12017 = cljs.core._nth.call(null,chunk__11974_12014,i__11976_12016); var map__11977_12018__$1 = ((((!((map__11977_12017 == null)))?((((map__11977_12017.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__11977_12017.cljs$core$ISeq$)))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__11977_12017):map__11977_12017); var prob_12019 = map__11977_12018__$1; var path_12020 = cljs.core.get.call(null,map__11977_12018__$1,new cljs.core.Keyword(null,"path","path",-188191168)); var pred_12021 = cljs.core.get.call(null,map__11977_12018__$1,new cljs.core.Keyword(null,"pred","pred",1927423397)); var val_12022 = cljs.core.get.call(null,map__11977_12018__$1,new cljs.core.Keyword(null,"val","val",128701612)); var reason_12023 = cljs.core.get.call(null,map__11977_12018__$1,new cljs.core.Keyword(null,"reason","reason",-2070751759)); var via_12024 = cljs.core.get.call(null,map__11977_12018__$1,new cljs.core.Keyword(null,"via","via",-1904457336)); var in_12025 = cljs.core.get.call(null,map__11977_12018__$1,new cljs.core.Keyword(null,"in","in",-1531184865)); if(cljs.core.empty_QMARK_.call(null,in_12025)){ } else { cljs.core.print.call(null,"In:",cljs.core.pr_str.call(null,in_12025),""); } cljs.core.print.call(null,"val: "); cljs.core.pr.call(null,val_12022); cljs.core.print.call(null," fails"); if(cljs.core.empty_QMARK_.call(null,via_12024)){ } else { cljs.core.print.call(null," spec:",cljs.core.pr_str.call(null,cljs.core.last.call(null,via_12024))); } if(cljs.core.empty_QMARK_.call(null,path_12020)){ } else { cljs.core.print.call(null," at:",cljs.core.pr_str.call(null,path_12020)); } cljs.core.print.call(null," predicate: "); cljs.core.pr.call(null,cljs.spec.abbrev.call(null,pred_12021)); if(cljs.core.truth_(reason_12023)){ cljs.core.print.call(null,", ",reason_12023); } else { } var seq__11979_12026 = cljs.core.seq.call(null,prob_12019); var chunk__11980_12027 = null; var count__11981_12028 = (0); var i__11982_12029 = (0); while(true){ if((i__11982_12029 < count__11981_12028)){ var vec__11983_12030 = cljs.core._nth.call(null,chunk__11980_12027,i__11982_12029); var k_12031 = cljs.core.nth.call(null,vec__11983_12030,(0),null); var v_12032 = cljs.core.nth.call(null,vec__11983_12030,(1),null); if(cljs.core.truth_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,"path","path",-188191168),null,new cljs.core.Keyword(null,"pred","pred",1927423397),null,new cljs.core.Keyword(null,"via","via",-1904457336),null,new cljs.core.Keyword(null,"val","val",128701612),null,new cljs.core.Keyword(null,"reason","reason",-2070751759),null,new cljs.core.Keyword(null,"in","in",-1531184865),null], null), null).call(null,k_12031))){ } else { cljs.core.print.call(null,"\n\t",cljs.core.pr_str.call(null,k_12031)," "); cljs.core.pr.call(null,v_12032); } var G__12033 = seq__11979_12026; var G__12034 = chunk__11980_12027; var G__12035 = count__11981_12028; var G__12036 = (i__11982_12029 + (1)); seq__11979_12026 = G__12033; chunk__11980_12027 = G__12034; count__11981_12028 = G__12035; i__11982_12029 = G__12036; continue; } else { var temp__4657__auto___12037 = cljs.core.seq.call(null,seq__11979_12026); if(temp__4657__auto___12037){ var seq__11979_12038__$1 = temp__4657__auto___12037; if(cljs.core.chunked_seq_QMARK_.call(null,seq__11979_12038__$1)){ var c__7705__auto___12039 = cljs.core.chunk_first.call(null,seq__11979_12038__$1); var G__12040 = cljs.core.chunk_rest.call(null,seq__11979_12038__$1); var G__12041 = c__7705__auto___12039; var G__12042 = cljs.core.count.call(null,c__7705__auto___12039); var G__12043 = (0); seq__11979_12026 = G__12040; chunk__11980_12027 = G__12041; count__11981_12028 = G__12042; i__11982_12029 = G__12043; continue; } else { var vec__11986_12044 = cljs.core.first.call(null,seq__11979_12038__$1); var k_12045 = cljs.core.nth.call(null,vec__11986_12044,(0),null); var v_12046 = cljs.core.nth.call(null,vec__11986_12044,(1),null); if(cljs.core.truth_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,"path","path",-188191168),null,new cljs.core.Keyword(null,"pred","pred",1927423397),null,new cljs.core.Keyword(null,"via","via",-1904457336),null,new cljs.core.Keyword(null,"val","val",128701612),null,new cljs.core.Keyword(null,"reason","reason",-2070751759),null,new cljs.core.Keyword(null,"in","in",-1531184865),null], null), null).call(null,k_12045))){ } else { cljs.core.print.call(null,"\n\t",cljs.core.pr_str.call(null,k_12045)," "); cljs.core.pr.call(null,v_12046); } var G__12047 = cljs.core.next.call(null,seq__11979_12038__$1); var G__12048 = null; var G__12049 = (0); var G__12050 = (0); seq__11979_12026 = G__12047; chunk__11980_12027 = G__12048; count__11981_12028 = G__12049; i__11982_12029 = G__12050; continue; } } else { } } break; } cljs.core.newline.call(null); var G__12051 = seq__11973_12013; var G__12052 = chunk__11974_12014; var G__12053 = count__11975_12015; var G__12054 = (i__11976_12016 + (1)); seq__11973_12013 = G__12051; chunk__11974_12014 = G__12052; count__11975_12015 = G__12053; i__11976_12016 = G__12054; continue; } else { var temp__4657__auto___12055 = cljs.core.seq.call(null,seq__11973_12013); if(temp__4657__auto___12055){ var seq__11973_12056__$1 = temp__4657__auto___12055; if(cljs.core.chunked_seq_QMARK_.call(null,seq__11973_12056__$1)){ var c__7705__auto___12057 = cljs.core.chunk_first.call(null,seq__11973_12056__$1); var G__12058 = cljs.core.chunk_rest.call(null,seq__11973_12056__$1); var G__12059 = c__7705__auto___12057; var G__12060 = cljs.core.count.call(null,c__7705__auto___12057); var G__12061 = (0); seq__11973_12013 = G__12058; chunk__11974_12014 = G__12059; count__11975_12015 = G__12060; i__11976_12016 = G__12061; continue; } else { var map__11989_12062 = cljs.core.first.call(null,seq__11973_12056__$1); var map__11989_12063__$1 = ((((!((map__11989_12062 == null)))?((((map__11989_12062.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__11989_12062.cljs$core$ISeq$)))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__11989_12062):map__11989_12062); var prob_12064 = map__11989_12063__$1; var path_12065 = cljs.core.get.call(null,map__11989_12063__$1,new cljs.core.Keyword(null,"path","path",-188191168)); var pred_12066 = cljs.core.get.call(null,map__11989_12063__$1,new cljs.core.Keyword(null,"pred","pred",1927423397)); var val_12067 = cljs.core.get.call(null,map__11989_12063__$1,new cljs.core.Keyword(null,"val","val",128701612)); var reason_12068 = cljs.core.get.call(null,map__11989_12063__$1,new cljs.core.Keyword(null,"reason","reason",-2070751759)); var via_12069 = cljs.core.get.call(null,map__11989_12063__$1,new cljs.core.Keyword(null,"via","via",-1904457336)); var in_12070 = cljs.core.get.call(null,map__11989_12063__$1,new cljs.core.Keyword(null,"in","in",-1531184865)); if(cljs.core.empty_QMARK_.call(null,in_12070)){ } else { cljs.core.print.call(null,"In:",cljs.core.pr_str.call(null,in_12070),""); } cljs.core.print.call(null,"val: "); cljs.core.pr.call(null,val_12067); cljs.core.print.call(null," fails"); if(cljs.core.empty_QMARK_.call(null,via_12069)){ } else { cljs.core.print.call(null," spec:",cljs.core.pr_str.call(null,cljs.core.last.call(null,via_12069))); } if(cljs.core.empty_QMARK_.call(null,path_12065)){ } else { cljs.core.print.call(null," at:",cljs.core.pr_str.call(null,path_12065)); } cljs.core.print.call(null," predicate: "); cljs.core.pr.call(null,cljs.spec.abbrev.call(null,pred_12066)); if(cljs.core.truth_(reason_12068)){ cljs.core.print.call(null,", ",reason_12068); } else { } var seq__11991_12071 = cljs.core.seq.call(null,prob_12064); var chunk__11992_12072 = null; var count__11993_12073 = (0); var i__11994_12074 = (0); while(true){ if((i__11994_12074 < count__11993_12073)){ var vec__11995_12075 = cljs.core._nth.call(null,chunk__11992_12072,i__11994_12074); var k_12076 = cljs.core.nth.call(null,vec__11995_12075,(0),null); var v_12077 = cljs.core.nth.call(null,vec__11995_12075,(1),null); if(cljs.core.truth_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,"path","path",-188191168),null,new cljs.core.Keyword(null,"pred","pred",1927423397),null,new cljs.core.Keyword(null,"via","via",-1904457336),null,new cljs.core.Keyword(null,"val","val",128701612),null,new cljs.core.Keyword(null,"reason","reason",-2070751759),null,new cljs.core.Keyword(null,"in","in",-1531184865),null], null), null).call(null,k_12076))){ } else { cljs.core.print.call(null,"\n\t",cljs.core.pr_str.call(null,k_12076)," "); cljs.core.pr.call(null,v_12077); } var G__12078 = seq__11991_12071; var G__12079 = chunk__11992_12072; var G__12080 = count__11993_12073; var G__12081 = (i__11994_12074 + (1)); seq__11991_12071 = G__12078; chunk__11992_12072 = G__12079; count__11993_12073 = G__12080; i__11994_12074 = G__12081; continue; } else { var temp__4657__auto___12082__$1 = cljs.core.seq.call(null,seq__11991_12071); if(temp__4657__auto___12082__$1){ var seq__11991_12083__$1 = temp__4657__auto___12082__$1; if(cljs.core.chunked_seq_QMARK_.call(null,seq__11991_12083__$1)){ var c__7705__auto___12084 = cljs.core.chunk_first.call(null,seq__11991_12083__$1); var G__12085 = cljs.core.chunk_rest.call(null,seq__11991_12083__$1); var G__12086 = c__7705__auto___12084; var G__12087 = cljs.core.count.call(null,c__7705__auto___12084); var G__12088 = (0); seq__11991_12071 = G__12085; chunk__11992_12072 = G__12086; count__11993_12073 = G__12087; i__11994_12074 = G__12088; continue; } else { var vec__11998_12089 = cljs.core.first.call(null,seq__11991_12083__$1); var k_12090 = cljs.core.nth.call(null,vec__11998_12089,(0),null); var v_12091 = cljs.core.nth.call(null,vec__11998_12089,(1),null); if(cljs.core.truth_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,"path","path",-188191168),null,new cljs.core.Keyword(null,"pred","pred",1927423397),null,new cljs.core.Keyword(null,"via","via",-1904457336),null,new cljs.core.Keyword(null,"val","val",128701612),null,new cljs.core.Keyword(null,"reason","reason",-2070751759),null,new cljs.core.Keyword(null,"in","in",-1531184865),null], null), null).call(null,k_12090))){ } else { cljs.core.print.call(null,"\n\t",cljs.core.pr_str.call(null,k_12090)," "); cljs.core.pr.call(null,v_12091); } var G__12092 = cljs.core.next.call(null,seq__11991_12083__$1); var G__12093 = null; var G__12094 = (0); var G__12095 = (0); seq__11991_12071 = G__12092; chunk__11992_12072 = G__12093; count__11993_12073 = G__12094; i__11994_12074 = G__12095; continue; } } else { } } break; } cljs.core.newline.call(null); var G__12096 = cljs.core.next.call(null,seq__11973_12056__$1); var G__12097 = null; var G__12098 = (0); var G__12099 = (0); seq__11973_12013 = G__12096; chunk__11974_12014 = G__12097; count__11975_12015 = G__12098; i__11976_12016 = G__12099; continue; } } else { } } break; } var seq__12001_12100 = cljs.core.seq.call(null,ed); var chunk__12002_12101 = null; var count__12003_12102 = (0); var i__12004_12103 = (0); while(true){ if((i__12004_12103 < count__12003_12102)){ var vec__12005_12104 = cljs.core._nth.call(null,chunk__12002_12101,i__12004_12103); var k_12105 = cljs.core.nth.call(null,vec__12005_12104,(0),null); var v_12106 = cljs.core.nth.call(null,vec__12005_12104,(1),null); if(cljs.core.truth_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("cljs.spec","problems","cljs.spec/problems",608491678),null], null), null).call(null,k_12105))){ } else { cljs.core.print.call(null,cljs.core.pr_str.call(null,k_12105)," "); cljs.core.pr.call(null,v_12106); cljs.core.newline.call(null); } var G__12107 = seq__12001_12100; var G__12108 = chunk__12002_12101; var G__12109 = count__12003_12102; var G__12110 = (i__12004_12103 + (1)); seq__12001_12100 = G__12107; chunk__12002_12101 = G__12108; count__12003_12102 = G__12109; i__12004_12103 = G__12110; continue; } else { var temp__4657__auto___12111 = cljs.core.seq.call(null,seq__12001_12100); if(temp__4657__auto___12111){ var seq__12001_12112__$1 = temp__4657__auto___12111; if(cljs.core.chunked_seq_QMARK_.call(null,seq__12001_12112__$1)){ var c__7705__auto___12113 = cljs.core.chunk_first.call(null,seq__12001_12112__$1); var G__12114 = cljs.core.chunk_rest.call(null,seq__12001_12112__$1); var G__12115 = c__7705__auto___12113; var G__12116 = cljs.core.count.call(null,c__7705__auto___12113); var G__12117 = (0); seq__12001_12100 = G__12114; chunk__12002_12101 = G__12115; count__12003_12102 = G__12116; i__12004_12103 = G__12117; continue; } else { var vec__12008_12118 = cljs.core.first.call(null,seq__12001_12112__$1); var k_12119 = cljs.core.nth.call(null,vec__12008_12118,(0),null); var v_12120 = cljs.core.nth.call(null,vec__12008_12118,(1),null); if(cljs.core.truth_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("cljs.spec","problems","cljs.spec/problems",608491678),null], null), null).call(null,k_12119))){ } else { cljs.core.print.call(null,cljs.core.pr_str.call(null,k_12119)," "); cljs.core.pr.call(null,v_12120); cljs.core.newline.call(null); } var G__12121 = cljs.core.next.call(null,seq__12001_12112__$1); var G__12122 = null; var G__12123 = (0); var G__12124 = (0); seq__12001_12100 = G__12121; chunk__12002_12101 = G__12122; count__12003_12102 = G__12123; i__12004_12103 = G__12124; continue; } } else { } } break; } }finally {cljs.core._STAR_print_fn_STAR_ = _STAR_print_fn_STAR_11972_12012; cljs.core._STAR_print_newline_STAR_ = _STAR_print_newline_STAR_11971_12011; } return [cljs.core.str(sb__7880__auto__)].join(''); })()); } else { return cljs.core.println.call(null,"Success!"); } }); cljs.spec._STAR_explain_out_STAR_ = cljs.spec.explain_printer; /** * Prints explanation data (per 'explain-data') to *out* using the printer in *explain-out*, * by default explain-printer. */ cljs.spec.explain_out = (function cljs$spec$explain_out(ed){ return cljs.spec._STAR_explain_out_STAR_.call(null,ed); }); /** * Given a spec and a value that fails to conform, prints an explanation to *out*. */ cljs.spec.explain = (function cljs$spec$explain(spec,x){ return cljs.spec.explain_out.call(null,cljs.spec.explain_data.call(null,spec,x)); }); /** * Given a spec and a value that fails to conform, returns an explanation as a string. */ cljs.spec.explain_str = (function cljs$spec$explain_str(spec,x){ var sb__7880__auto__ = (new goog.string.StringBuffer()); var _STAR_print_newline_STAR_12127_12129 = cljs.core._STAR_print_newline_STAR_; var _STAR_print_fn_STAR_12128_12130 = cljs.core._STAR_print_fn_STAR_; cljs.core._STAR_print_newline_STAR_ = true; cljs.core._STAR_print_fn_STAR_ = ((function (_STAR_print_newline_STAR_12127_12129,_STAR_print_fn_STAR_12128_12130,sb__7880__auto__){ return (function (x__7881__auto__){ return sb__7880__auto__.append(x__7881__auto__); });})(_STAR_print_newline_STAR_12127_12129,_STAR_print_fn_STAR_12128_12130,sb__7880__auto__)) ; try{cljs.spec.explain.call(null,spec,x); }finally {cljs.core._STAR_print_fn_STAR_ = _STAR_print_fn_STAR_12128_12130; cljs.core._STAR_print_newline_STAR_ = _STAR_print_newline_STAR_12127_12129; } return [cljs.core.str(sb__7880__auto__)].join(''); }); cljs.spec.gensub = (function cljs$spec$gensub(spec,overrides,path,rmap,form){ var spec__$1 = cljs.spec.specize.call(null,spec); var temp__4655__auto__ = (function (){var or__6891__auto__ = (function (){var temp__4657__auto__ = (function (){var or__6891__auto__ = cljs.core.get.call(null,overrides,(function (){var or__6891__auto__ = cljs.spec.spec_name.call(null,spec__$1); if(cljs.core.truth_(or__6891__auto__)){ return or__6891__auto__; } else { return spec__$1; } })()); if(cljs.core.truth_(or__6891__auto__)){ return or__6891__auto__; } else { return cljs.core.get.call(null,overrides,path); } })(); if(cljs.core.truth_(temp__4657__auto__)){ var gfn = temp__4657__auto__; return gfn.call(null); } else { return null; } })(); if(cljs.core.truth_(or__6891__auto__)){ return or__6891__auto__; } else { return cljs.spec.gen_STAR_.call(null,spec__$1,overrides,path,rmap); } })(); if(cljs.core.truth_(temp__4655__auto__)){ var g = temp__4655__auto__; return cljs.spec.impl.gen.such_that.call(null,((function (g,temp__4655__auto__,spec__$1){ return (function (p1__12131_SHARP_){ return cljs.spec.valid_QMARK_.call(null,spec__$1,p1__12131_SHARP_); });})(g,temp__4655__auto__,spec__$1)) ,g,(100)); } else { throw (new Error([cljs.core.str("Unable to construct gen at: "),cljs.core.str(path),cljs.core.str(" for: "),cljs.core.str(cljs.spec.abbrev.call(null,form))].join(''))); } }); /** * Given a spec, returns the generator for it, or throws if none can * be constructed. Optionally an overrides map can be provided which * should map spec names or paths (vectors of keywords) to no-arg * generator-creating fns. These will be used instead of the generators at those * names/paths. Note that parent generator (in the spec or overrides * map) will supersede those of any subtrees. A generator for a regex * op must always return a sequential collection (i.e. a generator for * s/? should return either an empty sequence/vector or a * sequence/vector with one item in it) */ cljs.spec.gen = (function cljs$spec$gen(var_args){ var args12132 = []; var len__7999__auto___12135 = arguments.length; var i__8000__auto___12136 = (0); while(true){ if((i__8000__auto___12136 < len__7999__auto___12135)){ args12132.push((arguments[i__8000__auto___12136])); var G__12137 = (i__8000__auto___12136 + (1)); i__8000__auto___12136 = G__12137; continue; } else { } break; } var G__12134 = args12132.length; switch (G__12134) { case 1: return cljs.spec.gen.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); break; case 2: return cljs.spec.gen.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); break; default: throw (new Error([cljs.core.str("Invalid arity: "),cljs.core.str(args12132.length)].join(''))); } }); cljs.spec.gen.cljs$core$IFn$_invoke$arity$1 = (function (spec){ return cljs.spec.gen.call(null,spec,null); }); cljs.spec.gen.cljs$core$IFn$_invoke$arity$2 = (function (spec,overrides){ return cljs.spec.gensub.call(null,spec,overrides,cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("cljs.spec","recursion-limit","cljs.spec/recursion-limit",-630131086),cljs.spec._STAR_recursion_limit_STAR_], null),spec); }); cljs.spec.gen.cljs$lang$maxFixedArity = 2; /** * Do not call this directly, use 'def' */ cljs.spec.def_impl = (function cljs$spec$def_impl(k,form,spec){ if(cljs.core.truth_((function (){var and__6879__auto__ = cljs.spec.named_QMARK_.call(null,k); if(cljs.core.truth_(and__6879__auto__)){ return cljs.core.namespace.call(null,k); } else { return and__6879__auto__; } })())){ } else { throw (new Error([cljs.core.str("Assert failed: "),cljs.core.str("k must be namespaced keyword or resolveable symbol"),cljs.core.str("\n"),cljs.core.str("(c/and (named? k) (namespace k))")].join(''))); } var spec__$1 = (cljs.core.truth_((function (){var or__6891__auto__ = cljs.spec.spec_QMARK_.call(null,spec); if(cljs.core.truth_(or__6891__auto__)){ return or__6891__auto__; } else { var or__6891__auto____$1 = cljs.spec.regex_QMARK_.call(null,spec); if(cljs.core.truth_(or__6891__auto____$1)){ return or__6891__auto____$1; } else { return cljs.core.get.call(null,cljs.core.deref.call(null,cljs.spec.registry_ref),spec); } } })())?spec:cljs.spec.spec_impl.call(null,form,spec,null,null)); cljs.core.swap_BANG_.call(null,cljs.spec.registry_ref,cljs.core.assoc,k,spec__$1); return k; }); /** * returns the registry map, prefer 'get-spec' to lookup a spec by name */ cljs.spec.registry = (function cljs$spec$registry(){ return cljs.core.deref.call(null,cljs.spec.registry_ref); }); /** * Returns a symbol from a symbol or var */ cljs.spec.__GT_sym = (function cljs$spec$__GT_sym(x){ if(cljs.core.var_QMARK_.call(null,x)){ return x.sym; } else { return x; } }); /** * Returns spec registered for keyword/symbol/var k, or nil. */ cljs.spec.get_spec = (function cljs$spec$get_spec(k){ return cljs.core.get.call(null,cljs.spec.registry.call(null),(((k instanceof cljs.core.Keyword))?k:cljs.spec.__GT_sym.call(null,k))); }); cljs.spec.macroexpand_check = (function cljs$spec$macroexpand_check(v,args){ var specs = cljs.spec.get_spec.call(null,v); var temp__4657__auto__ = new cljs.core.Keyword(null,"args","args",1315556576).cljs$core$IFn$_invoke$arity$1(specs); if(cljs.core.truth_(temp__4657__auto__)){ var arg_spec = temp__4657__auto__; if(cljs.core._EQ_.call(null,new cljs.core.Keyword("cljs.spec","invalid","cljs.spec/invalid",551677537),cljs.spec.conform.call(null,arg_spec,args))){ var ed = cljs.core.assoc.call(null,cljs.spec.explain_data_STAR_.call(null,arg_spec,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"args","args",1315556576)], null),(function (){var temp__4655__auto__ = cljs.spec.spec_name.call(null,arg_spec); if(cljs.core.truth_(temp__4655__auto__)){ var name = temp__4655__auto__; return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [name], null); } else { return cljs.core.PersistentVector.EMPTY; } })(),cljs.core.PersistentVector.EMPTY,args),new cljs.core.Keyword("cljs.spec","args","cljs.spec/args",-367019609),args); throw (new Error([cljs.core.str("Call to "),cljs.core.str(cljs.spec.__GT_sym.call(null,v)),cljs.core.str(" did not conform to spec:\n"),cljs.core.str((function (){var sb__7880__auto__ = (new goog.string.StringBuffer()); var _STAR_print_newline_STAR_12141_12143 = cljs.core._STAR_print_newline_STAR_; var _STAR_print_fn_STAR_12142_12144 = cljs.core._STAR_print_fn_STAR_; cljs.core._STAR_print_newline_STAR_ = true; cljs.core._STAR_print_fn_STAR_ = ((function (_STAR_print_newline_STAR_12141_12143,_STAR_print_fn_STAR_12142_12144,sb__7880__auto__,ed,arg_spec,temp__4657__auto__,specs){ return (function (x__7881__auto__){ return sb__7880__auto__.append(x__7881__auto__); });})(_STAR_print_newline_STAR_12141_12143,_STAR_print_fn_STAR_12142_12144,sb__7880__auto__,ed,arg_spec,temp__4657__auto__,specs)) ; try{cljs.spec.explain_out.call(null,ed); }finally {cljs.core._STAR_print_fn_STAR_ = _STAR_print_fn_STAR_12142_12144; cljs.core._STAR_print_newline_STAR_ = _STAR_print_newline_STAR_12141_12143; } return [cljs.core.str(sb__7880__auto__)].join(''); })())].join(''))); } else { return null; } } else { return null; } }); cljs.spec.recur_limit_QMARK_ = (function cljs$spec$recur_limit_QMARK_(rmap,id,path,k){ return ((cljs.core.get.call(null,rmap,id) > new cljs.core.Keyword("cljs.spec","recursion-limit","cljs.spec/recursion-limit",-630131086).cljs$core$IFn$_invoke$arity$1(rmap))) && (cljs.core.contains_QMARK_.call(null,cljs.core.set.call(null,path),k)); }); cljs.spec.inck = (function cljs$spec$inck(m,k){ return cljs.core.assoc.call(null,m,k,((function (){var or__6891__auto__ = cljs.core.get.call(null,m,k); if(cljs.core.truth_(or__6891__auto__)){ return or__6891__auto__; } else { return (0); } })() + (1))); }); cljs.spec.dt = (function cljs$spec$dt(var_args){ var args12145 = []; var len__7999__auto___12148 = arguments.length; var i__8000__auto___12149 = (0); while(true){ if((i__8000__auto___12149 < len__7999__auto___12148)){ args12145.push((arguments[i__8000__auto___12149])); var G__12150 = (i__8000__auto___12149 + (1)); i__8000__auto___12149 = G__12150; continue; } else { } break; } var G__12147 = args12145.length; switch (G__12147) { case 3: return cljs.spec.dt.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); break; case 4: return cljs.spec.dt.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)])); break; default: throw (new Error([cljs.core.str("Invalid arity: "),cljs.core.str(args12145.length)].join(''))); } }); cljs.spec.dt.cljs$core$IFn$_invoke$arity$3 = (function (pred,x,form){ return cljs.spec.dt.call(null,pred,x,form,null); }); cljs.spec.dt.cljs$core$IFn$_invoke$arity$4 = (function (pred,x,form,cpred_QMARK_){ if(cljs.core.truth_(pred)){ var temp__4655__auto__ = cljs.spec.the_spec.call(null,pred); if(cljs.core.truth_(temp__4655__auto__)){ var spec = temp__4655__auto__; return cljs.spec.conform.call(null,spec,x); } else { if(cljs.core.ifn_QMARK_.call(null,pred)){ if(cljs.core.truth_(cpred_QMARK_)){ return pred.call(null,x); } else { if(cljs.core.truth_(pred.call(null,x))){ return x; } else { return new cljs.core.Keyword("cljs.spec","invalid","cljs.spec/invalid",551677537); } } } else { throw (new Error([cljs.core.str(cljs.core.pr_str.call(null,form)),cljs.core.str(" is not a fn, expected predicate fn")].join(''))); } } } else { return x; } }); cljs.spec.dt.cljs$lang$maxFixedArity = 4; /** * Helper function that returns true when x is valid for spec. */ cljs.spec.valid_QMARK_ = (function cljs$spec$valid_QMARK_(var_args){ var args12152 = []; var len__7999__auto___12155 = arguments.length; var i__8000__auto___12156 = (0); while(true){ if((i__8000__auto___12156 < len__7999__auto___12155)){ args12152.push((arguments[i__8000__auto___12156])); var G__12157 = (i__8000__auto___12156 + (1)); i__8000__auto___12156 = G__12157; continue; } else { } break; } var G__12154 = args12152.length; switch (G__12154) { case 2: return cljs.spec.valid_QMARK_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); break; case 3: return cljs.spec.valid_QMARK_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); break; default: throw (new Error([cljs.core.str("Invalid arity: "),cljs.core.str(args12152.length)].join(''))); } }); cljs.spec.valid_QMARK_.cljs$core$IFn$_invoke$arity$2 = (function (spec,x){ return cljs.core.not_EQ_.call(null,new cljs.core.Keyword("cljs.spec","invalid","cljs.spec/invalid",551677537),cljs.spec.dt.call(null,spec,x,new cljs.core.Keyword("cljs.spec","unknown","cljs.spec/unknown",-1620309582))); }); cljs.spec.valid_QMARK_.cljs$core$IFn$_invoke$arity$3 = (function (spec,x,form){ return cljs.core.not_EQ_.call(null,new cljs.core.Keyword("cljs.spec","invalid","cljs.spec/invalid",551677537),cljs.spec.dt.call(null,spec,x,form)); }); cljs.spec.valid_QMARK_.cljs$lang$maxFixedArity = 3; cljs.spec.explain_1 = (function cljs$spec$explain_1(form,pred,path,via,in$,v){ var pred__$1 = cljs.spec.maybe_spec.call(null,pred); if(cljs.core.truth_(cljs.spec.spec_QMARK_.call(null,pred__$1))){ return cljs.spec.explain_STAR_.call(null,pred__$1,path,(function (){var temp__4655__auto__ = cljs.spec.spec_name.call(null,pred__$1); if(cljs.core.truth_(temp__4655__auto__)){ var name = temp__4655__auto__; return cljs.core.conj.call(null,via,name); } else { return via; } })(),in$,v); } else { return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,"path","path",-188191168),path,new cljs.core.Keyword(null,"pred","pred",1927423397),cljs.spec.abbrev.call(null,form),new cljs.core.Keyword(null,"val","val",128701612),v,new cljs.core.Keyword(null,"via","via",-1904457336),via,new cljs.core.Keyword(null,"in","in",-1531184865),in$], null)], null); } }); /** * Do not call this directly, use 'spec' with a map argument */ cljs.spec.map_spec_impl = (function cljs$spec$map_spec_impl(p__12162){ var map__12193 = p__12162; var map__12193__$1 = ((((!((map__12193 == null)))?((((map__12193.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__12193.cljs$core$ISeq$)))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__12193):map__12193); var argm = map__12193__$1; var opt = cljs.core.get.call(null,map__12193__$1,new cljs.core.Keyword(null,"opt","opt",-794706369)); var req_un = cljs.core.get.call(null,map__12193__$1,new cljs.core.Keyword(null,"req-un","req-un",1074571008)); var opt_un = cljs.core.get.call(null,map__12193__$1,new cljs.core.Keyword(null,"opt-un","opt-un",883442496)); var gfn = cljs.core.get.call(null,map__12193__$1,new cljs.core.Keyword(null,"gfn","gfn",791517474)); var pred_exprs = cljs.core.get.call(null,map__12193__$1,new cljs.core.Keyword(null,"pred-exprs","pred-exprs",1792271395)); var opt_keys = cljs.core.get.call(null,map__12193__$1,new cljs.core.Keyword(null,"opt-keys","opt-keys",1262688261)); var req_specs = cljs.core.get.call(null,map__12193__$1,new cljs.core.Keyword(null,"req-specs","req-specs",553962313)); var req = cljs.core.get.call(null,map__12193__$1,new cljs.core.Keyword(null,"req","req",-326448303)); var req_keys = cljs.core.get.call(null,map__12193__$1,new cljs.core.Keyword(null,"req-keys","req-keys",514319221)); var opt_specs = cljs.core.get.call(null,map__12193__$1,new cljs.core.Keyword(null,"opt-specs","opt-specs",-384905450)); var pred_forms = cljs.core.get.call(null,map__12193__$1,new cljs.core.Keyword(null,"pred-forms","pred-forms",172611832)); var keys_pred = cljs.core.apply.call(null,cljs.core.every_pred,pred_exprs); var k__GT_s = cljs.core.zipmap.call(null,cljs.core.concat.call(null,req_keys,opt_keys),cljs.core.concat.call(null,req_specs,opt_specs)); var keys__GT_specs = ((function (keys_pred,k__GT_s,map__12193,map__12193__$1,argm,opt,req_un,opt_un,gfn,pred_exprs,opt_keys,req_specs,req,req_keys,opt_specs,pred_forms){ return (function (p1__12159_SHARP_){ var or__6891__auto__ = k__GT_s.call(null,p1__12159_SHARP_); if(cljs.core.truth_(or__6891__auto__)){ return or__6891__auto__; } else { return p1__12159_SHARP_; } });})(keys_pred,k__GT_s,map__12193,map__12193__$1,argm,opt,req_un,opt_un,gfn,pred_exprs,opt_keys,req_specs,req,req_keys,opt_specs,pred_forms)) ; var id = cljs.core.random_uuid.call(null); if(typeof cljs.spec.t_cljs$spec12195 !== 'undefined'){ } else { /** * @constructor * @implements {cljs.core.IMeta} * @implements {cljs.spec.Spec} * @implements {cljs.core.IWithMeta} */ cljs.spec.t_cljs$spec12195 = (function (opt,req_un,opt_un,gfn,pred_exprs,keys_pred,argm,opt_keys,req_specs,map__12193,keys__GT_specs,req,p__12162,id,req_keys,opt_specs,k__GT_s,pred_forms,meta12196){ this.opt = opt; this.req_un = req_un; this.opt_un = opt_un; this.gfn = gfn; this.pred_exprs = pred_exprs; this.keys_pred = keys_pred; this.argm = argm; this.opt_keys = opt_keys; this.req_specs = req_specs; this.map__12193 = map__12193; this.keys__GT_specs = keys__GT_specs; this.req = req; this.p__12162 = p__12162; this.id = id; this.req_keys = req_keys; this.opt_specs = opt_specs; this.k__GT_s = k__GT_s; this.pred_forms = pred_forms; this.meta12196 = meta12196; this.cljs$lang$protocol_mask$partition0$ = 393216; this.cljs$lang$protocol_mask$partition1$ = 0; }) cljs.spec.t_cljs$spec12195.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = ((function (keys_pred,k__GT_s,keys__GT_specs,id,map__12193,map__12193__$1,argm,opt,req_un,opt_un,gfn,pred_exprs,opt_keys,req_specs,req,req_keys,opt_specs,pred_forms){ return (function (_12197,meta12196__$1){ var self__ = this; var _12197__$1 = this; return (new cljs.spec.t_cljs$spec12195(self__.opt,self__.req_un,self__.opt_un,self__.gfn,self__.pred_exprs,self__.keys_pred,self__.argm,self__.opt_keys,self__.req_specs,self__.map__12193,self__.keys__GT_specs,self__.req,self__.p__12162,self__.id,self__.req_keys,self__.opt_specs,self__.k__GT_s,self__.pred_forms,meta12196__$1)); });})(keys_pred,k__GT_s,keys__GT_specs,id,map__12193,map__12193__$1,argm,opt,req_un,opt_un,gfn,pred_exprs,opt_keys,req_specs,req,req_keys,opt_specs,pred_forms)) ; cljs.spec.t_cljs$spec12195.prototype.cljs$core$IMeta$_meta$arity$1 = ((function (keys_pred,k__GT_s,keys__GT_specs,id,map__12193,map__12193__$1,argm,opt,req_un,opt_un,gfn,pred_exprs,opt_keys,req_specs,req,req_keys,opt_specs,pred_forms){ return (function (_12197){ var self__ = this; var _12197__$1 = this; return self__.meta12196; });})(keys_pred,k__GT_s,keys__GT_specs,id,map__12193,map__12193__$1,argm,opt,req_un,opt_un,gfn,pred_exprs,opt_keys,req_specs,req,req_keys,opt_specs,pred_forms)) ; cljs.spec.t_cljs$spec12195.prototype.cljs$spec$Spec$ = cljs.core.PROTOCOL_SENTINEL; cljs.spec.t_cljs$spec12195.prototype.cljs$spec$Spec$conform_STAR_$arity$2 = ((function (keys_pred,k__GT_s,keys__GT_specs,id,map__12193,map__12193__$1,argm,opt,req_un,opt_un,gfn,pred_exprs,opt_keys,req_specs,req,req_keys,opt_specs,pred_forms){ return (function (_,m){ var self__ = this; var ___$1 = this; if(cljs.core.truth_(self__.keys_pred.call(null,m))){ var reg = cljs.spec.registry.call(null); var ret = m; var G__12201 = cljs.core.keys.call(null,m); var vec__12202 = G__12201; var seq__12203 = cljs.core.seq.call(null,vec__12202); var first__12204 = cljs.core.first.call(null,seq__12203); var seq__12203__$1 = cljs.core.next.call(null,seq__12203); var k = first__12204; var ks = seq__12203__$1; var keys = vec__12202; var ret__$1 = ret; var G__12201__$1 = G__12201; while(true){ var ret__$2 = ret__$1; var vec__12205 = G__12201__$1; var seq__12206 = cljs.core.seq.call(null,vec__12205); var first__12207 = cljs.core.first.call(null,seq__12206); var seq__12206__$1 = cljs.core.next.call(null,seq__12206); var k__$1 = first__12207; var ks__$1 = seq__12206__$1; var keys__$1 = vec__12205; if(cljs.core.truth_(keys__$1)){ if(cljs.core.contains_QMARK_.call(null,reg,self__.keys__GT_specs.call(null,k__$1))){ var v = cljs.core.get.call(null,m,k__$1); var cv = cljs.spec.conform.call(null,self__.keys__GT_specs.call(null,k__$1),v); if(cljs.core._EQ_.call(null,cv,new cljs.core.Keyword("cljs.spec","invalid","cljs.spec/invalid",551677537))){ return new cljs.core.Keyword("cljs.spec","invalid","cljs.spec/invalid",551677537); } else { var G__12223 = (((cv === v))?ret__$2:cljs.core.assoc.call(null,ret__$2,k__$1,cv)); var G__12224 = ks__$1; ret__$1 = G__12223; G__12201__$1 = G__12224; continue; } } else { var G__12225 = ret__$2; var G__12226 = ks__$1; ret__$1 = G__12225; G__12201__$1 = G__12226; continue; } } else { return ret__$2; } break; } } else { return new cljs.core.Keyword("cljs.spec","invalid","cljs.spec/invalid",551677537); } });})(keys_pred,k__GT_s,keys__GT_specs,id,map__12193,map__12193__$1,argm,opt,req_un,opt_un,gfn,pred_exprs,opt_keys,req_specs,req,req_keys,opt_specs,pred_forms)) ; cljs.spec.t_cljs$spec12195.prototype.cljs$spec$Spec$unform_STAR_$arity$2 = ((function (keys_pred,k__GT_s,keys__GT_specs,id,map__12193,map__12193__$1,argm,opt,req_un,opt_un,gfn,pred_exprs,opt_keys,req_specs,req,req_keys,opt_specs,pred_forms){ return (function (_,m){ var self__ = this; var ___$1 = this; var reg = cljs.spec.registry.call(null); var ret = m; var G__12211 = cljs.core.keys.call(null,m); var vec__12212 = G__12211; var seq__12213 = cljs.core.seq.call(null,vec__12212); var first__12214 = cljs.core.first.call(null,seq__12213); var seq__12213__$1 = cljs.core.next.call(null,seq__12213); var k = first__12214; var ks = seq__12213__$1; var keys = vec__12212; var ret__$1 = ret; var G__12211__$1 = G__12211; while(true){ var ret__$2 = ret__$1; var vec__12215 = G__12211__$1;