longdown 2023.4.18

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 (125) hide show
  1. package/LICENSE +10 -0
  2. package/README.md +77 -0
  3. package/bin/cli.js +3 -0
  4. package/lib/cli.js +120 -0
  5. package/lib/cljs-runtime/cljs.core.js +38285 -0
  6. package/lib/cljs-runtime/cljs.core.js.map +1 -0
  7. package/lib/cljs-runtime/cljs_env.js +1268 -0
  8. package/lib/cljs-runtime/clojure.string.js +477 -0
  9. package/lib/cljs-runtime/clojure.string.js.map +1 -0
  10. package/lib/cljs-runtime/clojure.tools.cli.js +1684 -0
  11. package/lib/cljs-runtime/clojure.tools.cli.js.map +1 -0
  12. package/lib/cljs-runtime/clojure.walk.js +131 -0
  13. package/lib/cljs-runtime/clojure.walk.js.map +1 -0
  14. package/lib/cljs-runtime/goog.array.array.js +658 -0
  15. package/lib/cljs-runtime/goog.array.array.js.map +9 -0
  16. package/lib/cljs-runtime/goog.asserts.asserts.js +131 -0
  17. package/lib/cljs-runtime/goog.asserts.asserts.js.map +9 -0
  18. package/lib/cljs-runtime/goog.asserts.dom.js +87 -0
  19. package/lib/cljs-runtime/goog.asserts.dom.js.map +9 -0
  20. package/lib/cljs-runtime/goog.base.js +1242 -0
  21. package/lib/cljs-runtime/goog.base.js.map +9 -0
  22. package/lib/cljs-runtime/goog.collections.maps.js +79 -0
  23. package/lib/cljs-runtime/goog.collections.maps.js.map +9 -0
  24. package/lib/cljs-runtime/goog.debug.error.js +29 -0
  25. package/lib/cljs-runtime/goog.debug.error.js.map +9 -0
  26. package/lib/cljs-runtime/goog.dom.asserts.js +39 -0
  27. package/lib/cljs-runtime/goog.dom.asserts.js.map +9 -0
  28. package/lib/cljs-runtime/goog.dom.element.js +67 -0
  29. package/lib/cljs-runtime/goog.dom.element.js.map +9 -0
  30. package/lib/cljs-runtime/goog.dom.htmlelement.js +6 -0
  31. package/lib/cljs-runtime/goog.dom.htmlelement.js.map +9 -0
  32. package/lib/cljs-runtime/goog.dom.nodetype.js +5 -0
  33. package/lib/cljs-runtime/goog.dom.nodetype.js.map +9 -0
  34. package/lib/cljs-runtime/goog.dom.safe.js +265 -0
  35. package/lib/cljs-runtime/goog.dom.safe.js.map +9 -0
  36. package/lib/cljs-runtime/goog.dom.tagname.js +146 -0
  37. package/lib/cljs-runtime/goog.dom.tagname.js.map +9 -0
  38. package/lib/cljs-runtime/goog.dom.tags.js +9 -0
  39. package/lib/cljs-runtime/goog.dom.tags.js.map +9 -0
  40. package/lib/cljs-runtime/goog.flags.flags.js +11 -0
  41. package/lib/cljs-runtime/goog.flags.flags.js.map +9 -0
  42. package/lib/cljs-runtime/goog.fs.blob.js +37 -0
  43. package/lib/cljs-runtime/goog.fs.blob.js.map +9 -0
  44. package/lib/cljs-runtime/goog.fs.url.js +36 -0
  45. package/lib/cljs-runtime/goog.fs.url.js.map +9 -0
  46. package/lib/cljs-runtime/goog.functions.functions.js +210 -0
  47. package/lib/cljs-runtime/goog.functions.functions.js.map +9 -0
  48. package/lib/cljs-runtime/goog.html.safehtml.js +306 -0
  49. package/lib/cljs-runtime/goog.html.safehtml.js.map +9 -0
  50. package/lib/cljs-runtime/goog.html.safescript.js +61 -0
  51. package/lib/cljs-runtime/goog.html.safescript.js.map +9 -0
  52. package/lib/cljs-runtime/goog.html.safestyle.js +170 -0
  53. package/lib/cljs-runtime/goog.html.safestyle.js.map +9 -0
  54. package/lib/cljs-runtime/goog.html.safestylesheet.js +93 -0
  55. package/lib/cljs-runtime/goog.html.safestylesheet.js.map +9 -0
  56. package/lib/cljs-runtime/goog.html.safeurl.js +225 -0
  57. package/lib/cljs-runtime/goog.html.safeurl.js.map +9 -0
  58. package/lib/cljs-runtime/goog.html.trustedresourceurl.js +113 -0
  59. package/lib/cljs-runtime/goog.html.trustedresourceurl.js.map +9 -0
  60. package/lib/cljs-runtime/goog.html.trustedtypes.js +15 -0
  61. package/lib/cljs-runtime/goog.html.trustedtypes.js.map +9 -0
  62. package/lib/cljs-runtime/goog.html.uncheckedconversions.js +43 -0
  63. package/lib/cljs-runtime/goog.html.uncheckedconversions.js.map +9 -0
  64. package/lib/cljs-runtime/goog.labs.useragent.browser.js +332 -0
  65. package/lib/cljs-runtime/goog.labs.useragent.browser.js.map +9 -0
  66. package/lib/cljs-runtime/goog.labs.useragent.highentropy.highentropydata.js +13 -0
  67. package/lib/cljs-runtime/goog.labs.useragent.highentropy.highentropydata.js.map +9 -0
  68. package/lib/cljs-runtime/goog.labs.useragent.highentropy.highentropyvalue.js +72 -0
  69. package/lib/cljs-runtime/goog.labs.useragent.highentropy.highentropyvalue.js.map +9 -0
  70. package/lib/cljs-runtime/goog.labs.useragent.useragent.js +20 -0
  71. package/lib/cljs-runtime/goog.labs.useragent.useragent.js.map +9 -0
  72. package/lib/cljs-runtime/goog.labs.useragent.util.js +77 -0
  73. package/lib/cljs-runtime/goog.labs.useragent.util.js.map +9 -0
  74. package/lib/cljs-runtime/goog.math.integer.js +425 -0
  75. package/lib/cljs-runtime/goog.math.integer.js.map +9 -0
  76. package/lib/cljs-runtime/goog.math.long.js +427 -0
  77. package/lib/cljs-runtime/goog.math.long.js.map +9 -0
  78. package/lib/cljs-runtime/goog.object.object.js +283 -0
  79. package/lib/cljs-runtime/goog.object.object.js.map +9 -0
  80. package/lib/cljs-runtime/goog.reflect.reflect.js +31 -0
  81. package/lib/cljs-runtime/goog.reflect.reflect.js.map +9 -0
  82. package/lib/cljs-runtime/goog.string.const.js +33 -0
  83. package/lib/cljs-runtime/goog.string.const.js.map +9 -0
  84. package/lib/cljs-runtime/goog.string.internal.js +118 -0
  85. package/lib/cljs-runtime/goog.string.internal.js.map +9 -0
  86. package/lib/cljs-runtime/goog.string.string.js +458 -0
  87. package/lib/cljs-runtime/goog.string.string.js.map +9 -0
  88. package/lib/cljs-runtime/goog.string.stringbuffer.js +31 -0
  89. package/lib/cljs-runtime/goog.string.stringbuffer.js.map +9 -0
  90. package/lib/cljs-runtime/goog.string.stringformat.js +74 -0
  91. package/lib/cljs-runtime/goog.string.stringformat.js.map +9 -0
  92. package/lib/cljs-runtime/goog.string.typedstring.js +8 -0
  93. package/lib/cljs-runtime/goog.string.typedstring.js.map +9 -0
  94. package/lib/cljs-runtime/goog.structs.structs.js +188 -0
  95. package/lib/cljs-runtime/goog.structs.structs.js.map +9 -0
  96. package/lib/cljs-runtime/goog.uri.uri.js +616 -0
  97. package/lib/cljs-runtime/goog.uri.uri.js.map +9 -0
  98. package/lib/cljs-runtime/goog.uri.utils.js +320 -0
  99. package/lib/cljs-runtime/goog.uri.utils.js.map +9 -0
  100. package/lib/cljs-runtime/longdown.cli.js +128 -0
  101. package/lib/cljs-runtime/longdown.cli.js.map +1 -0
  102. package/lib/cljs-runtime/longdown.lib.js +122 -0
  103. package/lib/cljs-runtime/longdown.lib.js.map +1 -0
  104. package/lib/cljs-runtime/shadow.esm.esm_import$mdast_util_from_markdown.js +5 -0
  105. package/lib/cljs-runtime/shadow.esm.esm_import$mdast_util_from_markdown.js.map +9 -0
  106. package/lib/cljs-runtime/shadow.esm.esm_import$mdast_util_to_markdown$lib$unsafe.js +5 -0
  107. package/lib/cljs-runtime/shadow.esm.esm_import$mdast_util_to_markdown$lib$unsafe.js.map +9 -0
  108. package/lib/cljs-runtime/shadow.esm.esm_import$mdast_util_to_markdown.js +5 -0
  109. package/lib/cljs-runtime/shadow.esm.esm_import$mdast_util_to_markdown.js.map +9 -0
  110. package/lib/cljs-runtime/shadow.esm.esm_import$node_fs.js +5 -0
  111. package/lib/cljs-runtime/shadow.esm.esm_import$node_fs.js.map +9 -0
  112. package/lib/cljs-runtime/shadow.esm.esm_import$node_path.js +5 -0
  113. package/lib/cljs-runtime/shadow.esm.esm_import$node_path.js.map +9 -0
  114. package/lib/cljs-runtime/shadow.esm.esm_import$remark_parse.js +5 -0
  115. package/lib/cljs-runtime/shadow.esm.esm_import$remark_parse.js.map +9 -0
  116. package/lib/cljs-runtime/shadow.esm.esm_import$remark_stringify.js +5 -0
  117. package/lib/cljs-runtime/shadow.esm.esm_import$remark_stringify.js.map +9 -0
  118. package/lib/cljs-runtime/shadow.esm.esm_import$unified.js +5 -0
  119. package/lib/cljs-runtime/shadow.esm.esm_import$unified.js.map +9 -0
  120. package/lib/cljs-runtime/shadow.module.cli.append.js +1 -0
  121. package/lib/cljs-runtime/shadow.module.cli.prepend.js +17 -0
  122. package/lib/cljs-runtime/shadow.module.lib.append.js +1 -0
  123. package/lib/cljs-runtime/shadow.module.lib.prepend.js +2 -0
  124. package/lib/lib.js +8 -0
  125. package/package.json +33 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["clojure/tools/cli.cljc"],"mappings":"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","names":["var_args","args__5775__auto__","len__5769__auto__","i__5770__auto__","argseq__5776__auto__","cljs.core/IndexedSeq","clojure.tools.cli/tokenize-args","seq21500","G__21501","cljs.core/first","cljs.core/next","G__21502","self__5754__auto__","required-set","args","options","map__21508","cljs.core/--destructure-map","cljs.core.get","in-order","cljs.core.apply","cljs.core/hash-map","G__21512","vec__21513","seq__21514","cljs.core/seq","first__21515","vec__21562","seq__21563","first__21564","opts","argv","car","cdr","pred__21565","expr__21566","G__21568","G__21569","G__21571","G__21572","G__21574","G__21575","G__21579","G__21580","cljs.core/re-seq","cljs.core.into","cljs.core.conj","clojure.string.split","vec__21576","cljs.core.nth","optarg","cljs.core/contains?","cljs.core/rest","vec__21581","os","G__21587","vec__21588","seq__21589","first__21590","vec__21599","seq__21600","first__21601","c","cs","o","clojure.string.join","cljs.core/cons","clojure.tools.cli/make-format","lens","p1__21606#","cljs.core.map","p__21607","map__21608","clojure.tools.cli/build-doc","switches","docs","default","cljs.core/str","cljs.core.interpose","or__5045__auto__","clojure.tools.cli/format","seq21610","G__21611","fmt","js/goog.string.format","clojure.tools.cli/banner-for","desc","specs","cljs.core.println","cljs.core/println","max-cols","iter__5523__auto__","s__21619","cljs.core/LazySeq","temp__5804__auto__","cljs.core/chunked-seq?","c__5521__auto__","size__5522__auto__","cljs.core/count","b__21621","cljs.core/chunk-buffer","i__21620","cljs.core/-nth","cljs.core/chunk-append","cljs.core/chunk-cons","cljs.core/chunk","iter__21618","cljs.core/chunk-rest","d","cljs.core/map","cljs.core/vector","p1__21615#","cljs.core/max","vs","s__21623","b__21625","i__21624","iter__21622","cljs.core.mapcat","x","seq__21626","chunk__21627","count__21628","i__21629","c__5568__auto__","cljs.core/chunk-first","v","cljs.core.take_nth","cljs.core.print","cljs.core/prn","clojure.tools.cli/name-for","k","clojure.string/replace","clojure.tools.cli/flag-for","clojure.string/starts-with?","clojure.tools.cli/opt?","clojure.tools.cli/flag?","clojure.tools.cli/end-of-args?","cljs.core._EQ_","clojure.tools.cli/spec-for","arg","cljs.core.filter","s","cljs.core/set","clojure.tools.cli/default-values-for","cljs.core.reduce","m","G__21631","G__21632","G__21633","fexpr__21630","clojure.tools.cli/apply-specs","extra-args","cljs.core/not","opt","spec","cljs.core/vec","js/Error","and__5043__auto__","G__21645","G__21646","G__21647","fexpr__21644","G__21649","G__21650","G__21651","fexpr__21648","G__21653","fexpr__21652","cljs.core/second","cljs.core.drop","clojure.tools.cli/switches-for","flag","s__21655","b__21657","i__21656","iter__21654","cljs.core/flatten","clojure.tools.cli/generate-spec","raw-spec","vec__21659","vec__21662","p1__21658#","cljs.core/split-with","cljs.core/string?","aliases","cljs.core/last","cljs.core.merge","cljs.core.keyword","cljs.core/identity","cljs.core/assoc","clojure.tools.cli/normalize-args","vec__21665","required-opts","cljs.core/complement","largs","cljs.core.take_while","cljs.core.partial","cljs.core/not=","rargs","cljs.core.concat","clojure.tools.cli/cli","seq21668","G__21669","vec__21670","vec__21673","banner","sb__5690__auto__","goog.string/StringBuffer","*print-newline*-orig-val__21676","cljs.core/*print-newline*","*print-fn*-orig-val__21677","cljs.core/*print-fn*","*print-newline*-temp-val__21678","*print-fn*-temp-val__21679","x__5691__auto__","clojure.tools.cli/spec-keys","clojure.tools.cli/select-spec-keys","map","cljs.core/*assert*","unknown-keys","cljs.core/keys","cljs.core/dissoc","msg","*print-fn*-orig-val__21680","*print-fn*-temp-val__21681","cljs.core/*print-err-fn*","cljs.core/select-keys","clojure.tools.cli/compile-spec","vec__21683","vec__21686","vec__21689","sopt-lopt-desc","p1__21682#","spec-map","short-opt","long-opt","req","cljs.core/re-find","id","validate","validate-fn","validate-msg","cljs.core.partition","cljs.core.repeat","cljs.core.dissoc","clojure.tools.cli/distinct?*","coll","cljs.core/distinct?","clojure.tools.cli/wrap-val","key","p1__21693#","cljs.core.update_in","cljs.core/coll?","%","clojure.tools.cli/compile-option-specs","option-specs","cljs.core/every?","cljs.core.remove","cljs.core/nil?","cljs.core.comp","cljs.core.juxt","cljs.core/map?","clojure.tools.cli/default-option-map","default-key","cljs.core.assoc","clojure.tools.cli/missing-errors","clojure.tools.cli/find-spec","opt-type","spec-opt","flag-tail","candidates","clojure.tools.cli/pr-join","seq21694","self__5755__auto__","xs","cljs.core.pr_str","clojure.tools.cli/missing-required-error","example-required","clojure.tools.cli.pr_join","clojure.tools.cli/parse-error","clojure.tools.cli/validation-error","value","clojure.tools.cli/validate","map__21695","G__21702","vec__21704","seq__21705","first__21706","G__21703","vec__21707","seq__21708","first__21709","vec__21717","seq__21718","first__21719","vec__21720","seq__21721","first__21722","vfn","vfns","msgs","e21723","_","clojure.tools.cli/parse-value","map__21724","vec__21725","parse-fn","error","e21728","e","clojure.tools.cli/allow-no?","clojure.tools.cli/neg-flag?","clojure.tools.cli/parse-optarg","map__21729","required","clojure.tools.cli/parse-option-tokens","seq21733","G__21734","G__21735","tokens","map__21736","no-defaults","strict","defaults","default-fns","requireds","p__21758","p__21759","vec__21760","vec__21763","ids","errors","temp__5802__auto__","vec__21766","m'","update-fn","cljs.core.update","fexpr__21770","vec__21771","p1__21730#","p__21749","p__21750","vec__21751","vec__21754","p1__21731#","p__21740","p__21741","vec__21742","vec__21745","f","G__21748","p1__21732#","vec__21737","clojure.tools.cli/make-summary-part","show-defaults?","map__21776","vec__21777","default-desc","default-fn","dd","clojure.tools.cli/format-lines","parts","p1__21782#","clojure.string/trimr","clojure.tools.cli/required-arguments","p__21784","map__21785","clojure.tools.cli/summarize","p1__21786#","cljs.core/some","cols","lines","clojure.tools.cli/get-default-options","vals","p__21789","vec__21790","clojure.tools.cli/parse-opts","seq21794","G__21795","G__21796","map__21799","vec__21800","vec__21803","summary-fn","rest-args","clojure.tools.cli.tokenize_args","clojure.tools.cli.parse_option_tokens","fexpr__21806"],"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 ^{:author \"Gareth Jones, Sung Pae, Sean Corfield\"\n :doc \"Tools for working with command line arguments.\"}\n clojure.tools.cli\n (:require [clojure.string :as s]\n #?(:cljs goog.string.format)))\n\n(defn- tokenize-args\n \"Reduce arguments sequence into [opt-type opt ?optarg?] vectors and a vector\n of remaining arguments. Returns as [option-tokens remaining-args].\n\n Expands clumped short options like \\\"-abc\\\" into:\n [[:short-opt \\\"-a\\\"] [:short-opt \\\"-b\\\"] [:short-opt \\\"-c\\\"]]\n\n If \\\"-b\\\" were in the set of options that require arguments, \\\"-abc\\\" would\n then be interpreted as: [[:short-opt \\\"-a\\\"] [:short-opt \\\"-b\\\" \\\"c\\\"]]\n\n Long options with `=` are always parsed as option + optarg, even if nothing\n follows the `=` sign.\n\n If the :in-order flag is true, the first non-option, non-optarg argument\n stops options processing. This is useful for handling subcommand options.\"\n [required-set args & options]\n (let [{:keys [in-order]} (apply hash-map options)]\n (loop [opts [] argv [] [car & cdr] args]\n (if car\n (condp re-seq car\n ;; Double dash always ends options processing\n #\"^--$\" (recur opts (into argv cdr) [])\n ;; Long options with assignment always passes optarg, required or not\n #\"^--\\S+=\" (recur (conj opts (into [:long-opt] (s/split car #\"=\" 2)))\n argv cdr)\n ;; Long options, consumes cdr head if needed\n #\"^--\" (let [[optarg cdr] (if (contains? required-set car)\n [(first cdr) (rest cdr)]\n [nil cdr])]\n (recur (conj opts (into [:long-opt car] (if optarg [optarg] [])))\n argv cdr))\n ;; Short options, expands clumped opts until an optarg is required\n #\"^-.\" (let [[os cdr] (loop [os [] [c & cs] (rest car)]\n (let [o (str \\- c)]\n (if (contains? required-set o)\n (if (seq cs)\n ;; Get optarg from rest of car\n [(conj os [:short-opt o (s/join cs)]) cdr]\n ;; Get optarg from head of cdr\n [(conj os [:short-opt o (first cdr)]) (rest cdr)])\n (if (seq cs)\n (recur (conj os [:short-opt o]) cs)\n [(conj os [:short-opt o]) cdr]))))]\n (recur (into opts os) argv cdr))\n (if in-order\n (recur opts (into argv (cons car cdr)) [])\n (recur opts (conj argv car) cdr)))\n [opts argv]))))\n\n(defn- make-format\n \"Given a sequence of column widths, return a string suitable for use in\n format to print a sequences of strings in those columns.\"\n [lens]\n (s/join (map #(str \" %\" (when-not (zero? %) (str \"-\" %)) \"s\") lens)))\n;;\n;; Legacy API\n;;\n\n(defn- build-doc [{:keys [switches docs default]}]\n [(apply str (interpose \", \" switches))\n (or (str default) \"\")\n (or docs \"\")])\n\n#?(:cljs\n ;; alias to Google Closure string format\n (defn format\n [fmt & args]\n (apply goog.string.format fmt args)))\n\n(defn- banner-for [desc specs]\n (when desc\n (println desc)\n (println))\n (let [docs (into (map build-doc specs)\n [[\"--------\" \"-------\" \"----\"]\n [\"Switches\" \"Default\" \"Desc\"]])\n max-cols (->> (for [d docs] (map count d))\n (apply map (fn [& c] (apply vector c)))\n (map #(apply max %)))\n vs (for [d docs]\n (mapcat (fn [& x] (apply vector x)) max-cols d))]\n (doseq [v vs]\n (let [fmt (make-format (take-nth 2 v))]\n (print (apply format fmt (take-nth 2 (rest v)))))\n (prn))))\n\n(defn- name-for [k]\n (s/replace k #\"^--no-|^--\\[no-\\]|^--|^-\" \"\"))\n\n(defn- flag-for [^String v]\n (not (s/starts-with? v \"--no-\")))\n\n(defn- opt? [^String x]\n (s/starts-with? x \"-\"))\n\n(defn- flag? [^String x]\n (s/starts-with? x \"--[no-]\"))\n\n(defn- end-of-args? [x]\n (= \"--\" x))\n\n(defn- spec-for\n [arg specs]\n (->> specs\n (filter (fn [s]\n (let [switches (set (s :switches))]\n (contains? switches arg))))\n first))\n\n(defn- default-values-for\n [specs]\n (reduce (fn [m s]\n (if (contains? s :default)\n ((:assoc-fn s) m (:name s) (:default s))\n m))\n {} specs))\n\n(defn- apply-specs\n [specs args]\n (loop [options (default-values-for specs)\n extra-args []\n args args]\n (if-not (seq args)\n [options extra-args]\n (let [opt (first args)\n spec (spec-for opt specs)]\n (cond\n (end-of-args? opt)\n (recur options (into extra-args (vec (rest args))) nil)\n\n (and (opt? opt) (nil? spec))\n (throw #?(:clj (Exception. (str \"'\" opt \"' is not a valid argument\"))\n :cljs (js/Error. (str \"'\" opt \"' is not a valid argument\"))))\n\n (and (opt? opt) (spec :flag))\n (recur ((spec :assoc-fn) options (spec :name) (flag-for opt))\n extra-args\n (rest args))\n\n (opt? opt)\n (recur ((spec :assoc-fn) options (spec :name) ((spec :parse-fn) (second args)))\n extra-args\n (drop 2 args))\n\n :else\n (recur options (conj extra-args (first args)) (rest args)))))))\n\n(defn- switches-for\n [switches flag]\n (-> (for [^String s switches]\n (cond (and flag (flag? s))\n [(s/replace s #\"\\[no-\\]\" \"no-\") (s/replace s #\"\\[no-\\]\" \"\")]\n\n (and flag (s/starts-with? s \"--\"))\n [(s/replace s #\"--\" \"--no-\") s]\n\n :else\n [s]))\n flatten))\n\n(defn- generate-spec\n [raw-spec]\n (let [[switches raw-spec] (split-with #(and (string? %) (opt? %)) raw-spec)\n [docs raw-spec] (split-with string? raw-spec)\n options (apply hash-map raw-spec)\n aliases (map name-for switches)\n flag (or (flag? (last switches)) (options :flag))]\n (merge {:switches (switches-for switches flag)\n :docs (first docs)\n :aliases (set aliases)\n :name (keyword (last aliases))\n :parse-fn identity\n :assoc-fn assoc\n :flag flag}\n (when flag {:default false})\n options)))\n\n(defn- normalize-args\n \"Rewrite arguments sequence into a normalized form that is parsable by cli.\"\n [specs args]\n (let [required-opts (->> specs\n (filter (complement :flag))\n (mapcat :switches)\n (into #{}))\n ;; Preserve double-dash since this is a pre-processing step\n largs (take-while (partial not= \"--\") args)\n rargs (drop (count largs) args)\n [opts largs] (tokenize-args required-opts largs)]\n (concat (mapcat rest opts) largs rargs)))\n\n(defn cli\n \"THIS IS A LEGACY FUNCTION and may be deprecated in the future. Please use\n clojure.tools.cli/parse-opts in new applications.\n\n Parse the provided args using the given specs. Specs are vectors\n describing a command line argument. For example:\n\n [\\\"-p\\\" \\\"--port\\\" \\\"Port to listen on\\\" :default 3000 :parse-fn #(Integer/parseInt %)]\n\n First provide the switches (from least to most specific), then a doc\n string, and pairs of options.\n\n Valid options are :default, :parse-fn, and :flag. See\n https://github.com/clojure/tools.cli/wiki/Documentation-for-0.2.4 for more\n detailed examples.\n\n Returns a vector containing a map of the parsed arguments, a vector\n of extra arguments that did not match known switches, and a\n documentation banner to provide usage instructions.\"\n [args & specs]\n (let [[desc specs] (if (string? (first specs))\n [(first specs) (rest specs)]\n [nil specs])\n specs (map generate-spec specs)\n args (normalize-args specs args)\n [options extra-args] (apply-specs specs args)\n banner (with-out-str (banner-for desc specs))]\n [options extra-args banner]))\n\n;;\n;; New API\n;;\n\n(def ^{:private true} spec-keys\n [:id :short-opt :long-opt :required :desc\n :default :default-desc :default-fn\n :parse-fn :assoc-fn :update-fn :multi :post-validation\n :validate-fn :validate-msg :missing])\n\n(defn- select-spec-keys\n \"Select only known spec entries from map and warn the user about unknown\n entries at development time.\"\n [map]\n (when *assert*\n (let [unknown-keys (keys (apply dissoc map spec-keys))]\n (when (seq unknown-keys)\n (let [msg (str \"Warning: The following options to parse-opts are unrecognized: \"\n (s/join \", \" unknown-keys))]\n #?(:clj (binding [*out* *err*] (println msg))\n :cljs (binding [*print-fn* *print-err-fn*] (println msg)))))))\n\n (select-keys map spec-keys))\n\n(defn- compile-spec [spec]\n (let [sopt-lopt-desc (take-while #(or (string? %) (nil? %)) spec)\n spec-map (apply hash-map (drop (count sopt-lopt-desc) spec))\n [short-opt long-opt desc] sopt-lopt-desc\n long-opt (or long-opt (:long-opt spec-map))\n [long-opt req] (when long-opt\n (rest (re-find #\"^(--[^ =]+)(?:[ =](.*))?\" long-opt)))\n id (when long-opt\n (keyword (nth (re-find #\"^--(\\[no-\\])?(.*)\" long-opt) 2)))\n validate (:validate spec-map)\n [validate-fn validate-msg] (when (seq validate)\n (->> (partition 2 2 (repeat nil) validate)\n (apply map vector)))]\n (merge {:id id\n :short-opt short-opt\n :long-opt long-opt\n :required req\n :desc desc\n :validate-fn validate-fn\n :validate-msg validate-msg}\n (select-spec-keys (dissoc spec-map :validate)))))\n\n(defn- distinct?* [coll]\n (if (seq coll)\n (apply distinct? coll)\n true))\n\n(defn- wrap-val [map key]\n (if (contains? map key)\n (update-in map [key] #(cond (nil? %) nil\n (coll? %) %\n :else [%]))\n map))\n\n(defn- compile-option-specs\n \"Map a sequence of option specification vectors to a sequence of:\n\n {:id Keyword ; :server\n :short-opt String ; \\\"-s\\\"\n :long-opt String ; \\\"--server\\\"\n :required String ; \\\"HOSTNAME\\\"\n :desc String ; \\\"Remote server\\\"\n :default Object ; #<Inet4Address example.com/93.184.216.119>\n :default-desc String ; \\\"example.com\\\"\n :default-fn IFn ; (constantly 0)\n :parse-fn IFn ; #(InetAddress/getByName %)\n :assoc-fn IFn ; assoc\n :update-fn IFn ; identity\n :validate-fn [IFn] ; [#(instance? Inet4Address %)\n ; #(not (.isMulticastAddress %)]\n :validate-msg [String] ; [\\\"Must be an IPv4 host\\\"\n ; \\\"Must not be a multicast address\\\"]\n ; can also be a function (of the invalid argument)\n :post-validation Boolean ; default false\n :missing String ; \\\"server must be specified\\\"\n }\n\n :id defaults to the keywordized name of long-opt without leading dashes, but\n may be overridden in the option spec.\n\n The option spec entry `:validate [fn msg ...]` desugars into the two vector\n entries :validate-fn and :validate-msg. Multiple pairs of validation\n functions and error messages may be provided.\n\n A :default(-fn) entry will not be included in the compiled spec unless\n specified. The :default is applied before options are parsed, the :default-fn\n is applied after options are parsed (only where an option was not specified,\n and is passed the whole options map as its single argument, so defaults can\n be computed from other options if needed).\n\n An option spec may also be passed as a map containing the entries above,\n in which case that subset of the map is transferred directly to the result\n vector.\n\n An assertion error is thrown if any :id values are unset, or if there exist\n any duplicate :id, :short-opt, or :long-opt values, or if both :assoc-fn and\n :update-fn are provided for any single option.\"\n [option-specs]\n {:post [(every? :id %)\n (distinct?* (map :id (filter :default %)))\n (distinct?* (map :id (filter :default-fn %)))\n (distinct?* (remove nil? (map :short-opt %)))\n (distinct?* (remove nil? (map :long-opt %)))\n (every? (comp not (partial every? identity))\n (map (juxt :assoc-fn :update-fn) %))]}\n (map (fn [spec]\n (-> (if (map? spec)\n (select-spec-keys spec)\n (compile-spec spec))\n (wrap-val :validate-fn)\n (wrap-val :validate-msg)))\n option-specs))\n\n(defn- default-option-map [specs default-key]\n (reduce (fn [m s]\n (if (contains? s default-key)\n (assoc m (:id s) (default-key s))\n m))\n {} specs))\n\n(defn- missing-errors\n \"Given specs, returns a map of spec id to error message if missing.\"\n [specs]\n (reduce (fn [m s]\n (if (:missing s)\n (assoc m (:id s) (:missing s))\n m))\n {} specs))\n\n(defn- find-spec [specs opt-type opt]\n (first\n (filter\n (fn [spec]\n (when-let [spec-opt (get spec opt-type)]\n (let [flag-tail (second (re-find #\"^--\\[no-\\](.*)\" spec-opt))\n candidates (if flag-tail\n #{(str \"--\" flag-tail) (str \"--no-\" flag-tail)}\n #{spec-opt})]\n (contains? candidates opt))))\n specs)))\n\n(defn- pr-join [& xs]\n (pr-str (s/join \\space xs)))\n\n(defn- missing-required-error [opt example-required]\n (str \"Missing required argument for \" (pr-join opt example-required)))\n\n(defn- parse-error [opt optarg msg]\n (str \"Error while parsing option \" (pr-join opt optarg) \": \" msg))\n\n(defn- validation-error [value opt optarg msg]\n (str \"Failed to validate \" (pr-join opt optarg)\n (if msg (str \": \" (if (string? msg) msg (msg value))) \"\")))\n\n(defn- validate [value spec opt optarg]\n (let [{:keys [validate-fn validate-msg]} spec]\n (or (loop [[vfn & vfns] validate-fn [msg & msgs] validate-msg]\n (when vfn\n (if (try (vfn value) (catch #?(:clj Throwable :cljs :default) _))\n (recur vfns msgs)\n [::error (validation-error value opt optarg msg)])))\n [value nil])))\n\n(defn- parse-value [value spec opt optarg]\n (let [{:keys [parse-fn]} spec\n [value error] (if parse-fn\n (try\n [(parse-fn value) nil]\n (catch #?(:clj Throwable :cljs :default) e\n [nil (parse-error opt optarg (str e))]))\n [value nil])]\n (cond error\n [::error error]\n (:post-validation spec)\n [value nil]\n :else\n (validate value spec opt optarg))))\n\n(defn- allow-no? [spec]\n (and (:long-opt spec)\n (re-find #\"^--\\[no-\\]\" (:long-opt spec))))\n\n(defn- neg-flag? [spec opt]\n (and (allow-no? spec)\n (re-find #\"^--no-\" opt)))\n\n(defn- parse-optarg [spec opt optarg]\n (let [{:keys [required]} spec]\n (if (and required (nil? optarg))\n [::error (missing-required-error opt required)]\n (let [value (if required\n optarg\n (not (neg-flag? spec opt)))]\n (parse-value value spec opt optarg)))))\n\n(defn- parse-option-tokens\n \"Reduce sequence of [opt-type opt ?optarg?] tokens into a map of\n {option-id value} merged over the default values in the option\n specifications.\n\n If the :no-defaults flag is true, only options specified in the tokens are\n included in the option-map.\n\n Unknown options, missing options, missing required arguments, option\n argument parsing exceptions, and validation failures are collected into\n a vector of error message strings.\n\n If the :strict flag is true, required arguments that match other options\n are treated as missing, instead of a literal value beginning with - or --.\n\n Returns [option-map error-messages-vector].\"\n [specs tokens & options]\n (let [{:keys [no-defaults strict]} (apply hash-map options)\n defaults (default-option-map specs :default)\n default-fns (default-option-map specs :default-fn)\n requireds (missing-errors specs)]\n (-> (reduce\n (fn [[m ids errors] [opt-type opt optarg]]\n (if-let [spec (find-spec specs opt-type opt)]\n (let [[value error] (parse-optarg spec opt optarg)\n id (:id spec)]\n (if-not (= value ::error)\n (if (and strict\n (or (find-spec specs :short-opt optarg)\n (find-spec specs :long-opt optarg)))\n [m ids (conj errors (missing-required-error opt (:required spec)))]\n (let [m' (if-let [update-fn (:update-fn spec)]\n (if (:multi spec)\n (update m id update-fn value)\n (update m id update-fn))\n ((:assoc-fn spec assoc) m id value))]\n (if (:post-validation spec)\n (let [[value error] (validate (get m' id) spec opt optarg)]\n (if (= value ::error)\n [m ids (conj errors error)]\n [m' (conj ids id) errors]))\n [m' (conj ids id) errors])))\n [m ids (conj errors error)]))\n [m ids (conj errors (str \"Unknown option: \" (pr-str opt)))]))\n [defaults [] []] tokens)\n (#(reduce\n (fn [[m ids errors] [id error]]\n (if (contains? m id)\n [m ids errors]\n [m ids (conj errors error)]))\n % requireds))\n (#(reduce\n (fn [[m ids errors] [id f]]\n (if (contains? (set ids) id)\n [m ids errors]\n [(assoc m id (f (first %))) ids errors]))\n % default-fns))\n (#(let [[m ids errors] %]\n (if no-defaults\n [(select-keys m ids) errors]\n [m errors]))))))\n\n(defn ^{:added \"0.3.0\"} make-summary-part\n \"Given a single compiled option spec, turn it into a formatted string,\n optionally with its default values if requested.\"\n [show-defaults? spec]\n (let [{:keys [short-opt long-opt required desc\n default default-desc default-fn]} spec\n opt (cond (and short-opt long-opt) (str short-opt \", \" long-opt)\n long-opt (str \" \" long-opt)\n short-opt short-opt)\n [opt dd] [(if required\n (str opt \\space required)\n opt)\n (or default-desc\n (when (contains? spec :default)\n (if (some? default)\n (str default)\n \"nil\"))\n (when default-fn\n \"<computed>\")\n \"\")]]\n (if show-defaults?\n [opt dd (or desc \"\")]\n [opt (or desc \"\")])))\n\n(defn ^{:added \"0.3.0\"} format-lines\n \"Format a sequence of summary parts into columns. lens is a sequence of\n lengths to use for parts. There are two sequences of lengths if we are\n not displaying defaults. There are three sequences of lengths if we\n are showing defaults.\"\n [lens parts]\n (let [fmt (make-format lens)]\n (map #(s/trimr (apply format fmt %)) parts)))\n\n(defn- required-arguments [specs]\n (reduce\n (fn [s {:keys [required short-opt long-opt]}]\n (if required\n (into s (remove nil? [short-opt long-opt]))\n s))\n #{} specs))\n\n(defn ^{:added \"0.3.0\"} summarize\n \"Reduce options specs into a options summary for printing at a terminal.\n Note that the specs argument should be the compiled version. That effectively\n means that you shouldn't call summarize directly. When you call parse-opts\n you get back a :summary key which is the result of calling summarize (or\n your user-supplied :summary-fn option) on the compiled option specs.\"\n [specs]\n (if (seq specs)\n (let [show-defaults? (some #(or (contains? % :default)\n (contains? % :default-fn)) specs)\n parts (map (partial make-summary-part show-defaults?) specs)\n lens (apply map (fn [& cols] (apply max (map count cols))) parts)\n lines (format-lines lens parts)]\n (s/join \\newline lines))\n \"\"))\n\n(defn ^{:added \"0.3.2\"} get-default-options\n \"Extract the map of default options from a sequence of option vectors.\n\n As of 0.4.1, this also applies any :default-fn present.\"\n [option-specs]\n (let [specs (compile-option-specs option-specs)\n vals (default-option-map specs :default)]\n (reduce (fn [m [id f]]\n (if (contains? m id)\n m\n (update-in m [id] (f vals))))\n vals\n (default-option-map specs :default-fn))))\n\n\n(defn ^{:added \"0.3.0\"} parse-opts\n \"Parse arguments sequence according to given option specifications and the\n GNU Program Argument Syntax Conventions:\n\n https://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html\n\n Option specifications are a sequence of vectors with the following format:\n\n [short-opt long-opt-with-required-description description\n :property value]\n\n The first three string parameters in an option spec are positional and\n optional, and may be nil in order to specify a later parameter.\n\n By default, options are toggles that default to nil, but the second string\n parameter may be used to specify that an option requires an argument.\n\n e.g. [\\\"-p\\\" \\\"--port PORT\\\"] specifies that --port requires an argument,\n of which PORT is a short description.\n\n The :property value pairs are optional and take precedence over the\n positional string arguments. The valid properties are:\n\n :id The key for this option in the resulting option map. This\n is normally set to the keywordized name of the long option\n without the leading dashes.\n\n Multiple option entries can share the same :id in order to\n transform a value in different ways, but only one of these\n option entries may contain a :default(-fn) entry.\n\n This option is mandatory.\n\n :short-opt The short format for this option, normally set by the first\n positional string parameter: e.g. \\\"-p\\\". Must be unique.\n\n :long-opt The long format for this option, normally set by the second\n positional string parameter; e.g. \\\"--port\\\". Must be unique.\n\n :required A description of the required argument for this option if\n one is required; normally set in the second positional\n string parameter after the long option: \\\"--port PORT\\\".\n\n The absence of this entry indicates that the option is a\n boolean toggle that is set to true when specified on the\n command line.\n\n :missing Indicates that this option is required (not just an argument),\n and provides the string to use as an error message if omitted.\n\n :desc A optional short description of this option.\n\n :default The default value of this option. If none is specified, the\n resulting option map will not contain an entry for this\n option unless set on the command line. Also see :default-fn\n (below).\n\n This default is applied before any arguments are parsed so\n this is a good way to seed values for :assoc-fn or :update-fn\n as well as the simplest way to provide defaults.\n\n If you need to compute a default based on other command line\n arguments, or you need to provide a default separate from the\n seed for :assoc-fn or :update-fn, see :default-fn below.\n\n :default-desc An optional description of the default value. This should be\n used when the string representation of the default value is\n too ugly to be printed on the command line, or :default-fn\n is used to compute the default.\n\n :default-fn A function to compute the default value of this option, given\n the whole, parsed option map as its one argument. If no\n function is specified, the resulting option map will not\n contain an entry for this option unless set on the command\n line. Also see :default (above).\n\n If both :default and :default-fn are provided, if the\n argument is not provided on the command-line, :default-fn will\n still be called (and can override :default).\n\n :parse-fn A function that receives the required option argument and\n returns the option value.\n\n If this is a boolean option, parse-fn will receive the value\n true. This may be used to invert the logic of this option:\n\n [\\\"-q\\\" \\\"--quiet\\\"\n :id :verbose\n :default true\n :parse-fn not]\n\n :assoc-fn A function that receives the current option map, the current\n option :id, and the current parsed option value, and returns\n a new option map. The default is 'assoc'.\n\n For non-idempotent options, where you need to compute a option\n value based on the current value and a new value from the\n command line. If you only need the the current value, consider\n :update-fn (below).\n\n You cannot specify both :assoc-fn and :update-fn for an\n option.\n\n :update-fn Without :multi true:\n\n A function that receives just the existing parsed option value,\n and returns a new option value, for each option :id present.\n The default is 'identity'.\n\n This may be used to create non-idempotent options where you\n only need the current value, like setting a verbosity level by\n specifying an option multiple times. (\\\"-vvv\\\" -> 3)\n\n [\\\"-v\\\" \\\"--verbose\\\"\n :default 0\n :update-fn inc]\n\n :default is applied first. If you wish to omit the :default\n option value, use fnil in your :update-fn as follows:\n\n [\\\"-v\\\" \\\"--verbose\\\"\n :update-fn (fnil inc 0)]\n\n With :multi true:\n\n A function that receives both the existing parsed option value,\n and the parsed option value from each instance of the option,\n and returns a new option value, for each option :id present.\n The :multi option is ignored if you do not specify :update-fn.\n\n For non-idempotent options, where you need to compute a option\n value based on the current value and a new value from the\n command line. This can sometimes be easier than use :assoc-fn.\n\n [\\\"-f\\\" \\\"--file NAME\\\"\n :default []\n :update-fn conj\n :multi true]\n\n :default is applied first. If you wish to omit the :default\n option value, use fnil in your :update-fn as follows:\n\n [\\\"-f\\\" \\\"--file NAME\\\"\n :update-fn (fnil conj [])\n :multi true]\n\n Regardless of :multi, you cannot specify both :assoc-fn\n and :update-fn for an option.\n\n :multi true/false, applies only to options that use :update-fn.\n\n :validate A vector of [validate-fn validate-msg ...]. Multiple pairs\n of validation functions and error messages may be provided.\n\n :validate-fn A vector of functions that receives the parsed option value\n and returns a falsy value or throws an exception when the\n value is invalid. The validations are tried in the given\n order.\n\n :validate-msg A vector of error messages corresponding to :validate-fn\n that will be added to the :errors vector on validation\n failure. Can be plain strings, or functions to be applied\n to the (invalid) option argument to produce a string.\n\n :post-validation true/false. By default, validation is performed after\n parsing an option, prior to assoc/default/update processing.\n Specifying true here will cause the validation to be\n performed after assoc/default/update processing, instead.\n\n parse-opts returns a map with four entries:\n\n {:options The options map, keyed by :id, mapped to the parsed value\n :arguments A vector of unprocessed arguments\n :summary A string containing a minimal options summary\n :errors A possible vector of error message strings generated during\n parsing; nil when no errors exist}\n\n A few function options may be specified to influence the behavior of\n parse-opts:\n\n :in-order Stop option processing at the first unknown argument. Useful\n for building programs with subcommands that have their own\n option specs.\n\n :no-defaults Only include option values specified in arguments and do not\n include any default values in the resulting options map.\n Useful for parsing options from multiple sources; i.e. from a\n config file and from the command line.\n\n :strict Parse required arguments strictly: if a required argument value\n matches any other option, it is considered to be missing (and\n you have a parse error).\n\n :summary-fn A function that receives the sequence of compiled option specs\n (documented at #'clojure.tools.cli/compile-option-specs), and\n returns a custom option summary string.\n \"\n [args option-specs & options]\n (let [{:keys [in-order no-defaults strict summary-fn]} (apply hash-map options)\n specs (compile-option-specs option-specs)\n req (required-arguments specs)\n [tokens rest-args] (tokenize-args req args :in-order in-order)\n [opts errors] (parse-option-tokens specs tokens\n :no-defaults no-defaults :strict strict)]\n {:options opts\n :arguments rest-args\n :summary ((or summary-fn summarize) specs)\n :errors (when (seq errors) errors)}))\n"],"x_google_ignoreList":[0]}
@@ -0,0 +1,131 @@
1
+ import "./cljs_env.js";
2
+ goog.provide('clojure.walk');
3
+ /**
4
+ * Traverses form, an arbitrary data structure. inner and outer are
5
+ * functions. Applies inner to each element of form, building up a
6
+ * data structure of the same type, then applies outer to the result.
7
+ * Recognizes all Clojure data structures. Consumes seqs as with doall.
8
+ */
9
+ clojure.walk.walk = (function clojure$walk$walk(inner,outer,form){
10
+ if(cljs.core.list_QMARK_(form)){
11
+ var G__21423 = cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.list,cljs.core.map.cljs$core$IFn$_invoke$arity$2(inner,form));
12
+ return (outer.cljs$core$IFn$_invoke$arity$1 ? outer.cljs$core$IFn$_invoke$arity$1(G__21423) : outer.call(null,G__21423));
13
+ } else {
14
+ if(cljs.core.map_entry_QMARK_(form)){
15
+ var G__21424 = (new cljs.core.MapEntry((function (){var G__21425 = cljs.core.key(form);
16
+ return (inner.cljs$core$IFn$_invoke$arity$1 ? inner.cljs$core$IFn$_invoke$arity$1(G__21425) : inner.call(null,G__21425));
17
+ })(),(function (){var G__21426 = cljs.core.val(form);
18
+ return (inner.cljs$core$IFn$_invoke$arity$1 ? inner.cljs$core$IFn$_invoke$arity$1(G__21426) : inner.call(null,G__21426));
19
+ })(),null));
20
+ return (outer.cljs$core$IFn$_invoke$arity$1 ? outer.cljs$core$IFn$_invoke$arity$1(G__21424) : outer.call(null,G__21424));
21
+ } else {
22
+ if(cljs.core.seq_QMARK_(form)){
23
+ var G__21427 = cljs.core.doall.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2(inner,form));
24
+ return (outer.cljs$core$IFn$_invoke$arity$1 ? outer.cljs$core$IFn$_invoke$arity$1(G__21427) : outer.call(null,G__21427));
25
+ } else {
26
+ if(cljs.core.record_QMARK_(form)){
27
+ var G__21428 = cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (r,x){
28
+ return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(r,(inner.cljs$core$IFn$_invoke$arity$1 ? inner.cljs$core$IFn$_invoke$arity$1(x) : inner.call(null,x)));
29
+ }),form,form);
30
+ return (outer.cljs$core$IFn$_invoke$arity$1 ? outer.cljs$core$IFn$_invoke$arity$1(G__21428) : outer.call(null,G__21428));
31
+ } else {
32
+ if(cljs.core.coll_QMARK_(form)){
33
+ var G__21430 = cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.empty(form),cljs.core.map.cljs$core$IFn$_invoke$arity$2(inner,form));
34
+ return (outer.cljs$core$IFn$_invoke$arity$1 ? outer.cljs$core$IFn$_invoke$arity$1(G__21430) : outer.call(null,G__21430));
35
+ } else {
36
+ return (outer.cljs$core$IFn$_invoke$arity$1 ? outer.cljs$core$IFn$_invoke$arity$1(form) : outer.call(null,form));
37
+
38
+ }
39
+ }
40
+ }
41
+ }
42
+ }
43
+ });
44
+ /**
45
+ * Performs a depth-first, post-order traversal of form. Calls f on
46
+ * each sub-form, uses f's return value in place of the original.
47
+ * Recognizes all Clojure data structures. Consumes seqs as with doall.
48
+ */
49
+ clojure.walk.postwalk = (function clojure$walk$postwalk(f,form){
50
+ return clojure.walk.walk(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(clojure.walk.postwalk,f),f,form);
51
+ });
52
+ /**
53
+ * Like postwalk, but does pre-order traversal.
54
+ */
55
+ clojure.walk.prewalk = (function clojure$walk$prewalk(f,form){
56
+ return clojure.walk.walk(cljs.core.partial.cljs$core$IFn$_invoke$arity$2(clojure.walk.prewalk,f),cljs.core.identity,(f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(form) : f.call(null,form)));
57
+ });
58
+ /**
59
+ * Recursively transforms all map keys from strings to keywords.
60
+ */
61
+ clojure.walk.keywordize_keys = (function clojure$walk$keywordize_keys(m){
62
+ var f = (function (p__21433){
63
+ var vec__21434 = p__21433;
64
+ var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21434,(0),null);
65
+ var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21434,(1),null);
66
+ if(typeof k === 'string'){
67
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(k),v], null);
68
+ } else {
69
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,v], null);
70
+ }
71
+ });
72
+ return clojure.walk.postwalk((function (x){
73
+ if(cljs.core.map_QMARK_(x)){
74
+ return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(f,x));
75
+ } else {
76
+ return x;
77
+ }
78
+ }),m);
79
+ });
80
+ /**
81
+ * Recursively transforms all map keys from keywords to strings.
82
+ */
83
+ clojure.walk.stringify_keys = (function clojure$walk$stringify_keys(m){
84
+ var f = (function (p__21437){
85
+ var vec__21438 = p__21437;
86
+ var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21438,(0),null);
87
+ var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21438,(1),null);
88
+ if((k instanceof cljs.core.Keyword)){
89
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.name(k),v], null);
90
+ } else {
91
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,v], null);
92
+ }
93
+ });
94
+ return clojure.walk.postwalk((function (x){
95
+ if(cljs.core.map_QMARK_(x)){
96
+ return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2(f,x));
97
+ } else {
98
+ return x;
99
+ }
100
+ }),m);
101
+ });
102
+ /**
103
+ * Recursively transforms form by replacing keys in smap with their
104
+ * values. Like clojure/replace but works on any data structure. Does
105
+ * replacement at the root of the tree first.
106
+ */
107
+ clojure.walk.prewalk_replace = (function clojure$walk$prewalk_replace(smap,form){
108
+ return clojure.walk.prewalk((function (x){
109
+ if(cljs.core.contains_QMARK_(smap,x)){
110
+ return (smap.cljs$core$IFn$_invoke$arity$1 ? smap.cljs$core$IFn$_invoke$arity$1(x) : smap.call(null,x));
111
+ } else {
112
+ return x;
113
+ }
114
+ }),form);
115
+ });
116
+ /**
117
+ * Recursively transforms form by replacing keys in smap with their
118
+ * values. Like clojure/replace but works on any data structure. Does
119
+ * replacement at the leaves of the tree first.
120
+ */
121
+ clojure.walk.postwalk_replace = (function clojure$walk$postwalk_replace(smap,form){
122
+ return clojure.walk.postwalk((function (x){
123
+ if(cljs.core.contains_QMARK_(smap,x)){
124
+ return (smap.cljs$core$IFn$_invoke$arity$1 ? smap.cljs$core$IFn$_invoke$arity$1(x) : smap.call(null,x));
125
+ } else {
126
+ return x;
127
+ }
128
+ }),form);
129
+ });
130
+
131
+ //# sourceMappingURL=clojure.walk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["clojure/walk.cljs"],"mappings":"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","names":["clojure.walk/walk","inner","outer","form","cljs.core/list?","G__21423","cljs.core.apply","cljs.core/list","cljs.core.map","cljs.core/map-entry?","G__21424","cljs.core/MapEntry","G__21425","cljs.core/key","G__21426","cljs.core/val","cljs.core/seq?","G__21427","cljs.core.doall","cljs.core/record?","G__21428","cljs.core.reduce","r","x","cljs.core.conj","cljs.core/coll?","G__21430","cljs.core.into","cljs.core/empty","clojure.walk/postwalk","f","cljs.core.partial","clojure.walk/prewalk","cljs.core/identity","clojure.walk/keywordize-keys","m","p__21433","vec__21434","cljs.core.nth","k","v","cljs.core.keyword","cljs.core/map?","clojure.walk/stringify-keys","p__21437","vec__21438","cljs.core/Keyword","cljs.core/name","clojure.walk/prewalk-replace","smap","cljs.core/contains?","clojure.walk/postwalk-replace"],"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;;; walk.cljs - generic tree walker with replacement\n\n;; by Stuart Sierra\n;; Jul5 17, 2011\n\n;; CHANGE LOG:\n;;\n;; * July 17, 2011: Port to ClojureScript\n;; \n;; * December 15, 2008: replaced 'walk' with 'prewalk' & 'postwalk'\n;;\n;; * December 9, 2008: first version\n\n\n(ns \n ^{:author \"Stuart Sierra\",\n :doc \"This file defines a generic tree walker for Clojure data\nstructures. It takes any data structure (list, vector, map, set,\nseq), calls a function on every element, and uses the return value\nof the function in place of the original. This makes it fairly\neasy to write recursive search-and-replace functions, as shown in\nthe examples.\n\nNote: \\\"walk\\\" supports all Clojure data structures EXCEPT maps\ncreated with sorted-map-by. There is no (obvious) way to retrieve\nthe sorting function.\"}\n clojure.walk)\n\n(defn walk\n \"Traverses form, an arbitrary data structure. inner and outer are\n functions. Applies inner to each element of form, building up a\n data structure of the same type, then applies outer to the result.\n Recognizes all Clojure data structures. Consumes seqs as with doall.\"\n\n {:added \"1.1\"}\n [inner outer form]\n (cond\n (list? form) (outer (apply list (map inner form)))\n (map-entry? form)\n (outer (MapEntry. (inner (key form)) (inner (val form)) nil))\n (seq? form) (outer (doall (map inner form)))\n (record? form) (outer (reduce (fn [r x] (conj r (inner x))) form form))\n (coll? form) (outer (into (empty form) (map inner form)))\n :else (outer form)))\n\n(defn postwalk\n \"Performs a depth-first, post-order traversal of form. Calls f on\n each sub-form, uses f's return value in place of the original.\n Recognizes all Clojure data structures. Consumes seqs as with doall.\"\n {:added \"1.1\"}\n [f form]\n (walk (partial postwalk f) f form))\n\n(defn prewalk\n \"Like postwalk, but does pre-order traversal.\"\n {:added \"1.1\"}\n [f form]\n (walk (partial prewalk f) identity (f form)))\n\n(defn keywordize-keys\n \"Recursively transforms all map keys from strings to keywords.\"\n {:added \"1.1\"}\n [m]\n (let [f (fn [[k v]] (if (string? k) [(keyword k) v] [k v]))]\n ;; only apply to maps\n (postwalk (fn [x] (if (map? x) (into {} (map f x)) x)) m)))\n\n(defn stringify-keys\n \"Recursively transforms all map keys from keywords to strings.\"\n {:added \"1.1\"}\n [m]\n (let [f (fn [[k v]] (if (keyword? k) [(name k) v] [k v]))]\n ;; only apply to maps\n (postwalk (fn [x] (if (map? x) (into {} (map f x)) x)) m)))\n\n(defn prewalk-replace\n \"Recursively transforms form by replacing keys in smap with their\n values. Like clojure/replace but works on any data structure. Does\n replacement at the root of the tree first.\"\n {:added \"1.1\"}\n [smap form]\n (prewalk (fn [x] (if (contains? smap x) (smap x) x)) form))\n\n(defn postwalk-replace\n \"Recursively transforms form by replacing keys in smap with their\n values. Like clojure/replace but works on any data structure. Does\n replacement at the leaves of the tree first.\"\n {:added \"1.1\"}\n [smap form]\n (postwalk (fn [x] (if (contains? smap x) (smap x) x)) form))\n"],"x_google_ignoreList":[0]}