UNPKG

macrovich

Version:

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

1,255 lines (1,145 loc) 267 kB
// Compiled by ClojureScript 1.9.625 {:target :nodejs} goog.provide('cljs.spec.alpha'); goog.require('cljs.core'); goog.require('goog.object'); goog.require('cljs.core'); goog.require('clojure.walk'); goog.require('cljs.spec.gen.alpha'); goog.require('clojure.string'); cljs.spec.alpha.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.alpha._STAR_recursion_limit_STAR_ = (4); /** * The number of times an anonymous fn specified by fspec will be (generatively) tested during conform */ cljs.spec.alpha._STAR_fspec_iterations_STAR_ = (21); /** * The number of items validated in a collection spec'ed with 'every' */ cljs.spec.alpha._STAR_coll_check_limit_STAR_ = (101); /** * The number of errors reported by explain in a collection spec'ed with 'every' */ cljs.spec.alpha._STAR_coll_error_limit_STAR_ = (20); /** * @interface */ cljs.spec.alpha.Spec = function(){}; cljs.spec.alpha.conform_STAR_ = (function cljs$spec$alpha$conform_STAR_(spec,x){ if((!((spec == null))) && (!((spec.cljs$spec$alpha$Spec$conform_STAR_$arity$2 == null)))){ return spec.cljs$spec$alpha$Spec$conform_STAR_$arity$2(spec,x); } else { var x__7934__auto__ = (((spec == null))?null:spec); var m__7935__auto__ = (cljs.spec.alpha.conform_STAR_[goog.typeOf(x__7934__auto__)]); if(!((m__7935__auto__ == null))){ return m__7935__auto__.call(null,spec,x); } else { var m__7935__auto____$1 = (cljs.spec.alpha.conform_STAR_["_"]); if(!((m__7935__auto____$1 == null))){ return m__7935__auto____$1.call(null,spec,x); } else { throw cljs.core.missing_protocol.call(null,"Spec.conform*",spec); } } } }); cljs.spec.alpha.unform_STAR_ = (function cljs$spec$alpha$unform_STAR_(spec,y){ if((!((spec == null))) && (!((spec.cljs$spec$alpha$Spec$unform_STAR_$arity$2 == null)))){ return spec.cljs$spec$alpha$Spec$unform_STAR_$arity$2(spec,y); } else { var x__7934__auto__ = (((spec == null))?null:spec); var m__7935__auto__ = (cljs.spec.alpha.unform_STAR_[goog.typeOf(x__7934__auto__)]); if(!((m__7935__auto__ == null))){ return m__7935__auto__.call(null,spec,y); } else { var m__7935__auto____$1 = (cljs.spec.alpha.unform_STAR_["_"]); if(!((m__7935__auto____$1 == null))){ return m__7935__auto____$1.call(null,spec,y); } else { throw cljs.core.missing_protocol.call(null,"Spec.unform*",spec); } } } }); cljs.spec.alpha.explain_STAR_ = (function cljs$spec$alpha$explain_STAR_(spec,path,via,in$,x){ if((!((spec == null))) && (!((spec.cljs$spec$alpha$Spec$explain_STAR_$arity$5 == null)))){ return spec.cljs$spec$alpha$Spec$explain_STAR_$arity$5(spec,path,via,in$,x); } else { var x__7934__auto__ = (((spec == null))?null:spec); var m__7935__auto__ = (cljs.spec.alpha.explain_STAR_[goog.typeOf(x__7934__auto__)]); if(!((m__7935__auto__ == null))){ return m__7935__auto__.call(null,spec,path,via,in$,x); } else { var m__7935__auto____$1 = (cljs.spec.alpha.explain_STAR_["_"]); if(!((m__7935__auto____$1 == null))){ return m__7935__auto____$1.call(null,spec,path,via,in$,x); } else { throw cljs.core.missing_protocol.call(null,"Spec.explain*",spec); } } } }); cljs.spec.alpha.gen_STAR_ = (function cljs$spec$alpha$gen_STAR_(spec,overrides,path,rmap){ if((!((spec == null))) && (!((spec.cljs$spec$alpha$Spec$gen_STAR_$arity$4 == null)))){ return spec.cljs$spec$alpha$Spec$gen_STAR_$arity$4(spec,overrides,path,rmap); } else { var x__7934__auto__ = (((spec == null))?null:spec); var m__7935__auto__ = (cljs.spec.alpha.gen_STAR_[goog.typeOf(x__7934__auto__)]); if(!((m__7935__auto__ == null))){ return m__7935__auto__.call(null,spec,overrides,path,rmap); } else { var m__7935__auto____$1 = (cljs.spec.alpha.gen_STAR_["_"]); if(!((m__7935__auto____$1 == null))){ return m__7935__auto____$1.call(null,spec,overrides,path,rmap); } else { throw cljs.core.missing_protocol.call(null,"Spec.gen*",spec); } } } }); cljs.spec.alpha.with_gen_STAR_ = (function cljs$spec$alpha$with_gen_STAR_(spec,gfn){ if((!((spec == null))) && (!((spec.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2 == null)))){ return spec.cljs$spec$alpha$Spec$with_gen_STAR_$arity$2(spec,gfn); } else { var x__7934__auto__ = (((spec == null))?null:spec); var m__7935__auto__ = (cljs.spec.alpha.with_gen_STAR_[goog.typeOf(x__7934__auto__)]); if(!((m__7935__auto__ == null))){ return m__7935__auto__.call(null,spec,gfn); } else { var m__7935__auto____$1 = (cljs.spec.alpha.with_gen_STAR_["_"]); if(!((m__7935__auto____$1 == null))){ return m__7935__auto____$1.call(null,spec,gfn); } else { throw cljs.core.missing_protocol.call(null,"Spec.with-gen*",spec); } } } }); cljs.spec.alpha.describe_STAR_ = (function cljs$spec$alpha$describe_STAR_(spec){ if((!((spec == null))) && (!((spec.cljs$spec$alpha$Spec$describe_STAR_$arity$1 == null)))){ return spec.cljs$spec$alpha$Spec$describe_STAR_$arity$1(spec); } else { var x__7934__auto__ = (((spec == null))?null:spec); var m__7935__auto__ = (cljs.spec.alpha.describe_STAR_[goog.typeOf(x__7934__auto__)]); if(!((m__7935__auto__ == null))){ return m__7935__auto__.call(null,spec); } else { var m__7935__auto____$1 = (cljs.spec.alpha.describe_STAR_["_"]); if(!((m__7935__auto____$1 == null))){ return m__7935__auto____$1.call(null,spec); } else { throw cljs.core.missing_protocol.call(null,"Spec.describe*",spec); } } } }); if(typeof cljs.spec.alpha.registry_ref !== 'undefined'){ } else { cljs.spec.alpha.registry_ref = cljs.core.atom.call(null,cljs.core.PersistentArrayMap.EMPTY); } cljs.spec.alpha.deep_resolve = (function cljs$spec$alpha$deep_resolve(reg,k){ var spec = k; while(true){ if(cljs.core.ident_QMARK_.call(null,spec)){ var G__10054 = cljs.core.get.call(null,reg,spec); spec = G__10054; continue; } else { return spec; } break; } }); /** * returns the spec/regex at end of alias chain starting with k, nil if not found, k if k not ident */ cljs.spec.alpha.reg_resolve = (function cljs$spec$alpha$reg_resolve(k){ if(cljs.core.ident_QMARK_.call(null,k)){ var reg = cljs.core.deref.call(null,cljs.spec.alpha.registry_ref); var spec = cljs.core.get.call(null,reg,k); if(!(cljs.core.ident_QMARK_.call(null,spec))){ return spec; } else { return cljs.spec.alpha.deep_resolve.call(null,reg,spec); } } 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.alpha.reg_resolve_BANG_ = (function cljs$spec$alpha$reg_resolve_BANG_(k){ if(cljs.core.ident_QMARK_.call(null,k)){ var or__7265__auto__ = cljs.spec.alpha.reg_resolve.call(null,k); if(cljs.core.truth_(or__7265__auto__)){ return or__7265__auto__; } else { throw (new Error([cljs.core.str.cljs$core$IFn$_invoke$arity$1("Unable to resolve spec: "),cljs.core.str.cljs$core$IFn$_invoke$arity$1(k)].join(''))); } } else { return k; } }); /** * returns x if x is a spec object, else logical false */ cljs.spec.alpha.spec_QMARK_ = (function cljs$spec$alpha$spec_QMARK_(x){ if(((!((x == null)))?(((false) || ((cljs.core.PROTOCOL_SENTINEL === x.cljs$spec$alpha$Spec$)))?true:false):false)){ return x; } else { return null; } }); /** * returns x if x is a (clojure.spec) regex op, else logical false */ cljs.spec.alpha.regex_QMARK_ = (function cljs$spec$alpha$regex_QMARK_(x){ var and__7253__auto__ = new cljs.core.Keyword("cljs.spec.alpha","op","cljs.spec.alpha/op",-1269055252).cljs$core$IFn$_invoke$arity$1(x); if(cljs.core.truth_(and__7253__auto__)){ return x; } else { return and__7253__auto__; } }); cljs.spec.alpha.with_name = (function cljs$spec$alpha$with_name(spec,name){ if(cljs.core.ident_QMARK_.call(null,spec)){ return spec; } else { if(cljs.core.truth_(cljs.spec.alpha.regex_QMARK_.call(null,spec))){ return cljs.core.assoc.call(null,spec,new cljs.core.Keyword("cljs.spec.alpha","name","cljs.spec.alpha/name",205233570),name); } else { if(((!((spec == null)))?((((spec.cljs$lang$protocol_mask$partition0$ & (131072))) || ((cljs.core.PROTOCOL_SENTINEL === spec.cljs$core$IMeta$)))?true:false):false)){ 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.alpha","name","cljs.spec.alpha/name",205233570),name)); } else { return null; } } } }); cljs.spec.alpha.spec_name = (function cljs$spec$alpha$spec_name(spec){ if(cljs.core.ident_QMARK_.call(null,spec)){ return spec; } else { if(cljs.core.truth_(cljs.spec.alpha.regex_QMARK_.call(null,spec))){ return new cljs.core.Keyword("cljs.spec.alpha","name","cljs.spec.alpha/name",205233570).cljs$core$IFn$_invoke$arity$1(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.alpha","name","cljs.spec.alpha/name",205233570).cljs$core$IFn$_invoke$arity$1(cljs.core.meta.call(null,spec)); } else { return null; } } } }); /** * spec-or-k must be a spec, regex or resolvable kw/sym, else returns nil. */ cljs.spec.alpha.maybe_spec = (function cljs$spec$alpha$maybe_spec(spec_or_k){ var s = (function (){var or__7265__auto__ = (function (){var and__7253__auto__ = cljs.core.ident_QMARK_.call(null,spec_or_k); if(and__7253__auto__){ return cljs.spec.alpha.reg_resolve.call(null,spec_or_k); } else { return and__7253__auto__; } })(); if(cljs.core.truth_(or__7265__auto__)){ return or__7265__auto__; } else { var or__7265__auto____$1 = cljs.spec.alpha.spec_QMARK_.call(null,spec_or_k); if(cljs.core.truth_(or__7265__auto____$1)){ return or__7265__auto____$1; } else { var or__7265__auto____$2 = cljs.spec.alpha.regex_QMARK_.call(null,spec_or_k); if(cljs.core.truth_(or__7265__auto____$2)){ return or__7265__auto____$2; } else { return null; } } } })(); if(cljs.core.truth_(cljs.spec.alpha.regex_QMARK_.call(null,s))){ return cljs.spec.alpha.with_name.call(null,cljs.spec.alpha.regex_spec_impl.call(null,s,null),cljs.spec.alpha.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.alpha.the_spec = (function cljs$spec$alpha$the_spec(spec_or_k){ var or__7265__auto__ = cljs.spec.alpha.maybe_spec.call(null,spec_or_k); if(cljs.core.truth_(or__7265__auto__)){ return or__7265__auto__; } else { if(cljs.core.ident_QMARK_.call(null,spec_or_k)){ throw (new Error([cljs.core.str.cljs$core$IFn$_invoke$arity$1("Unable to resolve spec: "),cljs.core.str.cljs$core$IFn$_invoke$arity$1(spec_or_k)].join(''))); } else { return null; } } }); /** * @interface */ cljs.spec.alpha.Specize = function(){}; cljs.spec.alpha.specize_STAR_ = (function cljs$spec$alpha$specize_STAR_(var_args){ var G__10059 = arguments.length; switch (G__10059) { case 1: return cljs.spec.alpha.specize_STAR_.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); break; case 2: return cljs.spec.alpha.specize_STAR_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); break; default: throw (new Error([cljs.core.str.cljs$core$IFn$_invoke$arity$1("Invalid arity: "),cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(''))); } }); cljs.spec.alpha.specize_STAR_.cljs$core$IFn$_invoke$arity$1 = (function (_){ if((!((_ == null))) && (!((_.cljs$spec$alpha$Specize$specize_STAR_$arity$1 == null)))){ return _.cljs$spec$alpha$Specize$specize_STAR_$arity$1(_); } else { var x__7934__auto__ = (((_ == null))?null:_); var m__7935__auto__ = (cljs.spec.alpha.specize_STAR_[goog.typeOf(x__7934__auto__)]); if(!((m__7935__auto__ == null))){ return m__7935__auto__.call(null,_); } else { var m__7935__auto____$1 = (cljs.spec.alpha.specize_STAR_["_"]); if(!((m__7935__auto____$1 == null))){ return m__7935__auto____$1.call(null,_); } else { throw cljs.core.missing_protocol.call(null,"Specize.specize*",_); } } } }); cljs.spec.alpha.specize_STAR_.cljs$core$IFn$_invoke$arity$2 = (function (_,form){ if((!((_ == null))) && (!((_.cljs$spec$alpha$Specize$specize_STAR_$arity$2 == null)))){ return _.cljs$spec$alpha$Specize$specize_STAR_$arity$2(_,form); } else { var x__7934__auto__ = (((_ == null))?null:_); var m__7935__auto__ = (cljs.spec.alpha.specize_STAR_[goog.typeOf(x__7934__auto__)]); if(!((m__7935__auto__ == null))){ return m__7935__auto__.call(null,_,form); } else { var m__7935__auto____$1 = (cljs.spec.alpha.specize_STAR_["_"]); if(!((m__7935__auto____$1 == null))){ return m__7935__auto____$1.call(null,_,form); } else { throw cljs.core.missing_protocol.call(null,"Specize.specize*",_); } } } }); cljs.spec.alpha.specize_STAR_.cljs$lang$maxFixedArity = 2; cljs.core.Keyword.prototype.cljs$spec$alpha$Specize$ = cljs.core.PROTOCOL_SENTINEL; cljs.core.Keyword.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1 = (function (k){ var k__$1 = this; return cljs.spec.alpha.specize_STAR_.call(null,cljs.spec.alpha.reg_resolve_BANG_.call(null,k__$1)); }); cljs.core.Keyword.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2 = (function (k,_){ var k__$1 = this; return cljs.spec.alpha.specize_STAR_.call(null,cljs.spec.alpha.reg_resolve_BANG_.call(null,k__$1)); }); cljs.core.Symbol.prototype.cljs$spec$alpha$Specize$ = cljs.core.PROTOCOL_SENTINEL; cljs.core.Symbol.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$1 = (function (s){ var s__$1 = this; return cljs.spec.alpha.specize_STAR_.call(null,cljs.spec.alpha.reg_resolve_BANG_.call(null,s__$1)); }); cljs.core.Symbol.prototype.cljs$spec$alpha$Specize$specize_STAR_$arity$2 = (function (s,_){ var s__$1 = this; return cljs.spec.alpha.specize_STAR_.call(null,cljs.spec.alpha.reg_resolve_BANG_.call(null,s__$1)); }); (cljs.spec.alpha.Specize["_"] = true); (cljs.spec.alpha.specize_STAR_["_"] = (function() { var G__10061 = null; var G__10061__1 = (function (o){ return cljs.spec.alpha.spec_impl.call(null,new cljs.core.Keyword("cljs.spec.alpha","unknown","cljs.spec.alpha/unknown",651034818),o,null,null); }); var G__10061__2 = (function (o,form){ return cljs.spec.alpha.spec_impl.call(null,form,o,null,null); }); G__10061 = function(o,form){ switch(arguments.length){ case 1: return G__10061__1.call(this,o); case 2: return G__10061__2.call(this,o,form); } throw(new Error('Invalid arity: ' + (arguments.length - 1))); }; G__10061.cljs$core$IFn$_invoke$arity$1 = G__10061__1; G__10061.cljs$core$IFn$_invoke$arity$2 = G__10061__2; return G__10061; })() ); cljs.spec.alpha.specize = (function cljs$spec$alpha$specize(var_args){ var G__10063 = arguments.length; switch (G__10063) { case 1: return cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); break; case 2: return cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); break; default: throw (new Error([cljs.core.str.cljs$core$IFn$_invoke$arity$1("Invalid arity: "),cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(''))); } }); cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$1 = (function (s){ var or__7265__auto__ = cljs.spec.alpha.spec_QMARK_.call(null,s); if(cljs.core.truth_(or__7265__auto__)){ return or__7265__auto__; } else { return cljs.spec.alpha.specize_STAR_.call(null,s); } }); cljs.spec.alpha.specize.cljs$core$IFn$_invoke$arity$2 = (function (s,form){ var or__7265__auto__ = cljs.spec.alpha.spec_QMARK_.call(null,s); if(cljs.core.truth_(or__7265__auto__)){ return or__7265__auto__; } else { return cljs.spec.alpha.specize_STAR_.call(null,s,form); } }); cljs.spec.alpha.specize.cljs$lang$maxFixedArity = 2; /** * tests the validity of a conform return value */ cljs.spec.alpha.invalid_QMARK_ = (function cljs$spec$alpha$invalid_QMARK_(ret){ return cljs.core.keyword_identical_QMARK_.call(null,new cljs.core.Keyword("cljs.spec.alpha","invalid","cljs.spec.alpha/invalid",-1220295119),ret); }); /** * Given a spec and a value, returns :clojure.spec/invalid if value does not match spec, * else the (possibly destructured) value. */ cljs.spec.alpha.conform = (function cljs$spec$alpha$conform(spec,x){ return cljs.spec.alpha.conform_STAR_.call(null,cljs.spec.alpha.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.alpha.unform = (function cljs$spec$alpha$unform(spec,x){ return cljs.spec.alpha.unform_STAR_.call(null,cljs.spec.alpha.specize.call(null,spec),x); }); /** * returns the spec as data */ cljs.spec.alpha.form = (function cljs$spec$alpha$form(spec){ return cljs.spec.alpha.describe_STAR_.call(null,cljs.spec.alpha.specize.call(null,spec)); }); cljs.spec.alpha.abbrev = (function cljs$spec$alpha$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__7253__auto__ = (form__$1 instanceof cljs.core.Symbol); if(and__7253__auto__){ return cljs.core.namespace.call(null,form__$1); } else { return and__7253__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__7253__auto__ = (form instanceof cljs.core.Symbol); if(and__7253__auto__){ return cljs.core.namespace.call(null,form); } else { return and__7253__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.alpha.describe = (function cljs$spec$alpha$describe(spec){ return cljs.spec.alpha.abbrev.call(null,cljs.spec.alpha.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.alpha.with_gen = (function cljs$spec$alpha$with_gen(spec,gen_fn){ var spec__$1 = cljs.spec.alpha.reg_resolve.call(null,spec); if(cljs.core.truth_(cljs.spec.alpha.regex_QMARK_.call(null,spec__$1))){ return cljs.core.assoc.call(null,spec__$1,new cljs.core.Keyword("cljs.spec.alpha","gfn","cljs.spec.alpha/gfn",-593120375),gen_fn); } else { return cljs.spec.alpha.with_gen_STAR_.call(null,cljs.spec.alpha.specize.call(null,spec__$1),gen_fn); } }); cljs.spec.alpha.explain_data_STAR_ = (function cljs$spec$alpha$explain_data_STAR_(spec,path,via,in$,x){ var temp__4657__auto__ = cljs.spec.alpha.explain_STAR_.call(null,cljs.spec.alpha.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, 3, [new cljs.core.Keyword("cljs.spec.alpha","problems","cljs.spec.alpha/problems",447400814),probs,new cljs.core.Keyword("cljs.spec.alpha","spec","cljs.spec.alpha/spec",1947137578),spec,new cljs.core.Keyword("cljs.spec.alpha","value","cljs.spec.alpha/value",1974786274),x], 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.alpha.explain_data = (function cljs$spec$alpha$explain_data(spec,x){ return cljs.spec.alpha.explain_data_STAR_.call(null,spec,cljs.core.PersistentVector.EMPTY,(function (){var temp__4655__auto__ = cljs.spec.alpha.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.alpha.explain_printer = (function cljs$spec$alpha$explain_printer(ed){ if(cljs.core.truth_(ed)){ var problems = cljs.core.sort_by.call(null,(function (p1__10065_SHARP_){ return (- cljs.core.count.call(null,new cljs.core.Keyword(null,"path","path",-188191168).cljs$core$IFn$_invoke$arity$1(p1__10065_SHARP_))); }),new cljs.core.Keyword("cljs.spec.alpha","problems","cljs.spec.alpha/problems",447400814).cljs$core$IFn$_invoke$arity$1(ed)); return cljs.core.print.call(null,(function (){var sb__8271__auto__ = (new goog.string.StringBuffer()); var _STAR_print_newline_STAR_10066_10106 = cljs.core._STAR_print_newline_STAR_; var _STAR_print_fn_STAR_10067_10107 = cljs.core._STAR_print_fn_STAR_; cljs.core._STAR_print_newline_STAR_ = true; cljs.core._STAR_print_fn_STAR_ = ((function (_STAR_print_newline_STAR_10066_10106,_STAR_print_fn_STAR_10067_10107,sb__8271__auto__,problems){ return (function (x__8272__auto__){ return sb__8271__auto__.append(x__8272__auto__); });})(_STAR_print_newline_STAR_10066_10106,_STAR_print_fn_STAR_10067_10107,sb__8271__auto__,problems)) ; try{var seq__10068_10108 = cljs.core.seq.call(null,problems); var chunk__10069_10109 = null; var count__10070_10110 = (0); var i__10071_10111 = (0); while(true){ if((i__10071_10111 < count__10070_10110)){ var map__10072_10112 = cljs.core._nth.call(null,chunk__10069_10109,i__10071_10111); var map__10072_10113__$1 = ((((!((map__10072_10112 == null)))?((((map__10072_10112.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__10072_10112.cljs$core$ISeq$)))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__10072_10112):map__10072_10112); var prob_10114 = map__10072_10113__$1; var path_10115 = cljs.core.get.call(null,map__10072_10113__$1,new cljs.core.Keyword(null,"path","path",-188191168)); var pred_10116 = cljs.core.get.call(null,map__10072_10113__$1,new cljs.core.Keyword(null,"pred","pred",1927423397)); var val_10117 = cljs.core.get.call(null,map__10072_10113__$1,new cljs.core.Keyword(null,"val","val",128701612)); var reason_10118 = cljs.core.get.call(null,map__10072_10113__$1,new cljs.core.Keyword(null,"reason","reason",-2070751759)); var via_10119 = cljs.core.get.call(null,map__10072_10113__$1,new cljs.core.Keyword(null,"via","via",-1904457336)); var in_10120 = cljs.core.get.call(null,map__10072_10113__$1,new cljs.core.Keyword(null,"in","in",-1531184865)); if(cljs.core.empty_QMARK_.call(null,in_10120)){ } else { cljs.core.print.call(null,"In:",cljs.core.pr_str.call(null,in_10120),""); } cljs.core.print.call(null,"val: "); cljs.core.pr.call(null,val_10117); cljs.core.print.call(null," fails"); if(cljs.core.empty_QMARK_.call(null,via_10119)){ } else { cljs.core.print.call(null," spec:",cljs.core.pr_str.call(null,cljs.core.last.call(null,via_10119))); } if(cljs.core.empty_QMARK_.call(null,path_10115)){ } else { cljs.core.print.call(null," at:",cljs.core.pr_str.call(null,path_10115)); } cljs.core.print.call(null," predicate: "); cljs.core.pr.call(null,cljs.spec.alpha.abbrev.call(null,pred_10116)); if(cljs.core.truth_(reason_10118)){ cljs.core.print.call(null,", ",reason_10118); } else { } var seq__10074_10121 = cljs.core.seq.call(null,prob_10114); var chunk__10075_10122 = null; var count__10076_10123 = (0); var i__10077_10124 = (0); while(true){ if((i__10077_10124 < count__10076_10123)){ var vec__10078_10125 = cljs.core._nth.call(null,chunk__10075_10122,i__10077_10124); var k_10126 = cljs.core.nth.call(null,vec__10078_10125,(0),null); var v_10127 = cljs.core.nth.call(null,vec__10078_10125,(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_10126))){ } else { cljs.core.print.call(null,"\n\t",cljs.core.pr_str.call(null,k_10126)," "); cljs.core.pr.call(null,v_10127); } var G__10128 = seq__10074_10121; var G__10129 = chunk__10075_10122; var G__10130 = count__10076_10123; var G__10131 = (i__10077_10124 + (1)); seq__10074_10121 = G__10128; chunk__10075_10122 = G__10129; count__10076_10123 = G__10130; i__10077_10124 = G__10131; continue; } else { var temp__4657__auto___10132 = cljs.core.seq.call(null,seq__10074_10121); if(temp__4657__auto___10132){ var seq__10074_10133__$1 = temp__4657__auto___10132; if(cljs.core.chunked_seq_QMARK_.call(null,seq__10074_10133__$1)){ var c__8085__auto___10134 = cljs.core.chunk_first.call(null,seq__10074_10133__$1); var G__10135 = cljs.core.chunk_rest.call(null,seq__10074_10133__$1); var G__10136 = c__8085__auto___10134; var G__10137 = cljs.core.count.call(null,c__8085__auto___10134); var G__10138 = (0); seq__10074_10121 = G__10135; chunk__10075_10122 = G__10136; count__10076_10123 = G__10137; i__10077_10124 = G__10138; continue; } else { var vec__10081_10139 = cljs.core.first.call(null,seq__10074_10133__$1); var k_10140 = cljs.core.nth.call(null,vec__10081_10139,(0),null); var v_10141 = cljs.core.nth.call(null,vec__10081_10139,(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_10140))){ } else { cljs.core.print.call(null,"\n\t",cljs.core.pr_str.call(null,k_10140)," "); cljs.core.pr.call(null,v_10141); } var G__10142 = cljs.core.next.call(null,seq__10074_10133__$1); var G__10143 = null; var G__10144 = (0); var G__10145 = (0); seq__10074_10121 = G__10142; chunk__10075_10122 = G__10143; count__10076_10123 = G__10144; i__10077_10124 = G__10145; continue; } } else { } } break; } cljs.core.newline.call(null); var G__10146 = seq__10068_10108; var G__10147 = chunk__10069_10109; var G__10148 = count__10070_10110; var G__10149 = (i__10071_10111 + (1)); seq__10068_10108 = G__10146; chunk__10069_10109 = G__10147; count__10070_10110 = G__10148; i__10071_10111 = G__10149; continue; } else { var temp__4657__auto___10150 = cljs.core.seq.call(null,seq__10068_10108); if(temp__4657__auto___10150){ var seq__10068_10151__$1 = temp__4657__auto___10150; if(cljs.core.chunked_seq_QMARK_.call(null,seq__10068_10151__$1)){ var c__8085__auto___10152 = cljs.core.chunk_first.call(null,seq__10068_10151__$1); var G__10153 = cljs.core.chunk_rest.call(null,seq__10068_10151__$1); var G__10154 = c__8085__auto___10152; var G__10155 = cljs.core.count.call(null,c__8085__auto___10152); var G__10156 = (0); seq__10068_10108 = G__10153; chunk__10069_10109 = G__10154; count__10070_10110 = G__10155; i__10071_10111 = G__10156; continue; } else { var map__10084_10157 = cljs.core.first.call(null,seq__10068_10151__$1); var map__10084_10158__$1 = ((((!((map__10084_10157 == null)))?((((map__10084_10157.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__10084_10157.cljs$core$ISeq$)))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__10084_10157):map__10084_10157); var prob_10159 = map__10084_10158__$1; var path_10160 = cljs.core.get.call(null,map__10084_10158__$1,new cljs.core.Keyword(null,"path","path",-188191168)); var pred_10161 = cljs.core.get.call(null,map__10084_10158__$1,new cljs.core.Keyword(null,"pred","pred",1927423397)); var val_10162 = cljs.core.get.call(null,map__10084_10158__$1,new cljs.core.Keyword(null,"val","val",128701612)); var reason_10163 = cljs.core.get.call(null,map__10084_10158__$1,new cljs.core.Keyword(null,"reason","reason",-2070751759)); var via_10164 = cljs.core.get.call(null,map__10084_10158__$1,new cljs.core.Keyword(null,"via","via",-1904457336)); var in_10165 = cljs.core.get.call(null,map__10084_10158__$1,new cljs.core.Keyword(null,"in","in",-1531184865)); if(cljs.core.empty_QMARK_.call(null,in_10165)){ } else { cljs.core.print.call(null,"In:",cljs.core.pr_str.call(null,in_10165),""); } cljs.core.print.call(null,"val: "); cljs.core.pr.call(null,val_10162); cljs.core.print.call(null," fails"); if(cljs.core.empty_QMARK_.call(null,via_10164)){ } else { cljs.core.print.call(null," spec:",cljs.core.pr_str.call(null,cljs.core.last.call(null,via_10164))); } if(cljs.core.empty_QMARK_.call(null,path_10160)){ } else { cljs.core.print.call(null," at:",cljs.core.pr_str.call(null,path_10160)); } cljs.core.print.call(null," predicate: "); cljs.core.pr.call(null,cljs.spec.alpha.abbrev.call(null,pred_10161)); if(cljs.core.truth_(reason_10163)){ cljs.core.print.call(null,", ",reason_10163); } else { } var seq__10086_10166 = cljs.core.seq.call(null,prob_10159); var chunk__10087_10167 = null; var count__10088_10168 = (0); var i__10089_10169 = (0); while(true){ if((i__10089_10169 < count__10088_10168)){ var vec__10090_10170 = cljs.core._nth.call(null,chunk__10087_10167,i__10089_10169); var k_10171 = cljs.core.nth.call(null,vec__10090_10170,(0),null); var v_10172 = cljs.core.nth.call(null,vec__10090_10170,(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_10171))){ } else { cljs.core.print.call(null,"\n\t",cljs.core.pr_str.call(null,k_10171)," "); cljs.core.pr.call(null,v_10172); } var G__10173 = seq__10086_10166; var G__10174 = chunk__10087_10167; var G__10175 = count__10088_10168; var G__10176 = (i__10089_10169 + (1)); seq__10086_10166 = G__10173; chunk__10087_10167 = G__10174; count__10088_10168 = G__10175; i__10089_10169 = G__10176; continue; } else { var temp__4657__auto___10177__$1 = cljs.core.seq.call(null,seq__10086_10166); if(temp__4657__auto___10177__$1){ var seq__10086_10178__$1 = temp__4657__auto___10177__$1; if(cljs.core.chunked_seq_QMARK_.call(null,seq__10086_10178__$1)){ var c__8085__auto___10179 = cljs.core.chunk_first.call(null,seq__10086_10178__$1); var G__10180 = cljs.core.chunk_rest.call(null,seq__10086_10178__$1); var G__10181 = c__8085__auto___10179; var G__10182 = cljs.core.count.call(null,c__8085__auto___10179); var G__10183 = (0); seq__10086_10166 = G__10180; chunk__10087_10167 = G__10181; count__10088_10168 = G__10182; i__10089_10169 = G__10183; continue; } else { var vec__10093_10184 = cljs.core.first.call(null,seq__10086_10178__$1); var k_10185 = cljs.core.nth.call(null,vec__10093_10184,(0),null); var v_10186 = cljs.core.nth.call(null,vec__10093_10184,(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_10185))){ } else { cljs.core.print.call(null,"\n\t",cljs.core.pr_str.call(null,k_10185)," "); cljs.core.pr.call(null,v_10186); } var G__10187 = cljs.core.next.call(null,seq__10086_10178__$1); var G__10188 = null; var G__10189 = (0); var G__10190 = (0); seq__10086_10166 = G__10187; chunk__10087_10167 = G__10188; count__10088_10168 = G__10189; i__10089_10169 = G__10190; continue; } } else { } } break; } cljs.core.newline.call(null); var G__10191 = cljs.core.next.call(null,seq__10068_10151__$1); var G__10192 = null; var G__10193 = (0); var G__10194 = (0); seq__10068_10108 = G__10191; chunk__10069_10109 = G__10192; count__10070_10110 = G__10193; i__10071_10111 = G__10194; continue; } } else { } } break; } var seq__10096_10195 = cljs.core.seq.call(null,ed); var chunk__10097_10196 = null; var count__10098_10197 = (0); var i__10099_10198 = (0); while(true){ if((i__10099_10198 < count__10098_10197)){ var vec__10100_10199 = cljs.core._nth.call(null,chunk__10097_10196,i__10099_10198); var k_10200 = cljs.core.nth.call(null,vec__10100_10199,(0),null); var v_10201 = cljs.core.nth.call(null,vec__10100_10199,(1),null); if(cljs.core.truth_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("cljs.spec.alpha","problems","cljs.spec.alpha/problems",447400814),null], null), null).call(null,k_10200))){ } else { cljs.core.print.call(null,cljs.core.pr_str.call(null,k_10200)," "); cljs.core.pr.call(null,v_10201); cljs.core.newline.call(null); } var G__10202 = seq__10096_10195; var G__10203 = chunk__10097_10196; var G__10204 = count__10098_10197; var G__10205 = (i__10099_10198 + (1)); seq__10096_10195 = G__10202; chunk__10097_10196 = G__10203; count__10098_10197 = G__10204; i__10099_10198 = G__10205; continue; } else { var temp__4657__auto___10206 = cljs.core.seq.call(null,seq__10096_10195); if(temp__4657__auto___10206){ var seq__10096_10207__$1 = temp__4657__auto___10206; if(cljs.core.chunked_seq_QMARK_.call(null,seq__10096_10207__$1)){ var c__8085__auto___10208 = cljs.core.chunk_first.call(null,seq__10096_10207__$1); var G__10209 = cljs.core.chunk_rest.call(null,seq__10096_10207__$1); var G__10210 = c__8085__auto___10208; var G__10211 = cljs.core.count.call(null,c__8085__auto___10208); var G__10212 = (0); seq__10096_10195 = G__10209; chunk__10097_10196 = G__10210; count__10098_10197 = G__10211; i__10099_10198 = G__10212; continue; } else { var vec__10103_10213 = cljs.core.first.call(null,seq__10096_10207__$1); var k_10214 = cljs.core.nth.call(null,vec__10103_10213,(0),null); var v_10215 = cljs.core.nth.call(null,vec__10103_10213,(1),null); if(cljs.core.truth_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("cljs.spec.alpha","problems","cljs.spec.alpha/problems",447400814),null], null), null).call(null,k_10214))){ } else { cljs.core.print.call(null,cljs.core.pr_str.call(null,k_10214)," "); cljs.core.pr.call(null,v_10215); cljs.core.newline.call(null); } var G__10216 = cljs.core.next.call(null,seq__10096_10207__$1); var G__10217 = null; var G__10218 = (0); var G__10219 = (0); seq__10096_10195 = G__10216; chunk__10097_10196 = G__10217; count__10098_10197 = G__10218; i__10099_10198 = G__10219; continue; } } else { } } break; } }finally {cljs.core._STAR_print_fn_STAR_ = _STAR_print_fn_STAR_10067_10107; cljs.core._STAR_print_newline_STAR_ = _STAR_print_newline_STAR_10066_10106; } return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb__8271__auto__)].join(''); })()); } else { return cljs.core.println.call(null,"Success!"); } }); cljs.spec.alpha._STAR_explain_out_STAR_ = cljs.spec.alpha.explain_printer; /** * Prints explanation data (per 'explain-data') to *out* using the printer in *explain-out*, * by default explain-printer. */ cljs.spec.alpha.explain_out = (function cljs$spec$alpha$explain_out(ed){ return cljs.spec.alpha._STAR_explain_out_STAR_.call(null,ed); }); /** * Given a spec and a value that fails to conform, prints an explanation to *out*. */ cljs.spec.alpha.explain = (function cljs$spec$alpha$explain(spec,x){ return cljs.spec.alpha.explain_out.call(null,cljs.spec.alpha.explain_data.call(null,spec,x)); }); /** * Given a spec and a value that fails to conform, returns an explanation as a string. */ cljs.spec.alpha.explain_str = (function cljs$spec$alpha$explain_str(spec,x){ var sb__8271__auto__ = (new goog.string.StringBuffer()); var _STAR_print_newline_STAR_10220_10222 = cljs.core._STAR_print_newline_STAR_; var _STAR_print_fn_STAR_10221_10223 = cljs.core._STAR_print_fn_STAR_; cljs.core._STAR_print_newline_STAR_ = true; cljs.core._STAR_print_fn_STAR_ = ((function (_STAR_print_newline_STAR_10220_10222,_STAR_print_fn_STAR_10221_10223,sb__8271__auto__){ return (function (x__8272__auto__){ return sb__8271__auto__.append(x__8272__auto__); });})(_STAR_print_newline_STAR_10220_10222,_STAR_print_fn_STAR_10221_10223,sb__8271__auto__)) ; try{cljs.spec.alpha.explain.call(null,spec,x); }finally {cljs.core._STAR_print_fn_STAR_ = _STAR_print_fn_STAR_10221_10223; cljs.core._STAR_print_newline_STAR_ = _STAR_print_newline_STAR_10220_10222; } return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb__8271__auto__)].join(''); }); cljs.spec.alpha.gensub = (function cljs$spec$alpha$gensub(spec,overrides,path,rmap,form){ var spec__$1 = cljs.spec.alpha.specize.call(null,spec); var temp__4655__auto__ = (function (){var or__7265__auto__ = (function (){var temp__4657__auto__ = (function (){var or__7265__auto__ = cljs.core.get.call(null,overrides,(function (){var or__7265__auto__ = cljs.spec.alpha.spec_name.call(null,spec__$1); if(cljs.core.truth_(or__7265__auto__)){ return or__7265__auto__; } else { return spec__$1; } })()); if(cljs.core.truth_(or__7265__auto__)){ return or__7265__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__7265__auto__)){ return or__7265__auto__; } else { return cljs.spec.alpha.gen_STAR_.call(null,spec__$1,overrides,path,rmap); } })(); if(cljs.core.truth_(temp__4655__auto__)){ var g = temp__4655__auto__; return cljs.spec.gen.alpha.such_that.call(null,((function (g,temp__4655__auto__,spec__$1){ return (function (p1__10224_SHARP_){ return cljs.spec.alpha.valid_QMARK_.call(null,spec__$1,p1__10224_SHARP_); });})(g,temp__4655__auto__,spec__$1)) ,g,(100)); } else { throw (new Error([cljs.core.str.cljs$core$IFn$_invoke$arity$1("Unable to construct gen at: "),cljs.core.str.cljs$core$IFn$_invoke$arity$1(path),cljs.core.str.cljs$core$IFn$_invoke$arity$1(" for: "),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.spec.alpha.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.alpha.gen = (function cljs$spec$alpha$gen(var_args){ var G__10226 = arguments.length; switch (G__10226) { case 1: return cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); break; case 2: return cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); break; default: throw (new Error([cljs.core.str.cljs$core$IFn$_invoke$arity$1("Invalid arity: "),cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(''))); } }); cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$1 = (function (spec){ return cljs.spec.alpha.gen.call(null,spec,null); }); cljs.spec.alpha.gen.cljs$core$IFn$_invoke$arity$2 = (function (spec,overrides){ return cljs.spec.alpha.gensub.call(null,spec,overrides,cljs.core.PersistentVector.EMPTY,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword("cljs.spec.alpha","recursion-limit","cljs.spec.alpha/recursion-limit",601284994),cljs.spec.alpha._STAR_recursion_limit_STAR_], null),spec); }); cljs.spec.alpha.gen.cljs$lang$maxFixedArity = 2; /** * Do not call this directly, use 'def' */ cljs.spec.alpha.def_impl = (function cljs$spec$alpha$def_impl(k,form,spec){ if(cljs.core.truth_((function (){var and__7253__auto__ = cljs.core.ident_QMARK_.call(null,k); if(and__7253__auto__){ return cljs.core.namespace.call(null,k); } else { return and__7253__auto__; } })())){ } else { throw (new Error([cljs.core.str.cljs$core$IFn$_invoke$arity$1("Assert failed: "),cljs.core.str.cljs$core$IFn$_invoke$arity$1("k must be namespaced keyword or resolveable symbol"),cljs.core.str.cljs$core$IFn$_invoke$arity$1("\n"),cljs.core.str.cljs$core$IFn$_invoke$arity$1("(c/and (ident? k) (namespace k))")].join(''))); } var spec__$1 = (cljs.core.truth_((function (){var or__7265__auto__ = cljs.spec.alpha.spec_QMARK_.call(null,spec); if(cljs.core.truth_(or__7265__auto__)){ return or__7265__auto__; } else { var or__7265__auto____$1 = cljs.spec.alpha.regex_QMARK_.call(null,spec); if(cljs.core.truth_(or__7265__auto____$1)){ return or__7265__auto____$1; } else { return cljs.core.get.call(null,cljs.core.deref.call(null,cljs.spec.alpha.registry_ref),spec); } } })())?spec:cljs.spec.alpha.spec_impl.call(null,form,spec,null,null)); cljs.core.swap_BANG_.call(null,cljs.spec.alpha.registry_ref,cljs.core.assoc,k,cljs.spec.alpha.with_name.call(null,spec__$1,k)); return k; }); /** * returns the registry map, prefer 'get-spec' to lookup a spec by name */ cljs.spec.alpha.registry = (function cljs$spec$alpha$registry(){ return cljs.core.deref.call(null,cljs.spec.alpha.registry_ref); }); /** * Returns a symbol from a symbol or var */ cljs.spec.alpha.__GT_sym = (function cljs$spec$alpha$__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.alpha.get_spec = (function cljs$spec$alpha$get_spec(k){ return cljs.core.get.call(null,cljs.spec.alpha.registry.call(null),(((k instanceof cljs.core.Keyword))?k:cljs.spec.alpha.__GT_sym.call(null,k))); }); cljs.spec.alpha.macroexpand_check = (function cljs$spec$alpha$macroexpand_check(v,args){ var specs = cljs.spec.alpha.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.truth_(cljs.spec.alpha.invalid_QMARK_.call(null,cljs.spec.alpha.conform.call(null,arg_spec,args)))){ var ed = cljs.core.assoc.call(null,cljs.spec.alpha.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.alpha.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.alpha","args","cljs.spec.alpha/args",1870769783),args); throw (new Error([cljs.core.str.cljs$core$IFn$_invoke$arity$1("Call to "),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.spec.alpha.__GT_sym.call(null,v)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(" did not conform to spec:\n"),cljs.core.str.cljs$core$IFn$_invoke$arity$1((function (){var sb__8271__auto__ = (new goog.string.StringBuffer()); var _STAR_print_newline_STAR_10228_10230 = cljs.core._STAR_print_newline_STAR_; var _STAR_print_fn_STAR_10229_10231 = cljs.core._STAR_print_fn_STAR_; cljs.core._STAR_print_newline_STAR_ = true; cljs.core._STAR_print_fn_STAR_ = ((function (_STAR_print_newline_STAR_10228_10230,_STAR_print_fn_STAR_10229_10231,sb__8271__auto__,ed,arg_spec,temp__4657__auto__,specs){ return (function (x__8272__auto__){ return sb__8271__auto__.append(x__8272__auto__); });})(_STAR_print_newline_STAR_10228_10230,_STAR_print_fn_STAR_10229_10231,sb__8271__auto__,ed,arg_spec,temp__4657__auto__,specs)) ; try{cljs.spec.alpha.explain_out.call(null,ed); }finally {cljs.core._STAR_print_fn_STAR_ = _STAR_print_fn_STAR_10229_10231; cljs.core._STAR_print_newline_STAR_ = _STAR_print_newline_STAR_10228_10230; } return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(sb__8271__auto__)].join(''); })())].join(''))); } else { return null; } } else { return null; } }); cljs.spec.alpha.recur_limit_QMARK_ = (function cljs$spec$alpha$recur_limit_QMARK_(rmap,id,path,k){ return ((cljs.core.get.call(null,rmap,id) > new cljs.core.Keyword("cljs.spec.alpha","recursion-limit","cljs.spec.alpha/recursion-limit",601284994).cljs$core$IFn$_invoke$arity$1(rmap))) && (cljs.core.contains_QMARK_.call(null,cljs.core.set.call(null,path),k)); }); cljs.spec.alpha.inck = (function cljs$spec$alpha$inck(m,k){ return cljs.core.assoc.call(null,m,k,((function (){var or__7265__auto__ = cljs.core.get.call(null,m,k); if(cljs.core.truth_(or__7265__auto__)){ return or__7265__auto__; } else { return (0); } })() + (1))); }); cljs.spec.alpha.dt = (function cljs$spec$alpha$dt(var_args){ var G__10233 = arguments.length; switch (G__10233) { case 3: return cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); break; case 4: return cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)])); break; default: throw (new Error([cljs.core.str.cljs$core$IFn$_invoke$arity$1("Invalid arity: "),cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(''))); } }); cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$3 = (function (pred,x,form){ return cljs.spec.alpha.dt.call(null,pred,x,form,null); }); cljs.spec.alpha.dt.cljs$core$IFn$_invoke$arity$4 = (function (pred,x,form,cpred_QMARK_){ if(cljs.core.truth_(pred)){ var temp__4655__auto__ = cljs.spec.alpha.the_spec.call(null,pred); if(cljs.core.truth_(temp__4655__auto__)){ var spec = temp__4655__auto__; return cljs.spec.alpha.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.alpha","invalid","cljs.spec.alpha/invalid",-1220295119); } } } else { throw (new Error([cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.pr_str.call(null,form)),cljs.core.str.cljs$core$IFn$_invoke$arity$1(" is not a fn, expected predicate fn")].join(''))); } } } else { return x; } }); cljs.spec.alpha.dt.cljs$lang$maxFixedArity = 4; /** * Helper function that returns true when x is valid for spec. */ cljs.spec.alpha.valid_QMARK_ = (function cljs$spec$alpha$valid_QMARK_(var_args){ var G__10236 = arguments.length; switch (G__10236) { case 2: return cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); break; case 3: return cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); break; default: throw (new Error([cljs.core.str.cljs$core$IFn$_invoke$arity$1("Invalid arity: "),cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(''))); } }); cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$2 = (function (spec,x){ var spec__$1 = cljs.spec.alpha.specize.call(null,spec); return cljs.core.not.call(null,cljs.spec.alpha.invalid_QMARK_.call(null,cljs.spec.alpha.conform_STAR_.call(null,spec__$1,x))); }); cljs.spec.alpha.valid_QMARK_.cljs$core$IFn$_invoke$arity$3 = (function (spec,x,form){ var spec__$1 = cljs.spec.alpha.specize.call(null,spec,form); return cljs.core.not.call(null,cljs.spec.alpha.invalid_QMARK_.call(null,cljs.spec.alpha.conform_STAR_.call(null,spec__$1,x))); }); cljs.spec.alpha.valid_QMARK_.cljs$lang$maxFixedArity = 3; /** * internal helper function that returns true when x is valid for spec. */ cljs.spec.alpha.pvalid_QMARK_ = (function cljs$spec$alpha$pvalid_QMARK_(var_args){ var G__10239 = arguments.length; switch (G__10239) { case 2: return cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); break; case 3: return cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); break; default: throw (new Error([cljs.core.str.cljs$core$IFn$_invoke$arity$1("Invalid arity: "),cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(''))); } }); cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$2 = (function (pred,x){ return cljs.core.not.call(null,cljs.spec.alpha.invalid_QMARK_.call(null,cljs.spec.alpha.dt.call(null,pred,x,new cljs.core.Keyword("cljs.spec.alpha","unknown","cljs.spec.alpha/unknown",651034818)))); }); cljs.spec.alpha.pvalid_QMARK_.cljs$core$IFn$_invoke$arity$3 = (function (pred,x,form){ return cljs.core.not.call(null,cljs.spec.alpha.invalid_QMARK_.call(null,cljs.spec.alpha.dt.call(null,pred,x,form))); }); cljs.spec.alpha.pvalid_QMARK_.cljs$lang$maxFixedArity = 3; cljs.spec.alpha.explain_1 = (function cljs$spec$alpha$explain_1(form,pred,path,via,in$,v){ var pred__$1 = cljs.spec.alpha.maybe_spec.call(null,pred); if(cljs.core.truth_(cljs.spec.alpha.spec_QMARK_.call(null,pred__$1))){ return cljs.spec.alpha.explain_STAR_.call(null,pred__$1,path,(function (){var temp__4655__auto__ = cljs.spec.alpha.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",-188191