ticon octicon-file-text"> _createBind.js 30f7226d9a first commit лет назад: 2 _createCaseFirst.js 30f7226d9a first commit лет назад: 2 _createCompounder.js 30f7226d9a first commit лет назад: 2 _createCtor.js 30f7226d9a first commit лет назад: 2 _createCurry.js 30f7226d9a first commit лет назад: 2 _createFind.js 30f7226d9a first commit лет назад: 2 _createFlow.js 30f7226d9a first commit лет назад: 2 _createHybrid.js 30f7226d9a first commit лет назад: 2 _createInverter.js 30f7226d9a first commit лет назад: 2 _createMathOperation.js 30f7226d9a first commit лет назад: 2 _createOver.js 30f7226d9a first commit лет назад: 2 _createPadding.js 30f7226d9a first commit лет назад: 2 _createPartial.js 30f7226d9a first commit лет назад: 2 _createRange.js 30f7226d9a first commit лет назад: 2 _createRecurry.js 30f7226d9a first commit лет назад: 2 _createRelationalOperation.js 30f7226d9a first commit лет назад: 2 _createRound.js 30f7226d9a first commit лет назад: 2 _createSet.js 30f7226d9a first commit лет назад: 2 _createToPairs.js 30f7226d9a first commit лет назад: 2 _createWrap.js 30f7226d9a first commit лет назад: 2 _customDefaultsAssignIn.js 30f7226d9a first commit лет назад: 2 _customDefaultsMerge.js 30f7226d9a first commit лет назад: 2 _customOmitClone.js 30f7226d9a first commit лет назад: 2 _deburrLetter.js 30f7226d9a first commit лет назад: 2 _defineProperty.js 30f7226d9a first commit лет назад: 2 _equalArrays.js 30f7226d9a first commit лет назад: 2 _equalByTag.js 30f7226d9a first commit лет назад: 2 _equalObjects.js 30f7226d9a first commit лет назад: 2 _escapeHtmlChar.js 30f7226d9a first commit лет назад: 2 _escapeStringChar.js 30f7226d9a first commit лет назад: 2 _flatRest.js 30f7226d9a first commit лет назад: 2 _freeGlobal.js 30f7226d9a first commit лет назад: 2 _getAllKeys.js 30f7226d9a first commit лет назад: 2 _getAllKeysIn.js 30f7226d9a first commit лет назад: 2 _getData.js 30f7226d9a first commit лет назад: 2 _getFuncName.js 30f7226d9a first commit лет назад: 2 _getHolder.js 30f7226d9a first commit лет назад: 2 _getMapData.js 30f7226d9a first commit лет назад: 2 _getMatchData.js 30f7226d9a first commit лет назад: 2 _getNative.js 30f7226d9a first commit лет назад: 2 _getPrototype.js 30f7226d9a first commit лет назад: 2 _getRawTag.js 30f7226d9a first commit лет назад: 2 _getSymbols.js 30f7226d9a first commit лет назад: 2 _getSymbolsIn.js 30f7226d9a first commit лет назад: 2 _getTag.js 30f7226d9a first commit лет назад: 2 _getValue.js 30f7226d9a first commit лет назад: 2 _getView.js 30f7226d9a first commit лет назад: 2 _getWrapDetails.js 30f7226d9a first commit лет назад: 2 _hasPath.js 30f7226d9a first commit лет назад: 2 _hasUnicode.js 30f7226d9a first commit лет назад: 2 _hasUnicodeWord.js 30f7226d9a first commit лет назад: 2 _hashClear.js 30f7226d9a first commit лет назад: 2 _hashDelete.js 30f7226d9a first commit лет назад: 2 _hashGet.js 30f7226d9a first commit лет назад: 2 _hashHas.js 30f7226d9a first commit лет назад: 2 _hashSet.js 30f7226d9a first commit лет назад: 2 _initCloneArray.js 30f7226d9a first commit лет назад: 2 _initCloneByTag.js 30f7226d9a first commit лет назад: 2 _initCloneObject.js 30f7226d9a first commit лет назад: 2 _insertWrapDetails.js 30f7226d9a first commit лет назад: 2 _isFlattenable.js 30f7226d9a first commit лет назад: 2 _isIndex.js 30f7226d9a first commit лет назад: 2 _isIterateeCall.js 30f7226d9a first commit лет назад: 2 _isKey.js 30f7226d9a first commit лет назад: 2 _isKeyable.js 30f7226d9a first commit лет назад: 2 _isLaziable.js 30f7226d9a first commit лет назад: 2 _isMaskable.js 30f7226d9a first commit лет назад: 2 _isMasked.js 30f7226d9a first commit лет назад: 2 _isPrototype.js 30f7226d9a first commit лет назад: 2 _isStrictComparable.js 30f7226d9a first commit лет назад: 2 _iteratorToArray.js 30f7226d9a first commit лет назад: 2 _lazyClone.js 30f7226d9a first commit лет назад: 2 _lazyReverse.js 30f7226d9a first commit лет назад: 2 _lazyValue.js 30f7226d9a first commit лет назад: 2 _listCacheClear.js 30f7226d9a first commit лет назад: 2 _listCacheDelete.js 30f7226d9a first commit лет назад: 2 _listCacheGet.js 30f7226d9a first commit лет назад: 2 _listCacheHas.js 30f7226d9a first commit лет назад: 2 _listCacheSet.js 30f7226d9a first commit лет назад: 2 _mapCacheClear.js 30f7226d9a first commit лет назад: 2 _mapCacheDelete.js 30f7226d9a first commit лет назад: 2 _mapCacheGet.js 30f7226d9a first commit лет назад: 2 _mapCacheHas.js 30f7226d9a first commit лет назад: 2 _mapCacheSet.js 30f7226d9a first commit лет назад: 2 _mapToArray.js 30f7226d9a first commit лет назад: 2 _matchesStrictComparable.js 30f7226d9a first commit лет назад: 2 _memoizeCapped.js 30f7226d9a first commit лет назад: 2 _mergeData.js 30f7226d9a first commit лет назад: 2 _metaMap.js 30f7226d9a first commit лет назад: 2 _nativeCreate.js 30f7226d9a first commit лет назад: 2 _nativeKeys.js 30f7226d9a first commit лет назад: 2 _nativeKeysIn.js 30f7226d9a first commit лет назад: 2 _nodeUtil.js 30f7226d9a first commit лет назад: 2 _objectToString.js 30f7226d9a first commit лет назад: 2 _overArg.js 30f7226d9a first commit лет назад: 2 _overRest.js 30f7226d9a first commit лет назад: 2 _parent.js 30f7226d9a first commit лет назад: 2 _reEscape.js 30f7226d9a first commit лет назад: 2 _reEvaluate.js 30f7226d9a first commit лет назад: 2 _reInterpolate.js 30f7226d9a first commit лет назад: 2 _realNames.js 30f7226d9a first commit лет назад: 2 _reorder.js 30f7226d9a first commit лет назад: 2 _replaceHolders.js 30f7226d9a first commit лет назад: 2 _root.js 30f7226d9a first commit лет назад: 2 _safeGet.js 30f7226d9a first commit лет назад: 2 _setCacheAdd.js 30f7226d9a first commit лет назад: 2 _setCacheHas.js 30f7226d9a first commit лет назад: 2 _setData.js 30f7226d9a first commit лет назад: 2 _setToArray.js 30f7226d9a first commit лет назад: 2 _setToPairs.js 30f7226d9a first commit лет назад: 2 _setToString.js 30f7226d9a first commit лет назад: 2 _setWrapToString.js 30f7226d9a first commit лет назад: 2 _shortOut.js 30f7226d9a first commit лет назад: 2 _shuffleSelf.js 30f7226d9a first commit лет назад: 2 _stackClear.js 30f7226d9a first commit лет назад: 2 _stackDelete.js 30f7226d9a first commit лет назад: 2 _stackGet.js 30f7226d9a first commit лет назад: 2 _stackHas.js 30f7226d9a first commit лет назад: 2 _stackSet.js 30f7226d9a first commit лет назад: 2 _strictIndexOf.js 30f7226d9a first commit лет назад: 2 _strictLastIndexOf.js 30f7226d9a first commit лет назад: 2 _stringSize.js 30f7226d9a first commit лет назад: 2 _stringToArray.js 30f7226d9a first commit лет назад: 2 _stringToPath.js 30f7226d9a first commit лет назад: 2 _toKey.js 30f7226d9a first commit лет назад: 2 _toSource.js 30f7226d9a first commit лет назад: 2 _trimmedEndIndex.js 30f7226d9a first commit лет назад: 2 _unescapeHtmlChar.js 30f7226d9a first commit лет назад: 2 _unicodeSize.js 30f7226d9a first commit лет назад: 2 _unicodeToArray.js 30f7226d9a first commit лет назад: 2 _unicodeWords.js 30f7226d9a first commit лет назад: 2 _updateWrapDetails.js 30f7226d9a first commit лет назад: 2 _wrapperClone.js 30f7226d9a first commit лет назад: 2 add.js 30f7226d9a first commit лет назад: 2 after.js 30f7226d9a first commit лет назад: 2 array.js 30f7226d9a first commit лет назад: 2 ary.js 30f7226d9a first commit лет назад: 2 assign.js 30f7226d9a first commit лет назад: 2 assignIn.js 30f7226d9a first commit лет назад: 2 assignInWith.js 30f7226d9a first commit лет назад: 2 assignWith.js 30f7226d9a first commit лет назад: 2 at.js 30f7226d9a first commit лет назад: 2 attempt.js 30f7226d9a first commit лет назад: 2 before.js 30f7226d9a first commit лет назад: 2 bind.js 30f7226d9a first commit лет назад: 2 bindAll.js 30f7226d9a first commit лет назад: 2 bindKey.js 30f7226d9a first commit лет назад: 2 camelCase.js 30f7226d9a first commit лет назад: 2 capitalize.js 30f7226d9a first commit лет назад: 2 castArray.js 30f7226d9a first commit лет назад: 2 ceil.js 30f7226d9a first commit лет назад: 2 chain.js 30f7226d9a first commit лет назад: 2 chunk.js 30f7226d9a first commit лет назад: 2 clamp.js 30f7226d9a first commit лет назад: 2 clone.js 30f7226d9a first commit лет назад: 2 cloneDeep.js 30f7226d9a first commit лет назад: 2 cloneDeepWith.js 30f7226d9a first commit лет назад: 2 cloneWith.js 30f7226d9a first commit лет назад: 2 collection.js 30f7226d9a first commit лет назад: 2 commit.js 30f7226d9a first commit лет назад: 2 compact.js 30f7226d9a first commit лет назад: 2 concat.js 30f7226d9a first commit лет назад: 2 cond.js 30f7226d9a first commit лет назад: 2 conforms.js 30f7226d9a first commit лет назад: 2 conformsTo.js 30f7226d9a first commit лет назад: 2 constant.js 30f7226d9a first commit лет назад: 2 core.js 30f7226d9a first commit лет назад: 2 core.min.js 30f7226d9a first commit лет назад: 2 countBy.js 30f7226d9a first commit лет назад: 2 create.js 30f7226d9a first commit лет назад: 2 curry.js 30f7226d9a first commit лет назад: 2 curryRight.js 30f7226d9a first commit лет назад: 2 date.js 30f7226d9a first commit лет назад: 2 debounce.js 30f7226d9a first commit лет назад: 2 deburr.js 30f7226d9a first commit лет назад: 2 defaultTo.js 30f7226d9a first commit лет назад: 2 defaults.js 30f7226d9a first commit лет назад: 2 defaultsDeep.js 30f7226d9a first commit лет назад: 2 defer.js 30f7226d9a first commit лет назад: 2 delay.js 30f7226d9a first commit лет назад: 2 difference.js 30f7226d9a first commit лет назад: 2 differenceBy.js 30f7226d9a first commit лет назад: 2 differenceWith.js 30f7226d9a first commit лет назад: 2 divide.js 30f7226d9a first commit лет назад: 2 drop.js 30f7226d9a first commit лет назад: 2 dropRight.js 30f7226d9a first commit лет назад: 2 dropRightWhile.js 30f7226d9a first commit лет назад: 2 dropWhile.js 30f7226d9a first commit лет назад: 2 each.js 30f7226d9a first commit лет назад: 2 eachRight.js 30f7226d9a first commit лет назад: 2 endsWith.js 30f7226d9a first commit лет назад: 2 entries.js 30f7226d9a first commit лет назад: 2 entriesIn.js 30f7226d9a first commit лет назад: 2 eq.js 30f7226d9a first commit лет назад: 2 escape.js 30f7226d9a first commit лет назад: 2 escapeRegExp.js 30f7226d9a first commit лет назад: 2 every.js 30f7226d9a first commit лет назад: 2 extend.js 30f7226d9a first commit лет назад: 2 extendWith.js 30f7226d9a first commit лет назад: 2 fill.js 30f7226d9a first commit лет назад: 2 filter.js 30f7226d9a first commit лет назад: 2 find.js 30f7226d9a first commit лет назад: 2 findIndex.js 30f7226d9a first commit лет назад: 2 findKey.js 30f7226d9a first commit лет назад: 2 findLast.js 30f7226d9a first commit лет назад: 2 findLastIndex.js 30f7226d9a first commit лет назад: 2 findLastKey.js 30f7226d9a first commit лет назад: 2 first.js 30f7226d9a first commit лет назад: 2 flake.lock 30f7226d9a first commit лет назад: 2 flake.nix 30f7226d9a first commit лет назад: 2 flatMap.js 30f7226d9a first commit лет назад: 2 flatMapDeep.js 30f7226d9a first commit лет назад: 2 flatMapDepth.js 30f7226d9a first commit лет назад: 2 flatten.js 30f7226d9a first commit лет назад: 2 flattenDeep.js 30f7226d9a first commit лет назад: 2 flattenDepth.js 30f7226d9a first commit лет назад: 2 flip.js 30f7226d9a first commit лет назад: 2 floor.js 30f7226d9a first commit лет назад: 2 flow.js 30f7226d9a first commit лет назад: 2 flowRight.js 30f7226d9a first commit лет назад: 2 forEach.js 30f7226d9a first commit лет назад: 2 forEachRight.js 30f7226d9a first commit лет назад: 2 forIn.js 30f7226d9a first commit лет назад: 2 forInRight.js 30f7226d9a first commit лет назад: 2 forOwn.js 30f7226d9a first commit лет назад: 2 forOwnRight.js 30f7226d9a first commit лет назад: 2 fp.js 30f7226d9a first commit лет назад: 2 fromPairs.js 30f7226d9a first commit лет назад: 2 function.js 30f7226d9a first commit лет назад: 2 functions.js 30f7226d9a first commit лет назад: 2 functionsIn.js 30f7226d9a first commit лет назад: 2 get.js 30f7226d9a first commit лет назад: 2 groupBy.js 30f7226d9a first commit лет назад: 2 gt.js 30f7226d9a first commit лет назад: 2 gte.js 30f7226d9a first commit лет назад: 2 has.js 30f7226d9a first commit лет назад: 2 hasIn.js 30f7226d9a first commit лет назад: 2 head.js 30f7226d9a first commit лет назад: 2 identity.js 30f7226d9a first commit лет назад: 2 inRange.js 30f7226d9a first commit лет назад: 2 includes.js 30f7226d9a first commit лет назад: 2 index.js 30f7226d9a first commit лет назад: 2 indexOf.js 30f7226d9a first commit лет назад: 2 initial.js 30f7226d9a first commit лет назад: 2 intersection.js 30f7226d9a first commit лет назад: 2 intersectionBy.js 30f7226d9a first commit лет назад: 2 intersectionWith.js 30f7226d9a first commit лет назад: 2 invert.js 30f7226d9a first commit лет назад: 2 invertBy.js 30f7226d9a first commit лет назад: 2 invoke.js 30f7226d9a first commit лет назад: 2 invokeMap.js 30f7226d9a first commit лет назад: 2 isArguments.js 30f7226d9a first commit лет назад: 2 isArray.js 30f7226d9a first commit лет назад: 2 isArrayBuffer.js 30f7226d9a first commit лет назад: 2 isArrayLike.js 30f7226d9a first commit лет назад: 2 isArrayLikeObject.js 30f7226d9a first commit лет назад: 2 isBoolean.js 30f7226d9a first commit лет назад: 2 isBuffer.js 30f7226d9a first commit лет назад: 2 isDate.js 30f7226d9a first commit лет назад: 2 isElement.js 30f7226d9a first commit лет назад: 2 isEmpty.js 30f7226d9a first commit лет назад: 2 isEqual.js 30f7226d9a first commit лет назад: 2 isEqualWith.js 30f7226d9a first commit лет назад: 2 isError.js 30f7226d9a first commit лет назад: 2 isFinite.js 30f7226d9a first commit лет назад: 2 isFunction.js 30f7226d9a first commit лет назад: 2 isInteger.js 30f7226d9a first commit лет назад: 2 isLength.js 30f7226d9a first commit лет назад: 2 isMap.js 30f7226d9a first commit лет назад: 2 isMatch.js 30f7226d9a first commit лет назад: 2 isMatchWith.js 30f7226d9a first commit лет назад: 2 isNaN.js 30f7226d9a first commit лет назад: 2 isNative.js 30f7226d9a first commit лет назад: 2 isNil.js 30f7226d9a first commit лет назад: 2 isNull.js 30f7226d9a first commit лет назад: 2 isNumber.js 30f7226d9a first commit лет назад: 2 isObject.js 30f7226d9a first commit лет назад: 2 isObjectLike.js 30f7226d9a first commit лет назад: 2 isPlainObject.js 30f7226d9a first commit лет назад: 2 isRegExp.js 30f7226d9a first commit лет назад: 2 isSafeInteger.js 30f7226d9a first commit лет назад: 2 isSet.js 30f7226d9a first commit лет назад: 2 isString.js 30f7226d9a first commit лет назад: 2 isSymbol.js 30f7226d9a first commit лет назад: 2 isTypedArray.js 30f7226d9a first commit лет назад: 2 isUndefined.js 30f7226d9a first commit лет назад: 2 isWeakMap.js 30f7226d9a first commit лет назад: 2 isWeakSet.js 30f7226d9a first commit лет назад: 2 iteratee.js 30f7226d9a first commit лет назад: 2 join.js 30f7226d9a first commit лет назад: 2 kebabCase.js 30f7226d9a first commit лет назад: 2 keyBy.js 30f7226d9a first commit лет назад: 2 keys.js 30f7226d9a first commit лет назад: 2 keysIn.js 30f7226d9a first commit лет назад: 2 lang.js 30f7226d9a first commit лет назад: 2 last.js 30f7226d9a first commit лет назад: 2 lastIndexOf.js 30f7226d9a first commit лет назад: 2 lodash.js 30f7226d9a first commit лет назад: 2 lodash.min.js 30f7226d9a first commit лет назад: 2 lowerCase.js 30f7226d9a first commit лет назад: 2 lowerFirst.js 30f7226d9a first commit лет назад: 2 lt.js 30f7226d9a first commit лет назад: 2 lte.js 30f7226d9a first commit лет назад: 2 map.js 30f7226d9a first commit лет назад: 2 mapKeys.js 30f7226d9a first commit лет назад: 2 mapValues.js 30f7226d9a first commit лет назад: 2 matches.js 30f7226d9a first commit лет назад: 2 matchesProperty.js 30f7226d9a first commit лет назад: 2 math.js 30f7226d9a first commit лет назад: 2 max.js 30f7226d9a first commit лет назад: 2 maxBy.js 30f7226d9a first commit лет назад: 2 mean.js 30f7226d9a first commit лет назад: 2 meanBy.js 30f7226d9a first commit лет назад: 2 memoize.js 30f7226d9a first commit лет назад: 2 merge.js 30f7226d9a first commit лет назад: 2 mergeWith.js 30f7226d9a first commit лет назад: 2 method.js 30f7226d9a first commit лет назад: 2 methodOf.js 30f7226d9a first commit лет назад: 2 min.js 30f7226d9a first commit лет назад: 2 minBy.js 30f7226d9a first commit лет назад: 2 mixin.js 30f7226d9a first commit лет назад: 2 multiply.js 30f7226d9a first commit лет назад: 2 negate.js 30f7226d9a first commit лет назад: 2 next.js 30f7226d9a first commit лет назад: 2 noop.js 30f7226d9a first commit лет назад: 2 now.js 30f7226d9a first commit лет назад: 2 nth.js 30f7226d9a first commit лет назад: 2 nthArg.js 30f7226d9a first commit лет назад: 2 number.js 30f7226d9a first commit лет назад: 2 object.js 30f7226d9a first commit лет назад: 2 omit.js 30f7226d9a first commit лет назад: 2 omitBy.js 30f7226d9a first commit лет назад: 2 once.js 30f7226d9a first commit лет назад: 2 orderBy.js 30f7226d9a first commit лет назад: 2 over.js 30f7226d9a first commit лет назад: 2 overArgs.js 30f7226d9a first commit лет назад: 2 overEvery.js 30f7226d9a first commit лет назад: 2 overSome.js 30f7226d9a first commit лет назад: 2 package.json 30f7226d9a first commit лет назад: 2 pad.js 30f7226d9a first commit лет назад: 2 padEnd.js 30f7226d9a first commit лет назад: 2 padStart.js 30f7226d9a first commit лет назад: 2 parseInt.js 30f7226d9a first commit лет назад: 2 partial.js 30f7226d9a first commit лет назад: 2 partialRight.js 30f7226d9a first commit лет назад: 2 partition.js 30f7226d9a first commit лет назад: 2 pick.js 30f7226d9a first commit лет назад: 2 pickBy.js 30f7226d9a first commit лет назад: 2 plant.js 30f7226d9a first commit лет назад: 2 property.js 30f7226d9a first commit лет назад: 2 propertyOf.js 30f7226d9a first commit лет назад: 2 pull.js 30f7226d9a first commit лет назад: 2 pullAll.js 30f7226d9a first commit лет назад: 2 pullAllBy.js 30f7226d9a first commit лет назад: 2 pullAllWith.js 30f7226d9a first commit лет назад: 2 pullAt.js 30f7226d9a first commit лет назад: 2 random.js 30f7226d9a first commit лет назад: 2 range.js 30f7226d9a first commit лет назад: 2 rangeRight.js 30f7226d9a first commit лет назад: 2 rearg.js 30f7226d9a first commit лет назад: 2 reduce.js 30f7226d9a first commit лет назад: 2 reduceRight.js 30f7226d9a first commit лет назад: 2 reject.js 30f7226d9a first commit лет назад: 2 release.md 30f7226d9a first commit лет назад: 2 remove.js 30f7226d9a first commit лет назад: 2 repeat.js 30f7226d9a first commit лет назад: 2 replace.js 30f7226d9a first commit лет назад: 2 rest.js 30f7226d9a first commit лет назад: 2 result.js 30f7226d9a first commit лет назад: 2 reverse.js 30f7226d9a first commit лет назад: 2 round.js 30f7226d9a first commit лет назад: 2 sample.js 30f7226d9a first commit лет назад: 2 sampleSize.js 30f7226d9a first commit лет назад: 2 seq.js 30f7226d9a first commit лет назад: 2 set.js 30f7226d9a first commit лет назад: 2 setWith.js 30f7226d9a first commit лет назад: 2 shuffle.js 30f7226d9a first commit лет назад: 2 size.js 30f7226d9a first commit лет назад: 2 slice.js 30f7226d9a first commit лет назад: 2 snakeCase.js 30f7226d9a first commit лет назад: 2 some.js 30f7226d9a first commit лет назад: 2 sortBy.js 30f7226d9a first commit лет назад: 2 sortedIndex.js 30f7226d9a first commit лет назад: 2 sortedIndexBy.js 30f7226d9a first commit лет назад: 2 sortedIndexOf.js 30f7226d9a first commit лет назад: 2 sortedLastIndex.js 30f7226d9a first commit лет назад: 2 sortedLastIndexBy.js 30f7226d9a first commit лет назад: 2 sortedLastIndexOf.js 30f7226d9a first commit лет назад: 2 sortedUniq.js 30f7226d9a first commit лет назад: 2 sortedUniqBy.js 30f7226d9a first commit лет назад: 2 split.js 30f7226d9a first commit лет назад: 2 spread.js 30f7226d9a first commit лет назад: 2 startCase.js 30f7226d9a first commit лет назад: 2 startsWith.js 30f7226d9a first commit лет назад: 2 string.js 30f7226d9a first commit лет назад: 2 stubArray.js 30f7226d9a first commit лет назад: 2 stubFalse.js 30f7226d9a first commit лет назад: 2 stubObject.js 30f7226d9a first commit лет назад: 2 stubString.js 30f7226d9a first commit лет назад: 2 stubTrue.js 30f7226d9a first commit лет назад: 2 subtract.js 30f7226d9a first commit лет назад: 2 sum.js 30f7226d9a first commit лет назад: 2 sumBy.js 30f7226d9a first commit лет назад: 2 tail.js 30f7226d9a first commit лет назад: 2 take.js 30f7226d9a first commit лет назад: 2 takeRight.js 30f7226d9a first commit лет назад: 2 takeRightWhile.js 30f7226d9a first commit лет назад: 2 takeWhile.js 30f7226d9a first commit лет назад: 2 tap.js 30f7226d9a first commit лет назад: 2 template.js 30f7226d9a first commit лет назад: 2 templateSettings.js 30f7226d9a first commit лет назад: 2 throttle.js 30f7226d9a first commit лет назад: 2 thru.js 30f7226d9a first commit лет назад: 2 times.js 30f7226d9a first commit лет назад: 2 toArray.js 30f7226d9a first commit лет назад: 2 toFinite.js 30f7226d9a first commit лет назад: 2 toInteger.js 30f7226d9a first commit лет назад: 2 toIterator.js 30f7226d9a first commit лет назад: 2 toJSON.js 30f7226d9a first commit лет назад: 2 toLength.js 30f7226d9a first commit лет назад: 2 toLower.js 30f7226d9a first commit лет назад: 2 toNumber.js 30f7226d9a first commit лет назад: 2 toPairs.js 30f7226d9a first commit лет назад: 2 toPairsIn.js 30f7226d9a first commit лет назад: 2 toPath.js 30f7226d9a first commit лет назад: 2 toPlainObject.js 30f7226d9a first commit лет назад: 2 toSafeInteger.js 30f7226d9a first commit лет назад: 2 toString.js 30f7226d9a first commit лет назад: 2 toUpper.js 30f7226d9a first commit лет назад: 2 transform.js 30f7226d9a first commit лет назад: 2 trim.js 30f7226d9a first commit лет назад: 2 trimEnd.js 30f7226d9a first commit лет назад: 2 trimStart.js 30f7226d9a first commit лет назад: 2 truncate.js 30f7226d9a first commit лет назад: 2 unary.js 30f7226d9a first commit лет назад: 2 unescape.js 30f7226d9a first commit лет назад: 2 union.js 30f7226d9a first commit лет назад: 2 unionBy.js 30f7226d9a first commit лет назад: 2 unionWith.js 30f7226d9a first commit лет назад: 2 uniq.js 30f7226d9a first commit лет назад: 2 uniqBy.js 30f7226d9a first commit лет назад: 2 uniqWith.js 30f7226d9a first commit лет назад: 2 uniqueId.js 30f7226d9a first commit лет назад: 2 unset.js 30f7226d9a first commit лет назад: 2 unzip.js 30f7226d9a first commit лет назад: 2 unzipWith.js 30f7226d9a first commit лет назад: 2 update.js 30f7226d9a first commit лет назад: 2 updateWith.js 30f7226d9a first commit лет назад: 2 upperCase.js 30f7226d9a first commit лет назад: 2 upperFirst.js 30f7226d9a first commit лет назад: 2 util.js 30f7226d9a first commit лет назад: 2 value.js 30f7226d9a first commit лет назад: 2 valueOf.js 30f7226d9a first commit лет назад: 2 values.js 30f7226d9a first commit лет назад: 2 valuesIn.js 30f7226d9a first commit лет назад: 2 without.js 30f7226d9a first commit лет назад: 2 words.js 30f7226d9a first commit лет назад: 2 wrap.js 30f7226d9a first commit лет назад: 2 wrapperAt.js 30f7226d9a first commit лет назад: 2 wrapperChain.js 30f7226d9a first commit лет назад: 2 wrapperLodash.js 30f7226d9a first commit лет назад: 2 wrapperReverse.js 30f7226d9a first commit лет назад: 2 wrapperValue.js 30f7226d9a first commit лет назад: 2 xor.js 30f7226d9a first commit лет назад: 2 xorBy.js 30f7226d9a first commit лет назад: 2 xorWith.js 30f7226d9a first commit лет назад: 2 zip.js 30f7226d9a first commit лет назад: 2 zipObject.js 30f7226d9a first commit лет назад: 2 zipObjectDeep.js 30f7226d9a first commit лет назад: 2 zipWith.js 30f7226d9a first commit лет назад: 2

README.md

lodash v4.17.21

The Lodash library exported as Node.js modules.

Installation

Using npm:

$ npm i -g npm
$ npm i --save lodash

In Node.js:

// Load the full build.
var _ = require('lodash');
// Load the core build.
var _ = require('lodash/core');
// Load the FP build for immutable auto-curried iteratee-first data-last methods.
var fp = require('lodash/fp');

// Load method categories.
var array = require('lodash/array');
var object = require('lodash/fp/object');

// Cherry-pick methods for smaller browserify/rollup/webpack bundles.
var at = require('lodash/at');
var curryN = require('lodash/fp/curryN');

See the package source for more details.

Note:
Install n_ for Lodash use in the Node.js < 6 REPL.

Support

Tested in Chrome 74-75, Firefox 66-67, IE 11, Edge 18, Safari 11-12, & Node.js 8-12.
Automated browser & CI test runs are available.

tum/whitesports - Gogs: Simplico Git Service

Ei kuvausta

class-wp-session-tokens.php 7.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. <?php
  2. /**
  3. * Session API: WP_Session_Tokens class
  4. *
  5. * @package WordPress
  6. * @subpackage Session
  7. * @since 4.7.0
  8. */
  9. /**
  10. * Abstract class for managing user session tokens.
  11. *
  12. * @since 4.0.0
  13. */
  14. abstract class WP_Session_Tokens {
  15. /**
  16. * User ID.
  17. *
  18. * @since 4.0.0
  19. * @var int User ID.
  20. */
  21. protected $user_id;
  22. /**
  23. * Protected constructor. Use the `get_instance()` method to get the instance.
  24. *
  25. * @since 4.0.0
  26. *
  27. * @param int $user_id User whose session to manage.
  28. */
  29. protected function __construct( $user_id ) {
  30. $this->user_id = $user_id;
  31. }
  32. /**
  33. * Retrieves a session manager instance for a user.
  34. *
  35. * This method contains a {@see 'session_token_manager'} filter, allowing a plugin to swap out
  36. * the session manager for a subclass of `WP_Session_Tokens`.
  37. *
  38. * @since 4.0.0
  39. *
  40. * @param int $user_id User whose session to manage.
  41. * @return WP_Session_Tokens The session object, which is by default an instance of
  42. * the `WP_User_Meta_Session_Tokens` class.
  43. */
  44. final public static function get_instance( $user_id ) {
  45. /**
  46. * Filters the class name for the session token manager.
  47. *
  48. * @since 4.0.0
  49. *
  50. * @param string $session Name of class to use as the manager.
  51. * Default 'WP_User_Meta_Session_Tokens'.
  52. */
  53. $manager = apply_filters( 'session_token_manager', 'WP_User_Meta_Session_Tokens' );
  54. return new $manager( $user_id );
  55. }
  56. /**
  57. * Hashes the given session token for storage.
  58. *
  59. * @since 4.0.0
  60. *
  61. * @param string $token Session token to hash.
  62. * @return string A hash of the session token (a verifier).
  63. */
  64. private function hash_token( $token ) {
  65. // If ext/hash is not present, use sha1() instead.
  66. if ( function_exists( 'hash' ) ) {
  67. return hash( 'sha256', $token );
  68. } else {
  69. return sha1( $token );
  70. }
  71. }
  72. /**
  73. * Retrieves a user's session for the given token.
  74. *
  75. * @since 4.0.0
  76. *
  77. * @param string $token Session token.
  78. * @return array|null The session, or null if it does not exist.
  79. */
  80. final public function get( $token ) {
  81. $verifier = $this->hash_token( $token );
  82. return $this->get_session( $verifier );
  83. }
  84. /**
  85. * Validates the given session token for authenticity and validity.
  86. *
  87. * Checks that the given token is present and hasn't expired.
  88. *
  89. * @since 4.0.0
  90. *
  91. * @param string $token Token to verify.
  92. * @return bool Whether the token is valid for the user.
  93. */
  94. final public function verify( $token ) {
  95. $verifier = $this->hash_token( $token );
  96. return (bool) $this->get_session( $verifier );
  97. }
  98. /**
  99. * Generates a session token and attaches session information to it.
  100. *
  101. * A session token is a long, random string. It is used in a cookie
  102. * to link that cookie to an expiration time and to ensure the cookie
  103. * becomes invalidated when the user logs out.
  104. *
  105. * This function generates a token and stores it with the associated
  106. * expiration time (and potentially other session information via the
  107. * {@see 'attach_session_information'} filter).
  108. *
  109. * @since 4.0.0
  110. *
  111. * @param int $expiration Session expiration timestamp.
  112. * @return string Session token.
  113. */
  114. final public function create( $expiration ) {
  115. /**
  116. * Filters the information attached to the newly created session.
  117. *
  118. * Can be used to attach further information to a session.
  119. *
  120. * @since 4.0.0
  121. *
  122. * @param array $session Array of extra data.
  123. * @param int $user_id User ID.
  124. */
  125. $session = apply_filters( 'attach_session_information', array(), $this->user_id );
  126. $session['expiration'] = $expiration;
  127. // IP address.
  128. if ( ! empty( $_SERVER['REMOTE_ADDR'] ) ) {
  129. $session['ip'] = $_SERVER['REMOTE_ADDR'];
  130. }
  131. // User-agent.
  132. if ( ! empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
  133. $session['ua'] = wp_unslash( $_SERVER['HTTP_USER_AGENT'] );
  134. }
  135. // Timestamp.
  136. $session['login'] = time();
  137. $token = wp_generate_password( 43, false, false );
  138. $this->update( $token, $session );
  139. return $token;
  140. }
  141. /**
  142. * Updates the data for the session with the given token.
  143. *
  144. * @since 4.0.0
  145. *
  146. * @param string $token Session token to update.
  147. * @param array $session Session information.
  148. */
  149. final public function update( $token, $session ) {
  150. $verifier = $this->hash_token( $token );
  151. $this->update_session( $verifier, $session );
  152. }
  153. /**
  154. * Destroys the session with the given token.
  155. *
  156. * @since 4.0.0
  157. *
  158. * @param string $token Session token to destroy.
  159. */
  160. final public function destroy( $token ) {
  161. $verifier = $this->hash_token( $token );
  162. $this->update_session( $verifier, null );
  163. }
  164. /**
  165. * Destroys all sessions for this user except the one with the given token (presumably the one in use).
  166. *
  167. * @since 4.0.0
  168. *
  169. * @param string $token_to_keep Session token to keep.
  170. */
  171. final public function destroy_others( $token_to_keep ) {
  172. $verifier = $this->hash_token( $token_to_keep );
  173. $session = $this->get_session( $verifier );
  174. if ( $session ) {
  175. $this->destroy_other_sessions( $verifier );
  176. } else {
  177. $this->destroy_all_sessions();
  178. }
  179. }
  180. /**
  181. * Determines whether a session is still valid, based on its expiration timestamp.
  182. *
  183. * @since 4.0.0
  184. *
  185. * @param array $session Session to check.
  186. * @return bool Whether session is valid.
  187. */
  188. final protected function is_still_valid( $session ) {
  189. return $session['expiration'] >= time();
  190. }
  191. /**
  192. * Destroys all sessions for a user.
  193. *
  194. * @since 4.0.0
  195. */
  196. final public function destroy_all() {
  197. $this->destroy_all_sessions();
  198. }
  199. /**
  200. * Destroys all sessions for all users.
  201. *
  202. * @since 4.0.0
  203. */
  204. final public static function destroy_all_for_all_users() {
  205. /** This filter is documented in wp-includes/class-wp-session-tokens.php */
  206. $manager = apply_filters( 'session_token_manager', 'WP_User_Meta_Session_Tokens' );
  207. call_user_func( array( $manager, 'drop_sessions' ) );
  208. }
  209. /**
  210. * Retrieves all sessions for a user.
  211. *
  212. * @since 4.0.0
  213. *
  214. * @return array Sessions for a user.
  215. */
  216. final public function get_all() {
  217. return array_values( $this->get_sessions() );
  218. }
  219. /**
  220. * Retrieves all sessions of the user.
  221. *
  222. * @since 4.0.0
  223. *
  224. * @return array Sessions of the user.
  225. */
  226. abstract protected function get_sessions();
  227. /**
  228. * Retrieves a session based on its verifier (token hash).
  229. *
  230. * @since 4.0.0
  231. *
  232. * @param string $verifier Verifier for the session to retrieve.
  233. * @return array|null The session, or null if it does not exist.
  234. */
  235. abstract protected function get_session( $verifier );
  236. /**
  237. * Updates a session based on its verifier (token hash).
  238. *
  239. * Omitting the second argument destroys the session.
  240. *
  241. * @since 4.0.0
  242. *
  243. * @param string $verifier Verifier for the session to update.
  244. * @param array $session Optional. Session. Omitting this argument destroys the session.
  245. */
  246. abstract protected function update_session( $verifier, $session = null );
  247. /**
  248. * Destroys all sessions for this user, except the single session with the given verifier.
  249. *
  250. * @since 4.0.0
  251. *
  252. * @param string $verifier Verifier of the session to keep.
  253. */
  254. abstract protected function destroy_other_sessions( $verifier );
  255. /**
  256. * Destroys all sessions for the user.
  257. *
  258. * @since 4.0.0
  259. */
  260. abstract protected function destroy_all_sessions();
  261. /**
  262. * Destroys all sessions for all users.
  263. *
  264. * @since 4.0.0
  265. */
  266. public static function drop_sessions() {}
  267. }