ng2-rest 21.0.18 → 21.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/browser/fesm2022/ng2-rest-browser.mjs +11 -12
  2. package/browser/fesm2022/ng2-rest-browser.mjs.map +1 -1
  3. package/browser/package.json +1 -1
  4. package/browser/types/ng2-rest-browser.d.ts +5 -6
  5. package/browser-prod/fesm2022/ng2-rest-browser.mjs +76 -78
  6. package/browser-prod/fesm2022/ng2-rest-browser.mjs.map +1 -1
  7. package/browser-prod/package.json +1 -1
  8. package/browser-prod/types/ng2-rest-browser.d.ts +8 -11
  9. package/browser-prod.split-namespaces.json +6 -0
  10. package/lib/build-info._auto-generated_.d.ts +1 -1
  11. package/lib/build-info._auto-generated_.js +1 -1
  12. package/lib/helpers.d.ts +4 -7
  13. package/lib/helpers.js +8 -12
  14. package/lib/helpers.js.map +1 -1
  15. package/lib/package.json +1 -1
  16. package/lib/rest-request.js +1 -1
  17. package/lib-prod/build-info._auto-generated_.d.ts +1 -1
  18. package/lib-prod/build-info._auto-generated_.js +1 -1
  19. package/lib-prod/helpers.d.ts +5 -10
  20. package/lib-prod/helpers.js +19 -22
  21. package/lib-prod/helpers.js.map +1 -1
  22. package/lib-prod/mapping.js +38 -38
  23. package/lib-prod/mapping.js.map +1 -1
  24. package/lib-prod/models.js +6 -6
  25. package/lib-prod/models.js.map +1 -1
  26. package/lib-prod/package.json +1 -1
  27. package/lib-prod/params.js +4 -4
  28. package/lib-prod/params.js.map +1 -1
  29. package/lib-prod/resource-service.js +1 -1
  30. package/lib-prod/resource-service.js.map +1 -1
  31. package/lib-prod/rest-request.js +9 -9
  32. package/lib-prod/rest-request.js.map +1 -1
  33. package/lib-prod.split-namespaces.json +6 -0
  34. package/package.json +3 -2
  35. package/websql/fesm2022/ng2-rest-websql.mjs +11 -12
  36. package/websql/fesm2022/ng2-rest-websql.mjs.map +1 -1
  37. package/websql/package.json +1 -1
  38. package/websql/types/ng2-rest-websql.d.ts +5 -6
  39. package/websql-prod/fesm2022/ng2-rest-websql.mjs +76 -78
  40. package/websql-prod/fesm2022/ng2-rest-websql.mjs.map +1 -1
  41. package/websql-prod/package.json +1 -1
  42. package/websql-prod/types/ng2-rest-websql.d.ts +8 -11
  43. package/websql-prod.split-namespaces.json +6 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ng2-rest-websql.mjs","sources":["../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/lib/cookie.ts","../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/lib/mapping.ts","../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/lib/helpers.ts","../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/lib/params.ts","../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/lib/axios-interceptors.ts","../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/lib/models.ts","../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/lib/rest-headers.ts","../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/lib/rest-request.ts","../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/lib/content-type.ts","../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/lib/rest.class.ts","../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/lib/resource-service.ts","../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/lib/other/simple-resource.ts","../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/ng2-rest-websql.ts"],"sourcesContent":["export class Cookie {\n\n public static get Instance(): Cookie {\n if (!Cookie.__instance) {\n Cookie.__instance = new Cookie();\n }\n return Cookie.__instance as any;\n }\n private static __instance;\n\n private constructor() {\n }\n\n read(name: string) {\n var result = new RegExp('(?:^|; )' + encodeURIComponent(name) + '=([^;]*)').exec(document.cookie);\n return result ? result[1] : null;\n }\n\n write(name: string, value: string, days?: number) {\n if (!days) {\n days = 365 * 20;\n }\n\n var date = new Date();\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\n\n var expires = \"; expires=\" + date.toUTCString();\n\n document.cookie = name + \"=\" + value + expires + \"; path=/\";\n }\n\n remove(name: string) {\n this.write(name, \"\", -1);\n }\n\n}","/* */ \n\nimport { Circ } from 'json10/websql-prod';\nimport { walk } from 'lodash-walk-object/websql-prod';\nimport { _, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__openFolderInVSCode, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__UnknownEditor } from 'tnp-core/websql-prod';\nimport { CLASS, SYMBOL } from 'typescript-class-helpers/websql-prod';\n\n//namespace Mapping\n\n export function Mapping__NS__decode(json: Object, autodetect = false): Mapping__NS__Mapping {\n // console.log('DECODE isBrowser', HelpersLog.isBrowser)\n if (_.isUndefined(json)) {\n return void 0;\n }\n\n let mapping = decodeFromDecorator(\n _.isArray(json) ? _.first(json) : json,\n !autodetect,\n );\n\n if (autodetect) {\n mapping = _.merge(getMappingNaive(json), mapping);\n }\n\n return mapping;\n }\n\n export function Mapping__NS__encode<T = Function>(\n json: Object,\n mapping: Mapping__NS__Mapping,\n circular: Circ[] = [],\n ): T {\n if (_.isString(json) || _.isBoolean(json) || _.isNumber(json)) {\n return json as any;\n }\n\n if (mapping['']) {\n const decoratorMapping = Mapping__NS__getModelsMapping(CLASS.getBy(mapping['']));\n mapping = _.merge(mapping, decoratorMapping);\n }\n\n let res: any;\n if (_.isArray(circular) && circular.length > 0) {\n res = setMappingCirc(json, mapping, circular);\n } else {\n res = setMapping(json, mapping);\n }\n return res;\n }\n\n function decodeFromDecorator(json: Object, production = false): Mapping__NS__Mapping {\n const entityClass = CLASS.getFromObject(json);\n const mappings = Mapping__NS__getModelsMapping(entityClass);\n return mappings as any;\n }\n\n export function Mapping__NS__getModelsMapping(entity: Function) {\n if (!_.isFunction(entity) || entity === Object) {\n return {};\n }\n const className = CLASS.getName(entity);\n // console.log(`getMaping for: '${className}' `)\n let enityOWnMapping: any[] = _.isArray(entity[SYMBOL.MODELS_MAPPING])\n ? entity[SYMBOL.MODELS_MAPPING]\n : [{ '': className }];\n\n let res = {};\n let parents = enityOWnMapping\n .filter(m => !_.isUndefined(m['']) && m[''] !== className)\n .map(m => m['']);\n\n enityOWnMapping.reverse().forEach(m => {\n m = _.cloneDeep(m);\n // console.log(`'${className}' m:`, m)\n Object.keys(m).forEach(key => {\n const v = m[key];\n const isArr = _.isArray(v);\n const model = isArr ? _.first(v) : v;\n if (parents.includes(model)) {\n m[key] = isArr ? [className] : className;\n }\n });\n res = _.merge(res, m);\n });\n res[''] = className;\n // console.log(`mapping for ${className} : ${JSON.stringify(res)}`)\n return res;\n }\n\n export type Mapping__NS__Mapping<T = {}> = {\n [P in keyof T]?: string | string[];\n };\n\n function add(o: Object, path: string, mapping: Mapping__NS__Mapping = {}) {\n if (!o || Array.isArray(o) || typeof o !== 'object') return;\n const proptotypeObj = Object.getPrototypeOf(o);\n if (!proptotypeObj) {\n return;\n }\n const objectClassName = CLASS.getName(proptotypeObj.constructor);\n const resolveClass = CLASS.getBy(objectClassName);\n if (!resolveClass) {\n if (objectClassName !== 'Object') {\n if (UtilsOs__NS__isBrowser) {\n console.error(\n `Cannot resolve class \"${objectClassName}\" while mapping.`,\n );\n }\n }\n return;\n }\n if (!mapping[path]) mapping[path] = CLASS.getName(resolveClass) as any;\n }\n\n /**\n * USE ONLY IN DEVELOPMENT\n * @param c\n * @param path\n * @param mapping\n * @param level\n */\n function getMappingNaive(\n c: Object,\n path = '',\n mapping: Mapping__NS__Mapping = {},\n level = 0,\n ) {\n if (c === null || c === undefined) {\n return;\n }\n/* */\n/* */\n/* */\n/* */\n \n // console.log({c})\n if (Array.isArray(c)) {\n c.forEach(c => getMappingNaive(c, path, mapping, level));\n return mapping;\n }\n if (++level === 16) return;\n add(c, path, mapping);\n for (var p in c) {\n if (_.isFunction(c.hasOwnProperty) && c.hasOwnProperty(p)) {\n const v = c[p];\n if (Array.isArray(v) && v.length > 0) {\n // reducer as impovement\n v.forEach((elem, i) => {\n // const currentPaht = [`path[${i}]`, p].filter(c => c.trim() != '').join('.');\n const currentPaht = [path, p].filter(c => c.trim() != '').join('.');\n getMappingNaive(elem, currentPaht, mapping, level);\n });\n } else if (typeof v === 'object') {\n const currentPaht = [path, p].filter(c => c.trim() != '').join('.');\n add(v, currentPaht, mapping);\n getMappingNaive(v, currentPaht, mapping, level);\n }\n }\n }\n return mapping;\n }\n\n function getMappingPathFrom(pathLodhas: string) {\n if (!_.isString(pathLodhas)) {\n return void 0;\n }\n const regex = /\\[([0-9a-zA-Z]|\\'|\\\")*\\]/g;\n pathLodhas = pathLodhas.replace(regex, '').replace('..', '.');\n if (pathLodhas.startsWith('.')) {\n pathLodhas = pathLodhas.slice(1);\n }\n return pathLodhas;\n }\n\n function setMappingCirc(\n json: Object,\n mapping: Mapping__NS__Mapping = {},\n circular: Circ[] = [],\n ) {\n const mainClassFn = !_.isArray(json) && CLASS.getBy(mapping['']);\n // console.log(mapping)\n walk.Object(json, (v, lodashPath, changeValue) => {\n if (!_.isUndefined(v) && !_.isNull(v)) {\n const mappingPath = getMappingPathFrom(lodashPath);\n if (!_.isUndefined(mapping[mappingPath])) {\n const isArray = _.isArray(mapping[mappingPath]);\n if (!isArray) {\n const className = isArray\n ? _.first(mapping[mappingPath])\n : mapping[mappingPath];\n const classFN = CLASS.getBy(className);\n if (_.isFunction(classFN)) {\n // console.log(`mapping: '${mappingPath}', lp: '${lodashPath}' class: '${className}' , set `, v.location)\n changeValue(_.merge(new (classFN as any)(), v));\n }\n }\n }\n }\n });\n\n circular.forEach(c => {\n const ref = _.get(json, c.circuralTargetPath);\n _.set(json, c.pathToObj, ref);\n });\n\n if (_.isFunction(mainClassFn)) {\n json = _.merge(new (mainClassFn as any)(), json);\n }\n\n return json;\n }\n\n function setMapping(json: Object, mapping: Mapping__NS__Mapping = {}) {\n // console.log('mapping', mapping)\n if (Array.isArray(json)) {\n return json.map(j => {\n return setMapping(j, mapping);\n });\n }\n\n const mainClassFn = CLASS.getBy(mapping['']);\n\n for (const key in json) {\n if (json.hasOwnProperty(key)) {\n // if (mainClassFn && mainClassFn.name === 'Project') {\n // // console.log(`OWn property: \"${key}\"`)\n // }\n if (_.isArray(json[key])) {\n json[key] = json[key].map(arrObj => {\n const objMapping = Mapping__NS__getModelsMapping(CLASS.getBy(mapping[key]));\n return setMapping(arrObj, objMapping);\n });\n } else if (_.isObject(json[key])) {\n const objMapping = Mapping__NS__getModelsMapping(CLASS.getBy(mapping[key]));\n json[key] = setMapping(json[key], objMapping);\n }\n }\n // else {\n // if (mainClassFn && mainClassFn.name === 'Project') {\n // // console.log(`Not own property: \"${key}\"`)\n // }\n // }\n }\n\n Object.keys(mapping)\n .filter(key => key !== '' && key.split('.').length >= 2)\n .forEach(lodasPath => {\n // console.log(`Loadsh path: ${lodasPath}`)\n const objMapping = Mapping__NS__getModelsMapping(CLASS.getBy(mapping[lodasPath]));\n const input = _.get(json, lodasPath);\n if (!_.isUndefined(input)) {\n const res = setMapping(input, objMapping);\n _.set(json, lodasPath, res);\n }\n });\n\n if (!mainClassFn) {\n return json;\n }\n return _.merge(new (mainClassFn as any)(), json);\n }\n\n export type Mapping__NS__ModelValue<T> = {\n /**\n * Inside models types\n */\n [propName in keyof T]?: T[propName];\n };\n\n export function Mapping__NS__DefaultModelWithMapping<T = Object>(\n defaultModelValues?: Mapping__NS__ModelValue<T>,\n mapping?: Mapping__NS__Mapping<T>,\n ) {\n return function (target: Function) {\n if (!_.isArray(target[SYMBOL.MODELS_MAPPING])) {\n target[SYMBOL.MODELS_MAPPING] = [];\n }\n\n (target[SYMBOL.MODELS_MAPPING] as any[]).push({\n '': CLASS.getName(target),\n });\n if (_.isObject(mapping)) {\n target[SYMBOL.MODELS_MAPPING] = (\n target[SYMBOL.MODELS_MAPPING] as any[]\n ).concat(mapping);\n Object.keys(mapping).forEach(key => {\n const v = mapping;\n if (_.isUndefined(v) || _.isFunction(v)) {\n throw `\n\n\n Class: '${target.name}'\n[ng2rest] Bad mapping value for path: ${key} , please use type: <string> or [<string>]\n`;\n }\n });\n }\n\n if (_.isObject(defaultModelValues)) {\n const toMerge = {};\n const describedTarget = CLASS.describeProperites(target).filter(prop =>\n /^([a-zA-Z0-9]|\\_|\\#)+$/.test(prop),\n );\n // console.log(`describedTarget: ${describedTarget} for ${target.name}`)\n describedTarget.forEach(propDefInConstr => {\n if (defaultModelValues[propDefInConstr]) {\n console.warn(`\n\n CONFLICT: default value for property: \"${propDefInConstr}\"\n in class \"${target.name}\" already defined as typescript\n default class proprty value.\n\n `);\n } else {\n toMerge[propDefInConstr] = null; // TODO from toString I can't know that\n }\n });\n\n // console.log(`merge \"${JSON.stringify(target.prototype)}\" with \"${JSON.stringify(defaultModelValues)}\"`)\n\n target[SYMBOL.DEFAULT_MODEL] = _.merge(toMerge, defaultModelValues);\n\n const propsToOmmit = Object.keys(target[SYMBOL.DEFAULT_MODEL]).filter(\n key => {\n const descriptor = Object.getOwnPropertyDescriptor(\n target.prototype,\n key,\n );\n return !!descriptor;\n },\n );\n _.merge(\n target.prototype,\n _.omit(target[SYMBOL.DEFAULT_MODEL], propsToOmmit),\n );\n\n // console.log(`DEFAULT VALUE MERGE for ${target.name}`)\n }\n };\n }\n\n//end of namespace Mapping","import { _ } from 'tnp-core/websql-prod';\nimport { CoreHelpers } from 'tnp-core/websql-prod';\nimport { Mapping__NS__decode, Mapping__NS__DefaultModelWithMapping, Mapping__NS__encode, Mapping__NS__getModelsMapping, Mapping__NS__Mapping, Mapping__NS__ModelValue } from './mapping';\nimport { JSON10 } from 'json10/websql-prod';\n\n// @ts-ignore\nexport class Helpers extends CoreHelpers {\n\n static JSON = JSON10;\n\n static get Mapping() {\n return {\n encode<T = Function>(json: Object, mapping: Mapping__NS__Mapping): T {\n return Mapping__NS__encode(json, mapping);\n },\n decode(json: Object, autodetect = false ): Mapping__NS__Mapping {\n return Mapping__NS__decode(json, autodetect)\n }\n }\n }\n\n static checkValidUrl(url: string): boolean {\n let regex = /(http|https):\\/\\/(\\w+:{0,1}\\w*)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%!\\-\\/]))?/;\n return regex.test(url);\n }\n\n\n\n}","import { diffChars } from 'diff';\nimport { _ } from 'tnp-core/websql-prod';\nimport { Log, Level } from 'ng2-logger/websql-prod';\nimport { Models__NS__BackendError, Models__NS__BaseBody, Models__NS__BaseResponse, Models__NS__ErrorBody, Models__NS__FnMethodsHttp, Models__NS__FnMethodsHttpWithMock, Models__NS__HandleResultOptions, Models__NS__HandleResultSourceRequestOptions, Models__NS__HttpBody, Models__NS__HttpCode, Models__NS__HttpResponse, Models__NS__MetaRequest, Models__NS__MethodWithBody, Models__NS__MockController, Models__NS__MockHttp, Models__NS__MockResponse, Models__NS__NestedParams, Models__NS__Ng2RestAxiosRequestConfig, Models__NS__Ng2RestMethods, Models__NS__PromiseObservableMix, Models__NS__ReplayData, Models__NS__ReqParams, Models__NS__ResourceModel, Models__NS__ResponseTypeAxios, Models__NS__UrlParams } from './models';\nimport { Helpers } from './helpers';\n\nconst log = Log.create('[ng2-rest] params', Level.__NOTHING)\n\n\n\n/** check if string is a valid pattern */\nexport function isValid(pattern: string) {\n return (new RegExp('\\/:[a-zA-Z]*', 'g')).test(pattern.replace('://', ''));\n}\n\nexport function check(url: string, pattern: string): boolean {\n if (!Helpers.checkValidUrl(url)) {\n log.error(`Incorrect url: ${url}`);\n return false;\n }\n if (url.charAt(url.length - 1) === '/') url = url.slice(0, url.length - 2);\n if (pattern.charAt(pattern.length - 1) === '/') pattern = pattern.slice(0, url.length - 2);\n pattern = pattern.replace(/\\//g, '\\/');\n pattern = pattern.replace(new RegExp('\\/:[a-zA-Z]*', 'g'), '.+');\n let reg = new RegExp(pattern, 'g');\n return reg.test(url);\n}\n\nexport function getModels(pattern: string): string[] {\n let m = pattern.match(new RegExp('[a-z-A-Z]*\\/:', 'g'));\n return m.map(p => p.replace('/:', ''));\n}\n\nexport function getRestPramsNames(pattern: string): string[] {\n if (pattern.charAt(pattern.length - 1) !== '/') pattern = `${pattern}/`;\n let m = pattern.match(new RegExp(':[a-zA-Z]*\\/', 'g'));\n let res = m.map(p => p.replace(':', '').replace('/', ''));\n return res.filter(p => p.trim() !== '');\n}\n\nexport function containsModels(url: string, models: string[]): boolean {\n if (url.charAt(0) !== '/') url = '/' + url;\n // url = url.replace(new RegExp('\\/', 'g'), '');\n let res = models.filter(m => {\n let word = '/' + m;\n // log.d('word', word)\n let iii = url.indexOf(word);\n // log.d('iii', iii)\n if (iii + word.length < url.length && url.charAt(iii + word.length) !== '/') {\n return false;\n }\n if (iii !== -1) {\n url = url.replace(new RegExp('\\/' + m, 'g'), '');\n return true;\n }\n return false;\n }).length;\n // log.d('containsModels', res);\n return res === models.length;\n}\n\nexport function stars(n: number): string {\n let res = '';\n for (let i = 0; i < n; i++) res += '*';\n return res;\n}\n\nexport function getRestParams(url: string, pattern: string): Object {\n let res = {};\n let models = getRestPramsNames(pattern);\n // log.d('models', models);\n models.forEach(m => {\n pattern = pattern.replace(`:${m}`, stars(m.length));\n })\n\n let currentModel: string = void 0;\n diffChars(pattern, url).forEach(d => {\n // log.d('d', d);\n if (d.added) {\n if (!isNaN(Number(d.value))) res[currentModel] = Number(d.value);\n else if (d.value.trim() === 'true') res[currentModel] = true;\n else if (d.value.trim() === 'false') res[currentModel] = false;\n else res[currentModel] = decodeURIComponent(d.value);\n currentModel = void 0;\n }\n let m = d.value.replace(':', \"\");\n // log.d('model m', m)\n if (d.removed) {\n currentModel = models.shift();\n }\n });\n return res;\n}\n\nexport const regexisPath = /[^\\..]+(\\.[^\\..]+)+/g;\n\n/**\n * Models like books/:id\n */\nfunction cutUrlModel(params: Object, models: string[], output: string[]) {\n if (models.length === 0) return output.join('\\/');\n let m = models.pop();\n\n let param = m.match(/:[a-zA-Z0-9\\.]+/)[0].replace(':', '');\n const paramIsPath = regexisPath.test(param)\n // log.i('cut param', param)\n let model = m.match(/[a-zA-Z0-9]+\\//)[0].replace('\\/', '');\n if (params === void 0 ||\n (paramIsPath ? _.get(params, param) === void 0 : params[param] === void 0) ||\n param === 'undefined') {\n output.length = 0;\n output.unshift(model)\n return cutUrlModel(params, models, output);\n } else {\n if (paramIsPath) {\n // log.i('param is path', param)\n let mrep = m.replace(new RegExp(`:${param}`, 'g'), `${_.get(params, param)}`)\n output.unshift(mrep)\n return cutUrlModel(params, models, output);\n } else {\n // log.i('param is normal', param)\n let mrep = m.replace(new RegExp(`:${param}`, 'g'), `${params[param]}`)\n output.unshift(mrep)\n return cutUrlModel(params, models, output);\n }\n\n }\n}\n\n\nexport function interpolateParamsToUrl(params: Object, url: string): string {\n\n const regexInt = /\\[\\[([^\\..]+\\.[^\\..]+)+\\]\\]/g;\n\n url = url.split('/').map(p => {\n // log.d('url parts', p)\n let isParam = p.startsWith(':')\n if (isParam) {\n let part = p.slice(1);\n // log.d('url param part', p)\n if (regexInt.test(part)) {\n // let level = (url.split('.').length - 1)\n part = part.replace('[[', '')\n part = part.replace(']]', '')\n }\n return `:${part}`\n }\n return p;\n }).join('/');\n\n // log.i('URL TO EXPOSE', url)\n\n // log.i('params', params)\n\n let slash = {\n start: url.charAt(0) === '\\/',\n end: url.charAt(url.length - 1) === '\\/'\n }\n\n let morePramsOnEnd = url.match(/(\\/:[a-zA-Z0-9\\.]+){2,10}/g);\n if (morePramsOnEnd && (Array.isArray(morePramsOnEnd) && morePramsOnEnd.length === 1)) {\n // log.i('morePramsOnEnd', morePramsOnEnd)\n let m = morePramsOnEnd[0];\n let match = m.match(/\\/:[a-zA-Z0-9\\.]+/g);\n // log.i('match', match)\n match.forEach(e => {\n let c = e.replace('\\/:', '');\n // log.i('c', c)\n if (regexisPath.test(c)) {\n url = url.replace(e, `/${_.get(params, c)}`)\n } else {\n url = url.replace(e, `/${params[c]}`)\n }\n\n\n // log.i('prog url', url)\n })\n return url;\n }\n\n let nestedParams = url.match(/[a-zA-Z0-9]+\\/:[a-zA-Z0-9\\.]+/g);\n if (!nestedParams || (Array.isArray(nestedParams) && nestedParams.length === 0)) return url;\n\n // check alone params\n if (!slash.end) url = `${url}/`;\n let addUndefinedForAlone = (!/:[a-zA-Z0-9\\.]+\\/$/g.test(url) && /[a-zA-Z0-9]+\\/$/g.test(url));\n\n let replace = (nestedParams.length > 1 ? nestedParams.join('\\/') : nestedParams[0]) +\n (addUndefinedForAlone ? '\\/' + url.match(/[a-zA-Z0-9]+\\/$/g)[0] : '\\/');\n let beginHref = url.replace(replace, '')\n\n if (addUndefinedForAlone) {\n url = url.replace(/\\/$/g, '/:undefined')\n nestedParams = url.match(/[a-zA-Z0-9]+\\/:[a-zA-Z0-9\\.]+/g);\n url = cutUrlModel(params, nestedParams, [])\n } else {\n url = cutUrlModel(params, nestedParams, [])\n }\n url = beginHref + url;\n\n if (url.charAt(url.length - 1) !== '/' && slash.end) url = `${url}/`;\n if (url.charAt(0) !== '\\/' && slash.start) url = `/${url}`;\n\n return url;\n}\n\n/**\n * Get query params from url, like 'ex' in /api/books?ex=value\n*/\nexport function decodeUrl(url: string): Object {\n let regex = /[?&]([^=#]+)=([^&#]*)/g,\n params = {},\n match;\n while (match = regex.exec(url)) {\n params[decodeURIComponent(match[1])] = decodeURIComponent(match[2]);\n }\n let paramsObject = <Object>params;\n for (let p in paramsObject) {\n if (paramsObject[p] === void 0) {\n delete paramsObject[p];\n continue;\n }\n if (paramsObject.hasOwnProperty(p)) {\n // chcek if property is number\n let n = Number(params[p]);\n if (!isNaN(n)) {\n params[p] = n;\n continue;\n }\n if (typeof params[p] === 'string') {\n\n // check if property is object\n let json;\n try {\n json = JSON.parse(params[p]);\n } catch (error) { }\n if (json !== void 0) {\n params[p] = json;\n continue;\n }\n\n // chcek if property value is like regular rexpression\n // let regexExpression;\n // try {\n // regexExpression = new RegExp(params[p]);\n // } catch (e) { }\n // if (regexExpression !== undefined) params[p] = regexExpression;\n }\n }\n }\n return params;\n}\n\n/**\n * Create query params string for url\n *\n * @export\n * @param {UrlParams[]} params\n * @returns {string}\n */\nexport function getParamsUrl(params: Models__NS__UrlParams[], doNotSerialize: boolean = false): string {\n let urlparts: string[] = [];\n if (!params) return '';\n if (!(params instanceof Array)) return '';\n if (params.length === 0) return '';\n\n params.forEach(urlparam => {\n if (JSON.stringify(urlparam) !== '{}') {\n\n let parameters: string[] = [];\n let paramObject = <Object>urlparam;\n\n\n for (let p in paramObject) {\n if (paramObject[p] === void 0) delete paramObject[p];\n if (paramObject.hasOwnProperty(p) && typeof p === 'string' && p !== 'regex' && !(paramObject[p] instanceof RegExp)) {\n if (p.length > 0 && p[0] === '/') {\n let newName = p.slice(1, p.length - 1);\n urlparam[newName] = urlparam[p];\n urlparam[p] = void 0;\n p = newName;\n }\n if (p.length > 0 && p[p.length - 1] === '/') {\n let newName = p.slice(0, p.length - 2);\n urlparam[newName] = urlparam[p];\n urlparam[p] = void 0;\n p = newName;\n }\n let v: any = urlparam[p];\n if (v instanceof Object) {\n urlparam[p] = JSON.stringify(urlparam[p]);\n }\n urlparam[p] = doNotSerialize ? <string>urlparam[p] : encodeURIComponent(<string>urlparam[p]);\n if (urlparam.regex !== void 0 && urlparam.regex instanceof RegExp) {\n\n if (!urlparam.regex.test(<string>urlparam[p])) {\n console.warn(`Data: ${urlparam[p]} incostistent with regex ${urlparam.regex.source}`);\n }\n }\n parameters.push(`${p}=${urlparam[p]}`);\n }\n\n }\n\n urlparts.push(parameters.join('&'));\n\n\n }\n\n\n });\n let join = urlparts.join().trim();\n if (join.trim() === '') return '';\n return `?${urlparts.join('&')}`;\n}\n\n\nfunction transform(o) {\n if (typeof o === 'object') {\n return encodeURIComponent(JSON.stringify(o));\n }\n return o;\n}\n\n\nexport function prepareUrlOldWay(params?: TemplateStringsArray): string {\n if (!params) return this.endpoint;\n if (typeof params === 'object') {\n params = transform(params);\n }\n return this.endpoint + '/' + params;\n}","import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';\nimport type express from 'express';\nimport { from, Observable } from 'rxjs';\n\nexport interface AxiosTaonHttpHandler<T = any> {\n handle(req: AxiosRequestConfig): Observable<AxiosResponse<T>>;\n}\n\nexport interface TaonClientMiddlewareInterceptOptions<T = any> {\n req: AxiosRequestConfig; // <- request config only (no AxiosResponse here)\n next: AxiosTaonHttpHandler<T>;\n}\n\nexport interface TaonServerMiddlewareInterceptOptions<T = any> {\n req: express.Request;\n res: express.Response;\n next: express.NextFunction;\n}\n\nexport interface TaonAxiosClientInterceptor<T = any> {\n intercept(\n client: TaonClientMiddlewareInterceptOptions<T>,\n ): Observable<AxiosResponse<T>>;\n}\n\n// Optional helper for passing around context (browser/client)\n\n// === Backend handler (last in chain) ===\nexport class AxiosBackendHandler<T = any> implements AxiosTaonHttpHandler<T> {\n handle(req: AxiosRequestConfig): Observable<AxiosResponse<T>> {\n // axios returns a Promise; wrap as Observable\n return from(axios.request<T>(req));\n }\n}\n\n// === Chain builder (request: forward order, response: reverse order) ===\nexport const buildInterceptorChain = <T = any>(\n interceptors: Array<TaonAxiosClientInterceptor<T>>,\n backend: AxiosTaonHttpHandler<T>,\n): AxiosTaonHttpHandler<T> => {\n return interceptors.reduceRight<AxiosTaonHttpHandler<T>>(\n (next, interceptor) => ({\n handle: req => interceptor.intercept({ req, next }),\n }),\n backend,\n );\n};","/* */ \n\nimport { AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { JSON10, Circ } from 'json10/websql-prod';\n// import { Log, Level } from 'ng2-logger/src';\nimport { Observable } from 'rxjs';\nimport { Subject } from 'rxjs';\nimport { _ } from 'tnp-core/websql-prod';\nimport { CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpMethod, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings } from 'tnp-core/websql-prod';\nimport { Helpers } from 'tnp-core/websql-prod';\n\nimport { Cookie } from './cookie';\nimport { Mapping__NS__decode, Mapping__NS__DefaultModelWithMapping, Mapping__NS__encode, Mapping__NS__getModelsMapping, Mapping__NS__Mapping, Mapping__NS__ModelValue } from './mapping';\nimport { RestHeaders } from './rest-headers';\nimport { Rest } from './rest.class';\n\nclass RestCommonHttpResponseWrapper {\n declare success?: boolean;\n}\n\nexport class RestResponseWrapper extends RestCommonHttpResponseWrapper {\n declare data?: any;\n}\n\nexport class RestErrorResponseWrapper extends RestCommonHttpResponseWrapper {\n declare message: string;\n /**\n * stack trace / more details about error\n */\n declare details?: string;\n /**\n * http status code\n */\n declare status?: number;\n /**\n * custom error code from backend\n */\n declare code?: string;\n}\n\n// const log = Log.create('rest namespace', Level.__NOTHING)\n\n//namespace Models\n\n // export import HttpMethod = CoreModels__NS__HttpMethod;\n // export import ParamType = CoreModels__NS__ParamType;\n\n export interface Models__NS__HandleResultOptions {\n res: Models__NS__MockResponse;\n method: CoreModels__NS__HttpMethod;\n jobid?: number;\n isArray?: boolean;\n }\n\n export interface Models__NS__HandleResultSourceRequestOptions {\n url: string;\n method: CoreModels__NS__HttpMethod;\n // headers?: RestHeaders,\n body: any;\n isArray: boolean;\n }\n\n export type Models__NS__BackendError = {\n msg?: string;\n stack?: string[];\n data: any;\n };\n\n export type Models__NS__MetaRequest = {\n path: string;\n endpoint: string;\n entity: Mapping__NS__Mapping;\n circular: Circ[];\n };\n export type Models__NS__HttpCode = 200 | 400 | 401 | 404 | 500;\n\n export type Models__NS__PromiseObservableMix<T> = Promise<T> & {\n observable: Observable<T>;\n };\n\n export type Models__NS__Ng2RestAxiosRequestConfig = {\n doNotSerializeParams?: boolean;\n } & AxiosRequestConfig<any>;\n\n export type Models__NS__MethodWithBody<E, T, R = Models__NS__PromiseObservableMix<E>> = (\n item?: T,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ) => R;\n export type Models__NS__ReplayData = {\n subject: Subject<any>;\n data: { url: string; body: string; headers: RestHeaders; isArray: boolean };\n /**\n * jobid\n */\n id: number;\n };\n export type Models__NS__ReqParams = {\n url: string;\n method: CoreModels__NS__HttpMethod;\n headers?: RestHeaders;\n body?: any;\n jobid: number;\n isArray: boolean;\n };\n\n export interface Models__NS__ResourceModel<A, TA> {\n model: (pathModels?: Object, responseObjectType?: Function) => Rest<A, TA>;\n headers: RestHeaders;\n }\n\n export interface Models__NS__Ng2RestMethods<E, T> {\n get: Models__NS__MethodWithBody<E, T>;\n post: Models__NS__MethodWithBody<E, T>;\n put: Models__NS__MethodWithBody<E, T>;\n patch: Models__NS__MethodWithBody<E, T>;\n head: Models__NS__MethodWithBody<E, T>;\n delete: Models__NS__MethodWithBody<E, T>;\n jsonp: Models__NS__MethodWithBody<E, T>;\n }\n\n export type Models__NS__MockController = (\n url: string,\n method: CoreModels__NS__HttpMethod,\n headers?: RestHeaders,\n body?: any,\n ) => Models__NS__MockResponse;\n\n export type Models__NS__MockHttp = Models__NS__MockResponse | Models__NS__MockController;\n\n export interface Models__NS__FnMethodsHttp<T, TA> extends Models__NS__Ng2RestMethods<\n Models__NS__HttpResponse<T>,\n T\n > {\n array: Models__NS__Ng2RestMethods<Models__NS__HttpResponse<TA>, TA>;\n }\n\n export interface Models__NS__FnMethodsHttpWithMock<T, TA> extends Models__NS__Ng2RestMethods<\n Models__NS__HttpResponse<T>,\n T\n > {\n array: Models__NS__Ng2RestMethods<Models__NS__HttpResponse<TA>, TA>;\n }\n\n export interface Models__NS__NestedParams {\n [params: string]: string;\n }\n\n export interface Models__NS__UrlParams {\n [urlModelName: string]: string | number | boolean | RegExp | Object;\n regex?: RegExp;\n }\n [];\n\n export abstract class Models__NS__BaseBody {\n protected toJSON(\n data,\n opt: {\n isJSONArray?: boolean;\n parsingError?: boolean;\n },\n ): object | undefined {\n opt = opt || { isJSONArray: false };\n let r = opt.isJSONArray ? [] : {};\n if (typeof data === 'string') {\n try {\n let parsed = JSON.parse(data);\n if (typeof parsed === 'string' && parsed.trim().startsWith('{')) {\n parsed = JSON.parse(parsed);\n }\n if (opt.parsingError && parsed[CoreModels__NS__TaonHttpErrorCustomProp]) {\n return _.merge(new RestErrorResponseWrapper(), parsed);\n }\n return parsed;\n } catch (e) {}\n } else if (typeof data === 'object') {\n return data;\n }\n return r as any;\n }\n }\n\n export class Models__NS__HttpBody<T> extends Models__NS__BaseBody {\n constructor(\n private responseText: string | Blob,\n private isArray = false,\n private entity: Mapping__NS__Mapping,\n private circular: Circ[],\n ) {\n super();\n }\n\n public get blob(): Blob {\n return this.responseText as Blob;\n }\n\n public get booleanValue(): boolean | undefined {\n if (!Helpers.isBlob(this.responseText)) {\n return ['ok', 'true'].includes((this.responseText as string)?.trim());\n }\n }\n\n public get numericValue(): number | undefined {\n if (!Helpers.isBlob(this.responseText)) {\n return Number((this.responseText as string)?.trim());\n }\n }\n\n public get rawJson(): Partial<T> {\n if (!Helpers.isBlob(this.responseText)) {\n let res = this.toJSON(this.responseText, { isJSONArray: this.isArray });\n if (this.circular && Array.isArray(this.circular)) {\n res = JSON10.parse(JSON.stringify(res), this.circular);\n }\n\n return res;\n }\n }\n\n public get json(): T {\n const isBlob = Helpers.isBlob(this.responseText);\n if (isBlob) {\n return void 0;\n }\n if (this.entity && typeof this.entity === 'function') {\n return this.entity(); // @LAST\n }\n if (this.entity && typeof this.entity === 'object') {\n const json = this.toJSON(this.responseText, {\n isJSONArray: this.isArray,\n });\n return Mapping__NS__encode(json, this.entity, this.circular) as any;\n }\n let res = this.toJSON(this.responseText, { isJSONArray: this.isArray });\n if (this.circular && Array.isArray(this.circular)) {\n res = JSON10.parse(JSON.stringify(res), this.circular);\n }\n return res as any;\n }\n\n /**\n * undefined when blob\n */\n public get text(): string | undefined {\n if (!Helpers.isBlob(this.responseText)) {\n return (this.responseText as string)\n .replace(/^\\\"/, '')\n .replace(/\\\"$/, '');\n }\n }\n }\n\n export class Models__NS__ErrorBody<T = RestErrorResponseWrapper> extends Models__NS__BaseBody {\n constructor(private data) {\n super();\n }\n\n public get json(): T {\n return this.toJSON(this.data, { parsingError: true }) as any;\n }\n public get text(): string {\n return this.data;\n }\n }\n\n export abstract class Models__NS__BaseResponse<T> {\n protected static readonly cookies = Cookie.Instance;\n\n public get cookies() {\n return Models__NS__BaseResponse.cookies;\n }\n constructor(\n public responseText?: string | Blob,\n public readonly headers?: RestHeaders,\n public readonly statusCode?: Models__NS__HttpCode | number,\n public isArray = false,\n ) {}\n }\n\n export class Models__NS__HttpResponse<T> extends Models__NS__BaseResponse<T> {\n public body: Models__NS__HttpBody<T>;\n // public readonly TOTAL_COUNT_HEADER = 'X-Total-Count'.toLowerCase();\n // public get totalElements(): number {\n // return Number(this.headers.get(this.TOTAL_COUNT_HEADER));\n // }\n\n constructor(\n public sourceRequest: Models__NS__HandleResultSourceRequestOptions,\n public responseText?: string | Blob,\n public headers?: RestHeaders,\n public statusCode?: Models__NS__HttpCode | number,\n public entity?: Mapping__NS__Mapping | Function,\n public circular?: Circ[],\n public jobid?: number,\n public isArray = false,\n ) {\n // console.log({\n // sourceRequest, responseText, headers, statusCode, entity, circular, jobid, isArray\n // })\n super(responseText, headers, statusCode, isArray);\n\n this.init();\n }\n\n public init() {\n if (typeof this.entity === 'string') {\n // const headerWithMapping = headers.get(entity);\n let entityJSON = this.headers?.getAll(this.entity);\n if (!!entityJSON) {\n this.entity = JSON.parse(entityJSON.join());\n }\n }\n if (typeof this.circular === 'string') {\n // const headerWithMapping = headers.get(circular);\n let circuralJSON = this.headers?.getAll(this.circular);\n if (!!circuralJSON) {\n this.circular = JSON.parse(circuralJSON.join());\n }\n }\n this.body = new Models__NS__HttpBody(\n this.responseText,\n this.isArray,\n this.entity,\n this.circular,\n ) as any;\n }\n }\n\n export interface Models__NS__MockResponse {\n data?: any;\n code?: Models__NS__HttpCode;\n error?: string;\n headers?: RestHeaders;\n jobid?: number;\n isArray: boolean;\n }\n\n export type Models__NS__ResponseTypeAxios =\n | 'blob'\n | 'text'\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n//end of namespace Models\n\n\nexport class HttpResponseError<\n ERROR_BODY = object,\n> extends Models__NS__BaseResponse<any> {\n public readonly body: Models__NS__ErrorBody<ERROR_BODY>;\n // public tryRecconect() {\n\n // }\n constructor(\n public message: string,\n responseText?: string,\n headers?: RestHeaders,\n statusCode?: Models__NS__HttpCode | number,\n public jobid?: number,\n public sourceRequest?: Models__NS__HandleResultSourceRequestOptions,\n ) {\n super(responseText, headers, statusCode);\n this.body = new Models__NS__ErrorBody<ERROR_BODY>(responseText);\n }\n}","/**\n * Based on Headers from https://github.com/angular/angular/blob/master/packages/http/src/headers.ts\n */\nexport type RestHeadersOptions = RestHeaders | { [name: string]: (string | string[]) }\n\nexport class RestHeaders {\n /** @internal header names are lower case */\n _headers: Map<string, string[]> = new Map();\n /** @internal map lower case names to actual names */\n _normalizedNames: Map<string, string> = new Map();\n\n\n public static from(headers?: RestHeadersOptions) {\n if (!headers) {\n return void 0;\n }\n return new RestHeaders(headers);\n }\n\n private constructor(headers?: RestHeaders | { [name: string]: (string | string[]) }) {\n if (headers instanceof RestHeaders) {\n headers.forEach((values: string[], name: string) => {\n values.forEach(value => this.set(name, value));\n });\n } else {\n Object.keys(headers).forEach((name: string) => {\n const values: string[] = (Array.isArray(headers[name]) ? headers[name] : [headers[name]]) as any;\n this.delete(name);\n values.forEach(value => this.set(name, value));\n });\n }\n }\n\n /**\n * Returns a new RestHeaders instance from the given DOMString of Response RestHeaders\n */\n static fromResponseHeaderString(headersString: string): RestHeaders {\n const headers = new RestHeaders();\n // console.log({\n // headersString\n // })\n headersString.split('\\n').forEach(line => {\n const index = line.indexOf(':');\n if (index > 0) {\n const name = line.slice(0, index);\n const value = line.slice(index + 1).trim();\n headers.set(name, value);\n }\n });\n\n return headers;\n }\n\n /**\n * Appends a header to existing list of header values for a given header name.\n */\n append(name: string, value: string): void {\n const values = this.getAll(name);\n\n if (values === null) {\n this.set(name, value);\n } else {\n values.push(value);\n }\n }\n\n /**\n * Deletes all header values for the given name.\n */\n delete(name: string): void {\n const lcName = name.toLowerCase();\n this._normalizedNames.delete(lcName);\n this._headers.delete(lcName);\n }\n\n forEach(fn: (values: string[], name: string, headers: Map<string, string[]>) => void): void {\n this._headers.forEach(\n (values, lcName) => fn(values, this._normalizedNames.get(lcName), this._headers));\n }\n\n /**\n * Returns first header that matches given name.\n */\n get(name: string): string {\n const values = this.getAll(name);\n\n if (values === null) {\n return null;\n }\n\n return values.length > 0 ? values[0] : null;\n }\n\n /**\n * Checks for existence of header by given name.\n */\n has(name: string): boolean { return this._headers.has(name.toLowerCase()); }\n\n /**\n * Returns the names of the headers\n */\n keys(): string[] { return Array.from(this._normalizedNames.values()); }\n\n /**\n * Sets or overrides header value for given name.\n */\n set(name: string, value: string | string[]): void {\n if (Array.isArray(value)) {\n if (value.length) {\n this._headers.set(name.toLowerCase(), [value.join(',')]);\n }\n } else {\n this._headers.set(name.toLowerCase(), [value]);\n }\n this.mayBeSetNormalizedName(name);\n }\n\n /**\n * Returns values of all headers.\n */\n values(): string[][] { return Array.from(this._headers.values()); }\n\n /**\n * Returns string of all headers.\n */\n // TODO(vicb): returns {[name: string]: string[]}\n toJSON(): { [name: string]: any } {\n const serialized: { [name: string]: string[] } = {};\n if (!this._headers) {\n // debugger\n\n }\n // console.log('serializing headers',this._headers)\n this._headers.forEach((values: string[], name: string) => {\n const split: string[] = [];\n values.forEach(v => split.push(...v.split(',')));\n // console.log({\n // values\n // })\n // values.forEach(v => split.push(...(v ? v : '').split(',')));\n serialized[this._normalizedNames.get(name)] = split;\n });\n\n return serialized;\n }\n\n /**\n * Returns list of header values for a given name.\n */\n getAll(name: string): string[] {\n return this.has(name) ? this._headers.get(name.toLowerCase()) : null;\n }\n\n private mayBeSetNormalizedName(name: string): void {\n const lcName = name.toLowerCase();\n\n if (!this._normalizedNames.has(lcName)) {\n this._normalizedNames.set(lcName, name);\n }\n }\n}","//#region imports\nimport axios, { AxiosRequestConfig, AxiosResponse } from 'axios';\n/* */ \nimport { Level } from 'ng2-logger/websql-prod';\nimport { Log, Logger } from 'ng2-logger/websql-prod';\nimport { firstValueFrom, from, Observable } from 'rxjs';\nimport { Subject } from 'rxjs';\nimport { _, CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpMethod, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__openFolderInVSCode, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__UnknownEditor } from 'tnp-core/websql-prod';\nimport { Helpers } from 'tnp-core/websql-prod';\nimport { CLASS } from 'typescript-class-helpers/websql-prod';\n\nimport {\n AxiosBackendHandler,\n buildInterceptorChain,\n TaonAxiosClientInterceptor,\n} from './axios-interceptors';\nimport { HttpResponseError, Models__NS__BackendError, Models__NS__BaseBody, Models__NS__BaseResponse, Models__NS__ErrorBody, Models__NS__FnMethodsHttp, Models__NS__FnMethodsHttpWithMock, Models__NS__HandleResultOptions, Models__NS__HandleResultSourceRequestOptions, Models__NS__HttpBody, Models__NS__HttpCode, Models__NS__HttpResponse, Models__NS__MetaRequest, Models__NS__MethodWithBody, Models__NS__MockController, Models__NS__MockHttp, Models__NS__MockResponse, Models__NS__NestedParams, Models__NS__Ng2RestAxiosRequestConfig, Models__NS__Ng2RestMethods, Models__NS__PromiseObservableMix, Models__NS__ReplayData, Models__NS__ReqParams, Models__NS__ResourceModel, Models__NS__ResponseTypeAxios, Models__NS__UrlParams } from './models';\nimport { Resource } from './resource-service';\nimport { RestHeaders } from './rest-headers';\n//#endregion\n\n// const log = Log.create('[ng2-rest] rest-request', Level.__NOTHING);\n\n/**\n * TODO refactor this (remove jobid)\n */\nconst jobIDkey = 'jobID';\nconst customObs = 'customObs';\nconst cancelFn = 'cancelFn';\nconst isCanceled = 'isCanceled';\n\n//#region mock request\n//#endregion\n\nexport class RestRequest {\n //#region fields\n private static jobId = 0;\n private subjectInuUse: { [id: number]: Subject<any> } = {};\n private meta: { [id: number]: Models__NS__MetaRequest } = {};\n //#endregion\n\n /**\n * key is interceptorName (just to identify who is intercepting)\n */\n interceptors = new Map<string, TaonAxiosClientInterceptor>();\n\n /**\n * key is a joined string METHOD-expressPath.\n * Example `GET-/api/users`\n */\n methodsInterceptors = new Map<string, TaonAxiosClientInterceptor>();\n\n private handlerResult(\n options: Models__NS__HandleResultOptions,\n sourceRequest: Models__NS__HandleResultSourceRequestOptions,\n ) {\n if (_.isUndefined(options)) {\n options = {} as any;\n }\n // log.d(`HANDLE RESULT (jobid:${options.jobid}) ${sourceRequest.url}`);\n const { res, jobid, isArray, method } = options;\n\n if (typeof res !== 'object') {\n throw new Error('No resposnse for request. ');\n }\n\n if (Helpers.isBrowser) {\n res.headers = RestHeaders.from(res.headers);\n }\n\n // error no internet\n if (res.error) {\n this.subjectInuUse[jobid].error(\n new HttpResponseError(\n res.error,\n res.data,\n res.headers,\n res.code,\n jobid,\n sourceRequest,\n ),\n );\n return;\n }\n const entity = this.meta[jobid].entity;\n const circular = this.meta[jobid].circular;\n\n const success = Resource['_listenSuccess'] as Subject<\n Models__NS__HttpResponse<any>\n >;\n\n const reqResp = new Models__NS__HttpResponse(\n sourceRequest,\n res.data,\n res.headers,\n res.code,\n entity,\n circular,\n jobid,\n isArray,\n );\n success.next(reqResp);\n\n this.subjectInuUse[jobid].next(reqResp);\n this.meta[jobid] = void 0;\n this.subjectInuUse[jobid].complete();\n }\n\n private async req(\n url: string,\n method: CoreModels__NS__HttpMethod,\n headers?: RestHeaders,\n body?: any,\n jobid?: number,\n isArray = false,\n mockHttp?: Models__NS__MockHttp,\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ) {\n const CancelToken = axios.CancelToken;\n const source = CancelToken.source();\n this.subjectInuUse[jobid][cancelFn] = source.cancel;\n\n var response: AxiosResponse<any>;\n if (mockHttp) {\n if (typeof mockHttp === 'object') {\n response = {\n data: mockHttp.data,\n status: mockHttp.code,\n headers: mockHttp.headers as any,\n statusText: mockHttp.error,\n config: {} as any,\n };\n } else if (typeof mockHttp === 'function') {\n const r = mockHttp(url, method, headers, body);\n response = {\n data: r.data,\n status: r.code,\n headers: r.headers as any,\n statusText: r.error,\n config: {} as any,\n };\n }\n }\n\n const isFormData = CLASS.getNameFromObject(body) === 'FormData';\n const formData: FormData = isFormData ? (body as any) : void 0;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n const headersJson = headers.toJSON();\n const responseType = headersJson.responsetypeaxios\n ? headersJson.responsetypeaxios\n : 'text';\n\n try {\n if (!response) {\n/* */\n/* */\n/* */\n/* */\n \n\n // console.log('headers axios:', headers.toJSON())\n // console.log({ responseType, headersJson, body, method, url })\n let axiosConfig: AxiosRequestConfig<any> = {\n url,\n method,\n data: body,\n responseType,\n headers: headersJson,\n cancelToken: source.token,\n ...(axiosOptions || {}), // merge with axiosOptions\n // withCredentials: true, // this can be done manually\n };\n\n if (isFormData) {\n axiosConfig.maxBodyLength = Infinity;\n }\n\n // console.log('AXIOS CONFIG', axiosConfig);\n const uri = new URL(url);\n const backend = new AxiosBackendHandler<any>();\n\n const globalInterceptors = Array.from(this.interceptors.entries()).map(\n ([_, interceptor]) => interceptor,\n );\n\n const methodInterceptors = Array.from(\n this.methodsInterceptors.entries(),\n )\n .filter(([key]) => {\n const ending = `-${method?.toUpperCase()}-${uri.pathname}`;\n return key.endsWith(ending);\n })\n .map(([_, interceptor]) => interceptor);\n\n // console.log(\n // `for ${uri.pathname} global ${globalInterceptors.length} method: ${methodInterceptors.length}`,\n // );\n\n const allInterceptors = [...globalInterceptors, ...methodInterceptors];\n\n const handler = buildInterceptorChain(allInterceptors, backend);\n response = await firstValueFrom(handler.handle(axiosConfig));\n // log.d(`after response of jobid: ${jobid}`);\n }\n\n // console.log('AXIOS RESPONES', response)\n\n if (this.subjectInuUse[jobid][isCanceled]) {\n return;\n }\n\n // handle normal request\n this.handlerResult(\n {\n res: {\n code: response.status as any,\n data: response.data,\n isArray,\n jobid,\n headers: RestHeaders.from(response.headers as any),\n },\n method,\n jobid,\n isArray,\n },\n {\n url,\n body,\n method,\n isArray,\n },\n );\n } catch (catchedError) {\n if (this.subjectInuUse[jobid][isCanceled]) {\n return;\n }\n // console.log('ERROR RESPONESE catchedError typeof ', typeof catchedError)\n // console.log('ERROR RESPONESE catchedError', catchedError)\n if (\n typeof catchedError === 'object' &&\n catchedError.response &&\n catchedError.response.data\n ) {\n const err = catchedError.response.data;\n const msg: string = catchedError.response.data.message || '';\n // console.log({\n // 'err.stack': err?.stack\n // })\n let stack: string[] = (err.stack || '').split('\\n');\n\n const errObs = Resource[\n '_listenErrors'\n ] as Subject<Models__NS__BackendError>;\n errObs.next({\n msg,\n stack,\n data: catchedError.response.data,\n });\n }\n const error =\n catchedError && catchedError.response\n ? `[${catchedError.response.statusText}]: `\n : '';\n\n // handle error request\n this.handlerResult(\n {\n res: {\n code:\n catchedError && catchedError.response\n ? (catchedError.response.status as any)\n : void 0,\n error: `${error}${catchedError.message}`,\n data:\n catchedError && catchedError.response\n ? JSON.stringify(catchedError.response.data)\n : void 0,\n isArray,\n jobid,\n headers: RestHeaders.from(\n catchedError &&\n catchedError.response &&\n catchedError.response.headers,\n ),\n },\n method,\n jobid,\n isArray,\n },\n {\n url,\n body,\n isArray,\n method,\n },\n );\n }\n }\n\n private getReplay(\n method: CoreModels__NS__HttpMethod,\n meta: Models__NS__MetaRequest,\n onlyGetLastReplayForMethod: boolean,\n ): Models__NS__ReplayData {\n let replay: Models__NS__ReplayData;\n\n //#region prevent empty tree\n if (_.isUndefined(this.replaySubjects[meta.endpoint])) {\n // log.i(`(${meta.endpoint}) `);\n this.replaySubjects[meta.endpoint] = {};\n }\n if (_.isUndefined(this.replaySubjects[meta.endpoint][meta.path])) {\n // log.i(`(${meta.endpoint})(${meta.path}) `);\n this.replaySubjects[meta.endpoint][meta.path] = {};\n }\n if (_.isUndefined(this.replaySubjects[meta.endpoint][meta.path][method])) {\n // log.i(`(${meta.endpoint})(${meta.path}) `);\n this.replaySubjects[meta.endpoint][meta.path][method] = {};\n }\n //#endregion\n\n const objectIDToCreateOrLast =\n Object.keys(\n this.replaySubjects[meta.endpoint][meta.path][method] as Object,\n ).length + (onlyGetLastReplayForMethod ? 0 : 1);\n if (onlyGetLastReplayForMethod && objectIDToCreateOrLast === 0) {\n return replay;\n }\n\n if (\n _.isUndefined(\n this.replaySubjects[meta.endpoint][meta.path][method][\n objectIDToCreateOrLast\n ],\n )\n ) {\n // log.i(`(${meta.endpoint})(${meta.path})(${method}) `);\n this.replaySubjects[meta.endpoint][meta.path][method][\n objectIDToCreateOrLast\n ] = <Models__NS__ReplayData>{\n subject: new Subject(),\n data: void 0,\n };\n }\n\n replay =\n this.replaySubjects[meta.endpoint][meta.path][method][\n objectIDToCreateOrLast\n ];\n\n if (!_.isNumber(replay.id)) {\n if (RestRequest.jobId === Number.MAX_SAFE_INTEGER) {\n RestRequest.jobId = 0;\n }\n\n const jobid: number = RestRequest.jobId++;\n replay.id = jobid;\n const subject: Subject<any> = replay.subject;\n subject[jobIDkey] = jobid; // modify internal rxjs subject obj\n\n this.meta[jobid] = meta;\n this.subjectInuUse[jobid] = subject;\n\n this.subjectInuUse[jobid][customObs] = new Observable(observer => {\n // observer.remove(() => {\n\n // });\n observer.add(() => {\n // console.log(`cancel observable job${jobid}`)\n if (!this.subjectInuUse[jobid][isCanceled]) {\n this.subjectInuUse[jobid][isCanceled] = true;\n if (typeof this.subjectInuUse[jobid][cancelFn] === 'function') {\n this.subjectInuUse[jobid][cancelFn](\n '[ng2-rest] on purpose canceled http request',\n );\n }\n } else {\n // console.log(`somehow second time cancel ${jobid}`)\n }\n });\n const sub = subject.subscribe({\n next: a => observer.next(a),\n error: a => observer.error(a),\n complete: () => {\n setTimeout(() => {\n sub.unsubscribe();\n observer.complete();\n });\n },\n });\n });\n\n //#region DISPOSE @UNCOMMENT AFTER TESTS\n // if (objectIDToCreateOrLast > 2) {\n // const oldReq: Models__NS__ReplayData = this.replaySubjects[meta.endpoint][meta.path][method][(objectIDToCreateOrLast - 2)];\n // if (_.isUndefined(this.meta[oldReq.id])) {\n // // cant delete this - for counter purpose\n // this.replaySubjects[meta.endpoint][meta.path][method][(objectIDToCreateOrLast - 2)] = {};\n // delete this.subjectInuUse[oldReq.id];\n // delete this.meta[oldReq.id];\n // }\n // }\n //#endregion\n }\n\n return replay;\n }\n\n //#region http methods\n\n private generalReq(\n method: CoreModels__NS__HttpMethod,\n url: string,\n body: string,\n headers: RestHeaders,\n meta: Models__NS__MetaRequest,\n isArray: boolean,\n mockHttp: Models__NS__MockHttp,\n axiosOptions: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<any> {\n const replay: Models__NS__ReplayData = this.getReplay(method, meta, false);\n replay.data = { url, body, headers, isArray };\n\n ((\n pthis,\n purl,\n pmethod,\n pheaders,\n pbody,\n pid,\n pisArray,\n pmockHttp,\n axiosOpt,\n ) => {\n // log.d(`for ${purl} jobid ${pid}`);\n setTimeout(() =>\n pthis.req(\n purl,\n pmethod,\n pheaders,\n pbody,\n pid,\n pisArray,\n pmockHttp,\n axiosOpt,\n ),\n );\n })(\n this,\n url,\n method,\n headers,\n body,\n replay.id,\n isArray,\n mockHttp,\n axiosOptions,\n );\n\n const resp: Models__NS__PromiseObservableMix<any> = firstValueFrom(\n replay.subject[customObs],\n ) as any;\n resp.observable = replay.subject[customObs];\n return resp;\n }\n\n get(\n url: string,\n body: string,\n headers: RestHeaders,\n meta: Models__NS__MetaRequest,\n isArray: boolean,\n mockHttp: Models__NS__MockHttp,\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<any> {\n return this.generalReq(\n 'get',\n url,\n body,\n headers,\n meta,\n isArray,\n mockHttp,\n axiosOptions,\n );\n }\n\n head(\n url: string,\n body: string,\n headers: RestHeaders,\n meta: Models__NS__MetaRequest,\n isArray: boolean,\n mockHttp: Models__NS__MockHttp,\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<any> {\n return this.generalReq(\n 'head',\n url,\n body,\n headers,\n meta,\n isArray,\n mockHttp,\n axiosOptions,\n );\n }\n\n delete(\n url: string,\n body: string,\n headers: RestHeaders,\n meta: Models__NS__MetaRequest,\n isArray: boolean,\n mockHttp: Models__NS__MockHttp,\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<any> {\n return this.generalReq(\n 'delete',\n url,\n body,\n headers,\n meta,\n isArray,\n mockHttp,\n axiosOptions,\n );\n }\n\n post(\n url: string,\n body: string,\n headers: RestHeaders,\n meta: Models__NS__MetaRequest,\n isArray: boolean,\n mockHttp: Models__NS__MockHttp,\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<any> {\n return this.generalReq(\n 'post',\n url,\n body,\n headers,\n meta,\n isArray,\n mockHttp,\n axiosOptions,\n );\n }\n\n put(\n url: string,\n body: string,\n headers: RestHeaders,\n meta: Models__NS__MetaRequest,\n isArray: boolean,\n mockHttp: Models__NS__MockHttp,\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<any> {\n return this.generalReq(\n 'put',\n url,\n body,\n headers,\n meta,\n isArray,\n mockHttp,\n axiosOptions,\n );\n }\n\n patch(\n url: string,\n body: string,\n headers: RestHeaders,\n meta: Models__NS__MetaRequest,\n isArray: boolean,\n mockHttp: Models__NS__MockHttp,\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<any> {\n return this.generalReq(\n 'patch',\n url,\n body,\n headers,\n meta,\n isArray,\n mockHttp,\n axiosOptions,\n );\n }\n\n jsonp(\n url: string,\n body: string,\n headers: RestHeaders,\n meta: Models__NS__MetaRequest,\n isArray: boolean,\n mockHttp: Models__NS__MockHttp,\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<any> {\n const method = 'jsonp';\n\n if (UtilsOs__NS__isSSRMode) {\n const emptyStuff = Promise.resolve() as Models__NS__PromiseObservableMix<any>;\n emptyStuff.observable = new Observable<any>();\n console.warn(`Cannot perform jsonp request in SSR mode`);\n return emptyStuff;\n }\n\n const replay: Models__NS__ReplayData = this.getReplay('jsonp', meta, false);\n const jobid = replay.id;\n\n setTimeout(() => {\n if (url.endsWith('/')) url = url.slice(0, url.length - 1);\n let num = Math.round(10000 * Math.random());\n let callbackMethodName = 'cb_' + num;\n let win: any = globalThis; // TODO not a good idea! @LAST\n win[callbackMethodName] = data => {\n // handle jsonp result data\n this.handlerResult(\n {\n res: {\n data,\n isArray,\n },\n method,\n jobid,\n isArray,\n },\n {\n url,\n body,\n isArray,\n method,\n },\n );\n };\n let sc = document.createElement('script');\n sc.src = `${url}?callback=${callbackMethodName}`;\n document.body.appendChild(sc);\n document.body.removeChild(sc);\n });\n\n const resp: Models__NS__PromiseObservableMix<any> = firstValueFrom(\n replay.subject[customObs],\n ) as any;\n resp.observable = replay.subject[customObs];\n return resp;\n }\n //#endregion\n private replaySubjects = {};\n}","import { RestHeaders } from \"./rest-headers\";\n\n\nexport const CONTENT_TYPE = {\n APPLICATION_JSON: RestHeaders.from({\n 'Content-Type': 'application/json',\n 'Accept': 'application/json'\n }),\n APPLICATINO_VND_API_JSON: RestHeaders.from({\n 'Content-Type': 'application/vnd.api+json',\n 'Accept': 'application/vnd.api+json'\n }),\n}","//#region import\n// import { Log, Level } from 'ng2-logger/src';\n\n// const log = Log.create('rest.class', Level.__NOTHING)\n\nimport { CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpMethod, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings } from 'tnp-core/websql-prod';\nimport { CLASS } from 'typescript-class-helpers/websql-prod';\n\nimport { CONTENT_TYPE } from './content-type';\nimport { Models__NS__BackendError, Models__NS__BaseBody, Models__NS__BaseResponse, Models__NS__ErrorBody, Models__NS__FnMethodsHttp, Models__NS__FnMethodsHttpWithMock, Models__NS__HandleResultOptions, Models__NS__HandleResultSourceRequestOptions, Models__NS__HttpBody, Models__NS__HttpCode, Models__NS__HttpResponse, Models__NS__MetaRequest, Models__NS__MethodWithBody, Models__NS__MockController, Models__NS__MockHttp, Models__NS__MockResponse, Models__NS__NestedParams, Models__NS__Ng2RestAxiosRequestConfig, Models__NS__Ng2RestMethods, Models__NS__PromiseObservableMix, Models__NS__ReplayData, Models__NS__ReqParams, Models__NS__ResourceModel, Models__NS__ResponseTypeAxios, Models__NS__UrlParams } from './models';\nimport { getRestParams, getParamsUrl } from './params';\nimport { RestHeaders } from './rest-headers';\nimport { RestRequest } from './rest-request';\n//#endregion\n\nexport class Rest<T, TA = T[]> implements Models__NS__FnMethodsHttpWithMock<T, TA> {\n private mockHttp: Models__NS__MockHttp;\n\n mock(mock: Models__NS__MockHttp): Models__NS__FnMethodsHttp<T, TA> {\n if (typeof mock === 'function' || typeof mock === 'object') {\n this.mockHttp = mock;\n } else {\n throw `[ng2-rest]\n .model(...)\n .mock( < BAD MOCK DATA > )\n ...\n `;\n }\n return this;\n }\n\n //#region private fields\n private __meta_endpoint: string;\n\n private _endpointRest: string;\n\n private get endpoint() {\n let e = this.__meta_endpoint;\n if (\n this.restQueryParams !== void 0 &&\n this._endpointRest !== void 0 &&\n typeof this._endpointRest === 'string' &&\n this._endpointRest.trim() !== ''\n )\n e = this._endpointRest;\n return e;\n }\n\n private restQueryParams: Object;\n\n public set __rest_endpoint(endpoint) {\n this._endpointRest = endpoint;\n if (endpoint === void 0) {\n this.restQueryParams = void 0;\n } else {\n this.restQueryParams = getRestParams(endpoint, this.__meta_endpoint);\n }\n }\n\n private creatUrl(params: any, doNotSerializeParams: boolean = false) {\n return `${this.endpoint}${getParamsUrl(params, doNotSerializeParams)}`;\n }\n\n //#endregion\n\n //#region constructor\n private _headers = RestHeaders.from(CONTENT_TYPE.APPLICATION_JSON);\n\n get headers() {\n return this._headers;\n }\n\n constructor(\n endpoint: string,\n private request: RestRequest,\n private meta: Models__NS__MetaRequest,\n private customContentType: RestHeaders,\n ) {\n this.__meta_endpoint = endpoint;\n }\n //#endregion\n\n //#region req\n\n private req(\n method: CoreModels__NS__HttpMethod,\n requestBody: T,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n isArray: boolean = false,\n ) {\n axiosOptions = axiosOptions || {};\n const modelUrl = this.creatUrl(params, !!axiosOptions.doNotSerializeParams);\n\n const isFormData = CLASS.getNameFromObject(requestBody) === 'FormData';\n\n const body = isFormData\n ? requestBody\n : requestBody\n ? JSON.stringify(requestBody)\n : void 0;\n\n // console.log('this.customContentType', this.customContentType)\n if (this.customContentType) {\n const customHeaderKeys = this.customContentType.keys();\n const currentHeaderKeys = this._headers.keys();\n currentHeaderKeys\n .filter(key => !customHeaderKeys.includes(key))\n .forEach(key => {\n this.customContentType.set(key, this._headers.get(key));\n });\n this._headers = this.customContentType;\n } else {\n this._headers = RestHeaders.from(CONTENT_TYPE.APPLICATION_JSON);\n }\n\n // console.log(\"_headers\", this.headers)\n\n const result = this.request[method.toLowerCase()](\n modelUrl,\n body,\n this.headers,\n this.meta,\n isArray,\n this.mockHttp,\n axiosOptions,\n );\n\n this.mockHttp = void 0;\n return result;\n }\n //#endregion\n\n //#region http methods\n\n array = {\n get: (\n item: TA,\n params: Models__NS__UrlParams[] = void 0,\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<TA>> => {\n return this.req('get', item as any, params, axiosOptions, true) as any;\n },\n head: (\n item: TA,\n params: Models__NS__UrlParams[] = void 0,\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<TA>> => {\n return this.req('head', item as any, params, axiosOptions, true) as any;\n },\n post: (\n item: TA,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<TA>> => {\n return this.req('post', item as any, params, axiosOptions, true) as any;\n },\n put: (\n item: TA,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<TA>> => {\n return this.req('put', item as any, params, axiosOptions, true) as any;\n },\n patch: (\n item: TA,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<TA>> => {\n return this.req('patch', item as any, params, axiosOptions, true) as any;\n },\n delete: (\n item: TA,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<TA>> => {\n return this.req('delete', item as any, params, axiosOptions, true) as any;\n },\n jsonp: (\n item: TA,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<TA>> => {\n return this.req('jsonp', item as any, params, axiosOptions, true) as any;\n },\n };\n\n get(\n item: T,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<T>> {\n return this.req('get', item as any, params, axiosOptions) as any;\n }\n\n head(\n item: T,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<T>> {\n return this.req('head', item as any, params, axiosOptions) as any;\n }\n\n post(\n item: T,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<T>> {\n return this.req('post', item, params, axiosOptions);\n }\n\n put(\n item: T,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<T>> {\n return this.req('put', item, params, axiosOptions);\n }\n\n patch(\n item: T,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<T>> {\n return this.req('patch', item, params, axiosOptions);\n }\n\n delete(\n item: T,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<T>> {\n return this.req('delete', item, params, axiosOptions);\n }\n\n jsonp(\n item: T,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<T>> {\n return this.req('jsonp', item, params, axiosOptions);\n }\n //#endregion\n}","//#region imports\nimport { Circ } from 'json10/websql-prod';\nimport { Log, Level } from 'ng2-logger/websql-prod';\nimport { Observable } from 'rxjs';\nimport { Subject } from 'rxjs';\nimport { Helpers } from 'tnp-core/websql-prod';\n\nimport { Cookie } from './cookie';\nimport { Mapping__NS__decode, Mapping__NS__DefaultModelWithMapping, Mapping__NS__encode, Mapping__NS__getModelsMapping, Mapping__NS__Mapping, Mapping__NS__ModelValue } from './mapping';\nimport { Models__NS__BackendError, Models__NS__BaseBody, Models__NS__BaseResponse, Models__NS__ErrorBody, Models__NS__FnMethodsHttp, Models__NS__FnMethodsHttpWithMock, Models__NS__HandleResultOptions, Models__NS__HandleResultSourceRequestOptions, Models__NS__HttpBody, Models__NS__HttpCode, Models__NS__HttpResponse, Models__NS__MetaRequest, Models__NS__MethodWithBody, Models__NS__MockController, Models__NS__MockHttp, Models__NS__MockResponse, Models__NS__NestedParams, Models__NS__Ng2RestAxiosRequestConfig, Models__NS__Ng2RestMethods, Models__NS__PromiseObservableMix, Models__NS__ReplayData, Models__NS__ReqParams, Models__NS__ResourceModel, Models__NS__ResponseTypeAxios, Models__NS__UrlParams } from './models';\nimport {\n interpolateParamsToUrl,\n isValid,\n containsModels,\n getModels,\n} from './params';\nimport { RestHeaders } from './rest-headers';\nimport { RestRequest } from './rest-request';\nimport { Rest } from './rest.class';\n//#endregion\n\n// const log = Log.create('resouce-service', Level.__NOTHING);\n\nexport class Resource<E, T, TA> {\n protected static _listenErrors = new Subject<Models__NS__BackendError>();\n protected static _listenSuccess = new Subject<Models__NS__HttpResponse<any>>();\n public static get listenErrors() {\n return this._listenErrors.asObservable();\n }\n\n public static get listenSuccessOperations() {\n return this._listenSuccess.asObservable();\n }\n public static enableWarnings: boolean = true;\n\n //#region private mthods and fields\n\n private checkNestedModels(model: string, allModels: Object) {\n // if (model.indexOf('/') !== -1) { //TODO make this better, becouse now I unecesary checking shit\n for (let p in allModels) {\n if (allModels.hasOwnProperty(p)) {\n let m = allModels[p];\n if (isValid(p)) {\n let urlModels = getModels(p);\n if (containsModels(model, urlModels)) {\n model = p;\n break;\n }\n }\n }\n }\n // }\n return model;\n }\n\n private static instance = new Resource<string, any, any>();\n private static endpoints = {};\n public static getModel(endpoint: string, model: string): Rest<any> {\n model = Resource.prepareModel(model);\n const e = Resource.endpoints[endpoint];\n if (!e) {\n return void 0;\n }\n const r = Resource.endpoints[endpoint].models[model];\n return Resource.endpoints[endpoint].models[model];\n }\n public static request: RestRequest = new RestRequest();\n //#endregion\n\n //#region create\n public static create<A, TA = A[]>(\n e: string,\n model?: string,\n entityMapping?: Mapping__NS__Mapping,\n circular?: Circ[],\n customContentType?: RestHeaders,\n ): Models__NS__ResourceModel<A, TA> {\n const badRestRegEX = new RegExp('((\\/:)[a-z]+)+', 'g');\n const matchArr = model.match(badRestRegEX) || [];\n const badModelsNextToEachOther = matchArr.join();\n const atleas2DoubleDots =\n (badModelsNextToEachOther.match(new RegExp(':', 'g')) || []).length >= 2;\n if (atleas2DoubleDots && model.search(badModelsNextToEachOther) !== -1) {\n throw new Error(`\n\nBad rest model: ${model}\n\nDo not create rest models like this: /book/author/:bookid/:authorid\nInstead use nested approach: /book/:bookid/author/:authorid\n `);\n }\n Resource.map(e, e);\n Resource.instance.add(\n e,\n model ? model : '',\n entityMapping,\n circular,\n customContentType,\n );\n // if (model.charAt(model.length - 1) !== '/') model = `${model}/`;\n return {\n model: (params?: Object) =>\n Resource.instance.api(e, interpolateParamsToUrl(params, model)),\n get headers() {\n return Resource.getModel(e, model).headers;\n },\n };\n }\n //#endregion\n\n //#region reset\n public static reset() {\n Resource.endpoints = {};\n }\n //#endregion\n\n //#region constructor\n private constructor() {}\n //#endregion\n\n public static Cookies = Cookie.Instance;\n\n //#region map\n private static map(endpoint: string, url: string): boolean {\n // log.i('url', url);\n let regex =\n /(http|https):\\/\\/(\\w+:{0,1}\\w*)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%!\\-\\/]))?/;\n let e = endpoint;\n if (!regex.test(url)) {\n throw `Url address is not correct: ${url}`;\n }\n if (url.charAt(url.length - 1) === '/') url = url.slice(0, url.length - 1);\n // log.i('url after', url);\n if (Resource.endpoints[e] !== void 0) {\n // Helpers.log(\n // 'Cannot use map function at the same API endpoint again (' +\n // Resource.endpoints[e].url +\n // ')',\n // );\n return false;\n }\n Resource.endpoints[e] = {\n url: url,\n models: {},\n entity: null,\n };\n // log.i('enpoints', Resource.endpoints);\n return true;\n }\n //#endregion\n\n private static prepareModel(model) {\n if (model.charAt(model.length - 1) === '/') {\n model = model.slice(0, model.length - 1);\n }\n if (model.charAt(0) === '/') {\n model = model.slice(1, model.length);\n }\n return model;\n }\n\n //#region add\n /**\n * And enipoint to application\n *\n * @param {E} endpoint\n * @param {string} model\n * @returns {boolean}\n */\n private add(\n endpoint: E,\n model: string,\n entity: Mapping__NS__Mapping,\n circular?: Circ[],\n customContentType?: RestHeaders,\n ) {\n // log.i(`I am maping ${model} on ${<any>endpoint}`);\n model = Resource.prepareModel(model);\n\n let e: string;\n e = <string>endpoint.toString();\n\n if (Resource.endpoints[e] === void 0) {\n console.error('Endpoint is not mapped ! Cannot add model ' + model);\n return;\n }\n if (Resource.endpoints[e].models[model] !== void 0) {\n if (Resource.enableWarnings)\n console.warn(\n `Model '${model}' is already defined in endpoint: ` +\n Resource.endpoints[e].url,\n );\n return;\n }\n Resource.endpoints[e].models[model] = new Rest<T, TA>(\n Resource.endpoints[e].url + '/' + model,\n Resource.request,\n {\n endpoint: e,\n path: model,\n entity,\n circular,\n },\n customContentType,\n ); // TODO put custom content type in meta ?\n return;\n }\n //#endregion\n\n //#region api\n /**\n * Access api throught endpoint\n *\n * @param {E} endpoint\n * @param {string} model\n * @returns {Rest<T, TA>}\n */\n private api(endpoint: E, model: string): Rest<T, TA> {\n // log.i(`[api]\n\n // creating for endpoint: \"${endpoint}\"\n // model: \"${model}\"\n\n // `)\n if (model.charAt(0) === '/') model = model.slice(1, model.length);\n let e = <string>endpoint.toString();\n if (Resource.endpoints[e] === void 0) {\n throw `Endpoint: ${<any>endpoint} is not mapped ! Cannot add model: ${model}`;\n }\n let allModels: Object = Resource.endpoints[e].models;\n let orgModel = model;\n model = this.checkNestedModels(model, allModels);\n\n if (Resource.endpoints[e].models[model] === void 0) {\n // log.d('Resource.endpoints', Resource.endpoints);\n throw `Model '${model}' is undefined in endpoint: ${Resource.endpoints[e].url} `;\n }\n\n let res: Rest<T, TA> =\n Resource.endpoints[<string>endpoint.toString()].models[model];\n\n // log.d(`\n // orgModel: ${orgModel}\n // model: ${model}\n\n // `)\n if (orgModel !== model) {\n let baseUrl = Resource.endpoints[<string>endpoint.toString()].url;\n // log.d('base', Resource.endpoints[<string>(endpoint).toString()])\n // log.d('baseUrl', baseUrl)\n // log.d('orgModel', orgModel)\n res.__rest_endpoint = `${baseUrl}/${orgModel}`;\n } else {\n res.__rest_endpoint = void 0;\n }\n\n // log.i(`Resource.endpoints`, Resource.endpoints)\n return res;\n }\n //#endregion\n}\n\n// const res = Resource.create('')\n// res.model()\n// .mock({\n// code: 500,\n// data: {},\n// isArray: true\n// })\n// .array.","import { Observable } from 'rxjs';\nimport { Subscription } from 'rxjs';\nimport { Observer } from 'rxjs';\n\nimport { Models__NS__BackendError, Models__NS__BaseBody, Models__NS__BaseResponse, Models__NS__ErrorBody, Models__NS__FnMethodsHttp, Models__NS__FnMethodsHttpWithMock, Models__NS__HandleResultOptions, Models__NS__HandleResultSourceRequestOptions, Models__NS__HttpBody, Models__NS__HttpCode, Models__NS__HttpResponse, Models__NS__MetaRequest, Models__NS__MethodWithBody, Models__NS__MockController, Models__NS__MockHttp, Models__NS__MockResponse, Models__NS__NestedParams, Models__NS__Ng2RestAxiosRequestConfig, Models__NS__Ng2RestMethods, Models__NS__PromiseObservableMix, Models__NS__ReplayData, Models__NS__ReqParams, Models__NS__ResourceModel, Models__NS__ResponseTypeAxios, Models__NS__UrlParams } from '../models';\nimport { Resource } from '../resource-service';\n\nexport interface RestPromises<A, TA, QP extends Models__NS__UrlParams> {\n get: (tem?: A, queryParams?: QP) => Observable<Models__NS__HttpResponse<A>>;\n head: (tem?: A, queryParams?: QP) => Observable<Models__NS__HttpResponse<A>>;\n query: (tem?: A, queryParams?: QP) => Observable<Models__NS__HttpResponse<TA>>;\n put: (item?: A, queryParams?: QP) => Observable<Models__NS__HttpResponse<A>>;\n patch: (item?: A, queryParams?: QP) => Observable<Models__NS__HttpResponse<A>>;\n post: (item?: A, queryParams?: QP) => Observable<Models__NS__HttpResponse<A>>;\n delete: (\n item?: A,\n queryParams?: QP,\n ) => Observable<Models__NS__HttpResponse<A> | any>;\n}\n\nexport interface Model<A, TA, RP extends Object, QP extends Models__NS__UrlParams> {\n (restParams?: RP): RestPromises<A, TA, QP>;\n}\n\n/**\n *\n * @export\n * @abstract\n * @class SimpleResource\n * @extends {Resource<T, A, TA>}\n * @template E Endpoint type\n * @template A Single modle type\n * @template TA Array Model Type\n * @template RP rest url parameters type\n * @template QP query parameter type\n */\nclass ExtendedResource<\n E,\n A,\n TA,\n RP extends Object,\n QP extends Models__NS__UrlParams,\n> {\n public static doNotSerializeQueryParams = false;\n public static handlers: Subscription[] = [];\n\n rest: Models__NS__ResourceModel<A, TA>;\n\n /**\n * Get model by rest params\n */\n model: Model<A, TA, RP, QP> = (restParams?: RP) => {\n return {\n get: (item: A, queryPrams?: QP) => {\n return Observable.create((observer: Observer<A>) => {\n ExtendedResource.handlers.push(\n this.rest\n .model(restParams)\n .get(item, [queryPrams], {\n doNotSerializeParams:\n ExtendedResource.doNotSerializeQueryParams,\n })\n .observable.subscribe(\n data => observer.next(data.body.json),\n err => observer.error(err),\n () => observer.complete(),\n ),\n );\n });\n },\n\n patch: (item: A, queryParams?: QP) => {\n return Observable.create((observer: Observer<A>) => {\n ExtendedResource.handlers.push(\n this.rest\n .model(restParams)\n .put(item, [queryParams], {\n doNotSerializeParams:\n ExtendedResource.doNotSerializeQueryParams,\n })\n .observable.subscribe(\n data => observer.next(data.body.json),\n err => observer.error(err),\n () => observer.complete(),\n ),\n );\n });\n },\n\n head: (item: A, queryPrams?: QP) => {\n return Observable.create((observer: Observer<A>) => {\n ExtendedResource.handlers.push(\n this.rest\n .model(restParams)\n .head(item, [queryPrams], {\n doNotSerializeParams:\n ExtendedResource.doNotSerializeQueryParams,\n })\n .observable.subscribe(\n data => observer.next(data.body.json),\n err => observer.error(err),\n () => observer.complete(),\n ),\n );\n });\n },\n\n query: (item: A, queryPrams?: QP) => {\n return Observable.create((observer: Observer<TA>) => {\n ExtendedResource.handlers.push(\n this.rest\n .model(restParams)\n .array.get(item as any, [queryPrams], {\n doNotSerializeParams:\n ExtendedResource.doNotSerializeQueryParams,\n })\n .observable.subscribe(\n data => observer.next(data.body.json),\n err => observer.error(err),\n () => observer.complete(),\n ),\n );\n });\n },\n\n post: (item: A, queryParams?: QP) => {\n return Observable.create((observer: Observer<A>) => {\n ExtendedResource.handlers.push(\n this.rest\n .model(restParams)\n .post(item, [queryParams], {\n doNotSerializeParams:\n ExtendedResource.doNotSerializeQueryParams,\n })\n .observable.subscribe(\n data => observer.next(data.body.json),\n err => observer.error(err),\n () => observer.complete(),\n ),\n );\n });\n },\n\n put: (item: A, queryParams?: QP) => {\n return Observable.create((observer: Observer<A>) => {\n ExtendedResource.handlers.push(\n this.rest\n .model(restParams)\n .put(item, [queryParams], {\n doNotSerializeParams:\n ExtendedResource.doNotSerializeQueryParams,\n })\n .observable.subscribe(\n data => observer.next(data.body.json),\n err => observer.error(err),\n () => observer.complete(),\n ),\n );\n });\n },\n\n delete: (item: A, queryPrams?: QP) => {\n return Observable.create((observer: Observer<A>) => {\n ExtendedResource.handlers.push(\n this.rest\n .model(restParams)\n .delete(item, [queryPrams], {\n doNotSerializeParams:\n ExtendedResource.doNotSerializeQueryParams,\n })\n .observable.subscribe(\n data => observer.next(data.body.json),\n err => observer.error(err),\n () => observer.complete(),\n ),\n );\n });\n },\n };\n };\n\n // add(endpoint: E, model: string, group?: string, name?: string, description?: string) { }\n\n public constructor(\n private endpoint: E | string,\n private path_model: string,\n ) {\n this.rest = <any>Resource.create<A, TA>(<any>endpoint, path_model);\n }\n}\n\n/**\n *\n * @export\n * @class SimpleResource\n * @template A single model type\n * @template TA array model type\n * @template RP rest parameters type\n * @template QP query parameters type\n */\nexport class SimpleResource<A, TA> {\n model: Model<A, TA, Object, Models__NS__UrlParams>;\n\n private static _isSetQueryParamsSerialization = false;\n public static set doNotSerializeQueryParams(value) {\n if (!SimpleResource._isSetQueryParamsSerialization) {\n SimpleResource._isSetQueryParamsSerialization = true;\n ExtendedResource.doNotSerializeQueryParams = value;\n return;\n }\n console.warn(`Query params serialization already set as\n ${ExtendedResource.doNotSerializeQueryParams},`);\n }\n\n public static __destroy() {\n ExtendedResource.handlers.forEach(h => h.unsubscribe());\n }\n\n constructor(endpoint: string, model: string) {\n let rest = new ExtendedResource<string, A, TA, Object, Models__NS__UrlParams>(\n endpoint,\n model,\n );\n this.model = rest.model;\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Helpers"],"mappings":"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"}
1
+ {"version":3,"file":"ng2-rest-websql.mjs","sources":["../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/lib/cookie.ts","../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/lib/mapping.ts","../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/lib/helpers.ts","../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/lib/params.ts","../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/lib/axios-interceptors.ts","../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/lib/models.ts","../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/lib/rest-headers.ts","../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/lib/rest-request.ts","../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/lib/content-type.ts","../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/lib/rest.class.ts","../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/lib/resource-service.ts","../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/lib/other/simple-resource.ts","../../../tmp-libs-for-dist-websql-prod/ng2-rest/projects/ng2-rest/src/ng2-rest-websql.ts"],"sourcesContent":["export class Cookie {\n\n public static get Instance(): Cookie {\n if (!Cookie.__instance) {\n Cookie.__instance = new Cookie();\n }\n return Cookie.__instance as any;\n }\n private static __instance;\n\n private constructor() {\n }\n\n read(name: string) {\n var result = new RegExp('(?:^|; )' + encodeURIComponent(name) + '=([^;]*)').exec(document.cookie);\n return result ? result[1] : null;\n }\n\n write(name: string, value: string, days?: number) {\n if (!days) {\n days = 365 * 20;\n }\n\n var date = new Date();\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\n\n var expires = \"; expires=\" + date.toUTCString();\n\n document.cookie = name + \"=\" + value + expires + \"; path=/\";\n }\n\n remove(name: string) {\n this.write(name, \"\", -1);\n }\n\n}","/* */ \n\nimport { Circ } from 'json10/websql-prod';\nimport { walk } from 'lodash-walk-object/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__openFolderInVSCode, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__UnknownEditor } from 'tnp-core/websql-prod';\nimport { CLASS, SYMBOL } from 'typescript-class-helpers/websql-prod';\n\n//namespace Mapping\n\n export function Mapping__NS__decode(json: Object, autodetect = false): Mapping__NS__Mapping {\n // console.log('DECODE isBrowser', HelpersLog.isBrowser)\n if (___NS__isUndefined(json)) {\n return void 0;\n }\n\n let mapping = decodeFromDecorator(\n ___NS__isArray(json) ? ___NS__first(json) : json,\n !autodetect,\n );\n\n if (autodetect) {\n mapping = ___NS__merge(getMappingNaive(json), mapping);\n }\n\n return mapping;\n }\n\n export function Mapping__NS__encode<T = Function>(\n json: Object,\n mapping: Mapping__NS__Mapping,\n circular: Circ[] = [],\n ): T {\n if (___NS__isString(json) || ___NS__isBoolean(json) || ___NS__isNumber(json)) {\n return json as any;\n }\n\n if (mapping['']) {\n const decoratorMapping = Mapping__NS__getModelsMapping(CLASS.getBy(mapping['']));\n mapping = ___NS__merge(mapping, decoratorMapping);\n }\n\n let res: any;\n if (___NS__isArray(circular) && circular.length > 0) {\n res = setMappingCirc(json, mapping, circular);\n } else {\n res = setMapping(json, mapping);\n }\n return res;\n }\n\n function decodeFromDecorator(json: Object, production = false): Mapping__NS__Mapping {\n const entityClass = CLASS.getFromObject(json);\n const mappings = Mapping__NS__getModelsMapping(entityClass);\n return mappings as any;\n }\n\n export function Mapping__NS__getModelsMapping(entity: Function) {\n if (!___NS__isFunction(entity) || entity === Object) {\n return {};\n }\n const className = CLASS.getName(entity);\n // console.log(`getMaping for: '${className}' `)\n let enityOWnMapping: any[] = ___NS__isArray(entity[SYMBOL.MODELS_MAPPING])\n ? entity[SYMBOL.MODELS_MAPPING]\n : [{ '': className }];\n\n let res = {};\n let parents = enityOWnMapping\n .filter(m => !___NS__isUndefined(m['']) && m[''] !== className)\n .map(m => m['']);\n\n enityOWnMapping.reverse().forEach(m => {\n m = ___NS__cloneDeep(m);\n // console.log(`'${className}' m:`, m)\n Object.keys(m).forEach(key => {\n const v = m[key];\n const isArr = ___NS__isArray(v);\n const model = isArr ? ___NS__first(v) : v;\n if (parents.includes(model)) {\n m[key] = isArr ? [className] : className;\n }\n });\n res = ___NS__merge(res, m);\n });\n res[''] = className;\n // console.log(`mapping for ${className} : ${JSON.stringify(res)}`)\n return res;\n }\n\n export type Mapping__NS__Mapping<T = {}> = {\n [P in keyof T]?: string | string[];\n };\n\n function add(o: Object, path: string, mapping: Mapping__NS__Mapping = {}) {\n if (!o || Array.isArray(o) || typeof o !== 'object') return;\n const proptotypeObj = Object.getPrototypeOf(o);\n if (!proptotypeObj) {\n return;\n }\n const objectClassName = CLASS.getName(proptotypeObj.constructor);\n const resolveClass = CLASS.getBy(objectClassName);\n if (!resolveClass) {\n if (objectClassName !== 'Object') {\n if (UtilsOs__NS__isBrowser) {\n console.error(\n `Cannot resolve class \"${objectClassName}\" while mapping.`,\n );\n }\n }\n return;\n }\n if (!mapping[path]) mapping[path] = CLASS.getName(resolveClass) as any;\n }\n\n /**\n * USE ONLY IN DEVELOPMENT\n * @param c\n * @param path\n * @param mapping\n * @param level\n */\n function getMappingNaive(\n c: Object,\n path = '',\n mapping: Mapping__NS__Mapping = {},\n level = 0,\n ) {\n if (c === null || c === undefined) {\n return;\n }\n/* */\n/* */\n/* */\n/* */\n \n // console.log({c})\n if (Array.isArray(c)) {\n c.forEach(c => getMappingNaive(c, path, mapping, level));\n return mapping;\n }\n if (++level === 16) return;\n add(c, path, mapping);\n for (var p in c) {\n if (___NS__isFunction(c.hasOwnProperty) && c.hasOwnProperty(p)) {\n const v = c[p];\n if (Array.isArray(v) && v.length > 0) {\n // reducer as impovement\n v.forEach((elem, i) => {\n // const currentPaht = [`path[${i}]`, p].filter(c => c.trim() != '').join('.');\n const currentPaht = [path, p].filter(c => c.trim() != '').join('.');\n getMappingNaive(elem, currentPaht, mapping, level);\n });\n } else if (typeof v === 'object') {\n const currentPaht = [path, p].filter(c => c.trim() != '').join('.');\n add(v, currentPaht, mapping);\n getMappingNaive(v, currentPaht, mapping, level);\n }\n }\n }\n return mapping;\n }\n\n function getMappingPathFrom(pathLodhas: string) {\n if (!___NS__isString(pathLodhas)) {\n return void 0;\n }\n const regex = /\\[([0-9a-zA-Z]|\\'|\\\")*\\]/g;\n pathLodhas = pathLodhas.replace(regex, '').replace('..', '.');\n if (pathLodhas.startsWith('.')) {\n pathLodhas = pathLodhas.slice(1);\n }\n return pathLodhas;\n }\n\n function setMappingCirc(\n json: Object,\n mapping: Mapping__NS__Mapping = {},\n circular: Circ[] = [],\n ) {\n const mainClassFn = !___NS__isArray(json) && CLASS.getBy(mapping['']);\n // console.log(mapping)\n walk.Object(json, (v, lodashPath, changeValue) => {\n if (!___NS__isUndefined(v) && !___NS__isNull(v)) {\n const mappingPath = getMappingPathFrom(lodashPath);\n if (!___NS__isUndefined(mapping[mappingPath])) {\n const isArray = ___NS__isArray(mapping[mappingPath]);\n if (!isArray) {\n const className = isArray\n ? ___NS__first(mapping[mappingPath])\n : mapping[mappingPath];\n const classFN = CLASS.getBy(className);\n if (___NS__isFunction(classFN)) {\n // console.log(`mapping: '${mappingPath}', lp: '${lodashPath}' class: '${className}' , set `, v.location)\n changeValue(___NS__merge(new (classFN as any)(), v));\n }\n }\n }\n }\n });\n\n circular.forEach(c => {\n const ref = ___NS__get(json, c.circuralTargetPath);\n ___NS__set(json, c.pathToObj, ref);\n });\n\n if (___NS__isFunction(mainClassFn)) {\n json = ___NS__merge(new (mainClassFn as any)(), json);\n }\n\n return json;\n }\n\n function setMapping(json: Object, mapping: Mapping__NS__Mapping = {}) {\n // console.log('mapping', mapping)\n if (Array.isArray(json)) {\n return json.map(j => {\n return setMapping(j, mapping);\n });\n }\n\n const mainClassFn = CLASS.getBy(mapping['']);\n\n for (const key in json) {\n if (json.hasOwnProperty(key)) {\n // if (mainClassFn && mainClassFn.name === 'Project') {\n // // console.log(`OWn property: \"${key}\"`)\n // }\n if (___NS__isArray(json[key])) {\n json[key] = json[key].map(arrObj => {\n const objMapping = Mapping__NS__getModelsMapping(CLASS.getBy(mapping[key]));\n return setMapping(arrObj, objMapping);\n });\n } else if (___NS__isObject(json[key])) {\n const objMapping = Mapping__NS__getModelsMapping(CLASS.getBy(mapping[key]));\n json[key] = setMapping(json[key], objMapping);\n }\n }\n // else {\n // if (mainClassFn && mainClassFn.name === 'Project') {\n // // console.log(`Not own property: \"${key}\"`)\n // }\n // }\n }\n\n Object.keys(mapping)\n .filter(key => key !== '' && key.split('.').length >= 2)\n .forEach(lodasPath => {\n // console.log(`Loadsh path: ${lodasPath}`)\n const objMapping = Mapping__NS__getModelsMapping(CLASS.getBy(mapping[lodasPath]));\n const input = ___NS__get(json, lodasPath);\n if (!___NS__isUndefined(input)) {\n const res = setMapping(input, objMapping);\n ___NS__set(json, lodasPath, res);\n }\n });\n\n if (!mainClassFn) {\n return json;\n }\n return ___NS__merge(new (mainClassFn as any)(), json);\n }\n\n export type Mapping__NS__ModelValue<T> = {\n /**\n * Inside models types\n */\n [propName in keyof T]?: T[propName];\n };\n\n export function Mapping__NS__DefaultModelWithMapping<T = Object>(\n defaultModelValues?: Mapping__NS__ModelValue<T>,\n mapping?: Mapping__NS__Mapping<T>,\n ) {\n return function (target: Function) {\n if (!___NS__isArray(target[SYMBOL.MODELS_MAPPING])) {\n target[SYMBOL.MODELS_MAPPING] = [];\n }\n\n (target[SYMBOL.MODELS_MAPPING] as any[]).push({\n '': CLASS.getName(target),\n });\n if (___NS__isObject(mapping)) {\n target[SYMBOL.MODELS_MAPPING] = (\n target[SYMBOL.MODELS_MAPPING] as any[]\n ).concat(mapping);\n Object.keys(mapping).forEach(key => {\n const v = mapping;\n if (___NS__isUndefined(v) || ___NS__isFunction(v)) {\n throw `\n\n\n Class: '${target.name}'\n[ng2rest] Bad mapping value for path: ${key} , please use type: <string> or [<string>]\n`;\n }\n });\n }\n\n if (___NS__isObject(defaultModelValues)) {\n const toMerge = {};\n const describedTarget = CLASS.describeProperites(target).filter(prop =>\n /^([a-zA-Z0-9]|\\_|\\#)+$/.test(prop),\n );\n // console.log(`describedTarget: ${describedTarget} for ${target.name}`)\n describedTarget.forEach(propDefInConstr => {\n if (defaultModelValues[propDefInConstr]) {\n console.warn(`\n\n CONFLICT: default value for property: \"${propDefInConstr}\"\n in class \"${target.name}\" already defined as typescript\n default class proprty value.\n\n `);\n } else {\n toMerge[propDefInConstr] = null; // TODO from toString I can't know that\n }\n });\n\n // console.log(`merge \"${JSON.stringify(target.prototype)}\" with \"${JSON.stringify(defaultModelValues)}\"`)\n\n target[SYMBOL.DEFAULT_MODEL] = ___NS__merge(toMerge, defaultModelValues);\n\n const propsToOmmit = Object.keys(target[SYMBOL.DEFAULT_MODEL]).filter(\n key => {\n const descriptor = Object.getOwnPropertyDescriptor(\n target.prototype,\n key,\n );\n return !!descriptor;\n },\n );\n ___NS__merge(\n target.prototype,\n ___NS__omit(target[SYMBOL.DEFAULT_MODEL], propsToOmmit),\n );\n\n // console.log(`DEFAULT VALUE MERGE for ${target.name}`)\n }\n };\n }\n\n//end of namespace Mapping","import { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { Mapping__NS__decode, Mapping__NS__DefaultModelWithMapping, Mapping__NS__encode, Mapping__NS__getModelsMapping, Mapping__NS__Mapping, Mapping__NS__ModelValue } from './mapping';\n//namespace Helpers\n\n export const Helpers__NS__getMapping = () => {\n return {\n encode<T = Function>(json: Object, mapping: Mapping__NS__Mapping): T {\n return Mapping__NS__encode(json, mapping);\n },\n decode(json: Object, autodetect = false): Mapping__NS__Mapping {\n return Mapping__NS__decode(json, autodetect);\n },\n };\n };\n export const Helpers__NS__checkValidUrl = (url: string): boolean => {\n let regex =\n /(http|https):\\/\\/(\\w+:{0,1}\\w*)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%!\\-\\/]))?/;\n return regex.test(url);\n };\n\n//end of namespace Helpers","import { diffChars } from 'diff';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\nimport { Log, Level } from 'ng2-logger/websql-prod';\nimport { Models__NS__BackendError, Models__NS__BaseBody, Models__NS__BaseResponse, Models__NS__ErrorBody, Models__NS__FnMethodsHttp, Models__NS__FnMethodsHttpWithMock, Models__NS__HandleResultOptions, Models__NS__HandleResultSourceRequestOptions, Models__NS__HttpBody, Models__NS__HttpCode, Models__NS__HttpResponse, Models__NS__MetaRequest, Models__NS__MethodWithBody, Models__NS__MockController, Models__NS__MockHttp, Models__NS__MockResponse, Models__NS__NestedParams, Models__NS__Ng2RestAxiosRequestConfig, Models__NS__Ng2RestMethods, Models__NS__PromiseObservableMix, Models__NS__ReplayData, Models__NS__ReqParams, Models__NS__ResourceModel, Models__NS__ResponseTypeAxios, Models__NS__UrlParams } from './models';\nimport { Helpers__NS__checkValidUrl, Helpers__NS__getMapping } from './helpers';\n\nconst log = Log.create('[ng2-rest] params', Level.__NOTHING)\n\n\n\n/** check if string is a valid pattern */\nexport function isValid(pattern: string) {\n return (new RegExp('\\/:[a-zA-Z]*', 'g')).test(pattern.replace('://', ''));\n}\n\nexport function check(url: string, pattern: string): boolean {\n if (!Helpers__NS__checkValidUrl(url)) {\n log.error(`Incorrect url: ${url}`);\n return false;\n }\n if (url.charAt(url.length - 1) === '/') url = url.slice(0, url.length - 2);\n if (pattern.charAt(pattern.length - 1) === '/') pattern = pattern.slice(0, url.length - 2);\n pattern = pattern.replace(/\\//g, '\\/');\n pattern = pattern.replace(new RegExp('\\/:[a-zA-Z]*', 'g'), '.+');\n let reg = new RegExp(pattern, 'g');\n return reg.test(url);\n}\n\nexport function getModels(pattern: string): string[] {\n let m = pattern.match(new RegExp('[a-z-A-Z]*\\/:', 'g'));\n return m.map(p => p.replace('/:', ''));\n}\n\nexport function getRestPramsNames(pattern: string): string[] {\n if (pattern.charAt(pattern.length - 1) !== '/') pattern = `${pattern}/`;\n let m = pattern.match(new RegExp(':[a-zA-Z]*\\/', 'g'));\n let res = m.map(p => p.replace(':', '').replace('/', ''));\n return res.filter(p => p.trim() !== '');\n}\n\nexport function containsModels(url: string, models: string[]): boolean {\n if (url.charAt(0) !== '/') url = '/' + url;\n // url = url.replace(new RegExp('\\/', 'g'), '');\n let res = models.filter(m => {\n let word = '/' + m;\n // log.d('word', word)\n let iii = url.indexOf(word);\n // log.d('iii', iii)\n if (iii + word.length < url.length && url.charAt(iii + word.length) !== '/') {\n return false;\n }\n if (iii !== -1) {\n url = url.replace(new RegExp('\\/' + m, 'g'), '');\n return true;\n }\n return false;\n }).length;\n // log.d('containsModels', res);\n return res === models.length;\n}\n\nexport function stars(n: number): string {\n let res = '';\n for (let i = 0; i < n; i++) res += '*';\n return res;\n}\n\nexport function getRestParams(url: string, pattern: string): Object {\n let res = {};\n let models = getRestPramsNames(pattern);\n // log.d('models', models);\n models.forEach(m => {\n pattern = pattern.replace(`:${m}`, stars(m.length));\n })\n\n let currentModel: string = void 0;\n diffChars(pattern, url).forEach(d => {\n // log.d('d', d);\n if (d.added) {\n if (!isNaN(Number(d.value))) res[currentModel] = Number(d.value);\n else if (d.value.trim() === 'true') res[currentModel] = true;\n else if (d.value.trim() === 'false') res[currentModel] = false;\n else res[currentModel] = decodeURIComponent(d.value);\n currentModel = void 0;\n }\n let m = d.value.replace(':', \"\");\n // log.d('model m', m)\n if (d.removed) {\n currentModel = models.shift();\n }\n });\n return res;\n}\n\nexport const regexisPath = /[^\\..]+(\\.[^\\..]+)+/g;\n\n/**\n * Models like books/:id\n */\nfunction cutUrlModel(params: Object, models: string[], output: string[]) {\n if (models.length === 0) return output.join('\\/');\n let m = models.pop();\n\n let param = m.match(/:[a-zA-Z0-9\\.]+/)[0].replace(':', '');\n const paramIsPath = regexisPath.test(param)\n // log.i('cut param', param)\n let model = m.match(/[a-zA-Z0-9]+\\//)[0].replace('\\/', '');\n if (params === void 0 ||\n (paramIsPath ? ___NS__get(params, param) === void 0 : params[param] === void 0) ||\n param === 'undefined') {\n output.length = 0;\n output.unshift(model)\n return cutUrlModel(params, models, output);\n } else {\n if (paramIsPath) {\n // log.i('param is path', param)\n let mrep = m.replace(new RegExp(`:${param}`, 'g'), `${___NS__get(params, param)}`)\n output.unshift(mrep)\n return cutUrlModel(params, models, output);\n } else {\n // log.i('param is normal', param)\n let mrep = m.replace(new RegExp(`:${param}`, 'g'), `${params[param]}`)\n output.unshift(mrep)\n return cutUrlModel(params, models, output);\n }\n\n }\n}\n\n\nexport function interpolateParamsToUrl(params: Object, url: string): string {\n\n const regexInt = /\\[\\[([^\\..]+\\.[^\\..]+)+\\]\\]/g;\n\n url = url.split('/').map(p => {\n // log.d('url parts', p)\n let isParam = p.startsWith(':')\n if (isParam) {\n let part = p.slice(1);\n // log.d('url param part', p)\n if (regexInt.test(part)) {\n // let level = (url.split('.').length - 1)\n part = part.replace('[[', '')\n part = part.replace(']]', '')\n }\n return `:${part}`\n }\n return p;\n }).join('/');\n\n // log.i('URL TO EXPOSE', url)\n\n // log.i('params', params)\n\n let slash = {\n start: url.charAt(0) === '\\/',\n end: url.charAt(url.length - 1) === '\\/'\n }\n\n let morePramsOnEnd = url.match(/(\\/:[a-zA-Z0-9\\.]+){2,10}/g);\n if (morePramsOnEnd && (Array.isArray(morePramsOnEnd) && morePramsOnEnd.length === 1)) {\n // log.i('morePramsOnEnd', morePramsOnEnd)\n let m = morePramsOnEnd[0];\n let match = m.match(/\\/:[a-zA-Z0-9\\.]+/g);\n // log.i('match', match)\n match.forEach(e => {\n let c = e.replace('\\/:', '');\n // log.i('c', c)\n if (regexisPath.test(c)) {\n url = url.replace(e, `/${___NS__get(params, c)}`)\n } else {\n url = url.replace(e, `/${params[c]}`)\n }\n\n\n // log.i('prog url', url)\n })\n return url;\n }\n\n let nestedParams = url.match(/[a-zA-Z0-9]+\\/:[a-zA-Z0-9\\.]+/g);\n if (!nestedParams || (Array.isArray(nestedParams) && nestedParams.length === 0)) return url;\n\n // check alone params\n if (!slash.end) url = `${url}/`;\n let addUndefinedForAlone = (!/:[a-zA-Z0-9\\.]+\\/$/g.test(url) && /[a-zA-Z0-9]+\\/$/g.test(url));\n\n let replace = (nestedParams.length > 1 ? nestedParams.join('\\/') : nestedParams[0]) +\n (addUndefinedForAlone ? '\\/' + url.match(/[a-zA-Z0-9]+\\/$/g)[0] : '\\/');\n let beginHref = url.replace(replace, '')\n\n if (addUndefinedForAlone) {\n url = url.replace(/\\/$/g, '/:undefined')\n nestedParams = url.match(/[a-zA-Z0-9]+\\/:[a-zA-Z0-9\\.]+/g);\n url = cutUrlModel(params, nestedParams, [])\n } else {\n url = cutUrlModel(params, nestedParams, [])\n }\n url = beginHref + url;\n\n if (url.charAt(url.length - 1) !== '/' && slash.end) url = `${url}/`;\n if (url.charAt(0) !== '\\/' && slash.start) url = `/${url}`;\n\n return url;\n}\n\n/**\n * Get query params from url, like 'ex' in /api/books?ex=value\n*/\nexport function decodeUrl(url: string): Object {\n let regex = /[?&]([^=#]+)=([^&#]*)/g,\n params = {},\n match;\n while (match = regex.exec(url)) {\n params[decodeURIComponent(match[1])] = decodeURIComponent(match[2]);\n }\n let paramsObject = <Object>params;\n for (let p in paramsObject) {\n if (paramsObject[p] === void 0) {\n delete paramsObject[p];\n continue;\n }\n if (paramsObject.hasOwnProperty(p)) {\n // chcek if property is number\n let n = Number(params[p]);\n if (!isNaN(n)) {\n params[p] = n;\n continue;\n }\n if (typeof params[p] === 'string') {\n\n // check if property is object\n let json;\n try {\n json = JSON.parse(params[p]);\n } catch (error) { }\n if (json !== void 0) {\n params[p] = json;\n continue;\n }\n\n // chcek if property value is like regular rexpression\n // let regexExpression;\n // try {\n // regexExpression = new RegExp(params[p]);\n // } catch (e) { }\n // if (regexExpression !== undefined) params[p] = regexExpression;\n }\n }\n }\n return params;\n}\n\n/**\n * Create query params string for url\n *\n * @export\n * @param {UrlParams[]} params\n * @returns {string}\n */\nexport function getParamsUrl(params: Models__NS__UrlParams[], doNotSerialize: boolean = false): string {\n let urlparts: string[] = [];\n if (!params) return '';\n if (!(params instanceof Array)) return '';\n if (params.length === 0) return '';\n\n params.forEach(urlparam => {\n if (JSON.stringify(urlparam) !== '{}') {\n\n let parameters: string[] = [];\n let paramObject = <Object>urlparam;\n\n\n for (let p in paramObject) {\n if (paramObject[p] === void 0) delete paramObject[p];\n if (paramObject.hasOwnProperty(p) && typeof p === 'string' && p !== 'regex' && !(paramObject[p] instanceof RegExp)) {\n if (p.length > 0 && p[0] === '/') {\n let newName = p.slice(1, p.length - 1);\n urlparam[newName] = urlparam[p];\n urlparam[p] = void 0;\n p = newName;\n }\n if (p.length > 0 && p[p.length - 1] === '/') {\n let newName = p.slice(0, p.length - 2);\n urlparam[newName] = urlparam[p];\n urlparam[p] = void 0;\n p = newName;\n }\n let v: any = urlparam[p];\n if (v instanceof Object) {\n urlparam[p] = JSON.stringify(urlparam[p]);\n }\n urlparam[p] = doNotSerialize ? <string>urlparam[p] : encodeURIComponent(<string>urlparam[p]);\n if (urlparam.regex !== void 0 && urlparam.regex instanceof RegExp) {\n\n if (!urlparam.regex.test(<string>urlparam[p])) {\n console.warn(`Data: ${urlparam[p]} incostistent with regex ${urlparam.regex.source}`);\n }\n }\n parameters.push(`${p}=${urlparam[p]}`);\n }\n\n }\n\n urlparts.push(parameters.join('&'));\n\n\n }\n\n\n });\n let join = urlparts.join().trim();\n if (join.trim() === '') return '';\n return `?${urlparts.join('&')}`;\n}\n\n\nfunction transform(o) {\n if (typeof o === 'object') {\n return encodeURIComponent(JSON.stringify(o));\n }\n return o;\n}\n\n\nexport function prepareUrlOldWay(params?: TemplateStringsArray): string {\n if (!params) return this.endpoint;\n if (typeof params === 'object') {\n params = transform(params);\n }\n return this.endpoint + '/' + params;\n}","import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';\nimport type express from 'express';\nimport { from, Observable } from 'rxjs';\n\nexport interface AxiosTaonHttpHandler<T = any> {\n handle(req: AxiosRequestConfig): Observable<AxiosResponse<T>>;\n}\n\nexport interface TaonClientMiddlewareInterceptOptions<T = any> {\n req: AxiosRequestConfig; // <- request config only (no AxiosResponse here)\n next: AxiosTaonHttpHandler<T>;\n}\n\nexport interface TaonServerMiddlewareInterceptOptions<T = any> {\n req: express.Request;\n res: express.Response;\n next: express.NextFunction;\n}\n\nexport interface TaonAxiosClientInterceptor<T = any> {\n intercept(\n client: TaonClientMiddlewareInterceptOptions<T>,\n ): Observable<AxiosResponse<T>>;\n}\n\n// Optional helper for passing around context (browser/client)\n\n// === Backend handler (last in chain) ===\nexport class AxiosBackendHandler<T = any> implements AxiosTaonHttpHandler<T> {\n handle(req: AxiosRequestConfig): Observable<AxiosResponse<T>> {\n // axios returns a Promise; wrap as Observable\n return from(axios.request<T>(req));\n }\n}\n\n// === Chain builder (request: forward order, response: reverse order) ===\nexport const buildInterceptorChain = <T = any>(\n interceptors: Array<TaonAxiosClientInterceptor<T>>,\n backend: AxiosTaonHttpHandler<T>,\n): AxiosTaonHttpHandler<T> => {\n return interceptors.reduceRight<AxiosTaonHttpHandler<T>>(\n (next, interceptor) => ({\n handle: req => interceptor.intercept({ req, next }),\n }),\n backend,\n );\n};","/* */ \n\nimport { AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { JSON10, Circ } from 'json10/websql-prod';\n// import { Log, Level } from 'ng2-logger/src';\nimport { Observable } from 'rxjs';\nimport { Subject } from 'rxjs';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\nimport { CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpMethod, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings } from 'tnp-core/websql-prod';\nimport { Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__compilationWrapper, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-core/websql-prod';\n\nimport { Cookie } from './cookie';\nimport { Mapping__NS__decode, Mapping__NS__DefaultModelWithMapping, Mapping__NS__encode, Mapping__NS__getModelsMapping, Mapping__NS__Mapping, Mapping__NS__ModelValue } from './mapping';\nimport { RestHeaders } from './rest-headers';\nimport { Rest } from './rest.class';\n\nclass RestCommonHttpResponseWrapper {\n declare success?: boolean;\n}\n\nexport class RestResponseWrapper extends RestCommonHttpResponseWrapper {\n declare data?: any;\n}\n\nexport class RestErrorResponseWrapper extends RestCommonHttpResponseWrapper {\n declare message: string;\n /**\n * stack trace / more details about error\n */\n declare details?: string;\n /**\n * http status code\n */\n declare status?: number;\n /**\n * custom error code from backend\n */\n declare code?: string;\n}\n\n// const log = Log.create('rest namespace', Level.__NOTHING)\n\n//namespace Models\n\n // export import HttpMethod = CoreModels__NS__HttpMethod;\n // export import ParamType = CoreModels__NS__ParamType;\n\n export interface Models__NS__HandleResultOptions {\n res: Models__NS__MockResponse;\n method: CoreModels__NS__HttpMethod;\n jobid?: number;\n isArray?: boolean;\n }\n\n export interface Models__NS__HandleResultSourceRequestOptions {\n url: string;\n method: CoreModels__NS__HttpMethod;\n // headers?: RestHeaders,\n body: any;\n isArray: boolean;\n }\n\n export type Models__NS__BackendError = {\n msg?: string;\n stack?: string[];\n data: any;\n };\n\n export type Models__NS__MetaRequest = {\n path: string;\n endpoint: string;\n entity: Mapping__NS__Mapping;\n circular: Circ[];\n };\n export type Models__NS__HttpCode = 200 | 400 | 401 | 404 | 500;\n\n export type Models__NS__PromiseObservableMix<T> = Promise<T> & {\n observable: Observable<T>;\n };\n\n export type Models__NS__Ng2RestAxiosRequestConfig = {\n doNotSerializeParams?: boolean;\n } & AxiosRequestConfig<any>;\n\n export type Models__NS__MethodWithBody<E, T, R = Models__NS__PromiseObservableMix<E>> = (\n item?: T,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ) => R;\n export type Models__NS__ReplayData = {\n subject: Subject<any>;\n data: { url: string; body: string; headers: RestHeaders; isArray: boolean };\n /**\n * jobid\n */\n id: number;\n };\n export type Models__NS__ReqParams = {\n url: string;\n method: CoreModels__NS__HttpMethod;\n headers?: RestHeaders;\n body?: any;\n jobid: number;\n isArray: boolean;\n };\n\n export interface Models__NS__ResourceModel<A, TA> {\n model: (pathModels?: Object, responseObjectType?: Function) => Rest<A, TA>;\n headers: RestHeaders;\n }\n\n export interface Models__NS__Ng2RestMethods<E, T> {\n get: Models__NS__MethodWithBody<E, T>;\n post: Models__NS__MethodWithBody<E, T>;\n put: Models__NS__MethodWithBody<E, T>;\n patch: Models__NS__MethodWithBody<E, T>;\n head: Models__NS__MethodWithBody<E, T>;\n delete: Models__NS__MethodWithBody<E, T>;\n jsonp: Models__NS__MethodWithBody<E, T>;\n }\n\n export type Models__NS__MockController = (\n url: string,\n method: CoreModels__NS__HttpMethod,\n headers?: RestHeaders,\n body?: any,\n ) => Models__NS__MockResponse;\n\n export type Models__NS__MockHttp = Models__NS__MockResponse | Models__NS__MockController;\n\n export interface Models__NS__FnMethodsHttp<T, TA> extends Models__NS__Ng2RestMethods<\n Models__NS__HttpResponse<T>,\n T\n > {\n array: Models__NS__Ng2RestMethods<Models__NS__HttpResponse<TA>, TA>;\n }\n\n export interface Models__NS__FnMethodsHttpWithMock<T, TA> extends Models__NS__Ng2RestMethods<\n Models__NS__HttpResponse<T>,\n T\n > {\n array: Models__NS__Ng2RestMethods<Models__NS__HttpResponse<TA>, TA>;\n }\n\n export interface Models__NS__NestedParams {\n [params: string]: string;\n }\n\n export interface Models__NS__UrlParams {\n [urlModelName: string]: string | number | boolean | RegExp | Object;\n regex?: RegExp;\n }\n [];\n\n export abstract class Models__NS__BaseBody {\n protected toJSON(\n data,\n opt: {\n isJSONArray?: boolean;\n parsingError?: boolean;\n },\n ): object | undefined {\n opt = opt || { isJSONArray: false };\n let r = opt.isJSONArray ? [] : {};\n if (typeof data === 'string') {\n try {\n let parsed = JSON.parse(data);\n if (typeof parsed === 'string' && parsed.trim().startsWith('{')) {\n parsed = JSON.parse(parsed);\n }\n if (opt.parsingError && parsed[CoreModels__NS__TaonHttpErrorCustomProp]) {\n return ___NS__merge(new RestErrorResponseWrapper(), parsed);\n }\n return parsed;\n } catch (e) {}\n } else if (typeof data === 'object') {\n return data;\n }\n return r as any;\n }\n }\n\n export class Models__NS__HttpBody<T> extends Models__NS__BaseBody {\n constructor(\n private responseText: string | Blob,\n private isArray = false,\n private entity: Mapping__NS__Mapping,\n private circular: Circ[],\n ) {\n super();\n }\n\n public get blob(): Blob {\n return this.responseText as Blob;\n }\n\n public get booleanValue(): boolean | undefined {\n if (!Helpers__NS__isBlob(this.responseText)) {\n return ['ok', 'true'].includes((this.responseText as string)?.trim());\n }\n }\n\n public get numericValue(): number | undefined {\n if (!Helpers__NS__isBlob(this.responseText)) {\n return Number((this.responseText as string)?.trim());\n }\n }\n\n public get rawJson(): Partial<T> {\n if (!Helpers__NS__isBlob(this.responseText)) {\n let res = this.toJSON(this.responseText, { isJSONArray: this.isArray });\n if (this.circular && Array.isArray(this.circular)) {\n res = JSON10.parse(JSON.stringify(res), this.circular);\n }\n\n return res;\n }\n }\n\n public get json(): T {\n const isBlob = Helpers__NS__isBlob(this.responseText);\n if (isBlob) {\n return void 0;\n }\n if (this.entity && typeof this.entity === 'function') {\n return this.entity(); // @LAST\n }\n if (this.entity && typeof this.entity === 'object') {\n const json = this.toJSON(this.responseText, {\n isJSONArray: this.isArray,\n });\n return Mapping__NS__encode(json, this.entity, this.circular) as any;\n }\n let res = this.toJSON(this.responseText, { isJSONArray: this.isArray });\n if (this.circular && Array.isArray(this.circular)) {\n res = JSON10.parse(JSON.stringify(res), this.circular);\n }\n return res as any;\n }\n\n /**\n * undefined when blob\n */\n public get text(): string | undefined {\n if (!Helpers__NS__isBlob(this.responseText)) {\n return (this.responseText as string)\n .replace(/^\\\"/, '')\n .replace(/\\\"$/, '');\n }\n }\n }\n\n export class Models__NS__ErrorBody<T = RestErrorResponseWrapper> extends Models__NS__BaseBody {\n constructor(private data) {\n super();\n }\n\n public get json(): T {\n return this.toJSON(this.data, { parsingError: true }) as any;\n }\n public get text(): string {\n return this.data;\n }\n }\n\n export abstract class Models__NS__BaseResponse<T> {\n protected static readonly cookies = Cookie.Instance;\n\n public get cookies() {\n return Models__NS__BaseResponse.cookies;\n }\n constructor(\n public responseText?: string | Blob,\n public readonly headers?: RestHeaders,\n public readonly statusCode?: Models__NS__HttpCode | number,\n public isArray = false,\n ) {}\n }\n\n export class Models__NS__HttpResponse<T> extends Models__NS__BaseResponse<T> {\n public body: Models__NS__HttpBody<T>;\n // public readonly TOTAL_COUNT_HEADER = 'X-Total-Count'.toLowerCase();\n // public get totalElements(): number {\n // return Number(this.headers.get(this.TOTAL_COUNT_HEADER));\n // }\n\n constructor(\n public sourceRequest: Models__NS__HandleResultSourceRequestOptions,\n public responseText?: string | Blob,\n public headers?: RestHeaders,\n public statusCode?: Models__NS__HttpCode | number,\n public entity?: Mapping__NS__Mapping | Function,\n public circular?: Circ[],\n public jobid?: number,\n public isArray = false,\n ) {\n // console.log({\n // sourceRequest, responseText, headers, statusCode, entity, circular, jobid, isArray\n // })\n super(responseText, headers, statusCode, isArray);\n\n this.init();\n }\n\n public init() {\n if (typeof this.entity === 'string') {\n // const headerWithMapping = headers.get(entity);\n let entityJSON = this.headers?.getAll(this.entity);\n if (!!entityJSON) {\n this.entity = JSON.parse(entityJSON.join());\n }\n }\n if (typeof this.circular === 'string') {\n // const headerWithMapping = headers.get(circular);\n let circuralJSON = this.headers?.getAll(this.circular);\n if (!!circuralJSON) {\n this.circular = JSON.parse(circuralJSON.join());\n }\n }\n this.body = new Models__NS__HttpBody(\n this.responseText,\n this.isArray,\n this.entity,\n this.circular,\n ) as any;\n }\n }\n\n export interface Models__NS__MockResponse {\n data?: any;\n code?: Models__NS__HttpCode;\n error?: string;\n headers?: RestHeaders;\n jobid?: number;\n isArray: boolean;\n }\n\n export type Models__NS__ResponseTypeAxios =\n | 'blob'\n | 'text'\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n//end of namespace Models\n\n\nexport class HttpResponseError<\n ERROR_BODY = object,\n> extends Models__NS__BaseResponse<any> {\n public readonly body: Models__NS__ErrorBody<ERROR_BODY>;\n // public tryRecconect() {\n\n // }\n constructor(\n public message: string,\n responseText?: string,\n headers?: RestHeaders,\n statusCode?: Models__NS__HttpCode | number,\n public jobid?: number,\n public sourceRequest?: Models__NS__HandleResultSourceRequestOptions,\n ) {\n super(responseText, headers, statusCode);\n this.body = new Models__NS__ErrorBody<ERROR_BODY>(responseText);\n }\n}","/**\n * Based on Headers from https://github.com/angular/angular/blob/master/packages/http/src/headers.ts\n */\nexport type RestHeadersOptions = RestHeaders | { [name: string]: (string | string[]) }\n\nexport class RestHeaders {\n /** @internal header names are lower case */\n _headers: Map<string, string[]> = new Map();\n /** @internal map lower case names to actual names */\n _normalizedNames: Map<string, string> = new Map();\n\n\n public static from(headers?: RestHeadersOptions) {\n if (!headers) {\n return void 0;\n }\n return new RestHeaders(headers);\n }\n\n private constructor(headers?: RestHeaders | { [name: string]: (string | string[]) }) {\n if (headers instanceof RestHeaders) {\n headers.forEach((values: string[], name: string) => {\n values.forEach(value => this.set(name, value));\n });\n } else {\n Object.keys(headers).forEach((name: string) => {\n const values: string[] = (Array.isArray(headers[name]) ? headers[name] : [headers[name]]) as any;\n this.delete(name);\n values.forEach(value => this.set(name, value));\n });\n }\n }\n\n /**\n * Returns a new RestHeaders instance from the given DOMString of Response RestHeaders\n */\n static fromResponseHeaderString(headersString: string): RestHeaders {\n const headers = new RestHeaders();\n // console.log({\n // headersString\n // })\n headersString.split('\\n').forEach(line => {\n const index = line.indexOf(':');\n if (index > 0) {\n const name = line.slice(0, index);\n const value = line.slice(index + 1).trim();\n headers.set(name, value);\n }\n });\n\n return headers;\n }\n\n /**\n * Appends a header to existing list of header values for a given header name.\n */\n append(name: string, value: string): void {\n const values = this.getAll(name);\n\n if (values === null) {\n this.set(name, value);\n } else {\n values.push(value);\n }\n }\n\n /**\n * Deletes all header values for the given name.\n */\n delete(name: string): void {\n const lcName = name.toLowerCase();\n this._normalizedNames.delete(lcName);\n this._headers.delete(lcName);\n }\n\n forEach(fn: (values: string[], name: string, headers: Map<string, string[]>) => void): void {\n this._headers.forEach(\n (values, lcName) => fn(values, this._normalizedNames.get(lcName), this._headers));\n }\n\n /**\n * Returns first header that matches given name.\n */\n get(name: string): string {\n const values = this.getAll(name);\n\n if (values === null) {\n return null;\n }\n\n return values.length > 0 ? values[0] : null;\n }\n\n /**\n * Checks for existence of header by given name.\n */\n has(name: string): boolean { return this._headers.has(name.toLowerCase()); }\n\n /**\n * Returns the names of the headers\n */\n keys(): string[] { return Array.from(this._normalizedNames.values()); }\n\n /**\n * Sets or overrides header value for given name.\n */\n set(name: string, value: string | string[]): void {\n if (Array.isArray(value)) {\n if (value.length) {\n this._headers.set(name.toLowerCase(), [value.join(',')]);\n }\n } else {\n this._headers.set(name.toLowerCase(), [value]);\n }\n this.mayBeSetNormalizedName(name);\n }\n\n /**\n * Returns values of all headers.\n */\n values(): string[][] { return Array.from(this._headers.values()); }\n\n /**\n * Returns string of all headers.\n */\n // TODO(vicb): returns {[name: string]: string[]}\n toJSON(): { [name: string]: any } {\n const serialized: { [name: string]: string[] } = {};\n if (!this._headers) {\n // debugger\n\n }\n // console.log('serializing headers',this._headers)\n this._headers.forEach((values: string[], name: string) => {\n const split: string[] = [];\n values.forEach(v => split.push(...v.split(',')));\n // console.log({\n // values\n // })\n // values.forEach(v => split.push(...(v ? v : '').split(',')));\n serialized[this._normalizedNames.get(name)] = split;\n });\n\n return serialized;\n }\n\n /**\n * Returns list of header values for a given name.\n */\n getAll(name: string): string[] {\n return this.has(name) ? this._headers.get(name.toLowerCase()) : null;\n }\n\n private mayBeSetNormalizedName(name: string): void {\n const lcName = name.toLowerCase();\n\n if (!this._normalizedNames.has(lcName)) {\n this._normalizedNames.set(lcName, name);\n }\n }\n}","//#region imports\nimport axios, { AxiosRequestConfig, AxiosResponse } from 'axios';\n/* */ \nimport { Level } from 'ng2-logger/websql-prod';\nimport { Log, Logger } from 'ng2-logger/websql-prod';\nimport { firstValueFrom, from, Observable } from 'rxjs';\nimport { Subject } from 'rxjs';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpMethod, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__openFolderInVSCode, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__UnknownEditor } from 'tnp-core/websql-prod';\nimport { Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__compilationWrapper, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-core/websql-prod';\nimport { CLASS } from 'typescript-class-helpers/websql-prod';\n\nimport {\n AxiosBackendHandler,\n buildInterceptorChain,\n TaonAxiosClientInterceptor,\n} from './axios-interceptors';\nimport { HttpResponseError, Models__NS__BackendError, Models__NS__BaseBody, Models__NS__BaseResponse, Models__NS__ErrorBody, Models__NS__FnMethodsHttp, Models__NS__FnMethodsHttpWithMock, Models__NS__HandleResultOptions, Models__NS__HandleResultSourceRequestOptions, Models__NS__HttpBody, Models__NS__HttpCode, Models__NS__HttpResponse, Models__NS__MetaRequest, Models__NS__MethodWithBody, Models__NS__MockController, Models__NS__MockHttp, Models__NS__MockResponse, Models__NS__NestedParams, Models__NS__Ng2RestAxiosRequestConfig, Models__NS__Ng2RestMethods, Models__NS__PromiseObservableMix, Models__NS__ReplayData, Models__NS__ReqParams, Models__NS__ResourceModel, Models__NS__ResponseTypeAxios, Models__NS__UrlParams } from './models';\nimport { Resource } from './resource-service';\nimport { RestHeaders } from './rest-headers';\n//#endregion\n\n// const log = Log.create('[ng2-rest] rest-request', Level.__NOTHING);\n\n/**\n * TODO refactor this (remove jobid)\n */\nconst jobIDkey = 'jobID';\nconst customObs = 'customObs';\nconst cancelFn = 'cancelFn';\nconst isCanceled = 'isCanceled';\n\n//#region mock request\n//#endregion\n\nexport class RestRequest {\n //#region fields\n private static jobId = 0;\n private subjectInuUse: { [id: number]: Subject<any> } = {};\n private meta: { [id: number]: Models__NS__MetaRequest } = {};\n //#endregion\n\n /**\n * key is interceptorName (just to identify who is intercepting)\n */\n interceptors = new Map<string, TaonAxiosClientInterceptor>();\n\n /**\n * key is a joined string METHOD-expressPath.\n * Example `GET-/api/users`\n */\n methodsInterceptors = new Map<string, TaonAxiosClientInterceptor>();\n\n private handlerResult(\n options: Models__NS__HandleResultOptions,\n sourceRequest: Models__NS__HandleResultSourceRequestOptions,\n ) {\n if (___NS__isUndefined(options)) {\n options = {} as any;\n }\n // log.d(`HANDLE RESULT (jobid:${options.jobid}) ${sourceRequest.url}`);\n const { res, jobid, isArray, method } = options;\n\n if (typeof res !== 'object') {\n throw new Error('No resposnse for request. ');\n }\n\n if (UtilsOs__NS__isBrowser) {\n res.headers = RestHeaders.from(res.headers);\n }\n\n // error no internet\n if (res.error) {\n this.subjectInuUse[jobid].error(\n new HttpResponseError(\n res.error,\n res.data,\n res.headers,\n res.code,\n jobid,\n sourceRequest,\n ),\n );\n return;\n }\n const entity = this.meta[jobid].entity;\n const circular = this.meta[jobid].circular;\n\n const success = Resource['_listenSuccess'] as Subject<\n Models__NS__HttpResponse<any>\n >;\n\n const reqResp = new Models__NS__HttpResponse(\n sourceRequest,\n res.data,\n res.headers,\n res.code,\n entity,\n circular,\n jobid,\n isArray,\n );\n success.next(reqResp);\n\n this.subjectInuUse[jobid].next(reqResp);\n this.meta[jobid] = void 0;\n this.subjectInuUse[jobid].complete();\n }\n\n private async req(\n url: string,\n method: CoreModels__NS__HttpMethod,\n headers?: RestHeaders,\n body?: any,\n jobid?: number,\n isArray = false,\n mockHttp?: Models__NS__MockHttp,\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ) {\n const CancelToken = axios.CancelToken;\n const source = CancelToken.source();\n this.subjectInuUse[jobid][cancelFn] = source.cancel;\n\n var response: AxiosResponse<any>;\n if (mockHttp) {\n if (typeof mockHttp === 'object') {\n response = {\n data: mockHttp.data,\n status: mockHttp.code,\n headers: mockHttp.headers as any,\n statusText: mockHttp.error,\n config: {} as any,\n };\n } else if (typeof mockHttp === 'function') {\n const r = mockHttp(url, method, headers, body);\n response = {\n data: r.data,\n status: r.code,\n headers: r.headers as any,\n statusText: r.error,\n config: {} as any,\n };\n }\n }\n\n const isFormData = CLASS.getNameFromObject(body) === 'FormData';\n const formData: FormData = isFormData ? (body as any) : void 0;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n const headersJson = headers.toJSON();\n const responseType = headersJson.responsetypeaxios\n ? headersJson.responsetypeaxios\n : 'text';\n\n try {\n if (!response) {\n/* */\n/* */\n/* */\n/* */\n \n\n // console.log('headers axios:', headers.toJSON())\n // console.log({ responseType, headersJson, body, method, url })\n let axiosConfig: AxiosRequestConfig<any> = {\n url,\n method,\n data: body,\n responseType,\n headers: headersJson,\n cancelToken: source.token,\n ...(axiosOptions || {}), // merge with axiosOptions\n // withCredentials: true, // this can be done manually\n };\n\n if (isFormData) {\n axiosConfig.maxBodyLength = Infinity;\n }\n\n // console.log('AXIOS CONFIG', axiosConfig);\n const uri = new URL(url);\n const backend = new AxiosBackendHandler<any>();\n\n const globalInterceptors = Array.from(this.interceptors.entries()).map(\n ([_, interceptor]) => interceptor,\n );\n\n const methodInterceptors = Array.from(\n this.methodsInterceptors.entries(),\n )\n .filter(([key]) => {\n const ending = `-${method?.toUpperCase()}-${uri.pathname}`;\n return key.endsWith(ending);\n })\n .map(([_, interceptor]) => interceptor);\n\n // console.log(\n // `for ${uri.pathname} global ${globalInterceptors.length} method: ${methodInterceptors.length}`,\n // );\n\n const allInterceptors = [...globalInterceptors, ...methodInterceptors];\n\n const handler = buildInterceptorChain(allInterceptors, backend);\n response = await firstValueFrom(handler.handle(axiosConfig));\n // log.d(`after response of jobid: ${jobid}`);\n }\n\n // console.log('AXIOS RESPONES', response)\n\n if (this.subjectInuUse[jobid][isCanceled]) {\n return;\n }\n\n // handle normal request\n this.handlerResult(\n {\n res: {\n code: response.status as any,\n data: response.data,\n isArray,\n jobid,\n headers: RestHeaders.from(response.headers as any),\n },\n method,\n jobid,\n isArray,\n },\n {\n url,\n body,\n method,\n isArray,\n },\n );\n } catch (catchedError) {\n if (this.subjectInuUse[jobid][isCanceled]) {\n return;\n }\n // console.log('ERROR RESPONESE catchedError typeof ', typeof catchedError)\n // console.log('ERROR RESPONESE catchedError', catchedError)\n if (\n typeof catchedError === 'object' &&\n catchedError.response &&\n catchedError.response.data\n ) {\n const err = catchedError.response.data;\n const msg: string = catchedError.response.data.message || '';\n // console.log({\n // 'err.stack': err?.stack\n // })\n let stack: string[] = (err.stack || '').split('\\n');\n\n const errObs = Resource[\n '_listenErrors'\n ] as Subject<Models__NS__BackendError>;\n errObs.next({\n msg,\n stack,\n data: catchedError.response.data,\n });\n }\n const error =\n catchedError && catchedError.response\n ? `[${catchedError.response.statusText}]: `\n : '';\n\n // handle error request\n this.handlerResult(\n {\n res: {\n code:\n catchedError && catchedError.response\n ? (catchedError.response.status as any)\n : void 0,\n error: `${error}${catchedError.message}`,\n data:\n catchedError && catchedError.response\n ? JSON.stringify(catchedError.response.data)\n : void 0,\n isArray,\n jobid,\n headers: RestHeaders.from(\n catchedError &&\n catchedError.response &&\n catchedError.response.headers,\n ),\n },\n method,\n jobid,\n isArray,\n },\n {\n url,\n body,\n isArray,\n method,\n },\n );\n }\n }\n\n private getReplay(\n method: CoreModels__NS__HttpMethod,\n meta: Models__NS__MetaRequest,\n onlyGetLastReplayForMethod: boolean,\n ): Models__NS__ReplayData {\n let replay: Models__NS__ReplayData;\n\n //#region prevent empty tree\n if (___NS__isUndefined(this.replaySubjects[meta.endpoint])) {\n // log.i(`(${meta.endpoint}) `);\n this.replaySubjects[meta.endpoint] = {};\n }\n if (___NS__isUndefined(this.replaySubjects[meta.endpoint][meta.path])) {\n // log.i(`(${meta.endpoint})(${meta.path}) `);\n this.replaySubjects[meta.endpoint][meta.path] = {};\n }\n if (___NS__isUndefined(this.replaySubjects[meta.endpoint][meta.path][method])) {\n // log.i(`(${meta.endpoint})(${meta.path}) `);\n this.replaySubjects[meta.endpoint][meta.path][method] = {};\n }\n //#endregion\n\n const objectIDToCreateOrLast =\n Object.keys(\n this.replaySubjects[meta.endpoint][meta.path][method] as Object,\n ).length + (onlyGetLastReplayForMethod ? 0 : 1);\n if (onlyGetLastReplayForMethod && objectIDToCreateOrLast === 0) {\n return replay;\n }\n\n if (\n ___NS__isUndefined(\n this.replaySubjects[meta.endpoint][meta.path][method][\n objectIDToCreateOrLast\n ],\n )\n ) {\n // log.i(`(${meta.endpoint})(${meta.path})(${method}) `);\n this.replaySubjects[meta.endpoint][meta.path][method][\n objectIDToCreateOrLast\n ] = <Models__NS__ReplayData>{\n subject: new Subject(),\n data: void 0,\n };\n }\n\n replay =\n this.replaySubjects[meta.endpoint][meta.path][method][\n objectIDToCreateOrLast\n ];\n\n if (!___NS__isNumber(replay.id)) {\n if (RestRequest.jobId === Number.MAX_SAFE_INTEGER) {\n RestRequest.jobId = 0;\n }\n\n const jobid: number = RestRequest.jobId++;\n replay.id = jobid;\n const subject: Subject<any> = replay.subject;\n subject[jobIDkey] = jobid; // modify internal rxjs subject obj\n\n this.meta[jobid] = meta;\n this.subjectInuUse[jobid] = subject;\n\n this.subjectInuUse[jobid][customObs] = new Observable(observer => {\n // observer.remove(() => {\n\n // });\n observer.add(() => {\n // console.log(`cancel observable job${jobid}`)\n if (!this.subjectInuUse[jobid][isCanceled]) {\n this.subjectInuUse[jobid][isCanceled] = true;\n if (typeof this.subjectInuUse[jobid][cancelFn] === 'function') {\n this.subjectInuUse[jobid][cancelFn](\n '[ng2-rest] on purpose canceled http request',\n );\n }\n } else {\n // console.log(`somehow second time cancel ${jobid}`)\n }\n });\n const sub = subject.subscribe({\n next: a => observer.next(a),\n error: a => observer.error(a),\n complete: () => {\n setTimeout(() => {\n sub.unsubscribe();\n observer.complete();\n });\n },\n });\n });\n\n //#region DISPOSE @UNCOMMENT AFTER TESTS\n // if (objectIDToCreateOrLast > 2) {\n // const oldReq: Models__NS__ReplayData = this.replaySubjects[meta.endpoint][meta.path][method][(objectIDToCreateOrLast - 2)];\n // if (___NS__isUndefined(this.meta[oldReq.id])) {\n // // cant delete this - for counter purpose\n // this.replaySubjects[meta.endpoint][meta.path][method][(objectIDToCreateOrLast - 2)] = {};\n // delete this.subjectInuUse[oldReq.id];\n // delete this.meta[oldReq.id];\n // }\n // }\n //#endregion\n }\n\n return replay;\n }\n\n //#region http methods\n\n private generalReq(\n method: CoreModels__NS__HttpMethod,\n url: string,\n body: string,\n headers: RestHeaders,\n meta: Models__NS__MetaRequest,\n isArray: boolean,\n mockHttp: Models__NS__MockHttp,\n axiosOptions: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<any> {\n const replay: Models__NS__ReplayData = this.getReplay(method, meta, false);\n replay.data = { url, body, headers, isArray };\n\n ((\n pthis,\n purl,\n pmethod,\n pheaders,\n pbody,\n pid,\n pisArray,\n pmockHttp,\n axiosOpt,\n ) => {\n // log.d(`for ${purl} jobid ${pid}`);\n setTimeout(() =>\n pthis.req(\n purl,\n pmethod,\n pheaders,\n pbody,\n pid,\n pisArray,\n pmockHttp,\n axiosOpt,\n ),\n );\n })(\n this,\n url,\n method,\n headers,\n body,\n replay.id,\n isArray,\n mockHttp,\n axiosOptions,\n );\n\n const resp: Models__NS__PromiseObservableMix<any> = firstValueFrom(\n replay.subject[customObs],\n ) as any;\n resp.observable = replay.subject[customObs];\n return resp;\n }\n\n get(\n url: string,\n body: string,\n headers: RestHeaders,\n meta: Models__NS__MetaRequest,\n isArray: boolean,\n mockHttp: Models__NS__MockHttp,\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<any> {\n return this.generalReq(\n 'get',\n url,\n body,\n headers,\n meta,\n isArray,\n mockHttp,\n axiosOptions,\n );\n }\n\n head(\n url: string,\n body: string,\n headers: RestHeaders,\n meta: Models__NS__MetaRequest,\n isArray: boolean,\n mockHttp: Models__NS__MockHttp,\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<any> {\n return this.generalReq(\n 'head',\n url,\n body,\n headers,\n meta,\n isArray,\n mockHttp,\n axiosOptions,\n );\n }\n\n delete(\n url: string,\n body: string,\n headers: RestHeaders,\n meta: Models__NS__MetaRequest,\n isArray: boolean,\n mockHttp: Models__NS__MockHttp,\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<any> {\n return this.generalReq(\n 'delete',\n url,\n body,\n headers,\n meta,\n isArray,\n mockHttp,\n axiosOptions,\n );\n }\n\n post(\n url: string,\n body: string,\n headers: RestHeaders,\n meta: Models__NS__MetaRequest,\n isArray: boolean,\n mockHttp: Models__NS__MockHttp,\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<any> {\n return this.generalReq(\n 'post',\n url,\n body,\n headers,\n meta,\n isArray,\n mockHttp,\n axiosOptions,\n );\n }\n\n put(\n url: string,\n body: string,\n headers: RestHeaders,\n meta: Models__NS__MetaRequest,\n isArray: boolean,\n mockHttp: Models__NS__MockHttp,\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<any> {\n return this.generalReq(\n 'put',\n url,\n body,\n headers,\n meta,\n isArray,\n mockHttp,\n axiosOptions,\n );\n }\n\n patch(\n url: string,\n body: string,\n headers: RestHeaders,\n meta: Models__NS__MetaRequest,\n isArray: boolean,\n mockHttp: Models__NS__MockHttp,\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<any> {\n return this.generalReq(\n 'patch',\n url,\n body,\n headers,\n meta,\n isArray,\n mockHttp,\n axiosOptions,\n );\n }\n\n jsonp(\n url: string,\n body: string,\n headers: RestHeaders,\n meta: Models__NS__MetaRequest,\n isArray: boolean,\n mockHttp: Models__NS__MockHttp,\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<any> {\n const method = 'jsonp';\n\n if (UtilsOs__NS__isSSRMode) {\n const emptyStuff = Promise.resolve() as Models__NS__PromiseObservableMix<any>;\n emptyStuff.observable = new Observable<any>();\n console.warn(`Cannot perform jsonp request in SSR mode`);\n return emptyStuff;\n }\n\n const replay: Models__NS__ReplayData = this.getReplay('jsonp', meta, false);\n const jobid = replay.id;\n\n setTimeout(() => {\n if (url.endsWith('/')) url = url.slice(0, url.length - 1);\n let num = Math.round(10000 * Math.random());\n let callbackMethodName = 'cb_' + num;\n let win: any = globalThis; // TODO not a good idea! @LAST\n win[callbackMethodName] = data => {\n // handle jsonp result data\n this.handlerResult(\n {\n res: {\n data,\n isArray,\n },\n method,\n jobid,\n isArray,\n },\n {\n url,\n body,\n isArray,\n method,\n },\n );\n };\n let sc = document.createElement('script');\n sc.src = `${url}?callback=${callbackMethodName}`;\n document.body.appendChild(sc);\n document.body.removeChild(sc);\n });\n\n const resp: Models__NS__PromiseObservableMix<any> = firstValueFrom(\n replay.subject[customObs],\n ) as any;\n resp.observable = replay.subject[customObs];\n return resp;\n }\n //#endregion\n private replaySubjects = {};\n}","import { RestHeaders } from \"./rest-headers\";\n\n\nexport const CONTENT_TYPE = {\n APPLICATION_JSON: RestHeaders.from({\n 'Content-Type': 'application/json',\n 'Accept': 'application/json'\n }),\n APPLICATINO_VND_API_JSON: RestHeaders.from({\n 'Content-Type': 'application/vnd.api+json',\n 'Accept': 'application/vnd.api+json'\n }),\n}","//#region import\n// import { Log, Level } from 'ng2-logger/src';\n\n// const log = Log.create('rest.class', Level.__NOTHING)\n\nimport { CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpMethod, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings } from 'tnp-core/websql-prod';\nimport { CLASS } from 'typescript-class-helpers/websql-prod';\n\nimport { CONTENT_TYPE } from './content-type';\nimport { Models__NS__BackendError, Models__NS__BaseBody, Models__NS__BaseResponse, Models__NS__ErrorBody, Models__NS__FnMethodsHttp, Models__NS__FnMethodsHttpWithMock, Models__NS__HandleResultOptions, Models__NS__HandleResultSourceRequestOptions, Models__NS__HttpBody, Models__NS__HttpCode, Models__NS__HttpResponse, Models__NS__MetaRequest, Models__NS__MethodWithBody, Models__NS__MockController, Models__NS__MockHttp, Models__NS__MockResponse, Models__NS__NestedParams, Models__NS__Ng2RestAxiosRequestConfig, Models__NS__Ng2RestMethods, Models__NS__PromiseObservableMix, Models__NS__ReplayData, Models__NS__ReqParams, Models__NS__ResourceModel, Models__NS__ResponseTypeAxios, Models__NS__UrlParams } from './models';\nimport { getRestParams, getParamsUrl } from './params';\nimport { RestHeaders } from './rest-headers';\nimport { RestRequest } from './rest-request';\n//#endregion\n\nexport class Rest<T, TA = T[]> implements Models__NS__FnMethodsHttpWithMock<T, TA> {\n private mockHttp: Models__NS__MockHttp;\n\n mock(mock: Models__NS__MockHttp): Models__NS__FnMethodsHttp<T, TA> {\n if (typeof mock === 'function' || typeof mock === 'object') {\n this.mockHttp = mock;\n } else {\n throw `[ng2-rest]\n .model(...)\n .mock( < BAD MOCK DATA > )\n ...\n `;\n }\n return this;\n }\n\n //#region private fields\n private __meta_endpoint: string;\n\n private _endpointRest: string;\n\n private get endpoint() {\n let e = this.__meta_endpoint;\n if (\n this.restQueryParams !== void 0 &&\n this._endpointRest !== void 0 &&\n typeof this._endpointRest === 'string' &&\n this._endpointRest.trim() !== ''\n )\n e = this._endpointRest;\n return e;\n }\n\n private restQueryParams: Object;\n\n public set __rest_endpoint(endpoint) {\n this._endpointRest = endpoint;\n if (endpoint === void 0) {\n this.restQueryParams = void 0;\n } else {\n this.restQueryParams = getRestParams(endpoint, this.__meta_endpoint);\n }\n }\n\n private creatUrl(params: any, doNotSerializeParams: boolean = false) {\n return `${this.endpoint}${getParamsUrl(params, doNotSerializeParams)}`;\n }\n\n //#endregion\n\n //#region constructor\n private _headers = RestHeaders.from(CONTENT_TYPE.APPLICATION_JSON);\n\n get headers() {\n return this._headers;\n }\n\n constructor(\n endpoint: string,\n private request: RestRequest,\n private meta: Models__NS__MetaRequest,\n private customContentType: RestHeaders,\n ) {\n this.__meta_endpoint = endpoint;\n }\n //#endregion\n\n //#region req\n\n private req(\n method: CoreModels__NS__HttpMethod,\n requestBody: T,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n isArray: boolean = false,\n ) {\n axiosOptions = axiosOptions || {};\n const modelUrl = this.creatUrl(params, !!axiosOptions.doNotSerializeParams);\n\n const isFormData = CLASS.getNameFromObject(requestBody) === 'FormData';\n\n const body = isFormData\n ? requestBody\n : requestBody\n ? JSON.stringify(requestBody)\n : void 0;\n\n // console.log('this.customContentType', this.customContentType)\n if (this.customContentType) {\n const customHeaderKeys = this.customContentType.keys();\n const currentHeaderKeys = this._headers.keys();\n currentHeaderKeys\n .filter(key => !customHeaderKeys.includes(key))\n .forEach(key => {\n this.customContentType.set(key, this._headers.get(key));\n });\n this._headers = this.customContentType;\n } else {\n this._headers = RestHeaders.from(CONTENT_TYPE.APPLICATION_JSON);\n }\n\n // console.log(\"_headers\", this.headers)\n\n const result = this.request[method.toLowerCase()](\n modelUrl,\n body,\n this.headers,\n this.meta,\n isArray,\n this.mockHttp,\n axiosOptions,\n );\n\n this.mockHttp = void 0;\n return result;\n }\n //#endregion\n\n //#region http methods\n\n array = {\n get: (\n item: TA,\n params: Models__NS__UrlParams[] = void 0,\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<TA>> => {\n return this.req('get', item as any, params, axiosOptions, true) as any;\n },\n head: (\n item: TA,\n params: Models__NS__UrlParams[] = void 0,\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<TA>> => {\n return this.req('head', item as any, params, axiosOptions, true) as any;\n },\n post: (\n item: TA,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<TA>> => {\n return this.req('post', item as any, params, axiosOptions, true) as any;\n },\n put: (\n item: TA,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<TA>> => {\n return this.req('put', item as any, params, axiosOptions, true) as any;\n },\n patch: (\n item: TA,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<TA>> => {\n return this.req('patch', item as any, params, axiosOptions, true) as any;\n },\n delete: (\n item: TA,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<TA>> => {\n return this.req('delete', item as any, params, axiosOptions, true) as any;\n },\n jsonp: (\n item: TA,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<TA>> => {\n return this.req('jsonp', item as any, params, axiosOptions, true) as any;\n },\n };\n\n get(\n item: T,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<T>> {\n return this.req('get', item as any, params, axiosOptions) as any;\n }\n\n head(\n item: T,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<T>> {\n return this.req('head', item as any, params, axiosOptions) as any;\n }\n\n post(\n item: T,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<T>> {\n return this.req('post', item, params, axiosOptions);\n }\n\n put(\n item: T,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<T>> {\n return this.req('put', item, params, axiosOptions);\n }\n\n patch(\n item: T,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<T>> {\n return this.req('patch', item, params, axiosOptions);\n }\n\n delete(\n item: T,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<T>> {\n return this.req('delete', item, params, axiosOptions);\n }\n\n jsonp(\n item: T,\n params?: Models__NS__UrlParams[],\n axiosOptions?: Models__NS__Ng2RestAxiosRequestConfig,\n ): Models__NS__PromiseObservableMix<Models__NS__HttpResponse<T>> {\n return this.req('jsonp', item, params, axiosOptions);\n }\n //#endregion\n}","//#region imports\nimport { Circ } from 'json10/websql-prod';\nimport { Log, Level } from 'ng2-logger/websql-prod';\nimport { Observable } from 'rxjs';\nimport { Subject } from 'rxjs';\nimport { Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__compilationWrapper, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-core/websql-prod';\n\nimport { Cookie } from './cookie';\nimport { Mapping__NS__decode, Mapping__NS__DefaultModelWithMapping, Mapping__NS__encode, Mapping__NS__getModelsMapping, Mapping__NS__Mapping, Mapping__NS__ModelValue } from './mapping';\nimport { Models__NS__BackendError, Models__NS__BaseBody, Models__NS__BaseResponse, Models__NS__ErrorBody, Models__NS__FnMethodsHttp, Models__NS__FnMethodsHttpWithMock, Models__NS__HandleResultOptions, Models__NS__HandleResultSourceRequestOptions, Models__NS__HttpBody, Models__NS__HttpCode, Models__NS__HttpResponse, Models__NS__MetaRequest, Models__NS__MethodWithBody, Models__NS__MockController, Models__NS__MockHttp, Models__NS__MockResponse, Models__NS__NestedParams, Models__NS__Ng2RestAxiosRequestConfig, Models__NS__Ng2RestMethods, Models__NS__PromiseObservableMix, Models__NS__ReplayData, Models__NS__ReqParams, Models__NS__ResourceModel, Models__NS__ResponseTypeAxios, Models__NS__UrlParams } from './models';\nimport {\n interpolateParamsToUrl,\n isValid,\n containsModels,\n getModels,\n} from './params';\nimport { RestHeaders } from './rest-headers';\nimport { RestRequest } from './rest-request';\nimport { Rest } from './rest.class';\n//#endregion\n\n// const log = Log.create('resouce-service', Level.__NOTHING);\n\nexport class Resource<E, T, TA> {\n protected static _listenErrors = new Subject<Models__NS__BackendError>();\n protected static _listenSuccess = new Subject<Models__NS__HttpResponse<any>>();\n public static get listenErrors() {\n return this._listenErrors.asObservable();\n }\n\n public static get listenSuccessOperations() {\n return this._listenSuccess.asObservable();\n }\n public static enableWarnings: boolean = true;\n\n //#region private mthods and fields\n\n private checkNestedModels(model: string, allModels: Object) {\n // if (model.indexOf('/') !== -1) { //TODO make this better, becouse now I unecesary checking shit\n for (let p in allModels) {\n if (allModels.hasOwnProperty(p)) {\n let m = allModels[p];\n if (isValid(p)) {\n let urlModels = getModels(p);\n if (containsModels(model, urlModels)) {\n model = p;\n break;\n }\n }\n }\n }\n // }\n return model;\n }\n\n private static instance = new Resource<string, any, any>();\n private static endpoints = {};\n public static getModel(endpoint: string, model: string): Rest<any> {\n model = Resource.prepareModel(model);\n const e = Resource.endpoints[endpoint];\n if (!e) {\n return void 0;\n }\n const r = Resource.endpoints[endpoint].models[model];\n return Resource.endpoints[endpoint].models[model];\n }\n public static request: RestRequest = new RestRequest();\n //#endregion\n\n //#region create\n public static create<A, TA = A[]>(\n e: string,\n model?: string,\n entityMapping?: Mapping__NS__Mapping,\n circular?: Circ[],\n customContentType?: RestHeaders,\n ): Models__NS__ResourceModel<A, TA> {\n const badRestRegEX = new RegExp('((\\/:)[a-z]+)+', 'g');\n const matchArr = model.match(badRestRegEX) || [];\n const badModelsNextToEachOther = matchArr.join();\n const atleas2DoubleDots =\n (badModelsNextToEachOther.match(new RegExp(':', 'g')) || []).length >= 2;\n if (atleas2DoubleDots && model.search(badModelsNextToEachOther) !== -1) {\n throw new Error(`\n\nBad rest model: ${model}\n\nDo not create rest models like this: /book/author/:bookid/:authorid\nInstead use nested approach: /book/:bookid/author/:authorid\n `);\n }\n Resource.map(e, e);\n Resource.instance.add(\n e,\n model ? model : '',\n entityMapping,\n circular,\n customContentType,\n );\n // if (model.charAt(model.length - 1) !== '/') model = `${model}/`;\n return {\n model: (params?: Object) =>\n Resource.instance.api(e, interpolateParamsToUrl(params, model)),\n get headers() {\n return Resource.getModel(e, model).headers;\n },\n };\n }\n //#endregion\n\n //#region reset\n public static reset() {\n Resource.endpoints = {};\n }\n //#endregion\n\n //#region constructor\n private constructor() {}\n //#endregion\n\n public static Cookies = Cookie.Instance;\n\n //#region map\n private static map(endpoint: string, url: string): boolean {\n // log.i('url', url);\n let regex =\n /(http|https):\\/\\/(\\w+:{0,1}\\w*)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%!\\-\\/]))?/;\n let e = endpoint;\n if (!regex.test(url)) {\n throw `Url address is not correct: ${url}`;\n }\n if (url.charAt(url.length - 1) === '/') url = url.slice(0, url.length - 1);\n // log.i('url after', url);\n if (Resource.endpoints[e] !== void 0) {\n // Helpers__NS__log(\n // 'Cannot use map function at the same API endpoint again (' +\n // Resource.endpoints[e].url +\n // ')',\n // );\n return false;\n }\n Resource.endpoints[e] = {\n url: url,\n models: {},\n entity: null,\n };\n // log.i('enpoints', Resource.endpoints);\n return true;\n }\n //#endregion\n\n private static prepareModel(model) {\n if (model.charAt(model.length - 1) === '/') {\n model = model.slice(0, model.length - 1);\n }\n if (model.charAt(0) === '/') {\n model = model.slice(1, model.length);\n }\n return model;\n }\n\n //#region add\n /**\n * And enipoint to application\n *\n * @param {E} endpoint\n * @param {string} model\n * @returns {boolean}\n */\n private add(\n endpoint: E,\n model: string,\n entity: Mapping__NS__Mapping,\n circular?: Circ[],\n customContentType?: RestHeaders,\n ) {\n // log.i(`I am maping ${model} on ${<any>endpoint}`);\n model = Resource.prepareModel(model);\n\n let e: string;\n e = <string>endpoint.toString();\n\n if (Resource.endpoints[e] === void 0) {\n console.error('Endpoint is not mapped ! Cannot add model ' + model);\n return;\n }\n if (Resource.endpoints[e].models[model] !== void 0) {\n if (Resource.enableWarnings)\n console.warn(\n `Model '${model}' is already defined in endpoint: ` +\n Resource.endpoints[e].url,\n );\n return;\n }\n Resource.endpoints[e].models[model] = new Rest<T, TA>(\n Resource.endpoints[e].url + '/' + model,\n Resource.request,\n {\n endpoint: e,\n path: model,\n entity,\n circular,\n },\n customContentType,\n ); // TODO put custom content type in meta ?\n return;\n }\n //#endregion\n\n //#region api\n /**\n * Access api throught endpoint\n *\n * @param {E} endpoint\n * @param {string} model\n * @returns {Rest<T, TA>}\n */\n private api(endpoint: E, model: string): Rest<T, TA> {\n // log.i(`[api]\n\n // creating for endpoint: \"${endpoint}\"\n // model: \"${model}\"\n\n // `)\n if (model.charAt(0) === '/') model = model.slice(1, model.length);\n let e = <string>endpoint.toString();\n if (Resource.endpoints[e] === void 0) {\n throw `Endpoint: ${<any>endpoint} is not mapped ! Cannot add model: ${model}`;\n }\n let allModels: Object = Resource.endpoints[e].models;\n let orgModel = model;\n model = this.checkNestedModels(model, allModels);\n\n if (Resource.endpoints[e].models[model] === void 0) {\n // log.d('Resource.endpoints', Resource.endpoints);\n throw `Model '${model}' is undefined in endpoint: ${Resource.endpoints[e].url} `;\n }\n\n let res: Rest<T, TA> =\n Resource.endpoints[<string>endpoint.toString()].models[model];\n\n // log.d(`\n // orgModel: ${orgModel}\n // model: ${model}\n\n // `)\n if (orgModel !== model) {\n let baseUrl = Resource.endpoints[<string>endpoint.toString()].url;\n // log.d('base', Resource.endpoints[<string>(endpoint).toString()])\n // log.d('baseUrl', baseUrl)\n // log.d('orgModel', orgModel)\n res.__rest_endpoint = `${baseUrl}/${orgModel}`;\n } else {\n res.__rest_endpoint = void 0;\n }\n\n // log.i(`Resource.endpoints`, Resource.endpoints)\n return res;\n }\n //#endregion\n}\n\n// const res = Resource.create('')\n// res.model()\n// .mock({\n// code: 500,\n// data: {},\n// isArray: true\n// })\n// .array.","import { Observable } from 'rxjs';\nimport { Subscription } from 'rxjs';\nimport { Observer } from 'rxjs';\n\nimport { Models__NS__BackendError, Models__NS__BaseBody, Models__NS__BaseResponse, Models__NS__ErrorBody, Models__NS__FnMethodsHttp, Models__NS__FnMethodsHttpWithMock, Models__NS__HandleResultOptions, Models__NS__HandleResultSourceRequestOptions, Models__NS__HttpBody, Models__NS__HttpCode, Models__NS__HttpResponse, Models__NS__MetaRequest, Models__NS__MethodWithBody, Models__NS__MockController, Models__NS__MockHttp, Models__NS__MockResponse, Models__NS__NestedParams, Models__NS__Ng2RestAxiosRequestConfig, Models__NS__Ng2RestMethods, Models__NS__PromiseObservableMix, Models__NS__ReplayData, Models__NS__ReqParams, Models__NS__ResourceModel, Models__NS__ResponseTypeAxios, Models__NS__UrlParams } from '../models';\nimport { Resource } from '../resource-service';\n\nexport interface RestPromises<A, TA, QP extends Models__NS__UrlParams> {\n get: (tem?: A, queryParams?: QP) => Observable<Models__NS__HttpResponse<A>>;\n head: (tem?: A, queryParams?: QP) => Observable<Models__NS__HttpResponse<A>>;\n query: (tem?: A, queryParams?: QP) => Observable<Models__NS__HttpResponse<TA>>;\n put: (item?: A, queryParams?: QP) => Observable<Models__NS__HttpResponse<A>>;\n patch: (item?: A, queryParams?: QP) => Observable<Models__NS__HttpResponse<A>>;\n post: (item?: A, queryParams?: QP) => Observable<Models__NS__HttpResponse<A>>;\n delete: (\n item?: A,\n queryParams?: QP,\n ) => Observable<Models__NS__HttpResponse<A> | any>;\n}\n\nexport interface Model<A, TA, RP extends Object, QP extends Models__NS__UrlParams> {\n (restParams?: RP): RestPromises<A, TA, QP>;\n}\n\n/**\n *\n * @export\n * @abstract\n * @class SimpleResource\n * @extends {Resource<T, A, TA>}\n * @template E Endpoint type\n * @template A Single modle type\n * @template TA Array Model Type\n * @template RP rest url parameters type\n * @template QP query parameter type\n */\nclass ExtendedResource<\n E,\n A,\n TA,\n RP extends Object,\n QP extends Models__NS__UrlParams,\n> {\n public static doNotSerializeQueryParams = false;\n public static handlers: Subscription[] = [];\n\n rest: Models__NS__ResourceModel<A, TA>;\n\n /**\n * Get model by rest params\n */\n model: Model<A, TA, RP, QP> = (restParams?: RP) => {\n return {\n get: (item: A, queryPrams?: QP) => {\n return Observable.create((observer: Observer<A>) => {\n ExtendedResource.handlers.push(\n this.rest\n .model(restParams)\n .get(item, [queryPrams], {\n doNotSerializeParams:\n ExtendedResource.doNotSerializeQueryParams,\n })\n .observable.subscribe(\n data => observer.next(data.body.json),\n err => observer.error(err),\n () => observer.complete(),\n ),\n );\n });\n },\n\n patch: (item: A, queryParams?: QP) => {\n return Observable.create((observer: Observer<A>) => {\n ExtendedResource.handlers.push(\n this.rest\n .model(restParams)\n .put(item, [queryParams], {\n doNotSerializeParams:\n ExtendedResource.doNotSerializeQueryParams,\n })\n .observable.subscribe(\n data => observer.next(data.body.json),\n err => observer.error(err),\n () => observer.complete(),\n ),\n );\n });\n },\n\n head: (item: A, queryPrams?: QP) => {\n return Observable.create((observer: Observer<A>) => {\n ExtendedResource.handlers.push(\n this.rest\n .model(restParams)\n .head(item, [queryPrams], {\n doNotSerializeParams:\n ExtendedResource.doNotSerializeQueryParams,\n })\n .observable.subscribe(\n data => observer.next(data.body.json),\n err => observer.error(err),\n () => observer.complete(),\n ),\n );\n });\n },\n\n query: (item: A, queryPrams?: QP) => {\n return Observable.create((observer: Observer<TA>) => {\n ExtendedResource.handlers.push(\n this.rest\n .model(restParams)\n .array.get(item as any, [queryPrams], {\n doNotSerializeParams:\n ExtendedResource.doNotSerializeQueryParams,\n })\n .observable.subscribe(\n data => observer.next(data.body.json),\n err => observer.error(err),\n () => observer.complete(),\n ),\n );\n });\n },\n\n post: (item: A, queryParams?: QP) => {\n return Observable.create((observer: Observer<A>) => {\n ExtendedResource.handlers.push(\n this.rest\n .model(restParams)\n .post(item, [queryParams], {\n doNotSerializeParams:\n ExtendedResource.doNotSerializeQueryParams,\n })\n .observable.subscribe(\n data => observer.next(data.body.json),\n err => observer.error(err),\n () => observer.complete(),\n ),\n );\n });\n },\n\n put: (item: A, queryParams?: QP) => {\n return Observable.create((observer: Observer<A>) => {\n ExtendedResource.handlers.push(\n this.rest\n .model(restParams)\n .put(item, [queryParams], {\n doNotSerializeParams:\n ExtendedResource.doNotSerializeQueryParams,\n })\n .observable.subscribe(\n data => observer.next(data.body.json),\n err => observer.error(err),\n () => observer.complete(),\n ),\n );\n });\n },\n\n delete: (item: A, queryPrams?: QP) => {\n return Observable.create((observer: Observer<A>) => {\n ExtendedResource.handlers.push(\n this.rest\n .model(restParams)\n .delete(item, [queryPrams], {\n doNotSerializeParams:\n ExtendedResource.doNotSerializeQueryParams,\n })\n .observable.subscribe(\n data => observer.next(data.body.json),\n err => observer.error(err),\n () => observer.complete(),\n ),\n );\n });\n },\n };\n };\n\n // add(endpoint: E, model: string, group?: string, name?: string, description?: string) { }\n\n public constructor(\n private endpoint: E | string,\n private path_model: string,\n ) {\n this.rest = <any>Resource.create<A, TA>(<any>endpoint, path_model);\n }\n}\n\n/**\n *\n * @export\n * @class SimpleResource\n * @template A single model type\n * @template TA array model type\n * @template RP rest parameters type\n * @template QP query parameters type\n */\nexport class SimpleResource<A, TA> {\n model: Model<A, TA, Object, Models__NS__UrlParams>;\n\n private static _isSetQueryParamsSerialization = false;\n public static set doNotSerializeQueryParams(value) {\n if (!SimpleResource._isSetQueryParamsSerialization) {\n SimpleResource._isSetQueryParamsSerialization = true;\n ExtendedResource.doNotSerializeQueryParams = value;\n return;\n }\n console.warn(`Query params serialization already set as\n ${ExtendedResource.doNotSerializeQueryParams},`);\n }\n\n public static __destroy() {\n ExtendedResource.handlers.forEach(h => h.unsubscribe());\n }\n\n constructor(endpoint: string, model: string) {\n let rest = new ExtendedResource<string, A, TA, Object, Models__NS__UrlParams>(\n endpoint,\n model,\n );\n this.model = rest.model;\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}