{"version":3,"file":"lodash-walk-object-browser-prod.mjs","sources":["../../../tmp-libs-for-dist-prod/lodash-walk-object/projects/lodash-walk-object/src/lib/lodash-walk-object.ts","../../../tmp-libs-for-dist-prod/lodash-walk-object/projects/lodash-walk-object/src/lib/index.ts","../../../tmp-libs-for-dist-prod/lodash-walk-object/projects/lodash-walk-object/src/lodash-walk-object-browser-prod.ts"],"sourcesContent":["import { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\nimport { CLASS__NS__getBy, CLASS__NS__getClassNameFromObjInstanceOrClassFn, CLASS__NS__getFromObject, CLASS__NS__getMethodsNames, CLASS__NS__getName, CLASS__NS__getNameFromObject, CLASS__NS__NAME, CLASS__NS__setClassName, CLASS__NS__setName } from 'typescript-class-helpers/browser-prod';\n\nexport interface Circ {\n  /**\n   * This path value will be overriten with circural object value\n   */\n  pathToObj: string;\n  /**\n   * lodash path to circural objects\n   * OR\n   * actual object for circural mapping\n   */\n  circuralTargetPath: string | any;\n}\n\n// let counter = 0\n//namespace Models\n\n  export interface Models__NS__InDBType {\n    target: any;\n    path: string;\n  }\n\n  export interface Models__NS__Ver {\n    v: any;\n    p: string;\n    parent: Models__NS__Ver;\n    isGetter?: boolean;\n  }\n\n  export interface Models__NS__StartIteratorOptions {\n    walkGetters?: boolean;\n\n    /**\n     * Default in breadhTwalk\n     */\n    checkCircural?: boolean;\n    breadthWalk?: boolean;\n    include?: string[];\n    exclude?: string[];\n  }\n\n  export interface Models__NS__AdditionalIteratorOptions extends Models__NS__StartIteratorOptions {\n    skipObject?: () => void;\n    isGetter?: boolean;\n    /**\n     * Breadth walk will skip content of circural objects\n     */\n    isCircural?: boolean;\n    exit?: () => void;\n  }\n\n  export interface Models__NS__InternalValues extends Models__NS__AdditionalIteratorOptions {\n    stack?: any[];\n    circural?: Circ[];\n    hasIterator?: boolean;\n    _valueChanged: boolean;\n    _skip: boolean;\n    _exit: boolean;\n  }\n\n//end of namespace Models\n\n\nfunction findChildren(\n  ver: Models__NS__Ver,\n  lp: string,\n  walkGetters: boolean,\n): Models__NS__Ver[] {\n  const obj = ver.v;\n  if (___NS__isArray(obj)) {\n    return obj.map((v, i) => {\n      return { v, p: `${lp}[${i}]`, parent: ver, isGetter: false };\n    });\n  } else if (___NS__isObject(obj)) {\n    const allKeys = !walkGetters ? [] : Object.getOwnPropertyNames(obj);\n    const children: Models__NS__Ver[] = [];\n    for (const key in obj) {\n      if (\n        ___NS__isObject(obj) &&\n        ___NS__isFunction(obj.hasOwnProperty) &&\n        obj.hasOwnProperty(key)\n      ) {\n        ___NS__pull(allKeys, key);\n        children.push({\n          v: obj[key],\n          p: `${lp === '' ? '' : `${lp}.`}${key}`,\n          parent: ver,\n          isGetter: false,\n        });\n      }\n    }\n    if (walkGetters) {\n      for (let index = 0; index < allKeys.length; index++) {\n        if (___NS__isObject(obj)) {\n          const key = allKeys[index];\n          children.push({\n            v: obj[key],\n            p: `${lp === '' ? '' : `${lp}.`}${key}`,\n            parent: ver,\n            isGetter: true,\n          });\n        }\n      }\n    }\n    return children;\n  }\n  return [];\n}\n\nexport type Iterator = (\n  value: any,\n  lodashPath: string,\n  // @ts-ignore\n  changeValueTo: (newValue) => void,\n  options?: Models__NS__AdditionalIteratorOptions,\n) => void;\nexport class Helpers {\n  public static get Walk() {\n    const self = this;\n    return {\n      Object(\n        json: Object,\n        iterator: Iterator,\n        optionsOrWalkGettersValue?: Models__NS__StartIteratorOptions,\n      ) {\n        if (___NS__isUndefined(optionsOrWalkGettersValue)) {\n          optionsOrWalkGettersValue = {};\n        }\n\n        (optionsOrWalkGettersValue as Models__NS__InternalValues).hasIterator =\n          ___NS__isFunction(iterator);\n\n        if (___NS__isUndefined(optionsOrWalkGettersValue.breadthWalk)) {\n          optionsOrWalkGettersValue.breadthWalk = false;\n        }\n\n        let { circural } = self._walk(\n          json,\n          json,\n          iterator,\n          void 0,\n          optionsOrWalkGettersValue as any,\n        );\n\n        return { circs: circural };\n      },\n      ObjectBy(\n        property: string,\n        inContext: Object,\n        iterator: Iterator,\n        options?: Models__NS__StartIteratorOptions,\n      ) {\n        if (___NS__isFunction(iterator)) {\n          iterator(inContext, '', self._changeValue(inContext, property, true)); // TODO Add optoins\n        }\n        // @ts-ignore\n        const json = inContext[property];\n        return self.Walk.Object(json, iterator, options);\n      },\n    };\n  }\n\n  private static _changeValue(\n    json: Object,\n    lodahPath: string,\n    simpleChange = false,\n    options?: Models__NS__InternalValues,\n  ) {\n    var { contextPath, property } = this._prepareParams(lodahPath);\n    var context = ___NS__get(json, contextPath);\n\n    return (newValue: any) => {\n      if (contextPath === '') {\n        simpleChange = true;\n      }\n\n      if (simpleChange) {\n        // @ts-ignore\n        json[property] = newValue;\n      } else {\n        // console.log(`CONTEXT VALUE CHANGE!  \"${contextPath}\" + \"${property}\" `, newValue)\n        // console.log('context', context)\n        if (context) {\n          context[property] = newValue;\n        }\n      }\n      if (options) {\n        options._valueChanged = true;\n      }\n    };\n  }\n\n  private static _prepareParams(lodashPath: string) {\n    // console.log('contextPath before', lodashPath)\n    const contextPath = this._Helpers.Path.getContextPath(lodashPath);\n    // console.log('contextPath after', contextPath)\n\n    let property = this._Helpers.Path.getPropertyPath(lodashPath, contextPath);\n    // console.log('property after process', property)\n    if (\n      ___NS__isString(property) &&\n      property.trim() !== '' &&\n      !___NS__isNaN(Number(property))\n    ) {\n      property = Number(property);\n    }\n    return {\n      contextPath,\n      property,\n    };\n  }\n\n  private static get _Helpers() {\n    return {\n      get Path() {\n        return {\n          // @ts-ignore\n          getPropertyPath(lodahPath, contetPath) {\n            return lodahPath\n              .replace(contetPath, '')\n              .replace(/^\\./, '')\n              .replace(/\\[/, '')\n              .replace(/\\]/, '');\n          },\n          getContextPath(p: string) {\n            let res: string;\n            if (p.endsWith(']')) {\n              res = p.replace(/\\[(\\\"|\\')?[0-9]+(\\\"|\\')?\\]$/, '');\n            } else {\n              res = p.replace(/\\.([a-zA-Z0-9]|\\$|\\_|\\@|\\-|\\/|\\:)+$/, '');\n            }\n            return res === p ? '' : res;\n          },\n        };\n      },\n    };\n  }\n\n  private static _shoudlReturn(include = [], exclude = [], lodashPath: string) {\n    let res = false;\n    if (lodashPath.replace(/^\\[(\\'|\\\")?[0-9]*(\\'|\\\")?\\]/, '').trim() !== '') {\n      lodashPath = lodashPath.replace(/^\\[(\\'|\\\")?[0-9]*(\\'|\\\")?\\]\\./, '');\n      res =\n        (___NS__isArray(include) &&\n          include.length > 0 &&\n          !include.find(p => lodashPath.startsWith(p))) ||\n        (___NS__isArray(exclude) &&\n          exclude.length > 0 &&\n          !!exclude.find(p => lodashPath.startsWith(p)));\n    }\n\n    return res;\n  }\n\n  // @ts-ignore\n  private static prepareOptions(\n    options: Models__NS__InternalValues,\n    obj,\n    lodashPath,\n  ) {\n    if (options._exit) {\n      return;\n    }\n\n    if (___NS__isUndefined(options.walkGetters)) {\n      options.walkGetters = true;\n    }\n\n    if (___NS__isUndefined(options.checkCircural)) {\n      options.checkCircural = false;\n    }\n\n    if (___NS__isUndefined(options.isGetter)) {\n      // @ts-ignore\n      options.isGetter = false;\n    }\n\n    if (___NS__isUndefined(options._valueChanged)) {\n      options._valueChanged = false;\n    }\n\n    if (___NS__isUndefined(options._exit)) {\n      // @ts-ignore\n      options._exit = false;\n    }\n\n    if (___NS__isUndefined(options.exit)) {\n      options.exit = () => {\n        options._exit = true;\n      };\n    }\n\n    if (___NS__isUndefined(options._skip)) {\n      // @ts-ignore\n      options._skip = false;\n    }\n\n    if (___NS__isUndefined(options.skipObject)) {\n      options.skipObject = () => {\n        options._skip = true;\n      };\n    }\n\n    if (options.checkCircural) {\n      if (___NS__isUndefined(options.stack)) {\n        options.stack = [];\n      }\n\n      if (___NS__isUndefined(options.circural)) {\n        options.circural = [];\n      }\n    }\n\n    const { stack } = options;\n    options.isCircural = false;\n\n    if (options.checkCircural && ___NS__isObject(obj)) {\n      const inStack = stack.find((c: Models__NS__InDBType) => c.target == obj);\n\n      if (!___NS__isUndefined(inStack)) {\n        const circ: Circ = {\n          pathToObj: lodashPath,\n          circuralTargetPath: inStack.path,\n        };\n\n        options.circural.push(circ);\n        options.isCircural = true;\n      } else {\n        stack.push({\n          path: lodashPath,\n          target: obj,\n        } as Models__NS__InDBType);\n      }\n    }\n    return options;\n  }\n\n  private static _walk(\n    json: Object,\n    objOrWhatever: unknown,\n    iterator: Iterator,\n    lodashPath = '',\n    options?: Models__NS__InternalValues,\n    depthLevel = 0,\n  ) {\n    if (!options) {\n      options = {} as any;\n    }\n\n    // @ts-ignore\n    if (!options.breadthWalk) {\n      // @ts-ignore\n      options = this.prepareOptions(options, objOrWhatever, lodashPath);\n\n      // @ts-ignore\n      if (this._shoudlReturn(options.include, options.exclude, lodashPath)) {\n        return;\n      }\n\n      // @ts-ignore\n      if (options.hasIterator && lodashPath !== '') {\n        iterator(\n          objOrWhatever,\n          lodashPath,\n          this._changeValue(json, lodashPath, false, options),\n          options,\n        );\n      }\n\n      // @ts-ignore\n      if (options._valueChanged) {\n        objOrWhatever = ___NS__get(json, lodashPath);\n      }\n      options._valueChanged = false;\n\n      if (options.isCircural) {\n        options._skip = true;\n      }\n\n      if (options._skip) {\n        // @ts-ignore\n        options._skip = false;\n        return;\n      }\n    }\n\n    if (options.breadthWalk) {\n      let queue: Models__NS__Ver[] = [{ v: json, p: lodashPath, parent: void 0 }];\n\n      // const pathesToSkip = {};\n      while (queue.length > 0) {\n        const ver = queue.shift();\n        // console.log(`pathes to skip`, pathesToSkip);\n        // if (!___NS__isUndefined(Object.keys(pathesToSkip).find(key => ver.p.startsWith(pathesToSkip[key])))) {\n        // console.log(`skip: ${ver.p}`)\n        // continue;\n        // }\n        // @ts-ignore\n        if (this._shoudlReturn(options.include, options.exclude, ver.p)) {\n          // pathesToSkip[ver.p] = true;\n          // console.log(`skip2: ${ver.p}`)\n          continue;\n        }\n\n        // console.log(`not skip value ${ver.p}`)\n\n        // @ts-ignore\n        let { v, p } = ver;\n        // @ts-ignore\n        options = this.prepareOptions(options, v, p);\n\n        if (options._exit) {\n          console.log('EXIT');\n          return options;\n        }\n        if (options.hasIterator && p !== '') {\n          iterator(v, p, this._changeValue(json, p, false, options), options);\n        }\n\n        // @ts-ignore\n        if (options._valueChanged) {\n          ver.v = ___NS__get(json, p);\n        }\n        options._valueChanged = false;\n\n        if (options.isCircural) {\n          // pathesToSkip[ver.p] = true;\n          continue;\n        }\n\n        if (options._skip) {\n          // @ts-ignore\n          options._skip = false;\n          // pathesToSkip[ver.p] = true;\n          continue;\n        }\n        // console.log(`LOOK FOR CHILDREN OF ${ver.p}`)\n        if (___NS__isArray(v)) {\n          // @ts-ignore\n          queue = queue.concat(findChildren(ver, p, options.walkGetters));\n        } else if (___NS__isObject(v)) {\n          // @ts-ignore\n          queue = queue.concat(findChildren(ver, p, options.walkGetters));\n        }\n      }\n    } else {\n      // @ts-ignore\n      const { walkGetters } = options;\n\n      if (Array.isArray(objOrWhatever)) {\n        objOrWhatever.forEach((o, i) => {\n          // @ts-ignore\n          this._walk(\n            json,\n            objOrWhatever[i],\n            iterator,\n            `${lodashPath}[${i}]`,\n            options,\n            depthLevel + 1,\n          );\n        });\n      } else if (___NS__isObject(objOrWhatever)) {\n        const allKeys = !walkGetters\n          ? []\n          : Object.getOwnPropertyNames(objOrWhatever);\n\n        // @ts-ignore\n        for (const key in objOrWhatever) {\n          // console.log('KEY', key)\n          if (___NS__isObject(objOrWhatever) && objOrWhatever.hasOwnProperty(key)) {\n            ___NS__pull(allKeys, key);\n\n            let newPropKey = key;\n            options.isGetter = false;\n            if (newPropKey.includes('.')) {\n              newPropKey = `['${newPropKey}']`;\n            }\n            // @ts-ignore\n            this._walk(\n              json,\n              objOrWhatever[newPropKey],\n              iterator,\n              `${lodashPath === '' ? '' : `${lodashPath}.`}${newPropKey}`,\n              options,\n              depthLevel + 1,\n            );\n          }\n        }\n        if (walkGetters) {\n          for (let index = 0; index < allKeys.length; index++) {\n            if (___NS__isObject(objOrWhatever)) {\n              const key = allKeys[index];\n\n              // @ts-ignore\n              options.isGetter = true;\n              // @ts-ignore\n              this._walk(\n                json,\n                objOrWhatever[key],\n                iterator,\n                `${lodashPath === '' ? '' : `${lodashPath}.`}${key}`,\n                options,\n                depthLevel + 1,\n              );\n            }\n          }\n        }\n      }\n\n      // @ts-ignore\n      if (options._exit && json === objOrWhatever) {\n        // @ts-ignore\n        options._exit = false;\n      }\n    }\n\n    return options;\n  }\n}\n\nexport const walk = {\n  Object: Helpers.Walk.Object,\n  ObjectBy: Helpers.Walk.ObjectBy,\n};","export * from './lodash-walk-object';\n// export * from './start-cli'; // @backend","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}