tnp-core 21.0.74 → 21.0.77

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"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/constants.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/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/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/config.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 \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 jscodeshift: () => require('jscodeshift'),\n dateformat: () => require('dateformat'),\n ['body-parser']: () => require('body-parser'),\n ['cookie-parser']: () => require('cookie-parser'),\n ['cors']: () => require('cors'),\n ['express']: () => require('express'),\n ['method-override']: () => require('method-override'),\n ['express-session']: () => require('express-session'),\n};\n/**\n * use only in backend mode\n */\nexport function requireDefault<T>(id: keyof typeof REQUIRE_MAP): T {\n const m = REQUIRE_MAP[id]();\n return m?.default ?? m;\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 { LibTypeEnum, 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 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 //#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 //#region http method\n export type HttpMethod =\n | 'get'\n | 'post'\n | 'put'\n | 'delete'\n | 'patch'\n | 'head'\n | 'jsonp';\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 /**\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 * @deprecated TODO I should remove it from here and from taon-typeorm somehow\n */\n export const OrignalClassKey = '$$originalClass$$';\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 ClassNameStaticProperty = '$$className$$';\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};","import 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 '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 'environments',\n 'env',\n 'projects',\n 'plugins',\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';","//#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';\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 (await axios({\n url,\n method: 'get',\n responseType: 'blob',\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\nexport namespace UtilsStringRegex {\n export const containsNonAscii = (pathStringOrPathParts: string): boolean => {\n const hasNonAscii = /[^\\u0000-\\u0080]+/.test(pathStringOrPathParts);\n return hasNonAscii;\n };\n}\n\n//#region utils process\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 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}\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 exec process\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 /**\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 /**\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(\n shell?: any,\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(): Promise<string> {\n const { stdout } = await this.getOutput();\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 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 options = options || {};\n options.cwd = crossPlatformPath(options.cwd || process.cwd());\n const [cmd, ...args] = command.split(' ');\n return new ExecProcResult(cmd, args);\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 }: {\n command: string;\n cwd: string;\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 }: {\n command: string;\n cwd: string;\n }): Promise<string> => {\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 files folders sync\nexport namespace UtilsFilesFoldersSync {\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\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 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//#endregion\n\n//#region utils files folders\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 /**\n * Patterns that should be always ignored\n */\n export const IGNORE_FOLDERS_FILES_PATTERNS =\n UtilsFilesFoldersSync.IGNORE_FOLDERS_FILES_PATTERNS;\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}\n//#endregion\n\n//#region utils os\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 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 vscode\n export const openFolderInVSCode = (folderPath: 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 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 export type Editor =\n | 'code'\n | 'codium'\n | 'cursor'\n | 'theia'\n | 'idea'\n | 'idea64';\n\n export type UnknownEditor = 'unknown-editor--please-install-vscode';\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\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\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\n export const killAllEditor = (editor: EditorProcess) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n export const detectEditor = (): Editor => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\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 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\n export const isRunningNodeDebugger = (): boolean => {\n //#region @browser\n return false;\n //#endregion\n/* */\n/* */\n return (void 0);\n };\n\n export const isNodeVersionOk = UtilsProcess.isNodeVersionOk;\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\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//#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 terminal\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 = Utils.wait;\n //#endregion\n\n //#region utils terminal / wait milliseconds\n export const waitMilliseconds = Utils.waitMilliseconds;\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//#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 etc hosts\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}\n\n//#endregion\n\n//#region utils network\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 / simulate domain tag constant\n /**\n * @deprecated use UtilsEtcHosts.SIMULATE_DOMAIN_TAG instead\n */\n export const SIMULATE_DOMAIN_TAG = UtilsEtcHosts.SIMULATE_DOMAIN_TAG;\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 = UtilsEtcHosts.getEntriesByDomain;\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 = UtilsEtcHosts.getEntryByComment;\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 = UtilsEtcHosts.getEntriesByIp;\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 = UtilsEtcHosts.removeEntryByDomain;\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 = UtilsEtcHosts.simulateDomain;\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}\n//#endregion\n\n//#region utils process logger\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//#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 staticClassNameProperty = CoreModels.ClassNameStaticProperty;\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","//#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 {\n UtilsJson,\n UtilsProcess,\n UtilsFilesFoldersSync,\n UtilsTerminal,\n} from './utils';\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 = (details: any, debugLevel = 0) => {\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 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 export const compilationWrapper = async (\n fn: () => void,\n taskName: string = 'Task',\n executionType:\n | 'Compilation of'\n | 'Code execution of'\n | 'Event:' = 'Compilation of',\n ) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\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}","/**\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, UtilsProcess } from './utils';\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}","//#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//#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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["chalk","path","pathMock","chalkMock"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAI,SAAS,GAAG,KAAK;AACrB;AACA,SAAS,GAAG,IAAI;AAChB;AAEA,MAAM,kBAAkB,GAAmB,EAAS;AACpD,IAAI,eAAe,GAAG;AAEtB;AACA;AACA;AAGA,MAAM,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG;;ACySrC,IAAW;AAAjB,CAAA,UAAiB,CAAC,EAAA;IACH,CAAA,CAAA,GAAG,IAAK,IAAY,EAAE,OAAO,IAAI,IAAI,CAAsB;IAC3D,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,GAAG,IAAK,IAAY,EAAE,OAAO,IAAI,IAAI,CAAsB;IAC3D,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,YAAY,IAAK,aAAqB,EAAE,OAAO,IAAI,aAAa,CAA+B;IAC/F,CAAA,CAAA,UAAU,IAAK,WAAmB,EAAE,OAAO,IAAI,WAAW,CAA6B;IACvF,CAAA,CAAA,EAAE,IAAK,GAAW,EAAE,OAAO,IAAI,GAAG,CAAqB;IACvD,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,UAAU,IAAK,WAAmB,EAAE,OAAO,IAAI,WAAW,CAA6B;IACvF,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,aAAa,IAAK,cAAsB,EAAE,OAAO,IAAI,cAAc,CAAgC;IACnG,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,UAAU,IAAK,WAAmB,EAAE,OAAO,IAAI,WAAW,CAA6B;IACvF,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,UAAU,IAAK,WAAmB,EAAE,OAAO,IAAI,WAAW,CAA6B;IACvF,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,YAAY,IAAK,aAAqB,EAAE,OAAO,IAAI,aAAa,CAA+B;IAC/F,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,UAAU,IAAK,WAAmB,EAAE,OAAO,IAAI,WAAW,CAA6B;IACvF,CAAA,CAAA,YAAY,IAAK,aAAqB,EAAE,OAAO,IAAI,aAAa,CAA+B;IAC/F,CAAA,CAAA,cAAc,IAAK,eAAuB,EAAE,OAAO,IAAI,eAAe,CAAiC;IACvG,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,cAAc,IAAK,eAAuB,EAAE,OAAO,IAAI,eAAe,CAAiC;IACvG,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,EAAE,IAAK,GAAW,EAAE,OAAO,IAAI,GAAG,CAAqB;IACvD,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,YAAY,IAAK,aAAqB,EAAE,OAAO,IAAI,aAAa,CAA+B;IAC/F,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,UAAU,IAAK,WAAmB,EAAE,OAAO,IAAI,WAAW,CAA6B;IACvF,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,aAAa,IAAK,cAAsB,EAAE,OAAO,IAAI,cAAc,CAAgC;IACnG,CAAA,CAAA,WAAW,IAAK,YAAoB,EAAE,OAAO,IAAI,YAAY,CAA8B;IAC3F,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,WAAW,IAAK,YAAoB,EAAE,OAAO,IAAI,YAAY,CAA8B;IAC3F,CAAA,CAAA,YAAY,IAAK,aAAqB,EAAE,OAAO,IAAI,aAAa,CAA+B;IAC/F,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,WAAW,IAAK,YAAoB,EAAE,OAAO,IAAI,YAAY,CAA8B;IAC3F,CAAA,CAAA,YAAY,IAAK,aAAqB,EAAE,OAAO,IAAI,aAAa,CAA+B;IAC/F,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,YAAY,IAAK,aAAqB,EAAE,OAAO,IAAI,aAAa,CAA+B;IAC/F,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,UAAU,IAAK,WAAmB,EAAE,OAAO,IAAI,WAAW,CAA6B;IACvF,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,WAAW,IAAK,YAAoB,EAAE,OAAO,IAAI,YAAY,CAA8B;IAC3F,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,WAAW,IAAK,YAAoB,EAAE,OAAO,IAAI,YAAY,CAA8B;IAC3F,CAAA,CAAA,GAAG,IAAK,IAAY,EAAE,OAAO,IAAI,IAAI,CAAsB;IAC3D,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,EAAE,IAAK,GAAW,EAAE,OAAO,IAAI,GAAG,CAAqB;IACvD,CAAA,CAAA,GAAG,IAAK,IAAY,EAAE,OAAO,IAAI,IAAI,CAAsB;IAC3D,CAAA,CAAA,GAAG,IAAK,IAAY,EAAE,OAAO,IAAI,IAAI,CAAsB;IAC3D,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,YAAY,IAAK,aAAqB,EAAE,OAAO,IAAI,aAAa,CAA+B;IAC/F,CAAA,CAAA,cAAc,IAAK,eAAuB,EAAE,OAAO,IAAI,eAAe,CAAiC;IACvG,CAAA,CAAA,gBAAgB,IAAK,iBAAyB,EAAE,OAAO,IAAI,iBAAiB,CAAmC;IAC/G,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,WAAW,IAAK,YAAoB,EAAE,OAAO,IAAI,YAAY,CAA8B;IAC3F,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,aAAa,IAAK,cAAsB,EAAE,OAAO,IAAI,cAAc,CAAgC;IACnG,CAAA,CAAA,WAAW,IAAK,YAAoB,EAAE,OAAO,IAAI,YAAY,CAA8B;IAC3F,CAAA,CAAA,iBAAiB,IAAK,kBAA0B,EAAE,OAAO,IAAI,kBAAkB,CAAoC;IACnH,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,WAAW,IAAK,YAAoB,EAAE,OAAO,IAAI,YAAY,CAA8B;IAC3F,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,UAAU,IAAK,WAAmB,EAAE,OAAO,IAAI,WAAW,CAA6B;IACvF,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,WAAW,IAAK,YAAoB,EAAE,OAAO,IAAI,YAAY,CAA8B;IAC3F,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,YAAY,IAAK,aAAqB,EAAE,OAAO,IAAI,aAAa,CAA+B;IAC/F,CAAA,CAAA,aAAa,IAAK,cAAsB,EAAE,OAAO,IAAI,cAAc,CAAgC;IACnG,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,aAAa,IAAK,cAAsB,EAAE,OAAO,IAAI,cAAc,CAAgC;IACnG,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,YAAY,IAAK,aAAqB,EAAE,OAAO,IAAI,aAAa,CAA+B;IAC/F,CAAA,CAAA,WAAW,IAAK,YAAoB,EAAE,OAAO,IAAI,YAAY,CAA8B;IAC3F,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,WAAW,IAAK,YAAoB,EAAE,OAAO,IAAI,YAAY,CAA8B;IAC3F,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,UAAU,IAAK,WAAmB,EAAE,OAAO,IAAI,WAAW,CAA6B;IACvF,CAAA,CAAA,EAAE,IAAK,GAAW,EAAE,OAAO,IAAI,GAAG,CAAqB;IACvD,CAAA,CAAA,GAAG,IAAK,IAAY,EAAE,OAAO,IAAI,IAAI,CAAsB;IAC3D,CAAA,CAAA,GAAG,IAAK,IAAY,EAAE,OAAO,IAAI,IAAI,CAAsB;IAC3D,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,eAAe,IAAK,gBAAwB,EAAE,OAAO,IAAI,gBAAgB,CAAkC;IAC3G,CAAA,CAAA,GAAG,IAAK,IAAY,EAAE,OAAO,IAAI,IAAI,CAAsB;IAC3D,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,GAAG,IAAK,IAAY,EAAE,OAAO,IAAI,IAAI,CAAsB;IAC3D,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,GAAG,IAAK,IAAY,EAAE,OAAO,IAAI,IAAI,CAAsB;IAC3D,CAAA,CAAA,GAAG,IAAK,IAAY,EAAE,OAAO,IAAI,IAAI,CAAsB;IAC3D,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,GAAG,IAAK,IAAY,EAAE,OAAO,IAAI,IAAI,CAAsB;IAC3D,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,YAAY,IAAK,aAAqB,EAAE,OAAO,IAAI,aAAa,CAA+B;IAC/F,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,UAAU,IAAK,WAAmB,EAAE,OAAO,IAAI,WAAW,CAA6B;IACvF,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,WAAW,IAAK,YAAoB,EAAE,OAAO,IAAI,YAAY,CAA8B;IAC3F,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,UAAU,IAAK,WAAmB,EAAE,OAAO,IAAI,WAAW,CAA6B;IACvF,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,WAAW,IAAK,YAAoB,EAAE,OAAO,IAAI,YAAY,CAA8B;IAC3F,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,UAAU,IAAK,WAAmB,EAAE,OAAO,IAAI,WAAW,CAA6B;IACvF,CAAA,CAAA,GAAG,IAAK,IAAY,EAAE,OAAO,IAAI,IAAI,CAAsB;IAC3D,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,WAAW,IAAK,YAAoB,EAAE,OAAO,IAAI,YAAY,CAA8B;IAC3F,CAAA,CAAA,aAAa,IAAK,cAAsB,EAAE,OAAO,IAAI,cAAc,CAAgC;IACnG,CAAA,CAAA,aAAa,IAAK,cAAsB,EAAE,OAAO,IAAI,cAAc,CAAgC;IACnG,CAAA,CAAA,eAAe,IAAK,gBAAwB,EAAE,OAAO,IAAI,gBAAgB,CAAkC;IAC3G,CAAA,CAAA,iBAAiB,IAAK,kBAA0B,EAAE,OAAO,IAAI,kBAAkB,CAAoC;IACnH,CAAA,CAAA,iBAAiB,IAAK,kBAA0B,EAAE,OAAO,IAAI,kBAAkB,CAAoC;IACnH,CAAA,CAAA,UAAU,IAAK,WAAmB,EAAE,OAAO,IAAI,WAAW,CAA6B;IACvF,CAAA,CAAA,YAAY,IAAK,aAAqB,EAAE,OAAO,IAAI,aAAa,CAA+B;IAC/F,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,UAAU,IAAK,WAAmB,EAAE,OAAO,IAAI,WAAW,CAA6B;IACvF,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,UAAU,IAAK,WAAmB,EAAE,OAAO,IAAI,WAAW,CAA6B;IACvF,CAAA,CAAA,UAAU,IAAK,WAAmB,EAAE,OAAO,IAAI,WAAW,CAA6B;IACvF,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,GAAG,IAAK,IAAY,EAAE,OAAO,IAAI,IAAI,CAAsB;IAC3D,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,cAAc,IAAK,eAAuB,EAAE,OAAO,IAAI,eAAe,CAAiC;IACvG,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,GAAG,IAAK,IAAY,EAAE,OAAO,IAAI,IAAI,CAAsB;IAC3D,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,gBAAgB,IAAK,iBAAyB,EAAE,OAAO,IAAI,iBAAiB,CAAmC;IAC/G,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,aAAa,IAAK,cAAsB,EAAE,OAAO,IAAI,cAAc,CAAgC;IACnG,CAAA,CAAA,aAAa,IAAK,cAAsB,EAAE,OAAO,IAAI,cAAc,CAAgC;IACnG,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,UAAU,IAAK,WAAmB,EAAE,OAAO,IAAI,WAAW,CAA6B;IACvF,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,UAAU,IAAK,WAAmB,EAAE,OAAO,IAAI,WAAW,CAA6B;IACvF,CAAA,CAAA,MAAM,IAAK,OAAe,EAAE,OAAO,IAAI,OAAO,CAAyB;IACvE,CAAA,CAAA,QAAQ,IAAK,SAAiB,EAAE,OAAO,IAAI,SAAS,CAA2B;IAC/E,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,IAAI,IAAK,KAAa,EAAE,OAAO,IAAI,KAAK,CAAuB;IAC/D,CAAA,CAAA,GAAG,IAAK,IAAY,EAAE,OAAO,IAAI,IAAI,CAAsB;IAC3D,CAAA,CAAA,KAAK,IAAK,MAAc,EAAE,OAAO,IAAI,MAAM,CAAwB;IACnE,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;IAC3E,CAAA,CAAA,GAAG,IAAK,IAAY,EAAE,OAAO,IAAI,IAAI,CAAsB;IAC3D,CAAA,CAAA,SAAS,IAAK,UAAkB,EAAE,OAAO,IAAI,UAAU,CAA4B;IACnF,CAAA,CAAA,aAAa,IAAK,cAAsB,EAAE,OAAO,IAAI,cAAc,CAAgC;IACnG,CAAA,CAAA,OAAO,IAAK,QAAgB,EAAE,OAAO,IAAI,QAAQ,CAA0B;AAC1F,CAAC,EAjTgB,CAAC,KAAD,CAAC,GAAA,EAAA,CAAA,CAAA;;ACtTlB;AACA;AAEA;AACA;AACA;AAGM,SAAU,IAAI,CAAC,GAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CtB,IAAA,QAAQ,KAAK,CAAC;AAChB;AAEA,SAAS,KAAK,CAAC,GAAG,EAAA;;;;;;;;;;;;AAYhB,IAAA,QAAQ,KAAK,CAAC;AAChB;;AChEA;AACA;AAEA,MAAM,MAAM,GAAG;AACb,IAAA,KAAK,CAAC,CAAC,EAAA;AACL,QAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAChB,CAAC;AACD,IAAA,IAAI,CAAC,CAAC,EAAA;AACJ,QAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAChB,CAAC;AACD,IAAA,GAAG,CAAC,CAAC,EAAA;AACH,QAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAChB,CAAC;AACD,IAAA,KAAK,CAAC,CAAC,EAAA;AACL,QAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAChB,CAAC;AACD,IAAA,MAAM,CAAC,CAAC,EAAA;AACN,QAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAChB,CAAC;AACD,IAAA,OAAO,CAAC,CAAC,EAAA;AACP,QAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAChB,CAAC;AACD,IAAA,IAAI,CAAC,CAAC,EAAA;AACJ,QAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAChB,CAAC;AACD,IAAA,SAAS,CAAC,CAAC,EAAA;AACT,QAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAChB,CAAC;CACF;AAED,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoB;AAEvC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAG;IACxC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;AACzB,IAAA,OAAO,MAAM,CAAC,GAAG,CAAC;AACpB,CAAC,CAAC;AAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnC,IAAA,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAa;AAC7B,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAa,CAAC;QAC9B,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;IACtB;AACF;AAEO,MAAMA,OAAK,GAAU,MAAa;AACzC;;ACjDA;AACA,SAAS,UAAU,CAAC,IAAI,EAAA;AACtB,IAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5B,QAAA,MAAM,IAAI,SAAS,CACjB,8CAA8C,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CACtE;IACH;AACF;AAEA;AACA,SAAS,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAA;IAChD,IAAI,GAAG,GAAG,EAAE;IACZ,IAAI,iBAAiB,GAAG,CAAC;AACzB,IAAA,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,IAAI,GAAG,CAAC;AACZ,IAAA,IAAI,IAAI;AACR,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACrC,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM;AAAE,YAAA,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACzC,aAAA,IAAI,IAAI,KAAK,EAAE;YAAQ;;AACvB,YAAA,IAAI,GAAG,EAAE;AACd,QAAA,IAAI,IAAI,KAAK,EAAE,QAAQ;YACrB,IAAI,SAAS,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE;;YAEvC;iBAAO,IAAI,SAAS,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE;AAC5C,gBAAA,IACE,GAAG,CAAC,MAAM,GAAG,CAAC;AACd,oBAAA,iBAAiB,KAAK,CAAC;AACvB,oBAAA,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE;AACrC,oBAAA,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,QACrC;AACA,oBAAA,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;wBAClB,IAAI,cAAc,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC;wBACzC,IAAI,cAAc,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AACrC,4BAAA,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE;gCACzB,GAAG,GAAG,EAAE;gCACR,iBAAiB,GAAG,CAAC;4BACvB;iCAAO;gCACL,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC;AAClC,gCAAA,iBAAiB,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC;4BAC3D;4BACA,SAAS,GAAG,CAAC;4BACb,IAAI,GAAG,CAAC;4BACR;wBACF;oBACF;AAAO,yBAAA,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;wBAC/C,GAAG,GAAG,EAAE;wBACR,iBAAiB,GAAG,CAAC;wBACrB,SAAS,GAAG,CAAC;wBACb,IAAI,GAAG,CAAC;wBACR;oBACF;gBACF;gBACA,IAAI,cAAc,EAAE;AAClB,oBAAA,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;wBAAE,GAAG,IAAI,KAAK;;wBAC3B,GAAG,GAAG,IAAI;oBACf,iBAAiB,GAAG,CAAC;gBACvB;YACF;iBAAO;AACL,gBAAA,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;AAAE,oBAAA,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC;;oBACxD,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC;AACvC,gBAAA,iBAAiB,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC;YACvC;YACA,SAAS,GAAG,CAAC;YACb,IAAI,GAAG,CAAC;QACV;aAAO,IAAI,IAAI,KAAK,EAAE,UAAU,IAAI,KAAK,CAAC,CAAC,EAAE;AAC3C,YAAA,EAAE,IAAI;QACR;aAAO;YACL,IAAI,GAAG,CAAC,CAAC;QACX;IACF;AACA,IAAA,OAAO,GAAG;AACZ;AAEA,SAAS,OAAO,CAAC,GAAG,EAAE,UAAU,EAAA;IAC9B,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,IAAI,UAAU,CAAC,IAAI;IAC3C,IAAI,IAAI,GACN,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,KAAK,UAAU,CAAC,GAAG,IAAI,EAAE,CAAC;IACrE,IAAI,CAAC,GAAG,EAAE;AACR,QAAA,OAAO,IAAI;IACb;AACA,IAAA,IAAI,GAAG,KAAK,UAAU,CAAC,IAAI,EAAE;QAC3B,OAAO,GAAG,GAAG,IAAI;IACnB;AACA,IAAA,OAAO,GAAG,GAAG,GAAG,GAAG,IAAI;AACzB;AAEO,MAAMC,MAAI,GAAG;;AAElB,IAAA,OAAO,EAAE,SAAS,OAAO,CAAC,aAAa,EAAA;AACrC,QAAA,OAAO,aAAa;IACtB,CAAC;AAED,IAAA,SAAS,EAAE,SAAS,SAAS,CAAC,OAAO,EAAA;QACnC,UAAU,CAAC,OAAO,CAAC;AAEnB,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,GAAG;AAEpC,QAAA,IAAI,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AAC9C,QAAA,IAAI,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;;QAGtE,OAAO,GAAG,oBAAoB,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC;AAEpD,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,GAAG,GAAG;AACtD,QAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,iBAAiB;YAAE,OAAO,IAAI,GAAG;AAE3D,QAAA,IAAI,UAAU;YAAE,OAAO,GAAG,GAAG,OAAO;AACpC,QAAA,OAAO,OAAO;IAChB,CAAC;AAED,IAAA,UAAU,EAAE,SAAS,UAAU,CAAC,OAAO,EAAA;QACrC,UAAU,CAAC,OAAO,CAAC;AACnB,QAAA,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE;IAC3D,CAAC;IAED,IAAI,EAAE,SAAS,IAAI,GAAA;AACjB,QAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,GAAG;AACtC,QAAA,IAAI,MAAM;AACV,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACzC,YAAA,IAAI,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC;YACtB,UAAU,CAAC,GAAG,CAAC;AACf,YAAA,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClB,IAAI,MAAM,KAAK,SAAS;oBAAE,MAAM,GAAG,GAAG;;AACjC,oBAAA,MAAM,IAAI,GAAG,GAAG,GAAG;YAC1B;QACF;QACA,IAAI,MAAM,KAAK,SAAS;AAAE,YAAA,OAAO,GAAG;AACpC,QAAA,OAAOA,MAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC/B,CAAC;AAED,IAAA,QAAQ,EAAE,SAAS,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAA;QAClC,UAAU,CAAC,IAAI,CAAC;QAChB,UAAU,CAAC,EAAE,CAAC;QAEd,IAAI,IAAI,KAAK,EAAE;AAAE,YAAA,OAAO,EAAE;AAE1B,QAAA,IAAI,GAAGA,MAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AACzB,QAAA,EAAE,GAAGA,MAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAErB,IAAI,IAAI,KAAK,EAAE;AAAE,YAAA,OAAO,EAAE;;QAG1B,IAAI,SAAS,GAAG,CAAC;QACjB,OAAO,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE;YAC3C,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE;gBAAQ;QAC/C;AACA,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM;AACzB,QAAA,IAAI,OAAO,GAAG,OAAO,GAAG,SAAS;;QAGjC,IAAI,OAAO,GAAG,CAAC;QACf,OAAO,OAAO,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE;YACrC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE;gBAAQ;QAC3C;AACA,QAAA,IAAI,KAAK,GAAG,EAAE,CAAC,MAAM;AACrB,QAAA,IAAI,KAAK,GAAG,KAAK,GAAG,OAAO;;AAG3B,QAAA,IAAI,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK;AAC9C,QAAA,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC;AACT,QAAA,OAAO,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC,EAAE;AACvB,YAAA,IAAI,CAAC,KAAK,MAAM,EAAE;AAChB,gBAAA,IAAI,KAAK,GAAG,MAAM,EAAE;AAClB,oBAAA,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ;;;wBAG3C,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;oBAClC;AAAO,yBAAA,IAAI,CAAC,KAAK,CAAC,EAAE;;;wBAGlB,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;oBAC9B;gBACF;AAAO,qBAAA,IAAI,OAAO,GAAG,MAAM,EAAE;AAC3B,oBAAA,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ;;;wBAG/C,aAAa,GAAG,CAAC;oBACnB;AAAO,yBAAA,IAAI,CAAC,KAAK,CAAC,EAAE;;;wBAGlB,aAAa,GAAG,CAAC;oBACnB;gBACF;gBACA;YACF;YACA,IAAI,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC;YAC7C,IAAI,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC;YACvC,IAAI,QAAQ,KAAK,MAAM;gBAAE;AACpB,iBAAA,IAAI,QAAQ,KAAK,EAAE;gBAAQ,aAAa,GAAG,CAAC;QACnD;QAEA,IAAI,GAAG,GAAG,EAAE;;;AAGZ,QAAA,KAAK,CAAC,GAAG,SAAS,GAAG,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,EAAE,CAAC,EAAE;AACzD,YAAA,IAAI,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ;AACpD,gBAAA,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;oBAAE,GAAG,IAAI,IAAI;;oBAC5B,GAAG,IAAI,KAAK;YACnB;QACF;;;AAIA,QAAA,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,aAAa,CAAC;aAC7D;YACH,OAAO,IAAI,aAAa;YACxB,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE;AAAQ,gBAAA,EAAE,OAAO;AAClD,YAAA,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;QAC1B;IACF,CAAC;AAED,IAAA,SAAS,EAAE,SAAS,SAAS,CAAC,IAAI,EAAA;AAChC,QAAA,OAAO,IAAI;IACb,CAAC;AAED,IAAA,OAAO,EAAE,SAAS,OAAO,CAAC,IAAI,EAAA;QAC5B,UAAU,CAAC,IAAI,CAAC;AAChB,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,GAAG;QACjC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAC7B,QAAA,IAAI,OAAO,GAAG,IAAI,KAAK,EAAE,CAAC;AAC1B,QAAA,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,YAAY,GAAG,IAAI;AACvB,QAAA,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;AACzC,YAAA,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACzB,YAAA,IAAI,IAAI,KAAK,EAAE,QAAQ;gBACrB,IAAI,CAAC,YAAY,EAAE;oBACjB,GAAG,GAAG,CAAC;oBACP;gBACF;YACF;iBAAO;;gBAEL,YAAY,GAAG,KAAK;YACtB;QACF;QAEA,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,OAAO,OAAO,GAAG,GAAG,GAAG,GAAG;AAC1C,QAAA,IAAI,OAAO,IAAI,GAAG,KAAK,CAAC;AAAE,YAAA,OAAO,IAAI;QACrC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;IAC3B,CAAC;AAED,IAAA,QAAQ,EAAE,SAAS,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAA;AACtC,QAAA,IAAI,GAAG,KAAK,SAAS,IAAI,OAAO,GAAG,KAAK,QAAQ;AAC9C,YAAA,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC;QACxD,UAAU,CAAC,OAAO,CAAC;QAEnB,IAAI,KAAK,GAAG,CAAC;AACb,QAAA,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,YAAY,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC;AAEL,QAAA,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;YACvE,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,IAAI,GAAG,KAAK,OAAO;AAAE,gBAAA,OAAO,EAAE;AAC/D,YAAA,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC;AAC3B,YAAA,IAAI,gBAAgB,GAAG,CAAC,CAAC;AACzB,YAAA,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;gBACxC,IAAI,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AAChC,gBAAA,IAAI,IAAI,KAAK,EAAE,QAAQ;;;oBAGrB,IAAI,CAAC,YAAY,EAAE;AACjB,wBAAA,KAAK,GAAG,CAAC,GAAG,CAAC;wBACb;oBACF;gBACF;qBAAO;AACL,oBAAA,IAAI,gBAAgB,KAAK,CAAC,CAAC,EAAE;;;wBAG3B,YAAY,GAAG,KAAK;AACpB,wBAAA,gBAAgB,GAAG,CAAC,GAAG,CAAC;oBAC1B;AACA,oBAAA,IAAI,MAAM,IAAI,CAAC,EAAE;;wBAEf,IAAI,IAAI,KAAK,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AACnC,4BAAA,IAAI,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE;;;gCAGnB,GAAG,GAAG,CAAC;4BACT;wBACF;6BAAO;;;4BAGL,MAAM,GAAG,CAAC,CAAC;4BACX,GAAG,GAAG,gBAAgB;wBACxB;oBACF;gBACF;YACF;YAEA,IAAI,KAAK,KAAK,GAAG;gBAAE,GAAG,GAAG,gBAAgB;iBACpC,IAAI,GAAG,KAAK,CAAC,CAAC;AAAE,gBAAA,GAAG,GAAG,OAAO,CAAC,MAAM;YACzC,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;QAClC;aAAO;AACL,YAAA,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;gBACxC,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ;;;oBAGtC,IAAI,CAAC,YAAY,EAAE;AACjB,wBAAA,KAAK,GAAG,CAAC,GAAG,CAAC;wBACb;oBACF;gBACF;AAAO,qBAAA,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;;;oBAGrB,YAAY,GAAG,KAAK;AACpB,oBAAA,GAAG,GAAG,CAAC,GAAG,CAAC;gBACb;YACF;YAEA,IAAI,GAAG,KAAK,CAAC,CAAC;AAAE,gBAAA,OAAO,EAAE;YACzB,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;QAClC;IACF,CAAC;AAED,IAAA,OAAO,EAAE,SAAS,OAAO,CAAC,OAAO,EAAA;QAC/B,UAAU,CAAC,OAAO,CAAC;AACnB,QAAA,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,SAAS,GAAG,CAAC;AACjB,QAAA,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,YAAY,GAAG,IAAI;;;QAGvB,IAAI,WAAW,GAAG,CAAC;AACnB,QAAA,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;YAC5C,IAAI,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AAChC,YAAA,IAAI,IAAI,KAAK,EAAE,QAAQ;;;gBAGrB,IAAI,CAAC,YAAY,EAAE;AACjB,oBAAA,SAAS,GAAG,CAAC,GAAG,CAAC;oBACjB;gBACF;gBACA;YACF;AACA,YAAA,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;;;gBAGd,YAAY,GAAG,KAAK;AACpB,gBAAA,GAAG,GAAG,CAAC,GAAG,CAAC;YACb;AACA,YAAA,IAAI,IAAI,KAAK,EAAE,QAAQ;;gBAErB,IAAI,QAAQ,KAAK,CAAC,CAAC;oBAAE,QAAQ,GAAG,CAAC;qBAC5B,IAAI,WAAW,KAAK,CAAC;oBAAE,WAAW,GAAG,CAAC;YAC7C;AAAO,iBAAA,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE;;;gBAG1B,WAAW,GAAG,CAAC,CAAC;YAClB;QACF;QAEA,IACE,QAAQ,KAAK,CAAC,CAAC;YACf,GAAG,KAAK,CAAC,CAAC;;AAEV,YAAA,WAAW,KAAK,CAAC;;AAEjB,aAAC,WAAW,KAAK,CAAC,IAAI,QAAQ,KAAK,GAAG,GAAG,CAAC,IAAI,QAAQ,KAAK,SAAS,GAAG,CAAC,CAAC,EACzE;AACA,YAAA,OAAO,EAAE;QACX;QACA,OAAO,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC;IACrC,CAAC;AAED,IAAA,MAAM,EAAE,SAAS,MAAM,CAAC,UAAU,EAAA;QAChC,IAAI,UAAU,KAAK,IAAI,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;YACzD,MAAM,IAAI,SAAS,CACjB,kEAAkE;gBAChE,OAAO,UAAU,CACpB;QACH;AACA,QAAA,OAAO,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC;IACjC,CAAC;AAED,IAAA,KAAK,EAAE,SAAS,KAAK,CAAC,OAAO,EAAA;QAC3B,UAAU,CAAC,OAAO,CAAC;QAEnB,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;AAC5D,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,GAAG;QACpC,IAAI,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AAChC,QAAA,IAAI,UAAU,GAAG,IAAI,KAAK,EAAE,CAAC;AAC7B,QAAA,IAAI,KAAK;QACT,IAAI,UAAU,EAAE;AACd,YAAA,GAAG,CAAC,IAAI,GAAG,GAAG;YACd,KAAK,GAAG,CAAC;QACX;aAAO;YACL,KAAK,GAAG,CAAC;QACX;AACA,QAAA,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,SAAS,GAAG,CAAC;AACjB,QAAA,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,YAAY,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;;;QAI1B,IAAI,WAAW,GAAG,CAAC;;AAGnB,QAAA,OAAO,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE;AACtB,YAAA,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AAC5B,YAAA,IAAI,IAAI,KAAK,EAAE,QAAQ;;;gBAGrB,IAAI,CAAC,YAAY,EAAE;AACjB,oBAAA,SAAS,GAAG,CAAC,GAAG,CAAC;oBACjB;gBACF;gBACA;YACF;AACA,YAAA,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;;;gBAGd,YAAY,GAAG,KAAK;AACpB,gBAAA,GAAG,GAAG,CAAC,GAAG,CAAC;YACb;AACA,YAAA,IAAI,IAAI,KAAK,EAAE,QAAQ;;gBAErB,IAAI,QAAQ,KAAK,CAAC,CAAC;oBAAE,QAAQ,GAAG,CAAC;qBAC5B,IAAI,WAAW,KAAK,CAAC;oBAAE,WAAW,GAAG,CAAC;YAC7C;AAAO,iBAAA,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE;;;gBAG1B,WAAW,GAAG,CAAC,CAAC;YAClB;QACF;QAEA,IACE,QAAQ,KAAK,CAAC,CAAC;YACf,GAAG,KAAK,CAAC,CAAC;;AAEV,YAAA,WAAW,KAAK,CAAC;;AAEjB,aAAC,WAAW,KAAK,CAAC,IAAI,QAAQ,KAAK,GAAG,GAAG,CAAC,IAAI,QAAQ,KAAK,SAAS,GAAG,CAAC,CAAC,EACzE;AACA,YAAA,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;AACd,gBAAA,IAAI,SAAS,KAAK,CAAC,IAAI,UAAU;AAC/B,oBAAA,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;;AACxC,oBAAA,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC;YAC1D;QACF;aAAO;AACL,YAAA,IAAI,SAAS,KAAK,CAAC,IAAI,UAAU,EAAE;gBACjC,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC;gBACrC,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YAClC;iBAAO;gBACL,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC;gBAC7C,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC;YAC1C;YACA,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC;QACxC;QAEA,IAAI,SAAS,GAAG,CAAC;AAAE,YAAA,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC;AACvD,aAAA,IAAI,UAAU;AAAE,YAAA,GAAG,CAAC,GAAG,GAAG,GAAG;AAElC,QAAA,OAAO,GAAG;IACZ,CAAC;AAED,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,KAAK,EAAE;;QAEL,SAAS,EAAE,CAAC,IAAG;AACb,YAAA,OAAO,CAAC;QACV,CAAC;AACF,KAAA;AACD,IAAA,KAAK,EAAE,IAAI;CACZ;AACD;;ACndA;AACA;AACA,MAAM,WAAW,GAAG;AAClB,IAAA,WAAW,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC;AACzC,IAAA,UAAU,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC;IACvC,CAAC,aAAa,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC;IAC7C,CAAC,eAAe,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC;IACjD,CAAC,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC,SAAS,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC;IACrC,CAAC,iBAAiB,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC;IACrD,CAAC,iBAAiB,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC;CACtD;AACD;;AAEG;AACG,SAAU,cAAc,CAAI,EAA4B,EAAA;AAC5D,IAAA,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,EAAE;AAC3B,IAAA,OAAO,CAAC,EAAE,OAAO,IAAI,CAAC;AACxB;AAsCA,IAAI,UAAU,IAAiC,CAC7C,IAAmB,EACnB,IAAY,KACF;AACV,IAAA,OAAO,MAAM,CACX,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,EAChD;AACG,SAAA,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;AACpB,SAAA,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CACxB;AACH,CAAC;AA2BD;AAEA;AACA,IAAI;AACJ;AACA,CAAC,GAAG,MAAM;AACV;AACA;AACA;AAEA;AAEA;AAEA,IAAI,IAAI,GAAG,KAAK;AAChB;AACA;AAGA;AACA;AACA,IAAI,GAAGC,MAAQ;AACf;AACA;AAEA;AAEA,IAAI,KAAK,GAAU,KAAK;AACxB;AACA;AAGA;AACA;AACA,KAAK,GAAGC,OAAS;AACjB;AACA;AAEA;AACA,IAAI,IAAI,GAAG,KAAK;AAChB;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA,IAAI,GAAG,GAAG,KAAK;AACf;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA,IAAI,EAAE,GAAG,KAAK;AACd;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA,IAAI,aAAa,GAAG,KAAK;AACzB;AACA;AAEA;AAEA;AACA,IAAI,IAAI,GAAG,KAAK;AAChB;AACA;AAEA;AAEA;AACA,IAAI,KAAK,GAAG,KAAK;AACjB;AACA;AAEA;AAEA;AACA,IAAI,MAAM,GAAG,KAAK,CAA2B;AAC7C;AACA;AAEA;AAEA;AACA,IAAI,OAAO,GAAG,KAAK,CAA2B;AAC9C;AACA;AAEA;AAEA;AACA;;;;AAIG;AACH,IAAI,UAAU,GAAG,KAAK;AACtB;AACA;AAEA;AAEA;AACA,IAAI,KAAK,GAAG,KAAK;AACjB;AACA;AAEA;AAEA;AACA,IAAI,MAAM,GAAG,KAAK;AAClB;AACA;AAEA;AAEA;AACA,IAAI,GAAG,GAAG,KAAK;AACf;AACA;AAEA;AAEA;AACA,IAAI,KAAK,GAAG,KAAK;AACjB;AACA;AAEA;AAEA;AACA,IAAI,MAAM,GAAG,KAAK;AAClB;AACA;AAEA;AAEA;AACA,IAAI,QAAQ,GAAG,KAAK;AACpB;AACA;AAEA;AAEA;AACA,IAAI,MAAM,GAAG,KAAK;AAClB;AACA;AAEA;AAEA;AACA,IAAI,GAAG,GAAG,KAAK;AACf;AACA;AAEA;AAEA;AACA,IAAI,EAAE,GAAG,KAAK;AACd;AACA;AAEA;AAEA;AACA,IAAI,EAAE,GAAG,KAAK;AACd;AACA;AAEA;AAEA;AAEA;AAEA;AACA;;AAEG;AACH,MAAM,SAAS,GAAG,CAAC,CAAS,KAAY;;;;;AAMtC,IAAA,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACxB,QAAA,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAA,EAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA,EAAA,CAAI,CAAC;IAC/D;;IAEA,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;AAChC;AACA;AAEA;;AAEG;AACH,MAAM,iBAAiB,GAAG,CACxB,qBAAwC,KAC9B;AACV,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE;AACxC,QAAA,qBAAqB,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC;IACzD;AAEA,IAAA,IAAI,OAAO,qBAAqB,KAAK,QAAQ,EAAE;AAC7C,QAAA,OAAO,qBAAqB;IAC9B;;IAIA,IACE,OAAO,qBAAqB,KAAK,QAAQ;AACzC,QAAA,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,EACtC;AACA,QAAA,qBAAqB,GAAG,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC;IAC7D;IAEA,MAAM,oBAAoB,GAAG,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC;IACpE,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACpE,IAAI,oBAAoB,EAAE;QACxB,OAAO,CAAC,IAAI,CAAC,CAAA;AAC8B,8CAAA,CAAA,CAAC;;;;;IAM9C;IAEA,IAAI,WAAW,EAAE;QACf,MAAM,WAAW,GAAG,qBAAqB,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,EAAE;AAC3E,QAAA,OAAO,CAAC,OAAO,CACb,CAAA,0EAAA,EAA6E,WAAW,CAAA;GAC3F,qBAAqB,CAAA,CAAA,CAAG,CACtB;AACD,QAAA,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC;IACxC;AAEA,IAAA,qBAAqB,GAAG,CAAC,qBAAqB,IAAI,EAAE;AACjD,SAAA,OAAO,CAAC,KAAK,EAAE,GAAG;AAClB,SAAA,OAAO,CAAC,OAAO,EAAE,GAAG;AACpB,SAAA,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAEzB,IAAI,SAAS,GAAG,KAAK;;;;;IAOrB,MAAM,aAAa,GAAG,iBAAiB;;;IAGvC,IAAI,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE;AAC1D,QAAA,qBAAqB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD;;;;;;;;;AAYA,IAAA,OAAO,qBAAqB;AAC9B;AAgCA;;AClZM,IAAW;AAAjB,CAAA,UAAiB,UAAU,EAAA;IA8CZ,UAAA,CAAA,kBAAkB,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC;AAKhE,IAAA,IAAY,sBAIX;AAJD,IAAA,CAAA,UAAY,sBAAsB,EAAA;AAChC,QAAA,sBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,QAAA,sBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,QAAA,sBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,IAAA,CAAC,EAJW,sBAAsB,GAAtB,UAAA,CAAA,sBAAsB,KAAtB,iCAAsB,GAAA,EAAA,CAAA,CAAA;AAOrB,IAAA,UAAA,CAAA,kBAAkB,GAAG;QAChC,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO;QACP,IAAI;QACJ,KAAK;KACN;;;AAQD,IAAA,IAAY,eAqEX;AArED,IAAA,CAAA,UAAY,eAAe,EAAA;AACzB;;;AAGG;AACH,QAAA,eAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT;;AAEG;AACH,QAAA,eAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB;;AAEG;AACH,QAAA,eAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX;;AAEG;AACH,QAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf;;AAEG;AACH,QAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb;;AAEG;AACH,QAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb;;AAEG;AACH,QAAA,eAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT;;AAEG;AACH,QAAA,eAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB;;AAEG;AACH,QAAA,eAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX;;AAEG;AACH,QAAA,eAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB;;AAEG;AACH,QAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb;;AAEG;AACH,QAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb;;;;;AAKG;AACH,QAAA,eAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B;;AAEG;AACH,QAAA,eAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT;;AAEG;AACH,QAAA,eAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB;;AAEG;AACH,QAAA,eAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACrB,IAAA,CAAC,EArEW,eAAe,GAAf,UAAA,CAAA,eAAe,KAAf,0BAAe,GAAA,EAAA,CAAA,CAAA;AA8Hd,IAAA,UAAA,CAAA,qBAAqB,GAAoC;QACpE,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;KACN;;;AA0CY,IAAA,UAAA,CAAA,kBAAkB,GAAG;QAChC,YAAY;QACZ,SAAS;QACT,aAAa;QACb,SAAS;QACT,qBAAqB;KACtB;;;;AAqIY,IAAA,UAAA,CAAA,SAAS,GAAG;AACvB,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,uBAAuB;AAC/B,QAAA,MAAM,EAAE,uBAAuB;AAC/B,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,8BAA8B;AACtC,QAAA,MAAM,EAAE,0BAA0B;AAClC,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,KAAK,EAAE,oBAAoB;AAC3B,QAAA,MAAM,EAAE,qBAAqB;AAC7B,QAAA,MAAM,EAAE,mBAAmB;AAC3B,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,OAAO,EACL,yEAAyE;AAC3E,QAAA,MAAM,EAAE,+BAA+B;AACvC,QAAA,OAAO,EAAE,sBAAsB;AAC/B,QAAA,KAAK,EAAE,kBAAkB;AACzB,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,MAAM,EAAE,0BAA0B;AAClC,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,0BAA0B;AAClC,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,KAAK,EAAE,iBAAiB;AACxB,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,qCAAqC;AAC9C,QAAA,MAAM,EAAE,iDAAiD;AACzD,QAAA,MAAM,EAAE,gDAAgD;AACxD,QAAA,MAAM,EAAE,yCAAyC;AACjD,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,+BAA+B;AACvC,QAAA,OAAO,EACL,2EAA2E;AAC7E,QAAA,MAAM,EAAE,qBAAqB;AAC7B,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,KAAK,EAAE,kBAAkB;AACzB,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,+BAA+B;AACvC,QAAA,MAAM,EAAE,mBAAmB;AAC3B,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,uBAAuB;AAC/B,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,QAAQ,EAAE,YAAY;AACtB,QAAA,QAAQ,EAAE,uBAAuB;AACjC,QAAA,MAAM,EAAE,0BAA0B;AAClC,QAAA,OAAO,EACL,mEAAmE;AACrE,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,iCAAiC;AACzC,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,KAAK,EAAE,6BAA6B;KAC5B;AAsBG,IAAA,UAAA,CAAA,eAAe,GAAG;QAC7B,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,aAAa;QACb,WAAW;QACX,SAAS;QACT,OAAO;KACO;IAGH,UAAA,CAAA,YAAY,GAAG,UAAA,CAAA,SAAS;IAyFxB,UAAA,CAAA,cAAc,GAAG,oCAAoC;AAElE;;AAEG;IACU,UAAA,CAAA,eAAe,GAAG,mBAAmB;IAErC,UAAA,CAAA,cAAc,GAAG,WAAW;IAC5B,UAAA,CAAA,eAAe,GAAG,WAAW;IAE7B,UAAA,CAAA,4BAA4B,GAAG,sBAAsB;IACrD,UAAA,CAAA,yBAAyB,GAAG,mBAAmB;IAE/C,UAAA,CAAA,uBAAuB,GAAG,eAAe;IAEzC,UAAA,CAAA,uBAAuB,GAAG,eAAe;AAEtD;;AAEG;IACU,UAAA,CAAA,cAAc,GAAG,kBAAkB;AAEhD;;AAEG;IACU,UAAA,CAAA,cAAc,GAAG,iBAAiB;AACjD,CAAC,EAvmBgB,UAAU,KAAV,UAAU,GAAA,EAAA,CAAA,CAAA;;ACJpB,MAAM,UAAU,GAAG;AACxB,IAAA,OAAO,EAAE;AACP,QAAA,oBAAoB,EAAE,sBAAsB;AAC7C,KAAA;;;ACDI,MAAM,cAAc,GAAG;AAEvB,MAAM,YAAY,GAAG;AAErB,MAAM,eAAe,GAAG;AAExB,MAAM,cAAc,GAAG;AAEvB,MAAM,eAAe,GAAG;AAExB,MAAM,aAAa,GAAG;AAEtB,MAAM,YAAY,GAAG;AAErB,MAAM,WAAW,GAAG,CAAA,4BAAA,EAA+B,eAAe;AAClE,MAAM,qBAAqB,GAAG,CAAA,4BAAA,EAA+B,cAAc;IAEtE;AAAZ,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,WAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,WAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C;AAC3C,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACrB,CAAC,EALW,WAAW,KAAX,WAAW,GAAA,EAAA,CAAA,CAAA;AAShB,MAAM,iBAAiB,GAAG;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;;AAEG;AACI,MAAM,UAAU,GAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACO,MAAM,sBAAsB,GAAG;AACpC,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,aAAa,EAAE,eAAe;AAC9B,IAAA,gBAAgB,EAAE,mBAAmB;AACrC,IAAA,mBAAmB,EAAE,qBAAqB;;AAE5C;AAEA;AACO,MAAM,QAAQ,GAAG;AACtB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,cAAc,EAAE,gBAAgB;AAChC,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,YAAY,EAAE,cAAc;AAC5B,IAAA,gBAAgB,EAAE,iBAAiB;AACnC,IAAA,eAAe,EAAE,iBAAiB;AAClC,IAAA,eAAe,EAAE,iBAAiB;AAClC,IAAA,YAAY,EAAE,cAAc;AAC5B,IAAA,gBAAgB,EAAE,kBAAkB;AACpC,IAAA,iBAAiB,EAAE,mBAAmB;AACtC,IAAA,YAAY,EAAE,cAAc;AAC5B,IAAA,UAAU,EAAE,YAAY;AACxB;;AAEG;AACH,IAAA,aAAa,EAAE,eAAe;AAC9B;;AAEG;AACH,IAAA,YAAY,EAAE,cAAc;AAC5B;;AAEG;AACH,IAAA,sBAAsB,EAAE,uBAAuB;AAC/C;;AAEG;AACH,IAAA,uBAAuB,EAAE,wBAAwB;AACjD;;AAEG;AACH,IAAA,kCAAkC,EAAE,mCAAmC;AACvE;;AAEG;AACH,IAAA,oBAAoB,EAAE,sBAAsB;AAE5C,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,iBAAiB,EAAE,mBAAmB;AACtC,IAAA,mBAAmB,EAAE,sBAAsB;AAC3C,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,cAAc,EAAE,gBAAgB;AAChC;;AAEG;AACH,IAAA,uBAAuB,EAAE,yBAAyB;AAClD,IAAA,oBAAoB,EAAE,sBAAsB;AAC5C,IAAA,eAAe,EAAE,iBAAiB;AAClC,IAAA,aAAa,EAAE,eAAe;AAC9B,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,YAAY,EAAE,cAAc;AAC5B,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,iBAAiB,EAAE,mBAAmB;AACtC;;AAEG;AACH,IAAA,gBAAgB,EAAE,qBAAqB;AACvC,IAAA,eAAe,EAAE,aAAa;AAC9B,IAAA,aAAa,EAAE,eAAe;AAC9B,IAAA,iBAAiB,EAAE,mBAAmB;AACtC,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,iBAAiB,EAAE,mBAAmB;AACtC,IAAA,cAAc,EAAE,iBAAiB;AACjC,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,aAAa,EAAE,kBAAkB;AACjC,IAAA,oBAAoB,EAAE,sBAAsB;AAC5C,IAAA,kBAAkB,EAAE,oBAAoB;AACxC,IAAA,WAAW,EAAE,oBAAoB;AACjC,IAAA,GAAG,sBAAsB;;AAE3B;AAEA;AACO,MAAM,eAAe,GAAG;;AAE7B,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,cAAc,EAAE,kBAAkB;AAClC,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,WAAW,EAAE,cAAc;AAC3B,IAAA,cAAc,EAAE,UAAU;AAC1B,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,YAAY,EAAE,cAAc;AAC5B,IAAA,aAAa,EAAE,eAAe;AAC9B,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,iBAAiB,EAAE,mBAAmB;AACtC,IAAA,UAAU,EAAE,aAAa;AACzB,IAAA,YAAY,EAAE,eAAe;AAC7B,IAAA,oBAAoB,EAAE,wBAAwB;AAC9C,IAAA,iBAAiB,EAAE,oBAAoB;;AAEzC;AAEA;AACO,MAAM,UAAU,GAAG;AACxB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,MAAM,CAAC,CAAuB,EAAA;QAC5B,OAAO,CAAA,QAAA,EAAW,CAAC,CAAA,CAAE;IACvB,CAAC;AACD,IAAA,cAAc,EAAE;AACd,QAAA,sBAAsB,EAAE,+BAA+B;AACvD,QAAA,oBAAoB,EAAE,6BAA6B;AACpD,KAAA;AACD,IAAA,GAAG,eAAe;;AAEpB;AAEA;AACO,MAAM,wBAAwB,GAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AAEO,MAAM,yCAAyC,GAAG;IACvD,IAAI;IACJ,IAAI;IACJ,KAAK;CACN,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE;AAEf,MAAM,iBAAiB,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,GAAG,CAAA,CAAE;MAEjD,mBAAmB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,GAAG,CAAA,CAAE;AAEjE,MAAM,YAAY,GAAG;AAC1B,IAAA,GAAG,mBAAmB;AACtB,IAAA,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA,CAAA,EAAI,GAAG,EAAE,CAAC;;AAGnC,MAAM,mBAAmB,GAAG;AACjC,IAAA,GAAG,YAAY;AACf,IAAA,GAAG,iBAAiB;AACpB,IAAA,GAAG,yCAAyC;;AAGvC,MAAM,YAAY,GAAG;AAC1B,IAAA,eAAe,EAAE;AACf,QAAA,KAAK,EAAE,IAAI,MAAM,CAAC,qBAAqB,CAAC;AACxC,QAAA,GAAG,EAAE,IAAI,MAAM,CAAC,wBAAwB,CAAC;AACzC,QAAA,GAAG,EAAE,CAAC,GAAG,yCAAyC,EAAE,GAAG,mBAAmB,CAAC;AAC5E,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,KAAK,EAAE,IAAI,MAAM,CAAC,2BAA2B,CAAC;AAC9C,QAAA,GAAG,EAAE,IAAI,MAAM,CAAC,8BAA8B,CAAC;AAC/C,QAAA,GAAG,EAAE,iBAAiB;AACvB,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,KAAK,EAAE,IAAI,MAAM,CAAC,qBAAqB,CAAC;AACxC,QAAA,GAAG,EAAE,IAAI,MAAM,CAAC,wBAAwB,CAAC;AACzC,QAAA,GAAG,EAAE,YAAY;AAClB,KAAA;;AAGI,MAAM,sBAAsB,GAAG;IACpC,YAAY;;CAEb,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE;MAET,wBAAwB,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,GAAG,CACtE,GAAG,IAAI,IAAI,GAAG,CAAA,CAAE;AAGX,MAAM,aAAa,GAAG;IAC3B,YAAY;IACZ,cAAc;IACd,cAAc;IACd,cAAc;IACd,SAAS;IACT,WAAW;IACX,YAAY;IACZ,UAAU;IACV,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,WAAW;IACX,aAAa;IACb,YAAY;IACZ,cAAc;IACd,aAAa;IACb,WAAW;IACX,aAAa;IACb,cAAc;IACd,UAAU;IACV,WAAW;IACX,UAAU;IACV,SAAS;IACT,QAAQ;IACR,OAAO;IACP,aAAa;CACd,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE;AAEf,MAAM,uBAAuB,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,GAAG,CAAA,CAAE;AAElE,MAAM,YAAY,GAAG;AAC1B,IAAA,GAAG,iBAAiB;AACpB,IAAA,GAAG,YAAY;AACf,IAAA,GAAG,aAAa;;AAGX,MAAM,eAAe,GAAG;IAC7B,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA,GAAA,EAAM,GAAG,CAAA,CAAE,CAAC;IAC9C,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA,GAAA,EAAM,GAAG,CAAA,CAAE,CAAC;IACxC,eAAe;IACf,YAAY;IACZ,kBAAkB;IAClB,cAAc;IACd,iBAAiB;IACjB,eAAe;IACf,eAAe;IACf,gBAAgB;IAChB,eAAe;;AAGV,MAAM,IAAI,GAAG;AAClB,IAAA,OAAO,EAAE,CAAA,CAAA,EAAI,MAAM,GAAG,KAAK,CAAA,CAAE;AAC7B,IAAA,YAAY,EAAE,CAAA,CAAA,EAAI,MAAM,GAAG,SAAS,CAAA,CAAE;AACtC,IAAA,OAAO,EAAE,CAAA,CAAA,EAAI,MAAM,GAAG,KAAK,CAAA,CAAE;AAC7B,IAAA,WAAW,EAAE,CAAA,CAAA,EAAI,KAAK,GAAG,SAAS,CAAA,CAAE;AACpC,IAAA,MAAM,EAAE,CAAA,CAAA,EAAI,KAAK,GAAG,KAAK,CAAA,CAAE;AAC3B,IAAA,WAAW,EAAE,CAAA,CAAA,EAAI,KAAK,GAAG,SAAS,CAAA,CAAE;AACpC,IAAA,WAAW,EAAE,CAAA,CAAA,EAAI,KAAK,GAAG,QAAQ,CAAA,CAAE;IACnC,gBAAgB,EAAE,UAAU,GAAG,QAAQ;IACvC,iBAAiB,EAAE,UAAU,GAAG,SAAS;AACzC,IAAA,cAAc,EAAE,CAAA,EAAA,EAAK,MAAM,GAAG,KAAK,CAAA,CAAE;AACrC,IAAA,kBAAkB,EAAE,CAAA,EAAA,EAAK,MAAM,GAAG,QAAQ,CAAA,CAAE;AAC5C,IAAA,gBAAgB,EAAE,CAAA,EAAG,cAAc,GAAG,OAAO,CAAA,CAAE;AAC/C,IAAA,0BAA0B,EAAE,CAAA,EAAG,QAAQ,GAAG,oBAAoB,CAAA,CAAE;AAChE,IAAA,yBAAyB,EAAE,CAAA,EAAG,QAAQ,GAAG,mBAAmB,CAAA,CAAE;AAC9D,IAAA,gCAAgC,EAAE,CAAA,EAAG,QAAQ,GAAG,0BAA0B,CAAA,CAAE;;AAGvE,MAAM,sBAAsB,GAAG;AAE/B,MAAM,QAAQ,GAAG;AACtB,IAAA,QAAQ,EAAE,sBAAsB;AAChC,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,QAAQ,EAAE,kBAAkB;AAC5B,IAAA,WAAW,EAAE,MAAM;;AAGf,IAAW;AAAjB,CAAA,UAAiB,UAAU,EAAA;IACZ,UAAA,CAAA,uBAAuB,GAAG,wBAAwB;AACjE,CAAC,EAFgB,UAAU,KAAV,UAAU,GAAA,EAAA,CAAA,CAAA;AAIpB,MAAM,wBAAwB,GAAG;IACtC,MAAM;IACN,iBAAiB;IACjB,cAAc;IACd,eAAe;IACf,cAAc;IACd,sBAAsB;IACtB,0BAA0B;IAC1B,QAAQ;IACR,eAAe;IACf,oBAAoB;IACpB,eAAe;IACf,aAAa;IACb,YAAY;IACZ,UAAU;IACV,4BAA4B;IAC5B,iBAAiB;IACjB,gCAAgC;IAChC,gBAAgB;IAChB,KAAK;IACL,YAAY;IACZ,UAAU;IACV,aAAa;IACb,YAAY;IACZ,0BAA0B;IAC1B,WAAW;;AAGN,MAAM,eAAe,GAAG;IAC7B,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,QAAQ;IACR,YAAY;IACZ,QAAQ;IACR,YAAY;IACZ,SAAS;IACT,QAAQ;IACR,UAAU;IACV,MAAM;IACN,cAAc;IACd,KAAK;IACL,UAAU;IACV,SAAS;IACT,GAAG;;AAGE,MAAM,sBAAsB,GAAG;;AAEpC,IAAA,GAAG,eAAe;AAClB,IAAA,GAAG,sBAAsB;;AAGpB,MAAM,QAAQ,GAAG;;ACjcxB;AAsCA;AAEA,MAAM,uBAAuB,GAAG,KAAK;AAErC;AACM,IAAW;AAAjB,CAAA,UAAiB,KAAK,EAAA;;AAEP,IAAA,KAAA,CAAA,IAAI,GAAG,CAAC,MAAc,KAAmB;QACpD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;YACrC,UAAU,CAAC,MAAK;AACd,gBAAA,OAAO,CAAC,KAAK,CAAC,CAAC;AACjB,YAAA,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC;;;AAIY,IAAA,KAAA,CAAA,gBAAgB,GAAG,CAAC,YAAoB,KAAmB;;QAEtE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;YACrC,UAAU,CAAC,MAAK;;AAEd,gBAAA,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,EAAE,YAAY,CAAC;AAClB,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC;;;AAIY,IAAA,KAAA,CAAA,SAAS,GAAG,CACvB,KAAY,EACZ,cAAwB,KACtB;QACF,IAAI,IAAI,GAAG,EAAE;AACb,QAAA,OAAO;aACJ,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;aACf,MAAM,CAAC,UAAU,IAAI,EAAA;AACpB,YAAA,OAAO,IAAI,CAAC,cAAc,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI;AACrE,kBAAE;mBACC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AACjE,QAAA,CAAC,CAAQ;AACb,IAAA,CAAC;;;AAID;;;AAGG;AACU,IAAA,KAAA,CAAA,QAAQ,GAAG,CAAC,SAAc,KAAS;AAC9C,QAAA,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACxB,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,KAAA,CAAA,QAAQ,CAAC;QAChC;AACA,QAAA,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YACzB,OAAO,CAAC,CAAC,SAAS,CAChB,CAAC,CAAC,IAAI,CAAC,SAAS;AACb,iBAAA,IAAI;AACJ,iBAAA,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,KAAA,CAAA,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAC/C;QACH;AACA,QAAA,OAAO,SAAS;AAClB,IAAA,CAAC;;;AAID;;;AAGG;AACU,IAAA,KAAA,CAAA,oBAAoB,GAAG,CAClC,eAAuB,EACvB,OAEC,KACC;AACF,QAAA,OAAO,GAAG,OAAO,IAAK,EAAU;AAEhC,QAAA,IAAI,OAAO,EAAE,sBAAsB,EAAE;YACnC,OAAO,eAAe,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;QAC/D;QAEA,OAAO,eAAe,CAAC,OAAO,CAAC,wBAAwB,EAAE,MAAM,CAAC;AAClE,IAAA,CAAC;;;IAID,SAAgB,uBAAuB,CAAC,GAAW,EAAA;;QAEjD,MAAM,SAAS,GAAG,mBAAmB;;QAGrC,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;IACnC;AANgB,IAAA,KAAA,CAAA,uBAAuB,0BAMtC;;;IAIY,KAAA,CAAA,YAAY,GAAG,MAAK;;;AAG/B,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;IAIY,KAAA,CAAA,QAAQ,GAAG,MAAK;;;AAG3B,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;IAID,MAAM,UAAU,GAAG,EAAE;AACR,IAAA,KAAA,CAAA,WAAW,GAAG,OAAO,OAEjC,KAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BpB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAID;;;AAGG;AACH,IAAA,MAAM,WAAW,GAAG,CAAC,UAAU,EAAE,QAAQ,KAAI;;;;;;;;;;;;;;;;;;;;;AAqB3C,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED;;AAEG;AACH,IAAA,MAAM,UAAU,GAAG,UAAU,IAAG;;;;;;;;;;;;;;;AAe9B,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAEY,IAAA,KAAA,CAAA,eAAe,GAAG,CAAC,MAAc,KAAI;;;;;AAKhD,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAKD;;;AAGG;AACU,IAAA,KAAA,CAAA,QAAQ,GAAG,CAAC,GAAA,GAAc,EAAE,KAAI;AAC3C,QAAA,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE;AAC1C,QAAA,OAAO;AACJ,aAAA,OAAO,CAAC,qBAAqB,EAAE,UAAU,IAAI,EAAE,KAAK,EAAA;AACnD,YAAA,OAAO,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE;AAC7D,QAAA,CAAC;AACA,aAAA,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;AACxB,IAAA,CAAC;;;;AAMD,IAAA,IAAY,kBAOX;AAPD,IAAA,CAAA,UAAY,kBAAkB,EAAA;AAC5B,QAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,QAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,QAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;;;AAInB,IAAA,CAAC,EAPW,kBAAkB,GAAlB,KAAA,CAAA,kBAAkB,KAAlB,wBAAkB,GAAA,EAAA,CAAA,CAAA;;;;AA2B9B,IAAA,IAAiB,MAAM;AAAvB,IAAA,CAAA,UAAiB,MAAM,EAAA;;;AAGrB;;;;;;AAMG;AACI,QAAA,eAAe,iBAAiB,CACrC,MAAmB,EACnB,WAAmC,EAAA;;AAGnC,YAAA,OAAO,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QAClD;AANsB,QAAA,MAAA,CAAA,iBAAiB,oBAMtC;;;;AAKD;;;;AAIG;QACI,eAAe,iBAAiB,CAAC,IAAU,EAAA;YAChD,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AAC3C,gBAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;AAC/B,gBAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAK;AACtC,oBAAA,OAAO,CAAC,MAAM,CAAC,MAAa,CAAC;AAC/B,gBAAA,CAAC,CAAC;gBACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACzC,gBAAA,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAChC,YAAA,CAAC,CAAC;QACJ;AATsB,QAAA,MAAA,CAAA,iBAAiB,oBAStC;;;AAID;;;;AAIG;QACH,SAAgB,YAAY,CAAC,IAAU,EAAA;YACrC,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,CAAC,KAAI;AACrC,gBAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;AAC/B,gBAAA,MAAM,CAAC,SAAS,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAChD,gBAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;AAC5B,YAAA,CAAC,CAAC;QACJ;AANgB,QAAA,MAAA,CAAA,YAAY,eAM3B;;;AAID;;;;AAIG;AACI,QAAA,eAAe,YAAY,CAChC,UAAkB,EAClB,mBAA4C,EAAA;AAE5C,YAAA,IAAI,YAAY,GAA2B,KAAK,CAAQ;AACxD,YAAA,IAAI,WAAW,GAAW,KAAK,CAAQ;YACvC,IAAI,CAAC,mBAAmB,EAAE;gBACxB,MAAM,CAAC,GAAG,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC;gBACrD,IAAI,CAAC,CAAC,EAAE;AACN,oBAAA,MAAM,IAAI,KAAK,CACb,qDAAqD,UAAU,CAAA,CAAA,CAAG,CACnE;gBACH;;gBAEA,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC;gBACrC,YAAY,GAAG,WAAkB;gBACjC,WAAW,GAAG,UAAU;YAC1B;AACA,YAAA,YAAY,IACV,mBAAmB,GAAG,mBAAmB,GAAG,YAAY,IAAI,EAAE,CACxD;YACR,UAAU,GAAG,mBAAmB,GAAG,UAAU,GAAG,WAAW;YAC3D,MAAM,SAAS,GAAG,IAAI;AACtB,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;AACvC,YAAA,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM;YACzC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;AACtD,YAAA,MAAM,UAAU,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC;AAEzC,YAAA,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,WAAW,EAAE,EAAE,UAAU,EAAE;AAC/D,gBAAA,MAAM,KAAK,GAAG,UAAU,GAAG,SAAS;AACpC,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,EAAE,WAAW,CAAC;gBAEpD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC;;AAEpC,gBAAA,KAAK,IAAI,MAAM,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE;AAC3D,oBAAA,KAAK,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;gBACjD;gBACA,UAAU,CAAC,UAAU,CAAC,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC;YAChD;YACA,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QACrD;AAxCsB,QAAA,MAAA,CAAA,YAAY,eAwCjC;;;QAKM,eAAe,sBAAsB,CAC1C,IAAY,EAAA;AAEZ,YAAA,IAAI,MAAsB;;AAE1B,YAAA,MAAM,GAAG,MAAM,CAAC,YAAW;gBACzB,IAAI,uBAAuB,EAAE;AAC3B,oBAAA,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC;AACrC,oBAAA,OAAO,IAAI;gBACb;AACA,gBAAA,OAAO,IAAW;YACpB,CAAC,GAAG;;;;;;;AAQJ,YAAA,OAAO,MAAM;QACf;AApBsB,QAAA,MAAA,CAAA,sBAAsB,yBAoB3C;;;QAIM,eAAe,sBAAsB,CAC1C,YAA4B,EAAA;AAE5B,YAAA,IAAI,MAAc;;AAElB,YAAA,MAAM,GAAG,MAAM,CAAC,YAAW;gBACzB,IAAI,uBAAuB,EAAE;AAC3B,oBAAA,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,YAAmB,CAAC;AACpD,oBAAA,OAAO,IAAI;gBACb;AACA,gBAAA,OAAO,YAAmB;YAC5B,CAAC,GAAG;;;;;;;AASJ,YAAA,OAAO,MAAM;QACf;AArBsB,QAAA,MAAA,CAAA,sBAAsB,yBAqB3C;;;QAKM,eAAe,oBAAoB,CACxC,IAAY,EAAA;AAEZ,YAAA,IAAI,MAAsB;;AAE1B,YAAA,MAAM,GAAG,MAAM,CAAC,YAAW;gBACzB,IAAI,uBAAuB,EAAE;AAC3B,oBAAA,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC;AACnC,oBAAA,OAAO,IAAI;gBACb;AACA,gBAAA,OAAO,IAAW;YACpB,CAAC,GAAG;;;;;;;AAQJ,YAAA,OAAO,MAAM;QACf;AApBsB,QAAA,MAAA,CAAA,oBAAoB,uBAoBzC;;;QAIM,eAAe,oBAAoB,CACxC,YAA4B,EAAA;AAE5B,YAAA,IAAI,MAAc;;AAElB,YAAA,MAAM,GAAG,MAAM,CAAC,YAAW;gBACzB,IAAI,uBAAuB,EAAE;AAC3B,oBAAA,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,YAAmB,CAAC;AAClD,oBAAA,OAAO,IAAI;gBACb;AACA,gBAAA,OAAO,YAAmB;YAC5B,CAAC,GAAG;;;;;;;AASJ,YAAA,OAAO,MAAM;QACf;AArBsB,QAAA,MAAA,CAAA,oBAAoB,uBAqBzC;;;;;;;;;;;;;;;;;;;;;;QA2BM,eAAe,UAAU,CAAC,IAAU,EAAA;AACzC,YAAA,OAAO,IAAI,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE;gBAC1D,IAAI,EAAE,IAAI,CAAC,IAAI;AAChB,aAAA,CAAC;QACJ;AAJsB,QAAA,MAAA,CAAA,UAAU,aAI/B;;;AAIM,QAAA,eAAe,UAAU,CAC9B,IAAU,EACV,cAAsB,cAAc,EAAA;YAEpC,IAAI,CAAC,WAAW,EAAE;gBAChB,WAAW,GAAG,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;YACnD;;YAEA,OAAO,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;QACtC;AATsB,QAAA,MAAA,CAAA,UAAU,aAS/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CM,QAAA,eAAe,UAAU,CAC9B,IAAY,EACZ,OAA+B,YAAY,EAAA;AAE3C,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;AACvC,YAAA,OAAO,IAAI;QACb;AANsB,QAAA,MAAA,CAAA,UAAU,aAM/B;;;QAIM,eAAe,UAAU,CAAC,IAAU,EAAA;AACzC,YAAA,OAAO,MAAM,IAAI,CAAC,IAAI,EAAE;QAC1B;AAFsB,QAAA,MAAA,CAAA,UAAU,aAE/B;;;AAIM,QAAA,eAAe,UAAU,CAC9B,IAAY,EACZ,sBAA8B,EAAA;;YAG9B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC;YAEhD,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC;AACtC,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,sBAAsB,CAAC;;;;;;AAM3D,YAAA,OAAO,IAAI;QACb;AAhBsB,QAAA,MAAA,CAAA,UAAU,aAgB/B;;;QAIM,eAAe,UAAU,CAAC,IAAU,EAAA;AACzC,YAAA,OAAO,MAAM,IAAI,CAAC,IAAI,EAAE;QAC1B;AAFsB,QAAA,MAAA,CAAA,UAAU,aAE/B;;;QAIM,eAAe,UAAU,CAAC,OAAe,EAAA;AAC9C,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;AACxD,gBAAA,IAAI,EAAE,kBAAkB;AACzB,aAAA,CAAC;AACF,YAAA,OAAO,IAAI;QACb;AALsB,QAAA,MAAA,CAAA,UAAU,aAK/B;;;AAID;;AAEG;QACI,eAAe,UAAU,CAAC,IAAU,EAAA;YACzC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACtC;AAFsB,QAAA,MAAA,CAAA,UAAU,aAE/B;;;QAIM,eAAe,WAAW,CAAC,GAAW,EAAA;YAC3C,OAAO,CAAC,MAAM,KAAK,CAAC;gBAClB,GAAG;AACH,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,YAAY,EAAE,MAAM;aACrB,CAAC,EAAE,IAAI;QACV;AANsB,QAAA,MAAA,CAAA,WAAW,cAMhC;;AAEH,IAAA,CAAC,EArWgB,MAAM,GAAN,KAAA,CAAA,MAAM,KAAN,YAAM,GAAA,EAAA,CAAA,CAAA;;;AAyWvB,IAAA,IAAiB,GAAG;AAApB,IAAA,CAAA,UAAiB,GAAG,EAAA;;AAElB;;;;AAIG;QACH,SAAgB,QAAQ,CAAC,SAA0B,EAAA;;AAEjD,YAAA,OAAO,QAAQ,CACb,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAGzC;QACH;AAPgB,QAAA,GAAA,CAAA,QAAQ,WAOvB;;AAEH,IAAA,CAAC,EAhBgB,GAAG,GAAH,KAAA,CAAA,GAAG,KAAH,SAAG,GAAA,EAAA,CAAA,CAAA;;AAkBtB,CAAC,EArnBgB,KAAK,KAAL,KAAK,GAAA,EAAA,CAAA,CAAA;AAsnBtB;AAEM,IAAW;AAAjB,CAAA,UAAiB,gBAAgB,EAAA;AAClB,IAAA,gBAAA,CAAA,gBAAgB,GAAG,CAAC,qBAA6B,KAAa;QACzE,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACnE,QAAA,OAAO,WAAW;AACpB,IAAA,CAAC;AACH,CAAC,EALgB,gBAAgB,KAAhB,gBAAgB,GAAA,EAAA,CAAA,CAAA;AAOjC;AACM,IAAW;AAAjB,CAAA,UAAiB,YAAY,EAAA;;;AAsD3B;;;AAGG;AACU,IAAA,YAAA,CAAA,UAAU,GAAG,OACxB,OAAe,EACf,GAAW;;AAEX,IAAA,OAAkE,KACjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiSjB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;;;;;;;;;AAaD;;;;AAIG;AACU,IAAA,YAAA,CAAA,kCAAkC,GAAG,OAChD,OAAe,EACf,OAQC,KACgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEjB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;IAIY,YAAA,CAAA,cAAc,GAAG,MAAK;;;;;;;;;;;;;;;;;;;AAmBjC,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAID;;;AAGG;AACU,IAAA,YAAA,CAAA,wBAAwB,GAAG,CACtC,OAAe,EACf,OAAyD,KACvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8GF,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;IAIY,YAAA,CAAA,kBAAkB,GAAG,MAUvB;;AAET,QAAA,OAAO,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCd,QAAA,QAAQ,KAAK,CAAC;AAClB,IAAA,CAAC;;;AAID;;AAEG;AACU,IAAA,YAAA,CAAA,cAAc,GAAG,OAC5B,GAAW,KACyD;;;;;;;;;;;;;;;;;;;;;;AAsBpE,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAID;;;AAGG;IACH,eAAe,gBAAgB,CAAC,GAAW,EAAA;;;;;;;;;;;;;;;;AAgBzC,QAAA,QAAQ,KAAK,CAAC;IAChB;;;AAIA;;;AAGG;IACH,eAAe,mBAAmB,CAAC,GAAW,EAAA;;;;;;;;;;;;;;;;;AAiB5C,QAAA,QAAQ,KAAK,CAAC;IAChB;;;AAIA;;;AAGG;IACI,eAAe,gBAAgB,CAAC,GAAW,EAAA;;;;;;;AAOhD,QAAA,QAAQ,KAAK,CAAC;IAChB;AARsB,IAAA,YAAA,CAAA,gBAAgB,mBAQrC;;;AAID;;;AAGG;IACU,YAAA,CAAA,8BAA8B,GAAG,YAGzC;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BH,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAID;;;AAGG;IACU,YAAA,CAAA,WAAW,GAAG,YAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BtD,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,YAAA,CAAA,WAAW,GAAG,OACzB,YAAmC,KAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BjB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,YAAA,CAAA,iBAAiB,GAAG,OAAO,IAAY,KAAsB;AACxE,QAAA,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE;AAC7C,YAAA,OAAO,CAAC,IAAI,CACV,0DAA0D,IAAI,CAAA,CAAE,CACjE;AACD,YAAA,OAAO,KAAK;QACd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0DF,QAAA,QAAQ,KAAK,CAAC;AACd,IAAA,CAAC;;;AAID;;;;AAIG;IACU,YAAA,CAAA,yBAAyB,GAAG,YAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+DjE,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,YAAA,CAAA,eAAe,GAAG,CAAC,OAI/B,KAAa;AACZ,QAAA,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE;AACrE,YAAA,OAAO,KAAK;QACd;AACA,QAAA,OAAO,GAAG,OAAO,IAAK,EAAU;QAChC,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,QAAQ;AAC/C,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AAC5D,QAAA,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;QACrE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC;AAC5C,aAAA,OAAO,CAAC,IAAI,EAAE,EAAE;aAChB,KAAK,CAAC,GAAG;aACT,GAAG,CAAC,MAAM,CAAC;AAEd,QAAA,MAAM,EAAE,GACN,QAAQ,GAAG,QAAQ;AACnB,aAAC,QAAQ,KAAK,QAAQ,IAAI,QAAQ,GAAG,QAAQ,CAAC;AAC9C,aAAC,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,CAAC;AAE1E,QAAA,IAAI,OAAO,EAAE,GAAG,EAAE;YAChB,OAAO,CAAC,GAAG,CACT;AACE,kBAAE,CAAA,iCAAA,EAAoC,OAAO,CAAC,QAAQ,CAAA,UAAA,EAAa,OAAO,CAAA,CAAA;kBACxE,yCAAyC,OAAO,CAAC,QAAQ,CAAA,UAAA,EAAa,OAAO,CAAA,CAAA,CAAG,CACrF;QACH;AACA,QAAA,IAAI,OAAO,EAAE,iBAAiB,IAAI,CAAC,EAAE,EAAE;YACrC,MAAM,IAAI,KAAK,CACb,CAAA,oCAAA,EAAuC,OAAO,CAAC,QAAQ,CAAA,UAAA,EAAa,OAAO,CAAA,CAAA,CAAG,CAC/E;QACH;AAEA,QAAA,OAAO,EAAE;AACX,IAAA,CAAC;;AAGY,IAAA,YAAA,CAAA,mBAAmB,GAAG,OACjC,OAAe,KACW;;;;;;;;;;;;;;;;;;;AAmB1B,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AACH,CAAC,EA1iCgB,YAAY,KAAZ,YAAY,GAAA,EAAA,CAAA,CAAA;AA2iC7B;AAEA;AACA;;;;;AAKG;AACG,IAAW;AAAjB,CAAA,UAAiB,aAAa,EAAA;;IAEf,aAAA,CAAA,kBAAkB,GAAG,OAChC,EAAa,EACb,QAAA,GAAmB,MAAM,EACzB,aAAA,GAGe,gBAAgB,KACd;;;;;;;;;;;;;;;;AAgBjB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;AAEH,CAAC,EA5BgB,aAAa,KAAb,aAAa,GAAA,EAAA,CAAA,CAAA;AA6B9B;AAEA;AACA;;;AAGG;AACG,IAAW;AAAjB,CAAA,UAAiB,aAAa,EAAA;;;AAwD5B;;;AAGG;AACH,IAAA,MAAM,cAAc,CAAA;;AASlB,QAAA,IAAY,SAAS,GAAA;;;;;;;;;;AAUnB,YAAA,QAAQ,KAAK,CAAC;QAChB;;;AAIA,QAAA,IAAY,GAAG,GAAA;;;;;;;;;;;;;;AAcb,YAAA,QAAQ,KAAK,CAAC;QAChB;;;;AAMA,QAAA,WAAA,CACqB,OAAe,EACf,IAAc,EACd,kBAAmC,EAAE,EAAA;YAFrC,IAAA,CAAA,OAAO,GAAP,OAAO;YACP,IAAA,CAAA,IAAI,GAAJ,IAAI;YACJ,IAAA,CAAA,eAAe,GAAf,eAAe;;YA9C5B,IAAA,CAAA,iBAAiB,GAAW,EAAE;YAE9B,IAAA,CAAA,iBAAiB,GAAW,EAAE;QA6CnC;;;QAII,MAAM,SAAS,CACpB,KAAW,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CX,YAAA,QAAQ,KAAK,CAAC;QAChB;;;AAIO,QAAA,MAAM,8BAA8B,GAAA;YACzC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE;AACzC,YAAA,OAAO,MAAM;QACf;;;QAIO,MAAM,oBAAoB,CAC/B,OAAsC,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4JtC,YAAA,QAAQ,KAAK,CAAC;QAChB;AAED;;;AAID;;AAEG;AACU,IAAA,aAAA,CAAA,UAAU,GAAG,CACxB,OAAe,EACf,OAAyB,KACP;AAClB,QAAA,OAAO,GAAG,OAAO,IAAI,EAAE;AACvB,QAAA,OAAO,CAAC,GAAG,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AAC7D,QAAA,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AACzC,QAAA,OAAO,IAAI,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC;AACtC,IAAA,CAAC;;;AAID;;AAEG;AACU,IAAA,aAAA,CAAA,cAAc,GAAG,OAC5B,OAAe,EACf,OAAyB,KACR;;;;;;;;;;;;;AAajB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAID;;AAEG;IACU,aAAA,CAAA,sBAAsB,GAAG,OAAO,EAC3C,OAAO,EACP,GAAG,GAIJ,KAAmB;;;;AAIlB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;IAIY,aAAA,CAAA,8BAA8B,GAAG,OAAO,EACnD,OAAO,EACP,GAAG,GAIJ,KAAqB;;;;AAIpB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;AAEH,CAAC,EAtZgB,aAAa,KAAb,aAAa,GAAA,EAAA,CAAA,CAAA;AAuZ9B;AAEA;AACM,IAAW;AAAjB,CAAA,UAAiB,SAAS,EAAA;;AAExB;;AAEG;AACH,IAAA,IAAK,UAMJ;AAND,IAAA,CAAA,UAAK,UAAU,EAAA;AACb,QAAA,UAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,QAAA,UAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,QAAA,UAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD;AACjD,QAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,QAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACrB,IAAA,CAAC,EANI,UAAU,KAAV,UAAU,GAAA,EAAA,CAAA,CAAA;;AAQf;;AAEG;IACU,SAAA,CAAA,wBAAwB,GAAG,YAA6B;QACnE,OAAO,MAAM,UAAU,EAAE;AAC3B,IAAA,CAAC;;AAGD;;AAEG;AACH,IAAA,MAAM,eAAe,GAA+B;AAClD,QAAA,CAAC,UAAU,CAAC,YAAY,GAAG,uBAAuB;AAClD,QAAA,CAAC,UAAU,CAAC,QAAQ,GAAG,kBAAkB;AACzC,QAAA,CAAC,UAAU,CAAC,sBAAsB,GAChC,kDAAkD;AACpD,QAAA,CAAC,UAAU,CAAC,cAAc,GACxB,kDAAkD;AACpD,QAAA,CAAC,UAAU,CAAC,OAAO,GAAG,iCAAiC;KACxD;;;AAID;;AAEG;AACH,IAAA,eAAe,mBAAmB,GAAA;;;;;;;;;;;;;;;;AAgBhC,QAAA,QAAQ,KAAK,CAAC;IAChB;;;AAIA;;AAEG;AACI,IAAA,eAAe,SAAS,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoD7B,QAAA,QAAQ,KAAK,CAAC;IAChB;AArDsB,IAAA,SAAA,CAAA,SAAS,YAqD9B;;;AAID;;AAEG;IACU,SAAA,CAAA,qBAAqB,GAAG,OAAO,EAC1C,mBAAmB,GAAG,KAAK,GAG5B,KAAsB;;;;;;;;;;;;;;;;;AAiBrB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;AAEH,CAAC,EAnJgB,SAAS,KAAT,SAAS,GAAA,EAAA,CAAA,CAAA;AAoJ1B;AAEA;AACM,IAAW;AAAjB,CAAA,UAAiB,qBAAqB,EAAA;AACvB,IAAA,qBAAA,CAAA,6BAA6B,GAAG;;QAE3C,oBAAoB;;;QAGpB,eAAe;;;AAGf,QAAA,CAAA,GAAA,EAAM,aAAa,CAAA,GAAA,CAAK;;;AAGxB,QAAA,CAAA,GAAA,EAAM,YAAY,CAAA,GAAA,CAAK;;QAEvB,UAAU;;QAEV,aAAa;KACd;;AAGY,IAAA,qBAAA,CAAA,QAAQ,GAAG,CACtB,gBAAmC;AAEnC,IAAA,OAWC,KACqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CtB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;IAIY,qBAAA,CAAA,SAAS,GAAG,CACvB,gBAAmC,EACnC,KAA+B,EAC/B,OAeC,KACU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6GX,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;AAeD,IAAA,MAAM,UAAU,GAAG,CACjB,IAAY,EACZ,OAMC,KACO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwGR,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAID;;AAEG;AACU,IAAA,qBAAA,CAAA,YAAY,GAAG,CAC1B,oBAAuC,EACvC,OAAkD,KACtC;;;;;;;;;;;;;;;AAeZ,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAID;;AAEG;AACU,IAAA,qBAAA,CAAA,cAAc,GAAG,CAC5B,oBAAuC,EACvC,OAAkD,KACtC;;;;;;;;;;;;;;;AAeZ,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;;IAMY,qBAAA,CAAA,IAAI,GAAG,CAClB,SAA4B,EAC5B,cAAiC,EACjC,OAqBmB,KACX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqNR,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,qBAAA,CAAA,cAAc,GAAG,CAC5B,sBAAgC,EAChC,iBAAyB,KACvB;;;;;;;;;;;;;;;;;;;;;;;;;AAyBF,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,qBAAA,CAAA,cAAc,GAAG,CAC5B,4BAAsC,EACtC,iBAAyB,KACvB;;;;;;;;;;;;;;;;;;;;;;AAsBF,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;IAIY,qBAAA,CAAA,QAAQ,GAAG,CACtB,UAA6B,EAC7B,eAAkC,EAClC,OAKC,KACU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuGX,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;IAIY,qBAAA,CAAA,IAAI,GAAG,CAClB,IAAY,EACZ,EAAU,EACV,OAEC,KACO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2ER,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;AAEH,CAAC,EA14BgB,qBAAqB,KAArB,qBAAqB,GAAA,EAAA,CAAA,CAAA;AA24BtC;AAEA;AACA;;;;;AAKG;AACG,IAAW;AAAjB,CAAA,UAAiB,iBAAiB,EAAA;AAChC;;AAEG;AACU,IAAA,iBAAA,CAAA,6BAA6B,GACxC,qBAAqB,CAAC,6BAA6B;;;AAUrD;;AAEG;IACH,MAAM,MAAM,GAAG,OACb,YAA+B,EAC/B,OAAkD,KAC9B;;;;;;AAMpB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAID;;AAEG;IACH,MAAM,eAAe,GAAG,OACtB,WAA8B,EAC9B,OAAkD,KAC9B;;;;;;AAMpB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAID,IAAA,eAAe,iBAAiB,CAC9B,oBAAuC,EACvC,UAGI,EAAE,EAAA;AAEN,QAAA,OAAO,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDT,QAAA,QAAQ,KAAK,CAAC;IAClB;;;AAIA;;AAEG;IACH,MAAM,aAAa,GAAG,OACpB,gBAAmC,EACnC,OAGC,KAC8B;QAC/B,OAAO,KAAK,CAAC;AACf,IAAA,CAAC;;;AAWD;;AAEG;IACH,MAAM,cAAc,GAAG,OACrB,gBAAmC,EACnC,KAA0B,EAC1B,OAAqE,KACjD;QACpB,OAAO,KAAK,CAAC;AACf,IAAA,CAAC;;;AAID;;AAEG;AACH,IAAA,MAAM,gBAAgB,GAAG,OACvB,gBAAmC,KACf;QACpB,OAAO,KAAK,CAAC;AACf,IAAA,CAAC;;;AAID;;AAEG;AACH,IAAA,MAAM,eAAe,GAAG,OACtB,gBAAmC,KACf;QACpB,OAAO,KAAK,CAAC;AACf,IAAA,CAAC;;AAEH,CAAC,EA7KgB,iBAAiB,KAAjB,iBAAiB,GAAA,EAAA,CAAA,CAAA;AA8KlC;AAEA;AACM,IAAW;AAAjB,CAAA,UAAiB,OAAO,EAAA;;AAEtB;;;;AAIG;IACU,OAAA,CAAA,kBAAkB,GAAG,MAAc;;;AAI9C,QAAA,OAAO,IAAI;AACb,IAAA,CAAC;;;AAID;;;AAGG;IACU,OAAA,CAAA,eAAe,GAAG,MAAc;;;AAI3C,QAAA,OAAO,KAAK;AACd,IAAA,CAAC;;;AAID;;;;AAIG;IACU,OAAA,CAAA,iBAAiB,GAAG,MAAc;;;;;AAQ7C,QAAA,OAAO,KAAK;AACd,IAAA,CAAC;;;IAIY,OAAA,CAAA,kBAAkB,GAAG,MAAc;AAC9C,QAAA,OAAO,OAAO,UAAU,CAAC,MAAM,KAAK,WAAW;AACjD,IAAA,CAAC;;;AAID;;;AAGG;IACU,OAAA,CAAA,mBAAmB,GAAG,MAAc;;QAE/C,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACjE,YAAA,OAAO,IAAI;QACb;;QAGA,IACE,OAAO,UAAU,KAAK,WAAW;AAChC,YAAA,UAAkB,EAAE,OAAO,EAAE,IAAI,KAAK,UAAU,EACjD;AACA,YAAA,OAAO,IAAI;QACb;;QAGA,IACE,OAAO,SAAS,KAAK,QAAQ;AAC7B,YAAA,OAAO,SAAS,CAAC,SAAS,KAAK,QAAQ;YACvC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EACrC;AACA,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,OAAO,KAAK;AACd,IAAA,CAAC;;;AAID;;;AAGG;IACU,OAAA,CAAA,0BAA0B,GAAG,MAAc;;;;;;;;;AAStD,QAAA,QAAQ,KAAK,CAAC;AACd,QAAA,OAAO,KAAK;AACd,IAAA,CAAC;;;AAID;;;AAGG;IACU,OAAA,CAAA,cAAc,GAAG,MAAc;;AAE1C,QAAA,OAAO,KAAK;;;;;;;;;;;;;;;;;;;AAmBV,QAAA,QAAQ,KAAK,CAAC;AAClB,IAAA,CAAC;;;IAID,MAAM,cAAc,GAAG,MAGnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BF,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED,IAAA,MAAM,uBAAuB,GAAG,CAAC,OAAiB,KAAwB;;;;;;;;;;;;;;;;;AAiBxE,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;IAEY,OAAA,CAAA,4BAA4B,GAAG,MAAc;AACxD,QAAA,QACE,uBAAuB,CAAC,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC,KAAK,SAAS;AAEzE,IAAA,CAAC;IAEY,OAAA,CAAA,qBAAqB,GAAG,MAAc;QACjD,OAAO,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,SAAS;AAC3D,IAAA,CAAC;;;IAIY,OAAA,CAAA,iBAAiB,GAAG,MAAc;;AAE7C,QAAA,OAAO,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CV,QAAA,QAAQ,KAAK,CAAC;AAClB,IAAA,CAAC;;;IAIY,OAAA,CAAA,0CAA0C,GAAG,MAAc;;;;;;;;AAQtE,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;IAIY,OAAA,CAAA,2CAA2C,GAAG,MAAc;;;;;;;;;AASvE,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAID;;AAEG;IACU,OAAA,CAAA,kBAAkB,GAAG,MAAc;;AAE9C,QAAA,OAAO,KAAK;;;;AAIV,QAAA,QAAQ,KAAK,CAAC;AAClB,IAAA,CAAC;;;AAID;;AAEG;IACU,OAAA,CAAA,oBAAoB,GAAG,MAAc;;AAEhD,QAAA,OAAO,KAAK;;;;AAIV,QAAA,QAAQ,KAAK,CAAC;AAClB,IAAA,CAAC;;;AAID,IAAA,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAE,IAAY,KAAsB;;;;;;;;;;;;;;;;;;;;;;;;;AAyBzE,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED;;;;;;AAMG;AACU,IAAA,OAAA,CAAA,WAAW,GAAG,OACzB,IAAY,EACZ,OAKC,KACmB;;;;;;;;;;;;;;AAcpB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAID;;;AAGG;IACU,OAAA,CAAA,iBAAiB,GAAG,YAA6B;AAC5D,QAAA,IAAI,OAAO,CAAC,SAAS,EAAE;AACrB,YAAA,OAAO,KAAK;QACd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BE,QAAA,QAAQ,KAAK,CAAC;AAClB,IAAA,CAAC;;;AAIY,IAAA,OAAA,CAAA,kBAAkB,GAAG,CAAC,UAAkB,KAAU;;;;;;;;;;;;;;AAc7D,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,OAAA,CAAA,wBAAwB,GAAG,CAAC,UAAkB,KAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BnE,QAAA,QAAQ,KAAK,CAAC;;AAEd,QAAA,OAAO,CAAC,IAAI,CACV,CAAA,iEAAA,CAAmE,CACpE;;AAEH,IAAA,CAAC;;;IAIY,OAAA,CAAA,cAAc,GAAG,MAAa;;AAEzC,QAAA,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDP,QAAA,QAAQ,KAAK,CAAC;AAClB,IAAA,CAAC;AAeY,IAAA,OAAA,CAAA,SAAS,GAAa;QACjC,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,QAAQ;KACT;AAEY,IAAA,OAAA,CAAA,gBAAgB,GAAoC;AAC/D,QAAA,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AACtB,QAAA,MAAM,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;AAC9B,QAAA,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAC5B,QAAA,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;AAC5B,QAAA,UAAU,EAAE;YACV,MAAM;YACN,MAAM;YACN,QAAQ;YACR,UAAU;YACV,QAAQ;YACR,QAAQ;YACR,OAAO;YACP,UAAU;AACX,SAAA;AACD,QAAA,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC;AACzC,QAAA,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,CAAC;KAC5C;AAED,IAAA,MAAM,aAAa,GAAG,CAAC,KAAe,KAAI;;;;;;;;;;;;;;;;AAgBxC,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAEY,IAAA,OAAA,CAAA,aAAa,GAAG,CAAC,MAAqB,KAAI;;;;;;;AAOrD,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;IAEY,OAAA,CAAA,YAAY,GAAG,MAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDvC,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAEY,IAAA,OAAA,CAAA,yBAAyB,GAAG,CACvC,MAAc,EACd,WAA4B,OAAO,CAAC,QAAQ,EAC5C,GAAA,GAAyB,OAAO,CAAC,GAAG,KACd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDtB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;IAEY,OAAA,CAAA,qBAAqB,GAAG,MAAc;;AAEjD,QAAA,OAAO,KAAK;;;;AAIV,QAAA,QAAQ,KAAK,CAAC;AAClB,IAAA,CAAC;AAEY,IAAA,OAAA,CAAA,eAAe,GAAG,YAAY,CAAC,eAAe;AAC9C,IAAA,OAAA,CAAA,UAAU,GAAG,OAAA,CAAA,mBAAmB,EAAE;AAClC,IAAA,OAAA,CAAA,SAAS,GAAG,OAAA,CAAA,kBAAkB,EAAE;AAChC,IAAA,OAAA,CAAA,MAAM,GAAG,OAAA,CAAA,eAAe,EAAE;AAC1B,IAAA,OAAA,CAAA,QAAQ,GAAG,OAAA,CAAA,iBAAiB,EAAE;AAC9B,IAAA,OAAA,CAAA,iBAAiB,GAAG,OAAA,CAAA,0BAA0B,EAAE;AAChD,IAAA,OAAA,CAAA,SAAS,GAAG,OAAA,CAAA,kBAAkB,EAAE;IAC7C,IAAI,qBAAqB,GAAY,KAAK;;;IAI7B,OAAA,CAAA,kBAAkB,GAAG,qBAAqB;;;AAKvD,IAAA,MAAM,aAAa,GAAG,OAAO,WAAmB,KAAsB;;;;;;;;AAQpE,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED,IAAA,MAAM,iBAAiB,GAAG,CAAC,WAAmB,KAAa;;;;;;;;AAQzD,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED,IAAA,MAAM,eAAe,GAAG,OAAO,WAAmB,KAAsB;;;;;;;;AAQtE,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED,IAAA,MAAM,mBAAmB,GAAG,CAAC,WAAmB,KAAa;;;;;;;;AAQ3D,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAID,IAAA,MAAM,iBAAiB,GAAG,OAAO,WAAmB,KAAsB;;;;;;;;;;;;;;;;AAgBxE,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED,IAAA,MAAM,oBAAoB,GAAG,OAC3B,WAAmB,KACC;;;;;;;;;;AAUpB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED,IAAA,MAAM,qBAAqB,GAAG,CAAC,WAAmB,KAAa;;;;;;;;;;;;;;AAc7D,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED,IAAA,MAAM,wBAAwB,GAAG,CAAC,WAAmB,KAAa;;;;;;;;AAQhE,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,OAAA,CAAA,kBAAkB,GAAG,OAChC,WAAmB,KACC;;;;;;;;;;;;AAYpB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED;;AAEG;AACU,IAAA,OAAA,CAAA,iBAAiB,GAAG,CAAC,WAAmB,KAAa;AAChE,QAAA,OAAO,QAAA;AACL,cAAE,wBAAwB,CAAC,WAAW;AACtC,cAAE,qBAAqB,CAAC,WAAW,CAAC;AACxC,IAAA,CAAC;;;;AAMY,IAAA,OAAA,CAAA,iBAAiB,GAAG,CAAC,WAAmB,KAAsB;;;;;;;;AAQzE,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAEY,IAAA,OAAA,CAAA,uBAAuB,GAAG,CACrC,eAAuB,EACvB,2BAAmC,KACf;;;;;;;;;;;;;;AAcpB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED,IAAA,MAAM,mBAAmB,GAAG,CAAC,IAAY,KAAY;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;AAChC,IAAA,CAAC;IAEY,OAAA,CAAA,kBAAkB,GAAG,OAChC,UAAkB;;IAElB,UAAU,GAAG,SAAS,KACF;;;;;;;;;;;;;;;;;;;AAmBpB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;AAEH,CAAC,EA36BgB,OAAO,KAAP,OAAO,GAAA,EAAA,CAAA,CAAA;AA46BxB;AAEA;AACM,IAAW;AAAjB,CAAA,UAAiB,WAAW,EAAA;;AAEb,IAAA,WAAA,CAAA,uBAAuB,GAAG,CAAC,KAAa,KAAY;AAC/D,QAAA,QACE;;AAEG,aAAA,OAAO,CAAC,MAAM,EAAE,GAAG;;AAEnB,aAAA,OAAO,CAAC,oBAAoB,EAAE,OAAO;;aAErC,WAAW,EAAE;AAEpB,IAAA,CAAC;;AAEH,CAAC,EAdgB,WAAW,KAAX,WAAW,GAAA,EAAA,CAAA,CAAA;AAe5B;AAEA;AACA;;AAEG;AACG,IAAW;AAAjB,CAAA,UAAiB,eAAe,EAAA;AACjB,IAAA,eAAA,CAAA,yBAAyB,GAAG,CACvC,SAAiB,KACK;AACtB,QAAA,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;;AAErE,QAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC;AAC5C,QAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC;AAC5C,QAAA,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,UAAU;AAChE,QAAA,OAAO,eAAA,CAAA,gBAAgB,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC;AACzD,IAAA,CAAC;AAEY,IAAA,eAAA,CAAA,kCAAkC,GAAG,CAChD,SAAiB,KACK;AACtB,QAAA,MAAM,SAAS,GAAG,eAAA,CAAA,yBAAyB,CAAC,SAAS,CAAC;QACtD,IAAI,CAAC,SAAS,EAAE;YACd,OAAO,KAAK,CAAC;QACf;AACA,QAAA,OAAO,eAAA,CAAA,eAAe,CAAC,SAAS,CAAC;AACnC,IAAA,CAAC;AAEY,IAAA,eAAA,CAAA,eAAe,GAAG,CAAC,SAAiB,KAAY;AAC3D,QAAA,MAAM,iBAAiB,GAAS,IAAI,IAAI,CAAC,SAAS,CAAC;;QAEnD,OAAO,CAAA,EAAG,UAAU,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,EAAE;AAClE,IAAA,CAAC;AAEY,IAAA,eAAA,CAAA,gBAAgB,GAAG,CAAC,KAAU,KAAa;AACtD,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,OAAO,KAAK,CAAC;QACf;AAEA,QAAA,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,QAAA,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAEtC,QAAA,OAAO,KAAK,IAAI,YAAY,IAAI,KAAK,IAAI,YAAY;AACvD,IAAA,CAAC;AACH,CAAC,EAtCgB,eAAe,KAAf,eAAe,GAAA,EAAA,CAAA,CAAA;AAuChC;AAEA;AACM,IAAW;AAAjB,CAAA,UAAiB,aAAa,EAAA;;;AAyBf,IAAA,aAAA,CAAA,IAAI,GAAG,KAAK,CAAC,IAAI;;;AAIjB,IAAA,aAAA,CAAA,gBAAgB,GAAG,KAAK,CAAC,gBAAgB;;;AAItD;;;AAGG;IACU,aAAA,CAAA,iBAAiB,GAAG,MAAc;;;AAG7C,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,aAAA,CAAA,iBAAiB,GAAG,OAC/B,QAAoC,EACpC,OAOC,KACgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CjB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;IAIY,aAAA,CAAA,iBAAiB,GAAG,MAAa;;;;;;;;;;;;;;;;;;;;;;;AAuB5C,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;IAIY,aAAA,CAAA,YAAY,GAAG,MAAW;;;;AAIrC,QAAA,QAAQ,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4ChB,IAAA,CAAC;;;AAID,IAAA,MAAM,gBAAgB,GAAG,CAAC,OAAY,KAAyB;;;;;;;;;;;;;;;;;;AAkB7D,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,aAAA,CAAA,WAAW,GAAG,OAAmB,OAc7C,KAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2GjB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAID;;;AAGG;AACU,IAAA,aAAA,CAAA,2BAA2B,GAAG,OAGzC,OAAe,EACf,OAMC,KACC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDF,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAID;;;AAGG;AACU,IAAA,aAAA,CAAA,sBAAsB,GAAG,OAGpC,OAAe,EACf,OAMC,KACC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCF,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,aAAA,CAAA,MAAM,GAAG,OAAmB,OAMxC,KAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8E3B,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;IAKY,aAAA,CAAA,gBAAgB,GAAG,MAAW;;;AAGzC,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,aAAA,CAAA,KAAK,GAAG,OAAO,EAC1B,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,QAAQ,GAMT,KAAqB;;;;;;;;;;;;;;;;;;;;;;;;;AAyBpB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,aAAA,CAAA,OAAO,GAAG,OAAO,OAY7B,KAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgFH,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,aAAA,CAAA,0BAA0B,GAAG,CAAC,OAE1C,KAAmB;;;;;;;;;;;;;;;;;;;AAmBlB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAID;;AAEG;AACU,IAAA,aAAA,CAAA,uBAAuB,GAAG,CACrC,OAAO,GAAG,2BAA2B,KACnC;;;AAGF,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAID;;AAEG;AACU,IAAA,aAAA,CAAA,kCAAkC,GAAG,OAChD,KAAc,KACM;;;;;;;;;;;;;AAapB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAID;;AAEG;AACU,IAAA,aAAA,CAAA,WAAW,GAAG,CAAC,OAA8B,KAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4B5D,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;IAIY,aAAA,CAAA,eAAe,GAAG,OAC7B,IAAuB,EACvB,QAAQ,GAAG,MAAM,KACA;;;;;;;;;;;;;;;;;;AAkBjB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAID;;;;;;AAMG;AACU,IAAA,aAAA,CAAA,yBAAyB,GAAG,OACvC,IAAuB,KACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CjB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,aAAA,CAAA,WAAW,GAAG,OACzB,IAAY,EACZ,OAIC,KACkB;;;;;;;;;;;;;;;;;;;;AAoBnB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAID;;;;AAIG;AACH,IAAA,MAAM,oBAAoB,GAAG,YAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8GrD,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;AAEH,CAAC,EAhgCgB,aAAa,KAAb,aAAa,GAAA,EAAA,CAAA,CAAA;AAigC9B;AAEA;AACM,IAAW;AAAjB,CAAA,UAAiB,SAAS,EAAA;;AAOxB;;;;;;AAMG;AACU,IAAA,SAAA,CAAA,kCAAkC,GAAG,CAChD,YAAoB;AACpB,IAAA,WAAmB,KACA;QACnB,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC;;AAErC,QAAA,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AACxD,YAAA,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClB,OAAO,CAAC,CAAC,CAAC;YACZ;YACA,MAAM,IAAI,GAAW,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACpC,YAAA,IACE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA,EAAA,CAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAA,EAAA,CAAI,CAAC;AAC1C,iBAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAA,EAAA,CAAI,CAAC,CAAC,EAC3C;AACA,gBAAA,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YACvC;iBAAO;AACL,gBAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACX;AACA,YAAA,OAAO,CAAC;QACV,CAAC,EAAE,EAAE,CAAC;;;;AAIN,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,EAAG,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC;QAC9D,IAAI,WAAW,GAAG,EAAE;QACpB,IAAI,UAAU,GAAoB,EAAE;QACpC,IAAI,iBAAiB,GAAa,EAAE;AAEpC,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACxB,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE;AAE/B,YAAA,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;;AAEhC,gBAAA,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC;;;YAGrC;AAAO,iBAAA,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;;gBAErE,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,sBAAsB,CAAC;;gBAEvD,IAAI,KAAK,EAAE;AACT,oBAAA,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;AACpB,oBAAA,WAAW,GAAG;0BACV,GAAG,WAAW,CAAA,CAAA,EAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAA,EAAA,CAAI,GAAG,GAAG,CAAA;0BACxD,GAAG;;;AAGP,oBAAA,IACE,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;wBAC5B,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC;wBACtC,WAAW,CAAC,QAAQ,CAAC,CAAA,EAAA,EAAK,OAAO,CAAA,EAAA,CAAI,CAAC,EACtC;;;;;;AAMA,wBAAA,UAAU,GAAG,6BAA6B,CAAC,iBAAiB,CAAC;wBAC7D;oBACF;;oBAGA,iBAAiB,GAAG,EAAE;gBACxB;YACF;QACF;AAEA,QAAA,OAAO,UAAU;AACnB,IAAA,CAAC;;;AAIY,IAAA,SAAA,CAAA,yBAAyB,GAAG,CACvC,OAAe,EACf,UAAA,GAA8B,EAAE,KACb;;;QAGnB,MAAM,SAAS,GAAG,sDAAsD;AACxE,QAAA,IAAI,KAAK;AACT,QAAA,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE;AACjD,YAAA,MAAM,GAAG,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,CAAC,GAAG,KAAK;AAC5D,YAAA,MAAM,KAAK,GAAG,YAAY,IAAI,YAAY,IAAI,QAAQ;AAEtD,YAAA,MAAM,iBAAiB,GAAG,UAAU,CAAC,IAAI,CACvC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAAA,CAAE,CACjC;YAED,IAAI,iBAAiB,EAAE;AACrB,gBAAA,IAAI,KAAK,KAAK,SAAS,EAAE;oBACvB,IAAI,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE;AAC1C,wBAAA,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;oBACrC;yBAAO;wBACL,iBAAiB,CAAC,KAAK,GAAG,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC;oBAC5D;gBACF;YACF;iBAAO;gBACL,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE;oBAChB,KAAK,EAAE,KAAK,KAAK,SAAS,GAAG,KAAK,GAAG,IAAI;AAC1C,iBAAA,CAAC;YACJ;QACF;;AAGA,QAAA,UAAU,CAAC,OAAO,CAAC,IAAI,IAAG;AACxB,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBACxD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5B;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,UAAU;AACnB,IAAA,CAAC;;;AAID,IAAA,MAAM,6BAA6B,GAAG,CACpC,QAAkB,KACC;QACnB,MAAM,UAAU,GAAoB,EAAE;;AAGtC,QAAA,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;AAC9B,YAAA,SAAA,CAAA,yBAAyB,CAAC,OAAO,EAAE,UAAU,CAAC;QAChD;AAEA,QAAA,OAAO,UAAU;AACnB,IAAA,CAAC;;;AAID;;;AAGG;AACU,IAAA,SAAA,CAAA,QAAQ,GAAG,CACtB,gBAAmC,EACnC,YAAY,GAAG,EAAE,EACjB,QAAQ,GAAG,KAAK,KACT;;;;;;;;;;;;;;;;;;;;AAoBP,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,SAAA,CAAA,oBAAoB,GAAG,CAClC,gBAAmC,EACnC,YAAA,GAAoB,EAAE,KACf;;;AAGP,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;AAEH,CAAC,EA5LgB,SAAS,KAAT,SAAS,GAAA,EAAA,CAAA,CAAA;AA6L1B;AAEA;AACM,IAAW;AAAjB,CAAA,UAAiB,SAAS,EAAA;AACX,IAAA,SAAA,CAAA,UAAU,GAAG,CAAe,UAAkB,KAAS;;;;;;;;;;AAUlE,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAEY,IAAA,SAAA,CAAA,UAAU,GAAG,CAAC,IAAS,KAAY;;;;;;;;;;;;;AAa9C,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;AAGY,IAAA,SAAA,CAAA,cAAc,GAAG,CAC5B,0BAAkC,EAClC,OAEC,KACS;;;;;;;;;;;;AAYV,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,SAAA,CAAA,eAAe,GAAG,CAC7B,0BAAkC,EAClC,IAAS,KAED;;;;;;;AAOR,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;AAEH,CAAC,EAnEgB,SAAS,KAAT,SAAS,GAAA,EAAA,CAAA,CAAA;AAoE1B;AAEA;AACM,IAAW;AAAjB,CAAA,UAAiB,gBAAgB,EAAA;AAC/B,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC;AAC3B,IAAA,MAAM,YAAY,GAAG,KAAK,CAAC;AAC3B,IAAA,MAAM,cAAc,GAAG,OAAO,CAAC;;AAG/B;;;;;;;;;;;;AAYG;IACU,gBAAA,CAAA,SAAS,GAAG,CAGvB,IAAO,EACP,WAAmB,EACnB,OAGC,KACS;AACV,QAAA,OAAO,GAAG,OAAO,IAAI,EAAE;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;AAE5C,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI;aAC7B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;YACpB,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,GAAc,CAAC,EAAE;AACtD,gBAAA,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAc,CAAW;YACjD;YACA,OAAO,CAAA,EAAG,GAAG,CAAA,EAAG,YAAY,GAAG,KAAK,IAAI,EAAE,CAAA,CAAE;AAC9C,QAAA,CAAC;aACA,IAAI,CAAC,cAAc,CAAC;AAEvB,QAAA,OAAO,GAAG,IAAI,CAAA,EAAG,UAAU,CAAA,EACzB,OAAO,CAAC,uBAAuB,GAAG,EAAE,GAAG,IACzC,CAAA,EAAG,GAAG,EAAE;AACV,IAAA,CAAC;;;AAID;;;;;;;;;;;;AAYG;AACU,IAAA,gBAAA,CAAA,WAAW,GAAG,CAGzB,QAAgB,EAChB,OAEC,KACI;AACL,QAAA,OAAO,GAAG,OAAO,IAAI,EAAE;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;AAClC,QAAA,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC3D,QAAA,MAAM,IAAI,GAAG,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC;;QAGnE,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;QACxC,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI;QAEzD,MAAM,IAAI,GAA2B,EAAE;QAEvC,IAAI,MAAM,GAAG,CAAC;AACd,QAAA,OAAO,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE;YAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC;AACvD,YAAA,MAAM,OAAO,GACX,MAAM,KAAK,CAAC;AACV,kBAAE,QAAQ,CAAC,SAAS,CAAC,MAAM;kBACzB,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;YAExC,IAAI,OAAO,EAAE;gBACX,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;AAC3C,gBAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;oBACd,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC;AACvC,oBAAA,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC;AAC5D,oBAAA,IAAI,QAAQ,GAAG,OAAO,CAAC;0BAClB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CACtC,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAY,CAAC,KAAK,GAAG;0BAE5C,GAAG;AACP,oBAAA,IAAI,CAAC,QAAkB,CAAC,GAAG,KAAK;gBAClC;YACF;YAEA,IAAI,MAAM,KAAK,CAAC,CAAC;gBAAE;AACnB,YAAA,MAAM,GAAG,MAAM,GAAG,cAAc,CAAC,MAAM;QACzC;AAEA,QAAA,OAAO,IAAS;AAClB,IAAA,CAAC;;;AAIY,IAAA,gBAAA,CAAA,qBAAqB,GAAG,CAAC,QAAgB,KAAY;QAChE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC;QAEzC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;QACxC,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAE1B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;AACvC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YAAE,OAAO,EAAE,CAAC;AAEhC,QAAA,OAAO,QAAQ;AACjB,IAAA,CAAC;;AAEH,CAAC,EA7HgB,gBAAgB,KAAhB,gBAAgB,GAAA,EAAA,CAAA,CAAA;AA8HjC;AAEA;AACM,IAAW;AAAjB,CAAA,UAAiB,YAAY,EAAA;;AAE3B,IAAA,MAAM,UAAU,GAAG,CAAC,QAAgB,KAA+B;AACjE,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;;AAGjD,QAAA,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,MAAM;AAAE,YAAA,OAAO,IAAI;AAC7C,QAAA,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,OAAO;AAAE,YAAA,OAAO,KAAK;;QAG/C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,KAAK,EAAE;AAAE,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC;AAEzD,QAAA,OAAO,GAAG;AACZ,IAAA,CAAC;;;IAIY,YAAA,CAAA,iBAAiB,GAAG,CAC/B,cAAiC,EACjC,GAAW,EACX,KAAgC,KACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCR,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;IAIY,YAAA,CAAA,wBAAwB,GAAG,CACtC,cAAiC,EACjC,GAAW,EACX,OAAe,KACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCR,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,YAAA,CAAA,mBAAmB,GAAG,CACjC,cAAiC,EACjC,GAAW,KACkB;;;;;;;;;;;;;;;;;;;;;;;;;AAyB7B,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,YAAA,CAAA,iCAAiC,GAAG,CAC/C,cAAiC,EACjC,OAAe,KACP;;;;;;;;;;;;;;;;;;;;;;;AAuBR,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;IAIY,YAAA,CAAA,uBAAuB,GAAG,CACrC,cAAiC,EACjC,GAA8C,EAC9C,OAKC,KACO;;;;;;;;;;;;;;;;;;;;;;;;AAwBR,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,YAAA,CAAA,yBAAyB,GAAG,CAGvC,cAAiC,KAC5B;;;;;;;;;;;;;;;;;;;;;;;;;AAyBL,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAID;;AAEG;AACU,IAAA,YAAA,CAAA,2BAA2B,GAAG,CAGzC,cAAiC,KAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4EL,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;AAEH,CAAC,EAtUgB,YAAY,KAAZ,YAAY,GAAA,EAAA,CAAA,CAAA;AAuU7B;AAEA;AACM,IAAW;AAAjB,CAAA,UAAiB,aAAa,EAAA;IACf,aAAA,CAAA,mBAAmB,GAAG,wBAAwB;;;IAW9C,aAAA,CAAA,OAAO,GAAG,MAAa;QAClC,IAAI,cAAc,GAAG,EAAE;;;;;;AAOvB,QAAA,OAAO,iBAAiB,CAAC,cAAc,CAAC;AAC1C,IAAA,CAAC;;;IAIY,aAAA,CAAA,QAAQ,GAAG,MAAe;;;;;AAKrC,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,aAAA,CAAA,aAAa,GAAG,CAC3B,IAAY,KAKV;;;;;;;;;;;;;;;;;;;;;;;;;AAyBF,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,aAAA,CAAA,mBAAmB,GAAG,CAAC,MAAc,EAAE,EAAU,KAAa;;;;;;;;;;AAUzE,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,aAAA,CAAA,kBAAkB,GAAG,CAChC,MAAc,KACkB;;;;;;;;;;;;;;;;;AAiBhC,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,aAAA,CAAA,iBAAiB,GAAG,CAC/B,cAAsB,KACU;;;;;;;;;;;;;;;;;;AAkBhC,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAID;;AAEG;AACU,IAAA,aAAA,CAAA,cAAc,GAAG,CAAC,EAAU,KAAkC;;;;;;;;;;;;;;;;;;;AAmBzE,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,aAAA,CAAA,mBAAmB,GAAG,CAAC,MAAc,KAAU;;;;;;;;;;;;;;AAc1D,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,aAAA,CAAA,cAAc,GAAG,OAC5B,eAAkC,EAClC,OAEC,KACgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+FjB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;AAEH,CAAC,EA5RgB,aAAa,KAAb,aAAa,GAAA,EAAA,CAAA,CAAA;AA8R9B;AAEA;AACM,IAAW;AAAjB,CAAA,UAAiB,YAAY,EAAA;AASpB,IAAA,eAAe,SAAS,CAC7B,IAAY,EACZ,SAAS,GAAG,IAAI,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuChB,QAAA,QAAQ,KAAK,CAAC;IAChB;AA1CsB,IAAA,YAAA,CAAA,SAAS,YA0C9B;IAEY,YAAA,CAAA,kBAAkB,GAAG,OAChC,IAAY,EACZ,SAAS,GAAG,IAAI,KACI;;;;AAIpB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED;;AAEG;AACU,IAAA,YAAA,CAAA,mBAAmB,GAAG,OACjC,IAAY,EACZ,IAAI,GAAG,EAAE,EACT,SAAS,GAAG,IAAI,KACI;;;;;;;;;;;;;;;;;;;AAmBpB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIY,IAAA,YAAA,CAAA,SAAS,GAAG,CAAC,EAAU,KAAa;QAC/C,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;AACnB,YAAA,OAAO,KAAK;QACd;AACA,QAAA,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE;AACd,QAAA,IAAI,EAAE,KAAK,WAAW,EAAE;AACtB,YAAA,OAAO,IAAI;QACb;AACA,QAAA,OAAO,kKAAkK,CAAC,IAAI,CAC5K,EAAE,CACH;AACH,IAAA,CAAC;;;AAIY,IAAA,YAAA,CAAA,aAAa,GAAG,CAC3B,GAAW,EACX,OAKC,KACU;AACX,QAAA,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;AAAE,YAAA,OAAO,KAAK;AAEjD,QAAA,MAAM,qBAAqB,GAAG,CAAC,CAAC,OAAO,EAAE,qBAAqB;;QAG9D,MAAM,WAAW,GAAG;cAChB,oDAAoD;AACtD,cAAE,uCAAuC,CAAC;AAE5C,QAAA,IACE,OAAO,OAAO,EAAE,qBAAqB,KAAK,QAAQ;YAClD,OAAO,EAAE,qBAAqB,KAAK,MAAM;AACzC,YAAA,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAC1B;YACA,OAAO,KAAK,CAAC;QACf;AACA,QAAA,IACE,OAAO,OAAO,EAAE,qBAAqB,KAAK,QAAQ;YAClD,OAAO,EAAE,qBAAqB,KAAK,OAAO;AAC1C,YAAA,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAC3B;YACA,OAAO,KAAK,CAAC;QACf;QAEA,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AACrC,IAAA,CAAC;;;AAIY,IAAA,YAAA,CAAA,QAAQ,GAAG,CACtB,UAAiC,EACjC,OAGC,KACM;AACP,QAAA,OAAO,GAAG,OAAO,IAAI,EAAE;AACvB,QAAA,IAAI,GAAQ;AACZ,QAAA,MAAM,eAAe,GAAG,OAAO,CAAC,kBAAkB,GAAG,QAAQ,GAAG,OAAO;AACvE,QAAA,IAAI,UAAU,YAAY,GAAG,EAAE;YAC7B,GAAG,GAAG,UAAU;QAClB;AAAO,aAAA,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YACjC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAA,EAAG,eAAe,CAAA,YAAA,EAAe,UAAU,CAAA,CAAE,CAAC;QAC9D;aAAO,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE;AACvC,YAAA,GAAG,GAAG,IAAI,GAAG,CAAC,CAAA,EAAG,eAAe,CAAA,YAAA,EAAe,MAAM,CAAC,UAAU,CAAC,CAAA,CAAE,CAAC;QACtE;AAAO,aAAA,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AACjC,YAAA,IAAI;AACF,gBAAA,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC;YAC3B;AAAE,YAAA,OAAO,KAAc,EAAE,EAAC;AAC1B,YAAA,IAAI,aAAA,SAAS,CAAC,UAAU,CAAC,EAAE;AACzB,gBAAA,IAAI;oBACF,GAAG,GAAG,IAAI,GAAG,CAAC,CAAA,EAAG,eAAe,CAAA,EAAA,EAAK,UAAU,CAAA,CAAE,CAAC;gBACpD;gBAAE,OAAO,KAAc,EAAE;AACvB,oBAAA,OAAO,CAAC,IAAI,CAAC,6BAA6B,UAAU,CAAA,CAAE,CAAC;gBACzD;YACF;AACA,YAAA,IAAI,OAAO,CAAC,WAAW,EAAE;gBACvB,MAAM,MAAM,GAAG,UAAoB;gBACnC,GAAG,GAAG,IAAI,GAAG,CACX,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,CAAA,OAAA,EAAU,UAAU,CAAA,CAAE,CAC5D;YACH;QACF;AACA,QAAA,OAAO,GAAG;AACZ,IAAA,CAAC;;;AAIY,IAAA,YAAA,CAAA,eAAe,GAAG,aAAa,CAAC,OAAO;;;AAIpD;;AAEG;AACU,IAAA,YAAA,CAAA,mBAAmB,GAAG,aAAa,CAAC,mBAAmB;;;AAIpE;;AAEG;IACU,YAAA,CAAA,UAAU,GAAG,CACxB,MAAc,EACd,EAAA,GAAa,WAAW,EACxB,OAAA,GAAkB,EAAE,KACZ;;;;;;;;;;;;;;;;;;;;;;;;;AAyBR,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAID;;AAEG;AACU,IAAA,YAAA,CAAA,yBAAyB,GAAG,aAAa,CAAC,kBAAkB;;;AAIzE;;AAEG;AACU,IAAA,YAAA,CAAA,wBAAwB,GAAG,aAAa,CAAC,iBAAiB;;;AAIvE;;AAEG;AACU,IAAA,YAAA,CAAA,mBAAmB,GAAG,aAAa,CAAC,cAAc;;;AAI/D;;;AAGG;AACU,IAAA,YAAA,CAAA,aAAa,GAAG,aAAa,CAAC,mBAAmB;;;IAIjD,YAAA,CAAA,iCAAiC,GAAG,MAAc;;;;AAI7D,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;IAEY,YAAA,CAAA,iCAAiC,GAAG,MAAc;;;;AAI7D,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAKD;;AAEG;AACU,IAAA,YAAA,CAAA,cAAc,GAAG,aAAa,CAAC,cAAc;;;AAgB1D,IAAA,MAAM,kBAAkB,GAAG,CAAC,IAAY,KAAa;AACnD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE;AAChC,QAAA,QACE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;AACzB,YAAA,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACxB,YAAA,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;AACtB,YAAA,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;AACzB,YAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;AACrB,YAAA,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACxB,YAAA,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;AACtB,YAAA,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AAEpC,IAAA,CAAC;AAED,IAAA,MAAM,qBAAqB,GAAG,CAAC,IAAY,KAAyB;AAClE,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE;QAEhC,IAAI,kBAAkB,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,SAAS;AAC/C,QAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;AACxE,YAAA,OAAO,KAAK;AACd,QAAA,IACE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;AACpB,YAAA,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;AACvB,YAAA,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;AAEtB,YAAA,OAAO,MAAM;AACf,QAAA,OAAO,OAAO;AAChB,IAAA,CAAC;AAED,IAAA,MAAM,cAAc,GAAG,CAAC,CAAc,EAAE,CAAc,KAAY;AAChE,QAAA,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;QAC9D,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/B,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/B,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,EAAE,GAAG,EAAE;;QAG7B,MAAM,KAAK,GAAG,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE;QAC3C,MAAM,KAAK,GAAG,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE;;AAG3C,QAAA,MAAM,YAAY,GAAG,CAAC,IAAY,KAChC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;QAElE,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC;QACtD,IAAI,IAAI,KAAK,CAAC;AAAE,YAAA,OAAO,IAAI;AAE3B,QAAA,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;AACnC,IAAA,CAAC;;;AAID;;;AAGG;IACU,YAAA,CAAA,mBAAmB,GAAG,YAAmC;;;;;;;;;;;;;;;;;;;;;AAqBpE,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAID;;AAEG;IACU,YAAA,CAAA,gCAAgC,GAAG,YAE5C;;;;;;AAMF,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAID;;AAEG;IACU,YAAA,CAAA,yBAAyB,GAAG,YAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqC1E,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAIH,CAAC,EAzbgB,YAAY,KAAZ,YAAY,GAAA,EAAA,CAAA,CAAA;AA0b7B;AAEA;AACA;;;;;;AAMG;AACG,IAAW;AAAjB,CAAA,UAAiB,kBAAkB,EAAA;;;IA6BjC,MAAM,aAAa,GAAG,UAAU;AAEnB,IAAA,kBAAA,CAAA,sBAAsB,GAAG,MACpC,iBAAiB,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;;;AAI5D,IAAA,kBAAA,CAAA,YAAY,GAAG,CAG1B,OAAU,EACV,OAAe,KACH;;;;;;;;;;;;;;;;AAgBZ,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;;AAID;;AAEG;AACH,IAAA,MAAa,iBAAiB,CAAA;AAgB5B,QAAA,IAAW,kBAAkB,GAAA;YAC3B,OAAO,IAAI,CAAC,mBAAmB;QACjC;AAEA,QAAA,IAAW,qBAAqB,GAAA;YAC9B,OAAO,IAAI,CAAC,YAAY;QAC1B;;;AAIA,QAAA,WAAA;AACE;;AAEG;AACK,QAAA,eAAkB,EAClB,OAGP,EAAA;;;;;;;;;;;;YAJO,IAAA,CAAA,eAAe,GAAf,eAAe;YACf,IAAA,CAAA,OAAO,GAAP,OAAO;;YA3BT,IAAA,CAAA,YAAY,GAAkB,IAAI;YAElC,IAAA,CAAA,WAAW,GAAuB,IAAI;YAEtC,IAAA,CAAA,mBAAmB,GAAkB,IAAI;YAEzC,IAAA,CAAA,oBAAoB,GAAa,EAAE;YAEnC,IAAA,CAAA,oBAAoB,GAAa,EAAE;YAEnC,IAAA,CAAA,sBAAsB,GAAa,EAAE;QAkC7C;;;QAIA,YAAY,CACV,IAAkB,EAClB,aAiBC,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0GD,YAAA,QAAQ,KAAK,CAAC;QAChB;;;QAIA,WAAW,GAAA;;;;;;AAMT,YAAA,QAAQ,KAAK,CAAC;QAChB;;;AAIA;;AAEG;QACH,MAAM,CAAC,MAAc,EAAE,MAAe,EAAA;;;;;;;;;;;AAWpC,YAAA,QAAQ,KAAK,CAAC;QAChB;AAED;AAlNY,IAAA,kBAAA,CAAA,iBAAiB,oBAkN7B;;;AAID;;;;;;;;;;;;AAYG;AACU,IAAA,kBAAA,CAAA,kBAAkB,GAAG,CAAC,OAAe,KAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDpD,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED,IAAA,MAAM,QAAQ,GAAG,CAAC,OAAe,KAAc;;;;;;;;;;;;AAY7C,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;;AAEH,CAAC,EA5WgB,kBAAkB,KAAlB,kBAAkB,GAAA,EAAA,CAAA,CAAA;AA6WnC;AAEA;AACA;;;;;;;;;;;;;;;;;AAiBG;AACG,IAAW;AAAjB,CAAA,UAAiB,mBAAmB,EAAA;AAClC,IAAA,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC;IAC1C,MAAM,WAAW,GAAG,cAAc;;;;;;;;;;;;AAcrB,IAAA,mBAAA,CAAA,uBAAuB,GAAG,UAAU,CAAC,uBAAuB;AAE5D,IAAA,mBAAA,CAAA,eAAe,GAAG,CAAC,UAAkB,KAAqB;AACrE,QAAA,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,KAAI;;;;;;;;;;;;;;;;;;;;AAoBzC,YAAA,QAAQ,KAAK,CAAC;AAChB,QAAA,CAAC;AACH,IAAA,CAAC;AAEY,IAAA,mBAAA,CAAA,OAAO,GAAG,CACrB,0BAAoC,EACpC,OAQC,KACS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CV,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AACH,CAAC,EAlGgB,mBAAmB,KAAnB,mBAAmB,GAAA,EAAA,CAAA,CAAA;AAmGpC;;ACnwOA;AAiCA,MAAM,8BAA8B,GAAG,EAAE;AACzC,MAAM,+BAA+B,GAAG,EAAE;AAE1C,MAAM,GAAG,GAAG;IACV,UAAU,EAAE,MAAM,EAAE;IACpB,SAAS,EAAE,MAAM,EAAE;IACnB,SAAS,EAAE,MAAM,EAAE;IACnB,QAAQ,EAAE,MAAM,EAAE;IAClB,YAAY,EAAE,MAAM,EAAE;IACtB,iBAAiB,EAAE,MAAM,EAAE;IAC3B,cAAc,EAAE,MAAM,EAAE;CACzB;AACD,MAAM,SAAS,GAAG;IAChB,UAAU,EAAE,MAAM,EAAE;IACpB,SAAS,EAAE,MAAM,EAAE;IACnB,SAAS,EAAE,MAAM,EAAE;IACnB,QAAQ,EAAE,MAAM,EAAE;IAClB,YAAY,EAAE,MAAM,EAAE;IACtB,iBAAiB,EAAE,MAAM,EAAE;IAC3B,cAAc,EAAE,MAAM,EAAE;CACzB;AACD,MAAM,eAAe,GAAG;IACtB,UAAU,EAAE,MAAM,EAAE;IACpB,SAAS,EAAE,MAAM,EAAE;IACnB,SAAS,EAAE,MAAM,EAAE;IACnB,QAAQ,EAAE,MAAM,EAAE;IAClB,YAAY,EAAE,MAAM,EAAE;IACtB,iBAAiB,EAAE,MAAM,EAAE;IAC3B,cAAc,EAAE,MAAM,EAAE;CACzB;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM,KAAK,GAAG,EAAE;AAgBhB;AAEM,IAAW;AAAjB,CAAA,UAAiB,OAAO,EAAA;IACT,OAAA,CAAA,YAAY,GAAG,MAAK;AAC/B,QAAA,OAAO,OAAO,CAAC,kBAAkB,EAAE;AACrC,IAAA,CAAC;IACY,OAAA,CAAA,WAAW,GAAG,MAAK;AAC9B,QAAA,OAAO,OAAO,CAAC,iBAAiB,EAAE;AACpC,IAAA,CAAC;IACY,OAAA,CAAA,SAAS,GAAG,MAAK;AAC5B,QAAA,OAAO,OAAO,CAAC,eAAe,EAAE;AAClC,IAAA,CAAC;IACY,OAAA,CAAA,aAAa,GAAG,MAAK;AAChC,QAAA,OAAO,OAAO,CAAC,mBAAmB,EAAE;AACtC,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,OAAO,GAAG,CAAC,GAAU,EAAE,IAAS,KAAa;AACxD,QAAA,QACE,GAAG,CAAC,MAAM,CAAC,CAAC,IAAG;AACb,YAAA,IAAI,CAAC,YAAY,MAAM,EAAE;AACvB,gBAAA,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACrB;AACA,YAAA,IAAI,CAAC,KAAK,IAAI,EAAE;AACd,gBAAA,OAAO,IAAI;YACb;YACA,IACE,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,EACtE;AACA,gBAAA,OAAO,IAAI;YACb;AACA,YAAA,OAAO,KAAK;AACd,QAAA,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;AAEjB,IAAA,CAAC;;AAGD;;;AAGG;AACH,IAAA,MAAM,aAAa,GAAG,CAAC,OAAY,KAAY;AAC7C,QAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;;;;AAI/B,YAAA,IAAI;AACF,gBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC7C,OAAO,GAAG,IAAI;YAChB;YAAE,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,OAAO;YAChB;QACF;AACA,QAAA,OAAO,OAAO;AAChB,IAAA,CAAC;;IAGY,OAAA,CAAA,aAAa,GAAG,MAAK;;;;;;AAOlC,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,WAAW,GAAG,CAAC,GAAU,KAAI;AACxC,QAAA,IAAI,OAAO,CAAC,YAAY,EAAE,EAAE;;AAE1B,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;QACpB;aAAO;;;;;;;;;;QAWP;AACF,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,UAAU,GAAG,CAAC,OAAe,KAAI;AAC5C,QAAA,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC;AAC1B,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,eAAe,GAAG,CAAC,OAAe,KAAI;AACjD,QAAA,IAAI,OAAO,CAAC,YAAY,EAAE,EAAE;;YAE1B,QAAQ,CAAC,IAAI,CAAC,SAAS;AACrB,gBAAA,4DAA4D;YAC9D,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM;;;;;;QAO5C;AACA,QAAA,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC;AAC1B,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,aAAa,GAAG,CAAC,KAAU,KAAI;QAC1C,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;AAClC,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,KAAK,GAAG,CAAC,OAAY,EAAE,MAAM,GAAG,KAAK,EAAE,OAAO,GAAG,KAAK,KAAI;;AAErE,QAAA,IAAI,OAAO,CAAC,YAAY,EAAE,EAAE;AAC1B,YAAA,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YACtB;QACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDF,IAAA,CAAC;IACY,OAAA,CAAA,IAAI,GAAG,CAAC,OAAe,EAAE,UAAU,GAAG,KAAK,KAAI;;;;;;;AAQ1D,QAAA,IAAI,OAAO,CAAC,YAAY,EAAE,EAAE;AAC1B,YAAA,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;YACrB;QACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCF,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,OAAO,GAAG,CAAC,OAAqB,KAAI;AAC/C,QAAA,IAAI,OAAO,CAAC,YAAY,EAAE,EAAE;AAC1B,YAAA,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;YACrB;QACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCF,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,WAAW,GAAG,CACzB,OAAqB,EACrB,SAAA,GAAqB,KAAK,KACxB;AACF,QAAA,IAAI,OAAO,CAAC,YAAY,EAAE,EAAE;AAC1B,YAAA,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;YACrB;QACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CF,IAAA,CAAC;IACY,OAAA,CAAA,QAAQ,GAAG,CAAC,OAAsB,EAAE,eAAe,GAAG,KAAK,KAAI;AAC1E,QAAA,IAAI,OAAO,CAAC,YAAY,EAAE,EAAE;AAC1B,YAAA,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;YACrB;QACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDF,IAAA,CAAC;IACY,OAAA,CAAA,gBAAgB,GAAG,MAAK;;QAEnC,OAAO,IAAI,CAAC;;;;AAKd,IAAA,CAAC;IACY,OAAA,CAAA,GAAG,GAAG,CAAC,OAAY,EAAE,UAAU,GAAG,CAAC,KAAI;AAClD,QAAA,IAAI,OAAO,CAAC,YAAY,EAAE,EAAE;AAC1B,YAAA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YACpB;QACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDF,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,UAAU,GAAG,CAAC,OAAqB,KAAI;;;;;;AAMlD,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;IACY,OAAA,CAAA,OAAO,GAAG,CAAC,OAAe,EAAE,UAAU,GAAG,KAAK,KAAI;;;;;;AAM7D,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,QAAQ,GAAG,CAAC,OAAY,EAAE,MAAM,GAAG,KAAK,EAAE,OAAO,GAAG,KAAK,KAAI;;;;;;AAMxE,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;IACY,OAAA,CAAA,OAAO,GAAG,CAAC,OAAe,EAAE,KAAK,GAAG,KAAK,KAAI;;;;;;AAMxD,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;IACY,OAAA,CAAA,IAAI,GAAG,CAAC,OAAe,EAAE,KAAK,GAAG,KAAK,KAAI;AACrD,QAAA,IAAI,OAAO,CAAC,YAAY,EAAE,EAAE;AAC1B,YAAA,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;YACrB;QACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDF,IAAA,CAAC;IAED,MAAM,SAAS,GAAG,EAAE;AACP,IAAA,OAAA,CAAA,YAAY,GAAG,IAAI,GAAG,GAAG;IAEzB,OAAA,CAAA,QAAQ,GAAG,MAAK;AAC3B,QAAA,OAAO,OAAO,CAAC,cAAc,EAAE;AACjC,IAAA,CAAC;IACY,OAAA,CAAA,iBAAiB,GAAG,MAAK;AACpC,QAAA,OAAO,OAAO,CAAC,iBAAiB,EAAE;AACpC,IAAA,CAAC;IACY,OAAA,CAAA,0CAA0C,GAAG,MAAK;AAC7D,QAAA,OAAO,OAAO,CAAC,0CAA0C,EAAE;AAC7D,IAAA,CAAC;IACY,OAAA,CAAA,YAAY,GAAG,MAAK;AAC/B,QAAA,OAAO,aAAa,CAAC,YAAY,EAAE;AACrC,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,gBAAgB,GAAG,CAAC,GAAW,KAA0B;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;QAC7B,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC;QACvC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AACnC,IAAA,CAAC;AAED;;;;AAIG;AACU,IAAA,OAAA,CAAA,KAAK,GAAG,CAAC,OAAO,GAAG,CAAC,KAAI;;;;;;;;;;;;;AAanC,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,cAAc,GAAG,CAC5B,wBAA2C,KACzC;;;;;;;;;;;;;;;;;;;AAmBF,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,QAAQ,GAAG,CAAC,GAAW,EAAE,EAAU,KAAI;QAClD,OAAO,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAClD,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,kBAAkB,GAAG,CAAC,gBAAmC,KAAI;;;;;;;;;;;;;AAaxE,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,oBAAoB,GAAG,CAClC,kBAAqC,KACnC;;;;;;;;;;;;;;AAcF,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED;;AAEG;AACU,IAAA,OAAA,CAAA,yBAAyB,GAAG,CAAC,GAAW,KAAI;;;;;;;;;;;;;;;;;;;;;;AAsBvD,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED;;AAEG;AACU,IAAA,OAAA,CAAA,YAAY,GAAG,CAC1B,OAAe,EACf,WAAW,GAAG,KAAK,EACnB,qBAAqB,GAAG,KAAK,KAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCF,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,cAAc,GAAG,CAC5B,OAA0B,EAC1B,OAEC,KACO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDR,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;IACY,OAAA,CAAA,MAAM,GAAG,CACpB,wBAA2C,EAC3C,WAAW,GAAG,KAAK,KACjB;;;;;;;;;;;;;AAaF,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;IACY,OAAA,CAAA,SAAS,GAAG,MAAK;;;;;;;;;AAS5B,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;IACY,OAAA,CAAA,qBAAqB,GAAG,MAAK;;;;;;;;;AASxC,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED;;AAEG;IACU,OAAA,CAAA,0BAA0B,GAAG,MAAK;;AAE7C,QAAA,OAAO,KAAK;;;;;;;;;;;;AAYV,QAAA,QAAQ,KAAK,CAAC;AAClB,IAAA,CAAC;AAED;;AAEG;AACU,IAAA,OAAA,CAAA,OAAO,GAAG,CAAC,WAAgB,KAAa;QACnD,IAAI,OAAO,GAAG,KAAK;AACnB,QAAA,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;;;YAGrC,OAAO;gBACL,CAAC,CAAC,WAAW,CAAC,SAAS;oBACvB,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CACtD,CAAC,IAAI,CAAC,KAAK,aAAa,CACzB,CAAC,MAAM,GAAG,CAAC;QAChB;;AAEA,QAAA,OAAO,OAAO;AAChB,IAAA,CAAC;AAED;;;;AAIG;AACU,IAAA,OAAA,CAAA,MAAM,GAAG,CAAC,SAAS,KAAuB;;AAErD,QAAA,OAAO,SAAS,YAAY,IAAI,CAAC;AACnC,IAAA,CAAC;AAED;;;;;AAKG;AACU,IAAA,OAAA,CAAA,QAAQ,GAAG,CAAC,iBAAiB,KAAiC;AACzE,QAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC;AAC3C,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,gBAAgB,GAAG,CAAC,CAAS,KAAY;QACpD,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAA,CAAA,CAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC;AACnD,QAAA,OAAO,CAAC;AACV,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,kBAAkB,GAAG,CAAC,CAAS,KAAY;QACtD,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAA,CAAA,CAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACvC,QAAA,OAAO,CAAC;AACV,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,SAAS,GAAG,CAAC,WAAgB,KAAY;;;;;;;;QAQpD,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7C,IAAA,CAAC;AAED;;AAEG;AACU,IAAA,OAAA,CAAA,cAAc,GAAG,OAC5B,WAAkC,KAClB;AAChB,QAAA,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;YAC9B,OAAO,KAAK,CAAQ;QACtB;AACA,QAAA,IAAI,aAAkB;;;;;;;QAOtB,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,WAAW;QAC1D,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC;;;;;;AAMxD,QAAA,IAAI,aAAa,YAAY,OAAO,EAAE;;AAEpC,YAAA,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;QAChD;;AAEA,QAAA,OAAO,aAAa;AACtB,IAAA,CAAC;IACY,OAAA,CAAA,aAAa,GAAG,CAC3B,mBAA2B,EAC3B,eAAuB,EACvB,OAsBC,KACO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0LR,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,YAAY,GAAG,CAAC,UAA6B,KAAU;AAClE,QAAA,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;AACnC,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,MAAM,GAAG,CAAC,UAA6B,KAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2C5D,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED;;AAEG;IACU,OAAA,CAAA,uBAAuB,GAAG,CACrC,eAAuB,EACvB,OAAe,EACf,iBAAiB,GAAG,KAAK,KACd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCX,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,8BAA8B,GAAG,CAC5C,QAA2B,KAChB;;;;;;;;;;;AAWX,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED;;AAEG;AACU,IAAA,OAAA,CAAA,eAAe,GAAG,CAAC,QAA2B,KAAa;;;;;;;;;;;;;;;;;;;;AAoBtE,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED;;AAEG;AACU,IAAA,OAAA,CAAA,gBAAgB,GAAG,CAAC,QAA2B,KAAa;;;;;;;;;;;;;;;;;;;;AAoBvE,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,eAAe,GAAG,CAAC,CAAS,KAAI;AAC3C,QAAA,IAAI,QAAgB;QACpB,OAAO,IAAI,EAAE;YACX,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;;AAEtC,YAAA,IAAI,CAAC,KAAK,QAAQ,EAAE;AAClB,gBAAA,OAAO,KAAK;YACd;AACA,YAAA,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;AAC/B,gBAAA,OAAO,IAAI;YACb;YACA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;AACtB,gBAAA,OAAO,KAAK;YACd;YACA,QAAQ,GAAG,CAAC;QACd;AACF,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,MAAM,GAAG,CAAC,gBAAmC,KAAI;;;;;;;;;;;;;;;;;;;;;;;;AAwB5D,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED;;AAEG;AACU,IAAA,OAAA,CAAA,WAAW,GAAG,CAAC,OAAe,KAAY;;;;;;;;;;;;;;;;AAgBrD,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,OAAO,GAAG,CAAC,OAAe,KAAI;;AAEzC,QAAA,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;QACtC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAiDN;AACH,IAAA,CAAC;AAED;;AAEG;AACU,IAAA,OAAA,CAAA,IAAI,GAAG,OAAO,MAAc,KAAmB;AAC1D,QAAA,MAAM,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;AAClC,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,OAAO,GAAG,OAAO,OAAe,KAAmB;AAC9D,QAAA,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7B,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,0BAA0B,GAAG,OACxC,OAAe,EACf,GAAG,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EACtC,OAA8B,KACX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BnB,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,qBAAqB,GAAG,CACnC,OAAe,EACf,GAAG,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EACtC,OAA8B,KACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCV,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED;;AAEG;AACU,IAAA,OAAA,CAAA,iBAAiB,GAAG,OAC/B,iBAAoC,EACpC,OAEC,KACC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CF,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,UAAU,GAAG,OACxB,iBAAoC,EACpC,OAEC,KACC;QACF,OAAO,MAAM,OAAO,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,OAAO,CAAC;AACpE,IAAA,CAAC;AAED;;AAEG;AACU,IAAA,OAAA,CAAA,WAAW,GAAG,CAAC,KAAa,KAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8B7C,IAAA,CAAC;;AAGD;;;AAGG;AACU,IAAA,OAAA,CAAA,GAAG,GAAG,CAAC,OAAe,EAAE,OAA+B,KAAI;AACtE,QAAA,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;;;;;;;;;;QAWtC,OAAO;AACL;;AAEG;YACH,IAAI,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,gBAAA,QAAQ,KAAK,CAAC;YAClB,CAAC;AACD;;;AAGG;AACH,YAAA,KAAK,CACH,MAAM,GAAG,KAAK,EACd,OAI6B,EAAA;;gBAG7B,IAAI,OAAO,EAAE;AACX,oBAAA,MAAM,YAAY,GAAG,IAAI,OAAO,EAAE;AAClC,oBAAA,MAAM,WAAW,GAAG,IAAI,OAAO,EAAE;AACjC,oBAAA,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;oBAC7B,MAAM,aAAa,GAAmB,EAAE;AACxC,oBAAA,MAAM,SAAS,GAAG;AAChB,wBAAA,MAAM,EAAE;4BACN,EAAE,CAAC,MAAc,EAAE,cAAmB,EAAA;AACpC,gCAAA,IAAI,MAAM,IAAI,MAAM,EAAE;oCACpB,aAAa,CAAC,IAAI,CAChB,YAAY,CAAC,SAAS,CAAC,CAAC,IAAG;wCACzB,cAAc,CAAC,CAAC,CAAC;oCACnB,CAAC,CAAC,CACH;gCACH;4BACF,CAAC;AACF,yBAAA;AACD,wBAAA,MAAM,EAAE;4BACN,EAAE,CAAC,MAAc,EAAE,cAAmB,EAAA;AACpC,gCAAA,IAAI,MAAM,IAAI,MAAM,EAAE;oCACpB,aAAa,CAAC,IAAI,CAChB,WAAW,CAAC,SAAS,CAAC,CAAC,IAAG;wCACxB,cAAc,CAAC,CAAC,CAAC;oCACnB,CAAC,CAAC,CACH;gCACH;4BACF,CAAC;AACF,yBAAA;wBACD,EAAE,CAAC,MAAc,EAAE,OAAY,EAAA;AAC7B,4BAAA,IAAI,MAAM,IAAI,MAAM,EAAE;gCACpB,aAAa,CAAC,IAAI,CAChB,OAAO,CAAC,SAAS,CAAC,CAAC,IAAG;oCACpB,OAAO,CAAC,CAAC,CAAC;gCACZ,CAAC,CAAC,CACH;4BACH;AACF,wBAAA,CAAC;AACD,wBAAA,IAAI,EAAE,KAAK,CAAW;wBACtB,GAAG,EAAE,KAAK,CAAW;qBACtB;oBACD,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG;oBAC9D,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,GAAG,IAAI;AACrC,oBAAA,8BAA8B,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS;oBACzD,IAAI,CAAC,+BAA+B,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;AACpD,wBAAA,+BAA+B,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG;AAChD,4BAAA,cAAc,EAAE,EAAE;yBACnB;oBACH;AACA,oBAAA,+BAA+B,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CACjE,SAAS,CAAC,GAAG,CACd;oBACD,MAAM,0BAA0B,GAAG,MAAK;wBACtC,QACE,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;4BACtD,CAAC,CAAC,KAAK,CAAC,+BAA+B,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAE5D,oBAAA,CAAC;AACD,oBAAA,MAAM,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;AAC/B,wBAAA,UAAU,EAAE,OAAO;AACnB,wBAAA,aAAa,EAAE;AACb,4BAAA,CAAC,IAAG;gCACF,UAAU,CAAC,MAAK;AACd,oCAAA,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AACtB,gCAAA,CAAC,CAAC;4BACJ,CAAC;AACD,4BAAA,CAAC,IAAG;gCACF,UAAU,CAAC,MAAK;AACd,oCAAA,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACrB,gCAAA,CAAC,CAAC;4BACJ,CAAC;AACD,4BAAA,MAAK;AACH,gCAAA,MAAM,YAAY,GAAG,0BAA0B,EAAE;AACjD,gCAAA,OAAO,YAAY;4BACrB,CAAC;AACF,yBAAA;AACF,qBAAA,CAAC;AACF,oBAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAG;AAChB,wBAAA,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;4BACrB,QAAQ,GAAG,CAAC;wBACd;wBACA,UAAU,CAAC,MAAK;AACd,4BAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AACtB,4BAAA,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AAC7C,wBAAA,CAAC,CAAC;AACJ,oBAAA,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAU,KAAI;AACtB,wBAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAChB,wBAAA,OAAO,CAAC,KAAK,CAAC,CAAA,uCAAA,CAAyC,CAAC;AACxD,wBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACf,wBAAA,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AAC7C,oBAAA,CAAC,CAAC;AACF,oBAAA,OAAO,SAAgB;gBACzB;;;;;;AAON,gBAAA,QAAQ,KAAK,CAAC;YACV,CAAC;AACD;;AAEG;YACH,cAAc,GAAA;;;;;;;;;;;;;;;;;;AAkBZ,gBAAA,QAAQ,KAAK,CAAC;YAChB,CAAC;AACD,YAAA,WAAW,CAAC,aAMX,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4FC,gBAAA,QAAQ,KAAK,CAAC;YAChB,CAAC;AACD;;;;AAIG;YACH,mBAAmB,CACjB,SAA4B,EAC5B,QAA4B,EAC5B,OAAO,GAAG,CAAC,EACX,4BAAwC,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgFxC,gBAAA,QAAQ,KAAK,CAAC;YAChB,CAAC;SACF;AACH,IAAA,CAAC;AAED;;AAEG;AACU,IAAA,OAAA,CAAA,aAAa,GAAG,OAC3B,OAAe,EACf,YAAwB,EACxB,aAAyB,EACzB,YAAY,GAAG,IAAI,KACjB;;;;;;;;AAQF,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,QAAQ,GAAG,CAAC,OAA+B,KAAI;;;;;;;;;;;;;;;;;;;;;;;;;AAyB1D,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,SAAS,GAAG,CACvB,OAAe,EACf,OAA+B,KAC7B;;;;;;;;;;;;AAYF,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,UAAU,GAAG,CACxB,OAAe,EACf,OAA+B,KAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkEF,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,OAAO,GAAG,CACrB,IAAkB,EAClB,MAAM,GAAG,IAAI,EACb,KAAK,EACL,iBAAiD,EACjD,MAAc,EACd,eAAuC,KACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqEF,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED;;AAEG;IACU,OAAA,CAAA,OAAO,GAAG,CACrB,OAAe,EACf,GAAW,EACX,OAAkE,KAChE;QACF,OAAO,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC;AACvD,IAAA,CAAC;AAED;;AAEG;AACU,IAAA,OAAA,CAAA,YAAY,GAAG,CAAC,OAAe,EAAE,OAAe,KAAI;;;;;;;;;;;AAW/D,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;IACY,OAAA,CAAA,gBAAgB,GAAG,CAC9B,IAA6B,EAC7B,iBAAiD,EACjD,MAAc,EACd,eAAuC,KAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CV,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,QAAQ,GAAG,CAAC,uBAA+B,KAAa;;;;;;;AAOnE,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED;;;AAGG;AACU,IAAA,OAAA,CAAA,MAAM,GAAG,CAAC,GAAQ,KAAI;AACjC,QAAA,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC1C,MAAM,MAAM,GAAG,EAAE;AACjB,YAAA,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;AACrB,gBAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;;oBAElD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACvB;YACF;AACA,YAAA,OAAO,MAAM;QACf;AACA,QAAA,OAAO,EAAE;AACX,IAAA,CAAC;AAED;;;AAGG;AACU,IAAA,OAAA,CAAA,MAAM,GAAG,CAAC,uBAA+B,KAAI;;;;;;;AAOxD,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,WAAW,GAAG,OACzB,gBAAmC;AACnC,IAAA,yBAAA,GAA4B,KAAK,CAAW,EAC5C,OAAO,GAAG,KAAK,KACgB;;;;;;;;;;;;;;;;;;;;;;;;;;AA0B/B,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED;;;AAGG;AACU,IAAA,OAAA,CAAA,QAAQ,GAAG,CACtB,gBAAmC;AACnC,IAAA,yBAAA,GAA4B,KAAK,CAAW,EAC5C,OAAO,GAAG,KAAK,KACO;AACtB,QAAA,OAAO,qBAAqB,CAAC,QAAQ,CAAC,gBAAgB,EAAE;YACtD,yBAAyB;YACzB,OAAO;AACR,SAAA,CAAC;AACJ,IAAA,CAAC;AAED;;AAEG;AACU,IAAA,OAAA,CAAA,QAAQ,GAAG,CACtB,gBAAmC,EACnC,YAAY,GAAG,EAAE,EACjB,QAAQ,GAAG,KAAK,KACT;QACP,OAAO,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,YAAY,EAAE,QAAQ,CAAC;AACrE,IAAA,CAAC;AAED;;AAEG;AACU,IAAA,OAAA,CAAA,SAAS,GAAG,CACvB,gBAAmC,EACnC,YAAA,GAAoB,EAAE,KACf;QACP,OAAO,SAAS,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,YAAY,CAAC;AACvE,IAAA,CAAC;AAED;;AAEG;AACU,IAAA,OAAA,CAAA,SAAS,GAAG,CACvB,gBAAmC,EACnC,YAAA,GAAoB,EAAE,KACf;QACP,OAAO,SAAS,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,YAAY,CAAC;AACvE,IAAA,CAAC;AAED;;;AAGG;IACU,OAAA,CAAA,KAAK,GAAG,CACnB,YAAoB,EACpB,QAAQ,GAAG,KAAK,KACC;QACjB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;AAC7B,YAAA,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AACzB,YAAA,OAAO,CAAC,IAAI,CAAC,CAAA,0CAAA,CAA4C,CAAC;AAC1D,YAAA,OAAO,YAAY;QACrB;QACA,QACE,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAEnE,IAAA,CAAC;IACY,OAAA,CAAA,kBAAkB,GAAG,OAChC,EAAc,EACd,QAAA,GAAmB,MAAM,EACzB,aAAA,GAGe,gBAAgB,KAC7B;;;;;;;;;;;;;;AAcF,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,kBAAkB,GAAG,CAChC,gBAAmC,EACnC,aAAuC,KACrC;;;;;;;AAQJ,IAAA,CAAC;AAED;;;AAGG;IACU,OAAA,CAAA,SAAS,GAAG,CACvB,gBAAmC,EACnC,KAA+B,EAC/B,OAGC,KACU;QACX,OAAO,qBAAqB,CAAC,SAAS,CAAC,gBAAgB,EAAE,KAAK,EAAE,OAAO,CAAC;AAC1E,IAAA,CAAC;AAED;;AAEG;IACU,OAAA,CAAA,SAAS,GAAG,CACvB,gBAAmC,EACnC,KAAa,EACb,OAGC,KACU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDX,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,UAAU,GAAG,CACxB,gBAAmC,EACnC,KAAa,KACX;AACF,QAAA,OAAO,OAAO,CAAC,SAAS,CAAC,gBAAgB,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACzE,IAAA,CAAC;AACY,IAAA,OAAA,CAAA,UAAU,GAAG,CACxB,gBAAmC,EACnC,KAAa,KACX;AACF,QAAA,OAAO,QAAA,UAAU,CAAC,gBAAgB,EAAE,KAAK,CAAC;AAC5C,IAAA,CAAC;AAED;;;AAGG;AACU,IAAA,OAAA,CAAA,WAAW,GAAG,CACzB,YAA+B,EAC/B,OAIC,KACW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDZ,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED;;AAEG;AACU,IAAA,OAAA,CAAA,kBAAkB,GAAG,CAChC,YAA+B,EAC/B,cAAA,GAA0B,KAAK,KACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BZ,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED;;AAEG;AACU,IAAA,OAAA,CAAA,iBAAiB,GAAG,CAC/B,YAA+B,KACnB;;;;;;;;;;;;;;;;;;;;;;;;AAwBZ,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED;;;AAGG;AACU,IAAA,OAAA,CAAA,YAAY,GAAG,CAC1B,oBAAuC,EACvC,OAAwE,KAC5D;QACZ,OAAO,qBAAqB,CAAC,YAAY,CAAC,oBAAoB,EAAE,OAAO,CAAC;AAC1E,IAAA,CAAC;AAED;;;AAGG;AACU,IAAA,OAAA,CAAA,cAAc,GAAG,CAC5B,oBAAuC,EACvC,OAAwE,KAC5D;QACZ,OAAO,qBAAqB,CAAC,cAAc,CAAC,oBAAoB,EAAE,OAAO,CAAC;AAC5E,IAAA,CAAC;AAED;;;AAGG;IACU,OAAA,CAAA,SAAS,GAAG,CACvB,YAA+B,EAC/B,SAAA,GAAqB,KAAK,EAC1B,oBAAA,GAAgC,KAAK,KACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCZ,QAAA,QAAQ,KAAK,CAAC;AAChB,IAAA,CAAC;AAED;;;AAGG;AACU,IAAA,OAAA,CAAA,wBAAwB,GAAG,CAAC,UAAkB,KAAU;AACnE,QAAA,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAAC;AAC9C,IAAA,CAAC;IACY,OAAA,CAAA,gBAAgB,GAAG,MAAK;;;;AAKrC,IAAA,CAAC;AACH,CAAC,EAtqFgB,OAAO,KAAP,OAAO,GAAA,EAAA,CAAA,CAAA;;MCpFX,aAAa,CAAA;AAA1B,IAAA,WAAA,GAAA;QA+DS,IAAA,CAAA,IAAI,GAAkC,OAAO;IAGtD;IAjES,OAAO,GAAG,CAAC,GAAmB,EAAA;;;;;;;;IASrC;IAEO,OAAO,WAAW,CACvB,KAAa,EACb,iBAAgD,EAChD,UAAU,GAAG,IAAI,EAAA;AAEjB,QAAA,IAAI,QAAQ;QACZ,IAAI,GAAG,GAAoB,EAAE;QAC7B,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACtB,YAAA,OAAO,EAAE;QACX;AACA,QAAA,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE;QAEpB,IAAI,UAAU,EAAE;YACd,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;AACvC,YAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;;AAEpB,gBAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAG;AAChB,oBAAA,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC;AACjE,gBAAA,CAAC,CAAC;AACF,gBAAA,OAAO,GAAG;YACZ;QACF;AAEA,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACjC,YAAA,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;YAC7D,QAAQ,GAAG,KAAK;QAClB;QACA,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;AAC5B,YAAA,IAAI;gBACF,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC9B,gBAAA,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,aAAa,EAAE,EAAE,CAAC,CAAC;gBAC9C,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AAC1B,gBAAA,IAAI,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE;oBACnC,iBAAiB,CAAC,MAAM,CAAC;gBAC3B;YACF;YAAE,OAAO,GAAG,EAAE;AACZ,gBAAA,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;gBAC/D,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC;gBACjC,OAAO,CAAC,KAAK,CACX,CAAA,iCAAA,EAAoC,QAAQ,CAAA,CAAA,CAAG,EAC/C,IAAI,EACJ,IAAI,CACL;YACH;QACF;AACA,QAAA,OAAO,GAAG;IACZ;AAQD;;ACpFD;;;AAGG;AACI,MAAM,cAAc,GAAG;AAC5B,IAAA,GAAG,EAAE;;;;;;;;;;;;;;;;;AAkBJ,KAAA;AACD,IAAA,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;AAyBV,KAAA;AACD,IAAA,QAAQ,EAAE;;;;;;;AAQT,KAAA;;;AC1DH;AAQA;MAEa,GAAG,CAAA;aACA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC;AAErB,IAAA,OAAO,kBAAkB,CAC9B,kBAAA,GAA0B,cAAc,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BxC,QAAA,QAAQ,KAAK,CAAC;IAChB;AAEA;;AAEG;AACI,IAAA,OAAO,gBAAgB,CAC5B,kBAAA,GAA0B,cAAc,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CxC,QAAA,QAAQ,KAAK,CAAC;IAChB;;;AChGF;AAoBA;AACA;AACA;AACA;AAGA;AACA;AACA,IAAI,aAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AAEO,MAAM,MAAM,GAAG;IACpB,aAAa;AACb,IAAA,YAAY,EAAE;QACZ,wBAAwB;AACzB,KAAA;AACD,IAAA,WAAW,EAAE;AACX,QAAA,mBAAmB,EAAE,CAAA,kCAAA,CAAoC;AAC1D,KAAA;AACD,IAAA,YAAY,EAAE;AACZ,QAAA,4BAA4B,EAAE,8BAA8B;AAC7D,KAAA;IACD,aAAa;AACb,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,UAAU,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,CAA6B;AAC1E;;AAEG;AACH,IAAA,MAAM,EAAE,UAAU;AAClB;;AAEG;AACH,IAAA,WAAW,EAAE,eAAe;;AAE5B,IAAA,sBAAsB,EAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAC7D,GAAG,IAAI,sBAAsB,CAAC,GAAG,CAAC,CACvB;AACb;;AAEG;AACH,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,4BAA4B,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;;AAElE,IAAA,SAAS,EAAE;;;;;;;;;;;;;;;;AAiBV,KAAA;IACD,SAAS,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;;AAE9C;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/IA;;AAEG;;;;"}
1
+ {"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/constants.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/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/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/config.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 jscodeshift: () => require('jscodeshift'),\n dateformat: () => require('dateformat'),\n ['body-parser']: () => require('body-parser'),\n ['cookie-parser']: () => require('cookie-parser'),\n ['cors']: () => require('cors'),\n ['express']: () => require('express'),\n ['method-override']: () => require('method-override'),\n ['express-session']: () => require('express-session'),\n};\n/**\n * use only in backend mode\n */\nexport function requireDefault<T>(id: keyof typeof REQUIRE_MAP): T {\n const m = REQUIRE_MAP[id]();\n return m?.default ?? m;\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 { LibTypeEnum, 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 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 //#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 //#region http method\n export type HttpMethod =\n | 'get'\n | 'post'\n | 'put'\n | 'delete'\n | 'patch'\n | 'head'\n | 'jsonp';\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 /**\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 * @deprecated TODO I should remove it from here and from taon-typeorm somehow\n */\n export const OrignalClassKey = '$$originalClass$$';\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 ClassNameStaticProperty = '$$className$$';\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};","import 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 '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 'environments',\n 'env',\n 'projects',\n 'plugins',\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';","//#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';\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 (await axios({\n url,\n method: 'get',\n responseType: 'blob',\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\nexport namespace UtilsStringRegex {\n export const containsNonAscii = (pathStringOrPathParts: string): boolean => {\n const hasNonAscii = /[^\\u0000-\\u0080]+/.test(pathStringOrPathParts);\n return hasNonAscii;\n };\n}\n\n//#region utils process\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 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}\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 exec process\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 /**\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 /**\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(\n shell?: any,\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(): Promise<string> {\n const { stdout } = await this.getOutput();\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 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 options = options || {};\n options.cwd = crossPlatformPath(options.cwd || process.cwd());\n const [cmd, ...args] = command.split(' ');\n return new ExecProcResult(cmd, args);\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 }: {\n command: string;\n cwd: string;\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 }: {\n command: string;\n cwd: string;\n }): Promise<string> => {\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 files folders sync\nexport namespace UtilsFilesFoldersSync {\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\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 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//#endregion\n\n//#region utils files folders\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 /**\n * Patterns that should be always ignored\n */\n export const IGNORE_FOLDERS_FILES_PATTERNS =\n UtilsFilesFoldersSync.IGNORE_FOLDERS_FILES_PATTERNS;\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}\n//#endregion\n\n//#region utils os\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 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 vscode\n export const openFolderInVSCode = (folderPath: 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 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 export type Editor =\n | 'code'\n | 'codium'\n | 'cursor'\n | 'theia'\n | 'idea'\n | 'idea64';\n\n export type UnknownEditor = 'unknown-editor--please-install-vscode';\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\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\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\n export const killAllEditor = (editor: EditorProcess) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n };\n\n export const detectEditor = (): Editor => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\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 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\n export const isRunningNodeDebugger = (): boolean => {\n //#region @browser\n return false;\n //#endregion\n/* */\n/* */\n return (void 0);\n };\n\n export const isNodeVersionOk = UtilsProcess.isNodeVersionOk;\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\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//#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 terminal\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 = Utils.wait;\n //#endregion\n\n //#region utils terminal / wait milliseconds\n export const waitMilliseconds = Utils.waitMilliseconds;\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//#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 etc hosts\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}\n\n//#endregion\n\n//#region utils network\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 / simulate domain tag constant\n /**\n * @deprecated use UtilsEtcHosts.SIMULATE_DOMAIN_TAG instead\n */\n export const SIMULATE_DOMAIN_TAG = UtilsEtcHosts.SIMULATE_DOMAIN_TAG;\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 = UtilsEtcHosts.getEntriesByDomain;\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 = UtilsEtcHosts.getEntryByComment;\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 = UtilsEtcHosts.getEntriesByIp;\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 = UtilsEtcHosts.removeEntryByDomain;\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 = UtilsEtcHosts.simulateDomain;\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}\n//#endregion\n\n//#region utils process logger\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//#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 staticClassNameProperty = CoreModels.ClassNameStaticProperty;\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","//#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 {\n UtilsJson,\n UtilsProcess,\n UtilsFilesFoldersSync,\n UtilsTerminal,\n} from './utils';\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 = (details: any, debugLevel = 0) => {\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 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 export const compilationWrapper = async (\n fn: () => void,\n taskName: string = 'Task',\n executionType:\n | 'Compilation of'\n | 'Code execution of'\n | 'Event:' = 'Compilation of',\n ) => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\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}","/**\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, UtilsProcess } from './utils';\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}","//#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//#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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["chalk","path","pathMock","chalkMock"],"mappings":"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"}