@p4ulcristian/iris-layout 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/dist/cljs-runtime/cljs.core.js +38746 -0
  2. package/dist/cljs-runtime/cljs.core.js.map +1 -0
  3. package/dist/cljs-runtime/cljs.pprint.js +8400 -0
  4. package/dist/cljs-runtime/cljs.pprint.js.map +1 -0
  5. package/dist/cljs-runtime/cljs.stacktrace.js +561 -0
  6. package/dist/cljs-runtime/cljs.stacktrace.js.map +1 -0
  7. package/dist/cljs-runtime/cljs_env.js +1286 -0
  8. package/dist/cljs-runtime/clojure.data.js +295 -0
  9. package/dist/cljs-runtime/clojure.data.js.map +1 -0
  10. package/dist/cljs-runtime/clojure.set.js +382 -0
  11. package/dist/cljs-runtime/clojure.set.js.map +1 -0
  12. package/dist/cljs-runtime/clojure.string.js +480 -0
  13. package/dist/cljs-runtime/clojure.string.js.map +1 -0
  14. package/dist/cljs-runtime/clojure.walk.js +132 -0
  15. package/dist/cljs-runtime/clojure.walk.js.map +1 -0
  16. package/dist/cljs-runtime/devtools.async.js +90 -0
  17. package/dist/cljs-runtime/devtools.async.js.map +1 -0
  18. package/dist/cljs-runtime/devtools.context.js +11 -0
  19. package/dist/cljs-runtime/devtools.context.js.map +1 -0
  20. package/dist/cljs-runtime/devtools.core.js +175 -0
  21. package/dist/cljs-runtime/devtools.core.js.map +1 -0
  22. package/dist/cljs-runtime/devtools.defaults.js +20 -0
  23. package/dist/cljs-runtime/devtools.defaults.js.map +1 -0
  24. package/dist/cljs-runtime/devtools.format.js +631 -0
  25. package/dist/cljs-runtime/devtools.format.js.map +1 -0
  26. package/dist/cljs-runtime/devtools.formatters.budgeting.js +182 -0
  27. package/dist/cljs-runtime/devtools.formatters.budgeting.js.map +1 -0
  28. package/dist/cljs-runtime/devtools.formatters.core.js +220 -0
  29. package/dist/cljs-runtime/devtools.formatters.core.js.map +1 -0
  30. package/dist/cljs-runtime/devtools.formatters.helpers.js +228 -0
  31. package/dist/cljs-runtime/devtools.formatters.helpers.js.map +1 -0
  32. package/dist/cljs-runtime/devtools.formatters.js +261 -0
  33. package/dist/cljs-runtime/devtools.formatters.js.map +1 -0
  34. package/dist/cljs-runtime/devtools.formatters.markup.js +1174 -0
  35. package/dist/cljs-runtime/devtools.formatters.markup.js.map +1 -0
  36. package/dist/cljs-runtime/devtools.formatters.printing.js +313 -0
  37. package/dist/cljs-runtime/devtools.formatters.printing.js.map +1 -0
  38. package/dist/cljs-runtime/devtools.formatters.state.js +325 -0
  39. package/dist/cljs-runtime/devtools.formatters.state.js.map +1 -0
  40. package/dist/cljs-runtime/devtools.formatters.templating.js +666 -0
  41. package/dist/cljs-runtime/devtools.formatters.templating.js.map +1 -0
  42. package/dist/cljs-runtime/devtools.hints.js +193 -0
  43. package/dist/cljs-runtime/devtools.hints.js.map +1 -0
  44. package/dist/cljs-runtime/devtools.munging.js +1058 -0
  45. package/dist/cljs-runtime/devtools.munging.js.map +1 -0
  46. package/dist/cljs-runtime/devtools.prefs.js +87 -0
  47. package/dist/cljs-runtime/devtools.prefs.js.map +1 -0
  48. package/dist/cljs-runtime/devtools.preload.js +11 -0
  49. package/dist/cljs-runtime/devtools.preload.js.map +1 -0
  50. package/dist/cljs-runtime/devtools.protocols.js +98 -0
  51. package/dist/cljs-runtime/devtools.protocols.js.map +1 -0
  52. package/dist/cljs-runtime/devtools.reporter.js +81 -0
  53. package/dist/cljs-runtime/devtools.reporter.js.map +1 -0
  54. package/dist/cljs-runtime/devtools.toolbox.js +141 -0
  55. package/dist/cljs-runtime/devtools.toolbox.js.map +1 -0
  56. package/dist/cljs-runtime/devtools.util.js +517 -0
  57. package/dist/cljs-runtime/devtools.util.js.map +1 -0
  58. package/dist/cljs-runtime/devtools.version.js +9 -0
  59. package/dist/cljs-runtime/devtools.version.js.map +1 -0
  60. package/dist/cljs-runtime/goog.array.array.js +659 -0
  61. package/dist/cljs-runtime/goog.array.array.js.map +9 -0
  62. package/dist/cljs-runtime/goog.asserts.asserts.js +133 -0
  63. package/dist/cljs-runtime/goog.asserts.asserts.js.map +9 -0
  64. package/dist/cljs-runtime/goog.asserts.dom.js +90 -0
  65. package/dist/cljs-runtime/goog.asserts.dom.js.map +9 -0
  66. package/dist/cljs-runtime/goog.async.nexttick.js +93 -0
  67. package/dist/cljs-runtime/goog.async.nexttick.js.map +9 -0
  68. package/dist/cljs-runtime/goog.base.js +1261 -0
  69. package/dist/cljs-runtime/goog.base.js.map +9 -0
  70. package/dist/cljs-runtime/goog.collections.maps.js +82 -0
  71. package/dist/cljs-runtime/goog.collections.maps.js.map +9 -0
  72. package/dist/cljs-runtime/goog.debug.entrypointregistry.js +44 -0
  73. package/dist/cljs-runtime/goog.debug.entrypointregistry.js.map +9 -0
  74. package/dist/cljs-runtime/goog.debug.error.js +30 -0
  75. package/dist/cljs-runtime/goog.debug.error.js.map +9 -0
  76. package/dist/cljs-runtime/goog.dom.asserts.js +40 -0
  77. package/dist/cljs-runtime/goog.dom.asserts.js.map +9 -0
  78. package/dist/cljs-runtime/goog.dom.browserfeature.js +21 -0
  79. package/dist/cljs-runtime/goog.dom.browserfeature.js.map +9 -0
  80. package/dist/cljs-runtime/goog.dom.dom.js +1087 -0
  81. package/dist/cljs-runtime/goog.dom.dom.js.map +9 -0
  82. package/dist/cljs-runtime/goog.dom.element.js +69 -0
  83. package/dist/cljs-runtime/goog.dom.element.js.map +9 -0
  84. package/dist/cljs-runtime/goog.dom.htmlelement.js +7 -0
  85. package/dist/cljs-runtime/goog.dom.htmlelement.js.map +9 -0
  86. package/dist/cljs-runtime/goog.dom.nodetype.js +6 -0
  87. package/dist/cljs-runtime/goog.dom.nodetype.js.map +9 -0
  88. package/dist/cljs-runtime/goog.dom.safe.js +277 -0
  89. package/dist/cljs-runtime/goog.dom.safe.js.map +9 -0
  90. package/dist/cljs-runtime/goog.dom.tagname.js +147 -0
  91. package/dist/cljs-runtime/goog.dom.tagname.js.map +9 -0
  92. package/dist/cljs-runtime/goog.dom.tags.js +10 -0
  93. package/dist/cljs-runtime/goog.dom.tags.js.map +9 -0
  94. package/dist/cljs-runtime/goog.flags.flags.js +12 -0
  95. package/dist/cljs-runtime/goog.flags.flags.js.map +9 -0
  96. package/dist/cljs-runtime/goog.fs.blob.js +38 -0
  97. package/dist/cljs-runtime/goog.fs.blob.js.map +9 -0
  98. package/dist/cljs-runtime/goog.fs.url.js +37 -0
  99. package/dist/cljs-runtime/goog.fs.url.js.map +9 -0
  100. package/dist/cljs-runtime/goog.functions.functions.js +211 -0
  101. package/dist/cljs-runtime/goog.functions.functions.js.map +9 -0
  102. package/dist/cljs-runtime/goog.html.safehtml.js +321 -0
  103. package/dist/cljs-runtime/goog.html.safehtml.js.map +9 -0
  104. package/dist/cljs-runtime/goog.html.safescript.js +65 -0
  105. package/dist/cljs-runtime/goog.html.safescript.js.map +9 -0
  106. package/dist/cljs-runtime/goog.html.safestyle.js +175 -0
  107. package/dist/cljs-runtime/goog.html.safestyle.js.map +9 -0
  108. package/dist/cljs-runtime/goog.html.safestylesheet.js +99 -0
  109. package/dist/cljs-runtime/goog.html.safestylesheet.js.map +9 -0
  110. package/dist/cljs-runtime/goog.html.safeurl.js +231 -0
  111. package/dist/cljs-runtime/goog.html.safeurl.js.map +9 -0
  112. package/dist/cljs-runtime/goog.html.trustedresourceurl.js +123 -0
  113. package/dist/cljs-runtime/goog.html.trustedresourceurl.js.map +9 -0
  114. package/dist/cljs-runtime/goog.html.trustedtypes.js +16 -0
  115. package/dist/cljs-runtime/goog.html.trustedtypes.js.map +9 -0
  116. package/dist/cljs-runtime/goog.html.uncheckedconversions.js +52 -0
  117. package/dist/cljs-runtime/goog.html.uncheckedconversions.js.map +9 -0
  118. package/dist/cljs-runtime/goog.labs.useragent.browser.js +352 -0
  119. package/dist/cljs-runtime/goog.labs.useragent.browser.js.map +9 -0
  120. package/dist/cljs-runtime/goog.labs.useragent.engine.js +73 -0
  121. package/dist/cljs-runtime/goog.labs.useragent.engine.js.map +9 -0
  122. package/dist/cljs-runtime/goog.labs.useragent.highentropy.highentropydata.js +14 -0
  123. package/dist/cljs-runtime/goog.labs.useragent.highentropy.highentropydata.js.map +9 -0
  124. package/dist/cljs-runtime/goog.labs.useragent.highentropy.highentropyvalue.js +74 -0
  125. package/dist/cljs-runtime/goog.labs.useragent.highentropy.highentropyvalue.js.map +9 -0
  126. package/dist/cljs-runtime/goog.labs.useragent.platform.js +147 -0
  127. package/dist/cljs-runtime/goog.labs.useragent.platform.js.map +9 -0
  128. package/dist/cljs-runtime/goog.labs.useragent.useragent.js +21 -0
  129. package/dist/cljs-runtime/goog.labs.useragent.useragent.js.map +9 -0
  130. package/dist/cljs-runtime/goog.labs.useragent.util.js +81 -0
  131. package/dist/cljs-runtime/goog.labs.useragent.util.js.map +9 -0
  132. package/dist/cljs-runtime/goog.math.coordinate.js +97 -0
  133. package/dist/cljs-runtime/goog.math.coordinate.js.map +9 -0
  134. package/dist/cljs-runtime/goog.math.integer.js +445 -0
  135. package/dist/cljs-runtime/goog.math.integer.js.map +9 -0
  136. package/dist/cljs-runtime/goog.math.long.js +437 -0
  137. package/dist/cljs-runtime/goog.math.long.js.map +9 -0
  138. package/dist/cljs-runtime/goog.math.math.js +158 -0
  139. package/dist/cljs-runtime/goog.math.math.js.map +9 -0
  140. package/dist/cljs-runtime/goog.math.size.js +76 -0
  141. package/dist/cljs-runtime/goog.math.size.js.map +9 -0
  142. package/dist/cljs-runtime/goog.object.object.js +284 -0
  143. package/dist/cljs-runtime/goog.object.object.js.map +9 -0
  144. package/dist/cljs-runtime/goog.reflect.reflect.js +32 -0
  145. package/dist/cljs-runtime/goog.reflect.reflect.js.map +9 -0
  146. package/dist/cljs-runtime/goog.string.const.js +35 -0
  147. package/dist/cljs-runtime/goog.string.const.js.map +9 -0
  148. package/dist/cljs-runtime/goog.string.internal.js +119 -0
  149. package/dist/cljs-runtime/goog.string.internal.js.map +9 -0
  150. package/dist/cljs-runtime/goog.string.string.js +462 -0
  151. package/dist/cljs-runtime/goog.string.string.js.map +9 -0
  152. package/dist/cljs-runtime/goog.string.stringbuffer.js +32 -0
  153. package/dist/cljs-runtime/goog.string.stringbuffer.js.map +9 -0
  154. package/dist/cljs-runtime/goog.string.typedstring.js +9 -0
  155. package/dist/cljs-runtime/goog.string.typedstring.js.map +9 -0
  156. package/dist/cljs-runtime/goog.structs.structs.js +199 -0
  157. package/dist/cljs-runtime/goog.structs.structs.js.map +9 -0
  158. package/dist/cljs-runtime/goog.uri.uri.js +628 -0
  159. package/dist/cljs-runtime/goog.uri.uri.js.map +9 -0
  160. package/dist/cljs-runtime/goog.uri.utils.js +326 -0
  161. package/dist/cljs-runtime/goog.uri.utils.js.map +9 -0
  162. package/dist/cljs-runtime/goog.useragent.useragent.js +139 -0
  163. package/dist/cljs-runtime/goog.useragent.useragent.js.map +9 -0
  164. package/dist/cljs-runtime/iris_layout.components.entity_card_group.js +202 -0
  165. package/dist/cljs-runtime/iris_layout.components.entity_card_group.js.map +1 -0
  166. package/dist/cljs-runtime/iris_layout.components.entity_tile.js +295 -0
  167. package/dist/cljs-runtime/iris_layout.components.entity_tile.js.map +1 -0
  168. package/dist/cljs-runtime/iris_layout.components.entity_tile_group.js +33 -0
  169. package/dist/cljs-runtime/iris_layout.components.entity_tile_group.js.map +1 -0
  170. package/dist/cljs-runtime/iris_layout.components.resizer.js +91 -0
  171. package/dist/cljs-runtime/iris_layout.components.resizer.js.map +1 -0
  172. package/dist/cljs-runtime/iris_layout.components.touch_drag.js +399 -0
  173. package/dist/cljs-runtime/iris_layout.components.touch_drag.js.map +1 -0
  174. package/dist/cljs-runtime/iris_layout.core.js +1372 -0
  175. package/dist/cljs-runtime/iris_layout.core.js.map +1 -0
  176. package/dist/cljs-runtime/iris_layout.layout.js +328 -0
  177. package/dist/cljs-runtime/iris_layout.layout.js.map +1 -0
  178. package/dist/cljs-runtime/reagent.core.js +993 -0
  179. package/dist/cljs-runtime/reagent.core.js.map +1 -0
  180. package/dist/cljs-runtime/reagent.debug.js +75 -0
  181. package/dist/cljs-runtime/reagent.debug.js.map +1 -0
  182. package/dist/cljs-runtime/reagent.impl.batching.js +270 -0
  183. package/dist/cljs-runtime/reagent.impl.batching.js.map +1 -0
  184. package/dist/cljs-runtime/reagent.impl.component.js +758 -0
  185. package/dist/cljs-runtime/reagent.impl.component.js.map +1 -0
  186. package/dist/cljs-runtime/reagent.impl.input.js +175 -0
  187. package/dist/cljs-runtime/reagent.impl.input.js.map +1 -0
  188. package/dist/cljs-runtime/reagent.impl.protocols.js +99 -0
  189. package/dist/cljs-runtime/reagent.impl.protocols.js.map +1 -0
  190. package/dist/cljs-runtime/reagent.impl.template.js +660 -0
  191. package/dist/cljs-runtime/reagent.impl.template.js.map +1 -0
  192. package/dist/cljs-runtime/reagent.impl.util.js +748 -0
  193. package/dist/cljs-runtime/reagent.impl.util.js.map +1 -0
  194. package/dist/cljs-runtime/reagent.ratom.js +1668 -0
  195. package/dist/cljs-runtime/reagent.ratom.js.map +1 -0
  196. package/dist/cljs-runtime/shadow.esm.esm_import$react.js +5 -0
  197. package/dist/cljs-runtime/shadow.module.iris-layout.append.js +2 -0
  198. package/dist/cljs-runtime/shadow.module.iris-layout.prepend.js +2 -0
  199. package/dist/iris-layout.js +375 -355
  200. package/dist/styles.css +287 -9
  201. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["cljs/stacktrace.cljc"],"mappings":"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","names":["js/cljs","js/cljs.stacktrace","js/cljs.stacktrace.parse-stacktrace","method-table__5599__auto__","cljs.core.atom","prefer-table__5600__auto__","method-cache__5601__auto__","cached-hierarchy__5602__auto__","hierarchy__5603__auto__","cljs.core.get","fexpr__8323","cljs.core/MultiFn","cljs.core.symbol","cljs.stacktrace/parse-stacktrace","repl-env","st","err","opts","cljs.stacktrace/parse-int","s","js/parseInt","cljs.stacktrace/starts-with?","s0","s1","goog.string/startsWith","cljs.stacktrace/ends-with?","goog.string/endsWith","cljs.stacktrace/string->regex","js/RegExp","cljs.stacktrace/output-directory","or__5002__auto__","cljs.stacktrace/parse-file-line-column","flc","cljs.core/not","cljs.core/re-find","vec__8411","cljs.core.nth","vec__8414","xs","clojure.string.split","pre","line","column","cljs.core.reduce","p__8419","p__8420","vec__8423","vec__8426","post","x","i","cljs.core.conj","cljs.core.map","cljs.core/vector","cljs.core.range","cljs.core/count","file","clojure.string.join","G__8432","clojure.string/replace","G__8433","G__8434","p__8449","p__8450","map__8451","cljs.core/--destructure-map","map__8452","cljs.stacktrace/parse-file","host","host-port","port","asset-path","urlpat","match","cljs.core/contains?","and__5000__auto__","temp__5802__auto__","asset-root","cljs.core.ex_info","cljs.stacktrace/chrome-st-el->frame","st-el","vec__8516","vec__8519","function","cljs.core/first","cljs.core/last","clojure.string/blank?","clojure.string/split-lines","p1__8589#","cljs.core.drop_while","p1__8590#","cljs.core.take_while","p1__8591#","cljs.core.remove","cljs.core/nil?","cljs.core/vec","cljs.stacktrace/safari-st-el->frame","vec__8621","vec__8624","clojure.string/trim","p1__8637#","p1__8638#","p1__8641#","cljs.stacktrace/firefox-clean-function","f","cljs.core.not_EQ_","idx","cljs.stacktrace/firefox-st-el->frame","vec__8669","vec__8672","p1__8688#","p1__8689#","cljs.core._EQ_","p1__8690#","p__8710","map__8711","output-dir","frame-str","clojure.string/starts-with?","vec__8749","vec__8752","parts","file&line","cljs.core.subs","cljs.core/second","file-part","line-part","col-part","G__8758","parse-source-loc-info","process-frame","cljs.stacktrace/remove-ext","cljs.stacktrace/mapped-line-column-call","sms","source-map","columns","p1__8767#","cljs.core.filter","cljs.core.sort","cljs.core/keys","mapped","p1__8768#","p2__8769#","cljs.core/inc","cljs.core/identity","default","adjust","get-best-column","p__8801","map__8802","cljs.stacktrace/mapped-frame","vec__8806","no-source-file?","line'","column'","call","file'","var_args","G__8812","cljs.stacktrace/mapped-stacktrace","js/Error","stacktrace","cljs.stacktrace.mapped_stacktrace","cljs.core/PersistentHashMap","cljs.core.merge_with","munged-fn-name","unmunged-call-name","cljs.core/munge","mapped-frames","p1__8809#","cljs.core/memoize","call-merge","p1__8810#","cljs.core.dissoc","cljs.core.concat","cljs.core/rest","call->function","G__8837","cljs.stacktrace/mapped-stacktrace-str","cljs.stacktrace.mapped_stacktrace_str","sb__5647__auto__","goog.string/StringBuffer","*print-newline*-orig-val__8839","cljs.core/*print-newline*","*print-fn*-orig-val__8840","cljs.core/*print-fn*","*print-newline*-temp-val__8841","*print-fn*-temp-val__8842","x__5648__auto__","seq__8847","cljs.core/seq","chunk__8848","count__8849","i__8850","map__8863","temp__5804__auto__","cljs.core/chunked-seq?","c__5525__auto__","cljs.core/chunk-first","cljs.core/chunk-rest","map__8870","cljs.core/next","cljs.core.println"],"sourcesContent":[";; Copyright (c) Rich Hickey. All rights reserved.\n;; The use and distribution terms for this software are covered by the\n;; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)\n;; which can be found in the file epl-v10.html at the root of this distribution.\n;; By using this software in any fashion, you are agreeing to be bound by\n;; the terms of this license.\n;; You must not remove this notice, or any other, from this software.\n\n(ns cljs.stacktrace\n (:require #?@(:clj [[cljs.util :as util]\n [clojure.java.io :as io]]\n :cljs [[goog.string :as gstring]])\n [clojure.string :as string])\n #?(:clj (:import [java.util.regex Pattern]\n [java.io File])))\n\n(defmulti parse-stacktrace\n \"Parse a JavaScript stacktrace string into a canonical data form. The\n arguments:\n\n repl-env - the repl environment, an optional map with :host and :port keys\n if the stacktrace includes url, not file references\n st - the original stacktrace string to parse\n err - an error map. :ua-product key defines the type of stacktrace parser\n to use, for example :chrome\n opts - additional options. :output-dir maybe given in this argument if\n :host and :port do not apply, for example, a file path\n\n The canonical stacktrace representation can easily be mapped to a\n ClojureScript one see mapped-stacktrace and mapped-stacktrace-str\"\n (fn [repl-env st err opts] (:ua-product err)))\n\n(defn parse-int [s]\n #?(:clj (Long/parseLong s)\n :cljs (js/parseInt s 10)))\n\n(defn starts-with?\n #?(:cljs {:tag boolean})\n [^String s0 s1]\n #?(:clj (.startsWith s0 s1)\n :cljs (gstring/startsWith s0 s1)))\n\n(defn ends-with?\n #?(:cljs {:tag boolean})\n [^String s0 s1]\n #?(:clj (.endsWith s0 s1)\n :cljs (gstring/endsWith s0 s1)))\n\n(defn string->regex [s]\n #?(:clj (Pattern/compile s)\n :cljs (js/RegExp. s)))\n\n(defn output-directory [opts]\n #?(:clj (util/output-directory opts)\n :cljs (or (:output-dir opts) \"out\")))\n\n(defmethod parse-stacktrace :default\n [repl-env st err opts] st)\n\n(defn parse-file-line-column [flc]\n (if-not (re-find #\":\" flc)\n [flc nil nil]\n (let [xs (string/split flc #\":\")\n [pre [line column]]\n (reduce\n (fn [[pre post] [x i]]\n (if (<= i 2)\n [pre (conj post x)]\n [(conj pre x) post]))\n [[] []] (map vector xs (range (count xs) 0 -1)))\n file (string/join \":\" pre)]\n [(cond-> file\n (starts-with? file \"(\") (string/replace \"(\" \"\"))\n (parse-int\n (cond-> line\n (ends-with? line \")\") (string/replace \")\" \"\")))\n (parse-int\n (cond-> column\n (ends-with? column \")\") (string/replace \")\" \"\")))])))\n\n(defn parse-file\n \"Given a browser file url convert it into a relative path that can be used\n to locate the original source.\"\n [{:keys [host host-port port] :as repl-env} file {:keys [asset-path] :as opts}]\n (let [urlpat (if host\n (string->regex\n (str \"http://\" host \":\" (or host-port port) \"/\"))\n \"\")\n match (if host\n (re-find urlpat file)\n (contains? opts :output-dir))]\n (if match\n (-> file\n (string/replace urlpat \"\")\n (string/replace\n (string->regex\n ;; if :asset-path specified drop leading slash\n (str \"^\" (or (and asset-path (string/replace asset-path #\"^/\" \"\"))\n (output-directory opts)) \"/\"))\n \"\"))\n (if-let [asset-root (:asset-root opts)]\n (string/replace file asset-root \"\")\n (throw\n (ex-info (str \"Could not relativize URL \" file)\n {:type :parse-stacktrace\n :reason :relativize-url}))))))\n\n;; -----------------------------------------------------------------------------\n;; Chrome Stacktrace\n\n(defn chrome-st-el->frame\n [repl-env st-el opts]\n (let [xs (-> st-el\n (string/replace #\"\\s+at\\s+\" \"\")\n (string/split #\"\\s+\"))\n [function flc] (if (== 1 (count xs))\n [nil (first xs)]\n [(first xs) (last xs)])\n [file line column] (parse-file-line-column flc)]\n (if (and file function line column)\n {:file (parse-file repl-env file opts)\n :function (string/replace function #\"Object\\.\" \"\")\n :line line\n :column column}\n (when-not (string/blank? function)\n {:file nil\n :function (string/replace function #\"Object\\.\" \"\")\n :line nil\n :column nil}))))\n\n(comment\n (chrome-st-el->frame {:host \"localhost\" :port 9000}\n \"\\tat cljs$core$ffirst (http://localhost:9000/out/cljs/core.js:5356:34)\" {})\n )\n\n(defmethod parse-stacktrace :chrome\n [repl-env st err opts]\n (->> st\n string/split-lines\n (drop-while #(starts-with? % \"Error\"))\n (take-while #(not (starts-with? % \" at eval\")))\n (map #(chrome-st-el->frame repl-env % opts))\n (remove nil?)\n vec))\n\n(comment\n (parse-stacktrace {:host \"localhost\" :port 9000}\n \"Error: 1 is not ISeqable\n at Object.cljs$core$seq [as seq] (http://localhost:9000/out/cljs/core.js:4258:8)\n at Object.cljs$core$first [as first] (http://localhost:9000/out/cljs/core.js:4288:19)\n at cljs$core$ffirst (http://localhost:9000/out/cljs/core.js:5356:34)\n at http://localhost:9000/out/cljs/core.js:16971:89\n at cljs.core.map.cljs$core$map__2 (http://localhost:9000/out/cljs/core.js:16972:3)\n at http://localhost:9000/out/cljs/core.js:10981:129\n at cljs.core.LazySeq.sval (http://localhost:9000/out/cljs/core.js:10982:3)\n at cljs.core.LazySeq.cljs$core$ISeqable$_seq$arity$1 (http://localhost:9000/out/cljs/core.js:11073:10)\n at Object.cljs$core$seq [as seq] (http://localhost:9000/out/cljs/core.js:4239:13)\n at Object.cljs$core$pr_sequential_writer [as pr_sequential_writer] (http://localhost:9000/out/cljs/core.js:28706:14)\"\n {:ua-product :chrome}\n nil)\n\n (parse-stacktrace {:host \"localhost\" :port 9000}\n \"Error: 1 is not ISeqable\n at Object.cljs$core$seq [as seq] (http://localhost:9000/js/cljs/core.js:4258:8)\n at Object.cljs$core$first [as first] (http://localhost:9000/js/cljs/core.js:4288:19)\n at cljs$core$ffirst (http://localhost:9000/js/cljs/core.js:5356:34)\n at http://localhost:9000/js/cljs/core.js:16971:89\n at cljs.core.map.cljs$core$map__2 (http://localhost:9000/js/cljs/core.js:16972:3)\n at http://localhost:9000/js/cljs/core.js:10981:129\n at cljs.core.LazySeq.sval (http://localhost:9000/js/cljs/core.js:10982:3)\n at cljs.core.LazySeq.cljs$core$ISeqable$_seq$arity$1 (http://localhost:9000/js/cljs/core.js:11073:10)\n at Object.cljs$core$seq [as seq] (http://localhost:9000/js/cljs/core.js:4239:13)\n at Object.cljs$core$pr_sequential_writer [as pr_sequential_writer] (http://localhost:9000/js/cljs/core.js:28706:14)\"\n {:ua-product :chrome}\n {:asset-path \"/js\"})\n\n (parse-stacktrace {:host \"localhost\" :port 9000}\n \"Error: 1 is not ISeqable\n at Object.cljs$core$seq [as seq] (http://localhost:9000/out/cljs/core.js:4259:8)\n at Object.cljs$core$first [as first] (http://localhost:9000/out/cljs/core.js:4289:19)\n at cljs$core$ffirst (http://localhost:9000/out/cljs/core.js:5357:18)\n at eval (eval at <anonymous> (http://localhost:9000/out/clojure/browser/repl.js:23:272), <anonymous>:1:106)\n at eval (eval at <anonymous> (http://localhost:9000/out/clojure/browser/repl.js:23:272), <anonymous>:9:3)\n at eval (eval at <anonymous> (http://localhost:9000/out/clojure/browser/repl.js:23:272), <anonymous>:14:4)\n at http://localhost:9000/out/clojure/browser/repl.js:23:267\n at clojure$browser$repl$evaluate_javascript (http://localhost:9000/out/clojure/browser/repl.js:26:4)\n at Object.callback (http://localhost:9000/out/clojure/browser/repl.js:121:169)\n at goog.messaging.AbstractChannel.deliver (http://localhost:9000/out/goog/messaging/abstractchannel.js:142:13)\"\n {:ua-product :chrome}\n nil)\n\n ;; Node.js example\n (parse-stacktrace {}\n \"Error: 1 is not ISeqable\n at Object.cljs$core$seq [as seq] (/home/my/cool/project/.cljs_bootstrap/cljs/core.js:3999:8)\n at Object.cljs$core$first [as first] (/home/my/cool/project/.cljs_bootstrap/cljs/core.js:4018:19)\n at cljs$core$ffirst (/home/my/cool/project/.cljs_bootstrap/cljs/core.js:5161:34)\n at /home/my/cool/project/.cljs_bootstrap/cljs/core.js:16006:88\n at cljs.core.map.cljs$core$IFn$_invoke$arity$2 (/home/my/cool/project/.cljs_bootstrap/cljs/core.js:16007:3)\n at cljs.core.LazySeq.sval (/home/my/cool/project/.cljs_bootstrap/cljs/core.js:10244:109)\n at cljs.core.LazySeq.cljs$core$ISeqable$_seq$arity$1 (/home/my/cool/project/.cljs_bootstrap/cljs/core.js:10335:10)\n at Object.cljs$core$seq [as seq] (/home/my/cool/project/.cljs_bootstrap/cljs/core.js:3980:13)\n at Object.cljs$core$pr_sequential_writer [as pr_sequential_writer] (/home/my/cool/project/.cljs_bootstrap/cljs/core.js:28084:14)\n at cljs.core.LazySeq.cljs$core$IPrintWithWriter$_pr_writer$arity$3 (/home/my/cool/project/.cljs_bootstrap/cljs/core.js:28812:18)\"\n {:ua-product :chrome}\n {:output-dir \"/home/my/cool/project/.cljs_bootstrap\"})\n )\n\n;; -----------------------------------------------------------------------------\n;; Safari Stacktrace\n\n(defn safari-st-el->frame\n [repl-env st-el opts]\n (let [[function flc] (if (re-find #\"@\" st-el)\n (string/split st-el #\"@\")\n [nil st-el])\n [file line column] (parse-file-line-column flc)]\n (if (and file function line column)\n {:file (parse-file repl-env file opts)\n :function (string/trim function)\n :line line\n :column column}\n (when-not (string/blank? function)\n {:file nil\n :function (string/trim function)\n :line nil\n :column nil}))))\n\n(comment\n (safari-st-el->frame {:host \"localhost\" :port 9000}\n \"cljs$core$seq@http://localhost:9000/out/cljs/core.js:4259:17\" {})\n\n (safari-st-el->frame {:host \"localhost\" :port 9000}\n \"cljs$core$seq@http://localhost:9000/js/cljs/core.js:4259:17\" {:asset-path \"js\"})\n )\n\n(defmethod parse-stacktrace :safari\n [repl-env st err opts]\n (->> st\n string/split-lines\n (drop-while #(starts-with? % \"Error\"))\n (take-while #(not (starts-with? % \"eval code\")))\n (remove string/blank?)\n (map #(safari-st-el->frame repl-env % opts))\n (remove nil?)\n vec))\n\n(comment\n (parse-stacktrace {}\n \"cljs$core$seq@out/cljs/core.js:3999:17\n cljs$core$first@out/cljs/core.js:4018:22\n cljs$core$ffirst@out/cljs/core.js:5161:39\n global code\"\n {:ua-product :safari}\n {:output-dir \"out\"})\n\n (parse-stacktrace {:host \"localhost\" :port 9000}\n \"cljs$core$seq@http://localhost:9000/out/cljs/core.js:4259:17\ncljs$core$first@http://localhost:9000/out/cljs/core.js:4289:22\ncljs$core$ffirst@http://localhost:9000/out/cljs/core.js:5357:39\nhttp://localhost:9000/out/cljs/core.js:16972:92\nhttp://localhost:9000/out/cljs/core.js:16973:3\nhttp://localhost:9000/out/cljs/core.js:10982:133\nsval@http://localhost:9000/out/cljs/core.js:10983:3\ncljs$core$ISeqable$_seq$arity$1@http://localhost:9000/out/cljs/core.js:11074:14\ncljs$core$seq@http://localhost:9000/out/cljs/core.js:4240:44\ncljs$core$pr_sequential_writer@http://localhost:9000/out/cljs/core.js:28707:17\ncljs$core$IPrintWithWriter$_pr_writer$arity$3@http://localhost:9000/out/cljs/core.js:29386:38\ncljs$core$pr_writer_impl@http://localhost:9000/out/cljs/core.js:28912:57\ncljs$core$pr_writer@http://localhost:9000/out/cljs/core.js:29011:32\ncljs$core$pr_seq_writer@http://localhost:9000/out/cljs/core.js:29015:20\ncljs$core$pr_sb_with_opts@http://localhost:9000/out/cljs/core.js:29078:24\ncljs$core$pr_str_with_opts@http://localhost:9000/out/cljs/core.js:29092:48\ncljs$core$pr_str__delegate@http://localhost:9000/out/cljs/core.js:29130:34\ncljs$core$pr_str@http://localhost:9000/out/cljs/core.js:29139:39\neval code\neval@[native code]\nhttp://localhost:9000/out/clojure/browser/repl.js:23:271\nclojure$browser$repl$evaluate_javascript@http://localhost:9000/out/clojure/browser/repl.js:26:4\nhttp://localhost:9000/out/clojure/browser/repl.js:121:173\ndeliver@http://localhost:9000/out/goog/messaging/abstractchannel.js:142:21\nxpcDeliver@http://localhost:9000/out/goog/net/xpc/crosspagechannel.js:733:19\nmessageReceived_@http://localhost:9000/out/goog/net/xpc/nativemessagingtransport.js:321:23\nfireListener@http://localhost:9000/out/goog/events/events.js:741:25\nhandleBrowserEvent_@http://localhost:9000/out/goog/events/events.js:862:34\nhttp://localhost:9000/out/goog/events/events.js:276:42\"\n {:ua-product :safari}\n nil)\n )\n\n;; -----------------------------------------------------------------------------\n;; Firefox Stacktrace\n\n(defn firefox-clean-function [f]\n (as-> f f\n (cond\n (string/blank? f) nil\n (not= (.indexOf f \"</\") -1)\n (let [idx (.indexOf f \"</\")]\n (.substring f (+ idx 2)))\n :else f)\n (-> f\n (string/replace #\"<\" \"\")\n (string/replace #?(:clj #\"\\/\" :cljs (js/RegExp. \"\\\\/\")) \"\"))))\n\n(defn firefox-st-el->frame\n [repl-env st-el opts]\n (let [[function flc] (if (re-find #\"@\" st-el)\n (string/split st-el #\"@\")\n [nil st-el])\n [file line column] (parse-file-line-column flc)]\n (if (and file function line column)\n {:file (parse-file repl-env file opts)\n :function (firefox-clean-function function)\n :line line\n :column column}\n (when-not (string/blank? function)\n {:file nil\n :function (firefox-clean-function function)\n :line nil\n :column nil}))))\n\n(comment\n (firefox-st-el->frame {:host \"localhost\" :port 9000}\n \"cljs$core$seq@http://localhost:9000/out/cljs/core.js:4258:8\" {})\n\n (firefox-st-el->frame {:host \"localhost\" :port 9000}\n \"cljs.core.map</cljs$core$map__2/</<@http://localhost:9000/out/cljs/core.js:16971:87\" {})\n\n (firefox-st-el->frame {:host \"localhost\" :port 9000}\n \"cljs.core.map</cljs$core$map__2/</<@http://localhost:9000/out/cljs/core.js:16971:87\" {})\n\n (firefox-st-el->frame {:host \"localhost\" :port 9000}\n \"cljs.core.pr_str</cljs$core$pr_str@http://localhost:9000/out/cljs/core.js:29138:8\" {})\n\n (firefox-st-el->frame {:host \"localhost\" :port 9000}\n \"cljs.core.pr_str</cljs$core$pr_str__delegate@http://localhost:9000/out/cljs/core.js:29129:8\" {})\n )\n\n(defmethod parse-stacktrace :firefox\n [repl-env st err opts]\n (->> st\n string/split-lines\n (drop-while #(starts-with? % \"Error\"))\n (take-while #(= (.indexOf % \"> eval\") -1))\n (remove string/blank?)\n (map #(firefox-st-el->frame repl-env % opts))\n (remove nil?)\n vec))\n\n(comment\n (parse-stacktrace {:host \"localhost\" :port 9000}\n \"cljs$core$seq@http://localhost:9000/out/cljs/core.js:4258:8\ncljs$core$first@http://localhost:9000/out/cljs/core.js:4288:9\ncljs$core$ffirst@http://localhost:9000/out/cljs/core.js:5356:24\ncljs.core.map</cljs$core$map__2/</<@http://localhost:9000/out/cljs/core.js:16971:87\ncljs.core.map</cljs$core$map__2/<@http://localhost:9000/out/cljs/core.js:16970:1\ncljs.core.LazySeq.prototype.sval/self__.s<@http://localhost:9000/out/cljs/core.js:10981:119\ncljs.core.LazySeq.prototype.sval@http://localhost:9000/out/cljs/core.js:10981:13\ncljs.core.LazySeq.prototype.cljs$core$ISeqable$_seq$arity$1@http://localhost:9000/out/cljs/core.js:11073:1\ncljs$core$seq@http://localhost:9000/out/cljs/core.js:4239:8\ncljs$core$pr_sequential_writer@http://localhost:9000/out/cljs/core.js:28706:4\ncljs.core.LazySeq.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3@http://localhost:9000/out/cljs/core.js:29385:8\ncljs$core$pr_writer_impl@http://localhost:9000/out/cljs/core.js:28911:8\ncljs$core$pr_writer@http://localhost:9000/out/cljs/core.js:29010:8\ncljs$core$pr_seq_writer@http://localhost:9000/out/cljs/core.js:29014:1\ncljs$core$pr_sb_with_opts@http://localhost:9000/out/cljs/core.js:29077:1\ncljs$core$pr_str_with_opts@http://localhost:9000/out/cljs/core.js:29091:23\ncljs.core.pr_str</cljs$core$pr_str__delegate@http://localhost:9000/out/cljs/core.js:29129:8\ncljs.core.pr_str</cljs$core$pr_str@http://localhost:9000/out/cljs/core.js:29138:8\n@http://localhost:9000/out/clojure/browser/repl.js line 23 > eval:1:25\n@http://localhost:9000/out/clojure/browser/repl.js line 23 > eval:1:2\nclojure$browser$repl$evaluate_javascript/result<@http://localhost:9000/out/clojure/browser/repl.js:23:267\nclojure$browser$repl$evaluate_javascript@http://localhost:9000/out/clojure/browser/repl.js:23:15\nclojure$browser$repl$connect/</<@http://localhost:9000/out/clojure/browser/repl.js:121:128\ngoog.messaging.AbstractChannel.prototype.deliver@http://localhost:9000/out/goog/messaging/abstractchannel.js:142:5\ngoog.net.xpc.CrossPageChannel.prototype.xpcDeliver@http://localhost:9000/out/goog/net/xpc/crosspagechannel.js:733:7\ngoog.net.xpc.NativeMessagingTransport.messageReceived_@http://localhost:9000/out/goog/net/xpc/nativemessagingtransport.js:321:1\ngoog.events.fireListener@http://localhost:9000/out/goog/events/events.js:741:10\ngoog.events.handleBrowserEvent_@http://localhost:9000/out/goog/events/events.js:862:1\ngoog.events.getProxy/f<@http://localhost:9000/out/goog/events/events.js:276:16\"\n {:ua-product :firefox}\n nil)\n )\n\n;; -----------------------------------------------------------------------------\n;; Node.js Stacktrace\n\n(defmethod parse-stacktrace :nodejs\n [repl-env st err {:keys [output-dir] :as opts}]\n (letfn [(parse-source-loc-info [x]\n (when (and x (not (string/blank? x)))\n (parse-int x)))\n (process-frame [frame-str]\n (when-not (or (string/blank? frame-str)\n (nil? (re-find #\"^\\s+at\" frame-str)))\n (let [frame-str (string/replace frame-str #\"\\s+at\\s+\" \"\")]\n (when-not (string/starts-with? frame-str \"repl:\")\n (let [parts (string/split frame-str #\"\\s+\")\n [function file&line] (if (== 2 (count parts))\n [(first parts)\n (subs (second parts) 1\n (dec (count (second parts))))]\n [nil (first parts)])\n [file-part line-part col-part] (string/split file&line #\":\")]\n {:file (if function\n (cond-> file-part\n output-dir\n (string/replace\n (str output-dir\n #?(:clj File/separator :cljs \"/\"))\n \"\"))\n file-part)\n :function function\n :line (parse-source-loc-info line-part)\n :column (parse-source-loc-info col-part)})))))]\n (->> (string/split st #\"\\n\")\n (map process-frame)\n (remove nil?)\n vec)))\n\n(comment\n (parse-stacktrace {}\n \"Error: 1 is not ISeqable\n at cljs$core$seq (.cljs_node_repl/cljs/core.cljs:1118:20)\n at repl:1:65\n at repl:9:4\n at repl:17:3\n at repl:22:4\n at Object.exports.runInThisContext (vm.js:54:17)\n at Domain.<anonymous> ([stdin]:41:34)\n at Domain.run (domain.js:228:14)\n at Socket.<anonymous> ([stdin]:40:25)\n at emitOne (events.js:77:13)\"\n\n {:ua-product :nodejs}\n {:output-dir \".cljs_node_repl\"})\n )\n\n;; -----------------------------------------------------------------------------\n;; Stacktrace Mapping\n\n(defn remove-ext [file]\n (-> file\n (string/replace #\"\\.js$\" \"\")\n (string/replace #\"\\.cljs$\" \"\")\n (string/replace #\"\\.cljc$\" \"\")\n (string/replace #\"\\.clj$\" \"\")))\n\n(defn mapped-line-column-call\n \"Given a cljs.source-map source map data structure map a generated line\n and column back to the original line, column, and function called.\"\n [sms file line column]\n (let [source-map (get sms (symbol (string/replace (remove-ext file) \"/\" \".\")))]\n ;; source maps are 0 indexed for columns\n ;; multiple segments may exist at column\n ;; the last segment seems most accurate\n (letfn [(get-best-column [columns column]\n (last (or (get columns\n (last (filter #(<= % (dec column))\n (sort (keys columns)))))\n (second (first columns)))))\n (adjust [mapped]\n (vec (map #(%1 %2) [inc inc identity] mapped)))]\n (let [default [line column nil]]\n ;; source maps are 0 indexed for lines\n (if-let [columns (get source-map (dec line))]\n (adjust (map (get-best-column columns column) [:line :col :name]))\n default)))))\n\n(defn mapped-frame\n \"Given opts and a canonicalized JavaScript stacktrace frame, return the\n ClojureScript frame.\"\n [{:keys [function file line column]} sms opts]\n (let [no-source-file? (if-not file true (starts-with? file \"<\"))\n [line' column' call] (if no-source-file?\n [line column nil]\n (mapped-line-column-call sms file line column))\n file' (when-not no-source-file?\n (if (ends-with? file \".js\")\n (str (subs file 0 (- (count file) 3)) \".cljs\")\n file))]\n {:function function\n :call call\n :file (if no-source-file?\n (str \"NO_SOURCE_FILE\" (when file (str \" \" file)))\n file')\n :line line'\n :column column'}))\n\n(defn mapped-stacktrace\n \"Given a vector representing the canonicalized JavaScript stacktrace\n return the ClojureScript stacktrace. The canonical stacktrace must be\n in the form:\n\n [{:file <string>\n :function <string>\n :line <integer>\n :column <integer>}*]\n\n :file must be a URL path (without protocol) relative to :output-dir or a\n identifier delimited by angle brackets. The returned mapped stacktrace will\n also contain :url entries to the original sources if it can be determined\n from the classpath.\"\n ([stacktrace sms]\n (mapped-stacktrace stacktrace sms nil))\n ([stacktrace sms opts]\n (letfn [(call->function [x]\n (if (:call x)\n (hash-map :function (:call x))\n {}))\n (call-merge [function call]\n (merge-with\n (fn [munged-fn-name unmunged-call-name]\n (if (= munged-fn-name\n (string/replace (munge unmunged-call-name) \".\" \"$\"))\n unmunged-call-name\n munged-fn-name))\n function call))]\n (let [mapped-frames (map (memoize #(mapped-frame % sms opts)) stacktrace)]\n ;; take each non-nil :call and optionally merge it into :function one-level\n ;; up to avoid replacing with local symbols, we only replace munged name if\n ;; we can munge call symbol back to it\n (vec (map call-merge\n (map #(dissoc % :call) mapped-frames)\n (concat (rest (map call->function mapped-frames)) [{}])))))))\n\n(defn mapped-stacktrace-str\n \"Given a vector representing the canonicalized JavaScript stacktrace and a map\n of library names to decoded source maps, print the ClojureScript stacktrace .\n See mapped-stacktrace.\"\n ([stacktrace sms]\n (mapped-stacktrace-str stacktrace sms nil))\n ([stacktrace sms opts]\n (with-out-str\n (doseq [{:keys [function file line column]}\n (mapped-stacktrace stacktrace sms opts)]\n (println \"\\t\"\n (str (when function (str function \" \"))\n \"(\" file (when line (str \":\" line))\n (when column (str \":\" column)) \")\"))))))\n\n(comment\n (require '[cljs.closure :as cljsc]\n '[cljs.vendor.clojure.data.json :as json]\n '[cljs.source-map :as sm]\n '[clojure.pprint :as pp])\n\n (cljsc/build \"samples/hello/src\"\n {:optimizations :none\n :output-dir \"samples/hello/out\"\n :output-to \"samples/hello/out/hello.js\"\n :source-map true})\n\n (def sms\n {'hello.core\n (sm/decode\n (json/read-str\n (slurp \"samples/hello/out/hello/core.js.map\")\n :key-fn keyword))})\n\n (pp/pprint sms)\n\n ;; maps to :line 5 :column 24\n (mapped-stacktrace\n [{:file \"hello/core.js\"\n :function \"first\"\n :line 6\n :column 0}]\n sms {:output-dir \"samples/hello/out\"})\n\n (mapped-stacktrace-str\n [{:file \"hello/core.js\"\n :function \"first\"\n :line 6\n :column 0}]\n sms {:output-dir \"samples/hello/out\"})\n )\n"],"x_google_ignoreList":[0]}