{"version":3,"file":"tnp-core-browser.mjs","sources":["../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/framework-name.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/lodash.namespace.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/json10-writer/index.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/node-chalk-mock.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/node-path-mock.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/core-imports.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/core-models.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/core-config.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/utils.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/constants.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/utils-files-folders.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/utils-os.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/utils-process.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/utils-terminal.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/helpers.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/progress-data.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/utils-etc-hosts.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/utils-exec-proc.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/utils-network.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/utils-process-logger.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/required-global-npm-packages.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/core-cli.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/global-storage.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/global-spinner.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/global-task-manager.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/config.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/lib/taon-stripe-cloudflare-worker.ts","../../../tmp-libs-for-dist/tnp-core/projects/tnp-core/src/tnp-core-browser.ts"],"sourcesContent":["let isBrowser = false;\n//#region @browser\nisBrowser = true;\n//#endregion\n\nconst frameworkNameBeTmp: 'taon' | 'tnp' = '' as any;\nlet frameworkNameBe = frameworkNameBeTmp;\n\n/* */\n/* */\n/* */\n  \n\nconst frameworkName = isBrowser ? 'taon' : frameworkNameBe;\n\nexport { frameworkName, frameworkNameBe };","// @ts-nocheck\n// AUTO-GENERATED FILE — DO NOT EDIT\n// Source: lodash-es/lodash.js\nimport type * as lodash from 'lodash';\nimport  * as _add from 'lodash/add';\nimport  * as _after from 'lodash/after';\nimport  * as _ary from 'lodash/ary';\nimport  * as _assign from 'lodash/assign';\nimport  * as _assignIn from 'lodash/assignIn';\nimport  * as _assignInWith from 'lodash/assignInWith';\nimport  * as _assignWith from 'lodash/assignWith';\nimport  * as _at from 'lodash/at';\nimport  * as _attempt from 'lodash/attempt';\nimport  * as _before from 'lodash/before';\nimport  * as _bind from 'lodash/bind';\nimport  * as _bindAll from 'lodash/bindAll';\nimport  * as _bindKey from 'lodash/bindKey';\nimport  * as _camelCase from 'lodash/camelCase';\nimport  * as _capitalize from 'lodash/capitalize';\nimport  * as _castArray from 'lodash/castArray';\nimport  * as _ceil from 'lodash/ceil';\nimport  * as _chain from 'lodash/chain';\nimport  * as _chunk from 'lodash/chunk';\nimport  * as _clamp from 'lodash/clamp';\nimport  * as _clone from 'lodash/clone';\nimport  * as _cloneDeep from 'lodash/cloneDeep';\nimport  * as _cloneDeepWith from 'lodash/cloneDeepWith';\nimport  * as _cloneWith from 'lodash/cloneWith';\nimport  * as _compact from 'lodash/compact';\nimport  * as _concat from 'lodash/concat';\nimport  * as _cond from 'lodash/cond';\nimport  * as _conforms from 'lodash/conforms';\nimport  * as _conformsTo from 'lodash/conformsTo';\nimport  * as _constant from 'lodash/constant';\nimport  * as _countBy from 'lodash/countBy';\nimport  * as _create from 'lodash/create';\nimport  * as _curry from 'lodash/curry';\nimport  * as _curryRight from 'lodash/curryRight';\nimport  * as _debounce from 'lodash/debounce';\nimport  * as _deburr from 'lodash/deburr';\nimport  * as _defaultTo from 'lodash/defaultTo';\nimport  * as _defaults from 'lodash/defaults';\nimport  * as _defaultsDeep from 'lodash/defaultsDeep';\nimport  * as _defer from 'lodash/defer';\nimport  * as _delay from 'lodash/delay';\nimport  * as _difference from 'lodash/difference';\nimport  * as _differenceBy from 'lodash/differenceBy';\nimport  * as _differenceWith from 'lodash/differenceWith';\nimport  * as _divide from 'lodash/divide';\nimport  * as _drop from 'lodash/drop';\nimport  * as _dropRight from 'lodash/dropRight';\nimport  * as _dropRightWhile from 'lodash/dropRightWhile';\nimport  * as _dropWhile from 'lodash/dropWhile';\nimport  * as _each from 'lodash/each';\nimport  * as _eachRight from 'lodash/eachRight';\nimport  * as _endsWith from 'lodash/endsWith';\nimport  * as _entries from 'lodash/entries';\nimport  * as _entriesIn from 'lodash/entriesIn';\nimport  * as _eq from 'lodash/eq';\nimport  * as _escape from 'lodash/escape';\nimport  * as _escapeRegExp from 'lodash/escapeRegExp';\nimport  * as _every from 'lodash/every';\nimport  * as _extend from 'lodash/extend';\nimport  * as _extendWith from 'lodash/extendWith';\nimport  * as _fill from 'lodash/fill';\nimport  * as _filter from 'lodash/filter';\nimport  * as _find from 'lodash/find';\nimport  * as _findIndex from 'lodash/findIndex';\nimport  * as _findKey from 'lodash/findKey';\nimport  * as _findLast from 'lodash/findLast';\nimport  * as _findLastIndex from 'lodash/findLastIndex';\nimport  * as _findLastKey from 'lodash/findLastKey';\nimport  * as _first from 'lodash/first';\nimport  * as _flatMap from 'lodash/flatMap';\nimport  * as _flatMapDeep from 'lodash/flatMapDeep';\nimport  * as _flatMapDepth from 'lodash/flatMapDepth';\nimport  * as _flatten from 'lodash/flatten';\nimport  * as _flattenDeep from 'lodash/flattenDeep';\nimport  * as _flattenDepth from 'lodash/flattenDepth';\nimport  * as _flip from 'lodash/flip';\nimport  * as _floor from 'lodash/floor';\nimport  * as _flow from 'lodash/flow';\nimport  * as _flowRight from 'lodash/flowRight';\nimport  * as _forEach from 'lodash/forEach';\nimport  * as _forEachRight from 'lodash/forEachRight';\nimport  * as _forIn from 'lodash/forIn';\nimport  * as _forInRight from 'lodash/forInRight';\nimport  * as _forOwn from 'lodash/forOwn';\nimport  * as _forOwnRight from 'lodash/forOwnRight';\nimport  * as _fromPairs from 'lodash/fromPairs';\nimport  * as _functions from 'lodash/functions';\nimport  * as _functionsIn from 'lodash/functionsIn';\nimport  * as _get from 'lodash/get';\nimport  * as _groupBy from 'lodash/groupBy';\nimport  * as _gt from 'lodash/gt';\nimport  * as _gte from 'lodash/gte';\nimport  * as _has from 'lodash/has';\nimport  * as _hasIn from 'lodash/hasIn';\nimport  * as _head from 'lodash/head';\nimport  * as _identity from 'lodash/identity';\nimport  * as _inRange from 'lodash/inRange';\nimport  * as _includes from 'lodash/includes';\nimport  * as _indexOf from 'lodash/indexOf';\nimport  * as _initial from 'lodash/initial';\nimport  * as _intersection from 'lodash/intersection';\nimport  * as _intersectionBy from 'lodash/intersectionBy';\nimport  * as _intersectionWith from 'lodash/intersectionWith';\nimport  * as _invert from 'lodash/invert';\nimport  * as _invertBy from 'lodash/invertBy';\nimport  * as _invoke from 'lodash/invoke';\nimport  * as _invokeMap from 'lodash/invokeMap';\nimport  * as _isArguments from 'lodash/isArguments';\nimport  * as _isArray from 'lodash/isArray';\nimport  * as _isArrayBuffer from 'lodash/isArrayBuffer';\nimport  * as _isArrayLike from 'lodash/isArrayLike';\nimport  * as _isArrayLikeObject from 'lodash/isArrayLikeObject';\nimport  * as _isBoolean from 'lodash/isBoolean';\nimport  * as _isBuffer from 'lodash/isBuffer';\nimport  * as _isDate from 'lodash/isDate';\nimport  * as _isElement from 'lodash/isElement';\nimport  * as _isEmpty from 'lodash/isEmpty';\nimport  * as _isEqual from 'lodash/isEqual';\nimport  * as _isEqualWith from 'lodash/isEqualWith';\nimport  * as _isError from 'lodash/isError';\nimport  * as _isFinite from 'lodash/isFinite';\nimport  * as _isFunction from 'lodash/isFunction';\nimport  * as _isInteger from 'lodash/isInteger';\nimport  * as _isLength from 'lodash/isLength';\nimport  * as _isMap from 'lodash/isMap';\nimport  * as _isMatch from 'lodash/isMatch';\nimport  * as _isMatchWith from 'lodash/isMatchWith';\nimport  * as _isNaN from 'lodash/isNaN';\nimport  * as _isNative from 'lodash/isNative';\nimport  * as _isNil from 'lodash/isNil';\nimport  * as _isNull from 'lodash/isNull';\nimport  * as _isNumber from 'lodash/isNumber';\nimport  * as _isObject from 'lodash/isObject';\nimport  * as _isObjectLike from 'lodash/isObjectLike';\nimport  * as _isPlainObject from 'lodash/isPlainObject';\nimport  * as _isRegExp from 'lodash/isRegExp';\nimport  * as _isSafeInteger from 'lodash/isSafeInteger';\nimport  * as _isSet from 'lodash/isSet';\nimport  * as _isString from 'lodash/isString';\nimport  * as _isSymbol from 'lodash/isSymbol';\nimport  * as _isTypedArray from 'lodash/isTypedArray';\nimport  * as _isUndefined from 'lodash/isUndefined';\nimport  * as _isWeakMap from 'lodash/isWeakMap';\nimport  * as _isWeakSet from 'lodash/isWeakSet';\nimport  * as _iteratee from 'lodash/iteratee';\nimport  * as _join from 'lodash/join';\nimport  * as _kebabCase from 'lodash/kebabCase';\nimport  * as _keyBy from 'lodash/keyBy';\nimport  * as _keys from 'lodash/keys';\nimport  * as _keysIn from 'lodash/keysIn';\nimport  * as _last from 'lodash/last';\nimport  * as _lastIndexOf from 'lodash/lastIndexOf';\nimport  * as _lowerCase from 'lodash/lowerCase';\nimport  * as _lowerFirst from 'lodash/lowerFirst';\nimport  * as _lt from 'lodash/lt';\nimport  * as _lte from 'lodash/lte';\nimport  * as _map from 'lodash/map';\nimport  * as _mapKeys from 'lodash/mapKeys';\nimport  * as _mapValues from 'lodash/mapValues';\nimport  * as _matches from 'lodash/matches';\nimport  * as _matchesProperty from 'lodash/matchesProperty';\nimport  * as _max from 'lodash/max';\nimport  * as _maxBy from 'lodash/maxBy';\nimport  * as _mean from 'lodash/mean';\nimport  * as _meanBy from 'lodash/meanBy';\nimport  * as _memoize from 'lodash/memoize';\nimport  * as _merge from 'lodash/merge';\nimport  * as _mergeWith from 'lodash/mergeWith';\nimport  * as _method from 'lodash/method';\nimport  * as _methodOf from 'lodash/methodOf';\nimport  * as _min from 'lodash/min';\nimport  * as _minBy from 'lodash/minBy';\nimport  * as _mixin from 'lodash/mixin';\nimport  * as _multiply from 'lodash/multiply';\nimport  * as _negate from 'lodash/negate';\nimport  * as _noop from 'lodash/noop';\nimport  * as _now from 'lodash/now';\nimport  * as _nth from 'lodash/nth';\nimport  * as _nthArg from 'lodash/nthArg';\nimport  * as _omit from 'lodash/omit';\nimport  * as _omitBy from 'lodash/omitBy';\nimport  * as _once from 'lodash/once';\nimport  * as _orderBy from 'lodash/orderBy';\nimport  * as _over from 'lodash/over';\nimport  * as _overArgs from 'lodash/overArgs';\nimport  * as _overEvery from 'lodash/overEvery';\nimport  * as _overSome from 'lodash/overSome';\nimport  * as _pad from 'lodash/pad';\nimport  * as _padEnd from 'lodash/padEnd';\nimport  * as _padStart from 'lodash/padStart';\nimport  * as _parseInt from 'lodash/parseInt';\nimport  * as _partial from 'lodash/partial';\nimport  * as _partialRight from 'lodash/partialRight';\nimport  * as _partition from 'lodash/partition';\nimport  * as _pick from 'lodash/pick';\nimport  * as _pickBy from 'lodash/pickBy';\nimport  * as _property from 'lodash/property';\nimport  * as _propertyOf from 'lodash/propertyOf';\nimport  * as _pull from 'lodash/pull';\nimport  * as _pullAll from 'lodash/pullAll';\nimport  * as _pullAllBy from 'lodash/pullAllBy';\nimport  * as _pullAllWith from 'lodash/pullAllWith';\nimport  * as _pullAt from 'lodash/pullAt';\nimport  * as _random from 'lodash/random';\nimport  * as _range from 'lodash/range';\nimport  * as _rangeRight from 'lodash/rangeRight';\nimport  * as _rearg from 'lodash/rearg';\nimport  * as _reduce from 'lodash/reduce';\nimport  * as _reduceRight from 'lodash/reduceRight';\nimport  * as _reject from 'lodash/reject';\nimport  * as _remove from 'lodash/remove';\nimport  * as _repeat from 'lodash/repeat';\nimport  * as _replace from 'lodash/replace';\nimport  * as _rest from 'lodash/rest';\nimport  * as _result from 'lodash/result';\nimport  * as _reverse from 'lodash/reverse';\nimport  * as _round from 'lodash/round';\nimport  * as _sample from 'lodash/sample';\nimport  * as _sampleSize from 'lodash/sampleSize';\nimport  * as _set from 'lodash/set';\nimport  * as _setWith from 'lodash/setWith';\nimport  * as _shuffle from 'lodash/shuffle';\nimport  * as _size from 'lodash/size';\nimport  * as _slice from 'lodash/slice';\nimport  * as _snakeCase from 'lodash/snakeCase';\nimport  * as _some from 'lodash/some';\nimport  * as _sortBy from 'lodash/sortBy';\nimport  * as _sortedIndex from 'lodash/sortedIndex';\nimport  * as _sortedIndexBy from 'lodash/sortedIndexBy';\nimport  * as _sortedIndexOf from 'lodash/sortedIndexOf';\nimport  * as _sortedLastIndex from 'lodash/sortedLastIndex';\nimport  * as _sortedLastIndexBy from 'lodash/sortedLastIndexBy';\nimport  * as _sortedLastIndexOf from 'lodash/sortedLastIndexOf';\nimport  * as _sortedUniq from 'lodash/sortedUniq';\nimport  * as _sortedUniqBy from 'lodash/sortedUniqBy';\nimport  * as _split from 'lodash/split';\nimport  * as _spread from 'lodash/spread';\nimport  * as _startCase from 'lodash/startCase';\nimport  * as _startsWith from 'lodash/startsWith';\nimport  * as _stubArray from 'lodash/stubArray';\nimport  * as _stubFalse from 'lodash/stubFalse';\nimport  * as _stubObject from 'lodash/stubObject';\nimport  * as _stubString from 'lodash/stubString';\nimport  * as _stubTrue from 'lodash/stubTrue';\nimport  * as _subtract from 'lodash/subtract';\nimport  * as _sum from 'lodash/sum';\nimport  * as _sumBy from 'lodash/sumBy';\nimport  * as _tail from 'lodash/tail';\nimport  * as _take from 'lodash/take';\nimport  * as _takeRight from 'lodash/takeRight';\nimport  * as _takeRightWhile from 'lodash/takeRightWhile';\nimport  * as _takeWhile from 'lodash/takeWhile';\nimport  * as _tap from 'lodash/tap';\nimport  * as _template from 'lodash/template';\nimport  * as _templateSettings from 'lodash/templateSettings';\nimport  * as _throttle from 'lodash/throttle';\nimport  * as _thru from 'lodash/thru';\nimport  * as _times from 'lodash/times';\nimport  * as _toArray from 'lodash/toArray';\nimport  * as _toFinite from 'lodash/toFinite';\nimport  * as _toInteger from 'lodash/toInteger';\nimport  * as _toLength from 'lodash/toLength';\nimport  * as _toLower from 'lodash/toLower';\nimport  * as _toNumber from 'lodash/toNumber';\nimport  * as _toPairs from 'lodash/toPairs';\nimport  * as _toPairsIn from 'lodash/toPairsIn';\nimport  * as _toPath from 'lodash/toPath';\nimport  * as _toPlainObject from 'lodash/toPlainObject';\nimport  * as _toSafeInteger from 'lodash/toSafeInteger';\nimport  * as _toString from 'lodash/toString';\nimport  * as _toUpper from 'lodash/toUpper';\nimport  * as _transform from 'lodash/transform';\nimport  * as _trim from 'lodash/trim';\nimport  * as _trimEnd from 'lodash/trimEnd';\nimport  * as _trimStart from 'lodash/trimStart';\nimport  * as _truncate from 'lodash/truncate';\nimport  * as _unary from 'lodash/unary';\nimport  * as _unescape from 'lodash/unescape';\nimport  * as _union from 'lodash/union';\nimport  * as _unionBy from 'lodash/unionBy';\nimport  * as _unionWith from 'lodash/unionWith';\nimport  * as _uniq from 'lodash/uniq';\nimport  * as _uniqBy from 'lodash/uniqBy';\nimport  * as _uniqWith from 'lodash/uniqWith';\nimport  * as _uniqueId from 'lodash/uniqueId';\nimport  * as _unset from 'lodash/unset';\nimport  * as _unzip from 'lodash/unzip';\nimport  * as _unzipWith from 'lodash/unzipWith';\nimport  * as _update from 'lodash/update';\nimport  * as _updateWith from 'lodash/updateWith';\nimport  * as _upperCase from 'lodash/upperCase';\nimport  * as _upperFirst from 'lodash/upperFirst';\nimport  * as _values from 'lodash/values';\nimport  * as _valuesIn from 'lodash/valuesIn';\nimport  * as _without from 'lodash/without';\nimport  * as _words from 'lodash/words';\nimport  * as _wrap from 'lodash/wrap';\nimport  * as _xor from 'lodash/xor';\nimport  * as _xorBy from 'lodash/xorBy';\nimport  * as _xorWith from 'lodash/xorWith';\nimport  * as _zip from 'lodash/zip';\nimport  * as _zipObject from 'lodash/zipObject';\nimport  * as _zipObjectDeep from 'lodash/zipObjectDeep';\nimport  * as _zipWith from 'lodash/zipWith';\n\n\nexport namespace _ {\n  export const add = ((_add as any)?.default ?? _add) as typeof lodash.add;\n  export const after = ((_after as any)?.default ?? _after) as typeof lodash.after;\n  export const ary = ((_ary as any)?.default ?? _ary) as typeof lodash.ary;\n  export const assign = ((_assign as any)?.default ?? _assign) as typeof lodash.assign;\n  export const assignIn = ((_assignIn as any)?.default ?? _assignIn) as typeof lodash.assignIn;\n  export const assignInWith = ((_assignInWith as any)?.default ?? _assignInWith) as typeof lodash.assignInWith;\n  export const assignWith = ((_assignWith as any)?.default ?? _assignWith) as typeof lodash.assignWith;\n  export const at = ((_at as any)?.default ?? _at) as typeof lodash.at;\n  export const attempt = ((_attempt as any)?.default ?? _attempt) as typeof lodash.attempt;\n  export const before = ((_before as any)?.default ?? _before) as typeof lodash.before;\n  export const bind = ((_bind as any)?.default ?? _bind) as typeof lodash.bind;\n  export const bindAll = ((_bindAll as any)?.default ?? _bindAll) as typeof lodash.bindAll;\n  export const bindKey = ((_bindKey as any)?.default ?? _bindKey) as typeof lodash.bindKey;\n  export const camelCase = ((_camelCase as any)?.default ?? _camelCase) as typeof lodash.camelCase;\n  export const capitalize = ((_capitalize as any)?.default ?? _capitalize) as typeof lodash.capitalize;\n  export const castArray = ((_castArray as any)?.default ?? _castArray) as typeof lodash.castArray;\n  export const ceil = ((_ceil as any)?.default ?? _ceil) as typeof lodash.ceil;\n  export const chain = ((_chain as any)?.default ?? _chain) as typeof lodash.chain;\n  export const chunk = ((_chunk as any)?.default ?? _chunk) as typeof lodash.chunk;\n  export const clamp = ((_clamp as any)?.default ?? _clamp) as typeof lodash.clamp;\n  export const clone = ((_clone as any)?.default ?? _clone) as typeof lodash.clone;\n  export const cloneDeep = ((_cloneDeep as any)?.default ?? _cloneDeep) as typeof lodash.cloneDeep;\n  export const cloneDeepWith = ((_cloneDeepWith as any)?.default ?? _cloneDeepWith) as typeof lodash.cloneDeepWith;\n  export const cloneWith = ((_cloneWith as any)?.default ?? _cloneWith) as typeof lodash.cloneWith;\n  export const compact = ((_compact as any)?.default ?? _compact) as typeof lodash.compact;\n  export const concat = ((_concat as any)?.default ?? _concat) as typeof lodash.concat;\n  export const cond = ((_cond as any)?.default ?? _cond) as typeof lodash.cond;\n  export const conforms = ((_conforms as any)?.default ?? _conforms) as typeof lodash.conforms;\n  export const conformsTo = ((_conformsTo as any)?.default ?? _conformsTo) as typeof lodash.conformsTo;\n  export const constant = ((_constant as any)?.default ?? _constant) as typeof lodash.constant;\n  export const countBy = ((_countBy as any)?.default ?? _countBy) as typeof lodash.countBy;\n  export const create = ((_create as any)?.default ?? _create) as typeof lodash.create;\n  export const curry = ((_curry as any)?.default ?? _curry) as typeof lodash.curry;\n  export const curryRight = ((_curryRight as any)?.default ?? _curryRight) as typeof lodash.curryRight;\n  export const debounce = ((_debounce as any)?.default ?? _debounce) as typeof lodash.debounce;\n  export const deburr = ((_deburr as any)?.default ?? _deburr) as typeof lodash.deburr;\n  export const defaultTo = ((_defaultTo as any)?.default ?? _defaultTo) as typeof lodash.defaultTo;\n  export const defaults = ((_defaults as any)?.default ?? _defaults) as typeof lodash.defaults;\n  export const defaultsDeep = ((_defaultsDeep as any)?.default ?? _defaultsDeep) as typeof lodash.defaultsDeep;\n  export const defer = ((_defer as any)?.default ?? _defer) as typeof lodash.defer;\n  export const delay = ((_delay as any)?.default ?? _delay) as typeof lodash.delay;\n  export const difference = ((_difference as any)?.default ?? _difference) as typeof lodash.difference;\n  export const differenceBy = ((_differenceBy as any)?.default ?? _differenceBy) as typeof lodash.differenceBy;\n  export const differenceWith = ((_differenceWith as any)?.default ?? _differenceWith) as typeof lodash.differenceWith;\n  export const divide = ((_divide as any)?.default ?? _divide) as typeof lodash.divide;\n  export const drop = ((_drop as any)?.default ?? _drop) as typeof lodash.drop;\n  export const dropRight = ((_dropRight as any)?.default ?? _dropRight) as typeof lodash.dropRight;\n  export const dropRightWhile = ((_dropRightWhile as any)?.default ?? _dropRightWhile) as typeof lodash.dropRightWhile;\n  export const dropWhile = ((_dropWhile as any)?.default ?? _dropWhile) as typeof lodash.dropWhile;\n  export const each = ((_each as any)?.default ?? _each) as typeof lodash.each;\n  export const eachRight = ((_eachRight as any)?.default ?? _eachRight) as typeof lodash.eachRight;\n  export const endsWith = ((_endsWith as any)?.default ?? _endsWith) as typeof lodash.endsWith;\n  export const entries = ((_entries as any)?.default ?? _entries) as typeof lodash.entries;\n  export const entriesIn = ((_entriesIn as any)?.default ?? _entriesIn) as typeof lodash.entriesIn;\n  export const eq = ((_eq as any)?.default ?? _eq) as typeof lodash.eq;\n  export const escape = ((_escape as any)?.default ?? _escape) as typeof lodash.escape;\n  export const escapeRegExp = ((_escapeRegExp as any)?.default ?? _escapeRegExp) as typeof lodash.escapeRegExp;\n  export const every = ((_every as any)?.default ?? _every) as typeof lodash.every;\n  export const extend = ((_extend as any)?.default ?? _extend) as typeof lodash.extend;\n  export const extendWith = ((_extendWith as any)?.default ?? _extendWith) as typeof lodash.extendWith;\n  export const fill = ((_fill as any)?.default ?? _fill) as typeof lodash.fill;\n  export const filter = ((_filter as any)?.default ?? _filter) as typeof lodash.filter;\n  export const find = ((_find as any)?.default ?? _find) as typeof lodash.find;\n  export const findIndex = ((_findIndex as any)?.default ?? _findIndex) as typeof lodash.findIndex;\n  export const findKey = ((_findKey as any)?.default ?? _findKey) as typeof lodash.findKey;\n  export const findLast = ((_findLast as any)?.default ?? _findLast) as typeof lodash.findLast;\n  export const findLastIndex = ((_findLastIndex as any)?.default ?? _findLastIndex) as typeof lodash.findLastIndex;\n  export const findLastKey = ((_findLastKey as any)?.default ?? _findLastKey) as typeof lodash.findLastKey;\n  export const first = ((_first as any)?.default ?? _first) as typeof lodash.first;\n  export const flatMap = ((_flatMap as any)?.default ?? _flatMap) as typeof lodash.flatMap;\n  export const flatMapDeep = ((_flatMapDeep as any)?.default ?? _flatMapDeep) as typeof lodash.flatMapDeep;\n  export const flatMapDepth = ((_flatMapDepth as any)?.default ?? _flatMapDepth) as typeof lodash.flatMapDepth;\n  export const flatten = ((_flatten as any)?.default ?? _flatten) as typeof lodash.flatten;\n  export const flattenDeep = ((_flattenDeep as any)?.default ?? _flattenDeep) as typeof lodash.flattenDeep;\n  export const flattenDepth = ((_flattenDepth as any)?.default ?? _flattenDepth) as typeof lodash.flattenDepth;\n  export const flip = ((_flip as any)?.default ?? _flip) as typeof lodash.flip;\n  export const floor = ((_floor as any)?.default ?? _floor) as typeof lodash.floor;\n  export const flow = ((_flow as any)?.default ?? _flow) as typeof lodash.flow;\n  export const flowRight = ((_flowRight as any)?.default ?? _flowRight) as typeof lodash.flowRight;\n  export const forEach = ((_forEach as any)?.default ?? _forEach) as typeof lodash.forEach;\n  export const forEachRight = ((_forEachRight as any)?.default ?? _forEachRight) as typeof lodash.forEachRight;\n  export const forIn = ((_forIn as any)?.default ?? _forIn) as typeof lodash.forIn;\n  export const forInRight = ((_forInRight as any)?.default ?? _forInRight) as typeof lodash.forInRight;\n  export const forOwn = ((_forOwn as any)?.default ?? _forOwn) as typeof lodash.forOwn;\n  export const forOwnRight = ((_forOwnRight as any)?.default ?? _forOwnRight) as typeof lodash.forOwnRight;\n  export const fromPairs = ((_fromPairs as any)?.default ?? _fromPairs) as typeof lodash.fromPairs;\n  export const functions = ((_functions as any)?.default ?? _functions) as typeof lodash.functions;\n  export const functionsIn = ((_functionsIn as any)?.default ?? _functionsIn) as typeof lodash.functionsIn;\n  export const get = ((_get as any)?.default ?? _get) as typeof lodash.get;\n  export const groupBy = ((_groupBy as any)?.default ?? _groupBy) as typeof lodash.groupBy;\n  export const gt = ((_gt as any)?.default ?? _gt) as typeof lodash.gt;\n  export const gte = ((_gte as any)?.default ?? _gte) as typeof lodash.gte;\n  export const has = ((_has as any)?.default ?? _has) as typeof lodash.has;\n  export const hasIn = ((_hasIn as any)?.default ?? _hasIn) as typeof lodash.hasIn;\n  export const head = ((_head as any)?.default ?? _head) as typeof lodash.head;\n  export const identity = ((_identity as any)?.default ?? _identity) as typeof lodash.identity;\n  export const inRange = ((_inRange as any)?.default ?? _inRange) as typeof lodash.inRange;\n  export const includes = ((_includes as any)?.default ?? _includes) as typeof lodash.includes;\n  export const indexOf = ((_indexOf as any)?.default ?? _indexOf) as typeof lodash.indexOf;\n  export const initial = ((_initial as any)?.default ?? _initial) as typeof lodash.initial;\n  export const intersection = ((_intersection as any)?.default ?? _intersection) as typeof lodash.intersection;\n  export const intersectionBy = ((_intersectionBy as any)?.default ?? _intersectionBy) as typeof lodash.intersectionBy;\n  export const intersectionWith = ((_intersectionWith as any)?.default ?? _intersectionWith) as typeof lodash.intersectionWith;\n  export const invert = ((_invert as any)?.default ?? _invert) as typeof lodash.invert;\n  export const invertBy = ((_invertBy as any)?.default ?? _invertBy) as typeof lodash.invertBy;\n  export const invoke = ((_invoke as any)?.default ?? _invoke) as typeof lodash.invoke;\n  export const invokeMap = ((_invokeMap as any)?.default ?? _invokeMap) as typeof lodash.invokeMap;\n  export const isArguments = ((_isArguments as any)?.default ?? _isArguments) as typeof lodash.isArguments;\n  export const isArray = ((_isArray as any)?.default ?? _isArray) as typeof lodash.isArray;\n  export const isArrayBuffer = ((_isArrayBuffer as any)?.default ?? _isArrayBuffer) as typeof lodash.isArrayBuffer;\n  export const isArrayLike = ((_isArrayLike as any)?.default ?? _isArrayLike) as typeof lodash.isArrayLike;\n  export const isArrayLikeObject = ((_isArrayLikeObject as any)?.default ?? _isArrayLikeObject) as typeof lodash.isArrayLikeObject;\n  export const isBoolean = ((_isBoolean as any)?.default ?? _isBoolean) as typeof lodash.isBoolean;\n  export const isBuffer = ((_isBuffer as any)?.default ?? _isBuffer) as typeof lodash.isBuffer;\n  export const isDate = ((_isDate as any)?.default ?? _isDate) as typeof lodash.isDate;\n  export const isElement = ((_isElement as any)?.default ?? _isElement) as typeof lodash.isElement;\n  export const isEmpty = ((_isEmpty as any)?.default ?? _isEmpty) as typeof lodash.isEmpty;\n  export const isEqual = ((_isEqual as any)?.default ?? _isEqual) as typeof lodash.isEqual;\n  export const isEqualWith = ((_isEqualWith as any)?.default ?? _isEqualWith) as typeof lodash.isEqualWith;\n  export const isError = ((_isError as any)?.default ?? _isError) as typeof lodash.isError;\n  export const isFinite = ((_isFinite as any)?.default ?? _isFinite) as typeof lodash.isFinite;\n  export const isFunction = ((_isFunction as any)?.default ?? _isFunction) as typeof lodash.isFunction;\n  export const isInteger = ((_isInteger as any)?.default ?? _isInteger) as typeof lodash.isInteger;\n  export const isLength = ((_isLength as any)?.default ?? _isLength) as typeof lodash.isLength;\n  export const isMap = ((_isMap as any)?.default ?? _isMap) as typeof lodash.isMap;\n  export const isMatch = ((_isMatch as any)?.default ?? _isMatch) as typeof lodash.isMatch;\n  export const isMatchWith = ((_isMatchWith as any)?.default ?? _isMatchWith) as typeof lodash.isMatchWith;\n  export const isNaN = ((_isNaN as any)?.default ?? _isNaN) as typeof lodash.isNaN;\n  export const isNative = ((_isNative as any)?.default ?? _isNative) as typeof lodash.isNative;\n  export const isNil = ((_isNil as any)?.default ?? _isNil) as typeof lodash.isNil;\n  export const isNull = ((_isNull as any)?.default ?? _isNull) as typeof lodash.isNull;\n  export const isNumber = ((_isNumber as any)?.default ?? _isNumber) as typeof lodash.isNumber;\n  export const isObject = ((_isObject as any)?.default ?? _isObject) as typeof lodash.isObject;\n  export const isObjectLike = ((_isObjectLike as any)?.default ?? _isObjectLike) as typeof lodash.isObjectLike;\n  export const isPlainObject = ((_isPlainObject as any)?.default ?? _isPlainObject) as typeof lodash.isPlainObject;\n  export const isRegExp = ((_isRegExp as any)?.default ?? _isRegExp) as typeof lodash.isRegExp;\n  export const isSafeInteger = ((_isSafeInteger as any)?.default ?? _isSafeInteger) as typeof lodash.isSafeInteger;\n  export const isSet = ((_isSet as any)?.default ?? _isSet) as typeof lodash.isSet;\n  export const isString = ((_isString as any)?.default ?? _isString) as typeof lodash.isString;\n  export const isSymbol = ((_isSymbol as any)?.default ?? _isSymbol) as typeof lodash.isSymbol;\n  export const isTypedArray = ((_isTypedArray as any)?.default ?? _isTypedArray) as typeof lodash.isTypedArray;\n  export const isUndefined = ((_isUndefined as any)?.default ?? _isUndefined) as typeof lodash.isUndefined;\n  export const isWeakMap = ((_isWeakMap as any)?.default ?? _isWeakMap) as typeof lodash.isWeakMap;\n  export const isWeakSet = ((_isWeakSet as any)?.default ?? _isWeakSet) as typeof lodash.isWeakSet;\n  export const iteratee = ((_iteratee as any)?.default ?? _iteratee) as typeof lodash.iteratee;\n  export const join = ((_join as any)?.default ?? _join) as typeof lodash.join;\n  export const kebabCase = ((_kebabCase as any)?.default ?? _kebabCase) as typeof lodash.kebabCase;\n  export const keyBy = ((_keyBy as any)?.default ?? _keyBy) as typeof lodash.keyBy;\n  export const keys = ((_keys as any)?.default ?? _keys) as typeof lodash.keys;\n  export const keysIn = ((_keysIn as any)?.default ?? _keysIn) as typeof lodash.keysIn;\n  export const last = ((_last as any)?.default ?? _last) as typeof lodash.last;\n  export const lastIndexOf = ((_lastIndexOf as any)?.default ?? _lastIndexOf) as typeof lodash.lastIndexOf;\n  export const lowerCase = ((_lowerCase as any)?.default ?? _lowerCase) as typeof lodash.lowerCase;\n  export const lowerFirst = ((_lowerFirst as any)?.default ?? _lowerFirst) as typeof lodash.lowerFirst;\n  export const lt = ((_lt as any)?.default ?? _lt) as typeof lodash.lt;\n  export const lte = ((_lte as any)?.default ?? _lte) as typeof lodash.lte;\n  export const map = ((_map as any)?.default ?? _map) as typeof lodash.map;\n  export const mapKeys = ((_mapKeys as any)?.default ?? _mapKeys) as typeof lodash.mapKeys;\n  export const mapValues = ((_mapValues as any)?.default ?? _mapValues) as typeof lodash.mapValues;\n  export const matches = ((_matches as any)?.default ?? _matches) as typeof lodash.matches;\n  export const matchesProperty = ((_matchesProperty as any)?.default ?? _matchesProperty) as typeof lodash.matchesProperty;\n  export const max = ((_max as any)?.default ?? _max) as typeof lodash.max;\n  export const maxBy = ((_maxBy as any)?.default ?? _maxBy) as typeof lodash.maxBy;\n  export const mean = ((_mean as any)?.default ?? _mean) as typeof lodash.mean;\n  export const meanBy = ((_meanBy as any)?.default ?? _meanBy) as typeof lodash.meanBy;\n  export const memoize = ((_memoize as any)?.default ?? _memoize) as typeof lodash.memoize;\n  export const merge = ((_merge as any)?.default ?? _merge) as typeof lodash.merge;\n  export const mergeWith = ((_mergeWith as any)?.default ?? _mergeWith) as typeof lodash.mergeWith;\n  export const method = ((_method as any)?.default ?? _method) as typeof lodash.method;\n  export const methodOf = ((_methodOf as any)?.default ?? _methodOf) as typeof lodash.methodOf;\n  export const min = ((_min as any)?.default ?? _min) as typeof lodash.min;\n  export const minBy = ((_minBy as any)?.default ?? _minBy) as typeof lodash.minBy;\n  export const mixin = ((_mixin as any)?.default ?? _mixin) as typeof lodash.mixin;\n  export const multiply = ((_multiply as any)?.default ?? _multiply) as typeof lodash.multiply;\n  export const negate = ((_negate as any)?.default ?? _negate) as typeof lodash.negate;\n  export const noop = ((_noop as any)?.default ?? _noop) as typeof lodash.noop;\n  export const now = ((_now as any)?.default ?? _now) as typeof lodash.now;\n  export const nth = ((_nth as any)?.default ?? _nth) as typeof lodash.nth;\n  export const nthArg = ((_nthArg as any)?.default ?? _nthArg) as typeof lodash.nthArg;\n  export const omit = ((_omit as any)?.default ?? _omit) as typeof lodash.omit;\n  export const omitBy = ((_omitBy as any)?.default ?? _omitBy) as typeof lodash.omitBy;\n  export const once = ((_once as any)?.default ?? _once) as typeof lodash.once;\n  export const orderBy = ((_orderBy as any)?.default ?? _orderBy) as typeof lodash.orderBy;\n  export const over = ((_over as any)?.default ?? _over) as typeof lodash.over;\n  export const overArgs = ((_overArgs as any)?.default ?? _overArgs) as typeof lodash.overArgs;\n  export const overEvery = ((_overEvery as any)?.default ?? _overEvery) as typeof lodash.overEvery;\n  export const overSome = ((_overSome as any)?.default ?? _overSome) as typeof lodash.overSome;\n  export const pad = ((_pad as any)?.default ?? _pad) as typeof lodash.pad;\n  export const padEnd = ((_padEnd as any)?.default ?? _padEnd) as typeof lodash.padEnd;\n  export const padStart = ((_padStart as any)?.default ?? _padStart) as typeof lodash.padStart;\n  export const parseInt = ((_parseInt as any)?.default ?? _parseInt) as typeof lodash.parseInt;\n  export const partial = ((_partial as any)?.default ?? _partial) as typeof lodash.partial;\n  export const partialRight = ((_partialRight as any)?.default ?? _partialRight) as typeof lodash.partialRight;\n  export const partition = ((_partition as any)?.default ?? _partition) as typeof lodash.partition;\n  export const pick = ((_pick as any)?.default ?? _pick) as typeof lodash.pick;\n  export const pickBy = ((_pickBy as any)?.default ?? _pickBy) as typeof lodash.pickBy;\n  export const property = ((_property as any)?.default ?? _property) as typeof lodash.property;\n  export const propertyOf = ((_propertyOf as any)?.default ?? _propertyOf) as typeof lodash.propertyOf;\n  export const pull = ((_pull as any)?.default ?? _pull) as typeof lodash.pull;\n  export const pullAll = ((_pullAll as any)?.default ?? _pullAll) as typeof lodash.pullAll;\n  export const pullAllBy = ((_pullAllBy as any)?.default ?? _pullAllBy) as typeof lodash.pullAllBy;\n  export const pullAllWith = ((_pullAllWith as any)?.default ?? _pullAllWith) as typeof lodash.pullAllWith;\n  export const pullAt = ((_pullAt as any)?.default ?? _pullAt) as typeof lodash.pullAt;\n  export const random = ((_random as any)?.default ?? _random) as typeof lodash.random;\n  export const range = ((_range as any)?.default ?? _range) as typeof lodash.range;\n  export const rangeRight = ((_rangeRight as any)?.default ?? _rangeRight) as typeof lodash.rangeRight;\n  export const rearg = ((_rearg as any)?.default ?? _rearg) as typeof lodash.rearg;\n  export const reduce = ((_reduce as any)?.default ?? _reduce) as typeof lodash.reduce;\n  export const reduceRight = ((_reduceRight as any)?.default ?? _reduceRight) as typeof lodash.reduceRight;\n  export const reject = ((_reject as any)?.default ?? _reject) as typeof lodash.reject;\n  export const remove = ((_remove as any)?.default ?? _remove) as typeof lodash.remove;\n  export const repeat = ((_repeat as any)?.default ?? _repeat) as typeof lodash.repeat;\n  export const replace = ((_replace as any)?.default ?? _replace) as typeof lodash.replace;\n  export const rest = ((_rest as any)?.default ?? _rest) as typeof lodash.rest;\n  export const result = ((_result as any)?.default ?? _result) as typeof lodash.result;\n  export const reverse = ((_reverse as any)?.default ?? _reverse) as typeof lodash.reverse;\n  export const round = ((_round as any)?.default ?? _round) as typeof lodash.round;\n  export const sample = ((_sample as any)?.default ?? _sample) as typeof lodash.sample;\n  export const sampleSize = ((_sampleSize as any)?.default ?? _sampleSize) as typeof lodash.sampleSize;\n  export const set = ((_set as any)?.default ?? _set) as typeof lodash.set;\n  export const setWith = ((_setWith as any)?.default ?? _setWith) as typeof lodash.setWith;\n  export const shuffle = ((_shuffle as any)?.default ?? _shuffle) as typeof lodash.shuffle;\n  export const size = ((_size as any)?.default ?? _size) as typeof lodash.size;\n  export const slice = ((_slice as any)?.default ?? _slice) as typeof lodash.slice;\n  export const snakeCase = ((_snakeCase as any)?.default ?? _snakeCase) as typeof lodash.snakeCase;\n  export const some = ((_some as any)?.default ?? _some) as typeof lodash.some;\n  export const sortBy = ((_sortBy as any)?.default ?? _sortBy) as typeof lodash.sortBy;\n  export const sortedIndex = ((_sortedIndex as any)?.default ?? _sortedIndex) as typeof lodash.sortedIndex;\n  export const sortedIndexBy = ((_sortedIndexBy as any)?.default ?? _sortedIndexBy) as typeof lodash.sortedIndexBy;\n  export const sortedIndexOf = ((_sortedIndexOf as any)?.default ?? _sortedIndexOf) as typeof lodash.sortedIndexOf;\n  export const sortedLastIndex = ((_sortedLastIndex as any)?.default ?? _sortedLastIndex) as typeof lodash.sortedLastIndex;\n  export const sortedLastIndexBy = ((_sortedLastIndexBy as any)?.default ?? _sortedLastIndexBy) as typeof lodash.sortedLastIndexBy;\n  export const sortedLastIndexOf = ((_sortedLastIndexOf as any)?.default ?? _sortedLastIndexOf) as typeof lodash.sortedLastIndexOf;\n  export const sortedUniq = ((_sortedUniq as any)?.default ?? _sortedUniq) as typeof lodash.sortedUniq;\n  export const sortedUniqBy = ((_sortedUniqBy as any)?.default ?? _sortedUniqBy) as typeof lodash.sortedUniqBy;\n  export const split = ((_split as any)?.default ?? _split) as typeof lodash.split;\n  export const spread = ((_spread as any)?.default ?? _spread) as typeof lodash.spread;\n  export const startCase = ((_startCase as any)?.default ?? _startCase) as typeof lodash.startCase;\n  export const startsWith = ((_startsWith as any)?.default ?? _startsWith) as typeof lodash.startsWith;\n  export const stubArray = ((_stubArray as any)?.default ?? _stubArray) as typeof lodash.stubArray;\n  export const stubFalse = ((_stubFalse as any)?.default ?? _stubFalse) as typeof lodash.stubFalse;\n  export const stubObject = ((_stubObject as any)?.default ?? _stubObject) as typeof lodash.stubObject;\n  export const stubString = ((_stubString as any)?.default ?? _stubString) as typeof lodash.stubString;\n  export const stubTrue = ((_stubTrue as any)?.default ?? _stubTrue) as typeof lodash.stubTrue;\n  export const subtract = ((_subtract as any)?.default ?? _subtract) as typeof lodash.subtract;\n  export const sum = ((_sum as any)?.default ?? _sum) as typeof lodash.sum;\n  export const sumBy = ((_sumBy as any)?.default ?? _sumBy) as typeof lodash.sumBy;\n  export const tail = ((_tail as any)?.default ?? _tail) as typeof lodash.tail;\n  export const take = ((_take as any)?.default ?? _take) as typeof lodash.take;\n  export const takeRight = ((_takeRight as any)?.default ?? _takeRight) as typeof lodash.takeRight;\n  export const takeRightWhile = ((_takeRightWhile as any)?.default ?? _takeRightWhile) as typeof lodash.takeRightWhile;\n  export const takeWhile = ((_takeWhile as any)?.default ?? _takeWhile) as typeof lodash.takeWhile;\n  export const tap = ((_tap as any)?.default ?? _tap) as typeof lodash.tap;\n  export const template = ((_template as any)?.default ?? _template) as typeof lodash.template;\n  export const templateSettings = ((_templateSettings as any)?.default ?? _templateSettings) as typeof lodash.templateSettings;\n  export const throttle = ((_throttle as any)?.default ?? _throttle) as typeof lodash.throttle;\n  export const thru = ((_thru as any)?.default ?? _thru) as typeof lodash.thru;\n  export const times = ((_times as any)?.default ?? _times) as typeof lodash.times;\n  export const toArray = ((_toArray as any)?.default ?? _toArray) as typeof lodash.toArray;\n  export const toFinite = ((_toFinite as any)?.default ?? _toFinite) as typeof lodash.toFinite;\n  export const toInteger = ((_toInteger as any)?.default ?? _toInteger) as typeof lodash.toInteger;\n  export const toLength = ((_toLength as any)?.default ?? _toLength) as typeof lodash.toLength;\n  export const toLower = ((_toLower as any)?.default ?? _toLower) as typeof lodash.toLower;\n  export const toNumber = ((_toNumber as any)?.default ?? _toNumber) as typeof lodash.toNumber;\n  export const toPairs = ((_toPairs as any)?.default ?? _toPairs) as typeof lodash.toPairs;\n  export const toPairsIn = ((_toPairsIn as any)?.default ?? _toPairsIn) as typeof lodash.toPairsIn;\n  export const toPath = ((_toPath as any)?.default ?? _toPath) as typeof lodash.toPath;\n  export const toPlainObject = ((_toPlainObject as any)?.default ?? _toPlainObject) as typeof lodash.toPlainObject;\n  export const toSafeInteger = ((_toSafeInteger as any)?.default ?? _toSafeInteger) as typeof lodash.toSafeInteger;\n  export const toString = ((_toString as any)?.default ?? _toString) as typeof lodash.toString;\n  export const toUpper = ((_toUpper as any)?.default ?? _toUpper) as typeof lodash.toUpper;\n  export const transform = ((_transform as any)?.default ?? _transform) as typeof lodash.transform;\n  export const trim = ((_trim as any)?.default ?? _trim) as typeof lodash.trim;\n  export const trimEnd = ((_trimEnd as any)?.default ?? _trimEnd) as typeof lodash.trimEnd;\n  export const trimStart = ((_trimStart as any)?.default ?? _trimStart) as typeof lodash.trimStart;\n  export const truncate = ((_truncate as any)?.default ?? _truncate) as typeof lodash.truncate;\n  export const unary = ((_unary as any)?.default ?? _unary) as typeof lodash.unary;\n  export const unescape = ((_unescape as any)?.default ?? _unescape) as typeof lodash.unescape;\n  export const union = ((_union as any)?.default ?? _union) as typeof lodash.union;\n  export const unionBy = ((_unionBy as any)?.default ?? _unionBy) as typeof lodash.unionBy;\n  export const unionWith = ((_unionWith as any)?.default ?? _unionWith) as typeof lodash.unionWith;\n  export const uniq = ((_uniq as any)?.default ?? _uniq) as typeof lodash.uniq;\n  export const uniqBy = ((_uniqBy as any)?.default ?? _uniqBy) as typeof lodash.uniqBy;\n  export const uniqWith = ((_uniqWith as any)?.default ?? _uniqWith) as typeof lodash.uniqWith;\n  export const uniqueId = ((_uniqueId as any)?.default ?? _uniqueId) as typeof lodash.uniqueId;\n  export const unset = ((_unset as any)?.default ?? _unset) as typeof lodash.unset;\n  export const unzip = ((_unzip as any)?.default ?? _unzip) as typeof lodash.unzip;\n  export const unzipWith = ((_unzipWith as any)?.default ?? _unzipWith) as typeof lodash.unzipWith;\n  export const update = ((_update as any)?.default ?? _update) as typeof lodash.update;\n  export const updateWith = ((_updateWith as any)?.default ?? _updateWith) as typeof lodash.updateWith;\n  export const upperCase = ((_upperCase as any)?.default ?? _upperCase) as typeof lodash.upperCase;\n  export const upperFirst = ((_upperFirst as any)?.default ?? _upperFirst) as typeof lodash.upperFirst;\n  export const values = ((_values as any)?.default ?? _values) as typeof lodash.values;\n  export const valuesIn = ((_valuesIn as any)?.default ?? _valuesIn) as typeof lodash.valuesIn;\n  export const without = ((_without as any)?.default ?? _without) as typeof lodash.without;\n  export const words = ((_words as any)?.default ?? _words) as typeof lodash.words;\n  export const wrap = ((_wrap as any)?.default ?? _wrap) as typeof lodash.wrap;\n  export const xor = ((_xor as any)?.default ?? _xor) as typeof lodash.xor;\n  export const xorBy = ((_xorBy as any)?.default ?? _xorBy) as typeof lodash.xorBy;\n  export const xorWith = ((_xorWith as any)?.default ?? _xorWith) as typeof lodash.xorWith;\n  export const zip = ((_zip as any)?.default ?? _zip) as typeof lodash.zip;\n  export const zipObject = ((_zipObject as any)?.default ?? _zipObject) as typeof lodash.zipObject;\n  export const zipObjectDeep = ((_zipObjectDeep as any)?.default ?? _zipObjectDeep) as typeof lodash.zipObjectDeep;\n  export const zipWith = ((_zipWith as any)?.default ?? _zipWith) as typeof lodash.zipWith;\n}","/* */                                                  \n/* */                                                              \n\n/* */\n/* */\n/* */\n  \n\nexport function load(src) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  return (void 0);\n}\n\nfunction toAst(src) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  return (void 0);\n}","//#region @browser\nimport { Chalk } from 'chalk';\n\n// TODO finish this MOCK @LAST\n// const c:Chalk = void 0;\n\nconst allObj = {\n  black(a) {\n    console.log(a);\n  },\n  gray(a) {\n    console.log(a);\n  },\n  red(a) {\n    console.log(a);\n  },\n  green(a) {\n    console.log(a);\n  },\n  italic(a) {\n    console.log(a);\n  },\n  magenta(a) {\n    console.log(a);\n  },\n  bold(a) {\n    console.log(a);\n  },\n  underline(a) {\n    console.log(a);\n  },\n};\n\nconst map = new Map<Function, string>();\n\nconst all = Object.keys(allObj).map(key => {\n  map.set(allObj[key], key);\n  return allObj[key];\n});\n\nfor (let i = 0; i < all.length; i++) {\n  const e1 = all[i] as Function;\n  for (let j = 0; j < all.length; j++) {\n    const e2 = all[j] as Function; // @ts-ignore\n    e1[map.get(e2)] = e2;\n  }\n}\n\nexport const chalk: Chalk = allObj as any;\n//#endregion","//#region @browser\nfunction assertPath(path) {\n  if (typeof path !== 'string') {\n    throw new TypeError(\n      '[taon-core] Path must be a string. Received ' + JSON.stringify(path),\n    );\n  }\n}\n\n// Resolves . and .. elements in a path with directory names\nfunction normalizeStringPosix(path, allowAboveRoot) {\n  var res = '';\n  var lastSegmentLength = 0;\n  var lastSlash = -1;\n  var dots = 0;\n  var code;\n  for (var i = 0; i <= path.length; ++i) {\n    if (i < path.length) code = path.charCodeAt(i);\n    else if (code === 47 /*/*/) break;\n    else code = 47 /*/*/;\n    if (code === 47 /*/*/) {\n      if (lastSlash === i - 1 || dots === 1) {\n        // NOOP\n      } else if (lastSlash !== i - 1 && dots === 2) {\n        if (\n          res.length < 2 ||\n          lastSegmentLength !== 2 ||\n          res.charCodeAt(res.length - 1) !== 46 /*.*/ ||\n          res.charCodeAt(res.length - 2) !== 46 /*.*/\n        ) {\n          if (res.length > 2) {\n            var lastSlashIndex = res.lastIndexOf('/');\n            if (lastSlashIndex !== res.length - 1) {\n              if (lastSlashIndex === -1) {\n                res = '';\n                lastSegmentLength = 0;\n              } else {\n                res = res.slice(0, lastSlashIndex);\n                lastSegmentLength = res.length - 1 - res.lastIndexOf('/');\n              }\n              lastSlash = i;\n              dots = 0;\n              continue;\n            }\n          } else if (res.length === 2 || res.length === 1) {\n            res = '';\n            lastSegmentLength = 0;\n            lastSlash = i;\n            dots = 0;\n            continue;\n          }\n        }\n        if (allowAboveRoot) {\n          if (res.length > 0) res += '/..';\n          else res = '..';\n          lastSegmentLength = 2;\n        }\n      } else {\n        if (res.length > 0) res += '/' + path.slice(lastSlash + 1, i);\n        else res = path.slice(lastSlash + 1, i);\n        lastSegmentLength = i - lastSlash - 1;\n      }\n      lastSlash = i;\n      dots = 0;\n    } else if (code === 46 /*.*/ && dots !== -1) {\n      ++dots;\n    } else {\n      dots = -1;\n    }\n  }\n  return res;\n}\n\nfunction _format(sep, pathObject) {\n  var dir = pathObject.dir || pathObject.root;\n  var base =\n    pathObject.base || (pathObject.name || '') + (pathObject.ext || '');\n  if (!dir) {\n    return base;\n  }\n  if (dir === pathObject.root) {\n    return dir + base;\n  }\n  return dir + sep + base;\n}\n\nexport const path = {\n  // path.resolve([from ...], to)\n  resolve: function resolve(pathToResovle) {\n    return pathToResovle;\n  },\n\n  normalize: function normalize(pathArg) {\n    assertPath(pathArg);\n\n    if (pathArg.length === 0) return '.';\n\n    var isAbsolute = pathArg.charCodeAt(0) === 47; /*/*/\n    var trailingSeparator = pathArg.charCodeAt(pathArg.length - 1) === 47; /*/*/\n\n    // Normalize the path\n    pathArg = normalizeStringPosix(pathArg, !isAbsolute);\n\n    if (pathArg.length === 0 && !isAbsolute) pathArg = '.';\n    if (pathArg.length > 0 && trailingSeparator) pathArg += '/';\n\n    if (isAbsolute) return '/' + pathArg;\n    return pathArg;\n  },\n\n  isAbsolute: function isAbsolute(pathArg) {\n    assertPath(pathArg);\n    return pathArg.length > 0 && pathArg.charCodeAt(0) === 47 /*/*/;\n  },\n\n  join: function join() {\n    if (arguments.length === 0) return '.';\n    var joined;\n    for (var i = 0; i < arguments.length; ++i) {\n      var arg = arguments[i];\n      assertPath(arg);\n      if (arg.length > 0) {\n        if (joined === undefined) joined = arg;\n        else joined += '/' + arg;\n      }\n    }\n    if (joined === undefined) return '.';\n    return path.normalize(joined);\n  },\n\n  relative: function relative(from, to) {\n    assertPath(from);\n    assertPath(to);\n\n    if (from === to) return '';\n\n    from = path.resolve(from);\n    to = path.resolve(to);\n\n    if (from === to) return '';\n\n    // Trim any leading backslashes\n    var fromStart = 1;\n    for (; fromStart < from.length; ++fromStart) {\n      if (from.charCodeAt(fromStart) !== 47 /*/*/) break;\n    }\n    var fromEnd = from.length;\n    var fromLen = fromEnd - fromStart;\n\n    // Trim any leading backslashes\n    var toStart = 1;\n    for (; toStart < to.length; ++toStart) {\n      if (to.charCodeAt(toStart) !== 47 /*/*/) break;\n    }\n    var toEnd = to.length;\n    var toLen = toEnd - toStart;\n\n    // Compare paths to find the longest common path from root\n    var length = fromLen < toLen ? fromLen : toLen;\n    var lastCommonSep = -1;\n    var i = 0;\n    for (; i <= length; ++i) {\n      if (i === length) {\n        if (toLen > length) {\n          if (to.charCodeAt(toStart + i) === 47 /*/*/) {\n            // We get here if `from` is the exact base path for `to`.\n            // For example: from='/foo/bar'; to='/foo/bar/baz'\n            return to.slice(toStart + i + 1);\n          } else if (i === 0) {\n            // We get here if `from` is the root\n            // For example: from='/'; to='/foo'\n            return to.slice(toStart + i);\n          }\n        } else if (fromLen > length) {\n          if (from.charCodeAt(fromStart + i) === 47 /*/*/) {\n            // We get here if `to` is the exact base path for `from`.\n            // For example: from='/foo/bar/baz'; to='/foo/bar'\n            lastCommonSep = i;\n          } else if (i === 0) {\n            // We get here if `to` is the root.\n            // For example: from='/foo'; to='/'\n            lastCommonSep = 0;\n          }\n        }\n        break;\n      }\n      var fromCode = from.charCodeAt(fromStart + i);\n      var toCode = to.charCodeAt(toStart + i);\n      if (fromCode !== toCode) break;\n      else if (fromCode === 47 /*/*/) lastCommonSep = i;\n    }\n\n    var out = '';\n    // Generate the relative path based on the path difference between `to`\n    // and `from`\n    for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n      if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) {\n        if (out.length === 0) out += '..';\n        else out += '/..';\n      }\n    }\n\n    // Lastly, append the rest of the destination (`to`) path that comes after\n    // the common path parts\n    if (out.length > 0) return out + to.slice(toStart + lastCommonSep);\n    else {\n      toStart += lastCommonSep;\n      if (to.charCodeAt(toStart) === 47 /*/*/) ++toStart;\n      return to.slice(toStart);\n    }\n  },\n\n  _makeLong: function _makeLong(path) {\n    return path;\n  },\n\n  dirname: function dirname(path) {\n    assertPath(path);\n    if (path.length === 0) return '.';\n    var code = path.charCodeAt(0);\n    var hasRoot = code === 47; /*/*/\n    var end = -1;\n    var matchedSlash = true;\n    for (var i = path.length - 1; i >= 1; --i) {\n      code = path.charCodeAt(i);\n      if (code === 47 /*/*/) {\n        if (!matchedSlash) {\n          end = i;\n          break;\n        }\n      } else {\n        // We saw the first non-path separator\n        matchedSlash = false;\n      }\n    }\n\n    if (end === -1) return hasRoot ? '/' : '.';\n    if (hasRoot && end === 1) return '//';\n    return path.slice(0, end);\n  },\n\n  basename: function basename(pathArg, ext) {\n    if (ext !== undefined && typeof ext !== 'string')\n      throw new TypeError('\"ext\" argument must be a string');\n    assertPath(pathArg);\n\n    var start = 0;\n    var end = -1;\n    var matchedSlash = true;\n    var i;\n\n    if (ext !== undefined && ext.length > 0 && ext.length <= pathArg.length) {\n      if (ext.length === pathArg.length && ext === pathArg) return '';\n      var extIdx = ext.length - 1;\n      var firstNonSlashEnd = -1;\n      for (i = pathArg.length - 1; i >= 0; --i) {\n        var code = pathArg.charCodeAt(i);\n        if (code === 47 /*/*/) {\n          // If we reached a path separator that was not part of a set of path\n          // separators at the end of the string, stop now\n          if (!matchedSlash) {\n            start = i + 1;\n            break;\n          }\n        } else {\n          if (firstNonSlashEnd === -1) {\n            // We saw the first non-path separator, remember this index in case\n            // we need it if the extension ends up not matching\n            matchedSlash = false;\n            firstNonSlashEnd = i + 1;\n          }\n          if (extIdx >= 0) {\n            // Try to match the explicit extension\n            if (code === ext.charCodeAt(extIdx)) {\n              if (--extIdx === -1) {\n                // We matched the extension, so mark this as the end of our path\n                // component\n                end = i;\n              }\n            } else {\n              // Extension does not match, so our result is the entire path\n              // component\n              extIdx = -1;\n              end = firstNonSlashEnd;\n            }\n          }\n        }\n      }\n\n      if (start === end) end = firstNonSlashEnd;\n      else if (end === -1) end = pathArg.length;\n      return pathArg.slice(start, end);\n    } else {\n      for (i = pathArg.length - 1; i >= 0; --i) {\n        if (pathArg.charCodeAt(i) === 47 /*/*/) {\n          // If we reached a path separator that was not part of a set of path\n          // separators at the end of the string, stop now\n          if (!matchedSlash) {\n            start = i + 1;\n            break;\n          }\n        } else if (end === -1) {\n          // We saw the first non-path separator, mark this as the end of our\n          // path component\n          matchedSlash = false;\n          end = i + 1;\n        }\n      }\n\n      if (end === -1) return '';\n      return pathArg.slice(start, end);\n    }\n  },\n\n  extname: function extname(pathArg) {\n    assertPath(pathArg);\n    var startDot = -1;\n    var startPart = 0;\n    var end = -1;\n    var matchedSlash = true;\n    // Track the state of characters (if any) we see before our first dot and\n    // after any path separator we find\n    var preDotState = 0;\n    for (var i = pathArg.length - 1; i >= 0; --i) {\n      var code = pathArg.charCodeAt(i);\n      if (code === 47 /*/*/) {\n        // If we reached a path separator that was not part of a set of path\n        // separators at the end of the string, stop now\n        if (!matchedSlash) {\n          startPart = i + 1;\n          break;\n        }\n        continue;\n      }\n      if (end === -1) {\n        // We saw the first non-path separator, mark this as the end of our\n        // extension\n        matchedSlash = false;\n        end = i + 1;\n      }\n      if (code === 46 /*.*/) {\n        // If this is our first dot, mark it as the start of our extension\n        if (startDot === -1) startDot = i;\n        else if (preDotState !== 1) preDotState = 1;\n      } else if (startDot !== -1) {\n        // We saw a non-dot and non-path separator before our dot, so we should\n        // have a good chance at having a non-empty extension\n        preDotState = -1;\n      }\n    }\n\n    if (\n      startDot === -1 ||\n      end === -1 ||\n      // We saw a non-dot character immediately before the dot\n      preDotState === 0 ||\n      // The (right-most) trimmed path component is exactly '..'\n      (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n    ) {\n      return '';\n    }\n    return pathArg.slice(startDot, end);\n  },\n\n  format: function format(pathObject) {\n    if (pathObject === null || typeof pathObject !== 'object') {\n      throw new TypeError(\n        'The \"pathObject\" argument must be of type Object. Received type ' +\n          typeof pathObject,\n      );\n    }\n    return _format('/', pathObject);\n  },\n\n  parse: function parse(pathArg) {\n    assertPath(pathArg);\n\n    var ret = { root: '', dir: '', base: '', ext: '', name: '' };\n    if (pathArg.length === 0) return ret;\n    var code = pathArg.charCodeAt(0);\n    var isAbsolute = code === 47; /*/*/\n    var start;\n    if (isAbsolute) {\n      ret.root = '/';\n      start = 1;\n    } else {\n      start = 0;\n    }\n    var startDot = -1;\n    var startPart = 0;\n    var end = -1;\n    var matchedSlash = true;\n    var i = pathArg.length - 1;\n\n    // Track the state of characters (if any) we see before our first dot and\n    // after any path separator we find\n    var preDotState = 0;\n\n    // Get non-dir info\n    for (; i >= start; --i) {\n      code = pathArg.charCodeAt(i);\n      if (code === 47 /*/*/) {\n        // If we reached a path separator that was not part of a set of path\n        // separators at the end of the string, stop now\n        if (!matchedSlash) {\n          startPart = i + 1;\n          break;\n        }\n        continue;\n      }\n      if (end === -1) {\n        // We saw the first non-path separator, mark this as the end of our\n        // extension\n        matchedSlash = false;\n        end = i + 1;\n      }\n      if (code === 46 /*.*/) {\n        // If this is our first dot, mark it as the start of our extension\n        if (startDot === -1) startDot = i;\n        else if (preDotState !== 1) preDotState = 1;\n      } else if (startDot !== -1) {\n        // We saw a non-dot and non-path separator before our dot, so we should\n        // have a good chance at having a non-empty extension\n        preDotState = -1;\n      }\n    }\n\n    if (\n      startDot === -1 ||\n      end === -1 ||\n      // We saw a non-dot character immediately before the dot\n      preDotState === 0 ||\n      // The (right-most) trimmed path component is exactly '..'\n      (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n    ) {\n      if (end !== -1) {\n        if (startPart === 0 && isAbsolute)\n          ret.base = ret.name = pathArg.slice(1, end);\n        else ret.base = ret.name = pathArg.slice(startPart, end);\n      }\n    } else {\n      if (startPart === 0 && isAbsolute) {\n        ret.name = pathArg.slice(1, startDot);\n        ret.base = pathArg.slice(1, end);\n      } else {\n        ret.name = pathArg.slice(startPart, startDot);\n        ret.base = pathArg.slice(startPart, end);\n      }\n      ret.ext = pathArg.slice(startDot, end);\n    }\n\n    if (startPart > 0) ret.dir = pathArg.slice(0, startPart - 1);\n    else if (isAbsolute) ret.dir = '/';\n\n    return ret;\n  },\n\n  sep: '/',\n  delimiter: ':',\n  win32: {\n    // @ts-ignore\n    normalize: p => {\n      return p;\n    },\n  },\n  posix: null,\n};\n//#endregion","// let forceTrace = false;\n// QUICK_FIX for esm bundling\nconst REQUIRE_MAP = {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n};\n/**\n * use only in backend mode\n */\nexport function requireDefault<T>(id: keyof typeof REQUIRE_MAP): T {\n/* */\n/* */\n/* */\n/* */\n  return (void 0);\n}\nexport { load } from './json10-writer';\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n\n//#region @browser\nimport jQuery from 'jquery';\nimport { chalk as chalkMock } from './node-chalk-mock';\nimport { path as pathMock } from './node-path-mock';\n//#endregion\nimport { _ } from './lodash.namespace';\nexport { _ } from './lodash.namespace';\nimport * as q from 'q';\nimport { format } from 'date-fns';\nlet dateformat: typeof import('dateformat') = ((\n  date: Date | number,\n  mask: string,\n): string => {\n  return format(\n    typeof date === 'number' ? new Date(date) : date,\n    mask\n      .replace(/mm/g, 'MM') // month\n      .replace(/MM/g, 'mm'), // minutes\n  );\n}) as any;\n/* */\n/* */\n  \nimport { Chalk } from 'chalk';\nimport * as json5 from 'json5';\nimport type jQueryType from 'jquery';\nimport type chalkBaseType from 'chalk';\nimport type * as pathBaseType from 'path';\nimport type * as globBaseType from 'glob';\nimport type * as fseBaseType from 'fs-extra';\nimport type * as osBaseType from 'os';\nimport type * as child_processType from 'child_process';\nimport type * as httpBaseType from 'http';\nimport type * as httpsBaseType from 'https';\nimport type * as fkillBaseType from 'fkill';\nimport type * as psListBaseType from 'ps-list';\nimport type * as netBaseType from 'net';\nimport type * as spawnBaseType from 'cross-spawn';\nimport type * as fgBaseType from 'fast-glob';\nimport type * as rimrafBaseType from 'rimraf';\nimport type * as chokidarBaseType from 'chokidar';\nimport type * as mkdirpBaseType from 'mkdirp';\nimport type * as ncpBaseType from 'copy-paste';\nimport type * as psBaseType from 'ps-node';\nimport { Helpers } from './index';\n\n//#region set up browser mocks\n\n//#region set up browser mocks / mock jquery\nlet $: jQueryType;\n//#region @browser\n$ = jQuery;\n//#endregion\n/* */\n/* */\n  \n//#endregion\n\n//#region set up browser mocks / mock path\n\nlet path = void 0 as typeof pathBaseType;\n/* */\n/* */\n  \n\n//#region @browser\n// @ts-ignore\npath = pathMock;\n//#endregion\n//#endregion\n\n//#region set up browser mocks / mock chalk\n\nlet chalk: Chalk = void 0 as typeof chalkBaseType;\n/* */\n/* */\n  \n\n//#region @browser\n// @ts-ignore\nchalk = chalkMock;\n//#endregion\n//#endregion\n\n//#region set up browser mocks / mock glob\nlet glob = void 0 as typeof globBaseType;\n/* */\n/* */\n  \n//#region @browser\n// TODO: implement browser glob\n//#endregion\n//#endregion\n\n//#region set up browser mocks / mock fse\nlet fse = void 0 as typeof fseBaseType;\n/* */\n/* */\n  \n//#region @browser\n// TODO: implement browser fse\n//#endregion\n//#endregion\n\n//#region set up browser mocks / mock os\nlet os = void 0 as typeof osBaseType;\n/* */\n/* */\n  \n//#region @browser\n// TODO: implement browser os\n//#endregion\n//#endregion\n\n//#region set up browser mocks / mock child_process\nlet child_process = void 0 as typeof child_processType;\n/* */\n/* */\n  \n//#endregion\n\n//#region set up browser mocks / mock http\nlet http = void 0 as typeof httpBaseType;\n/* */\n/* */\n  \n//#endregion\n\n//#region set up browser mocks / mock https\nlet https = void 0 as typeof httpsBaseType;\n/* */\n/* */\n  \n//#endregion\n\n//#region set up browser mocks / mock isRoot\nlet isRoot = void 0 as () => Promise<boolean>;\n/* */\n/* */\n  \n//#endregion\n\n//#region set up browser mocks / mock isAdmin\nlet isAdmin = void 0 as () => Promise<boolean>;\n/* */\n/* */\n  \n//#endregion\n\n//#region set up browser mocks / mock isElevated\n/**\n * check if the current process is elevated\n * - sudo in unix/macos\n * - admin in windows\n */\nlet isElevated = void 0 as () => Promise<boolean>;\n/* */\n/* */\n  \n//#endregion\n\n//#region set up browser mocks / mock fkill\nlet fkill = void 0 as typeof fkillBaseType;\n/* */\n/* */\n  \n//#endregion\n\n//#region set up browser mocks / mock psList\nlet psList = void 0 as typeof psListBaseType;\n/* */\n/* */\n  \n//#endregion\n\n//#region set up browser mocks / mock net\nlet net = void 0 as typeof netBaseType;\n/* */\n/* */\n  \n//#endregion\n\n//#region set up browser mocks / mock spawn\nlet spawn = void 0 as typeof spawnBaseType;\n/* */\n/* */\n  \n//#endregion\n\n//#region set up browser mocks / mock rimraf\nlet rimraf = void 0 as typeof rimrafBaseType;\n/* */\n/* */\n  \n//#endregion\n\n//#region set up browser mocks / mock chokidar\nlet chokidar = void 0 as typeof chokidarBaseType;\n/* */\n/* */\n  \n//#endregion\n\n//#region set up browser mocks / mock mkdirp\nlet mkdirp = void 0 as typeof mkdirpBaseType;\n/* */\n/* */\n  \n//#endregion\n\n//#region set up browser mocks / mock ncp\nlet ncp = void 0 as typeof ncpBaseType;\n/* */\n/* */\n  \n//#endregion\n\n//#region set up browser mocks / mock ps\nlet ps = void 0 as typeof psBaseType;\n/* */\n/* */\n  \n//#endregion\n\n//#region set up browser mocks / mock fg\nlet fg = void 0 as typeof fgBaseType;\n/* */\n/* */\n  \n//#endregion\n\n//#endregion\n\n//#region crossPlatformPath\n\n//#region transform unix path to win32 path\n/**\n * transform unix path to win32 path\n */\nconst win32Path = (p: string): string => {\n/* */\n/* */\n/* */\n/* */\n  \n  if (/^\\/[a-z]\\//.test(p)) {\n    p = p.replace(/^\\/[a-z]\\//, `${p.charAt(1).toUpperCase()}:/`);\n  }\n  // return _.upperFirst(path.win32.normalize(p)); // TODO maybe not needed\n  return path.win32.normalize(p);\n};\n//#endregion\n\n/**\n * This funciton will replace // to /\n */\nconst crossPlatformPath = (\n  pathStringOrPathParts: string | string[],\n): string => {\n  if (Array.isArray(pathStringOrPathParts)) {\n    pathStringOrPathParts = pathStringOrPathParts.join('/');\n  }\n\n  if (typeof pathStringOrPathParts !== 'string') {\n    return pathStringOrPathParts;\n  }\n\n  // debugger;\n\n  if (\n    typeof pathStringOrPathParts === 'string' &&\n    /^[A-Z]\\:/.test(pathStringOrPathParts)\n  ) {\n    pathStringOrPathParts = _.lowerFirst(pathStringOrPathParts);\n  }\n\n  const isExtendedLengthPath = /^\\\\\\\\\\?\\\\/.test(pathStringOrPathParts);\n  const hasNonAscii = /[^\\u0000-\\u0080]+/.test(pathStringOrPathParts); // eslint-disable-line no-control-regex\n  if (isExtendedLengthPath) {\n    console.warn(`[taon-core][crossPlatformPath]: Path starts with \\\\\\\\,\n    this is not supported in crossPlatformPath`);\n/* */\n/* */\n/* */\n/* */\n  \n  }\n\n  if (hasNonAscii) {\n    const allNonAscii = pathStringOrPathParts.match(/[^\\u0000-\\u0080]+/g) || '';\n    Helpers.logWarn(\n      `[taon-core][crossPlatformPath]: path below contains non-ascii characters (${allNonAscii}):\n\"${pathStringOrPathParts}\"`,\n    );\n    Helpers.logWarn(pathStringOrPathParts);\n  }\n\n  pathStringOrPathParts = (pathStringOrPathParts || '')\n    .replace(/\\\\/g, '/')\n    .replace(/\\/\\//g, '/')\n    .replace(/\\/\\//g, '/'); // TODO probably not needed\n\n  let isWindows = false;\n/* */\n/* */\n/* */\n/* */\n  \n\n  const regexWinPath1 = /^(\\/)[a-zA-Z]\\:/;\n  // handle supported gitbash path\n  // (nodejs require need to use /c/ instead of c:/)\n  if (isWindows && regexWinPath1.test(pathStringOrPathParts)) {\n    pathStringOrPathParts = pathStringOrPathParts.slice(1);\n  }\n\n  // let isUnixLike = !isWindows;\n\n  // const regexWinPath2 = /^(\\\\)[a-zA-Z]\\:/;\n  // if (isUnixLike && regexWinPath2.test(pathStringOrPathParts)) {\n  //   console.warn(\n  //     `[taon-core][crossPlatformPath]: Path starts with \\\\ and not from /`,\n  //   );\n  //   console.trace(`path: \"${pathStringOrPathParts}\"`);\n  // }\n\n  return pathStringOrPathParts;\n};\n//#endregion\n\n//#region exports\nexport {\n  q,\n  dateformat,\n  crossPlatformPath,\n  win32Path,\n  path,\n  chalk,\n  json5,\n  $,\n  glob,\n  fse,\n  os,\n  child_process,\n  http,\n  https,\n  isElevated,\n  fkill,\n  psList,\n  spawn,\n  fg,\n  chokidar,\n  mkdirp,\n  ncp,\n  rimraf,\n  net,\n  ps,\n};\n\n//#endregion","import type { ChildProcess } from 'child_process';\n\nimport { Observable } from 'rxjs';\n\nimport { LibTypeNames } from './constants';\n\nexport namespace CoreModels {\n  //#region package\n  export type Package = {\n    name: string;\n    version?: string;\n    installType?: InstalationType;\n  };\n  //#endregion\n\n  //#region npm install options\n  export type NpmInstallOptions = {\n    pkg?: CoreModels.Package;\n    /**\n     * false by default\n     */\n    silent?: boolean;\n    /**\n     * false by default\n     */\n    useYarn?: boolean;\n    /**\n     * false by default\n     */\n    force?: boolean;\n    /**\n     * Reason for installing package(s)\n     */\n    reason?: string;\n    /**\n     * true by default\n     */\n    removeYarnOrPackageJsonLock?: boolean;\n    /**\n     * false by default\n     */\n    generateYarnOrPackageJsonLock?: boolean;\n    /**\n     * false by default\n     */\n    skipRemovingNodeModules?: boolean;\n  };\n  //#endregion\n\n  //#region installation type\n  export type InstalationType = '-g' | '--save' | '--save-dev' | 'remove';\n\n  export const InstalationTypeArr = ['-g', '--save', '--save-dev'];\n  //#endregion\n\n  export interface NpmPublishOptions {\n    registry?: string;\n    skipQuestionsToUser?: boolean;\n  }\n\n  export type ReleaseVersionType = 'major' | 'minor' | 'patch';\n\n  export enum ReleaseVersionTypeEnum {\n    MAJOR = 'major',\n    MINOR = 'minor',\n    PATCH = 'patch',\n  }\n\n  export type PreReleaseVersionTag = 'alpha' | 'beta' | 'rc' | 'next';\n  export const NpmSpecialVersions = [\n    'latest',\n    'next',\n    'beta',\n    'alpha',\n    'rc',\n    'lts',\n  ];\n\n  //#region progress data type\n  export type PROGRESS_DATA_TYPE = 'info' | 'error' | 'warning' | 'event';\n  //#endregion\n\n  //#region environment name\n\n  export enum EnvironmentName {\n    /**\n     * Default environment, typically for artifact without application\n     * or for storing common data\n     */\n    __ = '__',\n    /**\n     * Local development environment, typically the developer's machine.\n     */\n    LOCALHOST = 'localhost',\n    /**\n     * Development environment used by engineers to deploy and test new features.\n     */\n    DEV = 'dev',\n    /**\n     * Staging environment used for final validations before production.\n     */\n    STAGE = 'stage',\n    /**\n     * Production environment serving live users.\n     */\n    PROD = 'prod',\n    /**\n     *  Automated test environment for running unit, integration, or automated tests.\n     */\n    TEST = 'test',\n    /**\n     * Quality assurance environment designated for manual and exploratory testing.\n     */\n    QA = 'qa',\n    /**\n     * Sandbox environment for experimenting and integration without affecting other environments.\n     */\n    SANDBOX = 'sandbox',\n    /**\n     * User Acceptance Testing environment where clients or stakeholders validate the release candidate.\n     */\n    UAT = 'uat',\n    /**\n     * Pre-production environment, closely mirroring production for final testing and validation.\n     */\n    PREPROD = 'preprod',\n    /**\n     * Demonstration environment specifically configured for client presentations and demos.\n     */\n    DEMO = 'demo',\n    /**\n     * Documentation environment for hosting and managing project documentation.\n     */\n    DOCS = 'docs',\n    /**\n     * Demonstration environment ONLY html files, typically used for static pages or documentation.\n     * This environment is not intended for dynamic content or server-side processing.\n     * Perfect to github pages or similar.\n     * It is not intended for production use and should not be used for any critical applications or services.\n     */\n    STATIC_PAGES = 'static-pages',\n    /**\n     * Continuous Integration environment used by CI/CD pipelines for automated builds and deployments.\n     */\n    CI = 'ci',\n    /**\n     * Training environment dedicated to internal team onboarding and training activities.\n     */\n    TRAINING = 'training',\n    /**\n     * Staging environment used for final validations before production.\n     */\n    STAGING = 'staging',\n  }\n\n  export type EnvironmentNameTaon = `${EnvironmentName}`;\n\n  //#endregion\n\n  //#region push type\n  export type PUSHTYPE =\n    | 'feat'\n    | 'chore'\n    | 'feature'\n    | 'refactor'\n    | 'perf'\n    | 'styles'\n    | 'ci'\n    | 'build'\n    | 'fix'\n    | 'bugfix'\n    | 'release'\n    | 'docs';\n  //#endregion\n\n  //#region ui framework\n  /**\n   * @deprecated\n   */\n  export type UIFramework = 'bootstrap' | 'material' | 'ionic';\n  //#endregion\n\n  export type GitConnection = 'https' | 'ssh';\n  export const GitConnectionArr = ['https', 'ssh'] as GitConnection[];\n\n  //#region framework version\n  export type FrameworkVersion =\n    | 'v1'\n    | 'v2'\n    | 'v3'\n    | 'v4'\n    | 'v16'\n    | 'v18'\n    | 'v19'\n    | 'v20'\n    | 'v21'\n    | 'v22';\n  //#endregion\n\n  //#region cuttable file exitension\n  export type CutableFileExt =\n    | 'scss'\n    | 'css'\n    | 'less'\n    | 'sass'\n    | 'html'\n    | 'ts'\n    | 'tsx'\n    | 'js';\n  //#endregion\n\n  //#region file extension\n  export type ImageFileExtension = 'jpg' | 'jpeg' | 'png' | 'svg';\n  export const ImageFileExtensionArr: CoreModels.ImageFileExtension[] = [\n    'jpg',\n    'jpeg',\n    'png',\n    'svg',\n  ];\n  //#endregion\n\n  //#region file extension\n  export type FileExtension =\n    | 'json'\n    | 'html'\n    | ImageFileExtension\n    | 'txt'\n    | 'md'\n    | CutableFileExt;\n  //#endregion\n\n  /**\n   * known http code\n   */\n  export type HttpCode = 200 | 400 | 401 | 404 | 500;\n\n  //#region http method\n  export type HttpMethod =\n    | 'get'\n    | 'post'\n    | 'put'\n    | 'delete'\n    | 'patch'\n    | 'head'\n    | 'jsonp';\n\n  export const HttpMethodArr: HttpMethod[] = [\n    'get',\n    'post',\n    'put',\n    'delete',\n    'patch',\n    'head',\n    'jsonp',\n  ];\n  //#endregion\n\n  //#region http status code\n  export type ParamType = 'Path' | 'Query' | 'Cookie' | 'Header' | 'Body';\n  //#endregion\n\n  //#region ts usage\n  export type TsUsage = 'import' | 'export';\n  //#endregion\n\n  //#region base project type\n  export type BaseProjectType =\n    | 'typescript'\n    | 'angular'\n    | 'angular-lib'\n    | 'unknown'\n    | 'unknown-npm-project';\n  //#endregion\n\n  //#region base project type arr\n  export const BaseProjectTypeArr = [\n    'typescript',\n    'angular',\n    'angular-lib',\n    'unknown',\n    'unknown-npm-project',\n  ];\n  //#endregion\n\n  //#region lib type\n  export type LibType = BaseProjectType | LibTypeNames;\n\n  //#endregion\n\n  //#region new factory type\n  /**\n   * @deprecated\n   */\n  export type NewFactoryType = LibType | 'model' | 'single-file-project';\n  //#endregion\n\n  //#region core lib category\n  /**\n   * @deprecated\n   */\n  export type CoreLibCategory = LibType | 'common';\n  //#endregion\n\n  //#region file event\n  export type FileEvent = 'created' | 'changed' | 'removed' | 'rename';\n  //#endregion\n\n  //#region out folder\n  /**\n   * @deprecated\n   */\n  export type OutFolder = 'dist' | 'browser';\n  //#endregion\n\n  //#region database type\n  export type DatabaseType = ':inmemory' | 'mysql' | 'sqljs';\n  //#endregion\n\n  //#region uploaded backend file\n  export interface UploadedBackendFile {\n    data:\n      | any\n/* */\n/* */\n  \n    encoding: string;\n    md5: string;\n    tempFilePath: string;\n    mimetype: ContentType;\n    mv: (path, callback) => any;\n    name: string;\n    truncated: boolean;\n  }\n  //#endregion\n\n  //#region execute options process\n  /**\n   * @deprecated\n   */\n  export interface ExecuteOptions {\n    /** Extract string from line */\n    extractFromLine?: (string | Function)[];\n    /**\n     * Modify output line by line\n     */\n    outputLineReplace?: (outputLine: string) => string;\n    resolvePromiseMsg?: {\n      stdout?: string | string[];\n      stderr?: string | string[];\n    };\n    resolvePromiseMsgCallback?: {\n      stdout?: () => any;\n      stderr?: () => any;\n      exitCode?: (exitCode: number) => any;\n    };\n    prefix?: string;\n    detach?: boolean;\n    rebuildOnChange?: Observable<{}>;\n    /**\n     * Try command again after fail after n miliseconds\n     */\n    tryAgainWhenFailAfter?: number;\n    /**\n     *  TODO @LAST implement this\n     *\n     * Output from processe with this key\n     * will not be displayed twice when\n     * 2 processes are running at the same time\n     */\n    similarProcessKey?: string;\n\n    /**\n     * Use big buffer for big webpack logs\n     */\n    biggerBuffer?: boolean;\n    env?: any;\n    askToTryAgainOnError?: boolean;\n    onChildProcessChange?: (childProcess: ChildProcess) => void;\n    exitOnErrorCallback?: (code: number) => void;\n    /**\n     * From displaying in console\n     */\n    hideOutput?: {\n      stdout?: boolean;\n      stderr?: boolean;\n      acceptAllExitCodeAsSuccess?: boolean;\n    };\n    outputBuffer?: string[];\n    outputBufferMaxSize?: number;\n  }\n  //#endregion\n\n  //#region run options process\n  /**\n   * @deprecated\n   */\n  export interface RunOptions extends ExecuteOptions {\n    showCommand?: boolean;\n\n    /**\n     * Show process output\n     */\n    output?: boolean;\n\n    silence?: boolean;\n    stdio?: any;\n\n    // detached?: boolean;\n    cwd?: string;\n  }\n  //#endregion\n\n  //#region mime types / content type\n\n  // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\n  export const mimeTypes = {\n    '.aac': 'audio/aac',\n    '.abw': 'application/x-abiword',\n    '.arc': 'application/x-freearc',\n    '.avi': 'video/x-msvideo',\n    '.azw': 'application/vnd.amazon.ebook',\n    '.bin': 'application/octet-stream',\n    '.bmp': 'image/bmp',\n    '.bz': 'application/x-bzip',\n    '.bz2': 'application/x-bzip2',\n    '.csh': 'application/x-csh',\n    '.css': 'text/css',\n    '.csv': 'text/csv',\n    '.doc': 'application/msword',\n    '.docx':\n      'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n    '.eot': 'application/vnd.ms-fontobject',\n    '.epub': 'application/epub+zip',\n    '.gz': 'application/gzip',\n    '.gif': 'image/gif',\n    '.htm': 'text/html',\n    '.html': 'text/html',\n    '.ico': 'image/vnd.microsoft.icon',\n    '.ics': 'text/calendar',\n    '.jar': 'application/java-archive',\n    '.jpeg': 'image/jpeg',\n    '.jpg': 'image/jpeg',\n    '.js': 'text/javascript',\n    '.json': 'application/json',\n    '.jsonld': 'application/ld+json',\n    '.mid': 'application/midi',\n    '.midi': 'application/midi',\n    '.mjs': 'text/javascript',\n    '.mp3': 'audio/mpeg',\n    '.mp4': 'video/mp4',\n    '.mpeg': 'video/mpeg',\n    '.mpkg': 'application/vnd.apple.installer+xml',\n    '.odp': 'application/vnd.oasis.opendocument.presentation',\n    '.ods': 'application/vnd.oasis.opendocument.spreadsheet',\n    '.odt': 'application/vnd.oasis.opendocument.text',\n    '.oga': 'audio/ogg',\n    '.ogg': 'audio/ogg',\n    '.ogv': 'video/ogg',\n    '.ogx': 'application/ogg',\n    '.opus': 'audio/opus',\n    '.otf': 'font/otf',\n    '.png': 'image/png',\n    '.pdf': 'application/pdf',\n    '.php': 'application/php',\n    '.ppt': 'application/vnd.ms-powerpoint',\n    '.pptx':\n      'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n    '.rar': 'application/vnd.rar',\n    '.rtf': 'application/rtf',\n    '.sh': 'application/x-sh',\n    '.svg': 'image/svg+xml',\n    '.swf': 'application/x-shockwave-flash',\n    '.tar': 'application/x-tar',\n    '.tif': 'image/tiff',\n    '.tiff': 'image/tiff',\n    '.ts': 'video/mp2t',\n    '.ttf': 'font/ttf',\n    '.txt': 'text/plain',\n    '.vsd': 'application/vnd.visio',\n    '.wav': 'audio/wav',\n    '.weba': 'audio/webm',\n    '.webm': 'video/webm',\n    '.webp': 'image/webp',\n    '.woff': 'font/woff',\n    '.woff2': 'font/woff2',\n    '.xhtml': 'application/xhtml+xml',\n    '.xls': 'application/vnd.ms-excel',\n    '.xlsx':\n      'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n    '.xml': 'application/xml',\n    '.xul': 'application/vnd.mozilla.xul+xml',\n    '.zip': 'application/zip',\n    '.3gp': 'video/3gpp',\n    '.3g2': 'video/3gpp2',\n    '.7z': 'application/x-7z-compressed',\n  } as const;\n\n  export type ContentTypeKeys = keyof typeof mimeTypes;\n  export type ContentType =\n    | (typeof mimeTypes)[ContentTypeKeys]\n    | 'multipart/form-data';\n  type ContentType_ = ContentType;\n\n  /**\n   * https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types\n   */\n  export type MediaType =\n    | 'text'\n    | 'image'\n    | 'audio'\n    | 'font'\n    | 'video'\n    | 'application'\n    | 'multipart'\n    | 'message'\n    | 'model';\n\n  export const MediaTypeAllArr = [\n    'text',\n    'image',\n    'audio',\n    'video',\n    'font',\n    'application',\n    'multipart',\n    'message',\n    'model',\n  ] as MediaType[];\n\n  export type MimeType = keyof typeof mimeTypes;\n  export const MimeTypesObj = mimeTypes;\n  //#endregion\n\n  //#region  pwa\n  export interface ManifestIcon {\n    src: string; // \"assets/icons/icon-96x96.png\",\n    sizes: string; // \"96x96\",\n    type: string; // \"image/png\",\n    purpose: string; // \"maskable any\"\n  }\n\n  export interface PwaManifest {\n    name: string; //  \"app\",\n    short_name: string; //  \"app\",\n    theme_color: string; // \"#1976d2\",\n    background_color: string; //  \"#fafafa\",\n    display: 'standalone';\n    scope: string; // \"./\",\n    start_url: string; //  \"start_url\": \"./\", => \"start_url\" \"https://darekf77.github.io/bs4-breakpoint/\"\n    icons: ManifestIcon[];\n  }\n  //#endregion\n\n  //#region vscode\n  export interface VSCodeSettings {\n    'files.exclude': { [files: string]: boolean };\n    'workbench.colorTheme': 'Default Light+' | 'Kimbie Dark';\n    'workbench.colorCustomizations': {\n      'activityBar.background'?: string;\n      'activityBar.foreground'?: string;\n      'statusBar.background'?: string;\n    };\n  }\n  //#endregion\n\n  //#region position\n  /**\n   * @deprecated\n   */\n  export interface Position {\n    x: number;\n    y: number;\n  }\n  //#endregion\n\n  //#region size\n  /**\n   * @deprecated\n   */\n  export interface Size {\n    w: number;\n    h: number;\n  }\n  //#endregion\n\n  //#region global npm dependency\n  interface GlobalNpmDependency {\n    name: string;\n    installName?: string;\n    version?: string | number;\n  }\n\n  interface GlobalCommandLineProgramDependency {\n    name: string;\n    website: string;\n    version?: string;\n  }\n  export interface GlobalDependencies {\n    npm?: GlobalNpmDependency[];\n    programs?: GlobalCommandLineProgramDependency[];\n  }\n  //#endregion\n\n  export type CfontStyle =\n    | 'block'\n    | 'slick'\n    | 'tiny'\n    | 'grid'\n    | 'pallet'\n    | 'shade'\n    | 'chrome'\n    | 'simple'\n    | 'simpleBlock'\n    | '3d'\n    | 'simple3d'\n    | 'huge';\n\n  export type CfontAlign = 'left' | 'center' | 'right' | 'block';\n\n  export const tagForTaskName = '@updateValueWithPortNumForTaskName';\n\n  /**\n   * This is for storiginal class function (needed for typeorm/taon)\n   */\n  export const OrignalClassKey = '$$originalClass$$';\n\n  /**\n   * This is for storing class name inside special static property\n   */\n  export const ClassNameStaticProperty = '$$className$$';\n\n  export const localhostIp127 = '127.0.0.1';\n  export const localhostDomain = 'localhost';\n\n  export const SPECIAL_WORKER_READY_MESSAGE = '$$$ WORKER_READY $$$';\n  export const SPECIAL_APP_READY_MESSAGE = '$$$ APP_READY $$$';\n\n  export const TaonHttpErrorCustomProp = '$$taonError$$';\n\n  /**\n   * Absolute path to project children;\n   */\n  export const pathToChildren = 'path-to-children';\n\n  /**\n   * Absolute path to project parent;\n   */\n  export const parentLocation = 'parent-location';\n}","export const CoreConfig = {\n  message: {\n    globalSystemToolMode: 'globalSystemToolMode',\n  },\n};","//#region imports\nimport 'reflect-metadata';\n/* */                                      \nimport { ChildProcess, ExecSyncOptions } from 'child_process';\n/* */                                         \nimport type { Dirent, WriteStream } from 'fs';\nimport * as net from 'net';\n/* */                                  \nimport { promisify } from 'util';\n\nimport axios, { AxiosResponse } from 'axios';\nimport { CopyOptionsSync } from 'fs-extra';\n/* */                                                 \nimport { Subject } from 'rxjs';\n\nimport {\n  dotTaonFolder,\n  dotTnpFolder,\n  encoding,\n  extAllowedToReplace,\n} from './constants';\nimport {\n  path,\n  _,\n  crossPlatformPath,\n  os,\n  chalk,\n  win32Path,\n  isElevated,\n  https,\n  json5,\n} from './core-imports';\nimport { dateformat } from './core-imports';\nimport { spawn, child_process } from './core-imports';\nimport { fse } from './core-imports';\nimport { CoreModels } from './core-models';\n\nimport { config, frameworkName, Helpers } from './index';\nimport { UtilsOs } from './utils-os';\nimport { UtilsTerminal } from './utils-terminal';\n//#endregion\n\nconst BLOB_SUPPORTED_IN_SQLJS = false;\n\n//#region utils\nexport namespace Utils {\n  //#region wait\n  export const wait = (second: number): Promise<void> => {\n    return new Promise((resolve, reject) => {\n      setTimeout(() => {\n        resolve(void 0);\n      }, second * 1000);\n    });\n  };\n  //#endregion\n\n  //#region wait miliseconds\n  export const waitMilliseconds = (milliseconds: number): Promise<void> => {\n    // Helpers.taskStarted(`Waiting ${milliseconds} milliseconds...`);\n    return new Promise((resolve, reject) => {\n      setTimeout(() => {\n        // Helpers.taskDone(`Done waiting ${milliseconds} milliseconds`);\n        resolve(void 0);\n      }, milliseconds);\n    });\n  };\n  //#endregion\n\n  //#region utils / uniq array\n  export const uniqArray = <T = any>(\n    array: any[],\n    uniqueProperty?: keyof T,\n  ) => {\n    var seen = {};\n    return array\n      .filter(f => !!f)\n      .filter(function (item) {\n        return seen.hasOwnProperty(uniqueProperty ? item[uniqueProperty] : item)\n          ? false\n          : (seen[uniqueProperty ? item[uniqueProperty] : item] = true);\n      }) as T[];\n  };\n  //#endregion\n\n  //#region utils / recursive sort keys in object\n  /**\n   * @param anyObject\n   * @returns object with sorted keys\n   */\n  export const sortKeys = (anyObject: any): any => {\n    if (_.isArray(anyObject)) {\n      return anyObject.map(sortKeys);\n    }\n    if (_.isObject(anyObject)) {\n      return _.fromPairs(\n        _.keys(anyObject)\n          .sort()\n          .map(key => [key, sortKeys(anyObject[key])]),\n      );\n    }\n    return anyObject;\n  };\n  //#endregion\n\n  //#region utils / escape string for reg exp\n  /**\n   * Example:\n   * new RegExp(escapeStringForRegEx('a.b.c'),'g') => /a\\.b\\.c/g\n   */\n  export const escapeStringForRegEx = (\n    stringForRegExp: string,\n    options?: {\n      skipEscapeSlashAndDash?: boolean;\n    },\n  ) => {\n    options = options || ({} as any);\n\n    if (options?.skipEscapeSlashAndDash) {\n      return stringForRegExp.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n    }\n\n    return stringForRegExp.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n  };\n  //#endregion\n\n  //#region utils / remove chalk special chars\n  export function removeChalkSpecialChars(str: string): string {\n    // Regex to match ANSI escape sequences used by Chalk\n    const ansiRegex = /\\u001b\\[[0-9;]*m/g;\n\n    // Replace all ANSI escape sequences with an empty string\n    return str.replace(ansiRegex, '');\n  }\n  //#endregion\n\n  //#region utils / full date time\n  export const fullDateTime = () => {\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils / full date\n  export const fullDate = () => {\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils / get free port\n  const takenPorts = [];\n  export const getFreePort = async (options?: {\n    startFrom?: number;\n  }): Promise<number> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils / required uncached\n  /**\n   * Traverses the cache to search for all the cached\n   * files of the specified module name\n   */\n  const searchCache = (moduleName, callback) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  /**\n   * Removes a module from the cache\n   */\n  const purgeCache = moduleName => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  export const requireUncached = (module: string) => {\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  //#endregion\n\n  //#region utils / camelize\n  /**\n   * similar to camelCase but remove\n   * all non word / repeated characters\n   */\n  export const camelize = (str: string = '') => {\n    str = str.replace(/\\W/g, '').toLowerCase();\n    return str\n      .replace(/(?:^\\w|[A-Z]|\\b\\w)/g, function (word, index) {\n        return index == 0 ? word.toLowerCase() : word.toUpperCase();\n      })\n      .replace(/\\s+/g, '');\n  };\n  //#endregion\n\n  //#region binary\n\n  //#region db binary format type\n  export enum DbBinaryFormatEnum {\n    Blob = 'Blob',\n    File = 'File',\n    string = 'string',\n/* */\n/* */\n  \n  }\n\n  export type DbBinaryFormatForBrowser = Blob | File | string;\n/* */\n/* */\n  \n\n  /**\n   * Binary format that can be stored in database\n   *\n   * for nodejs => Buffer\n   * for sql.js => string (shoulb be blob - but not supported)\n   *\n   */\n  export type DbBinaryFormat =\n    | DbBinaryFormatForBrowser\n/* */\n/* */\n  \n  //#endregion\n  export namespace binary {\n    //#region binay utils / array buffer to blob\n    //#region @browser\n    /**\n     * This is for BROWSER ONLY\n     *\n     * @param buffer\n     * @param contentType\n     * @returns\n     */\n    export async function arrayBufferToBlob(\n      buffer: ArrayBuffer,\n      contentType: CoreModels.ContentType,\n    ): Promise<Blob> {\n      // @ts-ignore\n      return new Blob([buffer], { type: contentType });\n    }\n    //#endregion\n    //#endregion\n\n    //#region binay utils / blob to array buffer\n    /**\n     * This is for BROWSER ONLY\n     * @param blob\n     * @returns\n     */\n    export async function blobToArrayBuffer(blob: Blob): Promise<ArrayBuffer> {\n      return await new Promise((resolve, reject) => {\n        const reader = new FileReader();\n        reader.addEventListener('loadend', () => {\n          resolve(reader.result as any);\n        });\n        reader.addEventListener('error', reject); // @ts-ignore\n        reader.readAsArrayBuffer(blob);\n      });\n    }\n    //#endregion\n\n    //#region binay utils / blob to base64 string\n    /**\n     * it is revers to base64toBlob\n     * @param blob\n     * @returns\n     */\n    export function blobToBase64(blob: Blob): Promise<string> {\n      return new Promise<any>((resolve, _) => {\n        const reader = new FileReader();\n        reader.onloadend = () => resolve(reader.result); // @ts-ignore\n        reader.readAsDataURL(blob);\n      });\n    }\n    //#endregion\n\n    //#region binay utils / base64 string to blob\n    /**\n     * it is revers to blobToBase64()\n     * @param base64Data\n     * @returns\n     */\n    export async function base64toBlob(\n      base64Data: string,\n      contentTypeOverride?: CoreModels.ContentType,\n    ): Promise<Blob> {\n      let content_type: CoreModels.ContentType = void 0 as any;\n      let file_base64: string = void 0 as any;\n      if (!contentTypeOverride) {\n        const m = /^data:(.+?);base64,(.+)$/.exec(base64Data);\n        if (!m) {\n          throw new Error(\n            `[taon-framework][base64toBlob] Not a base64 blob [${base64Data}]`,\n          );\n        }\n        // tslint:disable-next-line:prefer-const\n        var [__, contenttype, filebase64] = m;\n        content_type = contenttype as any;\n        file_base64 = filebase64;\n      }\n      content_type = (\n        contentTypeOverride ? contentTypeOverride : content_type || ''\n      ) as any;\n      base64Data = contentTypeOverride ? base64Data : file_base64;\n      const sliceSize = 1024;\n      const byteCharacters = atob(base64Data);\n      const bytesLength = byteCharacters.length;\n      const slicesCount = Math.ceil(bytesLength / sliceSize);\n      const byteArrays = new Array(slicesCount);\n\n      for (let sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {\n        const begin = sliceIndex * sliceSize;\n        const end = Math.min(begin + sliceSize, bytesLength);\n\n        const bytes = new Array(end - begin);\n        // tslint:disable-next-line:one-variable-per-declaration\n        for (let offset = begin, i = 0; offset < end; ++i, ++offset) {\n          bytes[i] = byteCharacters[offset].charCodeAt(0);\n        }\n        byteArrays[sliceIndex] = new Uint8Array(bytes);\n      }\n      return new Blob(byteArrays, { type: content_type });\n    }\n    //#endregion\n\n    //#region binay utils / base64 string to db binary format\n\n    export async function base64toDbBinaryFormat(\n      text: string,\n    ): Promise<DbBinaryFormat> {\n      let result: DbBinaryFormat;\n      //#region @browser\n      result = await (async () => {\n        if (BLOB_SUPPORTED_IN_SQLJS) {\n          const blob = await base64toBlob(text);\n          return blob;\n        }\n        return text as any;\n      })();\n      //#endregion\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n      return result;\n    }\n    //#endregion\n\n    //#region binay utils / db binary format to base64 string\n    export async function dbBinaryFormatToBase64(\n      binaryFormat: DbBinaryFormat,\n    ): Promise<string> {\n      let result: string;\n      //#region @browser\n      result = await (async () => {\n        if (BLOB_SUPPORTED_IN_SQLJS) {\n          const text = await blobToBase64(binaryFormat as any);\n          return text;\n        }\n        return binaryFormat as any;\n      })();\n      //#endregion\n\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n      return result;\n    }\n    //#endregion\n\n    //#region binay utils / base64 string to db binary format\n\n    export async function textToDbBinaryFormat(\n      text: string,\n    ): Promise<DbBinaryFormat> {\n      let result: DbBinaryFormat;\n      //#region @browser\n      result = await (async () => {\n        if (BLOB_SUPPORTED_IN_SQLJS) {\n          const blob = await textToBlob(text);\n          return blob;\n        }\n        return text as any;\n      })();\n      //#endregion\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n      return result;\n    }\n    //#endregion\n\n    //#region binay utils / db binary format to base64 string\n    export async function dbBinaryFormatToText(\n      binaryFormat: DbBinaryFormat,\n    ): Promise<string> {\n      let result: string;\n      //#region @browser\n      result = await (async () => {\n        if (BLOB_SUPPORTED_IN_SQLJS) {\n          const text = await blobToText(binaryFormat as any);\n          return text;\n        }\n        return binaryFormat as any;\n      })();\n      //#endregion\n\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n      return result;\n    }\n    //#endregion\n\n    //#region binay utils / base64 string to nodejs buffer\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n    //#endregion\n\n    //#region binay utils / nodejs buffer to base64 string\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n    //#endregion\n\n    //#region binay utils / file to blob\n    export async function fileToBlob(file: File) {\n      return new Blob([new Uint8Array(await file.arrayBuffer())], {\n        type: file.type,\n      });\n    }\n    //#endregion\n\n    //#region binay utils / blob to file\n    export async function blobToFile(\n      blob: Blob,\n      nameForFile: string = 'my-file-name',\n    ): Promise<File> {\n      if (!nameForFile) {\n        nameForFile = 'nonamefile' + new Date().getTime();\n      }\n      // @ts-ignore\n      return new File([blob], nameForFile);\n    }\n    //#endregion\n\n    //#region binay utils / nodejs blob to nodejs buffer\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n    //#endregion\n\n    //#region binay utils / nodejs buffer to nodejs blob\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n    //#endregion\n\n    //#region binay utils / text to nodejs buffer\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n    //#endregion\n\n    //#region binay utils / nodejs buffer to text\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n    //#endregion\n\n    //#region binay utils / text to blob\n    export async function textToBlob(\n      text: string,\n      type: CoreModels.ContentType = 'text/plain',\n    ): Promise<Blob> {\n      const blob = new Blob([text], { type });\n      return blob;\n    }\n    //#endregion\n\n    //#region binay utils / blob to text\n    export async function blobToText(blob: Blob): Promise<string> {\n      return await blob.text();\n    }\n    //#endregion\n\n    //#region binay utils / text to file\n    export async function textToFile(\n      text: string,\n      fileRelativePathOrName: string,\n    ): Promise<File> {\n      // console.log({ path })\n      const ext = path.extname(fileRelativePathOrName);\n\n      const type = CoreModels.mimeTypes[ext];\n      const blob = new Blob([text], { type });\n      const file = await blobToFile(blob, fileRelativePathOrName);\n      // console.log({\n      //   ext,\n      //   blob, file\n      // });\n      // debugger\n      return file;\n    }\n    //#endregion\n\n    //#region binay utils / file to text\n    export async function fileToText(file: File): Promise<string> {\n      return await file.text();\n    }\n    //#endregion\n\n    //#region binay utils / json to blob\n    export async function jsonToBlob(jsonObj: object): Promise<Blob> {\n      const blob = new Blob([JSON.stringify(jsonObj, null, 2)], {\n        type: 'application/json',\n      });\n      return blob;\n    }\n    //#endregion\n\n    //#region binay utils / blob to json\n    /**\n     * TODO NOT TESTED\n     */\n    export async function blobToJson(blob: Blob): Promise<string> {\n      return JSON.parse(await blob.text());\n    }\n    //#endregion\n\n    //#region binay utils / get blob from url\n    export async function getBlobFrom(url: string): Promise<Blob> {\n      return (\n        await axios({\n          url,\n          method: 'get',\n          responseType: 'blob',\n        })\n      ).data;\n    }\n    //#endregion\n  }\n  //#endregion\n\n  //#region css\n  export namespace css {\n    //#region css utils / numeric value of pixels\n    /**\n     *\n     * @param pixelsCss pixels ex. 100px\n     * @returns\n     */\n    export function numValue(pixelsCss: string | number): number {\n      // tslint:disable-next-line:radix\n      return parseInt(\n        pixelsCss?.toString()?.replace('px', ''),\n        // .replace('pt', '') TOOD handle other types\n        // .replace('1rem', '') // to\n      );\n    }\n    //#endregion\n  }\n  //#endregion\n}\n//#endregion\n\n//#region utils string regex\nexport namespace UtilsStringRegex {\n  export const containsNonAscii = (pathStringOrPathParts: string): boolean => {\n    const hasNonAscii = /[^\\u0000-\\u0080]+/.test(pathStringOrPathParts);\n    return hasNonAscii;\n  };\n}\n//#endregion\n\n//#region TODO IN_PROGRESS utils messages\n/**\n * TODO @LAST @IN_PROGRESS\n * - utils for messages\n * - export when ready\n * - should be ready for everything async refactor\n */\nexport namespace UtilsMessages {\n  //#region utils messages / compilation wrapper\n  export const compilationWrapper = async (\n    fn: () => any,\n    taskName: string = 'Task',\n    executionType:\n      | 'Compilation of'\n      | 'Code execution of'\n      | 'Event:' = 'Compilation of',\n  ): Promise<void> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n}\n//#endregion\n\n//#region utils sudo\nexport namespace UtilsSudo {\n  //#region utils sudo / sudo status enum\n  /**\n   * All possible sudo states on Windows 11 (24H2+)\n   */\n  enum SudoStatus {\n    NotInstalled = 'NotInstalled',\n    Disabled = 'Disabled',\n    Enabled_ForceNewWindow = 'Enabled_ForceNewWindow', // Enabled = 2\n    Enabled_Inline = 'Enabled_Inline', // Enabled = 3 ← current default\n    Unknown = 'Unknown',\n  }\n  //#endregion\n  /**\n   * @returns true if current process is elevated (admin or sudo root), false otherwise\n   */\n  export const isCurrentProcessElevated = async (): Promise<boolean> => {\n    return await isElevated();\n  };\n\n  //#region utils sudo / utils sudo status label\n  /**\n   * Human-readable descriptions\n   */\n  const SudoStatusLabel: Record<SudoStatus, string> = {\n    [SudoStatus.NotInstalled]: 'sudo is not installed',\n    [SudoStatus.Disabled]: 'sudo is disabled',\n    [SudoStatus.Enabled_ForceNewWindow]:\n      'sudo enabled → opens new window (ForceNewWindow)',\n    [SudoStatus.Enabled_Inline]:\n      'sudo enabled → inline mode (runs in same window)',\n    [SudoStatus.Unknown]: 'sudo present but status unknown',\n  };\n  //#endregion\n\n  //#region utils sudo / get sudo enabled value\n  /**\n   * Read the Enabled DWORD value from registry\n   */\n  async function getSudoEnabledValue(): Promise<number | null> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n  //#endregion\n\n  //#region utils sudo / get status\n  /**\n   * Main function – returns detailed sudo status\n   */\n  export async function getStatus(): Promise<{\n    status: SudoStatus;\n    label: string;\n    isAvailable: boolean;\n    isInline: boolean;\n  }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n  //#endregion\n\n  //#region utils sudo / is sudo available\n  /**\n   * check if sudo is available and in proper mode\n   */\n  export const isInProperModeForTaon = async ({\n    displayErrorMessage = false,\n  }: {\n    displayErrorMessage?: boolean;\n  }): Promise<boolean> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n}\n//#endregion\n\n//#region utils string\nexport namespace UtilsString {\n  //#region utils string / kebab case no split numbers\n  export const kebabCaseNoSplitNumbers = (input: string): string => {\n    return (\n      input\n        // Match spaces or any kind of whitespace and replace with a hyphen\n        .replace(/\\s+/g, '-')\n        // Match uppercase letters and replace them with a hyphen and the lowercase version of the letter\n        .replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n        // Convert everything to lowercase\n        .toLowerCase()\n    );\n  };\n  //#endregion\n}\n//#endregion\n\n//#region utils migrations\n/**\n * Taon migration utilities\n */\nexport namespace UtilsMigrations {\n  export const getTimestampFromClassName = (\n    className: string,\n  ): number | undefined => {\n    const [maybeTimestamp1, maybeTimestamp2] = className.split('_') || [];\n    // console.log({ maybeTimestamp1, maybeTimestamp2 });\n    const timestamp1 = parseInt(maybeTimestamp1);\n    const timestamp2 = parseInt(maybeTimestamp2);\n    const timestamp = !_.isNaN(timestamp1) ? timestamp1 : timestamp2;\n    return isValidTimestamp(timestamp) ? timestamp : void 0;\n  };\n\n  export const getFormattedTimestampFromClassName = (\n    className: string,\n  ): string | undefined => {\n    const timestamp = getTimestampFromClassName(className);\n    if (!timestamp) {\n      return void 0;\n    }\n    return formatTimestamp(timestamp);\n  };\n\n  export const formatTimestamp = (timestamp: number): string => {\n    const dateFromTimestamp: Date = new Date(timestamp);\n    // @ts-ignore\n    return `${dateformat(dateFromTimestamp, 'dd-mm-yyyy HH:MM:ss')}`;\n  };\n\n  export const isValidTimestamp = (value: any): boolean => {\n    if (typeof value !== 'number') {\n      return false; // Must be a number\n    }\n\n    const minTimestamp = 0; // Minimum possible timestamp (Unix epoch)\n    const maxTimestamp = 8640000000000000; // Max safe timestamp in JS (represents year ~275760)\n\n    return value >= minTimestamp && value <= maxTimestamp;\n  };\n}\n//#endregion\n\n//#region utils json\nexport namespace UtilsJson {\n  export interface AttrJsoncProp {\n    name: string;\n    value?: any;\n  }\n\n  //#region get attributes from jsonc or json5 file\n  /**\n   * ! TODO handle packages like zone.js with dot\n   * Get attributes from jsonc or json5 file\n   * @param jsonDeepPath lodash path to property in json ex. deep.path.to.prop\n   * @param fileContent jsonc or json5 - json with comments\n   * @returns array of attributes\n   */\n  export const getAtrributiesFromJsonWithComments = (\n    jsonDeepPath: string, // lodash path to property in json ex. deep.path.to.prop\n    fileContent: string, // jsonc or json5 - json with comments\n  ): AttrJsoncProp[] => {\n    const lines = fileContent.split('\\n');\n    // split path to parts but keep part if is for example 'sql.js\n    const pathParts = jsonDeepPath.split('.').reduce((a, b) => {\n      if (a.length === 0) {\n        return [b];\n      }\n      const last: string = a[a.length - 1];\n      if (\n        (last.startsWith(`['`) && b.endsWith(`']`)) ||\n        (last.startsWith(`[\"`) && b.endsWith(`\"]`))\n      ) {\n        a[a.length - 1] = [last, b].join('.');\n      } else {\n        a.push(b);\n      }\n      return a;\n    }, []);\n    // console.log({ pathParts });\n    // const pathParts = jsonDeepPath.split('.');\n    // const keyName = pathParts.pop()!.replace(/^\\[\"(.+)\"\\]$/, '$1');\n    const keyName = pathParts.pop()!.replace(/^\\[\"(.+)\"\\]$/, '$1');\n    let currentPath = '';\n    let attributes: AttrJsoncProp[] = [];\n    let collectedComments: string[] = [];\n\n    for (const line of lines) {\n      const trimmedLine = line.trim();\n\n      if (trimmedLine.startsWith('//')) {\n        // Collect comments\n        collectedComments.push(trimmedLine);\n        // trimmedLine.startsWith('//pizda') &&\n        //   console.log('pushlin line', { trimmedLine });\n      } else if (trimmedLine.startsWith('\"') || trimmedLine.startsWith(\"'\")) {\n        // Extract the key from the line\n        const match = trimmedLine.match(/[\"']([^\"']+)[\"']\\s*:/);\n        // console.log({ match0: match && match[0], match1: match && match[1] });\n        if (match) {\n          const key = match[1];\n          currentPath = currentPath\n            ? `${currentPath}.${key.includes('.') ? `['${key}']` : key}`\n            : key;\n          // console.log({ key });\n          // Check if the current path matches the jsonDeepPath\n          if (\n            (currentPath.endsWith(keyName) &&\n              !currentPath.endsWith('/' + keyName)) ||\n            currentPath.endsWith(`['${keyName}']`)\n          ) {\n            // console.log('extract attributes', {\n            //   keyName,\n            //   collectedCommentsLength: collectedComments.length,\n            // });\n            // Process the collected comments to extract attributes\n            attributes = extractAttributesFromComments(collectedComments);\n            break;\n          }\n\n          // Reset collected comments as they only relate to the next key\n          collectedComments = [];\n        }\n      }\n    }\n\n    return attributes;\n  };\n  //#endregion\n\n  //#region get attributes from comment\n  export const getAttributiesFromComment = (\n    comment: string,\n    attributes: AttrJsoncProp[] = [],\n  ): AttrJsoncProp[] => {\n    // Match @name=value OR @name\n    // Values can be \"...\" or '...' or unquoted token without @\n    const attrRegex = /@(\\w+)(?:\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|([^\\s@]+)))?/g;\n    let match;\n    while ((match = attrRegex.exec(comment)) !== null) {\n      const [, name, doubleQuoted, singleQuoted, unquoted] = match;\n      const value = doubleQuoted ?? singleQuoted ?? unquoted;\n\n      const existingAttribute = attributes.find(\n        attr => attr.name === `@${name}`,\n      );\n\n      if (existingAttribute) {\n        if (value !== undefined) {\n          if (Array.isArray(existingAttribute.value)) {\n            existingAttribute.value.push(value);\n          } else {\n            existingAttribute.value = [existingAttribute.value, value];\n          }\n        }\n      } else {\n        attributes.push({\n          name: `@${name}`,\n          value: value !== undefined ? value : true,\n        });\n      }\n    }\n\n    // Normalize single values not to be arrays\n    attributes.forEach(attr => {\n      if (Array.isArray(attr.value) && attr.value.length === 1) {\n        attr.value = attr.value[0];\n      }\n    });\n\n    return attributes;\n  };\n  //#endregion\n\n  //#region extract attributes from comments\n  const extractAttributesFromComments = (\n    comments: string[],\n  ): AttrJsoncProp[] => {\n    const attributes: AttrJsoncProp[] = [];\n\n    // console.log({ comments });\n    for (const comment of comments) {\n      getAttributiesFromComment(comment, attributes);\n    }\n\n    return attributes;\n  };\n  //#endregion\n\n  //#region read json\n  /**\n   * read json from absolute path\n   * @returns json object\n   */\n  export const readJson = (\n    absoluteFilePath: string | string[],\n    defaultValue = {},\n    useJson5 = false, // TODO @LAST change api to simple options\n  ): any => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region read json with comments\n  export const readJsonWithComments = (\n    absoluteFilePath: string | string[],\n    defaultValue: any = {},\n  ): any => {\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n}\n//#endregion\n\n//#region utils yaml\nexport namespace UtilsYaml {\n  export const yamlToJson = <FORMAT = any>(yamlString: string): any => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  export const jsonToYaml = (json: any): string => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  //#region read yaml as json\n  export const readYamlAsJson = <FORMAT = any>(\n    absFilePathToYamlOrYmlFile: string,\n    options?: {\n      defaultValue?: FORMAT;\n    },\n  ): FORMAT => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region write json to yaml\n  export const writeJsonToYaml = (\n    destinationYamlfileAbsPath: string,\n    json: any,\n    // options: {},\n  ): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n}\n//#endregion\n\n//#region utils filepath metadata\nexport namespace FilePathMetaData {\n  const TERMINATOR = 'xxxxx'; // terminates metadata block\n  const KV_SEPARATOR = '...'; // key/value separator\n  const PAIR_SEPARATOR = 'IxIxI'; // between pairs\n\n  //#region embed data into filename\n  /**\n   * Embed metadata into filename while preserving the extension.\n   *\n   * Example:\n   * embedData({ version: \"1.2.3\", envName: \"__\" }, \"project.zip\")\n   * -> \"version|-|1.2.3||--||envName|-|__|||project.zip\"\n   *\n   * keysMap = {\n   *  projectName: \"pn\",\n   *  envName: \"en\",\n   *  version: \"v\"\n   * }\n   */\n  export const embedData = <\n    T extends Record<string, string | number | boolean | undefined>,\n  >(\n    data: T,\n    orgFilename: string,\n    options?: {\n      skipAddingBasenameAtEnd?: boolean; // default false\n      keysMap?: Record<keyof T, string | number | boolean | undefined>; // optional mapping of keys\n    },\n  ): string => {\n    options = options || {};\n    const ext = path.extname(orgFilename);\n    const base = path.basename(orgFilename, ext);\n\n    const meta = Object.entries(data)\n      .map(([key, value]) => {\n        if (options.keysMap && options.keysMap[key as keyof T]) {\n          key = options.keysMap[key as keyof T] as string;\n        }\n        return `${key}${KV_SEPARATOR}${value ?? ''}`;\n      })\n      .join(PAIR_SEPARATOR);\n\n    return `${meta}${TERMINATOR}${\n      options.skipAddingBasenameAtEnd ? '' : base\n    }${ext}`;\n  };\n  //#endregion\n\n  //#region extract data from filename\n  /**\n   * Extract metadata from filename (reverse of embedData).\n   *\n   * Example:\n   * extractData<{ version: string; env: string }>(\"myfile__version-1.2.3__env-prod.zip\")\n   * -> { version: \"1.2.3\", env: \"prod\" }\n   *\n   * keysMap = {\n   *  projectName: \"pn\",\n   *  envName: \"en\",\n   *  version: \"v\"\n   * }\n   */\n  export const extractData = <\n    T extends Record<string, string | number | boolean | undefined>,\n  >(\n    filename: string,\n    options?: {\n      keysMap?: Record<keyof T, string | number | boolean | undefined>; // optional mapping of keys\n    },\n  ): T => {\n    options = options || {};\n    const ext = path.extname(filename);\n    const thereIsNoExt = ext.includes('|') || ext.includes('-');\n    const base = thereIsNoExt ? filename : path.basename(filename, ext);\n\n    // Everything BEFORE the FIRST TERMINATOR\n    const idx = base.lastIndexOf(TERMINATOR);\n    const metaPart = idx >= 0 ? base.substring(0, idx) : base;\n\n    const data: Record<string, string> = {};\n\n    let cursor = 0;\n    while (cursor <= metaPart.length) {\n      const sepIdx = metaPart.indexOf(PAIR_SEPARATOR, cursor);\n      const segment =\n        sepIdx === -1\n          ? metaPart.substring(cursor)\n          : metaPart.substring(cursor, sepIdx);\n\n      if (segment) {\n        const kvIdx = segment.indexOf(KV_SEPARATOR);\n        if (kvIdx > -1) {\n          const key = segment.substring(0, kvIdx);\n          const value = segment.substring(kvIdx + KV_SEPARATOR.length);\n          let finalKey = options.keysMap\n            ? (Object.keys(options.keysMap || {}).find(\n                k => options.keysMap[k as keyof T] === key,\n              ) as keyof T)\n            : key;\n          data[finalKey as string] = value;\n        }\n      }\n\n      if (sepIdx === -1) break;\n      cursor = sepIdx + PAIR_SEPARATOR.length;\n    }\n\n    return data as T;\n  };\n  //#endregion\n\n  //#region get only metadata string\n  export const getOnlyMetadataString = (filename: string): string => {\n    const ext = path.extname(filename);\n    const base = path.basename(filename, ext);\n\n    const idx = base.lastIndexOf(TERMINATOR);\n    if (idx === -1) return ''; // no terminator\n\n    const metaPart = base.substring(0, idx);\n    if (!metaPart.trim()) return ''; // empty metadata\n\n    return metaPart;\n  };\n  //#endregion\n}\n//#endregion\n\n//#region utils dot file\nexport namespace UtilsDotFile {\n  //#region parse value from dot file util\n  const parseValue = (rawValue: string): string | number | boolean => {\n    const val = rawValue.trim().replace(/^\"|\"$/g, '');\n\n    // Try boolean\n    if (val.toLowerCase() === 'true') return true;\n    if (val.toLowerCase() === 'false') return false;\n\n    // Try number\n    if (!isNaN(Number(val)) && val !== '') return Number(val);\n\n    return val;\n  };\n  //#endregion\n\n  //#region set value to/from dot file\n  export const setValueToDotFile = (\n    dotFileAbsPath: string | string[],\n    key: string,\n    value: string | number | boolean,\n  ): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region set comment to key in dot file\n  export const setCommentToKeyInDotFile = (\n    dotFileAbsPath: string | string[],\n    key: string,\n    comment: string,\n  ): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region get value from dot file\n  export const getValueFromDotFile = (\n    dotFileAbsPath: string | string[],\n    key: string,\n  ): string | number | boolean => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region add comment at the beginning of dot file\n  export const addCommentAtTheBeginningOfDotFile = (\n    dotFileAbsPath: string | string[],\n    comment: string,\n  ): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region set values keys from object\n  export const setValuesKeysFromObject = (\n    dotFileAbsPath: string | string[],\n    obj: Record<string, string | number | boolean>,\n    options?: {\n      /**\n       * if true, it will overwrite existing keys\n       */\n      setAsNewFile?: boolean;\n    },\n  ): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region get values keys as json object\n  export const getValuesKeysAsJsonObject = <\n    T = Record<string, string | number | boolean>,\n  >(\n    dotFileAbsPath: string | string[],\n  ): T => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region get comments keys as json object\n  /**\n   * @returns key|comment pairs as json object\n   */\n  export const getCommentsKeysAsJsonObject = <\n    T = Record<string, string | undefined>,\n  >(\n    dotFileAbsPath: string | string[],\n  ): T => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n}\n//#endregion\n\n//#region utils cli\n/**\n * Easy way to connect CLI commands to cli class methods.\n *\n * Example:\n * in clic class\n *\n * $FirstCli {\n *   static [UtilsCliClassMethod.staticClassNameProperty] = '$FirstCli';\n *\n *   @UtilsCliClassMethod.decoratorMethod('doSomething')\n *   doSomething() {\n *     console.log('doing something');\n *   }\n * }\n *\n * UtilsCliClassMethod.getFrom($FirstCli.prototype.doSomething) // \"firstcli:dosomething\"\n *\n */\nexport namespace UtilsCliClassMethod {\n  const CLI_METHOD_KEY = Symbol('cliMethod');\n  const unknowClass = 'unknownclass';\n\n  // does not work\n  // export const decoratorClass = (className: string) => {\n  //   return function (target: Function) {\n  //     // console.log(target);\n  //     // console.log('Decorating class with CLI name:', className);\n  //     // debugger;\n  //     // const classFn = (target?.constructor || {}) as Function;\n  //     target[CoreModels.ClassNameStaticProperty] = className;\n  //     return target;\n  //   };\n  // };\n\n  export const decoratorMethod = (methodName: string): MethodDecorator => {\n    return (target, propertyKey, descriptor) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n      return (void 0);\n    };\n  };\n\n  export const getFrom = <ARGS_TO_PARSE extends object = any>(\n    ClassPrototypeMethodFnHere: Function,\n    options?: {\n      globalMethod?: boolean;\n      /**\n       * arguments to parse into CLI format\n       * Example: { projectName: \"myproj\", envName: \"prod\" } => \"--projectName=myproj --envName=prod\"\n       * TODO @LAST add support for DEEP args parsing with lodash-walk-object\n       */\n      argsToParse?: ARGS_TO_PARSE;\n    },\n  ): string => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n}\n//#endregion","import type * as ora from 'ora';\n\nimport type { CoreModels } from './core-models';\n\nexport const taonContainers = 'taon-containers';\n\nexport const taonProjects = 'taon-projects';\n\nexport const dockerTemplates = 'docker-templates';\n\nexport const tnpPackageName = 'tnp';\n\nexport const taonPackageName = 'taon';\n\nexport const dotTaonFolder = `.taon`;\n\nexport const dotTnpFolder = `.tnp`;\n\nexport const urlRepoTaon = `https://github.com/darekf77/${taonPackageName}.git`;\nexport const urlRepoTaonContainers = `https://github.com/darekf77/${taonContainers}.git`;\n\nexport enum LibTypeEnum {\n  ISOMORPHIC_LIB = 'isomorphic-lib',\n  CONTAINER = 'container',\n  UNKNOWN_NPM_PROJECT = 'unknown-npm-project',\n  UNKNOWN = 'unknown',\n}\n\nexport type LibTypeNames = `${LibTypeEnum}`;\n\nexport const GlobalLibTypeName = {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n};\n\n/**\n * @deprecated\n */\nexport const LibTypeArr: CoreModels.LibType[] = [\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n] as CoreModels.LibType[];\n\n//#region constants / files not allowed to clean\nexport const filesNotAllowedToClean = {\n  _gitignore: '.gitignore',\n  _npmrc: '.npmrc',\n  _npmignore: '.npmignore',\n  tslint_json: 'tslint.json',\n  _editorconfig: '.editorconfig',\n  _angularCli_json: '.angular-cli.json',\n  _vscode_launch_json: '.vscode/launch.json',\n};\n//#endregion\n\n//#region constants / file (files aliases)\nexport const fileName = {\n  _bowerrc: '.bowerrc',\n  bower_json: 'bower.json',\n  controllers_ts: 'controllers.ts',\n  entities_ts: 'entities.ts',\n  angular_json: 'angular.json',\n  autob_actions_js: 'auto-actions.js',\n  local_config_js: 'local-config.js',\n  build_config_js: 'build-config.js',\n  local_config: 'local-config',\n  start_backend_ts: 'start.backend.ts',\n  docs_config_jsonc: 'docs-config.jsonc',\n  package_json: 'package.json',\n  taon_jsonc: 'taon.jsonc',\n  /**\n   * @deprecated\n   */\n  firedev_jsonc: 'firedev.jsonc',\n  /**\n   * @deprecated\n   */\n  firedev_json: 'firedev.json',\n  /**\n   * @deprecated\n   */\n  package_json__tnp_json: 'package.json_tnp.json',\n  /**\n   * @deprecated\n   */\n  package_json__tnp_json5: 'package.json_tnp.json5',\n  /**\n   * @deprecated\n   */\n  package_json__devDependencies_json: 'package.json_devDependencies.json',\n  /**\n   * @deprecated\n   */\n  devDependencies_json: 'devDependencies.json',\n\n  yarn_lock: 'yarn.lock',\n  package_lock_json: 'package-lock.json',\n  tnpEnvironment_json: 'tmp-environment.json',\n  environment: 'environment',\n  environment_js: 'environment.js',\n  /**\n   * @deprecated\n   */\n  tmp_transaction_pid_txt: 'tmp-transaction-pid.txt',\n  manifest_webmanifest: 'manifest.webmanifest',\n  public_api_d_ts: 'public-api.d.ts',\n  public_api_ts: 'public-api.ts',\n  public_api: 'public-api',\n  _babelrc: '.babelrc',\n  index: 'index',\n  index_d_ts: 'index.d.ts',\n  index_ts: 'index.ts',\n  index_js: 'index.js',\n  cli_js: 'cli.js',\n  cli_ts: 'cli.ts',\n  index_js_map: 'index.js.map',\n  db_json: 'db.json',\n  db_for_tests_json: 'db-for-tests.json',\n  /**\n   * @deprecated\n   */\n  tmpDockerImageId: 'tmp-docker-image-id',\n  tmp_recent_json: 'recent.json',\n  tsconfig_json: 'tsconfig.json',\n  tsconfig_lib_json: 'tsconfig.lib.json',\n  README_MD: 'README.md',\n  server_key: 'server.key',\n  server_cert: 'server.cert',\n  server_chain_cert: 'server-chain.cert',\n  meta_config_md: 'meta-content.md',\n  logo_png: 'logo.png',\n  logo_svg: 'logo.svg',\n  ric_proj_json: 'ric-project.json',\n  linked_projects_json: 'linked-projects.json',\n  docker_compose_yml: 'docker-compose.yml',\n  compose_yml: 'docker-compose.yml',\n  ...filesNotAllowedToClean,\n};\n//#endregion\n\n//#region constants / temp folders\nexport const tempFoldersName = {\n  // DO NOT PUT ANYTHING SUPID HERE!!!\n  vendor: 'vendor',\n  docs: 'docs',\n  dist: 'dist',\n  tmp: 'tmp',\n  tmpDistRelease: 'tmp-dist-release',\n  tempSrc: 'tmp-src',\n  tempSrcDist: 'tmp-src-dist',\n  previewDistApp: 'dist-app',\n  preview: 'preview',\n  browser: 'browser',\n  websql: 'websql',\n  _browser: '.browser',\n  module: 'module',\n  backup: 'backup',\n  node_modules: 'node_modules',\n  local_release: 'local_release',\n  client: 'client',\n  tnp_tests_context: 'tmp-tests-context',\n  tmpPackage: 'tmp-package',\n  tmpScenarios: 'tmp-scenarios',\n  tmpTestsEnvironments: 'tmp-tests-environments',\n  testsEnvironments: 'tests-environments',\n};\n//#endregion\n\n//#region constants / folder (folders aliases)\nexport const folderName = {\n  scripts: 'scripts',\n  scenarios: 'scenarios',\n  bower: 'bower',\n  src: 'src',\n  out: 'out',\n  app: 'app',\n  lib: 'lib',\n  tests: 'tests',\n  libraries: 'libraries',\n  libs: 'libs',\n  source: 'source',\n  custom: 'custom',\n  migrations: 'migrations',\n  components: 'components',\n  assets: 'assets',\n  generated: 'generated',\n  apps: 'apps',\n  shared: 'shared',\n  container: 'container',\n  bin: 'bin',\n  _bin: '.bin',\n  _vscode: '.vscode',\n  project: 'project',\n  projects: 'projects',\n  external: 'external',\n  tmpDist: 'tmp-dist',\n  tmpFor(d: CoreModels.OutFolder) {\n    return `tmp-src-${d}`;\n  },\n  targetProjects: {\n    DEFAULT_PATH_GENERATED: 'tmp-target-projects/generated',\n    DEFAULT_PATH_ORIGINS: 'tmp-target-projects/origins',\n  },\n  ...tempFoldersName,\n};\n//#endregion\n\n//#region constants / trusted packages for update\nexport const areTrustedForPatchUpdate = [\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n];\n//#endregion\n\nexport const extAllowedToExportAndReplaceTSJSCodeFiles = [\n  'js',\n  'ts',\n  'tsx',\n].map(ext => `.${ext}`);\n\nexport const extTemplatesFiles = ['html'].map(ext => `.${ext}`);\n\nexport const extForSassLikeFiles = ['scss', 'sass'].map(ext => `.${ext}`);\n\nexport const extForStyles = [\n  ...extForSassLikeFiles,\n  ...['css', 'less'].map(ext => `.${ext}`),\n];\n\nexport const extAllowedToReplace = [\n  ...extForStyles,\n  ...extTemplatesFiles,\n  ...extAllowedToExportAndReplaceTSJSCodeFiles,\n];\n\nexport const REGEX_REGION = {\n  TS_JS_SCSS_SASS: {\n    START: new RegExp('\\\\/\\\\/\\\\s*\\\\#region'),\n    END: new RegExp('\\\\/\\\\/\\\\s*\\\\#endregion'),\n    EXT: [...extAllowedToExportAndReplaceTSJSCodeFiles, ...extForSassLikeFiles],\n  },\n  HTML: {\n    START: new RegExp('\\\\<\\\\!\\\\-\\\\-\\\\s*\\\\#region'),\n    END: new RegExp('\\\\<\\\\!\\\\-\\\\-\\\\s*\\\\#endregion'),\n    EXT: extTemplatesFiles,\n  },\n  CSS: {\n    START: new RegExp('\\\\/\\\\*\\\\s*\\\\#region'),\n    END: new RegExp('\\\\/\\\\*\\\\s*\\\\#endregion'),\n    EXT: extForStyles,\n  },\n};\n\nexport const backendNodejsOnlyFiles = [\n  'backend.ts',\n  // '.repository.ts', // deprecated in typeorm\n].map(ext => `.${ext}`);\n\nexport const backendWebsqlNodejsFiles = ['subscriber.ts', 'test.ts'].map(\n  ext => `.${ext}`,\n);\n\nexport const frontendFiles = [\n  'browser.ts',\n  'component.ts',\n  'container.ts',\n  'directive.ts',\n  'pipe.ts',\n  'module.ts',\n  'service.ts',\n  'store.ts',\n  'actions.ts',\n  'action.ts',\n  'effects.ts',\n  'effect.ts',\n  'reducers.ts',\n  'reducer.ts',\n  'selectors.ts',\n  'selector.ts',\n  'routes.ts',\n  'resolver.ts',\n  'resolvers.ts',\n  'guard.ts',\n  'guards.ts',\n  'store.ts',\n  'spec.ts',\n  'e2e.ts',\n  'cy.ts',\n  'e2e-spec.ts',\n].map(ext => `.${ext}`);\n\nexport const notNeededForExportFiles = ['routes.ts'].map(ext => `.${ext}`);\n\nexport const frontEndOnly = [\n  ...extTemplatesFiles,\n  ...extForStyles,\n  ...frontendFiles,\n];\n\nexport const appRelatedFiles = [\n  ...extAllowedToReplace.map(ext => `app${ext}`),\n  ...frontendFiles.map(ext => `app${ext}`),\n  'app.models.ts',\n  'app.env.ts',\n  'app.constants.ts',\n  'app.hosts.ts',\n  'app.electron.ts',\n  'app.vscode.ts',\n  'app.mobile.ts',\n  'app.context.ts',\n  'app.worker.ts',\n];\n\nexport const TAGS = {\n  BACKEND: `@${'back' + 'end'}`,\n  BACKEND_FUNC: `@${'back' + 'endFunc'}`,\n  BROWSER: `@${'brow' + 'ser'}`,\n  WEBSQL_ONLY: `@${'web' + 'sqlOnly'}`,\n  WEBSQL: `@${'web' + 'sql'}`,\n  WEBSQL_FUNC: `@${'web' + 'sqlFunc'}`,\n  NOT_FOR_NPM: `@${'not' + 'ForNpm'}`,\n  CUT_CODE_IF_TRUE: '@cutCode' + 'IfTrue',\n  CUT_CODE_IF_FALSE: '@cutCode' + 'IfFalse',\n  COMMENT_REGION: `//${'#reg' + 'ion'}`,\n  COMMENT_END_REGION: `//${'#end' + 'region'}`,\n  APP_TS_GENERATED: `${'@app-ts-gene' + 'rated'}`,\n  APP_TS_PLACEHOLDER_IMPORTS: `${'@place' + 'holder-for-imports'}`,\n  APP_TS_PLACEHOLDER_ROUTES: `${'@place' + 'holder-for-routes'}`,\n  APP_TS_PLACEHOLDER_CONTEXTS_INIT: `${'@place' + 'holder-for-contexts-init'}`,\n};\n\nexport const BaselineSiteJoinprefix = '__';\n\nexport const PREFIXES = {\n  BASELINE: BaselineSiteJoinprefix,\n  DELETED: '____DELETED____',\n  ORIGINAL: '____ORIGINAL____',\n  RESTORE_NPM: '____',\n};\n\nexport namespace FilesNames {\n  export const tmpLastSelectedJsonFile = 'tmp-last-selected.json';\n}\n\nexport const baseTaonDevProjectsNames = [\n  'taon',\n  'taon-simple-org',\n  'taon-storage',\n  'taon-type-sql',\n  'taon-typeorm',\n  'incremental-compiler',\n  'isomorphic-region-loader',\n  'json10',\n  'json10-writer',\n  'lodash-walk-object',\n  'magic-renamer',\n  'ng-talkback',\n  'ng2-logger',\n  'ng2-rest',\n  'ng2-rest-swagger-generator',\n  'node-cli-tester',\n  'record-replay-req-res-scenario',\n  'static-columns',\n  'tnp',\n  'tnp-config',\n  'tnp-core',\n  'tnp-helpers',\n  'tnp-models',\n  'typescript-class-helpers',\n  'vpn-split',\n];\n\nexport const notAllowedNames = [\n  'copyto',\n  'copy',\n  'share',\n  'shared',\n  'melt',\n  'push',\n  'pul',\n  'soft',\n  'pull',\n  'app',\n  'apps',\n  'dist',\n  'bundle',\n  'libs',\n  'lib',\n  'src',\n  'bin',\n  'source',\n  'migrations',\n  'assets',\n  'assets-for',\n  'browser',\n  'websql',\n  'compiled',\n  'docs',\n  '.vscode',\n  'environments',\n  'env',\n  'projects',\n  'plugins',\n  'databases',\n  'routes',\n  'local_release',\n  'solutions',\n  'experiments',\n  '__assets',\n  '_',\n];\n\nexport const notAllowedProjectNames = [\n  // TODO add all npm package names from core container\n  ...notAllowedNames,\n  ...backendNodejsOnlyFiles,\n];\n\nexport const encoding = 'utf8';\n\n/**\n * If building from parent -> output proper name of parent project in errors\n * output when building multiple projects\n */\nexport const taonActionFromParent = 'taon-action-from-parent';\n\nexport const globalSpinner = {\n  get instance(): Pick<\n    ora.Ora,\n    'start' | 'text' | 'succeed' | 'stop' | 'fail'\n  > {\n/* */\n/* */\n    return (void 0);\n  },\n};","//#region imports\nimport 'reflect-metadata';\nimport type { Dirent } from 'fs';\n\nimport { CopyOptionsSync } from 'fs-extra';\n/* */                                                 \n\nimport {\n  dotTaonFolder,\n  dotTnpFolder,\n  encoding,\n  extAllowedToReplace,\n} from './constants';\nimport { path, _, crossPlatformPath, os, json5 } from './core-imports';\nimport { fse } from './core-imports';\nimport { CoreModels } from './core-models';\nimport { UtilsTerminal } from './utils-terminal';\n\nimport { config, Helpers } from './index';\n//#endregion\n\nexport namespace UtilsFilesFoldersSync {\n  //#region utils files folders sync / ignore folder files patterns\n  export const IGNORE_FOLDERS_FILES_PATTERNS = [\n    // '**/node_modules/**/*.*',\n    '**/node_modules/**',\n    // '**/node_modules',\n    // '**/git/**/*.*',\n    '**/.git/**/**',\n    // '**/.git',\n    // `**/${dotTaonFolder}/**/*.*`,\n    `**/${dotTaonFolder}/**`,\n    // `**/${dotTaonFolder}`,\n    // `**/${dotTnpFolder}/**/*.*`,\n    `**/${dotTnpFolder}/**`,\n    // `**/${dotTnpFolder}`,\n    '**/tmp-*',\n    // `**/tmp-*/**/*.*`,\n    '**/tmp-*/**',\n  ];\n  //#endregion\n\n  //#region utils files folders sync / read file\n  export const readFile = (\n    absoluteFilePath: string | string[], // @ts-ignore\n\n    options?: {\n      defaultValueWhenNotExists?: string | undefined;\n      notTrim?: boolean;\n      /**\n       * Default false\n       */\n      readImagesWithoutEncodingUtf8?: boolean;\n      /**\n       * Default false\n       */\n      forceReadWithoutEncodingUtf8?: boolean;\n    },\n  ): string | undefined => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils files folders sync / write file\n  export const writeFile = (\n    absoluteFilePath: string | string[],\n    input: string | object | Buffer,\n    options?: {\n      /**\n       * Default false\n       * by default it will not write the file if the content is exactly the same\n       */\n      overrideSameFile?: boolean;\n      preventParentFile?: boolean;\n      /**\n       * Default false\n       */\n      writeImagesWithoutEncodingUtf8?: boolean;\n      /**\n       * Default false\n       */\n      forceReadWithoutEncodingUtf8?: boolean;\n    },\n  ): boolean => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils files folders sync / get files or folder\n\n  export interface UtilsFilesFoldersSyncGetFilesFromOptions {\n    recursive?: boolean;\n    followSymlinks?: boolean;\n    /**\n     * glob patterns to omit from result\n     */\n    omitPatterns?: string[];\n  }\n\n  //#region utils files folders sync / walk fs tree\n  const walkFsTree = (\n    root: string,\n    options: {\n      recursive: boolean;\n      followSymlinks: boolean;\n      omitPatterns?: string[];\n      onFile?: (path: string) => void;\n      onDirectory?: (path: string) => void;\n    },\n  ): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils files folders sync / get files from\n  /**\n   * return absolute paths for files inside folder or link to folder\n   */\n  export const getFilesFrom = (\n    folderOrLinkToFolder: string | string[],\n    options?: UtilsFilesFoldersSyncGetFilesFromOptions,\n  ): string[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils files and folder sync / get folders from\n  /**\n   * return absolute paths for folders inside folder or link to folder\n   */\n  export const getFoldersFrom = (\n    folderOrLinkToFolder: string | string[],\n    options?: UtilsFilesFoldersSyncGetFilesFromOptions,\n  ): string[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#endregion\n\n  //#region utils files folders sync / copy\n  export const copy = (\n    sourceDir: string | string[],\n    destinationDir: string | string[],\n    options?: {\n      filter?: any;\n      overwrite?: boolean;\n      recursive?: boolean;\n      asSeparatedFiles?: boolean;\n      asSeparatedFilesAllowNotCopied?: boolean;\n      asSeparatedFilesSymlinkAsFile?: boolean;\n      /**\n       * folders to omit: example: ['src','node_modules']\n       *\n       * This option works only with omitFoldersBaseFolder\n       */\n      omitFolders?: string[];\n      /**\n       * absolute path for base folder for omitFolder option\n       */\n      omitFoldersBaseFolder?: string;\n      copySymlinksAsFiles?: boolean;\n      copySymlinksAsFilesDeleteUnexistedLinksFromSourceFirst?: boolean;\n      useTempFolder?: boolean;\n      dontAskOnError?: boolean;\n    } & CopyOptionsSync,\n  ): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils files folders sync / filter dont copy\n  export const filterDontCopy = (\n    basePathFoldersTosSkip: string[],\n    projectOrBasepath: string,\n  ) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils files folders sync / filter only copy\n  export const filterOnlyCopy = (\n    basePathFoldersOnlyToInclude: string[],\n    projectOrBasepath: string,\n  ) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils files folders sync / copy file\n  export const copyFile = (\n    sourcePath: string | string[],\n    destinationPath: string | string[],\n    options?: {\n      transformTextFn?: (input: string) => string;\n      debugMode?: boolean;\n      fast?: boolean;\n      dontCopySameContent?: boolean;\n    },\n  ): boolean => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils files folders sync / move\n  /**\n   * @deprecated use .copy and then .remove on\n   * source folder..\n   *\n   * This method is messing with parcel watcher\n   * (moved files are not detected)\n   */\n  export const move = (\n    from: string,\n    to: string,\n    options?: {\n      purpose?: string; // for logging purposes\n    },\n  ): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n}\n\n/**\n * TODO @LAST @IN_PROGRESS\n * - utils for files and folders operations\n * - export when ready\n * - should be ready for everything async refactor\n */\nexport namespace UtilsFilesFolders {\n  //#region utils files folders / ignore folder files patterns\n  /**\n   * Patterns that should be always ignored\n   */\n  export const IGNORE_FOLDERS_FILES_PATTERNS =\n    UtilsFilesFoldersSync.IGNORE_FOLDERS_FILES_PATTERNS;\n  //#endregion\n\n  //#region utils files folders operations / remove options\n  interface UtilsFilesFoldersOperationsRemoveOptions {\n    recursive?: boolean;\n    waitForUserActionOnError?: boolean;\n  }\n  //#endregion\n\n  //#region utils files folders operations / remove file or folder or link\n  /**\n   * remove file or folder or link\n   */\n  const remove = async (\n    absolutePath: string | string[],\n    options?: UtilsFilesFoldersOperationsRemoveOptions,\n  ): Promise<boolean> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils files folders operations / remove file or folder or link\n  /**\n   * remove file or folder or link\n   */\n  const removeByPattern = async (\n    globPattern: string | string[],\n    options?: UtilsFilesFoldersOperationsRemoveOptions,\n  ): Promise<boolean> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils files folders operations / get files from\n  async function getFilesFromAsync(\n    folderOrLinkToFolder: string | string[],\n    options: {\n      recursive?: boolean;\n      followSymlinks?: boolean;\n    } = {},\n  ): Promise<string[]> {\n    return null;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n      return (void 0);\n  }\n  //#endregion\n\n  //#region utils files folders operations / read file\n  /**\n   * TODO @IN_PROGRESS\n   */\n  const readFileAsync = async (\n    absoluteFilePath: string | string[],\n    options?: {\n      defaultValueWhenNotExists?: string | undefined;\n      notTrim?: boolean;\n    },\n  ): Promise<string | undefined> => {\n    return void 0;\n  };\n  //#endregion\n\n  //#region utils files folders operations / write file\n  type WriteFileAsyncInput =\n    | string\n    | object\n/* */\n/* */\n  \n\n  /**\n   * TODO @IN_PROGRESS\n   */\n  const writeFileAsync = async (\n    absoluteFilePath: string | string[],\n    input: WriteFileAsyncInput,\n    options?: { overrideSameFile?: boolean; preventParentFile?: boolean },\n  ): Promise<boolean> => {\n    return void 0;\n  };\n  //#endregion\n\n  //#region utils files folders operations / is existed symlink\n  /**\n   * TODO @IN_PROGRESS\n   */\n  const isExistedSymlink = async (\n    absoluteFilePath: string | string[],\n  ): Promise<boolean> => {\n    return void 0;\n  };\n  //#endregion\n\n  //#region utils files folders operations / is un existed link\n  /**\n   * TODO @IN_PROGRESS\n   */\n  const isUnExistedLink = async (\n    absoluteFilePath: string | string[],\n  ): Promise<boolean> => {\n    return void 0;\n  };\n  //#endregion\n}","//#region imports\nimport 'reflect-metadata';\nimport * as net from 'net';\nimport { promisify } from 'util';\n\nimport type NotificationCenter from 'node-notifier/notifiers/notificationcenter';\n\nimport { dockerTemplates, dotTaonFolder, taonContainers } from './constants';\nimport { path, _, crossPlatformPath, os, win32Path } from './core-imports';\nimport { child_process } from './core-imports';\nimport { fse } from './core-imports';\nimport { frameworkName } from './framework-name';\nimport { Helpers } from './helpers';\nimport { UtilsProcess } from './utils-process';\nimport { UtilsTerminal } from './utils-terminal';\n//#endregion\n\nexport namespace UtilsOs {\n  //#region utils os / is running in browser\n  /**\n   * check if script is running in client browser\n   * (websql model -> is also considered as browser\n   * because it is running in browser)\n   */\n  export const isRunningInBrowser = (): boolean => {\n/* */\n/* */\n  \n    return true;\n  };\n  //#endregion\n\n  //#region utils os / is running in node\n  /**\n   * check if script is running in nodejs\n   * (backend script or electron script)\n   */\n  export const isRunningInNode = (): boolean => {\n/* */\n/* */\n  \n    return false;\n  };\n  //#endregion\n\n  //#region utils os / is running in websql\n  /**\n   * check if script is running special\n   * browser mode that has sql.js backend\n   * and executes sql queries in browser\n   */\n  export const isRunningInWebSQL = (): boolean => {\n/* */\n/* */\n  \n\n/* */\n/* */\n  \n    return false;\n  };\n  //#endregion\n\n  //#region utils os / is running in ssr mode\n  export const isRunningInSSRMode = (): boolean => {\n    return typeof globalThis.window === 'undefined';\n  };\n  //#endregion\n\n  //#region utils os / is running in electron\n  /**\n   * check whether the current process is running inside\n   * Electron backend or browser.\n   */\n  export const isRunningInElectron = (): boolean => {\n    // Electron main or renderer (most reliable)\n    if (typeof process !== 'undefined' && process?.versions?.electron) {\n      return true;\n    }\n\n    // Renderer with nodeIntegration\n    if (\n      typeof globalThis !== 'undefined' &&\n      (globalThis as any)?.process?.type === 'renderer'\n    ) {\n      return true;\n    }\n\n    // Renderer with nodeIntegration disabled\n    if (\n      typeof navigator === 'object' &&\n      typeof navigator.userAgent === 'string' &&\n      /Electron/i.test(navigator.userAgent)\n    ) {\n      return true;\n    }\n\n    return false;\n  };\n  //#endregion\n\n  //#region utils os / is running in vscode extension\n  /**\n   * Check whether the current process is running inside\n   * a Visual Studio Code extension.\n   */\n  export const isRunningInVscodeExtension = (): boolean => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n    return false;\n  };\n  //#endregion\n\n  //#region utils os / is running in wsl\n  /**\n   * Check wether the current process is running inside\n   * windows subsystem for linux (WSL).\n   */\n  export const isRunningInWsl = (): boolean => {\n    //#region @browser\n    return false;\n    //#endregion\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n      return (void 0);\n  };\n  //#endregion\n\n  //#region utils os / is running in windows / powershell / cmd\n  const getProcessTree = (): Record<\n    number,\n    { pid: number; ppid: number; name: string }\n  > => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  const findAncestorProcessName = (targets: string[]): string | undefined => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  export const isRunningInWindowsPowerShell = (): boolean => {\n    return (\n      findAncestorProcessName(['powershell.exe', 'pwsh.exe']) !== undefined\n    );\n  };\n\n  export const isRunningInWindowsCmd = (): boolean => {\n    return findAncestorProcessName(['cmd.exe']) !== undefined;\n  };\n  //#endregion\n\n  //#region utils os / is running in docker\n  export const isRunningInDocker = (): boolean => {\n    //#region @browser\n    return false;\n    //#endregion\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n      return (void 0);\n  };\n  //#endregion\n\n  //#region utils os / is running in linux graphics capable environment\n  export const isRunningInLinuxGraphicsCapableEnvironment = (): boolean => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils os / is running in os with graphics capable environment\n  export const isRunningInOsWithGraphicsCapableEnvironment = (): boolean => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils os / is running in cli mode\n  /**\n   * Check whether the current process is running in CLI mode.\n   */\n  export const isRunningInCliMode = (): boolean => {\n    //#region @browser\n    return false;\n    //#endregion\n/* */\n/* */\n      return (void 0);\n  };\n  //#endregion\n\n  //#region utils os / is running in mocha test\n  /**\n   * Check whether the current process is running in mocha test.\n   */\n  export const isRunningInMochaTest = (): boolean => {\n    //#region @browser\n    return false;\n    //#endregion\n/* */\n/* */\n/* */\n      return (void 0);\n  };\n  //#endregion\n\n  //#region utils os / is port in use\n  const isPortInUseOnHost = (port: number, host: string): Promise<boolean> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  /**\n   * Checks if a given port is already in use (bound by another process).\n   *\n   * @param port - The port number to check.\n   * @param host - The hostname or IP address to bind to (default: '127.0.0.1').\n   * @returns Promise<boolean> - Resolves to `true` if the port is in use, otherwise `false`.\n   */\n  export const isPortInUse = async (\n    port: number,\n    options?: {\n      /**\n       * '127.0.0.1' etc..\n       */\n      checkForSpecificOnlyHost?: string;\n    },\n  ): Promise<boolean> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils os / is docker available\n  /**\n   * Check if docker is available on this system\n   * and it is running (daemon active)\n   */\n  export const isDockerAvailable = async (): Promise<boolean> => {\n    if (UtilsOs.isBrowser) {\n      return false;\n    }\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n      return (void 0);\n  };\n  //#endregion\n\n  //#region utils os / open folder in file explorer\n  export const openFolderInFileExplorer = (folderPath: string): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n    //#region @browser\n    console.warn(\n      `UtilsOs.openFolderInFileExplorer is not supported in browser mode`,\n    );\n    //#endregion\n  };\n  //#endregion\n\n  //#region utils os / get real home directory\n  export const getRealHomeDir = (): string => {\n    //#region @browser\n    return '';\n    //#endregion\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n      return (void 0);\n  };\n  //#endregion\n\n  //#region utils os / editor\n  export type Editor =\n    | 'code'\n    | 'codium'\n    | 'cursor'\n    | 'theia'\n    | 'idea'\n    | 'idea64';\n\n  export type EditorProcess = `${Editor}` | 'code-oss'; // group alias\n\n  export const EditorArr: Editor[] = [\n    'code',\n    'codium',\n    'cursor',\n    'theia',\n    'idea',\n    'idea64',\n  ];\n  //#endregion\n\n  //#region utils os / editor processes\n  export const EDITOR_PROCESSES: Record<EditorProcess, string[]> = {\n    code: ['code', 'Code'],\n    codium: ['codium', 'VSCodium'],\n    cursor: ['cursor', 'Cursor'],\n    theia: ['theia', 'TheiaIDE'],\n    'code-oss': [\n      'code',\n      'Code',\n      'codium',\n      'VSCodium',\n      'cursor',\n      'Cursor',\n      'theia',\n      'TheiaIDE',\n    ],\n    idea: ['idea', 'idea64', 'IntelliJ IDEA'],\n    idea64: ['idea64', 'idea', 'IntelliJ IDEA'],\n  };\n  //#endregion\n\n  //#region utils os / kill procesesses\n  const killProcesses = (names: string[]) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils os / kill all editors\n  export const killAllEditor = (editor: EditorProcess) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils os / detect editor\n  export const detectEditor = (options?: {\n    fallbackCheckCommandExists?: boolean;\n  }): Editor | undefined => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils os / get editor settings json path\n  export const getEditorSettingsJsonPath = (\n    editor: Editor,\n    platform: NodeJS.Platform = process.platform,\n    env: NodeJS.ProcessEnv = process.env,\n  ): string | undefined => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils os / is running in node debugger\n  export const isRunningNodeDebugger = (): boolean => {\n    //#region @browser\n    return false;\n    //#endregion\n/* */\n/* */\n      return (void 0);\n  };\n  //#endregion\n\n  //#region utils os / is [...]\n  // console.log('kurwa')\n  export const isNodeVersionOk = (options?: {\n    required?: string;\n    log?: boolean;\n    throwErrorIfNotOk?: boolean;\n  }): boolean => UtilsProcess.isNodeVersionOk(options);\n  export const isElectron = isRunningInElectron();\n  export const isBrowser = isRunningInBrowser();\n  export const isNode = isRunningInNode();\n  export const isWebSQL = isRunningInWebSQL();\n  export const isVscodeExtension = isRunningInVscodeExtension();\n  export const isSSRMode = isRunningInSSRMode();\n  let isRunningInWindowsTmp: boolean = false;\n/* */\n/* */\n  \n  export const isRunningInWindows = isRunningInWindowsTmp;\n  //#endregion\n\n  //#region utils os / command exists\n\n  //#region helpers\n  const fileNotExists = async (commandName: string): Promise<boolean> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  const fileNotExistsSync = (commandName: string): boolean => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  const localExecutable = async (commandName: string): Promise<boolean> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  const localExecutableSync = (commandName: string): boolean => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region command exists (Unix / Windows)\n  const commandExistsUnix = async (commandName: string): Promise<boolean> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  const commandExistsWindows = async (\n    commandName: string,\n  ): Promise<boolean> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  const commandExistsUnixSync = (commandName: string): boolean => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  const commandExistsWindowsSync = (commandName: string): boolean => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region exported API\n  export const commandExistsAsync = async (\n    commandName: string,\n  ): Promise<boolean> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  /**\n   * @deprecated use commandExistsAsync\n   */\n  export const commandExistsSync = (commandName: string): boolean => {\n    return isRunningInWindows\n      ? commandExistsWindowsSync(commandName)\n      : commandExistsUnixSync(commandName);\n  };\n  //#endregion\n\n  //#endregion\n\n  //#region utils os / python module exists\n  export const pipxPackageExists = (packageName: string): Promise<boolean> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  export const pipxNestedPackageExists = (\n    mainPackageName: string,\n    targetNestedFromMainPackage: string,\n  ): Promise<boolean> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  const normalizeModuleName = (name: string): string => {\n    return name.replace(/-/g, '_');\n  };\n\n  export const pythonModuleExists = async (\n    moduleName: string,\n    // pythonPath = process.platform === 'win32' ? 'python' : 'python3',\n    pythonPath = 'python3',\n  ): Promise<boolean> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils terminal / draw line\n  export const drawLine = (col = 0) => {\n    //#region @browser\n    const heightBrowserConsole = 20;\n\n    const line = Array.from({ length: heightBrowserConsole })\n      .map(() => '|')\n      .join('\\n');\n\n    console.log(line);\n    //#endregion\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n  };\n\n  //#endregion\n\n  //#region utils os / get inotify watch count (linux)\n  export async function getInotifyWatchCount(): Promise<number> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n  //#endregion\n\n  //#region utils os / send notification\n  export const sendNotification = async (opt: {\n    title: string;\n    body: string;\n    subtitle?: string;\n    appName?: string;\n    iconPath?: string;\n    timeoutMs?: number;\n    doneCallback?: () => any;\n  }) => {\n    //#region prepare  variables\n    const platform = os.platform();\n    const defaultTimeoutMs = 3000;\n\n    opt = _.cloneDeep(opt);\n\n    const consoleNotification = `\n\n> NOTIFICATION\n${opt.appName ?? 'App'} / ${opt.title}\n${opt.subtitle ? opt.subtitle + '\\n' : ''}${opt.body ?? ''}\n\n`;\n    //#endregion\n\n    //#region @browser\n    UtilsOs.drawLine();\n    console.log(consoleNotification);\n    UtilsOs.drawLine();\n    //#endregion\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n  };\n  //#endregion\n}\n\n\nlet taonRepoPathUserInUserDir: string = '';\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n\nconst taonBasePathToGlobalDockerTemplates: string = crossPlatformPath([\n  UtilsOs.getRealHomeDir(),\n  dotTaonFolder,\n  dockerTemplates,\n]);\n\nexport { taonRepoPathUserInUserDir, taonBasePathToGlobalDockerTemplates };","//#region imports\nimport 'reflect-metadata';\nimport { ChildProcess } from 'child_process';\nimport { promisify } from 'util';\n\nimport { debounceTime, EMPTY, from, startWith, switchMap, tap } from 'rxjs';\n\nimport { encoding } from './constants';\nimport { _, crossPlatformPath, fse, os, path } from './core-imports';\nimport { spawn, child_process } from './core-imports';\nimport { CoreModels } from './core-models';\nimport { Helpers } from './helpers';\nimport { Utils } from './utils';\nimport { UtilsExecProc } from './utils-exec-proc';\nimport { UtilsOs } from './utils-os';\n\n//#endregion\n\nexport namespace UtilsProcess {\n  //#region utils process / process start options\n  interface ResolvePromiseMsg {\n    /**\n     * until this string is in output of stdout\n     */\n    stdout?: string | string[];\n    /**\n     * until this string is in output of stderr\n     */\n    stderr?: string | string[];\n    /**\n     * by default only resolve when exit code is 0\n     */\n    resolveAfterAnyExitCode?: boolean;\n  }\n\n  export interface ProcessStartOptions {\n    /**\n     * by default is process.cwd();\n     */\n    cwd?: string;\n    /**\n     * by default is false\n     */\n    showCommand?: boolean;\n    /**\n     * Modify output line by line\n     */\n    outputLineReplace?: (outputLineStderOrStdout: string) => string;\n    resolvePromiseMsg?: ResolvePromiseMsg;\n    /**\n     * Prefix messages output from child_process\n     */\n    prefix?: string;\n    /**\n     * Try command again after fail after n milliseconds\n     */\n    tryAgainWhenFailAfter?: number;\n    askToTryAgainOnError?: boolean;\n    exitOnErrorCallback?: (code: number) => void;\n    /**\n     * Use big buffer for big webpack logs\n     * (it may slow down smaller processes execution)\n     */\n    biggerBuffer?: boolean;\n    hideOutput?: {\n      stdout?: boolean;\n      stderr?: boolean;\n    };\n  }\n  //#endregion\n\n  //#region utils process  / TODO start async\n  /**\n   * TODO IMPLEMENT\n   * start async node process\n   */\n  export const startAsync = async (\n    command: string,\n    cwd: string,\n    // options?: ProcessStartOptions, // TODO change to this\n    options?: Omit<CoreModels.ExecuteOptions, 'tryAgainWhenFailAfter'>,\n  ): Promise<void> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils process  / TODO start sync\n  // /**\n  //  * TODO IMPLEMENT\n  //  */\n  // export function startSync(command: string, options?: ProcessStartOptions) {\n  // TODO @LAST\n  // }\n  //#endregion\n\n  //#region utils process  / start async child process command until\n  /**\n   * This let you start child process and resolve promise when some\n   * condition is met. It is useful for example when you want to start\n   * process and wait until some output is in stdout or stderr.\n   */\n  export const startAsyncChildProcessCommandUntil = async (\n    command: string,\n    options: {\n      /**\n       * tels when to resolve promise\n       */\n      untilOptions: ResolvePromiseMsg;\n      displayOutputInParentProcess?: boolean;\n      resolveAfterAnyExitCode?: boolean;\n      cwd?: string;\n    },\n  ): Promise<void> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils process  / get git bash path\n  export const getGitBashPath = () => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils process  / start process in new graphical terminal window\n  /**\n   * TODO IMPLEMENT\n   * start async node process\n   */\n  export const startInNewTerminalWindow = (\n    command: string,\n    options?: Pick<ProcessStartOptions, 'cwd' | 'hideOutput'>,\n  ) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils process / get bash or shell name\n  export const getBashOrShellName = ():\n    | 'browser'\n    | 'cmd'\n    | 'powershell'\n    | 'gitbash'\n    | 'cygwin'\n    | 'unknown'\n    | 'bash'\n    | 'zsh'\n    | 'fish'\n    | 'sh' => {\n    //#region @browser\n    return 'browser';\n    //#endregion\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n      return (void 0);\n  };\n  //#endregion\n\n  //#region utils process / get current process and child processes usage\n  /**\n   * Get CPU and memory usage for a single PID.\n   */\n  export const getUsageForPid = async (\n    pid: number,\n  ): Promise<{ cpu: number; memoryInGB: number; memoryInMB: number }> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils process / get child PIDs\n  /**\n   * Return a list of direct child PIDs for the given PID on a Unix-like system.\n   * Uses `ps -o pid= --ppid <pid>` to find child processes.\n   */\n  async function getChildPidsUnix(pid: number): Promise<number[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n  //#endregion\n\n  //#region utils process / get child PIDs on Windows\n  /**\n   * Return a list of direct child PIDs for the given PID on Windows.\n   * Uses `wmic process where (ParentProcessId=<pid>) get ProcessId` to find child processes.\n   */\n  async function getChildPidsWindows(pid: number): Promise<number[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n  //#endregion\n\n  //#region utils process / get child PIDs once\n  /**\n   * Cross-platform function to list *direct* child PIDs of a given PID.\n   * Uses the appropriate command depending on `process.platform`.\n   */\n  export async function getChildPidsOnce(pid: number): Promise<number[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n  //#endregion\n\n  //#region utils process / get current process and child usage\n  /**\n   * Get CPU and memory usage for the current process (the Node.js process itself),\n   * plus any child processes spawned by it.\n   */\n  export const getCurrentProcessAndChildUsage = async (): Promise<{\n    current: { cpu: number; memoryInMB: number };\n    children: Array<{ pid: number; cpu: number; memoryInMB: number }>;\n  }> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils process / kill all java processes\n  /**\n   * Kills all running Java processes cross‑platform.\n   * @returns Promise<boolean> true if processes were killed, false if none found\n   */\n  export const killAllJava = async (): Promise<boolean> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils process / kill process by pid or child process\n  export const killProcess = async (\n    pidOrProcess: number | ChildProcess,\n  ): Promise<void> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils process / kill process on port\n  export const killProcessOnPort = async (port: number): Promise<boolean> => {\n    if (!port || isNaN(port) || UtilsOs.isBrowser) {\n      Helpers.warn(\n        `[UtilsProcess.killProcessOnPort]: Invalid port number: ${port}`,\n      );\n      return false;\n    }\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  return (void 0);\n  };\n  //#endregion\n\n  //#region utils process / kill all other node processes except itself\n  /**\n   * Kills all Node.js processes except the current process.\n   * Works on Windows, macOS, and Linux.\n   * @returns {number} Number of processes killed\n   */\n  export const killAllOtherNodeProcesses = async (): Promise<void> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils process / is node version ok\n  export const isNodeVersionOk = (options?: {\n    required?: string;\n    log?: boolean;\n    throwErrorIfNotOk?: boolean;\n  }): boolean => {\n    if (!globalThis || !globalThis.process || !globalThis.process.version) {\n      return false;\n    }\n    options = options || ({} as any);\n    options.required = options.required || '18.0.0';\n    const current = globalThis.process.version.replace(/^v/, '');\n    const [curMajor, curMinor, curPatch] = current.split('.').map(Number);\n    const [reqMajor, reqMinor, reqPatch] = options.required\n      .replace(/^v/, '')\n      .split('.')\n      .map(Number);\n\n    const ok =\n      curMajor > reqMajor ||\n      (curMajor === reqMajor && curMinor > reqMinor) ||\n      (curMajor === reqMajor && curMinor === reqMinor && curPatch >= reqPatch);\n\n    if (options?.log) {\n      console.log(\n        ok\n          ? `✅ Node.js version OK (required ≥ ${options.required}, current ${current})`\n          : `❌ Node.js version too low (required ≥ ${options.required}, current ${current})`,\n      );\n    }\n    if (options?.throwErrorIfNotOk && !ok) {\n      throw new Error(\n        `Node.js version too low (required ≥ ${options.required}, current ${current})`,\n      );\n    }\n\n    return ok;\n  };\n  //#endregion\n\n  export const getPathOfExecutable = async (\n    command: string,\n  ): Promise<string | null> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n}","//#region imports\nimport 'reflect-metadata';\n\nimport { dotTaonFolder } from './constants';\nimport { _, crossPlatformPath, os, chalk, win32Path } from './core-imports';\nimport { spawn, child_process } from './core-imports';\nimport { CoreModels } from './core-models';\nimport { Utils } from './utils';\nimport { UtilsOs } from './utils-os';\nimport { UtilsProcess } from './utils-process';\n\nimport { frameworkName, Helpers } from './index';\n\n//#endregion\n\nexport namespace UtilsTerminal {\n  //#region utils terminal / models\n  export interface SelectChoice {\n    /**\n     * Title of the choice\n     */\n    name?: string;\n    disabled?: boolean;\n  }\n\n  export interface SelectChoiceValue<T = string> extends SelectChoice {\n    value?: T;\n  }\n\n  type SelectActionChoice = {\n    [choice: string]: SelectChoice & {\n      /**\n       * Action to execute\n       */\n      action?: () => any;\n    };\n  };\n  //#endregion\n\n  //#region utils terminal / wait\n  export const wait = (second: number): Promise<void> => Utils.wait(second);\n  //#endregion\n\n  //#region utils terminal / wait milliseconds\n  export const waitMilliseconds = (milliseconds: number): Promise<void> =>\n    Utils.waitMilliseconds(milliseconds);\n  //#endregion\n\n  //#region utils terminal / is verbose mode\n  /**\n   * Check if cli is running in verbose mode\n   * @returns true if cli is running with arugment -verbose\n   */\n  export const isVerboseModeTaon = (): boolean => {\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils terminal / wait for user any key\n  export const waitForUserAnyKey = async (\n    callback: () => void | Promise<void>,\n    options?: {\n      /**\n       * by default, the action is only triggered once when a key is pressed.\n       * if this option is set, the action will be triggered on every key press.\n       * (Promise will not be resolved until process is killed)\n       */\n      triggerActionEveryKeypress?: boolean;\n    },\n  ): Promise<void> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils terminal / get terminal height\n  export const getTerminalHeight = (): number => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils terminal / clear\n  export const clearConsole = (): void => {\n/* */\n/* */\n/* */\n    return (void 0);\n    // TODO @LAST\n    // let shouldClear = true;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n\n    //#region @browser\n    // const isDevToolsOpen = (() => {\n    //   const threshold = 160; // devtools resizing causes this to be larger\n    //   return (\n    //     window.outerHeight - window.innerHeight > threshold ||\n    //     window.outerWidth - window.innerWidth > threshold\n    //   );\n    // })();\n\n    // if (isDevToolsOpen) {\n    //   shouldClear = false;\n    // }\n    //#endregion\n    // if (shouldClear) {\n    // Helpers.msgCacheClear?.();\n    // console.clear?.();\n    // }\n    // console.log('\\x1Bc');\n    // process.stdout.write('\\033c\\033[3J');\n    // try {\n    //   run('clear').sync()\n    // } catch (error) {\n    //   console.log('clear console not succedd')\n    // }\n  };\n  //#endregion\n\n  //#region utils terminal / transform choices\n  const transformChoices = (choices: any): SelectChoiceValue[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils terminal / multiselect\n  export const multiselect = async <T = string>(options: {\n    question?: string;\n    /**\n     * If true, then only one choice can be selected\n     * @deprecated use select instead\n     */\n    onlyOneChoice?: boolean;\n    choices: SelectChoiceValue<T>[] | { [choice: string]: SelectChoice };\n    autocomplete?: boolean;\n    /**\n     * at least one choice must be selected\n     */\n    required?: boolean;\n    defaultSelected?: string[];\n  }): Promise<T[]> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils terminal / multiselect and execute\n  /**\n   * Similar to select but executes action if provided\n   * @returns selected and executed value\n   */\n  export const multiselectActionAndExecute = async <\n    CHOICE extends SelectActionChoice = SelectActionChoice,\n  >(\n    choices: CHOICE,\n    options?: {\n      question?: string;\n      autocomplete?: boolean;\n      defaultSelected?: string;\n      hint?: string;\n      executeActionsOnDefault?: boolean;\n    },\n  ) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils terminal / select and execute\n  /**\n   * Similar to select but executes action if provided\n   * @returns selected and executed value\n   */\n  export const selectActionAndExecute = async <\n    CHOICE extends SelectActionChoice = SelectActionChoice,\n  >(\n    choices: CHOICE,\n    options?: {\n      question?: string;\n      autocomplete?: boolean;\n      defaultSelected?: string;\n      hint?: string;\n      executeActionOnDefault?: boolean;\n    },\n  ) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils terminal / select\n  export const select = async <T = string>(options: {\n    question?: string;\n    choices: SelectChoiceValue<T>[] | { [choice: string]: SelectChoice };\n    autocomplete?: boolean;\n    defaultSelected?: string;\n    hint?: string;\n  }): Promise<T | undefined> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  //#endregion\n\n  //#region utils terminal / pipe enter to stdin\n  export const pipeEnterToStdin = (): void => {\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils terminal / input\n  export const input = async ({\n    defaultValue,\n    question,\n    required,\n    validate,\n  }: {\n    defaultValue?: string;\n    question: string;\n    required?: boolean;\n    validate?: (value: string) => boolean;\n  }): Promise<string> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils terminal / confirm\n  export const confirm = async (options?: {\n    /**\n     * default: Are you sure?\n     */\n    message?: string;\n    callbackTrue?: () => any;\n    callbackFalse?: () => any;\n    /**\n     * default: true\n     */\n    defaultValue?: boolean;\n    engine?: 'inquirer-toggle' | 'prompts' | 'enquirer' | '@inquirer/prompts';\n  }) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils terminal / press any key to continue\n  export const pressAnyKeyToContinueAsync = (options?: {\n    message?: string;\n  }): Promise<void> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region press key and continue\n  /**\n   * @deprecated use UtilsTerminal.pressAnyKey\n   */\n  export const pressKeyAndContinueSync = (\n    message = 'Press enter to continue..',\n  ) => {\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils terminal / press any key to try again error occurred\n  /**\n   * @returns true if user wants to try again, false otherwise\n   */\n  export const pressAnyKeyToTryAgainErrorOccurred = async (\n    error: unknown,\n  ): Promise<boolean> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils terminal / press any key\n  /**\n   * @deprecated use UtilsTerminal.pressAnyKeyToContinueAsync()\n   */\n  export const pressAnyKey = (options?: { message?: string }) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils terminal / preview long list as select\n  export const previewLongList = async (\n    list: string | string[],\n    listName = 'List',\n  ): Promise<void> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils terminal / preview long list with 'less' (git log like)\n  /**\n   * Displays a long list in the console using a pager like `less`.\n   * Returns a Promise that resolves when the user exits the pager.\n   *\n   * @param {string} list - The long string content to display.\n   * @returns {Promise<void>} A Promise that resolves when the pager exits.\n   */\n  export const previewLongListGitLogLike = async (\n    list: string | string[],\n  ): Promise<void> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils terminal / draw big text\n  export const drawBigText = async (\n    text: string,\n    options?: {\n      skipDrawing?: boolean;\n      align?: CoreModels.CfontAlign;\n      style?: CoreModels.CfontStyle;\n    },\n  ): Promise<string> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils terminal / configure bash or shell\n  /**\n   * @TODO @IN_PROGRESS\n   * - export when done\n   * Configure bash or powershell prompt to show current folder and git branch\n   */\n  const configureBashOrShell = async (): Promise<void> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils terminal / draw line\n  export const drawLine = (col = 0) => {\n    UtilsOs.drawLine(col);\n  };\n\n  //#endregion\n}","//#region imports\n/* */                                      \nimport type { ChildProcess } from 'child_process';\n\n/* */                                                 \nimport { Subject, Subscription } from 'rxjs'; // @browser\n\nimport { encoding } from './constants';\n/* */    \n/* */  \n/* */ \n/* */     \n/* */            \n/* */    \n/* */         \n/* */    \n/* */        \n/* */   \n/* */    \n/* */                                \nimport { json5 } from './core-imports';\nimport { _, path, crossPlatformPath } from './core-imports';\nimport { CoreModels } from './core-models';\n/* */                                                     \nimport { UtilsJson } from './utils';\nimport { UtilsFilesFoldersSync } from './utils-files-folders';\nimport { UtilsProcess } from './utils-process';\nimport { UtilsTerminal } from './utils-terminal';\n\nimport { frameworkName, PROGRESS_DATA, Utils, UtilsOs } from './index';\n//#endregion\n\n//#region constants\ndeclare const global: any;\n\nconst WEBSQL_PROC_MOCK_PROCESSES_PID = {};\nconst WEBSQL_PROC_MOCK_PROCESSES_PPID = {};\n\nconst KEY = {\n  LAST_ERROR: Symbol(),\n  LAST_INFO: Symbol(),\n  LAST_WARN: Symbol(),\n  LAST_LOG: Symbol(),\n  LAST_SUCCESS: Symbol(),\n  LAST_TASK_STARTED: Symbol(),\n  LAST_TASK_DONE: Symbol(),\n};\nconst KEY_COUNT = {\n  LAST_ERROR: Symbol(),\n  LAST_INFO: Symbol(),\n  LAST_WARN: Symbol(),\n  LAST_LOG: Symbol(),\n  LAST_SUCCESS: Symbol(),\n  LAST_TASK_STARTED: Symbol(),\n  LAST_TASK_DONE: Symbol(),\n};\nconst KEY_IMPORTANTCE = {\n  LAST_ERROR: Symbol(),\n  LAST_INFO: Symbol(),\n  LAST_WARN: Symbol(),\n  LAST_LOG: Symbol(),\n  LAST_SUCCESS: Symbol(),\n  LAST_TASK_STARTED: Symbol(),\n  LAST_TASK_DONE: Symbol(),\n};\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \nconst LIMIT = 10;\n//#endregion\n\n//#region models\nexport interface RunSyncOrAsyncOptions {\n  functionFn: Function;\n  context?: object;\n  arrayOfParams?: any[];\n}\nexport interface CommandOutputOptions {\n  biggerBuffer?: boolean;\n  showOnlyLastLine?: boolean;\n  showStder?: boolean;\n  gatherColors?: boolean;\n  showErrorWarning?: boolean;\n}\n//#endregion\n\nexport namespace Helpers {\n  export const getIsBrowser = () => {\n    return UtilsOs.isRunningInBrowser();\n  };\n  export const getIsWebSQL = () => {\n    return UtilsOs.isRunningInWebSQL();\n  };\n  export const getIsNode = () => {\n    return UtilsOs.isRunningInNode();\n  };\n  export const getIsElectron = () => {\n    return UtilsOs.isRunningInElectron();\n  };\n  export const contain = (arr: any[], item: any): boolean => {\n    return (\n      arr.filter(l => {\n        if (l instanceof RegExp) {\n          return l.test(item);\n        }\n        if (l === item) {\n          return true;\n        }\n        if (\n          item.match && typeof item.match === 'function' ? item.match(l) : false\n        ) {\n          return true;\n        }\n        return false;\n      }).length > 0\n    );\n  };\n\n  //#region transformData\n  /**\n   * @param details any data to be transformed\n   * @returns string ready to be displayed\n   */\n  const transformData = (details: any): string => {\n    if (typeof details === 'object') {\n      // if (Array.isArray(details)) {\n      //   return details.join('\\n');\n      // }\n      try {\n        const json = JSON.stringify(details, null, 2);\n        details = json;\n      } catch (error) {\n        return details;\n      }\n    }\n    return details;\n  };\n  //#endregion\n\n  export const msgCacheClear = () => {\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n  };\n  export const renderError = (err: Error) => {\n    if (Helpers.getIsBrowser()) {\n      // TODO for FE\n      console.error(err);\n    } else {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n    }\n  };\n  export const throwError = (details: string) => {\n    throw new Error(details);\n  };\n  export const stopApplication = (details: string) => {\n    if (Helpers.getIsBrowser()) {\n      //#region @browser\n      document.body.innerHTML =\n        '<h1>Application has encountered an error and stopped.</h1>';\n      document.body.style.pointerEvents = 'none';\n      //#endregion\n/* */\n/* */\n/* */\n/* */\n  \n    }\n    throw new Error(details);\n  };\n  export const tryCatchError = (error: any) => {\n    Helpers.error(error, true, true);\n  };\n  export const error = (details: any, noExit = false, noTrace = false) => {\n    //#region browser mode\n    if (Helpers.getIsBrowser()) {\n      console.error(details);\n      return;\n    }\n    //#endregion\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n  };\n  export const info = (details: string, repeatable = false) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n    if (Helpers.getIsBrowser()) {\n      console.info(details);\n      return;\n    }\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n  };\n  export const success = (details: any | string) => {\n    if (Helpers.getIsBrowser()) {\n      console.info(details);\n      return;\n    }\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n  };\n  export const taskStarted = (\n    details: any | string,\n    isLogTask: boolean = false,\n  ) => {\n    if (Helpers.getIsBrowser()) {\n      console.info(details);\n      return;\n    }\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n  };\n  export const taskDone = (details?: any | string, isLessImportant = false) => {\n    if (Helpers.getIsBrowser()) {\n      console.info(details);\n      return;\n    }\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n  };\n  export const getIsVerboseMode = () => {\n    //#region @browser\n    return true; // TODO what it means in browser\n    //#endregion\n/* */\n/* */\n  \n  };\n  export const log = (\n    details: any,\n    debugLevel = 0,\n    skipVisibleConditionChecking = false,\n  ) => {\n    if (Helpers.getIsBrowser()) {\n      console.log(details);\n      return;\n    }\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n  };\n  export const logSuccess = (details: any | string) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  export const logInfo = (details: string, repeatable = false) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  export const logError = (details: any, noExit = false, noTrace = false) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  export const logWarn = (details: string, trace = false) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  export const warn = (details: string, trace = false) => {\n    if (Helpers.getIsBrowser()) {\n      console.warn(details);\n      return;\n    }\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n  };\n\n  const processes = [];\n  export const bigMaxBuffer = 2024 * 500;\n\n  export const getIsWsl = () => {\n    return UtilsOs.isRunningInWsl();\n  };\n  export const isRunningInDocker = () => {\n    return UtilsOs.isRunningInDocker();\n  };\n  export const isRunningInLinuxGraphicsCapableEnvironment = () => {\n    return UtilsOs.isRunningInLinuxGraphicsCapableEnvironment();\n  };\n  export const clearConsole = () => {\n    return UtilsTerminal.clearConsole();\n  };\n  export const mediaTypeFromSrc = (src: string): CoreModels.MediaType => {\n    const ext = path.extname(src);\n    const media = CoreModels.mimeTypes[ext];\n    return _.first(media?.split('/'));\n  };\n\n  /**\n   * @deprecated use async Utils.wait\n   *\n   * Helpers.sleep(2)  => await Utils.wait(2)\n   */\n  export const sleep = (seconds = 1) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  export const removeIfExists = (\n    absoluteFileOrFolderPath: string | string[],\n  ) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  export const relative = (cwd: string, to: string) => {\n    return crossPlatformPath(path.relative(cwd, to));\n  };\n  export const removeFileIfExists = (absoluteFilePath: string | string[]) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  export const removeFolderIfExists = (\n    absoluteFolderPath: string | string[],\n  ) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  /**\n   * leave max 1 empty line\n   */\n  export const removeEmptyLineFromString = (str: string) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  /**\n   * @deprecated\n   */\n  export const tryRemoveDir = (\n    dirpath: string,\n    contentOnly = false,\n    omitWarningNotExisted = false,\n  ) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  export const removeSymlinks = (\n    dirPath: string | string[],\n    options?: {\n      dryRun?: boolean;\n    },\n  ): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  export const remove = (\n    fileOrFolderPathOrPatter: string | string[],\n    exactFolder = false,\n  ) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  export const cleanExit = () => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  export const getIsRunningInGitBash = () => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  /**\n   * Check if the current shell is supported by Taon framework.\n   */\n  export const getIsSupportedTaonTerminal = () => {\n    //#region @browser\n    return false;\n    //#endregion\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n      return (void 0);\n  };\n\n  /**\n   * check if function is class\n   */\n  export const isClass = (funcOrClass: any): boolean => {\n    let isClass = false;\n    if (typeof funcOrClass === 'function') {\n      // Check if it has a prototype property\n      // console.log('Object.getOwnPropertyNames(funcOrClass.prototype)', Object.getOwnPropertyNames(funcOrClass.prototype).filter(f => f !== 'constructor'))\n      isClass =\n        !!funcOrClass.prototype &&\n        Object.getOwnPropertyNames(funcOrClass.prototype).filter(\n          f => f !== 'constructor',\n        ).length > 0;\n    }\n    // console.log('is class: ' + isClass, funcOrClass)\n    return isClass;\n  };\n\n  /**\n   * check if data is nodejs/browser blob\n   *\n   * @param maybeBlob\n   */\n  export const isBlob = (maybeBlob): maybeBlob is Blob => {\n    // TODO is this needed hmmmm\n    return maybeBlob instanceof Blob; // || toString.call(maybeBlob) === '[object Blob]';\n  };\n\n  /**\n   * Check if data is nodejs buffer\n   *\n   * @param maybeNodejsBuffer\n   * @returns\n   */\n  export const isBuffer = (maybeNodejsBuffer): maybeNodejsBuffer is Buffer => {\n    return Buffer.isBuffer(maybeNodejsBuffer);\n  };\n  export const removeSlashAtEnd = (s: string): string => {\n    s = s?.endsWith(`/`) ? s.slice(0, s.length - 1) : s;\n    return s;\n  };\n  export const removeSlashAtBegin = (s: string): string => {\n    s = s?.startsWith(`/`) ? s.slice(1) : s;\n    return s;\n  };\n  export const stringify = (inputObject: any): string => {\n    // if (_.isString(inputObject)) {\n    //   return inputObject;\n    // }\n    // if (_.isObject(inputObject)) {\n    //   config.log(inputObject)\n    //   Helpers.error(`[tnp-helpers] trying to stringify not a object`, false, true);\n    // }\n    return JSON.stringify(inputObject, null, 2);\n  };\n\n  /**\n   * @deprecated\n   */\n  export const runSyncOrAsync = async (\n    fnOrOptions: RunSyncOrAsyncOptions,\n  ): Promise<any> => {\n    if (_.isUndefined(fnOrOptions)) {\n      return void 0 as any;\n    }\n    let promisOrValue: any;\n    // const optionsMode = _.isObject(fnOrOptions)\n    //   && !_.isArray(fnOrOptions)\n    //   && !_.isFunction(fnOrOptions)\n    //   && !_.isNil(fnOrOptions)\n    //   ;\n    // if (optionsMode) {\n    const { functionFn, context, arrayOfParams } = fnOrOptions;\n    promisOrValue = functionFn.apply(context, arrayOfParams);\n    // } else {\n    //   // @ts-ignore\n    //   promisOrValue = _.isArray(fnOrOptions) ? fnOrOptions[1][fnOrOptions[0]](...firstArg) : fnOrOptions(...firstArg);\n    // }\n    // let wasPromise = false;\n    if (promisOrValue instanceof Promise) {\n      // wasPromise = true;\n      promisOrValue = Promise.resolve(promisOrValue);\n    }\n    // console.log('was promis ', wasPromise)\n    return promisOrValue;\n  };\n  export const createSymLink = (\n    existedFileOrFolder: string,\n    destinationPath: string,\n    options?: {\n      /**\n       * try to remove destination path before create link\n       */\n      tryRemoveDesPath?: boolean;\n      /**\n       * if folder doesn't exist, just continue\n       */\n      continueWhenExistedFolderDoesntExists?: boolean;\n      /**\n       * create windows hard link instead of symlink\n       */\n      windowsHardLink?: boolean;\n      /**\n       * don't rename destination path when slash at the end\n       */\n      dontRenameWhenSlashAtEnd?: boolean;\n      allowNotAbsolutePathes?: boolean;\n      /**\n       * only if you know that symlink can be created\n       */\n      speedUpProcess?: boolean;\n    },\n  ): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  export const createFolder = (folderPath: string | string[]): void => {\n    return Helpers.mkdirp(folderPath);\n  };\n  export const mkdirp = (folderPath: string | string[]): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  /**\n   * symlink may have existed or unexisted destiantion url\n   */\n  export const isSymlinkThatMatchesUrl = (\n    possibleSymlink: string,\n    destUrl: string,\n    absoluteFileMatch = false,\n  ): boolean => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  export const isSymlinkFileExitedOrUnexisted = (\n    filePath: string | string[],\n  ): boolean => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  /**\n   * If symbolnk link that target file does not exits\n   */\n  export const isUnexistedLink = (filePath: string | string[]): boolean => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  /**\n   * @param existedLink check if source of link exists\n   */\n  export const isExistedSymlink = (filePath: string | string[]): boolean => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  export const pathContainLink = (p: string) => {\n    let previous: string;\n    while (true) {\n      p = crossPlatformPath(path.dirname(p));\n      // @ts-ignore\n      if (p === previous) {\n        return false;\n      }\n      if (Helpers.isExistedSymlink(p)) {\n        return true;\n      }\n      if (!Helpers.exists(p)) {\n        return false;\n      }\n      previous = p;\n    }\n  };\n  export const exists = (folderOrFilePath: string | string[]) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  /**\n   * TODO QUICK_FIX this is HACK for running procesess inside processes\n   */\n  export const _fixCommand = (command: string): string => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  export const command = (command: string) => {\n    // console.log({ command })\n    command = Helpers._fixCommand(command);\n    return {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n    };\n  };\n\n  /**\n   * @deprecated use UtilsTerminal.wait\n   */\n  export const wait = async (second: number): Promise<void> => {\n    await UtilsTerminal.wait(second);\n  };\n  export const timeout = async (seconds: number): Promise<void> => {\n    await Helpers.wait(seconds);\n  };\n  export const commandOutputAsStringAsync = async (\n    command: string,\n    cwd = crossPlatformPath(process.cwd()),\n    options?: CommandOutputOptions,\n  ): Promise<string> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  export const commandOutputAsString = (\n    command: string,\n    cwd = crossPlatformPath(process.cwd()),\n    options?: CommandOutputOptions,\n  ): string => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  /**\n   * @deprecated use UtilsProcess.killProcessOnPort\n   */\n  export const killProcessByPort = async (\n    portOrPortsToKill: number | number[],\n    options?: {\n      silent?: boolean;\n    },\n  ) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  export const killOnPort = async (\n    portOrPortsToKill: number | number[],\n    options?: {\n      silent?: boolean;\n    },\n  ) => {\n    return await Helpers.killProcessByPort(portOrPortsToKill, options);\n  };\n\n  /**\n   * @deprecated use UtilsProcess.killProcess\n   */\n  export const killProcess = (byPid: number) => {\n/* */\n/* */\n  \n/* */\n/* */\n/* */\n  \n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n  };\n\n  //#region methods / run\n  /**\n   * @deprecated use UtilsProcess\n   * or native child_process exec, spawn\n   */\n  export const run = (command: string, options?: CoreModels.RunOptions) => {\n    command = Helpers._fixCommand(command);\n    // console.log({ command })\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n    return {\n      /**\n       * start command as synchronous nodej proces\n       */\n      sync() {\n        // TODO buffer\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n          return (void 0);\n      },\n      /**\n       * start command as asynchronous nodej proces\n       * @param detach (default: false) - if true process will be detached\n       */\n      async(\n        detach = false,\n        mockFun?: (\n          stdoutCallback: (dataForStdout: any) => any,\n          stdErrcCallback: (dataForStder: any) => any,\n          shouldProcesBeDead?: () => boolean,\n        ) => Promise<number> | number,\n      ): ChildProcess {\n        //#region @browser\n        if (mockFun) {\n          const subStdoutSub = new Subject();\n          const subStderSub = new Subject();\n          const exitSub = new Subject();\n          const subscribtions: Subscription[] = [];\n          const procDummy = {\n            stdout: {\n              on(action: 'data', stdoutCallback: any) {\n                if (action == 'data') {\n                  subscribtions.push(\n                    subStdoutSub.subscribe(d => {\n                      stdoutCallback(d);\n                    }),\n                  );\n                }\n              },\n            },\n            stderr: {\n              on(action: 'data', stdoutCallback: any) {\n                if (action == 'data') {\n                  subscribtions.push(\n                    subStderSub.subscribe(d => {\n                      stdoutCallback(d);\n                    }),\n                  );\n                }\n              },\n            },\n            on(action: 'exit', exitFun: any) {\n              if (action == 'exit') {\n                subscribtions.push(\n                  exitSub.subscribe(d => {\n                    exitFun(d);\n                  }),\n                );\n              }\n            }, // @ts-ignore\n            ppid: void 0 as number, // @ts-ignore\n            pid: void 0 as number,\n          };\n          procDummy.pid = Math.round(Math.random() * (1000 - 100)) + 100;\n          procDummy.ppid = procDummy.pid + 9999;\n          WEBSQL_PROC_MOCK_PROCESSES_PID[procDummy.pid] = procDummy;\n          if (!WEBSQL_PROC_MOCK_PROCESSES_PPID[procDummy.ppid]) {\n            WEBSQL_PROC_MOCK_PROCESSES_PPID[procDummy.ppid] = {\n              childProcesses: [],\n            };\n          }\n          WEBSQL_PROC_MOCK_PROCESSES_PPID[procDummy.ppid].childProcesses.push(\n            procDummy.pid,\n          );\n          const checkIfProcessShouldBeDead = () => {\n            return (\n              _.isNil(WEBSQL_PROC_MOCK_PROCESSES_PID[procDummy.pid]) ||\n              _.isNil(WEBSQL_PROC_MOCK_PROCESSES_PPID[procDummy.ppid])\n            );\n          };\n          const f = Helpers.runSyncOrAsync({\n            functionFn: mockFun,\n            arrayOfParams: [\n              d => {\n                setTimeout(() => {\n                  subStdoutSub.next(d);\n                });\n              },\n              d => {\n                setTimeout(() => {\n                  subStderSub.next(d);\n                });\n              },\n              () => {\n                const shouldBeDead = checkIfProcessShouldBeDead();\n                return shouldBeDead;\n              },\n            ],\n          });\n          f.then(exitCode => {\n            if (_.isNil(exitCode)) {\n              exitCode = 0;\n            }\n            setTimeout(() => {\n              exitSub.next(exitCode);\n              subscribtions.forEach(s => s.unsubscribe());\n            });\n          }).catch((e: unknown) => {\n            console.error(e);\n            console.error(`Something wrong with your mock funciton`);\n            exitSub.next(1);\n            subscribtions.forEach(s => s.unsubscribe());\n          });\n          return procDummy as any;\n        }\n        //#endregion\n\n/* */\n/* */\n/* */\n/* */\n  return (void 0);\n      },\n      /**\n       * start command as asynchronous nodej proces inside promise\n       */\n      asyncAsPromise(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n        return (void 0);\n      },\n      unitlOutput(optionsOutput: {\n        stdoutMsg: string | string[];\n        stderMsg?: string | string[];\n        timeout?: number;\n        stdoutOutputContainsCallback?: () => any;\n        outputLineReplace?: (outputLine: string) => string;\n      }): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n        return (void 0);\n      },\n      /**\n       * @deprecated use unitlOutput\n       * start command as asynchronous nodej proces inside promise\n       * and wait until output contains some string\n       */\n      unitlOutputContains(\n        stdoutMsg: string | string[],\n        stderMsg?: string | string[],\n        timeout = 0,\n        stdoutOutputContainsCallback?: () => any,\n      ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n        return (void 0);\n      },\n    };\n  };\n\n  /**\n   * @deprecated use UtilsTerminal.confirm\n   */\n  export const questionYesNo = async (\n    message: string,\n    callbackTrue?: () => any,\n    callbackFalse?: () => any,\n    defaultValue = true,\n  ) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  export const getStdio = (options?: CoreModels.RunOptions) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  export const runSyncIn = (\n    command: string,\n    options?: CoreModels.RunOptions,\n  ) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  export const runAsyncIn = (\n    command: string,\n    options?: CoreModels.RunOptions,\n  ) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  export const logProc = (\n    proc: ChildProcess,\n    output = true,\n    stdio,\n    outputLineReplace: (outputLine: string) => string,\n    prefix: string,\n    extractFromLine?: (string | Function)[],\n  ) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  /**\n   * @deprecated use UtilsProcess.startAsync\n   */\n  export const execute = (\n    command: string,\n    cwd: string,\n    options?: Omit<CoreModels.ExecuteOptions, 'tryAgainWhenFailAfter'>,\n  ) => {\n    return UtilsProcess.startAsync(command, cwd, options);\n  };\n\n  /**\n   * @deprecated\n   */\n  export const checkProcess = (dirPath: string, command: string) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  export const modifyLineByLine = (\n    data: string | Buffer | Error,\n    outputLineReplace: (outputLine: string) => string,\n    prefix: string,\n    extractFromLine?: (string | Function)[],\n  ): string => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  export const isFolder = (pathToFileOrMaybeFolder: string): boolean => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  /**\n   * Quick fix for object values\n   * @deprecated\n   */\n  export const values = (obj: any) => {\n    if (_.isObject(obj) && !Array.isArray(obj)) {\n      const values = [];\n      for (const key in obj) {\n        if (Object.prototype.hasOwnProperty.call(obj, key)) {\n          // @ts-ignore\n          values.push(obj[key]);\n        }\n      }\n      return values;\n    }\n    return [];\n  };\n\n  /**\n   * does not make sense\n   * @deprecated\n   */\n  export const isFile = (pathToFileOrMaybeFolder: string) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  export const tryReadFile = async (\n    absoluteFilePath: string | string[], // @ts-ignore\n    defaultValueWhenNotExists = void 0 as string,\n    notTrim = false,\n  ): Promise<string | undefined> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  /**\n   * @deprecated use UtilsFilesFoldersSync.readFile\n   * wrapper for fs.readFileSync\n   */\n  export const readFile = (\n    absoluteFilePath: string | string[], // @ts-ignore\n    defaultValueWhenNotExists = void 0 as string,\n    notTrim = false,\n  ): string | undefined => {\n    return UtilsFilesFoldersSync.readFile(absoluteFilePath, {\n      defaultValueWhenNotExists,\n      notTrim,\n    });\n  };\n\n  /**\n   * @deprecated use UtilsJson.readJson or UtilsJson.readJson5\n   */\n  export const readJson = (\n    absoluteFilePath: string | string[],\n    defaultValue = {},\n    useJson5 = false,\n  ): any => {\n    return UtilsJson.readJson(absoluteFilePath, defaultValue, useJson5);\n  };\n\n  /**\n   * @deprecated use UtilsJson.readJsonWithComments\n   */\n  export const readJson5 = (\n    absoluteFilePath: string | string[],\n    defaultValue: any = {},\n  ): any => {\n    return UtilsJson.readJsonWithComments(absoluteFilePath, defaultValue);\n  };\n\n  /**\n   * @deprecated use UtilsJson.readJsonWithComments\n   */\n  export const readJsonC = (\n    absoluteFilePath: string | string[],\n    defaultValue: any = {},\n  ): any => {\n    return UtilsJson.readJsonWithComments(absoluteFilePath, defaultValue);\n  };\n\n  /**\n   * parse json from string\n   * @returns parse json object\n   */\n  export const parse = <T = any>(\n    jsonInstring: string,\n    useJson5 = false,\n  ): T | undefined => {\n    if (!_.isString(jsonInstring)) {\n      Helpers.log(jsonInstring);\n      Helpers.warn(`[taon-core] Trying to parse no a string...`);\n      return jsonInstring;\n    }\n    return (\n      useJson5 ? json5.parse(jsonInstring) : JSON.parse(jsonInstring)\n    ) as T;\n  };\n\n  export const replaceLinesInFile = (\n    absoluteFilePath: string | string[],\n    lineReplaceFn: (line: string) => string,\n  ) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n  };\n\n  /**\n   * @deprecated use UtilsFilesFoldersSync.writeFile\n   * wrapper for fs.writeFileSync\n   */\n  export const writeFile = (\n    absoluteFilePath: string | string[],\n    input: string | object | Buffer,\n    options?: {\n      overrideSameFile?: boolean;\n      preventParentFile?: boolean;\n    },\n  ): boolean => {\n    return UtilsFilesFoldersSync.writeFile(absoluteFilePath, input, options);\n  };\n\n  /**\n   * wrapper for fs.writeFileSync\n   */\n  export const writeJson = (\n    absoluteFilePath: string | string[],\n    input: object,\n    optoins?: {\n      preventParentFile?: boolean;\n      writeJson5?: boolean;\n    },\n  ): boolean => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  export const writeJson5 = (\n    absoluteFilePath: string | string[],\n    input: object,\n  ) => {\n    return Helpers.writeJson(absoluteFilePath, input, { writeJson5: true });\n  };\n  export const writeJsonC = (\n    absoluteFilePath: string | string[],\n    input: object,\n  ) => {\n    return writeJson5(absoluteFilePath, input);\n  };\n\n  /**\n   * return absolute paths for folders inside folders\n   * @returns absoulte pathes to folders from path\n   */\n  export const foldersFrom = (\n    pathToFolder: string | string[],\n    options?: {\n      recursive?: boolean;\n      omitRootFolders?: string[];\n      omitRootFoldersThatStartWith?: string[];\n    },\n  ): string[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  /**\n   * @returns absolute pathes to links from path\n   */\n  export const linksToFoldersFrom = (\n    pathToFolder: string | string[],\n    outputRealPath: boolean = false,\n  ): string[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  /**\n   * @returns absolute paths for folders inside folders\n   */\n  export const linksToFolderFrom = (\n    pathToFolder: string | string[],\n  ): string[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  /**\n   * @deprecated use UtilsFilesFoldersSync.getFilesFrom\n   * return absolute paths for files inside folder or link to folder\n   */\n  export const getFilesFrom = (\n    folderOrLinkToFolder: string | string[],\n    options?: UtilsFilesFoldersSync.UtilsFilesFoldersSyncGetFilesFromOptions,\n  ): string[] => {\n    return UtilsFilesFoldersSync.getFilesFrom(folderOrLinkToFolder, options);\n  };\n\n  /**\n   * @deprecated use UtilsFilesFoldersSync.getFoldersFrom\n   * return absolute paths for folders inside folder or link to folder\n   */\n  export const getFoldersFrom = (\n    folderOrLinkToFolder: string | string[],\n    options?: UtilsFilesFoldersSync.UtilsFilesFoldersSyncGetFilesFromOptions,\n  ): string[] => {\n    return UtilsFilesFoldersSync.getFoldersFrom(folderOrLinkToFolder, options);\n  };\n\n  /**\n   * @deprecated use UtilsFilesFoldersSync.filesFrom\n   * return absolute paths for folders inside folders\n   */\n  export const filesFrom = (\n    pathToFolder: string | string[],\n    recrusive: boolean = false,\n    incudeUnexistedLinks: boolean = false,\n  ): string[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  /**\n   * @deprecated use UtilsOs.openFolderInFileExplorer\n   * @param folderPath\n   */\n  export const openFolderInFileExplorer = (folderPath: string): void => {\n    UtilsOs.openFolderInFileExplorer(folderPath);\n  };\n  export const hideNodeWarnings = () => {\n/* */\n/* */\n/* */\n  \n  };\n}","import { _ } from './core-imports';\nimport { CoreModels } from './core-models';\nimport { Helpers } from './helpers';\n\n/* */\n/* */\n  \n\nexport interface IPROGRESS_DATA {\n  /**\n   * How man percent of\n   */\n  value?: number;\n  msg?: string;\n  type?: CoreModels.PROGRESS_DATA_TYPE;\n  date?: Date;\n}\n\nexport class PROGRESS_DATA implements IPROGRESS_DATA {\n  public static log(log: IPROGRESS_DATA) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n  }\n\n  public static resolveFrom(\n    chunk: string,\n    callbackOnFounded?: (json: PROGRESS_DATA) => any,\n    checkSplit = true,\n  ): PROGRESS_DATA[] {\n    let progress;\n    let res: PROGRESS_DATA[] = [];\n    if (!_.isString(chunk)) {\n      return [];\n    }\n    chunk = chunk.trim();\n\n    if (checkSplit) {\n      const split = chunk.split(/\\r\\n|\\n|\\r/);\n      if (split.length > 1) {\n        // console.log('split founded', split)\n        split.forEach(s => {\n          res = res.concat(this.resolveFrom(s, callbackOnFounded, false));\n        });\n        return res;\n      }\n    }\n\n    if (/\\[\\[\\[.*\\]\\]\\]/g.test(chunk)) {\n      chunk = chunk.replace(/^\\[\\[\\[/g, '').replace(/\\]\\]\\]$/g, '');\n      progress = chunk;\n    }\n    if (!_.isUndefined(progress)) {\n      try {\n        const p = JSON.parse(progress);\n        const single = _.merge(new PROGRESS_DATA(), p);\n        res = res.concat([single]);\n        if (_.isFunction(callbackOnFounded)) {\n          callbackOnFounded(single);\n        }\n      } catch (err) {\n        const errMsg = err instanceof Error ? err.message : String(err);\n        Helpers.error(errMsg, true, true);\n        Helpers.error(\n          `ProgresssBarData: fail to parse \"${progress}\"`,\n          true,\n          true,\n        );\n      }\n    }\n    return res;\n  }\n\n  public value?: number;\n  public msg?: string;\n\n  public type: CoreModels.PROGRESS_DATA_TYPE = 'event';\n\n  public date?: Date;\n}","//#region imports\nimport 'reflect-metadata';\n/* */                                  \n\nimport { Subject } from 'rxjs';\n\nimport { _, crossPlatformPath, os, chalk, isElevated } from './core-imports';\nimport { UtilsNetwork } from './utils-network';\n\nimport { Helpers } from './index';\n//#endregion\n\nexport namespace UtilsEtcHosts {\n  export const SIMULATE_DOMAIN_TAG = '@simulatedDomainByTaon';\n\n  //#region utils etc hosts / etc host entry interface\n  export interface EtchostEntry {\n    lineIp: string;\n    domains: string[];\n    comment: string;\n  }\n  //#endregion\n\n  //#region utils etc hosts / get etc hosts path\n  export const getPath = (): string => {\n    let HOST_FILE_PATH = '';\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n    return crossPlatformPath(HOST_FILE_PATH);\n  };\n  //#endregion\n\n  //#region utils etc hosts / get lines from etc hosts\n  export const getLines = (): string[] => {\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils etc hosts / get tokens from line\n  export const getTokensData = (\n    line: string,\n  ): {\n    comment: string;\n    domains: string[];\n    lineIp: string;\n  } => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils etc hosts / specyfic entry exists\n  export const specificEntryExists = (domain: string, ip: string): boolean => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils etc hosts / get Etc Host Entry By Domain\n  export const getEntriesByDomain = (\n    domain: string,\n  ): UtilsEtcHosts.EtchostEntry[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils etc hosts / get etc host entries by comment\n  export const getEntryByComment = (\n    commentOfEntry: string,\n  ): UtilsEtcHosts.EtchostEntry[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils etc hosts / get etc host entries by ip\n  /**\n   * Returns all host entries for a given IP address.\n   */\n  export const getEntriesByIp = (ip: string): UtilsEtcHosts.EtchostEntry[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils etc hosts / remove entry by domain\n  export const removeEntryByDomain = (domain: string): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils etc hosts / simulate domain in etc hosts\n  export const simulateDomain = async (\n    domainOrDomains: string | string[],\n    options?: {\n      triggerRevertChangesToEtcHosts?: Subject<void>;\n    },\n  ): Promise<void> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n}","//#region imports\nimport 'reflect-metadata';\nimport { ChildProcess } from 'child_process';\n\nimport { config } from './config';\nimport { _, crossPlatformPath, chalk } from './core-imports';\nimport { spawn } from './core-imports';\nimport { Helpers } from './helpers';\nimport { UtilsSudo } from './utils';\n//#endregion\n\n/**\n * Async api for executing child processes\n * (proper handling of stdout / stderr and options)\n */\nexport namespace UtilsExecProc {\n  //#region utils exec process / exec proc options and class\n  interface ExecProcOptions {\n    cwd?: string;\n    shell?: boolean | string;\n    /**\n     * default true\n     * true -> good for long outputs\n     * false -> good for short outputs (speed things up)\n     */\n    biggerBuffer?: boolean;\n    /**\n     * default true\n     */\n    showOutputColor?: boolean;\n    /**\n     * default true\n     */\n    showOutput?: boolean | 'stdoutOnly' | 'stderrOnly';\n    /**\n     * default process.env\n     */\n    env?: { [key: string]: string };\n  }\n  //#endregion\n\n  //#region utils exec process / exec proc wait until done or throw\n  interface ExecProcWaitUntilDoneOrThrow {\n    shell?: boolean | string;\n    /**\n     * default [0]\n     */\n    successCode?: number[];\n    /**\n     * in stdout or stderr\n     */\n    successOutputMessage?:\n      | string\n      | string[]\n      | {\n          stdout?: string | string[];\n          stderr?: string | string[];\n        };\n\n    /**\n     * in stdout or stderr\n     */\n    failOutputMessage?:\n      | string\n      | string[]\n      | {\n          stdout?: string | string[];\n          stderr?: string | string[];\n        };\n  }\n  //#endregion\n\n  //#region utils exec process / exec proc result class\n  /**\n   * This class expose function that are usually needed when working\n   * with child processes (without digging into low level child_process module)\n   */\n  class ExecProcResult {\n    //#region fields & getters\n    private stdoutFromCommand: string = '';\n\n    private stderrFromCommand: string = '';\n\n    private child: ChildProcess;\n\n    //#region fields & getters / get max buffer\n    private get maxBuffer(): number | undefined {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n      return (void 0);\n    }\n    //#endregion\n\n    //#region fields & getters / get env\n    private get env(): { [key: string]: string } {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n      return (void 0);\n    }\n    //#endregion\n\n    //#endregion\n\n    //#region constructor\n    constructor(\n      protected readonly command: string,\n      protected readonly args: string[],\n      protected readonly execProcOptions: ExecProcOptions = {},\n    ) {}\n    //#endregion\n\n    //#region get output\n    public async getOutput(options?: {\n      shell?: boolean | string;\n    }): Promise<{ stdout: string; stderr: string }> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n      return (void 0);\n    }\n    //#endregion\n\n    //#region get stdout without showing or throw\n    public async getStdoutWithoutShowingOrThrow(options?: {\n      shell?: boolean | string;\n    }): Promise<string> {\n      const { stdout } = await this.getOutput(options);\n      return stdout;\n    }\n    //#endregion\n\n    //#region exec proc wait until done or throw\n    public async waitUntilDoneOrThrow(\n      options?: ExecProcWaitUntilDoneOrThrow,\n    ): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n      return (void 0);\n    }\n    //#endregion\n  }\n  //#endregion\n\n  //#region utils exec process / spawn async\n  /**\n   * @TODO @IN_PROGRESS\n   */\n  export const spawnAsync = (\n    command: string,\n    options?: ExecProcOptions,\n  ): ExecProcResult => {\n    command = command.trim();\n    options = options || {};\n    options.cwd = crossPlatformPath(options.cwd || process.cwd());\n    const [cmd, ...args] = command.split(' ');\n    return new ExecProcResult(cmd, args, options);\n  };\n  //#endregion\n\n  //#region utils exec process / spawn admin sudo\n  /**\n   * @TODO @IN_PROGRESS\n   */\n  export const spawnAdminSudo = async (\n    command: string,\n    options?: ExecProcOptions,\n  ): Promise<void> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils exec process / execute until end or throw\n  /**\n   * @TODO @IN_PROGRESS\n   */\n  export const executeUntilEndOrThrow = async ({\n    command,\n    cwd,\n    shell,\n  }: {\n    command: string;\n    cwd: string;\n    shell?: boolean;\n  }): Promise<void> => {\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils exec process / get stdout without showing or throw\n  export const getStdoutWithoutShowingOrThrow = async ({\n    command,\n    cwd,\n    shell,\n  }: {\n    command: string;\n    cwd: string;\n    shell?: boolean;\n  }): Promise<string> => {\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n}","//#region imports\nimport 'reflect-metadata';\nimport * as net from 'net';\n/* */                                  \n\nimport { Subject } from 'rxjs';\n\nimport { _, os, https } from './core-imports';\nimport { spawn } from './core-imports';\nimport { fse } from './core-imports';\nimport { Utils } from './utils';\nimport { UtilsEtcHosts } from './utils-etc-hosts';\n\nimport { Helpers } from './index';\n//#endregion\n\nexport namespace UtilsNetwork {\n  //#region utils network / online server check\n  export interface PingResult {\n    host: string;\n    success: boolean;\n    timeMs?: number; // latency if available\n    output?: string; // raw ping output\n  }\n\n  export async function checkPing(\n    host: string,\n    timeoutMs = 3000,\n  ): Promise<PingResult> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n\n  export const checkIfServerPings = async (\n    host: string,\n    timeoutMs = 3000,\n  ): Promise<boolean> => {\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  /**\n   * Check if a server is online by attempting to open a TCP connection.\n   */\n  export const checkIfServerOnline = async (\n    host: string,\n    port = 80,\n    timeoutMs = 3000,\n  ): Promise<boolean> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils network / isValidIp\n  export const isValidIp = (ip: string): boolean => {\n    if (!_.isString(ip)) {\n      return false;\n    }\n    ip = ip.trim();\n    if (ip === 'localhost') {\n      return true;\n    }\n    return /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(\n      ip,\n    );\n  };\n  //#endregion\n\n  //#region utils network / isValidDomain\n  export const isValidDomain = (\n    url: string,\n    options?: {\n      /**\n       * if yes - domain should start with http:// or https://\n       */\n      shouldIncludeProtocol?: boolean | 'http' | 'https';\n    },\n  ): boolean => {\n    if (!url || typeof url !== 'string') return false;\n\n    const shouldIncludeProtocol = !!options?.shouldIncludeProtocol;\n\n    // Build regex depending on protocol requirement\n    const domainRegex = shouldIncludeProtocol\n      ? /^(https?:\\/\\/)([a-zA-Z0-9-]{1,63}\\.)+[a-zA-Z]{2,}$/ // with protocol\n      : /^([a-zA-Z0-9-]{1,63}\\.)+[a-zA-Z]{2,}$/; // without protocol\n\n    if (\n      typeof options?.shouldIncludeProtocol === 'string' &&\n      options?.shouldIncludeProtocol === 'http' &&\n      !url.startsWith('http://')\n    ) {\n      return false; // if http is required, but url does not start with http://\n    }\n    if (\n      typeof options?.shouldIncludeProtocol === 'string' &&\n      options?.shouldIncludeProtocol === 'https' &&\n      !url.startsWith('https://')\n    ) {\n      return false; // if https is required, but url does not start with https://\n    }\n\n    return domainRegex.test(url.trim());\n  };\n  //#endregion\n\n  //#region utils network / urlParse\n  export const urlParse = (\n    portOrHost: number | string | URL,\n    options?: {\n      forceDomain?: boolean;\n      httpsIfNotProvided?: boolean;\n    },\n  ): URL => {\n    options = options || {};\n    let url: URL;\n    const defaultProtocol = options.httpsIfNotProvided ? 'https:' : 'http:';\n    if (portOrHost instanceof URL) {\n      url = portOrHost;\n    } else if (_.isNumber(portOrHost)) {\n      url = new URL(`${defaultProtocol}//localhost:${portOrHost}`);\n    } else if (!_.isNaN(Number(portOrHost))) {\n      url = new URL(`${defaultProtocol}//localhost:${Number(portOrHost)}`);\n    } else if (_.isString(portOrHost)) {\n      try {\n        url = new URL(portOrHost);\n      } catch (error: unknown) {}\n      if (isValidIp(portOrHost)) {\n        try {\n          url = new URL(`${defaultProtocol}//${portOrHost}`);\n        } catch (error: unknown) {\n          Helpers.warn(`Not able to get port from ${portOrHost}`);\n        }\n      }\n      if (options.forceDomain) {\n        const domain = portOrHost as string;\n        url = new URL(\n          domain.startsWith('http') ? domain : `http://${portOrHost}`,\n        );\n      }\n    }\n    return url;\n  };\n  //#endregion\n\n  //#region utils network / get etc hosts path\n  export const getEtcHostsPath = () => UtilsEtcHosts.getPath();\n  //#endregion\n\n  //#region utils network / setEtcHost\n  /**\n   * Add or update a hosts entry\n   */\n  export const setEtcHost = (\n    domain: string,\n    ip: string = '127.0.0.1',\n    comment: string = '',\n  ): void => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils network / get Etc Host Entry By Domain\n  /**\n   * @deprecated use UtilsEtcHosts.getEntriesByDomain instead\n   */\n  export const getEtcHostEntriesByDomain = (domain: string) =>\n    UtilsEtcHosts.getEntriesByDomain(domain);\n  //#endregion\n\n  //#region utils network / get etc host entries by comment\n  /**\n   * @deprecated use UtilsEtcHosts.getEntryByComment instead\n   */\n  export const getEtcHostEntryByComment = (commentOfEntry: string) =>\n    UtilsEtcHosts.getEntryByComment(commentOfEntry);\n  //#endregion\n\n  //#region utils network / get etc host entries by ip\n  /**\n   * @deprecated use UtilsEtcHosts.getEntriesByIp instead\n   */\n  export const getEtcHostEntryByIp = (ip: string) =>\n    UtilsEtcHosts.getEntriesByIp(ip);\n  //#endregion\n\n  //#region utils network / removeEtcHost\n  /**\n   * Remove all lines containing the given domain\n   * @deprecated use UtilsEtcHosts.removeEntryByDomain instead\n   */\n  export const removeEtcHost = (domain: string) =>\n    UtilsEtcHosts.removeEntryByDomain(domain);\n  //#endregion\n\n  //#region utils network / etc host without localhost\n  export const etcHostHasProperLocalhostIp4Entry = (): boolean => {\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  export const etcHostHasProperLocalhostIp6Entry = (): boolean => {\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  //#endregion\n\n  //#region utils network / simulate domain in etc hosts\n  /**\n   * @deprecated use UtilsEtcHosts.simulateDomain instead\n   */\n  export const simulateDomain = (\n    domainOrDomains: string | string[],\n    options?: {\n      triggerRevertChangesToEtcHosts?: Subject<void>;\n    },\n  ) => UtilsEtcHosts.simulateDomain(domainOrDomains, options);\n  //#endregion\n\n  //#region utils network / get local public ip addresses\n\n  //#region utils network / get local public ip addresses / local ip info interface\n  export interface LocalIpInfo {\n    interfaceName: string;\n    address: string;\n    family: 'IPv4' | 'IPv6';\n    internal: boolean;\n    type: 'lan' | 'wifi' | 'other' | 'virtual';\n  }\n  //#endregion\n\n  //#region utils network / get local public ip addresses / get interface type from name\n  const isVirtualInterface = (name: string): boolean => {\n    const lname = name.toLowerCase();\n    return (\n      lname.includes('virtual') ||\n      lname.includes('vmware') ||\n      lname.includes('vbox') ||\n      lname.includes('hyper-v') ||\n      lname.includes('wsl') ||\n      lname.includes('docker') ||\n      lname.includes('veth') ||\n      lname.includes('default switch')\n    );\n  };\n\n  const interfaceTypeFromName = (name: string): LocalIpInfo['type'] => {\n    const lname = name.toLowerCase();\n\n    if (isVirtualInterface(lname)) return 'virtual';\n    if (lname.includes('eth') || lname.includes('en') || lname.includes('lan'))\n      return 'lan';\n    if (\n      lname.includes('wl') ||\n      lname.includes('wi-fi') ||\n      lname.includes('wifi')\n    )\n      return 'wifi';\n    return 'other';\n  };\n\n  const sortByPriority = (a: LocalIpInfo, b: LocalIpInfo): number => {\n    const typePriority = { lan: 1, wifi: 2, other: 3, virtual: 4 };\n    const pa = typePriority[a.type];\n    const pb = typePriority[b.type];\n    if (pa !== pb) return pa - pb;\n\n    // Secondary heuristic for tie-breaking (e.g., Ethernet 5 before vEthernet)\n    const nameA = a.interfaceName.toLowerCase();\n    const nameB = b.interfaceName.toLowerCase();\n\n    // prefer physical-looking names\n    const physPriority = (name: string) =>\n      name.includes('ethernet') && !name.includes('vethernet') ? 0 : 1;\n\n    const diff = physPriority(nameA) - physPriority(nameB);\n    if (diff !== 0) return diff;\n\n    return nameA.localeCompare(nameB);\n  };\n  //#endregion\n\n  //#region utils network / get local public ip addresses / get local ip addresses\n  /**\n   * Returns all local IP addresses in preferred order:\n   * LAN → Wi-Fi → Other → Virtual\n   */\n  export const getLocalIpAddresses = async (): Promise<LocalIpInfo[]> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils network / get local public ip addresses / get first local active ip address\n  /**\n   * Returns first active local ipv4 IP (LAN preferred over Wi-Fi).\n   */\n  export const getFirstIpV4LocalActiveIpAddress = async (): Promise<\n    string | null\n  > => {\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils network / get local public ip addresses / get current public ip address\n  /**\n   * Returns current public IP address (or null if undetectable).\n   */\n  export const getCurrentPublicIpAddress = async (): Promise<string | null> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#endregion\n}","//#region imports\nimport 'reflect-metadata';\nimport { ChildProcess } from 'child_process';\n/* */                                         \nimport type { WriteStream } from 'fs';\n\nimport { _, crossPlatformPath } from './core-imports';\nimport { fse } from './core-imports';\nimport { FilePathMetaData } from './utils';\nimport { UtilsOs } from './utils-os';\nimport { UtilsTerminal } from './utils-terminal';\n\nimport { Helpers } from './index';\n\n//#endregion\n\n/**\n * Utils for logging ChildProcess output to files.\n * - logging stdout and stderr to files\n * - real-time monitoring of output\n * - special event callbacks on specific output strings\n * - caching last N lines of output for quick access\n */\nexport namespace UtilsProcessLogger {\n  //#region utils process / process file logger options\n  export interface ProcessFileLoggerOptions extends Record<\n    string,\n    string | number | boolean | undefined\n  > {\n    name: string;\n    id?: string | number;\n    pid?: number;\n    ppid?: number;\n    hash?: string;\n    utime?: string;\n  }\n  //#endregion\n\n  //#region utils process / special event in process logger\n  export interface SpecialEventInProcessLogger {\n    stdout?: {\n      stringInStream: string;\n      callback: (data: string) => void;\n    }[];\n    stderr?: {\n      stringInStream: string;\n      callback: (data: string) => void;\n    }[];\n  }\n  //#endregion\n\n  //#region utils process / constants\n  const dummyFilename = 'file.log';\n\n  export const baseDirTaonProcessLogs = () =>\n    crossPlatformPath([UtilsOs.getRealHomeDir(), '.taon', 'log-files-for']);\n  //#endregion\n\n  //#region utils process / get log files\n  export const getLogsFiles = <\n    T extends ProcessFileLoggerOptions = ProcessFileLoggerOptions,\n  >(\n    options: T,\n    baseDir: string,\n  ): string[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n\n  //#region utils process / process file logger class\n  /**\n   * Logs the stdout and stderr of a ChildProcess to a file.\n   */\n  export class ProcessFileLogger<\n    T extends ProcessFileLoggerOptions = ProcessFileLoggerOptions,\n  > {\n    //#region fields & getters\n    private _logFilePath: string | null = null;\n\n    private writeStream: WriteStream | null = null;\n\n    private _processLogFilename: string | null = null;\n\n    private lastNLinesFromStderr: string[] = [];\n\n    private lastNLinesFromStdout: string[] = [];\n\n    private lastNLinesFromOfOutput: string[] = [];\n\n    public get processLogFilename(): string | null {\n      return this._processLogFilename;\n    }\n\n    public get processLogAbsFilePath(): string | null {\n      return this._logFilePath;\n    }\n    //#endregion\n\n    //#region constructor\n    constructor(\n      /**\n       * Options used to generate the log file name.\n       */\n      private dataForFilename: T,\n      private options?: {\n        baseDir?: string;\n        specialEvent?: SpecialEventInProcessLogger;\n      },\n    ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n    }\n    //#endregion\n\n    //#region start logging\n    startLogging(\n      proc: ChildProcess,\n      cacheCallback?: {\n        /**\n         * @default 40\n         */\n        cacheLinesMax?: number;\n        /**\n         * Throttle in ms for callback update()\n         */\n        throttleMs?: number;\n        /**\n         * Special callback function for saving stuff in db/memory or elsewhere\n         */\n        update: (opt: {\n          outputLines: string;\n          stderrLines: string;\n          stdoutLines: string;\n        }) => void;\n      },\n    ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n      return (void 0);\n    }\n    //#endregion\n\n    //#region stop logging\n    stopLogging(): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n      return (void 0);\n    }\n    //#endregion\n\n    //#region external update\n    /**\n     * Externally update the log file with additional stdout/stderr data.\n     */\n    update(stdout: string, stderr?: string): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n      return (void 0);\n    }\n    //#endregion\n  }\n  //#endregion\n\n  //#region utils process / create sticky top box\n  /**\n   * Perfect for real-time logs with a sticky top box message.\n   *\n   * Example:\n   * const stickyBox = UtilsProcessLogger.createStickyTopBox('My Sticky Message');\n   * stickyBox.update('Initial log content...');\n   *\n   * // Later updates\n   * stickyBox.update('More log content...');\n   *\n   * // To clear the sticky box and logs\n   * stickyBox.clear();\n   */\n  export const createStickyTopBox = (message: string) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n\n  const buildBox = (message: string): string[] => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  };\n  //#endregion\n}","/**\n * TODO slowly refactor this.. only actually globally needed are:\n * pm2, yarn, npm-run, ts-node ???\n */\nexport const requiredForDev = {\n  npm: [\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n  ],\n  niceTools: [\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n  ],\n  programs: [\n    ,\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n  ],\n};","//#region imports\nimport { chalk } from './core-imports';\nimport { child_process } from './core-imports';\nimport { frameworkName } from './framework-name';\nimport { requiredForDev } from './required-global-npm-packages';\nimport { UtilsOs } from './utils-os';\nimport { UtilsProcess } from './utils-process';\n\nimport { Helpers } from './index';\n//#endregion\n\nexport class CLI {\n  public static chalk = chalk;\n\n  public static installEnvironment(\n    globalDependencies: any = requiredForDev,\n  ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n\n  /**\n   * Check if global system tools are available for isomorphic app development\n   */\n  public static checkEnvironment(\n    globalDependencies: any = requiredForDev,\n  ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n}","/**\n * TODO WIP\n * refactor:\n * 1. typescript-class-helpers\n * 2. ng2-rest\n * 3. ng2-logger\n */\nclass GlobalStorageClass {\n  private static instance: GlobalStorageClass;\n\n  private store = new Map<string, any>();\n\n  private constructor() {}\n\n  static getInstance(): GlobalStorageClass {\n    if (!this.instance) {\n      this.instance = new GlobalStorageClass();\n    }\n    return this.instance;\n  }\n\n  set<T>(path: string, value: T): void {\n    this.store.set(path, value);\n  }\n\n  get<T>(path: string): T | undefined {\n    return this.store.get(path);\n  }\n\n  update<T>(path: string, updater: (prev: T | undefined) => T): T {\n    const prev = this.store.get(path);\n    const next = updater(prev);\n    this.store.set(path, next);\n    return next;\n  }\n}\n\nexport const GlobalStorage = GlobalStorageClass.getInstance();","import { BehaviorSubject } from 'rxjs';\n\ntype HandlerFn = (opt?: {\n  //  spinningType;\n  // TODO\n}) => void;\n\nclass GlobalSpinnerClass {\n  private static instance: GlobalSpinnerClass;\n\n  private constructor() {}\n\n  static getInstance(): GlobalSpinnerClass {\n    if (!this.instance) {\n      this.instance = new GlobalSpinnerClass();\n    }\n    return this.instance;\n  }\n\n  private startHandlers = new Set<HandlerFn>();\n\n  private stopHandlers = new Set<HandlerFn>();\n\n  private startHandlersMap = new Map<string, HandlerFn>();\n\n  private stopHandlersMap = new Map<string, HandlerFn>();\n\n  //#region is spinning\n  private isSpinningSrc$ = new BehaviorSubject<boolean>(false);\n\n  public isSpinning$ = this.isSpinningSrc$.asObservable();\n\n  private _isSpinning = false;\n\n  public get isSpinning(): boolean {\n    return this._isSpinning;\n  }\n\n  private set isSpinning(v: boolean) {\n    this._isSpinning = v;\n    this.isSpinningSrc$.next(v);\n  }\n  //#endregion\n\n  /**\n   * Provide taskCallbackFn() and\n   * start(), stop() will trigger\n   * automatically\n   */\n  public async task(taskCallbackFn: () => {}): Promise<void> {\n    this.start();\n    try {\n      await taskCallbackFn();\n    } catch (error) {\n      this.stop();\n      throw error;\n    }\n    this.stop();\n  }\n\n  public start(): void {\n    this.isSpinning = true;\n    [...this.startHandlers].forEach(handlerFn => {\n      handlerFn({});\n    });\n  }\n\n  public stop(): void {\n    this.isSpinning = false;\n    [...this.stopHandlers].forEach(handlerFn => {\n      handlerFn({});\n    });\n  }\n\n  public removeHandler(handlerId: string): void {\n    const fnStart = this.startHandlersMap.get(handlerId);\n    const fnStop = this.startHandlersMap.get(handlerId);\n    if (!fnStart || !fnStart) {\n      console.warn(`Can't remove unexisted handler`);\n      return;\n    }\n    fnStop({});\n    this.startHandlers.delete(fnStart);\n    this.startHandlersMap.delete(handlerId);\n    this.stopHandlers.delete(fnStop);\n    this.stopHandlersMap.delete(handlerId);\n  }\n\n  public addSpinningEventListener(\n    handleStartSpinFn: HandlerFn,\n    handleStopSpinFn: HandlerFn,\n    handlerId: string,\n  ): void {\n    this.startHandlers.add(handleStartSpinFn);\n    this.stopHandlers.add(handleStopSpinFn);\n    this.startHandlersMap.set(handlerId, handleStartSpinFn);\n    this.stopHandlersMap.set(handlerId, handleStopSpinFn);\n  }\n}\n\nexport const GlobalSpinner = GlobalSpinnerClass.getInstance();","import { crossPlatformPath, dateformat, fse } from './core-imports';\nimport { GlobalSpinner } from './global-spinner';\nimport { Helpers } from './helpers';\nimport { UtilsOs } from './utils-os';\n\nexport interface TaskStats {\n  name: string;\n  startedAt: number;\n  finishedAt?: number;\n  totalExpectedSuccessActions: number | undefined;\n  successActions: number;\n}\n\nexport class GlobalTaskManagerClass {\n  private static instance: GlobalTaskManagerClass;\n\n  private constructor() {}\n\n  static getInstance(): GlobalTaskManagerClass {\n    if (!this.instance) {\n      this.instance = new GlobalTaskManagerClass();\n    }\n    return this.instance;\n  }\n\n  private tasks = new Map<string, TaskStats>();\n\n  start(name: string, totalExpectedSuccessActions?: number): void {\n    GlobalSpinner.start();\n    this.tasks.set(name, {\n      name,\n      startedAt: Date.now(),\n      totalExpectedSuccessActions,\n      successActions: 0,\n    });\n  }\n\n  addProgress(name: string): void {\n    this.progress(name, 1);\n  }\n\n  protected progress(name: string, bytes: number): void {\n    const task = this.tasks.get(name);\n    if (!task) return;\n\n    task.successActions += bytes;\n  }\n\n  stop(name: string, doneCallback?: () => any): void {\n    GlobalSpinner.stop();\n    const task = this.tasks.get(name);\n    if (!task) return;\n\n    task.finishedAt = Date.now();\n\n    Helpers.info(`\n\n      [${dateformat(new Date(task.finishedAt))}]\n      Process done: ${name}\n      Success actions: ${task.successActions}\n\n      `);\n\n    if (task.successActions < 2) {\n      doneCallback && doneCallback();\n    } else {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n    }\n  }\n\n  get(name: string): TaskStats {\n    return this.tasks.get(name);\n  }\n\n  getAll(): TaskStats[] {\n    return Array.from(this.tasks.values());\n  }\n}\n\nexport const GlobalTaskManager = GlobalTaskManagerClass.getInstance();","//#region imports & constants\nimport {\n  areTrustedForPatchUpdate,\n  fileName,\n  filesNotAllowedToClean,\n  folderName,\n  tempFoldersName,\n} from './constants';\n/* */    \n/* */   \n/* */  \n/* */ \n/* */            \n/* */                \n/* */                                \nimport { CoreModels } from './core-models';\nimport { frameworkName } from './framework-name';\n//#endregion\n\ndeclare const global: any;\n/* */\n/* */\n/* */\n/* */\n  \n\n//#region resolve tnp location\n// @LAST RESOLVE TNP LOCATION !!! for each context and RELEASE TNP-CORE\nlet dirnameForTnp: string;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n//#endregion\n\n//#region config\n\n// console.log({\n//   dirnameForTnp\n// });\n// process.exit(0)\n\nexport const config = {\n  dirnameForTnp,\n  packagesThat: {\n    areTrustedForPatchUpdate,\n  },\n  regexString: {\n    pathPartStringRegex: `(\\/([a-zA-Z0-9]|\\\\-|\\\\_|\\\\+|\\\\.)*)`,\n  },\n  placeholders: {\n    forProjectsInEnvironmentFile: '//<PLACEHOLDER_FOR_PROJECTS>',\n  },\n  frameworkName,\n  startPort: 6001,\n  frameworks: ['bootstrap', 'ionic', 'material'] as CoreModels.UIFramework[],\n  /**\n   * @deprecated use folderName instead\n   */\n  folder: folderName,\n  /**\n   * @deprecated use tempFoldersName instead\n   */\n  tempFolders: tempFoldersName,\n  // @ts-ignore\n  filesNotAllowedToClean: Object.keys(filesNotAllowedToClean).map(\n    key => filesNotAllowedToClean[key],\n  ) as string[],\n  /**\n   * @deprecated use fileName instead\n   */\n  file: fileName,\n  reservedArgumentsNamesUglify: ['reservedExpOne', 'reservedExpSec'],\n  // environmentName,\n  localLibs: [\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n  ],\n  helpAlias: ['-h', '--help', '-help', 'help'],\n};\n//#endregion\n\n//#region globa isomorphic deps\n// export const GlobalIsomorphicDependencies: ConfigModels.GlobalDependencies = {\n//   npm: [\n//     { name: 'rimraf' },\n//     { name: 'npm-run', version: '4.1.2' },\n//     { name: 'cpr' },\n//     { name: 'check-node-version' },\n//     { name: 'vsce' },\n//   ],\n//   programs: [\n//     // {\n//     //   name: 'code',\n//     //   website: 'https://code.visualstudio.com/'\n//     // }\n//   ] as { name: string; website: string }[]\n// };\n//#endregion","import { Observable } from 'rxjs';\n\nexport interface TaonStripeCloudflareWorkerData {\n  stripeSessionId: string;\n  clientEmail: string;\n  productId: string;\n}\n\nexport interface TaonYoutubePlaylistVideo {\n  videoId: string;\n  title: string;\n  url: string;\n  thumbnail: string;\n  order: number;\n}\n\nexport enum TaonStripeCloudflareKey {\n  stripeSessionId = 'stripeSessionId',\n  clientEmail = 'clientEmail',\n  productId = 'productId',\n}\n\nexport class TaonStripeCloudflareWorker {\n  static HOOK_POST = '/stripe-webhook';\n\n  static HOOK_GET = '/check-access';\n\n  static HOOK_YOUTUBE_PLAYLIST_VIDEOS = '/youtube-playlist-videos';\n\n  static HOOK_CREATE_STRIPE_SESSION = '/create-checkout-session';\n\n  constructor(public readonly url: string) {}\n\n  async getVideosIdsByPlaylistId(playlistId: string): Promise<string[]> {\n    const params = new URLSearchParams({\n      playlistId,\n    });\n\n    const resp = await fetch(\n      `${this.url + TaonStripeCloudflareWorker.HOOK_YOUTUBE_PLAYLIST_VIDEOS}?${params}`,\n    );\n\n    if (!resp.ok) {\n      throw new Error(`Youtube playlist worker error ${resp.status}`);\n    }\n\n    const body: TaonYoutubePlaylistVideo[] = await resp.json();\n    return body.map(v => v.videoId);\n  }\n\n  async getVideosByPlaylistId(\n    playlistId: string,\n  ): Promise<TaonYoutubePlaylistVideo[]> {\n    const params = new URLSearchParams({\n      playlistId,\n    });\n\n    const resp = await fetch(\n      `${this.url + TaonStripeCloudflareWorker.HOOK_YOUTUBE_PLAYLIST_VIDEOS}?${params}`,\n    );\n\n    if (!resp.ok) {\n      throw new Error(`Youtube playlist worker error ${resp.status}`);\n    }\n\n    return await resp.json();\n  }\n\n  getVideosByPlaylistIdObs(\n    playlistId: string,\n  ): Observable<TaonYoutubePlaylistVideo[]> {\n    return new Observable(observer => {\n      const controller = new AbortController();\n\n      const params = new URLSearchParams({\n        playlistId,\n      });\n\n      fetch(\n        `${this.url + TaonStripeCloudflareWorker.HOOK_YOUTUBE_PLAYLIST_VIDEOS}?${params}`,\n        { signal: controller.signal },\n      )\n        .then(resp => {\n          if (!resp.ok) {\n            throw new Error(`Youtube playlist worker error ${resp.status}`);\n          }\n          return resp.json();\n        })\n        .then(data => {\n          observer.next(data);\n          observer.complete();\n        })\n        .catch(err => {\n          // ignore abort error\n          if (err.name !== 'AbortError') {\n            observer.error(err);\n          }\n        });\n\n      // cancellation logic\n      return () => {\n        controller.abort();\n      };\n    });\n  }\n\n  async sendAsStripe(data: TaonStripeCloudflareWorkerData): Promise<void> {\n    const resp = await fetch(this.url + TaonStripeCloudflareWorker.HOOK_POST, {\n      method: 'POST',\n      headers: {\n        'Content-Type': 'application/json',\n      },\n      body: JSON.stringify(data),\n    });\n\n    if (!resp.ok) {\n      throw new Error(`Stripe worker error ${resp.status}`);\n    }\n  }\n\n  async checkAccess(\n    data: Omit<Partial<TaonStripeCloudflareWorkerData>, 'stripeSessionId'>,\n  ): Promise<boolean> {\n    const params = new URLSearchParams();\n\n    for (const [key, value] of Object.entries(data)) {\n      if (value !== undefined && value !== null) {\n        params.append(key, String(value));\n      }\n    }\n\n    const urlForAccessCheck = `${this.url + TaonStripeCloudflareWorker.HOOK_GET}?${params}`;\n    // console.log({ urlForAccessCheck });\n    const resp = await fetch(urlForAccessCheck);\n\n    if (!resp.ok) {\n      return false;\n    }\n\n    const body: { hasAccess: boolean } = await resp.json();\n    return body?.hasAccess ?? false;\n  }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["chalk","path","pathMock","chalkMock"],"mappings":"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"}