UNPKG

create-expo-cljs-app

Version:

Create a react native application with Expo and Shadow-CLJS!

1 lines 101 kB
["^ ","~:output",["^ ","~:js","goog.provide('shadow.cljs.devtools.client.env');\nif((typeof shadow !== 'undefined') && (typeof shadow.cljs !== 'undefined') && (typeof shadow.cljs.devtools !== 'undefined') && (typeof shadow.cljs.devtools.client !== 'undefined') && (typeof shadow.cljs.devtools.client.env !== 'undefined') && (typeof shadow.cljs.devtools.client.env.active_modules_ref !== 'undefined')){\n} else {\nshadow.cljs.devtools.client.env.active_modules_ref = cljs.core.volatile_BANG_(cljs.core.PersistentHashSet.EMPTY);\n}\nshadow.cljs.devtools.client.env.module_loaded = (function shadow$cljs$devtools$client$env$module_loaded(name){\nreturn shadow.cljs.devtools.client.env.active_modules_ref.cljs$core$IVolatile$_vreset_BANG_$arity$2(null,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(shadow.cljs.devtools.client.env.active_modules_ref.cljs$core$IDeref$_deref$arity$1(null),cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(name)));\n});\nshadow.cljs.devtools.client.env.module_is_active_QMARK_ = (function shadow$cljs$devtools$client$env$module_is_active_QMARK_(module){\nreturn cljs.core.contains_QMARK_(cljs.core.deref(shadow.cljs.devtools.client.env.active_modules_ref),module);\n});\nif((typeof shadow !== 'undefined') && (typeof shadow.cljs !== 'undefined') && (typeof shadow.cljs.devtools !== 'undefined') && (typeof shadow.cljs.devtools.client !== 'undefined') && (typeof shadow.cljs.devtools.client.env !== 'undefined') && (typeof shadow.cljs.devtools.client.env.runtime_id !== 'undefined')){\n} else {\nshadow.cljs.devtools.client.env.runtime_id = cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid());\n}\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.env.enabled = goog.define(\"shadow.cljs.devtools.client.env.enabled\",false);\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.env.autoload = goog.define(\"shadow.cljs.devtools.client.env.autoload\",true);\n/**\n * @define {string}\n */\nshadow.cljs.devtools.client.env.module_format = goog.define(\"shadow.cljs.devtools.client.env.module_format\",\"goog\");\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.env.reload_with_state = goog.define(\"shadow.cljs.devtools.client.env.reload_with_state\",false);\n/**\n * @define {string}\n */\nshadow.cljs.devtools.client.env.build_id = goog.define(\"shadow.cljs.devtools.client.env.build_id\",\"\");\n/**\n * @define {string}\n */\nshadow.cljs.devtools.client.env.proc_id = goog.define(\"shadow.cljs.devtools.client.env.proc_id\",\"\");\n/**\n * @define {number}\n */\nshadow.cljs.devtools.client.env.worker_client_id = goog.define(\"shadow.cljs.devtools.client.env.worker_client_id\",(0));\n/**\n * @define {string}\n */\nshadow.cljs.devtools.client.env.server_host = goog.define(\"shadow.cljs.devtools.client.env.server_host\",\"\");\n/**\n * @define {number}\n */\nshadow.cljs.devtools.client.env.server_port = goog.define(\"shadow.cljs.devtools.client.env.server_port\",(8200));\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.env.repl_pprint = goog.define(\"shadow.cljs.devtools.client.env.repl_pprint\",false);\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.env.use_document_host = goog.define(\"shadow.cljs.devtools.client.env.use_document_host\",true);\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.env.use_document_protocol = goog.define(\"shadow.cljs.devtools.client.env.use_document_protocol\",false);\n/**\n * @define {string}\n */\nshadow.cljs.devtools.client.env.devtools_url = goog.define(\"shadow.cljs.devtools.client.env.devtools_url\",\"\");\n/**\n * @define {string}\n */\nshadow.cljs.devtools.client.env.reload_strategy = goog.define(\"shadow.cljs.devtools.client.env.reload_strategy\",\"optimized\");\n/**\n * @define {string}\n */\nshadow.cljs.devtools.client.env.server_token = goog.define(\"shadow.cljs.devtools.client.env.server_token\",\"missing\");\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.env.ssl = goog.define(\"shadow.cljs.devtools.client.env.ssl\",false);\n/**\n * @define {boolean}\n */\nshadow.cljs.devtools.client.env.ignore_warnings = goog.define(\"shadow.cljs.devtools.client.env.ignore_warnings\",false);\n/**\n * @define {string}\n */\nshadow.cljs.devtools.client.env.log_style = goog.define(\"shadow.cljs.devtools.client.env.log_style\",\"font-weight: bold;\");\n/**\n * @define {string}\n */\nshadow.cljs.devtools.client.env.custom_notify_fn = goog.define(\"shadow.cljs.devtools.client.env.custom_notify_fn\",\"\");\nshadow.cljs.devtools.client.env.devtools_info = (function shadow$cljs$devtools$client$env$devtools_info(){\nreturn ({\"server_port\": shadow.cljs.devtools.client.env.server_port, \"server_host\": shadow.cljs.devtools.client.env.server_host, \"build_id\": shadow.cljs.devtools.client.env.build_id, \"proc_id\": shadow.cljs.devtools.client.env.proc_id, \"runtime_id\": shadow.cljs.devtools.client.env.runtime_id, \"ssl\": shadow.cljs.devtools.client.env.ssl});\n});\nshadow.cljs.devtools.client.env.get_server_protocol = (function shadow$cljs$devtools$client$env$get_server_protocol(){\nif(cljs.core.truth_(((shadow.cljs.devtools.client.env.use_document_protocol)?(function (){var and__4115__auto__ = goog.global.location;\nif(cljs.core.truth_(and__4115__auto__)){\nreturn cljs.core.seq(goog.global.location.protocol);\n} else {\nreturn and__4115__auto__;\n}\n})():false))){\nreturn clojure.string.replace(goog.global.location.protocol,\":\",\"\");\n} else {\nreturn [\"http\",((shadow.cljs.devtools.client.env.ssl)?\"s\":null)].join('');\n}\n});\nshadow.cljs.devtools.client.env.get_server_host = (function shadow$cljs$devtools$client$env$get_server_host(){\nif(cljs.core.truth_(((shadow.cljs.devtools.client.env.use_document_host)?(function (){var and__4115__auto__ = goog.global.location;\nif(cljs.core.truth_(and__4115__auto__)){\nreturn cljs.core.seq(goog.global.location.hostname);\n} else {\nreturn and__4115__auto__;\n}\n})():false))){\nreturn goog.global.location.hostname;\n} else {\nif(cljs.core.seq(shadow.cljs.devtools.client.env.server_host)){\nreturn shadow.cljs.devtools.client.env.server_host;\n} else {\nreturn \"localhost\";\n\n}\n}\n});\nshadow.cljs.devtools.client.env.get_url_base = (function shadow$cljs$devtools$client$env$get_url_base(){\nif(cljs.core.seq(shadow.cljs.devtools.client.env.devtools_url)){\nreturn shadow.cljs.devtools.client.env.devtools_url;\n} else {\nreturn [shadow.cljs.devtools.client.env.get_server_protocol(),\"://\",cljs.core.str.cljs$core$IFn$_invoke$arity$1(shadow.cljs.devtools.client.env.get_server_host()),\":\",cljs.core.str.cljs$core$IFn$_invoke$arity$1(shadow.cljs.devtools.client.env.server_port)].join('');\n}\n});\nshadow.cljs.devtools.client.env.get_ws_url_base = (function shadow$cljs$devtools$client$env$get_ws_url_base(){\nreturn clojure.string.replace(shadow.cljs.devtools.client.env.get_url_base(),/^http/,\"ws\");\n});\nshadow.cljs.devtools.client.env.get_ws_relay_url = (function shadow$cljs$devtools$client$env$get_ws_relay_url(){\nreturn [shadow.cljs.devtools.client.env.get_ws_url_base(),\"/api/remote-relay?server-token=\",shadow.cljs.devtools.client.env.server_token].join('');\n});\nif((typeof shadow !== 'undefined') && (typeof shadow.cljs !== 'undefined') && (typeof shadow.cljs.devtools !== 'undefined') && (typeof shadow.cljs.devtools.client !== 'undefined') && (typeof shadow.cljs.devtools.client.env !== 'undefined') && (typeof shadow.cljs.devtools.client.env.reset_print_fn_ref !== 'undefined')){\n} else {\nshadow.cljs.devtools.client.env.reset_print_fn_ref = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null);\n}\nif((typeof shadow !== 'undefined') && (typeof shadow.cljs !== 'undefined') && (typeof shadow.cljs.devtools !== 'undefined') && (typeof shadow.cljs.devtools.client !== 'undefined') && (typeof shadow.cljs.devtools.client.env !== 'undefined') && (typeof shadow.cljs.devtools.client.env.was_print_newline !== 'undefined')){\n} else {\nshadow.cljs.devtools.client.env.was_print_newline = cljs.core._STAR_print_newline_STAR_;\n}\nshadow.cljs.devtools.client.env.set_print_fns_BANG_ = (function shadow$cljs$devtools$client$env$set_print_fns_BANG_(msg_fn){\nvar original_print_fn = cljs.core._STAR_print_fn_STAR_;\nvar original_print_err_fn = cljs.core._STAR_print_err_fn_STAR_;\n(cljs.core._STAR_print_newline_STAR_ = true);\n\n(cljs.core.enable_console_print_BANG_ = (function (){\nreturn null;\n}));\n\ncljs.core.reset_BANG_(shadow.cljs.devtools.client.env.reset_print_fn_ref,(function shadow$cljs$devtools$client$env$set_print_fns_BANG__$_reset_print_fns_BANG_(){\n(cljs.core._STAR_print_newline_STAR_ = shadow.cljs.devtools.client.env.was_print_newline);\n\ncljs.core.set_print_fn_BANG_(original_print_fn);\n\nreturn cljs.core.set_print_err_fn_BANG_(original_print_err_fn);\n}));\n\ncljs.core.set_print_fn_BANG_((function shadow$cljs$devtools$client$env$set_print_fns_BANG__$_repl_print_fn(s){\n(msg_fn.cljs$core$IFn$_invoke$arity$2 ? msg_fn.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"stdout\",\"stdout\",-531490018),s) : msg_fn.call(null,new cljs.core.Keyword(null,\"stdout\",\"stdout\",-531490018),s));\n\nif(cljs.core.truth_((function (){var and__4115__auto__ = original_print_fn;\nif(cljs.core.truth_(and__4115__auto__)){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(s,\"\\n\");\n} else {\nreturn and__4115__auto__;\n}\n})())){\nreturn (original_print_fn.cljs$core$IFn$_invoke$arity$1 ? original_print_fn.cljs$core$IFn$_invoke$arity$1(s) : original_print_fn.call(null,s));\n} else {\nreturn null;\n}\n}));\n\nreturn cljs.core.set_print_err_fn_BANG_((function shadow$cljs$devtools$client$env$set_print_fns_BANG__$_repl_print_err_fn(s){\n(msg_fn.cljs$core$IFn$_invoke$arity$2 ? msg_fn.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"stderr\",\"stderr\",-1571650309),s) : msg_fn.call(null,new cljs.core.Keyword(null,\"stderr\",\"stderr\",-1571650309),s));\n\nif(cljs.core.truth_((function (){var and__4115__auto__ = original_print_err_fn;\nif(cljs.core.truth_(and__4115__auto__)){\nreturn cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(s,\"\\n\");\n} else {\nreturn and__4115__auto__;\n}\n})())){\nreturn (original_print_err_fn.cljs$core$IFn$_invoke$arity$1 ? original_print_err_fn.cljs$core$IFn$_invoke$arity$1(s) : original_print_err_fn.call(null,s));\n} else {\nreturn null;\n}\n}));\n});\nshadow.cljs.devtools.client.env.reset_print_fns_BANG_ = (function shadow$cljs$devtools$client$env$reset_print_fns_BANG_(){\nvar temp__5735__auto__ = cljs.core.deref(shadow.cljs.devtools.client.env.reset_print_fn_ref);\nif(cljs.core.truth_(temp__5735__auto__)){\nvar x = temp__5735__auto__;\n(x.cljs$core$IFn$_invoke$arity$0 ? x.cljs$core$IFn$_invoke$arity$0() : x.call(null));\n\nreturn cljs.core.reset_BANG_(shadow.cljs.devtools.client.env.reset_print_fn_ref,null);\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.env.patch_goog_BANG_ = (function shadow$cljs$devtools$client$env$patch_goog_BANG_(){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\"goog\",shadow.cljs.devtools.client.env.module_format)){\n(goog.provide = goog.constructNamespace_);\n\nreturn (goog.isProvided_ = cljs.core.constantly(false));\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.env.add_warnings_to_info = (function shadow$cljs$devtools$client$env$add_warnings_to_info(p__44890){\nvar map__44892 = p__44890;\nvar map__44892__$1 = (((((!((map__44892 == null))))?(((((map__44892.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__44892.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__44892):map__44892);\nvar msg = map__44892__$1;\nvar info = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44892__$1,new cljs.core.Keyword(null,\"info\",\"info\",-317069002));\nvar warnings = cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.distinct.cljs$core$IFn$_invoke$arity$1((function (){var iter__4529__auto__ = (function shadow$cljs$devtools$client$env$add_warnings_to_info_$_iter__44898(s__44899){\nreturn (new cljs.core.LazySeq(null,(function (){\nvar s__44899__$1 = s__44899;\nwhile(true){\nvar temp__5735__auto__ = cljs.core.seq(s__44899__$1);\nif(temp__5735__auto__){\nvar xs__6292__auto__ = temp__5735__auto__;\nvar map__44907 = cljs.core.first(xs__6292__auto__);\nvar map__44907__$1 = (((((!((map__44907 == null))))?(((((map__44907.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__44907.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__44907):map__44907);\nvar src = map__44907__$1;\nvar resource_name = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44907__$1,new cljs.core.Keyword(null,\"resource-name\",\"resource-name\",2001617100));\nvar warnings = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44907__$1,new cljs.core.Keyword(null,\"warnings\",\"warnings\",-735437651));\nif(cljs.core.not(new cljs.core.Keyword(null,\"from-jar\",\"from-jar\",1050932827).cljs$core$IFn$_invoke$arity$1(src))){\nvar iterys__4525__auto__ = ((function (s__44899__$1,map__44907,map__44907__$1,src,resource_name,warnings,xs__6292__auto__,temp__5735__auto__,map__44892,map__44892__$1,msg,info){\nreturn (function shadow$cljs$devtools$client$env$add_warnings_to_info_$_iter__44898_$_iter__44900(s__44901){\nreturn (new cljs.core.LazySeq(null,((function (s__44899__$1,map__44907,map__44907__$1,src,resource_name,warnings,xs__6292__auto__,temp__5735__auto__,map__44892,map__44892__$1,msg,info){\nreturn (function (){\nvar s__44901__$1 = s__44901;\nwhile(true){\nvar temp__5735__auto____$1 = cljs.core.seq(s__44901__$1);\nif(temp__5735__auto____$1){\nvar s__44901__$2 = temp__5735__auto____$1;\nif(cljs.core.chunked_seq_QMARK_(s__44901__$2)){\nvar c__4527__auto__ = cljs.core.chunk_first(s__44901__$2);\nvar size__4528__auto__ = cljs.core.count(c__4527__auto__);\nvar b__44903 = cljs.core.chunk_buffer(size__4528__auto__);\nif((function (){var i__44902 = (0);\nwhile(true){\nif((i__44902 < size__4528__auto__)){\nvar warning = cljs.core._nth(c__4527__auto__,i__44902);\ncljs.core.chunk_append(b__44903,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(warning,new cljs.core.Keyword(null,\"resource-name\",\"resource-name\",2001617100),resource_name));\n\nvar G__45265 = (i__44902 + (1));\ni__44902 = G__45265;\ncontinue;\n} else {\nreturn true;\n}\nbreak;\n}\n})()){\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__44903),shadow$cljs$devtools$client$env$add_warnings_to_info_$_iter__44898_$_iter__44900(cljs.core.chunk_rest(s__44901__$2)));\n} else {\nreturn cljs.core.chunk_cons(cljs.core.chunk(b__44903),null);\n}\n} else {\nvar warning = cljs.core.first(s__44901__$2);\nreturn cljs.core.cons(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(warning,new cljs.core.Keyword(null,\"resource-name\",\"resource-name\",2001617100),resource_name),shadow$cljs$devtools$client$env$add_warnings_to_info_$_iter__44898_$_iter__44900(cljs.core.rest(s__44901__$2)));\n}\n} else {\nreturn null;\n}\nbreak;\n}\n});})(s__44899__$1,map__44907,map__44907__$1,src,resource_name,warnings,xs__6292__auto__,temp__5735__auto__,map__44892,map__44892__$1,msg,info))\n,null,null));\n});})(s__44899__$1,map__44907,map__44907__$1,src,resource_name,warnings,xs__6292__auto__,temp__5735__auto__,map__44892,map__44892__$1,msg,info))\n;\nvar fs__4526__auto__ = cljs.core.seq(iterys__4525__auto__(warnings));\nif(fs__4526__auto__){\nreturn cljs.core.concat.cljs$core$IFn$_invoke$arity$2(fs__4526__auto__,shadow$cljs$devtools$client$env$add_warnings_to_info_$_iter__44898(cljs.core.rest(s__44899__$1)));\n} else {\nvar G__45272 = cljs.core.rest(s__44899__$1);\ns__44899__$1 = G__45272;\ncontinue;\n}\n} else {\nvar G__45274 = cljs.core.rest(s__44899__$1);\ns__44899__$1 = G__45274;\ncontinue;\n}\n} else {\nreturn null;\n}\nbreak;\n}\n}),null,null));\n});\nreturn iter__4529__auto__(new cljs.core.Keyword(null,\"sources\",\"sources\",-321166424).cljs$core$IFn$_invoke$arity$1(info));\n})()));\nreturn cljs.core.assoc_in(msg,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,\"info\",\"info\",-317069002),new cljs.core.Keyword(null,\"warnings\",\"warnings\",-735437651)], null),warnings);\n});\nshadow.cljs.devtools.client.env.custom_notify_types = new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,\"build-complete\",\"build-complete\",-501868472),null,new cljs.core.Keyword(null,\"build-init\",\"build-init\",-1115755563),null,new cljs.core.Keyword(null,\"build-failure\",\"build-failure\",-2107487466),null,new cljs.core.Keyword(null,\"build-start\",\"build-start\",-959649480),null], null), null);\nshadow.cljs.devtools.client.env.run_custom_notify_BANG_ = (function shadow$cljs$devtools$client$env$run_custom_notify_BANG_(msg){\nif(cljs.core.seq(shadow.cljs.devtools.client.env.custom_notify_fn)){\nvar fn = goog.getObjectByName(shadow.cljs.devtools.client.env.custom_notify_fn,$CLJS);\nif((!(cljs.core.fn_QMARK_(fn)))){\nreturn console.warn(\"couldn't find custom :build-notify\",shadow.cljs.devtools.client.env.custom_notify_fn);\n} else {\ntry{return fn(msg);\n}catch (e44929){var e = e44929;\nconsole.error(\"Failed to run custom :build-notify\",shadow.cljs.devtools.client.env.custom_notify_fn);\n\nreturn console.error(e);\n}}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.env.make_task_fn = (function shadow$cljs$devtools$client$env$make_task_fn(p__44932,p__44933){\nvar map__44934 = p__44932;\nvar map__44934__$1 = (((((!((map__44934 == null))))?(((((map__44934.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__44934.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__44934):map__44934);\nvar log_missing_fn = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44934__$1,new cljs.core.Keyword(null,\"log-missing-fn\",\"log-missing-fn\",732676765));\nvar log_call_async = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44934__$1,new cljs.core.Keyword(null,\"log-call-async\",\"log-call-async\",183826192));\nvar log_call = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44934__$1,new cljs.core.Keyword(null,\"log-call\",\"log-call\",412404391));\nvar map__44935 = p__44933;\nvar map__44935__$1 = (((((!((map__44935 == null))))?(((((map__44935.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__44935.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__44935):map__44935);\nvar fn_sym = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44935__$1,new cljs.core.Keyword(null,\"fn-sym\",\"fn-sym\",1423988510));\nvar fn_str = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44935__$1,new cljs.core.Keyword(null,\"fn-str\",\"fn-str\",-1348506402));\nvar async = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44935__$1,new cljs.core.Keyword(null,\"async\",\"async\",1050769601));\nreturn (function (next){\ntry{var fn_obj = goog.getObjectByName(fn_str,$CLJS);\nif((fn_obj == null)){\nif(cljs.core.truth_(log_missing_fn)){\n(log_missing_fn.cljs$core$IFn$_invoke$arity$1 ? log_missing_fn.cljs$core$IFn$_invoke$arity$1(fn_sym) : log_missing_fn.call(null,fn_sym));\n} else {\n}\n\nreturn (next.cljs$core$IFn$_invoke$arity$0 ? next.cljs$core$IFn$_invoke$arity$0() : next.call(null));\n} else {\nif(cljs.core.truth_(async)){\nif(cljs.core.truth_(log_call_async)){\n(log_call_async.cljs$core$IFn$_invoke$arity$1 ? log_call_async.cljs$core$IFn$_invoke$arity$1(fn_sym) : log_call_async.call(null,fn_sym));\n} else {\n}\n\nreturn fn_obj(next);\n} else {\nif(cljs.core.truth_(log_call)){\n(log_call.cljs$core$IFn$_invoke$arity$1 ? log_call.cljs$core$IFn$_invoke$arity$1(fn_sym) : log_call.call(null,fn_sym));\n} else {\n}\n\nfn_obj();\n\nreturn (next.cljs$core$IFn$_invoke$arity$0 ? next.cljs$core$IFn$_invoke$arity$0() : next.call(null));\n\n}\n}\n}catch (e44942){var ex = e44942;\nconsole.warn(\"error when calling lifecycle function\",cljs.core.str.cljs$core$IFn$_invoke$arity$1(fn_sym),ex);\n\nreturn (next.cljs$core$IFn$_invoke$arity$0 ? next.cljs$core$IFn$_invoke$arity$0() : next.call(null));\n}});\n});\nshadow.cljs.devtools.client.env.do_js_reload_STAR_ = (function shadow$cljs$devtools$client$env$do_js_reload_STAR_(failure_fn,p__44953){\nvar vec__44954 = p__44953;\nvar seq__44955 = cljs.core.seq(vec__44954);\nvar first__44956 = cljs.core.first(seq__44955);\nvar seq__44955__$1 = cljs.core.next(seq__44955);\nvar task = first__44956;\nvar remaining_tasks = seq__44955__$1;\nif(cljs.core.truth_(task)){\ntry{var G__44958 = (function (){\nreturn (shadow.cljs.devtools.client.env.do_js_reload_STAR_.cljs$core$IFn$_invoke$arity$2 ? shadow.cljs.devtools.client.env.do_js_reload_STAR_.cljs$core$IFn$_invoke$arity$2(failure_fn,remaining_tasks) : shadow.cljs.devtools.client.env.do_js_reload_STAR_.call(null,failure_fn,remaining_tasks));\n});\nreturn (task.cljs$core$IFn$_invoke$arity$1 ? task.cljs$core$IFn$_invoke$arity$1(G__44958) : task.call(null,G__44958));\n}catch (e44957){var e = e44957;\nreturn (failure_fn.cljs$core$IFn$_invoke$arity$3 ? failure_fn.cljs$core$IFn$_invoke$arity$3(e,task,remaining_tasks) : failure_fn.call(null,e,task,remaining_tasks));\n}} else {\nreturn null;\n}\n});\n/**\n * should pass the :build-complete message and an additional callback\n * which performs the actual loading of the code (sync)\n * will call all before/after callbacks in order\n */\nshadow.cljs.devtools.client.env.do_js_reload = (function shadow$cljs$devtools$client$env$do_js_reload(var_args){\nvar G__44970 = arguments.length;\nswitch (G__44970) {\ncase 2:\nreturn shadow.cljs.devtools.client.env.do_js_reload.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));\n\nbreak;\ncase 3:\nreturn shadow.cljs.devtools.client.env.do_js_reload.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));\n\nbreak;\ncase 4:\nreturn shadow.cljs.devtools.client.env.do_js_reload.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));\n\nbreak;\ndefault:\nthrow (new Error([\"Invalid arity: \",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));\n\n}\n});\n\n(shadow.cljs.devtools.client.env.do_js_reload.cljs$core$IFn$_invoke$arity$2 = (function (msg,load_code_fn){\nreturn shadow.cljs.devtools.client.env.do_js_reload.cljs$core$IFn$_invoke$arity$3(msg,load_code_fn,(function (){\nreturn null;\n}));\n}));\n\n(shadow.cljs.devtools.client.env.do_js_reload.cljs$core$IFn$_invoke$arity$3 = (function (msg,load_code_fn,complete_fn){\nreturn shadow.cljs.devtools.client.env.do_js_reload.cljs$core$IFn$_invoke$arity$4(msg,load_code_fn,complete_fn,(function (error,task,remaining){\nreturn console.warn(\"JS reload failed\",error);\n}));\n}));\n\n(shadow.cljs.devtools.client.env.do_js_reload.cljs$core$IFn$_invoke$arity$4 = (function (p__44986,load_code_fn,complete_fn,failure_fn){\nvar map__44988 = p__44986;\nvar map__44988__$1 = (((((!((map__44988 == null))))?(((((map__44988.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__44988.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__44988):map__44988);\nvar msg = map__44988__$1;\nvar reload_info = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__44988__$1,new cljs.core.Keyword(null,\"reload-info\",\"reload-info\",1648088086));\nvar load_tasks = cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.reverse(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__44961_SHARP_){\nreturn shadow.cljs.devtools.client.env.make_task_fn(msg,p1__44961_SHARP_);\n}),new cljs.core.Keyword(null,\"before-load\",\"before-load\",-2060117064).cljs$core$IFn$_invoke$arity$1(reload_info)))),(function (next){\n(load_code_fn.cljs$core$IFn$_invoke$arity$0 ? load_code_fn.cljs$core$IFn$_invoke$arity$0() : load_code_fn.call(null));\n\nreturn (next.cljs$core$IFn$_invoke$arity$0 ? next.cljs$core$IFn$_invoke$arity$0() : next.call(null));\n})),cljs.core.map.cljs$core$IFn$_invoke$arity$1((function (p1__44962_SHARP_){\nreturn shadow.cljs.devtools.client.env.make_task_fn(msg,p1__44962_SHARP_);\n})),new cljs.core.Keyword(null,\"after-load\",\"after-load\",-1278503285).cljs$core$IFn$_invoke$arity$1(reload_info)),(function (next){\n(complete_fn.cljs$core$IFn$_invoke$arity$0 ? complete_fn.cljs$core$IFn$_invoke$arity$0() : complete_fn.call(null));\n\nreturn (next.cljs$core$IFn$_invoke$arity$0 ? next.cljs$core$IFn$_invoke$arity$0() : next.call(null));\n}));\nreturn shadow.cljs.devtools.client.env.do_js_reload_STAR_(failure_fn,load_tasks);\n}));\n\n(shadow.cljs.devtools.client.env.do_js_reload.cljs$lang$maxFixedArity = 4);\n\nshadow.cljs.devtools.client.env.before_load_src = (function shadow$cljs$devtools$client$env$before_load_src(p__45008){\nvar map__45009 = p__45008;\nvar map__45009__$1 = (((((!((map__45009 == null))))?(((((map__45009.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45009.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45009):map__45009);\nvar src = map__45009__$1;\nvar type = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45009__$1,new cljs.core.Keyword(null,\"type\",\"type\",1174270348));\nvar ns = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45009__$1,new cljs.core.Keyword(null,\"ns\",\"ns\",441598760));\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,\"cljs\",\"cljs\",1492417629),type)){\nvar seq__45017 = cljs.core.seq(goog.global.SHADOW_NS_RESET);\nvar chunk__45018 = null;\nvar count__45019 = (0);\nvar i__45020 = (0);\nwhile(true){\nif((i__45020 < count__45019)){\nvar x = chunk__45018.cljs$core$IIndexed$_nth$arity$2(null,i__45020);\n(x.cljs$core$IFn$_invoke$arity$1 ? x.cljs$core$IFn$_invoke$arity$1(ns) : x.call(null,ns));\n\n\nvar G__45311 = seq__45017;\nvar G__45312 = chunk__45018;\nvar G__45313 = count__45019;\nvar G__45314 = (i__45020 + (1));\nseq__45017 = G__45311;\nchunk__45018 = G__45312;\ncount__45019 = G__45313;\ni__45020 = G__45314;\ncontinue;\n} else {\nvar temp__5735__auto__ = cljs.core.seq(seq__45017);\nif(temp__5735__auto__){\nvar seq__45017__$1 = temp__5735__auto__;\nif(cljs.core.chunked_seq_QMARK_(seq__45017__$1)){\nvar c__4556__auto__ = cljs.core.chunk_first(seq__45017__$1);\nvar G__45316 = cljs.core.chunk_rest(seq__45017__$1);\nvar G__45317 = c__4556__auto__;\nvar G__45318 = cljs.core.count(c__4556__auto__);\nvar G__45319 = (0);\nseq__45017 = G__45316;\nchunk__45018 = G__45317;\ncount__45019 = G__45318;\ni__45020 = G__45319;\ncontinue;\n} else {\nvar x = cljs.core.first(seq__45017__$1);\n(x.cljs$core$IFn$_invoke$arity$1 ? x.cljs$core$IFn$_invoke$arity$1(ns) : x.call(null,ns));\n\n\nvar G__45320 = cljs.core.next(seq__45017__$1);\nvar G__45321 = null;\nvar G__45322 = (0);\nvar G__45323 = (0);\nseq__45017 = G__45320;\nchunk__45018 = G__45321;\ncount__45019 = G__45322;\ni__45020 = G__45323;\ncontinue;\n}\n} else {\nreturn null;\n}\n}\nbreak;\n}\n} else {\nreturn null;\n}\n});\nshadow.cljs.devtools.client.env.goog_is_loaded_QMARK_ = (function shadow$cljs$devtools$client$env$goog_is_loaded_QMARK_(name){\nreturn $CLJS.SHADOW_ENV.isLoaded(name);\n});\nshadow.cljs.devtools.client.env.goog_base_rc = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(\"shadow.build.classpath\",\"resource\",\"shadow.build.classpath/resource\",-879517823),\"goog/base.js\"], null);\nshadow.cljs.devtools.client.env.src_is_loaded_QMARK_ = (function shadow$cljs$devtools$client$env$src_is_loaded_QMARK_(p__45059){\nvar map__45060 = p__45059;\nvar map__45060__$1 = (((((!((map__45060 == null))))?(((((map__45060.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45060.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45060):map__45060);\nvar src = map__45060__$1;\nvar resource_id = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45060__$1,new cljs.core.Keyword(null,\"resource-id\",\"resource-id\",-1308422582));\nvar output_name = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45060__$1,new cljs.core.Keyword(null,\"output-name\",\"output-name\",-1769107767));\nvar or__4126__auto__ = cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(shadow.cljs.devtools.client.env.goog_base_rc,resource_id);\nif(or__4126__auto__){\nreturn or__4126__auto__;\n} else {\nreturn shadow.cljs.devtools.client.env.goog_is_loaded_QMARK_(output_name);\n}\n});\nshadow.cljs.devtools.client.env.prefilter_sources = (function shadow$cljs$devtools$client$env$prefilter_sources(reload_info,sources){\nreturn cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p__45072){\nvar map__45073 = p__45072;\nvar map__45073__$1 = (((((!((map__45073 == null))))?(((((map__45073.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45073.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45073):map__45073);\nvar ns = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45073__$1,new cljs.core.Keyword(null,\"ns\",\"ns\",441598760));\nreturn cljs.core.contains_QMARK_(new cljs.core.Keyword(null,\"never-load\",\"never-load\",1300896819).cljs$core$IFn$_invoke$arity$1(reload_info),ns);\n}),cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__45081){\nvar map__45082 = p__45081;\nvar map__45082__$1 = (((((!((map__45082 == null))))?(((((map__45082.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45082.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45082):map__45082);\nvar rc = map__45082__$1;\nvar module = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45082__$1,new cljs.core.Keyword(null,\"module\",\"module\",1424618191));\nreturn ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\"js\",shadow.cljs.devtools.client.env.module_format)) || (shadow.cljs.devtools.client.env.module_is_active_QMARK_(module)));\n}),sources));\n});\nshadow.cljs.devtools.client.env.filter_sources_to_get_optimized = (function shadow$cljs$devtools$client$env$filter_sources_to_get_optimized(p__45091,reload_info){\nvar map__45093 = p__45091;\nvar map__45093__$1 = (((((!((map__45093 == null))))?(((((map__45093.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45093.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45093):map__45093);\nvar info = map__45093__$1;\nvar sources = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45093__$1,new cljs.core.Keyword(null,\"sources\",\"sources\",-321166424));\nvar compiled = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45093__$1,new cljs.core.Keyword(null,\"compiled\",\"compiled\",850043082));\nreturn cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p__45097){\nvar map__45098 = p__45097;\nvar map__45098__$1 = (((((!((map__45098 == null))))?(((((map__45098.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45098.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45098):map__45098);\nvar src = map__45098__$1;\nvar ns = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45098__$1,new cljs.core.Keyword(null,\"ns\",\"ns\",441598760));\nvar resource_id = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45098__$1,new cljs.core.Keyword(null,\"resource-id\",\"resource-id\",-1308422582));\nreturn ((cljs.core.contains_QMARK_(new cljs.core.Keyword(null,\"always-load\",\"always-load\",66405637).cljs$core$IFn$_invoke$arity$1(reload_info),ns)) || (cljs.core.not(shadow.cljs.devtools.client.env.src_is_loaded_QMARK_(src))) || (((cljs.core.contains_QMARK_(compiled,resource_id)) && (cljs.core.not(new cljs.core.Keyword(null,\"from-jar\",\"from-jar\",1050932827).cljs$core$IFn$_invoke$arity$1(src))))));\n}),shadow.cljs.devtools.client.env.prefilter_sources(reload_info,sources)));\n});\nshadow.cljs.devtools.client.env.filter_sources_to_get_full = (function shadow$cljs$devtools$client$env$filter_sources_to_get_full(p__45114,reload_info){\nvar map__45116 = p__45114;\nvar map__45116__$1 = (((((!((map__45116 == null))))?(((((map__45116.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45116.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45116):map__45116);\nvar info = map__45116__$1;\nvar sources = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45116__$1,new cljs.core.Keyword(null,\"sources\",\"sources\",-321166424));\nvar compiled = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45116__$1,new cljs.core.Keyword(null,\"compiled\",\"compiled\",850043082));\nvar affected = cljs.core.PersistentHashSet.EMPTY;\nvar sources_to_get = cljs.core.PersistentVector.EMPTY;\nvar G__45122 = shadow.cljs.devtools.client.env.prefilter_sources(reload_info,sources);\nvar vec__45124 = G__45122;\nvar seq__45125 = cljs.core.seq(vec__45124);\nvar first__45126 = cljs.core.first(seq__45125);\nvar seq__45125__$1 = cljs.core.next(seq__45125);\nvar src = first__45126;\nvar more = seq__45125__$1;\nvar affected__$1 = affected;\nvar sources_to_get__$1 = sources_to_get;\nvar G__45122__$1 = G__45122;\nwhile(true){\nvar affected__$2 = affected__$1;\nvar sources_to_get__$2 = sources_to_get__$1;\nvar vec__45175 = G__45122__$1;\nvar seq__45176 = cljs.core.seq(vec__45175);\nvar first__45177 = cljs.core.first(seq__45176);\nvar seq__45176__$1 = cljs.core.next(seq__45176);\nvar src__$1 = first__45177;\nvar more__$1 = seq__45176__$1;\nif(cljs.core.not(src__$1)){\nreturn sources_to_get__$2;\n} else {\nvar map__45178 = src__$1;\nvar map__45178__$1 = (((((!((map__45178 == null))))?(((((map__45178.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__45178.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,map__45178):map__45178);\nvar ns = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45178__$1,new cljs.core.Keyword(null,\"ns\",\"ns\",441598760));\nvar resource_id = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45178__$1,new cljs.core.Keyword(null,\"resource-id\",\"resource-id\",-1308422582));\nvar deps = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45178__$1,new cljs.core.Keyword(null,\"deps\",\"deps\",1883360319));\nvar provides = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__45178__$1,new cljs.core.Keyword(null,\"provides\",\"provides\",-1634397992));\nvar should_reload_QMARK_ = (function (){var or__4126__auto__ = cljs.core.contains_QMARK_(new cljs.core.Keyword(null,\"always-load\",\"always-load\",66405637).cljs$core$IFn$_invoke$arity$1(reload_info),ns);\nif(or__4126__auto__){\nreturn or__4126__auto__;\n} else {\nvar or__4126__auto____$1 = cljs.core.not(shadow.cljs.devtools.client.env.src_is_loaded_QMARK_(src__$1));\nif(or__4126__auto____$1){\nreturn or__4126__auto____$1;\n} else {\nvar and__4115__auto__ = (function (){var or__4126__auto____$2 = cljs.core.contains_QMARK_(compiled,resource_id);\nif(or__4126__auto____$2){\nreturn or__4126__auto____$2;\n} else {\nreturn cljs.core.some(affected__$2,deps);\n}\n})();\nif(cljs.core.truth_(and__4115__auto__)){\nreturn cljs.core.not(new cljs.core.Keyword(null,\"from-jar\",\"from-jar\",1050932827).cljs$core$IFn$_invoke$arity$1(src__$1));\n} else {\nreturn and__4115__auto__;\n}\n}\n}\n})();\nif(cljs.core.not(should_reload_QMARK_)){\nvar G__45338 = affected__$2;\nvar G__45339 = sources_to_get__$2;\nvar G__45340 = more__$1;\naffected__$1 = G__45338;\nsources_to_get__$1 = G__45339;\nG__45122__$1 = G__45340;\ncontinue;\n} else {\nvar G__45341 = clojure.set.union.cljs$core$IFn$_invoke$arity$2(affected__$2,provides);\nvar G__45342 = cljs.core.conj.cljs$core$IFn$_invoke$arity$2(sources_to_get__$2,src__$1);\nvar G__45343 = more__$1;\naffected__$1 = G__45341;\nsources_to_get__$1 = G__45342;\nG__45122__$1 = G__45343;\ncontinue;\n}\n}\nbreak;\n}\n});\nshadow.cljs.devtools.client.env.filter_reload_sources = (function shadow$cljs$devtools$client$env$filter_reload_sources(info,reload_info){\nif(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(\"full\",shadow.cljs.devtools.client.env.reload_strategy)){\nreturn shadow.cljs.devtools.client.env.filter_sources_to_get_full(info,reload_info);\n} else {\nreturn shadow.cljs.devtools.client.env.filter_sources_to_get_optimized(info,reload_info);\n}\n});\n","~:ns-info",["^ ","~:rename-macros",null,"~:renames",["^ "],"~:meta",["^ ","~:file","shadow/cljs/devtools/client/env.cljs","~:line",1,"~:column",5,"~:end-line",1,"~:end-column",36],"~:ns-aliases",["^ ","~$cljs.loader","~$shadow.loader","~$clojure.pprint","~$cljs.pprint","~$react","~$shadow.js.shim.module$react","~$clojure.spec.alpha","~$cljs.spec.alpha"],"~:use-macros",null,"~:excludes",["~#set",[]],"~:name","~$shadow.cljs.devtools.client.env","~:op","~:ns","~:imports",null,"~:requires",["^ ","~$set","~$clojure.set","~$cljs.tools.reader","^O","~$cljs.core","^P","~$gobj","~$goog.object","~$goog","^S","^R","^R","^N","^N","^?","^?","~$str","~$clojure.string","^U","^U","~$reader","^O"],"~:seen",["^F",["~:require"]],"~:uses",["^ ","~$pprint","^?"],"~:require-macros",["^ ","^P","^P","^?","^?"],"~:form",["~#list",["~$ns","^H",["^11",["^X",["^R","~:as","^Q"],["^U","^13","^T"],["^O","^13","^V"],["^?","~:refer",["^11",["^Z"]]],["^N","^13","^M"]]]]],"~:flags",["^ ","^X",["^F",[]]],"~:js-deps",["^ "],"~:deps",["^S","^P","^R","^U","^O","^?","^N"]],"^J","^H","~:resource-id",["~:shadow.build.classpath/resource","shadow/cljs/devtools/client/env.cljs"],"~:compiled-at",1613924120763,"~:resource-name","shadow/cljs/devtools/client/env.cljs","~:warnings",[],"~:source","(ns shadow.cljs.devtools.client.env\n (:require\n [goog.object :as gobj]\n [clojure.string :as str]\n [cljs.tools.reader :as reader]\n [cljs.pprint :refer (pprint)]\n [clojure.set :as set]))\n\n(defonce active-modules-ref\n (volatile! #{}))\n\n(defn module-loaded [name]\n (vswap! active-modules-ref conj (keyword name)))\n\n(defn module-is-active? [module]\n (contains? @active-modules-ref module))\n\n;; FIXME: make this persistent somehow?\n(defonce runtime-id (str (random-uuid)))\n\n(goog-define enabled false)\n\n(goog-define autoload true)\n\n(goog-define module-format \"goog\")\n\n(goog-define reload-with-state false)\n\n(goog-define build-id \"\")\n\n(goog-define proc-id \"\")\n\n(goog-define worker-client-id 0)\n\n(goog-define server-host \"\")\n\n(goog-define server-port 8200)\n\n(goog-define repl-pprint false)\n\n(goog-define use-document-host true)\n\n(goog-define use-document-protocol false)\n\n(goog-define devtools-url \"\")\n\n(goog-define reload-strategy \"optimized\")\n\n(goog-define server-token \"missing\")\n\n(goog-define ssl false)\n\n(goog-define ignore-warnings false)\n\n(goog-define log-style \"font-weight: bold;\")\n\n(goog-define custom-notify-fn \"\")\n\n(defn devtools-info []\n #js {:server_port server-port\n :server_host server-host\n :build_id build-id\n :proc_id proc-id\n :runtime_id runtime-id\n :ssl ssl})\n\n(defn get-server-protocol []\n (if (and use-document-protocol\n js/goog.global.location\n (seq js/goog.global.location.protocol))\n (str/replace js/goog.global.location.protocol \":\" \"\")\n (str \"http\" (when ssl \"s\"))))\n\n(defn get-server-host []\n (cond\n (and use-document-host\n js/goog.global.location\n (seq js/goog.global.location.hostname))\n js/goog.global.location.hostname\n\n (seq server-host)\n server-host\n\n :else\n \"localhost\"))\n\n(defn get-url-base []\n (if (seq devtools-url)\n devtools-url\n (str (get-server-protocol) \"://\" (get-server-host) \":\" server-port)))\n\n(defn get-ws-url-base []\n (-> (get-url-base)\n (str/replace #\"^http\" \"ws\")))\n\n(defn get-ws-relay-url []\n (str (get-ws-url-base) \"/api/remote-relay?server-token=\" server-token))\n\n;; FIXME: this need to become idempotent somehow\n;; but is something sets a print-fn we can't tell if that\n;; will actually call ours. only a problem if the websocket is\n;; reconnected though\n(defonce reset-print-fn-ref (atom nil))\n(defonce was-print-newline *print-newline*)\n\n(defn set-print-fns! [msg-fn]\n ;; cannot capture these before as they may change in between loading this file\n ;; and running the websocket connect. the user code is loaded after this file\n (let [original-print-fn cljs.core/*print-fn*\n original-print-err-fn cljs.core/*print-err-fn*]\n\n (set! *print-newline* true)\n\n ;; just prevent user code calling it, shadow-cljs setup code already did\n (set! js/cljs.core.enable-console-print! (fn []))\n\n (reset! reset-print-fn-ref\n (fn reset-print-fns! []\n (set! *print-newline* was-print-newline)\n (set-print-fn! original-print-fn)\n (set-print-err-fn! original-print-err-fn)))\n\n (set-print-fn!\n (fn repl-print-fn [s]\n (msg-fn :stdout s)\n (when (and original-print-fn (not= s \"\\n\"))\n (original-print-fn s))))\n\n (set-print-err-fn!\n (fn repl-print-err-fn [s]\n (msg-fn :stderr s)\n (when (and original-print-err-fn (not= s \"\\n\"))\n (original-print-err-fn s))))))\n\n(defn reset-print-fns! []\n (when-let [x @reset-print-fn-ref]\n (x)\n (reset! reset-print-fn-ref nil)))\n\n(defn patch-goog! []\n (when (= \"goog\" module-format)\n ;; patch away the already declared exception\n (set! js/goog.provide js/goog.constructNamespace_)\n ;; goog.module calls this directly\n (set! js/goog.isProvided_ (constantly false))))\n\n(defn add-warnings-to-info [{:keys [info] :as msg}]\n (let [warnings\n (->> (for [{:keys [resource-name warnings] :as src} (:sources info)\n :when (not (:from-jar src))\n warning warnings]\n (assoc warning :resource-name resource-name))\n (distinct)\n (into []))]\n (assoc-in msg [:info :warnings] warnings)))\n\n(def custom-notify-types\n #{:build-complete\n :build-failure\n :build-init\n :build-start})\n\n(defn run-custom-notify! [msg]\n ;; look up every time it case it gets reloaded\n (when (seq custom-notify-fn)\n (let [fn (js/goog.getObjectByName custom-notify-fn js/$CLJS)]\n (if-not (fn? fn)\n (js/console.warn \"couldn't find custom :build-notify\" custom-notify-fn)\n (try\n (fn msg)\n (catch :default e\n (js/console.error \"Failed to run custom :build-notify\" custom-notify-fn)\n (js/console.error e)))))))\n\n(defn make-task-fn [{:keys [log-missing-fn log-call-async log-call]} {:keys [fn-sym fn-str async]}]\n (fn [next]\n (try\n (let [fn-obj (js/goog.getObjectByName fn-str js/$CLJS)]\n (cond\n (nil? fn-obj)\n (do (when log-missing-fn\n (log-missing-fn fn-sym))\n (next))\n\n async\n (do (when log-call-async\n (log-call-async fn-sym))\n (fn-obj next))\n\n :else\n (do (when log-call\n (log-call fn-sym))\n (fn-obj)\n (next))))\n (catch :default ex\n (js/console.warn \"error when calling lifecycle function\" (str fn-sym) ex)\n (next)))))\n\n(defn do-js-reload* [failure-fn [task & remaining-tasks]]\n (when task\n (try\n (task #(do-js-reload* failure-fn remaining-tasks))\n (catch :default e\n (failure-fn e task remaining-tasks)))))\n\n(defn do-js-reload\n \"should pass the :build-complete message and an additional callback\n which performs the actual loading of the code (sync)\n will call all before/after callbacks in order\"\n ([msg load-code-fn]\n (do-js-reload\n msg\n load-code-fn\n (fn [])))\n ([msg load-code-fn complete-fn]\n (do-js-reload\n msg\n load-code-fn\n complete-fn\n (fn [error task remaining]\n (js/console.warn \"JS reload failed\" error))))\n ([{:keys [reload-info] :as msg} load-code-fn complete-fn failure-fn]\n (let [load-tasks\n (-> []\n ;; unload is FILO\n (into (->> (:before-load reload-info)\n (map #(make-task-fn msg %))\n (reverse)))\n (conj (fn [next]\n (load-code-fn)\n (next)))\n ;; load is FIFO\n (into (map #(make-task-fn msg %)) (:after-load reload-info))\n (conj (fn [next]\n (complete-fn)\n (next))))]\n\n (do-js-reload* failure-fn load-tasks))))\n\n(defn before-load-src [{:keys [type ns] :as src}]\n (when (= :cljs type)\n (doseq [x js/goog.global.SHADOW_NS_RESET]\n (x ns))))\n\n(defn goog-is-loaded? [name]\n (js/$CLJS.SHADOW_ENV.isLoaded name))\n\n(def goog-base-rc\n [:shadow.build.classpath/resource \"goog/base.js\"])\n\n(defn src-is-loaded? [{:keys [resource-id output-name] :as src}]\n ;; FIXME: don't like this special case handling, but goog/base.js will always be loaded\n ;; but not as a separate file\n (or (= goog-base-rc resource-id)\n (goog-is-loaded? output-name)))\n\n(defn prefilter-sources [reload-info sources]\n (->> sources\n (filter\n (fn [{:keys [module] :as rc}]\n (or (= \"js\" module-format)\n (module-is-active? module))))\n ;; don't reload namespaces that have ^:dev/never-reload meta\n (remove (fn [{:keys [ns]}]\n (contains? (:never-load reload-info) ns)))))\n\n(defn filter-sources-to-get-optimized [{:keys [sources compiled] :as info} reload-info]\n (->> sources\n (prefilter-sources reload-info)\n (filter\n (fn [{:keys [ns resource-id] :as src}]\n (or (contains? (:always-load reload-info) ns)\n (not (src-is-loaded? src))\n (and (contains? compiled resource-id)\n ;; never reload files from jar\n ;; they can't be hot-swapped so the only way they get re-compiled\n ;; is if they have warnings, which we can't to anything about\n (not (:from-jar src))))))\n (into [])))\n\n(defn filter-sources-to-get-full [{:keys [sources compiled] :as info} reload-info]\n (loop [affected #{}\n sources-to-get []\n [src & more] (prefilter-sources reload-info sources)]\n\n (if-not src\n sources-to-get\n (let [{:keys [ns resource-id deps provides]}\n src\n\n should-reload?\n (or (contains? (:always-load reload-info) ns)\n ;; always load sources that haven't been loaded yet\n ;; this fixes issues where a namespace is added to a build that has\n ;; dependencies that haven't been loaded yet but were compiled before\n (not (src-is-loaded? src))\n (and (or (contains? compiled resource-id)\n (some affected deps))\n ;; never reload files from jar\n ;; they can't be hot-swapped so the only way they get re-compiled\n ;; is if they have warnings, which we can't to anything about\n (not (:from-jar src))))]\n\n (if-not should-reload?\n (recur affected sources-to-get more)\n (recur\n (set/union affected provides)\n (conj sources-to-get src)\n more))))))\n\n(defn filter-reload-sources [info reload-info]\n (if (= \"full\" reload-strategy)\n (filter-sources-to-get-full info reload-info)\n (filter-sources-to-get-optimized info reload-info)))\n","~:reader-features",["^F",["~:cljs"]],"~:cljc",false,"~:source-map-compact",["^ ","mappings",";AAQA,AAAA,AAAAA,AAAAC,AAAAC,AAAAC,AAAAC,AAAAC;AAAA;AAAA,AAAA,AAASC,AACP,AAAA,AAACC;;AAEH,AAAA,AAAMC,AAAeC;AAArB,AACE,AAAA,AAAA,AAAQH,AAAAA,AAAmBI,AAAK,AAACC,AAAQF;;AAE3C,AAAA,AAAMG,AAAmBC;AAAzB,AACE,AAAA,AAAAC,AAACC,AAAWT,AAAmBO;;AAGjC,AAAA,AAAAb,AAAAC,AAAAC,AAAAC,AAAAC,AAAAY;AAAA;AAAA,AAAA,AAASC,AAAW,AAAK,AAACC;;AAE1B;;;AAAA,AAAAC,AAAA,AAAA,AAAaC;AAEb;;;AAAA,AAAAD,AAAA,AAAA,AAAaE;AAEb;;;AAAA,AAAAF,AAAA,AAAA,AAAaG;AAEb;;;AAAA,AAAAH,AAAA,AAAA,AAAaI;AAEb;;;AAAA,AAAAJ,AAAA,AAAA,AAAaK;AAEb;;;AAAA,AAAAL,AAAA,AAAA,AAAaM;AAEb;;;AAAA,AAAAN,AAAA,AAAA,AAAaO;AAEb;;;AAAA,AAAAP,AAAA,AAAA,AAAaQ;AAEb;;;AAAA,AAAAR,AAAA,AAAA,AAAaS;AAEb;;;AAAA,AAAAT,AAAA,AAAA,AAAaU;AAEb;;;AAAA,AAAAV,AAAA,AAAA,AAAaW;AAEb;;;AAAA,AAAAX,AAAA,AAAA,AAAaY;AAEb;;;AAAA,AAAAZ,AAAA,AAAA,AAAaa;AAEb;;;AAAA,AAAAb,AAAA,AAAA,AAAac;AAEb;;;AAAA,AAAAd,AAAA,AAAA,AAAae;AAEb;;;AAAA,AAAAf,AAAA,AAAA,AAAagB;AAEb;;;AAAA,AAAAhB,AAAA,AAAA,AAAaiB;AAEb;;;AAAA,AAAAjB,AAAA,AAAA,AAAakB;AAEb;;;AAAA,AAAAlB,AAAA,AAAA,AAAamB;AAEb,AAAA,AAAMC;AAAN,AAAA,AACoBX,AACAD,AACHH,AACDC,AACGR,AACPkB;;AAEZ,AAAA,AAAMK;AAAN,AACE,AAAI,AAAA,AAAAC,AAAKV,AACAW;AADL,AAAA,AAAAD;AAEK,AAACE,AAAIC;;AAFVH;;AAAA;AAGF,AAAA,AAAA,AAACI,AAAYD;;AACb,AAAA,AAAY,AAAA,AAAA,AAAA,AAAMT;;;AAEtB,AAAA,AAAMW;AAAN,AACE,AACE,AAAA,AAAAL,AAAKX,AACAY;AADL,AAAA,AAAAD;AAEK,AAACE,AAAII;;AAFVN;;AAAA;AAGAM;;AAJF,AAME,AAACJ,AAAIhB;AACLA;;AAPF,AAAA;;;;;AAYF,AAAA,AAAMqB;AAAN,AACE,AAAI,AAACL,AAAIX;AACPA;;AACA,AAAA,AAAA,AAAK,AAACQ,AAA2B,AAACM,AAAqBlB;;;AAE3D,AAAA,AAAMqB;AAAN,AACM,AAACD,AACD,AAAA,AAAA,AAACH;;AAEP,AAAA,AAAMK;AAAN,AACE,AAAA,AAAK,AAACD,AAAmDf;;AAM3D,AAAA,AAAAlC,AAAAC,AAAAC,AAAAC,AAAAC,AAAA+C;AAAA;AAAA,AAAA,AAASC,AAAmB,AAAA,AAACC;;AAC7B,AAAA,AAAArD,AAAAC,AAA