@kineviz/lodash 4.17.21 → 4.17.23

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 (1051) hide show
  1. package/LICENSE +47 -47
  2. package/README.md +39 -39
  3. package/_DataView.js +7 -7
  4. package/_Hash.js +32 -32
  5. package/_LazyWrapper.js +28 -28
  6. package/_ListCache.js +32 -32
  7. package/_LodashWrapper.js +22 -22
  8. package/_Map.js +7 -7
  9. package/_MapCache.js +32 -32
  10. package/_Promise.js +7 -7
  11. package/_Set.js +7 -7
  12. package/_SetCache.js +27 -27
  13. package/_Stack.js +27 -27
  14. package/_Symbol.js +6 -6
  15. package/_Uint8Array.js +6 -6
  16. package/_WeakMap.js +7 -7
  17. package/_apply.js +21 -21
  18. package/_arrayAggregator.js +22 -22
  19. package/_arrayEach.js +22 -22
  20. package/_arrayEachRight.js +21 -21
  21. package/_arrayEvery.js +23 -23
  22. package/_arrayFilter.js +25 -25
  23. package/_arrayIncludes.js +17 -17
  24. package/_arrayIncludesWith.js +22 -22
  25. package/_arrayLikeKeys.js +49 -49
  26. package/_arrayMap.js +21 -21
  27. package/_arrayPush.js +20 -20
  28. package/_arrayReduce.js +26 -26
  29. package/_arrayReduceRight.js +24 -24
  30. package/_arraySample.js +15 -15
  31. package/_arraySampleSize.js +17 -17
  32. package/_arrayShuffle.js +15 -15
  33. package/_arraySome.js +23 -23
  34. package/_asciiSize.js +12 -12
  35. package/_asciiToArray.js +12 -12
  36. package/_asciiWords.js +15 -15
  37. package/_assignMergeValue.js +20 -20
  38. package/_assignValue.js +28 -28
  39. package/_assocIndexOf.js +21 -21
  40. package/_baseAggregator.js +21 -21
  41. package/_baseAssign.js +17 -17
  42. package/_baseAssignIn.js +17 -17
  43. package/_baseAssignValue.js +25 -25
  44. package/_baseAt.js +23 -23
  45. package/_baseClamp.js +22 -22
  46. package/_baseClone.js +166 -166
  47. package/_baseConforms.js +18 -18
  48. package/_baseConformsTo.js +27 -27
  49. package/_baseCreate.js +30 -30
  50. package/_baseDelay.js +21 -21
  51. package/_baseDifference.js +67 -67
  52. package/_baseEach.js +14 -14
  53. package/_baseEachRight.js +14 -14
  54. package/_baseEvery.js +21 -21
  55. package/_baseExtremum.js +32 -32
  56. package/_baseFill.js +32 -32
  57. package/_baseFilter.js +21 -21
  58. package/_baseFindIndex.js +24 -24
  59. package/_baseFindKey.js +23 -23
  60. package/_baseFlatten.js +38 -38
  61. package/_baseFor.js +16 -16
  62. package/_baseForOwn.js +16 -16
  63. package/_baseForOwnRight.js +16 -16
  64. package/_baseForRight.js +15 -15
  65. package/_baseFunctions.js +19 -19
  66. package/_baseGet.js +24 -24
  67. package/_baseGetAllKeys.js +20 -20
  68. package/_baseGetTag.js +28 -28
  69. package/_baseGt.js +14 -14
  70. package/_baseHas.js +19 -19
  71. package/_baseHasIn.js +13 -13
  72. package/_baseInRange.js +18 -18
  73. package/_baseIndexOf.js +20 -20
  74. package/_baseIndexOfWith.js +23 -23
  75. package/_baseIntersection.js +74 -74
  76. package/_baseInverter.js +21 -21
  77. package/_baseInvoke.js +24 -24
  78. package/_baseIsArguments.js +18 -18
  79. package/_baseIsArrayBuffer.js +17 -17
  80. package/_baseIsDate.js +18 -18
  81. package/_baseIsEqual.js +28 -28
  82. package/_baseIsEqualDeep.js +83 -83
  83. package/_baseIsMap.js +18 -18
  84. package/_baseIsMatch.js +62 -62
  85. package/_baseIsNaN.js +12 -12
  86. package/_baseIsNative.js +47 -47
  87. package/_baseIsRegExp.js +18 -18
  88. package/_baseIsSet.js +18 -18
  89. package/_baseIsTypedArray.js +60 -60
  90. package/_baseIteratee.js +31 -31
  91. package/_baseKeys.js +30 -30
  92. package/_baseKeysIn.js +33 -33
  93. package/_baseLodash.js +10 -10
  94. package/_baseLt.js +14 -14
  95. package/_baseMap.js +22 -22
  96. package/_baseMatches.js +22 -22
  97. package/_baseMatchesProperty.js +33 -33
  98. package/_baseMean.js +20 -20
  99. package/_baseMerge.js +42 -42
  100. package/_baseMergeDeep.js +94 -94
  101. package/_baseNth.js +20 -20
  102. package/_baseOrderBy.js +49 -49
  103. package/_basePick.js +19 -19
  104. package/_basePickBy.js +30 -30
  105. package/_baseProperty.js +14 -14
  106. package/_basePropertyDeep.js +16 -16
  107. package/_basePropertyOf.js +14 -14
  108. package/_basePullAll.js +51 -51
  109. package/_basePullAt.js +37 -37
  110. package/_baseRandom.js +18 -18
  111. package/_baseRange.js +28 -28
  112. package/_baseReduce.js +23 -23
  113. package/_baseRepeat.js +35 -35
  114. package/_baseRest.js +17 -17
  115. package/_baseSample.js +15 -15
  116. package/_baseSampleSize.js +18 -18
  117. package/_baseSet.js +51 -51
  118. package/_baseSetData.js +17 -17
  119. package/_baseSetToString.js +22 -22
  120. package/_baseShuffle.js +15 -15
  121. package/_baseSlice.js +31 -31
  122. package/_baseSome.js +22 -22
  123. package/_baseSortBy.js +21 -21
  124. package/_baseSortedIndex.js +42 -42
  125. package/_baseSortedIndexBy.js +67 -67
  126. package/_baseSortedUniq.js +30 -30
  127. package/_baseSum.js +24 -24
  128. package/_baseTimes.js +20 -20
  129. package/_baseToNumber.js +24 -24
  130. package/_baseToPairs.js +18 -18
  131. package/_baseToString.js +37 -37
  132. package/_baseTrim.js +19 -19
  133. package/_baseUnary.js +14 -14
  134. package/_baseUniq.js +72 -72
  135. package/_baseUnset.js +65 -20
  136. package/_baseUpdate.js +18 -18
  137. package/_baseValues.js +19 -19
  138. package/_baseWhile.js +26 -26
  139. package/_baseWrapperValue.js +25 -25
  140. package/_baseXor.js +36 -36
  141. package/_baseZipObject.js +23 -23
  142. package/_cacheHas.js +13 -13
  143. package/_castArrayLikeObject.js +14 -14
  144. package/_castFunction.js +14 -14
  145. package/_castPath.js +21 -21
  146. package/_castRest.js +14 -14
  147. package/_castSlice.js +18 -18
  148. package/_charsEndIndex.js +19 -19
  149. package/_charsStartIndex.js +20 -20
  150. package/_cloneArrayBuffer.js +16 -16
  151. package/_cloneBuffer.js +35 -35
  152. package/_cloneDataView.js +16 -16
  153. package/_cloneRegExp.js +17 -17
  154. package/_cloneSymbol.js +18 -18
  155. package/_cloneTypedArray.js +16 -16
  156. package/_compareAscending.js +41 -41
  157. package/_compareMultiple.js +44 -44
  158. package/_composeArgs.js +39 -39
  159. package/_composeArgsRight.js +41 -41
  160. package/_copyArray.js +20 -20
  161. package/_copyObject.js +40 -40
  162. package/_copySymbols.js +16 -16
  163. package/_copySymbolsIn.js +16 -16
  164. package/_coreJsData.js +6 -6
  165. package/_countHolders.js +21 -21
  166. package/_createAggregator.js +23 -23
  167. package/_createAssigner.js +37 -37
  168. package/_createBaseEach.js +32 -32
  169. package/_createBaseFor.js +25 -25
  170. package/_createBind.js +28 -28
  171. package/_createCaseFirst.js +33 -33
  172. package/_createCompounder.js +24 -24
  173. package/_createCtor.js +37 -37
  174. package/_createCurry.js +46 -46
  175. package/_createFind.js +25 -25
  176. package/_createFlow.js +78 -78
  177. package/_createHybrid.js +92 -92
  178. package/_createInverter.js +17 -17
  179. package/_createMathOperation.js +38 -38
  180. package/_createOver.js +27 -27
  181. package/_createPadding.js +33 -33
  182. package/_createPartial.js +43 -43
  183. package/_createRange.js +30 -30
  184. package/_createRecurry.js +56 -56
  185. package/_createRelationalOperation.js +20 -20
  186. package/_createRound.js +35 -35
  187. package/_createSet.js +19 -19
  188. package/_createToPairs.js +30 -30
  189. package/_createWrap.js +106 -106
  190. package/_customDefaultsAssignIn.js +29 -29
  191. package/_customDefaultsMerge.js +28 -28
  192. package/_customOmitClone.js +16 -16
  193. package/_deburrLetter.js +71 -71
  194. package/_defineProperty.js +11 -11
  195. package/_equalArrays.js +84 -84
  196. package/_equalByTag.js +112 -112
  197. package/_equalObjects.js +90 -90
  198. package/_escapeHtmlChar.js +21 -21
  199. package/_escapeStringChar.js +22 -22
  200. package/_flatRest.js +16 -16
  201. package/_freeGlobal.js +4 -4
  202. package/_getAllKeys.js +16 -16
  203. package/_getAllKeysIn.js +17 -17
  204. package/_getData.js +15 -15
  205. package/_getFuncName.js +31 -31
  206. package/_getHolder.js +13 -13
  207. package/_getMapData.js +18 -18
  208. package/_getMatchData.js +24 -24
  209. package/_getNative.js +17 -17
  210. package/_getPrototype.js +6 -6
  211. package/_getRawTag.js +46 -46
  212. package/_getSymbols.js +30 -30
  213. package/_getSymbolsIn.js +25 -25
  214. package/_getTag.js +58 -58
  215. package/_getValue.js +13 -13
  216. package/_getView.js +33 -33
  217. package/_getWrapDetails.js +17 -17
  218. package/_hasPath.js +39 -39
  219. package/_hasUnicode.js +26 -26
  220. package/_hasUnicodeWord.js +15 -15
  221. package/_hashClear.js +15 -15
  222. package/_hashDelete.js +17 -17
  223. package/_hashGet.js +30 -30
  224. package/_hashHas.js +23 -23
  225. package/_hashSet.js +23 -23
  226. package/_initCloneArray.js +26 -26
  227. package/_initCloneByTag.js +77 -77
  228. package/_initCloneObject.js +18 -18
  229. package/_insertWrapDetails.js +23 -23
  230. package/_isFlattenable.js +20 -20
  231. package/_isIndex.js +25 -25
  232. package/_isIterateeCall.js +30 -30
  233. package/_isKey.js +29 -29
  234. package/_isKeyable.js +15 -15
  235. package/_isLaziable.js +28 -28
  236. package/_isMaskable.js +14 -14
  237. package/_isMasked.js +20 -20
  238. package/_isPrototype.js +18 -18
  239. package/_isStrictComparable.js +15 -15
  240. package/_iteratorToArray.js +18 -18
  241. package/_lazyClone.js +23 -23
  242. package/_lazyReverse.js +23 -23
  243. package/_lazyValue.js +69 -69
  244. package/_listCacheClear.js +13 -13
  245. package/_listCacheDelete.js +35 -35
  246. package/_listCacheGet.js +19 -19
  247. package/_listCacheHas.js +16 -16
  248. package/_listCacheSet.js +26 -26
  249. package/_mapCacheClear.js +21 -21
  250. package/_mapCacheDelete.js +18 -18
  251. package/_mapCacheGet.js +16 -16
  252. package/_mapCacheHas.js +16 -16
  253. package/_mapCacheSet.js +22 -22
  254. package/_mapToArray.js +18 -18
  255. package/_matchesStrictComparable.js +20 -20
  256. package/_memoizeCapped.js +26 -26
  257. package/_mergeData.js +90 -90
  258. package/_metaMap.js +6 -6
  259. package/_nativeCreate.js +6 -6
  260. package/_nativeKeys.js +6 -6
  261. package/_nativeKeysIn.js +20 -20
  262. package/_nodeUtil.js +30 -30
  263. package/_objectToString.js +22 -22
  264. package/_overArg.js +15 -15
  265. package/_overRest.js +36 -36
  266. package/_parent.js +16 -16
  267. package/_reEscape.js +4 -4
  268. package/_reEvaluate.js +4 -4
  269. package/_reInterpolate.js +4 -4
  270. package/_realNames.js +4 -4
  271. package/_reorder.js +29 -29
  272. package/_replaceHolders.js +29 -29
  273. package/_root.js +9 -9
  274. package/_safeGet.js +21 -21
  275. package/_setCacheAdd.js +19 -19
  276. package/_setCacheHas.js +14 -14
  277. package/_setData.js +20 -20
  278. package/_setToArray.js +18 -18
  279. package/_setToPairs.js +18 -18
  280. package/_setToString.js +14 -14
  281. package/_setWrapToString.js +21 -21
  282. package/_shortOut.js +37 -37
  283. package/_shuffleSelf.js +28 -28
  284. package/_stackClear.js +15 -15
  285. package/_stackDelete.js +18 -18
  286. package/_stackGet.js +14 -14
  287. package/_stackHas.js +14 -14
  288. package/_stackSet.js +34 -34
  289. package/_strictIndexOf.js +23 -23
  290. package/_strictLastIndexOf.js +21 -21
  291. package/_stringSize.js +18 -18
  292. package/_stringToArray.js +18 -18
  293. package/_stringToPath.js +27 -27
  294. package/_toKey.js +21 -21
  295. package/_toSource.js +26 -26
  296. package/_trimmedEndIndex.js +19 -19
  297. package/_unescapeHtmlChar.js +21 -21
  298. package/_unicodeSize.js +44 -44
  299. package/_unicodeToArray.js +40 -40
  300. package/_unicodeWords.js +69 -69
  301. package/_updateWrapDetails.js +46 -46
  302. package/_wrapperClone.js +23 -23
  303. package/add.js +22 -22
  304. package/after.js +42 -42
  305. package/array.js +67 -67
  306. package/ary.js +29 -29
  307. package/assign.js +58 -58
  308. package/assignIn.js +40 -40
  309. package/assignInWith.js +38 -38
  310. package/assignWith.js +37 -37
  311. package/at.js +23 -23
  312. package/attempt.js +35 -35
  313. package/before.js +40 -40
  314. package/bind.js +57 -57
  315. package/bindAll.js +41 -41
  316. package/bindKey.js +68 -68
  317. package/camelCase.js +29 -29
  318. package/capitalize.js +23 -23
  319. package/castArray.js +44 -44
  320. package/ceil.js +26 -26
  321. package/chain.js +38 -38
  322. package/chunk.js +50 -50
  323. package/clamp.js +39 -39
  324. package/clone.js +36 -36
  325. package/cloneDeep.js +29 -29
  326. package/cloneDeepWith.js +40 -40
  327. package/cloneWith.js +42 -42
  328. package/collection.js +30 -30
  329. package/commit.js +33 -33
  330. package/compact.js +31 -31
  331. package/concat.js +43 -43
  332. package/cond.js +60 -60
  333. package/conforms.js +35 -35
  334. package/conformsTo.js +32 -32
  335. package/constant.js +26 -26
  336. package/core.js +3877 -3877
  337. package/core.min.js +6 -25
  338. package/countBy.js +40 -40
  339. package/create.js +43 -43
  340. package/curry.js +57 -57
  341. package/curryRight.js +54 -54
  342. package/date.js +3 -3
  343. package/debounce.js +191 -191
  344. package/deburr.js +45 -45
  345. package/defaultTo.js +25 -25
  346. package/defaults.js +64 -64
  347. package/defaultsDeep.js +30 -30
  348. package/defer.js +26 -26
  349. package/delay.js +28 -28
  350. package/difference.js +33 -33
  351. package/differenceBy.js +44 -44
  352. package/differenceWith.js +40 -40
  353. package/divide.js +22 -22
  354. package/drop.js +38 -38
  355. package/dropRight.js +39 -39
  356. package/dropRightWhile.js +45 -45
  357. package/dropWhile.js +45 -45
  358. package/each.js +1 -1
  359. package/eachRight.js +1 -1
  360. package/endsWith.js +43 -43
  361. package/entries.js +1 -1
  362. package/entriesIn.js +1 -1
  363. package/eq.js +37 -37
  364. package/escape.js +43 -43
  365. package/escapeRegExp.js +32 -32
  366. package/every.js +56 -56
  367. package/extend.js +1 -1
  368. package/extendWith.js +1 -1
  369. package/fill.js +45 -45
  370. package/filter.js +52 -52
  371. package/find.js +42 -42
  372. package/findIndex.js +55 -55
  373. package/findKey.js +44 -44
  374. package/findLast.js +25 -25
  375. package/findLastIndex.js +59 -59
  376. package/findLastKey.js +44 -44
  377. package/first.js +1 -1
  378. package/flatMap.js +29 -29
  379. package/flatMapDeep.js +31 -31
  380. package/flatMapDepth.js +31 -31
  381. package/flatten.js +22 -22
  382. package/flattenDeep.js +25 -25
  383. package/flattenDepth.js +33 -33
  384. package/flip.js +28 -28
  385. package/floor.js +26 -26
  386. package/flow.js +27 -27
  387. package/flowRight.js +26 -26
  388. package/forEach.js +41 -41
  389. package/forEachRight.js +31 -31
  390. package/forIn.js +39 -39
  391. package/forInRight.js +37 -37
  392. package/forOwn.js +36 -36
  393. package/forOwnRight.js +34 -34
  394. package/fp/F.js +1 -1
  395. package/fp/T.js +1 -1
  396. package/fp/__.js +1 -1
  397. package/fp/_baseConvert.js +569 -569
  398. package/fp/_convertBrowser.js +18 -18
  399. package/fp/_falseOptions.js +7 -7
  400. package/fp/_mapping.js +358 -358
  401. package/fp/_util.js +16 -16
  402. package/fp/add.js +5 -5
  403. package/fp/after.js +5 -5
  404. package/fp/all.js +1 -1
  405. package/fp/allPass.js +1 -1
  406. package/fp/always.js +1 -1
  407. package/fp/any.js +1 -1
  408. package/fp/anyPass.js +1 -1
  409. package/fp/apply.js +1 -1
  410. package/fp/array.js +2 -2
  411. package/fp/ary.js +5 -5
  412. package/fp/assign.js +5 -5
  413. package/fp/assignAll.js +5 -5
  414. package/fp/assignAllWith.js +5 -5
  415. package/fp/assignIn.js +5 -5
  416. package/fp/assignInAll.js +5 -5
  417. package/fp/assignInAllWith.js +5 -5
  418. package/fp/assignInWith.js +5 -5
  419. package/fp/assignWith.js +5 -5
  420. package/fp/assoc.js +1 -1
  421. package/fp/assocPath.js +1 -1
  422. package/fp/at.js +5 -5
  423. package/fp/attempt.js +5 -5
  424. package/fp/before.js +5 -5
  425. package/fp/bind.js +5 -5
  426. package/fp/bindAll.js +5 -5
  427. package/fp/bindKey.js +5 -5
  428. package/fp/camelCase.js +5 -5
  429. package/fp/capitalize.js +5 -5
  430. package/fp/castArray.js +5 -5
  431. package/fp/ceil.js +5 -5
  432. package/fp/chain.js +5 -5
  433. package/fp/chunk.js +5 -5
  434. package/fp/clamp.js +5 -5
  435. package/fp/clone.js +5 -5
  436. package/fp/cloneDeep.js +5 -5
  437. package/fp/cloneDeepWith.js +5 -5
  438. package/fp/cloneWith.js +5 -5
  439. package/fp/collection.js +2 -2
  440. package/fp/commit.js +5 -5
  441. package/fp/compact.js +5 -5
  442. package/fp/complement.js +1 -1
  443. package/fp/compose.js +1 -1
  444. package/fp/concat.js +5 -5
  445. package/fp/cond.js +5 -5
  446. package/fp/conforms.js +1 -1
  447. package/fp/conformsTo.js +5 -5
  448. package/fp/constant.js +5 -5
  449. package/fp/contains.js +1 -1
  450. package/fp/convert.js +18 -18
  451. package/fp/countBy.js +5 -5
  452. package/fp/create.js +5 -5
  453. package/fp/curry.js +5 -5
  454. package/fp/curryN.js +5 -5
  455. package/fp/curryRight.js +5 -5
  456. package/fp/curryRightN.js +5 -5
  457. package/fp/date.js +2 -2
  458. package/fp/debounce.js +5 -5
  459. package/fp/deburr.js +5 -5
  460. package/fp/defaultTo.js +5 -5
  461. package/fp/defaults.js +5 -5
  462. package/fp/defaultsAll.js +5 -5
  463. package/fp/defaultsDeep.js +5 -5
  464. package/fp/defaultsDeepAll.js +5 -5
  465. package/fp/defer.js +5 -5
  466. package/fp/delay.js +5 -5
  467. package/fp/difference.js +5 -5
  468. package/fp/differenceBy.js +5 -5
  469. package/fp/differenceWith.js +5 -5
  470. package/fp/dissoc.js +1 -1
  471. package/fp/dissocPath.js +1 -1
  472. package/fp/divide.js +5 -5
  473. package/fp/drop.js +5 -5
  474. package/fp/dropLast.js +1 -1
  475. package/fp/dropLastWhile.js +1 -1
  476. package/fp/dropRight.js +5 -5
  477. package/fp/dropRightWhile.js +5 -5
  478. package/fp/dropWhile.js +5 -5
  479. package/fp/each.js +1 -1
  480. package/fp/eachRight.js +1 -1
  481. package/fp/endsWith.js +5 -5
  482. package/fp/entries.js +1 -1
  483. package/fp/entriesIn.js +1 -1
  484. package/fp/eq.js +5 -5
  485. package/fp/equals.js +1 -1
  486. package/fp/escape.js +5 -5
  487. package/fp/escapeRegExp.js +5 -5
  488. package/fp/every.js +5 -5
  489. package/fp/extend.js +1 -1
  490. package/fp/extendAll.js +1 -1
  491. package/fp/extendAllWith.js +1 -1
  492. package/fp/extendWith.js +1 -1
  493. package/fp/fill.js +5 -5
  494. package/fp/filter.js +5 -5
  495. package/fp/find.js +5 -5
  496. package/fp/findFrom.js +5 -5
  497. package/fp/findIndex.js +5 -5
  498. package/fp/findIndexFrom.js +5 -5
  499. package/fp/findKey.js +5 -5
  500. package/fp/findLast.js +5 -5
  501. package/fp/findLastFrom.js +5 -5
  502. package/fp/findLastIndex.js +5 -5
  503. package/fp/findLastIndexFrom.js +5 -5
  504. package/fp/findLastKey.js +5 -5
  505. package/fp/first.js +1 -1
  506. package/fp/flatMap.js +5 -5
  507. package/fp/flatMapDeep.js +5 -5
  508. package/fp/flatMapDepth.js +5 -5
  509. package/fp/flatten.js +5 -5
  510. package/fp/flattenDeep.js +5 -5
  511. package/fp/flattenDepth.js +5 -5
  512. package/fp/flip.js +5 -5
  513. package/fp/floor.js +5 -5
  514. package/fp/flow.js +5 -5
  515. package/fp/flowRight.js +5 -5
  516. package/fp/forEach.js +5 -5
  517. package/fp/forEachRight.js +5 -5
  518. package/fp/forIn.js +5 -5
  519. package/fp/forInRight.js +5 -5
  520. package/fp/forOwn.js +5 -5
  521. package/fp/forOwnRight.js +5 -5
  522. package/fp/fromPairs.js +5 -5
  523. package/fp/function.js +2 -2
  524. package/fp/functions.js +5 -5
  525. package/fp/functionsIn.js +5 -5
  526. package/fp/get.js +5 -5
  527. package/fp/getOr.js +5 -5
  528. package/fp/groupBy.js +5 -5
  529. package/fp/gt.js +5 -5
  530. package/fp/gte.js +5 -5
  531. package/fp/has.js +5 -5
  532. package/fp/hasIn.js +5 -5
  533. package/fp/head.js +5 -5
  534. package/fp/identical.js +1 -1
  535. package/fp/identity.js +5 -5
  536. package/fp/inRange.js +5 -5
  537. package/fp/includes.js +5 -5
  538. package/fp/includesFrom.js +5 -5
  539. package/fp/indexBy.js +1 -1
  540. package/fp/indexOf.js +5 -5
  541. package/fp/indexOfFrom.js +5 -5
  542. package/fp/init.js +1 -1
  543. package/fp/initial.js +5 -5
  544. package/fp/intersection.js +5 -5
  545. package/fp/intersectionBy.js +5 -5
  546. package/fp/intersectionWith.js +5 -5
  547. package/fp/invert.js +5 -5
  548. package/fp/invertBy.js +5 -5
  549. package/fp/invertObj.js +1 -1
  550. package/fp/invoke.js +5 -5
  551. package/fp/invokeArgs.js +5 -5
  552. package/fp/invokeArgsMap.js +5 -5
  553. package/fp/invokeMap.js +5 -5
  554. package/fp/isArguments.js +5 -5
  555. package/fp/isArray.js +5 -5
  556. package/fp/isArrayBuffer.js +5 -5
  557. package/fp/isArrayLike.js +5 -5
  558. package/fp/isArrayLikeObject.js +5 -5
  559. package/fp/isBoolean.js +5 -5
  560. package/fp/isBuffer.js +5 -5
  561. package/fp/isDate.js +5 -5
  562. package/fp/isElement.js +5 -5
  563. package/fp/isEmpty.js +5 -5
  564. package/fp/isEqual.js +5 -5
  565. package/fp/isEqualWith.js +5 -5
  566. package/fp/isError.js +5 -5
  567. package/fp/isFinite.js +5 -5
  568. package/fp/isFunction.js +5 -5
  569. package/fp/isInteger.js +5 -5
  570. package/fp/isLength.js +5 -5
  571. package/fp/isMap.js +5 -5
  572. package/fp/isMatch.js +5 -5
  573. package/fp/isMatchWith.js +5 -5
  574. package/fp/isNaN.js +5 -5
  575. package/fp/isNative.js +5 -5
  576. package/fp/isNil.js +5 -5
  577. package/fp/isNull.js +5 -5
  578. package/fp/isNumber.js +5 -5
  579. package/fp/isObject.js +5 -5
  580. package/fp/isObjectLike.js +5 -5
  581. package/fp/isPlainObject.js +5 -5
  582. package/fp/isRegExp.js +5 -5
  583. package/fp/isSafeInteger.js +5 -5
  584. package/fp/isSet.js +5 -5
  585. package/fp/isString.js +5 -5
  586. package/fp/isSymbol.js +5 -5
  587. package/fp/isTypedArray.js +5 -5
  588. package/fp/isUndefined.js +5 -5
  589. package/fp/isWeakMap.js +5 -5
  590. package/fp/isWeakSet.js +5 -5
  591. package/fp/iteratee.js +5 -5
  592. package/fp/join.js +5 -5
  593. package/fp/juxt.js +1 -1
  594. package/fp/kebabCase.js +5 -5
  595. package/fp/keyBy.js +5 -5
  596. package/fp/keys.js +5 -5
  597. package/fp/keysIn.js +5 -5
  598. package/fp/lang.js +2 -2
  599. package/fp/last.js +5 -5
  600. package/fp/lastIndexOf.js +5 -5
  601. package/fp/lastIndexOfFrom.js +5 -5
  602. package/fp/lowerCase.js +5 -5
  603. package/fp/lowerFirst.js +5 -5
  604. package/fp/lt.js +5 -5
  605. package/fp/lte.js +5 -5
  606. package/fp/map.js +5 -5
  607. package/fp/mapKeys.js +5 -5
  608. package/fp/mapValues.js +5 -5
  609. package/fp/matches.js +1 -1
  610. package/fp/matchesProperty.js +5 -5
  611. package/fp/math.js +2 -2
  612. package/fp/max.js +5 -5
  613. package/fp/maxBy.js +5 -5
  614. package/fp/mean.js +5 -5
  615. package/fp/meanBy.js +5 -5
  616. package/fp/memoize.js +5 -5
  617. package/fp/merge.js +5 -5
  618. package/fp/mergeAll.js +5 -5
  619. package/fp/mergeAllWith.js +5 -5
  620. package/fp/mergeWith.js +5 -5
  621. package/fp/method.js +5 -5
  622. package/fp/methodOf.js +5 -5
  623. package/fp/min.js +5 -5
  624. package/fp/minBy.js +5 -5
  625. package/fp/mixin.js +5 -5
  626. package/fp/multiply.js +5 -5
  627. package/fp/nAry.js +1 -1
  628. package/fp/negate.js +5 -5
  629. package/fp/next.js +5 -5
  630. package/fp/noop.js +5 -5
  631. package/fp/now.js +5 -5
  632. package/fp/nth.js +5 -5
  633. package/fp/nthArg.js +5 -5
  634. package/fp/number.js +2 -2
  635. package/fp/object.js +2 -2
  636. package/fp/omit.js +5 -5
  637. package/fp/omitAll.js +1 -1
  638. package/fp/omitBy.js +5 -5
  639. package/fp/once.js +5 -5
  640. package/fp/orderBy.js +5 -5
  641. package/fp/over.js +5 -5
  642. package/fp/overArgs.js +5 -5
  643. package/fp/overEvery.js +5 -5
  644. package/fp/overSome.js +5 -5
  645. package/fp/pad.js +5 -5
  646. package/fp/padChars.js +5 -5
  647. package/fp/padCharsEnd.js +5 -5
  648. package/fp/padCharsStart.js +5 -5
  649. package/fp/padEnd.js +5 -5
  650. package/fp/padStart.js +5 -5
  651. package/fp/parseInt.js +5 -5
  652. package/fp/partial.js +5 -5
  653. package/fp/partialRight.js +5 -5
  654. package/fp/partition.js +5 -5
  655. package/fp/path.js +1 -1
  656. package/fp/pathEq.js +1 -1
  657. package/fp/pathOr.js +1 -1
  658. package/fp/paths.js +1 -1
  659. package/fp/pick.js +5 -5
  660. package/fp/pickAll.js +1 -1
  661. package/fp/pickBy.js +5 -5
  662. package/fp/pipe.js +1 -1
  663. package/fp/placeholder.js +6 -6
  664. package/fp/plant.js +5 -5
  665. package/fp/pluck.js +1 -1
  666. package/fp/prop.js +1 -1
  667. package/fp/propEq.js +1 -1
  668. package/fp/propOr.js +1 -1
  669. package/fp/property.js +1 -1
  670. package/fp/propertyOf.js +5 -5
  671. package/fp/props.js +1 -1
  672. package/fp/pull.js +5 -5
  673. package/fp/pullAll.js +5 -5
  674. package/fp/pullAllBy.js +5 -5
  675. package/fp/pullAllWith.js +5 -5
  676. package/fp/pullAt.js +5 -5
  677. package/fp/random.js +5 -5
  678. package/fp/range.js +5 -5
  679. package/fp/rangeRight.js +5 -5
  680. package/fp/rangeStep.js +5 -5
  681. package/fp/rangeStepRight.js +5 -5
  682. package/fp/rearg.js +5 -5
  683. package/fp/reduce.js +5 -5
  684. package/fp/reduceRight.js +5 -5
  685. package/fp/reject.js +5 -5
  686. package/fp/remove.js +5 -5
  687. package/fp/repeat.js +5 -5
  688. package/fp/replace.js +5 -5
  689. package/fp/rest.js +5 -5
  690. package/fp/restFrom.js +5 -5
  691. package/fp/result.js +5 -5
  692. package/fp/reverse.js +5 -5
  693. package/fp/round.js +5 -5
  694. package/fp/sample.js +5 -5
  695. package/fp/sampleSize.js +5 -5
  696. package/fp/seq.js +2 -2
  697. package/fp/set.js +5 -5
  698. package/fp/setWith.js +5 -5
  699. package/fp/shuffle.js +5 -5
  700. package/fp/size.js +5 -5
  701. package/fp/slice.js +5 -5
  702. package/fp/snakeCase.js +5 -5
  703. package/fp/some.js +5 -5
  704. package/fp/sortBy.js +5 -5
  705. package/fp/sortedIndex.js +5 -5
  706. package/fp/sortedIndexBy.js +5 -5
  707. package/fp/sortedIndexOf.js +5 -5
  708. package/fp/sortedLastIndex.js +5 -5
  709. package/fp/sortedLastIndexBy.js +5 -5
  710. package/fp/sortedLastIndexOf.js +5 -5
  711. package/fp/sortedUniq.js +5 -5
  712. package/fp/sortedUniqBy.js +5 -5
  713. package/fp/split.js +5 -5
  714. package/fp/spread.js +5 -5
  715. package/fp/spreadFrom.js +5 -5
  716. package/fp/startCase.js +5 -5
  717. package/fp/startsWith.js +5 -5
  718. package/fp/string.js +2 -2
  719. package/fp/stubArray.js +5 -5
  720. package/fp/stubFalse.js +5 -5
  721. package/fp/stubObject.js +5 -5
  722. package/fp/stubString.js +5 -5
  723. package/fp/stubTrue.js +5 -5
  724. package/fp/subtract.js +5 -5
  725. package/fp/sum.js +5 -5
  726. package/fp/sumBy.js +5 -5
  727. package/fp/symmetricDifference.js +1 -1
  728. package/fp/symmetricDifferenceBy.js +1 -1
  729. package/fp/symmetricDifferenceWith.js +1 -1
  730. package/fp/tail.js +5 -5
  731. package/fp/take.js +5 -5
  732. package/fp/takeLast.js +1 -1
  733. package/fp/takeLastWhile.js +1 -1
  734. package/fp/takeRight.js +5 -5
  735. package/fp/takeRightWhile.js +5 -5
  736. package/fp/takeWhile.js +5 -5
  737. package/fp/tap.js +5 -5
  738. package/fp/template.js +5 -5
  739. package/fp/templateSettings.js +5 -5
  740. package/fp/throttle.js +5 -5
  741. package/fp/thru.js +5 -5
  742. package/fp/times.js +5 -5
  743. package/fp/toArray.js +5 -5
  744. package/fp/toFinite.js +5 -5
  745. package/fp/toInteger.js +5 -5
  746. package/fp/toIterator.js +5 -5
  747. package/fp/toJSON.js +5 -5
  748. package/fp/toLength.js +5 -5
  749. package/fp/toLower.js +5 -5
  750. package/fp/toNumber.js +5 -5
  751. package/fp/toPairs.js +5 -5
  752. package/fp/toPairsIn.js +5 -5
  753. package/fp/toPath.js +5 -5
  754. package/fp/toPlainObject.js +5 -5
  755. package/fp/toSafeInteger.js +5 -5
  756. package/fp/toString.js +5 -5
  757. package/fp/toUpper.js +5 -5
  758. package/fp/transform.js +5 -5
  759. package/fp/trim.js +5 -5
  760. package/fp/trimChars.js +5 -5
  761. package/fp/trimCharsEnd.js +5 -5
  762. package/fp/trimCharsStart.js +5 -5
  763. package/fp/trimEnd.js +5 -5
  764. package/fp/trimStart.js +5 -5
  765. package/fp/truncate.js +5 -5
  766. package/fp/unapply.js +1 -1
  767. package/fp/unary.js +5 -5
  768. package/fp/unescape.js +5 -5
  769. package/fp/union.js +5 -5
  770. package/fp/unionBy.js +5 -5
  771. package/fp/unionWith.js +5 -5
  772. package/fp/uniq.js +5 -5
  773. package/fp/uniqBy.js +5 -5
  774. package/fp/uniqWith.js +5 -5
  775. package/fp/uniqueId.js +5 -5
  776. package/fp/unnest.js +1 -1
  777. package/fp/unset.js +5 -5
  778. package/fp/unzip.js +5 -5
  779. package/fp/unzipWith.js +5 -5
  780. package/fp/update.js +5 -5
  781. package/fp/updateWith.js +5 -5
  782. package/fp/upperCase.js +5 -5
  783. package/fp/upperFirst.js +5 -5
  784. package/fp/useWith.js +1 -1
  785. package/fp/util.js +2 -2
  786. package/fp/value.js +5 -5
  787. package/fp/valueOf.js +5 -5
  788. package/fp/values.js +5 -5
  789. package/fp/valuesIn.js +5 -5
  790. package/fp/where.js +1 -1
  791. package/fp/whereEq.js +1 -1
  792. package/fp/without.js +5 -5
  793. package/fp/words.js +5 -5
  794. package/fp/wrap.js +5 -5
  795. package/fp/wrapperAt.js +5 -5
  796. package/fp/wrapperChain.js +5 -5
  797. package/fp/wrapperLodash.js +5 -5
  798. package/fp/wrapperReverse.js +5 -5
  799. package/fp/wrapperValue.js +5 -5
  800. package/fp/xor.js +5 -5
  801. package/fp/xorBy.js +5 -5
  802. package/fp/xorWith.js +5 -5
  803. package/fp/zip.js +5 -5
  804. package/fp/zipAll.js +5 -5
  805. package/fp/zipObj.js +1 -1
  806. package/fp/zipObject.js +5 -5
  807. package/fp/zipObjectDeep.js +5 -5
  808. package/fp/zipWith.js +5 -5
  809. package/fp.js +2 -2
  810. package/fromPairs.js +28 -28
  811. package/function.js +25 -25
  812. package/functions.js +31 -31
  813. package/functionsIn.js +31 -31
  814. package/get.js +33 -33
  815. package/groupBy.js +41 -41
  816. package/gt.js +29 -29
  817. package/gte.js +30 -30
  818. package/has.js +35 -35
  819. package/hasIn.js +34 -34
  820. package/head.js +23 -23
  821. package/identity.js +21 -21
  822. package/inRange.js +55 -55
  823. package/includes.js +53 -53
  824. package/indexOf.js +42 -42
  825. package/initial.js +22 -22
  826. package/intersection.js +30 -30
  827. package/intersectionBy.js +45 -45
  828. package/intersectionWith.js +41 -41
  829. package/invert.js +42 -42
  830. package/invertBy.js +56 -56
  831. package/invoke.js +24 -24
  832. package/invokeMap.js +41 -41
  833. package/isArguments.js +36 -36
  834. package/isArray.js +26 -26
  835. package/isArrayBuffer.js +27 -27
  836. package/isArrayLike.js +33 -33
  837. package/isArrayLikeObject.js +33 -33
  838. package/isBoolean.js +29 -29
  839. package/isBuffer.js +38 -38
  840. package/isDate.js +27 -27
  841. package/isElement.js +25 -25
  842. package/isEmpty.js +77 -77
  843. package/isEqual.js +35 -35
  844. package/isEqualWith.js +41 -41
  845. package/isError.js +36 -36
  846. package/isFinite.js +36 -36
  847. package/isFunction.js +37 -37
  848. package/isInteger.js +33 -33
  849. package/isLength.js +35 -35
  850. package/isMap.js +27 -27
  851. package/isMatch.js +36 -36
  852. package/isMatchWith.js +41 -41
  853. package/isNaN.js +38 -38
  854. package/isNative.js +40 -40
  855. package/isNil.js +25 -25
  856. package/isNull.js +22 -22
  857. package/isNumber.js +38 -38
  858. package/isObject.js +31 -31
  859. package/isObjectLike.js +29 -29
  860. package/isPlainObject.js +62 -62
  861. package/isRegExp.js +27 -27
  862. package/isSafeInteger.js +37 -37
  863. package/isSet.js +27 -27
  864. package/isString.js +30 -30
  865. package/isSymbol.js +29 -29
  866. package/isTypedArray.js +27 -27
  867. package/isUndefined.js +22 -22
  868. package/isWeakMap.js +28 -28
  869. package/isWeakSet.js +28 -28
  870. package/iteratee.js +53 -53
  871. package/join.js +26 -26
  872. package/kebabCase.js +28 -28
  873. package/keyBy.js +36 -36
  874. package/keys.js +37 -37
  875. package/keysIn.js +32 -32
  876. package/lang.js +58 -58
  877. package/last.js +20 -20
  878. package/lastIndexOf.js +46 -46
  879. package/lodash.js +17248 -17209
  880. package/lodash.min.js +6 -135
  881. package/lowerCase.js +27 -27
  882. package/lowerFirst.js +22 -22
  883. package/lt.js +29 -29
  884. package/lte.js +30 -30
  885. package/map.js +53 -53
  886. package/mapKeys.js +36 -36
  887. package/mapValues.js +43 -43
  888. package/matches.js +46 -46
  889. package/matchesProperty.js +44 -44
  890. package/math.js +17 -17
  891. package/max.js +29 -29
  892. package/maxBy.js +34 -34
  893. package/mean.js +22 -22
  894. package/meanBy.js +31 -31
  895. package/memoize.js +73 -73
  896. package/merge.js +39 -39
  897. package/mergeWith.js +39 -39
  898. package/method.js +34 -34
  899. package/methodOf.js +33 -33
  900. package/min.js +29 -29
  901. package/minBy.js +34 -34
  902. package/mixin.js +74 -74
  903. package/multiply.js +22 -22
  904. package/negate.js +40 -40
  905. package/next.js +35 -35
  906. package/noop.js +17 -17
  907. package/now.js +23 -23
  908. package/nth.js +29 -29
  909. package/nthArg.js +32 -32
  910. package/number.js +5 -5
  911. package/object.js +49 -49
  912. package/omit.js +57 -57
  913. package/omitBy.js +29 -29
  914. package/once.js +25 -25
  915. package/orderBy.js +47 -47
  916. package/over.js +24 -24
  917. package/overArgs.js +61 -61
  918. package/overEvery.js +34 -34
  919. package/overSome.js +37 -37
  920. package/package.json +30 -27
  921. package/pad.js +49 -49
  922. package/padEnd.js +39 -39
  923. package/padStart.js +39 -39
  924. package/parseInt.js +43 -43
  925. package/partial.js +50 -50
  926. package/partialRight.js +49 -49
  927. package/partition.js +43 -43
  928. package/pick.js +25 -25
  929. package/pickBy.js +37 -37
  930. package/plant.js +48 -48
  931. package/property.js +32 -32
  932. package/propertyOf.js +30 -30
  933. package/pull.js +29 -29
  934. package/pullAll.js +29 -29
  935. package/pullAllBy.js +33 -33
  936. package/pullAllWith.js +32 -32
  937. package/pullAt.js +43 -43
  938. package/random.js +82 -82
  939. package/range.js +46 -46
  940. package/rangeRight.js +41 -41
  941. package/rearg.js +33 -33
  942. package/reduce.js +51 -51
  943. package/reduceRight.js +36 -36
  944. package/reject.js +46 -46
  945. package/remove.js +53 -53
  946. package/repeat.js +37 -37
  947. package/replace.js +29 -29
  948. package/rest.js +40 -40
  949. package/result.js +56 -56
  950. package/reverse.js +34 -34
  951. package/round.js +26 -26
  952. package/sample.js +24 -24
  953. package/sampleSize.js +37 -37
  954. package/seq.js +16 -16
  955. package/set.js +35 -35
  956. package/setWith.js +32 -32
  957. package/shuffle.js +25 -25
  958. package/size.js +46 -46
  959. package/slice.js +37 -37
  960. package/snakeCase.js +28 -28
  961. package/some.js +51 -51
  962. package/sortBy.js +48 -48
  963. package/sortedIndex.js +24 -24
  964. package/sortedIndexBy.js +33 -33
  965. package/sortedIndexOf.js +31 -31
  966. package/sortedLastIndex.js +25 -25
  967. package/sortedLastIndexBy.js +33 -33
  968. package/sortedLastIndexOf.js +31 -31
  969. package/sortedUniq.js +24 -24
  970. package/sortedUniqBy.js +26 -26
  971. package/split.js +52 -52
  972. package/spread.js +63 -63
  973. package/startCase.js +29 -29
  974. package/startsWith.js +39 -39
  975. package/string.js +33 -33
  976. package/stubArray.js +23 -23
  977. package/stubFalse.js +18 -18
  978. package/stubObject.js +23 -23
  979. package/stubString.js +18 -18
  980. package/stubTrue.js +18 -18
  981. package/subtract.js +22 -22
  982. package/sum.js +24 -24
  983. package/sumBy.js +33 -33
  984. package/tail.js +22 -22
  985. package/take.js +37 -37
  986. package/takeRight.js +39 -39
  987. package/takeRightWhile.js +45 -45
  988. package/takeWhile.js +45 -45
  989. package/tap.js +29 -29
  990. package/template.js +272 -272
  991. package/templateSettings.js +67 -67
  992. package/throttle.js +69 -69
  993. package/thru.js +28 -28
  994. package/times.js +51 -51
  995. package/toArray.js +58 -58
  996. package/toFinite.js +42 -42
  997. package/toInteger.js +36 -36
  998. package/toIterator.js +23 -23
  999. package/toJSON.js +1 -1
  1000. package/toLength.js +38 -38
  1001. package/toLower.js +28 -28
  1002. package/toNumber.js +64 -64
  1003. package/toPairs.js +30 -30
  1004. package/toPairsIn.js +30 -30
  1005. package/toPath.js +33 -33
  1006. package/toPlainObject.js +32 -32
  1007. package/toSafeInteger.js +37 -37
  1008. package/toString.js +28 -28
  1009. package/toUpper.js +28 -28
  1010. package/transform.js +65 -65
  1011. package/trim.js +47 -47
  1012. package/trimEnd.js +41 -41
  1013. package/trimStart.js +43 -43
  1014. package/truncate.js +111 -111
  1015. package/unary.js +22 -22
  1016. package/unescape.js +34 -34
  1017. package/union.js +26 -26
  1018. package/unionBy.js +39 -39
  1019. package/unionWith.js +34 -34
  1020. package/uniq.js +25 -25
  1021. package/uniqBy.js +31 -31
  1022. package/uniqWith.js +28 -28
  1023. package/uniqueId.js +28 -28
  1024. package/unset.js +34 -34
  1025. package/unzip.js +45 -45
  1026. package/unzipWith.js +39 -39
  1027. package/update.js +35 -35
  1028. package/updateWith.js +33 -33
  1029. package/upperCase.js +27 -27
  1030. package/upperFirst.js +22 -22
  1031. package/util.js +34 -34
  1032. package/value.js +1 -1
  1033. package/valueOf.js +1 -1
  1034. package/values.js +34 -34
  1035. package/valuesIn.js +32 -32
  1036. package/without.js +31 -31
  1037. package/words.js +35 -35
  1038. package/wrap.js +30 -30
  1039. package/wrapperAt.js +48 -48
  1040. package/wrapperChain.js +34 -34
  1041. package/wrapperLodash.js +147 -147
  1042. package/wrapperReverse.js +44 -44
  1043. package/wrapperValue.js +21 -21
  1044. package/xor.js +28 -28
  1045. package/xorBy.js +39 -39
  1046. package/xorWith.js +34 -34
  1047. package/zip.js +22 -22
  1048. package/zipObject.js +24 -24
  1049. package/zipObjectDeep.js +23 -23
  1050. package/zipWith.js +32 -32
  1051. package/_.log +0 -3
package/template.js CHANGED
@@ -1,272 +1,272 @@
1
- var assignInWith = require('./assignInWith'),
2
- attempt = require('./attempt'),
3
- baseValues = require('./_baseValues'),
4
- customDefaultsAssignIn = require('./_customDefaultsAssignIn'),
5
- escapeStringChar = require('./_escapeStringChar'),
6
- isError = require('./isError'),
7
- isIterateeCall = require('./_isIterateeCall'),
8
- keys = require('./keys'),
9
- reInterpolate = require('./_reInterpolate'),
10
- templateSettings = require('./templateSettings'),
11
- toString = require('./toString');
12
-
13
- /** Error message constants. */
14
- var INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';
15
-
16
- /** Used to match empty string literals in compiled template source. */
17
- var reEmptyStringLeading = /\b__p \+= '';/g,
18
- reEmptyStringMiddle = /\b(__p \+=) '' \+/g,
19
- reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g;
20
-
21
- /**
22
- * Used to validate the `validate` option in `_.template` variable.
23
- *
24
- * Forbids characters which could potentially change the meaning of the function argument definition:
25
- * - "()," (modification of function parameters)
26
- * - "=" (default value)
27
- * - "[]{}" (destructuring of function parameters)
28
- * - "/" (beginning of a comment)
29
- * - whitespace
30
- */
31
- var reForbiddenIdentifierChars = /[()=,{}\[\]\/\s]/;
32
-
33
- /**
34
- * Used to match
35
- * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).
36
- */
37
- var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;
38
-
39
- /** Used to ensure capturing order of template delimiters. */
40
- var reNoMatch = /($^)/;
41
-
42
- /** Used to match unescaped characters in compiled string literals. */
43
- var reUnescapedString = /['\n\r\u2028\u2029\\]/g;
44
-
45
- /** Used for built-in method references. */
46
- var objectProto = Object.prototype;
47
-
48
- /** Used to check objects for own properties. */
49
- var hasOwnProperty = objectProto.hasOwnProperty;
50
-
51
- /**
52
- * Creates a compiled template function that can interpolate data properties
53
- * in "interpolate" delimiters, HTML-escape interpolated data properties in
54
- * "escape" delimiters, and execute JavaScript in "evaluate" delimiters. Data
55
- * properties may be accessed as free variables in the template. If a setting
56
- * object is given, it takes precedence over `_.templateSettings` values.
57
- *
58
- * **Note:** In the development build `_.template` utilizes
59
- * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)
60
- * for easier debugging.
61
- *
62
- * For more information on precompiling templates see
63
- * [lodash's custom builds documentation](https://lodash.com/custom-builds).
64
- *
65
- * For more information on Chrome extension sandboxes see
66
- * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).
67
- *
68
- * @static
69
- * @since 0.1.0
70
- * @memberOf _
71
- * @category String
72
- * @param {string} [string=''] The template string.
73
- * @param {Object} [options={}] The options object.
74
- * @param {RegExp} [options.escape=_.templateSettings.escape]
75
- * The HTML "escape" delimiter.
76
- * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]
77
- * The "evaluate" delimiter.
78
- * @param {Object} [options.imports=_.templateSettings.imports]
79
- * An object to import into the template as free variables.
80
- * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]
81
- * The "interpolate" delimiter.
82
- * @param {string} [options.sourceURL='templateSources[n]']
83
- * The sourceURL of the compiled template.
84
- * @param {string} [options.variable='obj']
85
- * The data object variable name.
86
- * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
87
- * @returns {Function} Returns the compiled template function.
88
- * @example
89
- *
90
- * // Use the "interpolate" delimiter to create a compiled template.
91
- * var compiled = _.template('hello <%= user %>!');
92
- * compiled({ 'user': 'fred' });
93
- * // => 'hello fred!'
94
- *
95
- * // Use the HTML "escape" delimiter to escape data property values.
96
- * var compiled = _.template('<b><%- value %></b>');
97
- * compiled({ 'value': '<script>' });
98
- * // => '<b>&lt;script&gt;</b>'
99
- *
100
- * // Use the "evaluate" delimiter to execute JavaScript and generate HTML.
101
- * var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>');
102
- * compiled({ 'users': ['fred', 'barney'] });
103
- * // => '<li>fred</li><li>barney</li>'
104
- *
105
- * // Use the internal `print` function in "evaluate" delimiters.
106
- * var compiled = _.template('<% print("hello " + user); %>!');
107
- * compiled({ 'user': 'barney' });
108
- * // => 'hello barney!'
109
- *
110
- * // Use the ES template literal delimiter as an "interpolate" delimiter.
111
- * // Disable support by replacing the "interpolate" delimiter.
112
- * var compiled = _.template('hello ${ user }!');
113
- * compiled({ 'user': 'pebbles' });
114
- * // => 'hello pebbles!'
115
- *
116
- * // Use backslashes to treat delimiters as plain text.
117
- * var compiled = _.template('<%= "\\<%- value %\\>" %>');
118
- * compiled({ 'value': 'ignored' });
119
- * // => '<%- value %>'
120
- *
121
- * // Use the `imports` option to import `jQuery` as `jq`.
122
- * var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>';
123
- * var compiled = _.template(text, { 'imports': { 'jq': jQuery } });
124
- * compiled({ 'users': ['fred', 'barney'] });
125
- * // => '<li>fred</li><li>barney</li>'
126
- *
127
- * // Use the `sourceURL` option to specify a custom sourceURL for the template.
128
- * var compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' });
129
- * compiled(data);
130
- * // => Find the source of "greeting.jst" under the Sources tab or Resources panel of the web inspector.
131
- *
132
- * // Use the `variable` option to ensure a with-statement isn't used in the compiled template.
133
- * var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });
134
- * compiled.source;
135
- * // => function(data) {
136
- * // var __t, __p = '';
137
- * // __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';
138
- * // return __p;
139
- * // }
140
- *
141
- * // Use custom template delimiters.
142
- * _.templateSettings.interpolate = /{{([\s\S]+?)}}/g;
143
- * var compiled = _.template('hello {{ user }}!');
144
- * compiled({ 'user': 'mustache' });
145
- * // => 'hello mustache!'
146
- *
147
- * // Use the `source` property to inline compiled templates for meaningful
148
- * // line numbers in error messages and stack traces.
149
- * fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\
150
- * var JST = {\
151
- * "main": ' + _.template(mainText).source + '\
152
- * };\
153
- * ');
154
- */
155
- function template(string, options, guard) {
156
- // Based on John Resig's `tmpl` implementation
157
- // (http://ejohn.org/blog/javascript-micro-templating/)
158
- // and Laura Doktorova's doT.js (https://github.com/olado/doT).
159
- var settings = templateSettings.imports._.templateSettings || templateSettings;
160
-
161
- if (guard && isIterateeCall(string, options, guard)) {
162
- options = undefined;
163
- }
164
- string = toString(string);
165
- options = assignInWith({}, options, settings, customDefaultsAssignIn);
166
-
167
- var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn),
168
- importsKeys = keys(imports),
169
- importsValues = baseValues(imports, importsKeys);
170
-
171
- var isEscaping,
172
- isEvaluating,
173
- index = 0,
174
- interpolate = options.interpolate || reNoMatch,
175
- source = "__p += '";
176
-
177
- // Compile the regexp to match each delimiter.
178
- var reDelimiters = RegExp(
179
- (options.escape || reNoMatch).source + '|' +
180
- interpolate.source + '|' +
181
- (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + '|' +
182
- (options.evaluate || reNoMatch).source + '|$'
183
- , 'g');
184
-
185
- // Use a sourceURL for easier debugging.
186
- // The sourceURL gets injected into the source that's eval-ed, so be careful
187
- // to normalize all kinds of whitespace, so e.g. newlines (and unicode versions of it) can't sneak in
188
- // and escape the comment, thus injecting code that gets evaled.
189
- var sourceURL = hasOwnProperty.call(options, 'sourceURL')
190
- ? ('//# sourceURL=' +
191
- (options.sourceURL + '').replace(/\s/g, ' ') +
192
- '\n')
193
- : '';
194
-
195
- string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {
196
- interpolateValue || (interpolateValue = esTemplateValue);
197
-
198
- // Escape characters that can't be included in string literals.
199
- source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar);
200
-
201
- // Replace delimiters with snippets.
202
- if (escapeValue) {
203
- isEscaping = true;
204
- source += "' +\n__e(" + escapeValue + ") +\n'";
205
- }
206
- if (evaluateValue) {
207
- isEvaluating = true;
208
- source += "';\n" + evaluateValue + ";\n__p += '";
209
- }
210
- if (interpolateValue) {
211
- source += "' +\n((__t = (" + interpolateValue + ")) == null ? '' : __t) +\n'";
212
- }
213
- index = offset + match.length;
214
-
215
- // The JS engine embedded in Adobe products needs `match` returned in
216
- // order to produce the correct `offset` value.
217
- return match;
218
- });
219
-
220
- source += "';\n";
221
-
222
- // If `variable` is not specified wrap a with-statement around the generated
223
- // code to add the data object to the top of the scope chain.
224
- var variable = hasOwnProperty.call(options, 'variable') && options.variable;
225
- if (!variable) {
226
- source = 'with (obj) {\n' + source + '\n}\n';
227
- }
228
- // Throw an error if a forbidden character was found in `variable`, to prevent
229
- // potential command injection attacks.
230
- else if (reForbiddenIdentifierChars.test(variable)) {
231
- throw new Error(INVALID_TEMPL_VAR_ERROR_TEXT);
232
- }
233
-
234
- // Cleanup code by stripping empty strings.
235
- source = (isEvaluating ? source.replace(reEmptyStringLeading, '') : source)
236
- .replace(reEmptyStringMiddle, '$1')
237
- .replace(reEmptyStringTrailing, '$1;');
238
-
239
- // Frame code as the function body.
240
- source = 'function(' + (variable || 'obj') + ') {\n' +
241
- (variable
242
- ? ''
243
- : 'obj || (obj = {});\n'
244
- ) +
245
- "var __t, __p = ''" +
246
- (isEscaping
247
- ? ', __e = _.escape'
248
- : ''
249
- ) +
250
- (isEvaluating
251
- ? ', __j = Array.prototype.join;\n' +
252
- "function print() { __p += __j.call(arguments, '') }\n"
253
- : ';\n'
254
- ) +
255
- source +
256
- 'return __p\n}';
257
-
258
- var result = attempt(function() {
259
- return Function(importsKeys, sourceURL + 'return ' + source)
260
- .apply(undefined, importsValues);
261
- });
262
-
263
- // Provide the compiled function's source by its `toString` method or
264
- // the `source` property as a convenience for inlining compiled templates.
265
- result.source = source;
266
- if (isError(result)) {
267
- throw result;
268
- }
269
- return result;
270
- }
271
-
272
- module.exports = template;
1
+ var assignInWith = require('./assignInWith'),
2
+ attempt = require('./attempt'),
3
+ baseValues = require('./_baseValues'),
4
+ customDefaultsAssignIn = require('./_customDefaultsAssignIn'),
5
+ escapeStringChar = require('./_escapeStringChar'),
6
+ isError = require('./isError'),
7
+ isIterateeCall = require('./_isIterateeCall'),
8
+ keys = require('./keys'),
9
+ reInterpolate = require('./_reInterpolate'),
10
+ templateSettings = require('./templateSettings'),
11
+ toString = require('./toString');
12
+
13
+ /** Error message constants. */
14
+ var INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';
15
+
16
+ /** Used to match empty string literals in compiled template source. */
17
+ var reEmptyStringLeading = /\b__p \+= '';/g,
18
+ reEmptyStringMiddle = /\b(__p \+=) '' \+/g,
19
+ reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g;
20
+
21
+ /**
22
+ * Used to validate the `validate` option in `_.template` variable.
23
+ *
24
+ * Forbids characters which could potentially change the meaning of the function argument definition:
25
+ * - "()," (modification of function parameters)
26
+ * - "=" (default value)
27
+ * - "[]{}" (destructuring of function parameters)
28
+ * - "/" (beginning of a comment)
29
+ * - whitespace
30
+ */
31
+ var reForbiddenIdentifierChars = /[()=,{}\[\]\/\s]/;
32
+
33
+ /**
34
+ * Used to match
35
+ * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).
36
+ */
37
+ var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;
38
+
39
+ /** Used to ensure capturing order of template delimiters. */
40
+ var reNoMatch = /($^)/;
41
+
42
+ /** Used to match unescaped characters in compiled string literals. */
43
+ var reUnescapedString = /['\n\r\u2028\u2029\\]/g;
44
+
45
+ /** Used for built-in method references. */
46
+ var objectProto = Object.prototype;
47
+
48
+ /** Used to check objects for own properties. */
49
+ var hasOwnProperty = objectProto.hasOwnProperty;
50
+
51
+ /**
52
+ * Creates a compiled template function that can interpolate data properties
53
+ * in "interpolate" delimiters, HTML-escape interpolated data properties in
54
+ * "escape" delimiters, and execute JavaScript in "evaluate" delimiters. Data
55
+ * properties may be accessed as free variables in the template. If a setting
56
+ * object is given, it takes precedence over `_.templateSettings` values.
57
+ *
58
+ * **Note:** In the development build `_.template` utilizes
59
+ * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)
60
+ * for easier debugging.
61
+ *
62
+ * For more information on precompiling templates see
63
+ * [lodash's custom builds documentation](https://lodash.com/custom-builds).
64
+ *
65
+ * For more information on Chrome extension sandboxes see
66
+ * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).
67
+ *
68
+ * @static
69
+ * @since 0.1.0
70
+ * @memberOf _
71
+ * @category String
72
+ * @param {string} [string=''] The template string.
73
+ * @param {Object} [options={}] The options object.
74
+ * @param {RegExp} [options.escape=_.templateSettings.escape]
75
+ * The HTML "escape" delimiter.
76
+ * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]
77
+ * The "evaluate" delimiter.
78
+ * @param {Object} [options.imports=_.templateSettings.imports]
79
+ * An object to import into the template as free variables.
80
+ * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]
81
+ * The "interpolate" delimiter.
82
+ * @param {string} [options.sourceURL='templateSources[n]']
83
+ * The sourceURL of the compiled template.
84
+ * @param {string} [options.variable='obj']
85
+ * The data object variable name.
86
+ * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
87
+ * @returns {Function} Returns the compiled template function.
88
+ * @example
89
+ *
90
+ * // Use the "interpolate" delimiter to create a compiled template.
91
+ * var compiled = _.template('hello <%= user %>!');
92
+ * compiled({ 'user': 'fred' });
93
+ * // => 'hello fred!'
94
+ *
95
+ * // Use the HTML "escape" delimiter to escape data property values.
96
+ * var compiled = _.template('<b><%- value %></b>');
97
+ * compiled({ 'value': '<script>' });
98
+ * // => '<b>&lt;script&gt;</b>'
99
+ *
100
+ * // Use the "evaluate" delimiter to execute JavaScript and generate HTML.
101
+ * var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>');
102
+ * compiled({ 'users': ['fred', 'barney'] });
103
+ * // => '<li>fred</li><li>barney</li>'
104
+ *
105
+ * // Use the internal `print` function in "evaluate" delimiters.
106
+ * var compiled = _.template('<% print("hello " + user); %>!');
107
+ * compiled({ 'user': 'barney' });
108
+ * // => 'hello barney!'
109
+ *
110
+ * // Use the ES template literal delimiter as an "interpolate" delimiter.
111
+ * // Disable support by replacing the "interpolate" delimiter.
112
+ * var compiled = _.template('hello ${ user }!');
113
+ * compiled({ 'user': 'pebbles' });
114
+ * // => 'hello pebbles!'
115
+ *
116
+ * // Use backslashes to treat delimiters as plain text.
117
+ * var compiled = _.template('<%= "\\<%- value %\\>" %>');
118
+ * compiled({ 'value': 'ignored' });
119
+ * // => '<%- value %>'
120
+ *
121
+ * // Use the `imports` option to import `jQuery` as `jq`.
122
+ * var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>';
123
+ * var compiled = _.template(text, { 'imports': { 'jq': jQuery } });
124
+ * compiled({ 'users': ['fred', 'barney'] });
125
+ * // => '<li>fred</li><li>barney</li>'
126
+ *
127
+ * // Use the `sourceURL` option to specify a custom sourceURL for the template.
128
+ * var compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' });
129
+ * compiled(data);
130
+ * // => Find the source of "greeting.jst" under the Sources tab or Resources panel of the web inspector.
131
+ *
132
+ * // Use the `variable` option to ensure a with-statement isn't used in the compiled template.
133
+ * var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });
134
+ * compiled.source;
135
+ * // => function(data) {
136
+ * // var __t, __p = '';
137
+ * // __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';
138
+ * // return __p;
139
+ * // }
140
+ *
141
+ * // Use custom template delimiters.
142
+ * _.templateSettings.interpolate = /{{([\s\S]+?)}}/g;
143
+ * var compiled = _.template('hello {{ user }}!');
144
+ * compiled({ 'user': 'mustache' });
145
+ * // => 'hello mustache!'
146
+ *
147
+ * // Use the `source` property to inline compiled templates for meaningful
148
+ * // line numbers in error messages and stack traces.
149
+ * fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\
150
+ * var JST = {\
151
+ * "main": ' + _.template(mainText).source + '\
152
+ * };\
153
+ * ');
154
+ */
155
+ function template(string, options, guard) {
156
+ // Based on John Resig's `tmpl` implementation
157
+ // (http://ejohn.org/blog/javascript-micro-templating/)
158
+ // and Laura Doktorova's doT.js (https://github.com/olado/doT).
159
+ var settings = templateSettings.imports._.templateSettings || templateSettings;
160
+
161
+ if (guard && isIterateeCall(string, options, guard)) {
162
+ options = undefined;
163
+ }
164
+ string = toString(string);
165
+ options = assignInWith({}, options, settings, customDefaultsAssignIn);
166
+
167
+ var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn),
168
+ importsKeys = keys(imports),
169
+ importsValues = baseValues(imports, importsKeys);
170
+
171
+ var isEscaping,
172
+ isEvaluating,
173
+ index = 0,
174
+ interpolate = options.interpolate || reNoMatch,
175
+ source = "__p += '";
176
+
177
+ // Compile the regexp to match each delimiter.
178
+ var reDelimiters = RegExp(
179
+ (options.escape || reNoMatch).source + '|' +
180
+ interpolate.source + '|' +
181
+ (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + '|' +
182
+ (options.evaluate || reNoMatch).source + '|$'
183
+ , 'g');
184
+
185
+ // Use a sourceURL for easier debugging.
186
+ // The sourceURL gets injected into the source that's eval-ed, so be careful
187
+ // to normalize all kinds of whitespace, so e.g. newlines (and unicode versions of it) can't sneak in
188
+ // and escape the comment, thus injecting code that gets evaled.
189
+ var sourceURL = hasOwnProperty.call(options, 'sourceURL')
190
+ ? ('//# sourceURL=' +
191
+ (options.sourceURL + '').replace(/\s/g, ' ') +
192
+ '\n')
193
+ : '';
194
+
195
+ string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {
196
+ interpolateValue || (interpolateValue = esTemplateValue);
197
+
198
+ // Escape characters that can't be included in string literals.
199
+ source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar);
200
+
201
+ // Replace delimiters with snippets.
202
+ if (escapeValue) {
203
+ isEscaping = true;
204
+ source += "' +\n__e(" + escapeValue + ") +\n'";
205
+ }
206
+ if (evaluateValue) {
207
+ isEvaluating = true;
208
+ source += "';\n" + evaluateValue + ";\n__p += '";
209
+ }
210
+ if (interpolateValue) {
211
+ source += "' +\n((__t = (" + interpolateValue + ")) == null ? '' : __t) +\n'";
212
+ }
213
+ index = offset + match.length;
214
+
215
+ // The JS engine embedded in Adobe products needs `match` returned in
216
+ // order to produce the correct `offset` value.
217
+ return match;
218
+ });
219
+
220
+ source += "';\n";
221
+
222
+ // If `variable` is not specified wrap a with-statement around the generated
223
+ // code to add the data object to the top of the scope chain.
224
+ var variable = hasOwnProperty.call(options, 'variable') && options.variable;
225
+ if (!variable) {
226
+ source = 'with (obj) {\n' + source + '\n}\n';
227
+ }
228
+ // Throw an error if a forbidden character was found in `variable`, to prevent
229
+ // potential command injection attacks.
230
+ else if (reForbiddenIdentifierChars.test(variable)) {
231
+ throw new Error(INVALID_TEMPL_VAR_ERROR_TEXT);
232
+ }
233
+
234
+ // Cleanup code by stripping empty strings.
235
+ source = (isEvaluating ? source.replace(reEmptyStringLeading, '') : source)
236
+ .replace(reEmptyStringMiddle, '$1')
237
+ .replace(reEmptyStringTrailing, '$1;');
238
+
239
+ // Frame code as the function body.
240
+ source = 'function(' + (variable || 'obj') + ') {\n' +
241
+ (variable
242
+ ? ''
243
+ : 'obj || (obj = {});\n'
244
+ ) +
245
+ "var __t, __p = ''" +
246
+ (isEscaping
247
+ ? ', __e = _.escape'
248
+ : ''
249
+ ) +
250
+ (isEvaluating
251
+ ? ', __j = Array.prototype.join;\n' +
252
+ "function print() { __p += __j.call(arguments, '') }\n"
253
+ : ';\n'
254
+ ) +
255
+ source +
256
+ 'return __p\n}';
257
+
258
+ var result = attempt(function() {
259
+ return Function(importsKeys, sourceURL + 'return ' + source)
260
+ .apply(undefined, importsValues);
261
+ });
262
+
263
+ // Provide the compiled function's source by its `toString` method or
264
+ // the `source` property as a convenience for inlining compiled templates.
265
+ result.source = source;
266
+ if (isError(result)) {
267
+ throw result;
268
+ }
269
+ return result;
270
+ }
271
+
272
+ module.exports = template;