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,477 @@
1
+ import "./cljs_env.js";
2
+ goog.provide('clojure.string');
3
+ clojure.string.seq_reverse = (function clojure$string$seq_reverse(coll){
4
+ return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core.conj,cljs.core.List.EMPTY,coll);
5
+ });
6
+ clojure.string.re_surrogate_pair = (new RegExp("([\\uD800-\\uDBFF])([\\uDC00-\\uDFFF])","g"));
7
+ /**
8
+ * Returns s with its characters reversed.
9
+ */
10
+ clojure.string.reverse = (function clojure$string$reverse(s){
11
+ return s.replace(clojure.string.re_surrogate_pair,"$2$1").split("").reverse().join("");
12
+ });
13
+ clojure.string.replace_all = (function clojure$string$replace_all(s,re,replacement){
14
+ var r = (new RegExp(re.source,(function (){var G__21429 = "g";
15
+ var G__21429__$1 = (cljs.core.truth_(re.ignoreCase)?[G__21429,"i"].join(''):G__21429);
16
+ var G__21429__$2 = (cljs.core.truth_(re.multiline)?[G__21429__$1,"m"].join(''):G__21429__$1);
17
+ if(cljs.core.truth_(re.unicode)){
18
+ return [G__21429__$2,"u"].join('');
19
+ } else {
20
+ return G__21429__$2;
21
+ }
22
+ })()));
23
+ return s.replace(r,replacement);
24
+ });
25
+ clojure.string.replace_with = (function clojure$string$replace_with(f){
26
+ return (function() {
27
+ var G__21480__delegate = function (args){
28
+ var matches = cljs.core.drop_last.cljs$core$IFn$_invoke$arity$2((2),args);
29
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(matches),(1))){
30
+ var G__21431 = cljs.core.first(matches);
31
+ return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__21431) : f.call(null,G__21431));
32
+ } else {
33
+ var G__21432 = cljs.core.vec(matches);
34
+ return (f.cljs$core$IFn$_invoke$arity$1 ? f.cljs$core$IFn$_invoke$arity$1(G__21432) : f.call(null,G__21432));
35
+ }
36
+ };
37
+ var G__21480 = function (var_args){
38
+ var args = null;
39
+ if (arguments.length > 0) {
40
+ var G__21482__i = 0, G__21482__a = new Array(arguments.length - 0);
41
+ while (G__21482__i < G__21482__a.length) {G__21482__a[G__21482__i] = arguments[G__21482__i + 0]; ++G__21482__i;}
42
+ args = new cljs.core.IndexedSeq(G__21482__a,0,null);
43
+ }
44
+ return G__21480__delegate.call(this,args);};
45
+ G__21480.cljs$lang$maxFixedArity = 0;
46
+ G__21480.cljs$lang$applyTo = (function (arglist__21483){
47
+ var args = cljs.core.seq(arglist__21483);
48
+ return G__21480__delegate(args);
49
+ });
50
+ G__21480.cljs$core$IFn$_invoke$arity$variadic = G__21480__delegate;
51
+ return G__21480;
52
+ })()
53
+ ;
54
+ });
55
+ /**
56
+ * Replaces all instance of match with replacement in s.
57
+ *
58
+ * match/replacement can be:
59
+ *
60
+ * string / string
61
+ * pattern / (string or function of match).
62
+ *
63
+ * See also replace-first.
64
+ *
65
+ * The replacement is literal (i.e. none of its characters are treated
66
+ * specially) for all cases above except pattern / string.
67
+ *
68
+ * For pattern / string, $1, $2, etc. in the replacement string are
69
+ * substituted with the string that matched the corresponding
70
+ * parenthesized group in the pattern.
71
+ *
72
+ * Example:
73
+ * (clojure.string/replace "Almost Pig Latin" #"\b(\w)(\w+)\b" "$2$1ay")
74
+ * -> "lmostAay igPay atinLay"
75
+ */
76
+ clojure.string.replace = (function clojure$string$replace(s,match,replacement){
77
+ if(typeof match === 'string'){
78
+ return s.replace((new RegExp(goog.string.regExpEscape(match),"g")),replacement);
79
+ } else {
80
+ if((match instanceof RegExp)){
81
+ if(typeof replacement === 'string'){
82
+ return clojure.string.replace_all(s,match,replacement);
83
+ } else {
84
+ return clojure.string.replace_all(s,match,clojure.string.replace_with(replacement));
85
+ }
86
+ } else {
87
+ throw ["Invalid match arg: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(match)].join('');
88
+
89
+ }
90
+ }
91
+ });
92
+ /**
93
+ * Replaces the first instance of match with replacement in s.
94
+ *
95
+ * match/replacement can be:
96
+ *
97
+ * string / string
98
+ * pattern / (string or function of match).
99
+ *
100
+ * See also replace.
101
+ *
102
+ * The replacement is literal (i.e. none of its characters are treated
103
+ * specially) for all cases above except pattern / string.
104
+ *
105
+ * For pattern / string, $1, $2, etc. in the replacement string are
106
+ * substituted with the string that matched the corresponding
107
+ * parenthesized group in the pattern.
108
+ *
109
+ * Example:
110
+ * (clojure.string/replace-first "swap first two words"
111
+ * #"(\w+)(\s+)(\w+)" "$3$2$1")
112
+ * -> "first swap two words"
113
+ */
114
+ clojure.string.replace_first = (function clojure$string$replace_first(s,match,replacement){
115
+ return s.replace(match,replacement);
116
+ });
117
+ /**
118
+ * Returns a string of all elements in coll, as returned by (seq coll),
119
+ * separated by an optional separator.
120
+ */
121
+ clojure.string.join = (function clojure$string$join(var_args){
122
+ var G__21442 = arguments.length;
123
+ switch (G__21442) {
124
+ case 1:
125
+ return clojure.string.join.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
126
+
127
+ break;
128
+ case 2:
129
+ return clojure.string.join.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
130
+
131
+ break;
132
+ default:
133
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
134
+
135
+ }
136
+ });
137
+
138
+ (clojure.string.join.cljs$core$IFn$_invoke$arity$1 = (function (coll){
139
+ var sb = (new goog.string.StringBuffer());
140
+ var coll__$1 = cljs.core.seq(coll);
141
+ while(true){
142
+ if((!((coll__$1 == null)))){
143
+ var G__21491 = sb.append(cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.first(coll__$1)));
144
+ var G__21492 = cljs.core.next(coll__$1);
145
+ sb = G__21491;
146
+ coll__$1 = G__21492;
147
+ continue;
148
+ } else {
149
+ return sb.toString();
150
+ }
151
+ break;
152
+ }
153
+ }));
154
+
155
+ (clojure.string.join.cljs$core$IFn$_invoke$arity$2 = (function (separator,coll){
156
+ var sb = (new goog.string.StringBuffer());
157
+ var coll__$1 = cljs.core.seq(coll);
158
+ while(true){
159
+ if((!((coll__$1 == null)))){
160
+ sb.append(cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.first(coll__$1)));
161
+
162
+ var coll__$2 = cljs.core.next(coll__$1);
163
+ if((coll__$2 == null)){
164
+ } else {
165
+ sb.append(separator);
166
+ }
167
+
168
+ var G__21498 = sb;
169
+ var G__21499 = coll__$2;
170
+ sb = G__21498;
171
+ coll__$1 = G__21499;
172
+ continue;
173
+ } else {
174
+ return sb.toString();
175
+ }
176
+ break;
177
+ }
178
+ }));
179
+
180
+ (clojure.string.join.cljs$lang$maxFixedArity = 2);
181
+
182
+ /**
183
+ * Converts string to all upper-case.
184
+ */
185
+ clojure.string.upper_case = (function clojure$string$upper_case(s){
186
+ return s.toUpperCase();
187
+ });
188
+ /**
189
+ * Converts string to all lower-case.
190
+ */
191
+ clojure.string.lower_case = (function clojure$string$lower_case(s){
192
+ return s.toLowerCase();
193
+ });
194
+ /**
195
+ * Converts first character of the string to upper-case, all other
196
+ * characters to lower-case.
197
+ */
198
+ clojure.string.capitalize = (function clojure$string$capitalize(s){
199
+ return goog.string.capitalize(s);
200
+ });
201
+ clojure.string.pop_last_while_empty = (function clojure$string$pop_last_while_empty(v){
202
+ var v__$1 = v;
203
+ while(true){
204
+ if(("" === cljs.core.peek(v__$1))){
205
+ var G__21504 = cljs.core.pop(v__$1);
206
+ v__$1 = G__21504;
207
+ continue;
208
+ } else {
209
+ return v__$1;
210
+ }
211
+ break;
212
+ }
213
+ });
214
+ clojure.string.discard_trailing_if_needed = (function clojure$string$discard_trailing_if_needed(limit,v){
215
+ if(((((0) === limit)) && (((1) < cljs.core.count(v))))){
216
+ return clojure.string.pop_last_while_empty(v);
217
+ } else {
218
+ return v;
219
+ }
220
+ });
221
+ clojure.string.split_with_empty_regex = (function clojure$string$split_with_empty_regex(s,limit){
222
+ if((((limit <= (0))) || ((limit >= ((2) + cljs.core.count(s)))))){
223
+ return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.vec(cljs.core.cons("",cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.seq(s)))),"");
224
+ } else {
225
+ var pred__21443 = cljs.core._EQ__EQ_;
226
+ var expr__21444 = limit;
227
+ if(cljs.core.truth_((pred__21443.cljs$core$IFn$_invoke$arity$2 ? pred__21443.cljs$core$IFn$_invoke$arity$2((1),expr__21444) : pred__21443.call(null,(1),expr__21444)))){
228
+ return (new cljs.core.PersistentVector(null,1,(5),cljs.core.PersistentVector.EMPTY_NODE,[s],null));
229
+ } else {
230
+ if(cljs.core.truth_((pred__21443.cljs$core$IFn$_invoke$arity$2 ? pred__21443.cljs$core$IFn$_invoke$arity$2((2),expr__21444) : pred__21443.call(null,(2),expr__21444)))){
231
+ return (new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,["",s],null));
232
+ } else {
233
+ var c = (limit - (2));
234
+ return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(cljs.core.vec(cljs.core.cons("",cljs.core.subvec.cljs$core$IFn$_invoke$arity$3(cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.str,cljs.core.seq(s))),(0),c))),cljs.core.subs.cljs$core$IFn$_invoke$arity$2(s,c));
235
+ }
236
+ }
237
+ }
238
+ });
239
+ /**
240
+ * Splits string on a regular expression. Optional argument limit is
241
+ * the maximum number of parts. Not lazy. Returns vector of the parts.
242
+ * Trailing empty strings are not returned - pass limit of -1 to return all.
243
+ */
244
+ clojure.string.split = (function clojure$string$split(var_args){
245
+ var G__21447 = arguments.length;
246
+ switch (G__21447) {
247
+ case 2:
248
+ return clojure.string.split.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
249
+
250
+ break;
251
+ case 3:
252
+ return clojure.string.split.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
253
+
254
+ break;
255
+ default:
256
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
257
+
258
+ }
259
+ });
260
+
261
+ (clojure.string.split.cljs$core$IFn$_invoke$arity$2 = (function (s,re){
262
+ return clojure.string.split.cljs$core$IFn$_invoke$arity$3(s,re,(0));
263
+ }));
264
+
265
+ (clojure.string.split.cljs$core$IFn$_invoke$arity$3 = (function (s,re,limit){
266
+ return clojure.string.discard_trailing_if_needed(limit,((("/(?:)/" === cljs.core.str.cljs$core$IFn$_invoke$arity$1(re)))?clojure.string.split_with_empty_regex(s,limit):(((limit < (1)))?cljs.core.vec(cljs.core.str.cljs$core$IFn$_invoke$arity$1(s).split(re)):(function (){var s__$1 = s;
267
+ var limit__$1 = limit;
268
+ var parts = cljs.core.PersistentVector.EMPTY;
269
+ while(true){
270
+ if(((1) === limit__$1)){
271
+ return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(parts,s__$1);
272
+ } else {
273
+ var m = cljs.core.re_find(re,s__$1);
274
+ if((!((m == null)))){
275
+ var index = s__$1.indexOf(m);
276
+ var G__21551 = s__$1.substring((index + cljs.core.count(m)));
277
+ var G__21552 = (limit__$1 - (1));
278
+ var G__21553 = cljs.core.conj.cljs$core$IFn$_invoke$arity$2(parts,s__$1.substring((0),index));
279
+ s__$1 = G__21551;
280
+ limit__$1 = G__21552;
281
+ parts = G__21553;
282
+ continue;
283
+ } else {
284
+ return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(parts,s__$1);
285
+ }
286
+ }
287
+ break;
288
+ }
289
+ })())));
290
+ }));
291
+
292
+ (clojure.string.split.cljs$lang$maxFixedArity = 3);
293
+
294
+ /**
295
+ * Splits s on \n or \r\n. Trailing empty lines are not returned.
296
+ */
297
+ clojure.string.split_lines = (function clojure$string$split_lines(s){
298
+ return clojure.string.split.cljs$core$IFn$_invoke$arity$2(s,/\n|\r\n/);
299
+ });
300
+ /**
301
+ * Removes whitespace from both ends of string.
302
+ */
303
+ clojure.string.trim = (function clojure$string$trim(s){
304
+ return goog.string.trim(s);
305
+ });
306
+ /**
307
+ * Removes whitespace from the left side of string.
308
+ */
309
+ clojure.string.triml = (function clojure$string$triml(s){
310
+ return goog.string.trimLeft(s);
311
+ });
312
+ /**
313
+ * Removes whitespace from the right side of string.
314
+ */
315
+ clojure.string.trimr = (function clojure$string$trimr(s){
316
+ return goog.string.trimRight(s);
317
+ });
318
+ /**
319
+ * Removes all trailing newline \n or return \r characters from
320
+ * string. Similar to Perl's chomp.
321
+ */
322
+ clojure.string.trim_newline = (function clojure$string$trim_newline(s){
323
+ var index = s.length;
324
+ while(true){
325
+ if((index === (0))){
326
+ return "";
327
+ } else {
328
+ var ch = cljs.core.get.cljs$core$IFn$_invoke$arity$2(s,(index - (1)));
329
+ if(((("\n" === ch)) || (("\r" === ch)))){
330
+ var G__21561 = (index - (1));
331
+ index = G__21561;
332
+ continue;
333
+ } else {
334
+ return s.substring((0),index);
335
+ }
336
+ }
337
+ break;
338
+ }
339
+ });
340
+ /**
341
+ * True is s is nil, empty, or contains only whitespace.
342
+ */
343
+ clojure.string.blank_QMARK_ = (function clojure$string$blank_QMARK_(s){
344
+ return goog.string.isEmptyOrWhitespace(goog.string.makeSafe(s));
345
+ });
346
+ /**
347
+ * Return a new string, using cmap to escape each character ch
348
+ * from s as follows:
349
+ *
350
+ * If (cmap ch) is nil, append ch to the new string.
351
+ * If (cmap ch) is non-nil, append (str (cmap ch)) instead.
352
+ */
353
+ clojure.string.escape = (function clojure$string$escape(s,cmap){
354
+ var buffer = (new goog.string.StringBuffer());
355
+ var length = s.length;
356
+ var index = (0);
357
+ while(true){
358
+ if((length === index)){
359
+ return buffer.toString();
360
+ } else {
361
+ var ch = s.charAt(index);
362
+ var replacement = cljs.core.get.cljs$core$IFn$_invoke$arity$2(cmap,ch);
363
+ if((!((replacement == null)))){
364
+ buffer.append(cljs.core.str.cljs$core$IFn$_invoke$arity$1(replacement));
365
+ } else {
366
+ buffer.append(ch);
367
+ }
368
+
369
+ var G__21570 = (index + (1));
370
+ index = G__21570;
371
+ continue;
372
+ }
373
+ break;
374
+ }
375
+ });
376
+ /**
377
+ * Return index of value (string or char) in s, optionally searching
378
+ * forward from from-index or nil if not found.
379
+ */
380
+ clojure.string.index_of = (function clojure$string$index_of(var_args){
381
+ var G__21467 = arguments.length;
382
+ switch (G__21467) {
383
+ case 2:
384
+ return clojure.string.index_of.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
385
+
386
+ break;
387
+ case 3:
388
+ return clojure.string.index_of.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
389
+
390
+ break;
391
+ default:
392
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
393
+
394
+ }
395
+ });
396
+
397
+ (clojure.string.index_of.cljs$core$IFn$_invoke$arity$2 = (function (s,value){
398
+ var result = s.indexOf(value);
399
+ if((result < (0))){
400
+ return null;
401
+ } else {
402
+ return result;
403
+ }
404
+ }));
405
+
406
+ (clojure.string.index_of.cljs$core$IFn$_invoke$arity$3 = (function (s,value,from_index){
407
+ var result = s.indexOf(value,from_index);
408
+ if((result < (0))){
409
+ return null;
410
+ } else {
411
+ return result;
412
+ }
413
+ }));
414
+
415
+ (clojure.string.index_of.cljs$lang$maxFixedArity = 3);
416
+
417
+ /**
418
+ * Return last index of value (string or char) in s, optionally
419
+ * searching backward from from-index or nil if not found.
420
+ */
421
+ clojure.string.last_index_of = (function clojure$string$last_index_of(var_args){
422
+ var G__21469 = arguments.length;
423
+ switch (G__21469) {
424
+ case 2:
425
+ return clojure.string.last_index_of.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
426
+
427
+ break;
428
+ case 3:
429
+ return clojure.string.last_index_of.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
430
+
431
+ break;
432
+ default:
433
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
434
+
435
+ }
436
+ });
437
+
438
+ (clojure.string.last_index_of.cljs$core$IFn$_invoke$arity$2 = (function (s,value){
439
+ var result = s.lastIndexOf(value);
440
+ if((result < (0))){
441
+ return null;
442
+ } else {
443
+ return result;
444
+ }
445
+ }));
446
+
447
+ (clojure.string.last_index_of.cljs$core$IFn$_invoke$arity$3 = (function (s,value,from_index){
448
+ var result = s.lastIndexOf(value,from_index);
449
+ if((result < (0))){
450
+ return null;
451
+ } else {
452
+ return result;
453
+ }
454
+ }));
455
+
456
+ (clojure.string.last_index_of.cljs$lang$maxFixedArity = 3);
457
+
458
+ /**
459
+ * True if s starts with substr.
460
+ */
461
+ clojure.string.starts_with_QMARK_ = (function clojure$string$starts_with_QMARK_(s,substr){
462
+ return goog.string.startsWith(s,substr);
463
+ });
464
+ /**
465
+ * True if s ends with substr.
466
+ */
467
+ clojure.string.ends_with_QMARK_ = (function clojure$string$ends_with_QMARK_(s,substr){
468
+ return goog.string.endsWith(s,substr);
469
+ });
470
+ /**
471
+ * True if s includes substr.
472
+ */
473
+ clojure.string.includes_QMARK_ = (function clojure$string$includes_QMARK_(s,substr){
474
+ return goog.string.contains(s,substr);
475
+ });
476
+
477
+ //# sourceMappingURL=clojure.string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["clojure/string.cljs"],"mappings":"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","names":["clojure.string/seq-reverse","coll","cljs.core.reduce","cljs.core/conj","clojure.string/re-surrogate-pair","js/RegExp","clojure.string/reverse","s","clojure.string/replace-all","re","replacement","r","G__21429","clojure.string/replace-with","f","args","matches","cljs.core.drop_last","cljs.core._EQ_","cljs.core/count","G__21431","cljs.core/first","G__21432","cljs.core/vec","clojure.string/replace","match","goog.string/regExpEscape","clojure.string/replace-first","var_args","G__21442","clojure.string/join","js/Error","sb","js/goog.string.StringBuffer","cljs.core/seq","cljs.core/next","separator","clojure.string/upper-case","clojure.string/lower-case","clojure.string/capitalize","goog.string/capitalize","clojure.string/pop-last-while-empty","v","cljs.core/peek","cljs.core/pop","clojure.string/discard-trailing-if-needed","limit","clojure.string/split-with-empty-regex","cljs.core.conj","cljs.core/cons","cljs.core.map","cljs.core/str","pred__21443","expr__21444","cljs.core/==","cljs.core/PersistentVector","c","cljs.core.subvec","cljs.core.subs","G__21447","clojure.string/split","clojure.string.split","parts","m","cljs.core/re-find","index","clojure.string/split-lines","clojure.string/trim","goog.string/trim","clojure.string/triml","goog.string/trimLeft","clojure.string/trimr","goog.string/trimRight","clojure.string/trim-newline","ch","cljs.core.get","clojure.string/blank?","goog.string/isEmptyOrWhitespace","goog.string/makeSafe","clojure.string/escape","cmap","buffer","length","G__21467","clojure.string/index-of","value","result","from-index","G__21469","clojure.string/last-index-of","clojure.string/starts-with?","substr","goog.string/startsWith","clojure.string/ends-with?","goog.string/endsWith","clojure.string/includes?","goog.string/contains"],"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 clojure.string\n (:refer-clojure :exclude [replace reverse])\n (:require [goog.string :as gstring])\n (:import [goog.string StringBuffer]))\n\n(defn- seq-reverse\n [coll]\n (reduce conj () coll))\n\n(def ^:private re-surrogate-pair\n (js/RegExp. \"([\\\\uD800-\\\\uDBFF])([\\\\uDC00-\\\\uDFFF])\" \"g\"))\n\n(defn ^string reverse\n \"Returns s with its characters reversed.\"\n [s]\n (-> (.replace s re-surrogate-pair \"$2$1\")\n (.. (split \"\") (reverse) (join \"\"))))\n\n(defn- replace-all\n [s re replacement]\n (let [r (js/RegExp. (.-source re)\n (cond-> \"g\"\n (.-ignoreCase re) (str \"i\")\n (.-multiline re) (str \"m\")\n (.-unicode re) (str \"u\")))]\n (.replace s r replacement)))\n\n(defn- replace-with\n [f]\n (fn [& args]\n (let [matches (drop-last 2 args)]\n (if (= (count matches) 1)\n (f (first matches))\n (f (vec matches))))))\n\n(defn ^string replace\n \"Replaces all instance of match with replacement in s.\n\n match/replacement can be:\n\n string / string\n pattern / (string or function of match).\n\n See also replace-first.\n\n The replacement is literal (i.e. none of its characters are treated\n specially) for all cases above except pattern / string.\n\n For pattern / string, $1, $2, etc. in the replacement string are\n substituted with the string that matched the corresponding\n parenthesized group in the pattern.\n\n Example:\n (clojure.string/replace \\\"Almost Pig Latin\\\" #\\\"\\\\b(\\\\w)(\\\\w+)\\\\b\\\" \\\"$2$1ay\\\")\n -> \\\"lmostAay igPay atinLay\\\"\"\n [s match replacement]\n (cond\n (string? match)\n (.replace s (js/RegExp. (gstring/regExpEscape match) \"g\") replacement)\n\n (instance? js/RegExp match)\n (if (string? replacement)\n (replace-all s match replacement)\n (replace-all s match (replace-with replacement)))\n\n :else (throw (str \"Invalid match arg: \" match))))\n\n(defn ^string replace-first\n \"Replaces the first instance of match with replacement in s.\n\n match/replacement can be:\n\n string / string\n pattern / (string or function of match).\n\n See also replace.\n\n The replacement is literal (i.e. none of its characters are treated\n specially) for all cases above except pattern / string.\n\n For pattern / string, $1, $2, etc. in the replacement string are\n substituted with the string that matched the corresponding\n parenthesized group in the pattern.\n\n Example:\n (clojure.string/replace-first \\\"swap first two words\\\"\n #\\\"(\\\\w+)(\\\\s+)(\\\\w+)\\\" \\\"$3$2$1\\\")\n -> \\\"first swap two words\\\"\"\n [s match replacement]\n (.replace s match replacement))\n\n(defn join\n \"Returns a string of all elements in coll, as returned by (seq coll),\n separated by an optional separator.\"\n ([coll]\n (loop [sb (StringBuffer.) coll (seq coll)]\n (if-not (nil? coll)\n (recur (. sb (append (str (first coll)))) (next coll))\n ^string (.toString sb))))\n ([separator coll]\n (loop [sb (StringBuffer.) coll (seq coll)]\n (if-not (nil? coll)\n (do\n (. sb (append (str (first coll))))\n (let [coll (next coll)]\n (when-not (nil? coll)\n (. sb (append separator)))\n (recur sb coll)))\n ^string (.toString sb)))))\n\n(defn ^string upper-case\n \"Converts string to all upper-case.\"\n [s]\n (.toUpperCase s))\n\n(defn ^string lower-case\n \"Converts string to all lower-case.\"\n [s]\n (.toLowerCase s))\n\n(defn ^string capitalize\n \"Converts first character of the string to upper-case, all other\n characters to lower-case.\"\n [s]\n (gstring/capitalize s))\n\n;; The JavaScript split function takes a limit argument but the return\n;; value is not the same as the Java split function.\n;;\n;; Java: (.split \"a-b-c\" #\"-\" 2) => [\"a\" \"b-c\"]\n;; JavaScript: (.split \"a-b-c\" #\"-\" 2) => [\"a\" \"b\"]\n;;\n;; For consistency, the three arg version has been implemented to\n;; mimic Java's behavior.\n\n(defn- pop-last-while-empty\n [v]\n (loop [v v]\n (if (identical? \"\" (peek v))\n (recur (pop v))\n v)))\n\n(defn- discard-trailing-if-needed\n [limit v]\n (if (and (== 0 limit) (< 1 (count v)))\n (pop-last-while-empty v)\n v))\n\n(defn- split-with-empty-regex\n [s limit]\n (if (or (<= limit 0) (>= limit (+ 2 (count s))))\n (conj (vec (cons \"\" (map str (seq s)))) \"\")\n (condp == limit\n 1 (vector s)\n 2 (vector \"\" s)\n (let [c (- limit 2)]\n (conj (vec (cons \"\" (subvec (vec (map str (seq s))) 0 c))) (subs s c))))))\n\n(defn split\n \"Splits string on a regular expression. Optional argument limit is\n the maximum number of parts. Not lazy. Returns vector of the parts.\n Trailing empty strings are not returned - pass limit of -1 to return all.\"\n ([s re]\n (split s re 0))\n ([s re limit]\n (discard-trailing-if-needed limit\n (if (identical? \"/(?:)/\" (str re))\n (split-with-empty-regex s limit)\n (if (< limit 1)\n (vec (.split (str s) re))\n (loop [s s\n limit limit\n parts []]\n (if (== 1 limit)\n (conj parts s)\n (let [m (re-find re s)]\n (if-not (nil? m)\n (let [index (.indexOf s m)]\n (recur (.substring s (+ index (count m)))\n (dec limit)\n (conj parts (.substring s 0 index))))\n (conj parts s))))))))))\n\n(defn split-lines\n \"Splits s on \\\\n or \\\\r\\\\n. Trailing empty lines are not returned.\"\n [s]\n (split s #\"\\n|\\r\\n\"))\n\n(defn ^string trim\n \"Removes whitespace from both ends of string.\"\n [s]\n (gstring/trim s))\n\n(defn ^string triml\n \"Removes whitespace from the left side of string.\"\n [s]\n (gstring/trimLeft s))\n\n(defn ^string trimr\n \"Removes whitespace from the right side of string.\"\n [s]\n (gstring/trimRight s))\n\n(defn ^string trim-newline\n \"Removes all trailing newline \\\\n or return \\\\r characters from\n string. Similar to Perl's chomp.\"\n [s]\n (loop [index (.-length s)]\n (if (zero? index)\n \"\"\n (let [ch (get s (dec index))]\n (if (or (identical? \\newline ch)\n (identical? \\return ch))\n (recur (dec index))\n (.substring s 0 index))))))\n\n(defn ^boolean blank?\n \"True is s is nil, empty, or contains only whitespace.\"\n [s]\n (gstring/isEmptyOrWhitespace (gstring/makeSafe s)))\n\n(defn ^string escape\n \"Return a new string, using cmap to escape each character ch\n from s as follows:\n\n If (cmap ch) is nil, append ch to the new string.\n If (cmap ch) is non-nil, append (str (cmap ch)) instead.\"\n [s cmap]\n (let [buffer (StringBuffer.)\n length (.-length s)]\n (loop [index 0]\n (if (== length index)\n (. buffer (toString))\n (let [ch (.charAt s index)\n replacement (get cmap ch)]\n (if-not (nil? replacement)\n (.append buffer (str replacement))\n (.append buffer ch))\n (recur (inc index)))))))\n\n(defn index-of\n \"Return index of value (string or char) in s, optionally searching\n forward from from-index or nil if not found.\"\n ([s value]\n (let [result (.indexOf s value)]\n (if (neg? result)\n nil\n result)))\n ([s value from-index]\n (let [result (.indexOf s value from-index)]\n (if (neg? result)\n nil\n result))))\n\n(defn last-index-of\n \"Return last index of value (string or char) in s, optionally\n searching backward from from-index or nil if not found.\"\n ([s value]\n (let [result (.lastIndexOf s value)]\n (if (neg? result)\n nil\n result)))\n ([s value from-index]\n (let [result (.lastIndexOf s value from-index)]\n (if (neg? result)\n nil\n result))))\n\n(defn ^boolean starts-with?\n \"True if s starts with substr.\"\n [s substr]\n (gstring/startsWith s substr))\n\n(defn ^boolean ends-with?\n \"True if s ends with substr.\"\n [s substr]\n (gstring/endsWith s substr))\n\n(defn ^boolean includes?\n \"True if s includes substr.\"\n [s substr]\n (gstring/contains s substr))\n"],"x_google_ignoreList":[0]}