ng2-rest 21.0.41 → 21.0.44

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.
@@ -0,0 +1,5 @@
1
+ {
2
+ "commitHash": "6024cb119878590b2b64126337383d322198e043",
3
+ "commitName": "release: v21.0.43",
4
+ "commitDate": "22-03-2026 15:11:14"
5
+ }
package/bin/ng2-rest CHANGED
@@ -1,5 +1,5 @@
1
- #!/usr/bin/env -S node --no-deprecation
2
- //#region @backend
3
- // --stack-trace-limit=10000
4
- require('./start');
5
- //#endregion
1
+ #!/usr/bin/env -S node --no-deprecation
2
+ //#region @backend
3
+ // --stack-trace-limit=10000
4
+ require('./start');
5
+ //#endregion
@@ -1,5 +1,5 @@
1
- #!/usr/bin/env -S node --inspect --stack-trace-limit=10000 --no-deprecation
2
- //#region @backend
3
- // --stack-trace-limit=10000
4
- require('./start');
5
- //#endregion
1
+ #!/usr/bin/env -S node --inspect --stack-trace-limit=10000 --no-deprecation
2
+ //#region @backend
3
+ // --stack-trace-limit=10000
4
+ require('./start');
5
+ //#endregion
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env -S node --inspect-brk --stack-trace-limit=10000 --no-deprecation
2
- //#region @backend
3
- require('./start');
4
- //#endregion
1
+ #!/usr/bin/env -S node --inspect-brk --stack-trace-limit=10000 --no-deprecation
2
+ //#region @backend
3
+ require('./start');
4
+ //#endregion
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ng2-rest/browser",
3
- "version": "21.0.41",
3
+ "version": "21.0.44",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.0.0",
6
6
  "@angular/core": "^21.0.0"
@@ -1 +1 @@
1
- {"version":3,"file":"ng2-rest-browser-prod.mjs","sources":["../../../tmp-libs-for-dist-prod/ng2-rest/projects/ng2-rest/src/lib/new-mapping.ts","../../../tmp-libs-for-dist-prod/ng2-rest/projects/ng2-rest/src/lib/ng2-rest.ts","../../../tmp-libs-for-dist-prod/ng2-rest/projects/ng2-rest/src/lib/index.ts","../../../tmp-libs-for-dist-prod/ng2-rest/projects/ng2-rest/src/ng2-rest-browser-prod.ts"],"sourcesContent":["//#region imports\nimport { Circ, JSON10 } from 'json10/browser-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, 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, 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__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists } from 'tnp-core/browser-prod';\nimport { CLASS__NS__getBy, CLASS__NS__getClassNameFromObjInstanceOrClassFn, CLASS__NS__getFromObject, CLASS__NS__getMethodsNames, CLASS__NS__getName, CLASS__NS__getNameFromObject, CLASS__NS__NAME, CLASS__NS__setClassName, CLASS__NS__setName } from 'typescript-class-helpers/browser-prod';\n//#endregion\n\n//#region constatns\nconst mappingStore = new WeakMap<\n Function,\n { mapping?: () => EncodeSchema<any> }\n>();\n\nconst defaultValueStore = new WeakMap<\n Function,\n { defaults?: () => ModelValue<any> }\n>();\n//#endregion\n\n//#region models\ntype DeepPartial<T> = {\n [K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K];\n};\n\nexport type ModelValue<T> =\n | DeepPartial<T>\n | Partial<Record<MappingFrom<T>, any>>;\n\ntype Constructor<T = any> = new (...args: any[]) => T;\n\ntype DecrementDepth = [never, 0, 1, 2, 3, 4, 5];\n\ntype MappingFrom<T, Depth extends number = 5> = [Depth] extends [never]\n ? never\n : {\n [K in keyof T & string]: T[K] extends Primitive\n ? K\n : T[K] extends Array<infer U>\n ? K | `${K}.${MappingFrom<U, DecrementDepth[Depth]>}`\n : K | `${K}.${MappingFrom<T[K], DecrementDepth[Depth]>}`;\n }[keyof T & string];\n\n/**\n * Mapping schema that can be set from decorator\n *\n * @DefaultMapping(() => ({\n * '': User,\n * 'book': Book,\n * 'book.author': Author,\n * }))\n * class User { }\n *\n */\nexport type EncodeSchema<T = any> = {\n ''?: Constructor<T>;\n} & {\n [K in MappingFrom<T>]?: Constructor<any> | [Constructor<any>];\n};\n\n/**\n * Mapping schema returned or sended inside http headers\n */\nexport type EncodeSchemaString<T = any> = {\n ''?: string;\n '[]'?: string[]; // returned only for array, cant be set on class mapping\n} & {\n [K in MappingFrom<T>]?: string | string[];\n};\n\ntype Primitive =\n | string\n | number\n | boolean\n | bigint\n | symbol\n | null\n | undefined\n | Date\n | Function;\n//#endregion\n\n//#region decorators\n\nexport function DefaultMapping<T>(mapping?: () => EncodeSchema<T>) {\n return function (target: Constructor<T>) {\n mappingStore.set(target, { mapping });\n };\n}\n\nexport function DefaultModel<T>(defaults?: () => ModelValue<T>) {\n return function (target: Constructor<T>) {\n defaultValueStore.set(target, { defaults });\n };\n}\n\n//#endregion\n\n//#region helpers\n\nconst isPlainObject = (v: any) =>\n !!v && typeof v === 'object' && !Array.isArray(v) && !(v instanceof Date);\n\nconst deepClone = <T>(v: T): T => {\n if (Array.isArray(v)) return v.map(deepClone) as any;\n if (isPlainObject(v)) {\n const out: any = {};\n for (const k of Object.keys(v)) out[k] = deepClone((v as any)[k]);\n return out;\n }\n return v;\n};\n\n/**\n * Merge defaults into target, but only when target value is undefined.\n * (Does not overwrite defined values.)\n */\nconst deepMergeIfUndefined = (target: any, defaults: any) => {\n if (!isPlainObject(defaults)) return;\n\n for (const k of Object.keys(defaults)) {\n const dv = defaults[k];\n const tv = target[k];\n\n if (tv === undefined) {\n target[k] = deepClone(dv);\n continue;\n }\n\n if (isPlainObject(tv) && isPlainObject(dv)) {\n deepMergeIfUndefined(tv, dv);\n }\n }\n};\n\nconst applyDefaultsToInstance = (instance: any, defaults?: any) => {\n if (!defaults) return;\n\n // Path-based defaults (keys containing '.')\n for (const k of Object.keys(defaults)) {\n if (k.includes('.')) {\n const value = defaults[k];\n const current = ___NS__get(instance, k);\n if (current === undefined) {\n ___NS__set(instance, k, deepClone(value));\n }\n }\n }\n\n // Object-based defaults (no dots) -> deep merge (only if undefined)\n const objDefaults: any = {};\n for (const k of Object.keys(defaults)) {\n if (!k.includes('.')) objDefaults[k] = defaults[k];\n }\n deepMergeIfUndefined(instance, objDefaults);\n};\n\nconst getClassNameTokenFromItem = (item: any): string => {\n if (item == null) return '';\n if (item == undefined) return '';\n\n // If already constructor\n if (typeof item === 'function') {\n return CLASS__NS__getName(item) || '';\n }\n\n if (typeof item !== 'object') {\n return '';\n }\n\n // If instance\n const classFn = item.constructor;\n if (typeof classFn === 'function') {\n return CLASS__NS__getName(classFn) || '';\n }\n\n return '';\n};\n\n/**\n * Encode consecutive equal tokens using # run-length.\n *\n * Examples:\n * - ['User','User','Author','User'] -> ['User#2','Author','User']\n * - ['User','User','User','User'] -> ['User#4']\n * - ['User', '', '', '', 'Author', ''] -> ['User', '#3', 'Author', '']\n */\nconst rleEncodeTokens = (tokens: string[]): string[] => {\n const out: string[] = [];\n let i = 0;\n\n while (i < tokens.length) {\n const token = tokens[i];\n let j = i + 1;\n while (j < tokens.length && tokens[j] === token) j++;\n const count = j - i;\n\n if (token === '') {\n // null/undefined run\n out.push(count >= 2 ? `#${count}` : '');\n } else {\n out.push(count >= 2 ? `${token}#${count}` : token);\n }\n\n i = j;\n }\n\n return out;\n};\n\ntype ParsedToken = { name: string; count: number };\n\nconst parseRleToken = (token: string): ParsedToken => {\n // '' => no mapping for 1\n if (token === '') return { name: '', count: 1 };\n\n // '#N' => no mapping for next N\n if (token.startsWith('#')) {\n const count = Number(token.slice(1));\n return { name: '', count: Number.isFinite(count) && count > 0 ? count : 1 };\n }\n\n // 'Name#N' => Name for next N\n const idx = token.lastIndexOf('#');\n if (idx > 0) {\n const name = token.slice(0, idx);\n const count = Number(token.slice(idx + 1));\n if (name && Number.isFinite(count) && count > 0) {\n return { name, count };\n }\n }\n\n // 'Name' => Name for 1\n return { name: token, count: 1 };\n};\n\nconst expandRleTokens = (tokens: string[]): string[] => {\n const out: string[] = [];\n for (const t of tokens) {\n const { name, count } = parseRleToken(t);\n for (let i = 0; i < count; i++) out.push(name);\n }\n return out;\n};\n\n//#endregion\n\n//#region get default value for class instance from decorator data\nexport function getDefaultModel<T>(\n instanceOrClass: T | Constructor<T>,\n): ModelValue<T> | undefined {\n const classFn =\n typeof instanceOrClass === 'function'\n ? instanceOrClass\n : (instanceOrClass as any)?.constructor;\n\n if (classFn === undefined) {\n return undefined;\n }\n\n const getter = defaultValueStore.get(classFn)?.defaults;\n return getter ? (getter() as any) : undefined;\n}\n//#endregion\n\n//#region get mapping from decorator data (may container Entites classes)\nexport function getDefaultMappingSingleObjOrClass<T>(\n instanceOrClass: T | Constructor<T>,\n): EncodeSchema<T> | undefined {\n const classFn =\n typeof instanceOrClass === 'function'\n ? instanceOrClass\n : (instanceOrClass as any)?.constructor;\n\n if (classFn === undefined) {\n return undefined;\n }\n\n const getter = mappingStore.get(classFn)?.mapping;\n return getter ? (getter() as any) : undefined;\n}\n//#endregion\n\n//#region decode mapping (replace entites with names)\n\n/**\n * This will be send in request header to later restore class mapping\n */\nexport function getMappingHeaderString<T = any>(\n instanceOrClass: T | Constructor<T> | (T | Constructor<T>)[],\n): string {\n return JSON.stringify(decodeMappingForHeaderJson(instanceOrClass));\n}\n\n/**\n *\n * @param instanceOrClass class instance or class object\n * OR array of class instancess or class objects\n * @returns Mapping object ready to be JSON.stringify\n */\nexport function decodeMappingForHeaderJson<T>(\n instanceOrClass: T | Constructor<T> | (T | Constructor<T>)[],\n options?: {\n useFirstArrayItemClassNameForAllElements?: boolean;\n },\n): EncodeSchemaString<T> {\n options = options || {};\n // Array encoding (special protocol)\n if (\n Array.isArray(instanceOrClass) &&\n !options.useFirstArrayItemClassNameForAllElements\n ) {\n const tokens = instanceOrClass.map(getClassNameTokenFromItem);\n return { '[]': rleEncodeTokens(tokens) } as any;\n }\n\n if (\n Array.isArray(instanceOrClass) &&\n options.useFirstArrayItemClassNameForAllElements\n ) {\n instanceOrClass = ___NS__first(instanceOrClass);\n }\n\n // Single object / class encoding\n const mapping = getDefaultMappingSingleObjOrClass(instanceOrClass);\n if (!mapping || !mapping['']) {\n const className =\n CLASS__NS__getClassNameFromObjInstanceOrClassFn(instanceOrClass as any) || '';\n\n return {\n '': className,\n };\n }\n\n // Your EncodeSchema is flat (dot-path keys), so we can encode it flat too.\n const mappingObj: any = {};\n\n for (const key of Object.keys(mapping)) {\n const v: any = (mapping as any)[key];\n\n if (key === '') {\n mappingObj[''] = CLASS__NS__getName(v);\n continue;\n }\n\n if (Array.isArray(v) && v.length === 1) {\n const item = v[0];\n mappingObj[key] =\n typeof item === 'function' ? CLASS__NS__getName(item) : String(item);\n continue;\n }\n\n if (typeof v === 'function') {\n mappingObj[key] = CLASS__NS__getName(v);\n continue;\n }\n }\n\n return mappingObj;\n}\n//#endregion\n\n//#region encode mapping from mapping schema and circular metadata\nexport const encodeMapping = <T>(\n input: any,\n schema: EncodeSchema | EncodeSchemaString,\n circular: Circ[] = [],\n): T => {\n const mapped = encodeMappingFn<{}>(input, schema as any, circular);\n JSON10.applyCircularMapping(mapped, circular);\n return mapped as any;\n};\n\nconst encodeMappingFn = <T>(\n input: any,\n schema: EncodeSchema<T> | EncodeSchemaString<T>,\n circular: Circ[],\n parentPath: string = '',\n): T => {\n /**\n * HANDLE ARRAYS IN SCHEMA (header-only protocol)\n *\n * {\n * '[]': ['User#1000'], // input should be in this case array...\n * } // 1000 objects ready to be changed to User class instances\n */\n if (Array.isArray(input) && (schema as any)['[]']) {\n const rle = (schema as any)['[]'] as string[];\n const expanded = expandRleTokens(rle);\n\n const out: any[] = [];\n const max = input.length;\n\n for (let i = 0; i < max; i++) {\n const className = expanded[i] ?? '';\n const raw = input[i];\n\n // keep null/undefined and \"no mapping\" items as-is\n if (!className || raw == null) {\n out.push(raw);\n continue;\n }\n\n const ClassFn = CLASS__NS__getBy(className);\n\n if (!ClassFn) {\n out.push(raw);\n continue;\n }\n\n out.push(\n encodeMappingFn(\n raw,\n { ...(schema as any), '': ClassFn },\n circular,\n parentPath,\n ),\n );\n }\n\n return out as any;\n }\n\n // Normal array (no header array schema) -> map items using same schema\n if (Array.isArray(input)) {\n return input.map(item =>\n encodeMappingFn(item, schema, circular, parentPath),\n ) as any;\n }\n\n if (!input || typeof input !== 'object') {\n return input;\n }\n\n const classNameOrFunctionInSchema: string | Constructor = (schema as any)[''];\n\n let RootClass = (\n ___NS__isString(classNameOrFunctionInSchema) &&\n classNameOrFunctionInSchema !== ''\n ? CLASS__NS__getBy(classNameOrFunctionInSchema)\n : classNameOrFunctionInSchema\n ) as Constructor | undefined;\n\n const classNameOfRootClass =\n CLASS__NS__getClassNameFromObjInstanceOrClassFn(RootClass);\n if (classNameOfRootClass === '' || !classNameOfRootClass) {\n RootClass = undefined;\n }\n\n const instance = RootClass ? new RootClass() : {};\n\n // Apply defaults from decorator (if RootClass is known)\n if (RootClass) {\n const defaults = getDefaultModel(RootClass);\n applyDefaultsToInstance(instance, defaults);\n }\n\n for (const key of Object.keys(input)) {\n const value = (input as any)[key];\n\n const fullPath = parentPath ? `${parentPath}.${key}` : key;\n const rule: any = (schema as any)[fullPath];\n\n if (!rule) {\n // still recurse so nested objects/arrays also get mapped when they have deep rules\n (instance as any)[key] = encodeMappingFn(\n value,\n schema,\n circular,\n fullPath,\n );\n continue;\n }\n\n // Array rule (value is expected to be array)\n if (Array.isArray(rule)) {\n const ItemClass =\n typeof rule[0] === 'string' ? CLASS__NS__getBy(rule[0]) : rule[0];\n\n (instance as any)[key] = Array.isArray(value)\n ? value.map(v =>\n encodeMappingFn(\n v,\n { ...(schema as any), '': ItemClass },\n circular,\n fullPath,\n ),\n )\n : [];\n\n continue;\n }\n\n // Object rule\n const NestedClass = typeof rule === 'string' ? CLASS__NS__getBy(rule) : rule;\n\n (instance as any)[key] = encodeMappingFn(\n value,\n { ...(schema as any), '': NestedClass },\n circular,\n fullPath,\n );\n }\n\n return instance as any;\n};\n\n//#endregion","//#region imports\n/* */ \n\nimport { AxiosHeaders, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport axios from 'axios';\nimport type express from 'express';\n/* */ \nimport { Circ, JSON10 } from 'json10/browser-prod';\nimport { Level, Log__NS__create, Log__NS__disableAllLogs, Log__NS__disableAllLogsPermanetly, Log__NS__enableAllLogs, Log__NS__onlyLevel, Log__NS__onlyModules, Log__NS__setGlobalLevel, Log__NS__settings } from 'ng2-logger/browser-prod';\nimport {\n firstValueFrom,\n from,\n Observable,\n shareReplay,\n Subject,\n switchMap,\n throwError,\n} 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__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, 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, 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/browser-prod';\nimport { CLASS__NS__getBy, CLASS__NS__getClassNameFromObjInstanceOrClassFn, CLASS__NS__getFromObject, CLASS__NS__getMethodsNames, CLASS__NS__getName, CLASS__NS__getNameFromObject, CLASS__NS__NAME, CLASS__NS__setClassName, CLASS__NS__setName } from 'typescript-class-helpers/browser-prod';\n\nimport { encodeMapping, EncodeSchema, EncodeSchemaString } from './new-mapping';\n\n// import { Mapping } from './mapping';\n//#endregion\n\nconst log = Log__NS__create('ng2-rest', Level.WARN, Level.ERROR);\n\nconst listenErrorsSrc = new Subject<BackendError>();\n\n//#region cookie\n\n// TODO do it for nodejs\n\n// import { CookieJar } from 'tough-cookie';\n\n// const jar = new CookieJar();\n\n// const rest = Resource__NS__create('http://my-website.pl', 'api/v3/user/:userId', {\n// cookieJar: jar,\n// });\n\n// await rest.model({ userId: 1 }).get(); // cookies persist across requests\n\n// import type { CookieJar } from 'tough-cookie';\n\n// interface ResourceOptions {\n// // ...\n// cookieJar?: CookieJar;\n// }\n\n// export class CookieJarInterceptor implements TaonAxiosClientInterceptor<any> {\n// constructor(private readonly jar: CookieJar) {}\n\n// intercept({ req, next }: TaonClientMiddlewareInterceptOptions<any>) {\n// return new Observable<AxiosResponse<any>>(subscriber => {\n// const url = req.url || '';\n\n// // 1) attach Cookie header from jar\n// this.jar.getCookieString(url, (err, cookieString) => {\n// if (err) {\n// subscriber.error(err);\n// return;\n// }\n\n// if (cookieString) {\n// req.headers = req.headers || {};\n// // axios headers can be plain object or AxiosHeaders\n// if (req.headers instanceof AxiosHeaders) {\n// req.headers.set('Cookie', cookieString);\n// } else {\n// (req.headers as any)['Cookie'] = cookieString;\n// }\n// }\n\n// // 2) proceed\n// const sub = next.handle(req).subscribe({\n// next: res => {\n// // 3) store Set-Cookie back into jar\n// const setCookie = (res.headers as any)?.['set-cookie'];\n// const cookies: string[] =\n// typeof setCookie === 'string'\n// ? [setCookie]\n// : Array.isArray(setCookie)\n// ? setCookie\n// : [];\n\n// if (!cookies.length) {\n// subscriber.next(res);\n// return;\n// }\n\n// let pending = cookies.length;\n// for (const c of cookies) {\n// this.jar.setCookie(c, url, () => {\n// pending--;\n// if (pending === 0) {\n// subscriber.next(res);\n// }\n// });\n// }\n// },\n// error: e => subscriber.error(e),\n// complete: () => subscriber.complete(),\n// });\n\n// return () => sub.unsubscribe();\n// });\n// });\n// }\n// }\n\nexport class Cookie {\n public static get Instance(): Cookie {\n if (!Cookie.__instance) {\n Cookie.__instance = new Cookie();\n }\n return Cookie.__instance as any;\n }\n\n private static __instance;\n\n private constructor() {}\n\n read(name: string): string {\n if (typeof document === 'undefined') return null;\n var result = new RegExp(\n '(?:^|; )' + encodeURIComponent(name) + '=([^;]*)',\n ).exec(document.cookie);\n return result ? result[1] : null;\n }\n\n write(name: string, value: string, days?: number): void {\n if (typeof document === 'undefined') return null;\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): void {\n if (typeof document === 'undefined') return null;\n this.write(name, '', -1);\n }\n}\n\n//#endregion\n\n//#region get params url\n\n/**\n * Create query params string for url\n *\n * @export\n * @param {UrlParams[]} params\n * @returns {string}\n */\nexport function getParamsUrl(\n params: UrlParams[],\n doNotSerialize: boolean = false,\n): string {\n params = ___NS__cloneDeep(params); // TODO refactor it\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 let parameters: string[] = [];\n let paramObject = <Object>urlparam;\n\n for (let p in paramObject) {\n if (paramObject[p] === void 0) delete paramObject[p];\n if (\n paramObject.hasOwnProperty(p) &&\n typeof p === 'string' &&\n p !== 'regex' &&\n !(paramObject[p] instanceof RegExp)\n ) {\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\n ? <string>urlparam[p]\n : encodeURIComponent(<string>urlparam[p]);\n if (urlparam.regex !== void 0 && urlparam.regex instanceof RegExp) {\n if (!urlparam.regex.test(<string>urlparam[p])) {\n console.warn(\n `Data: ${urlparam[p]} incostistent with regex ${urlparam.regex.source}`,\n );\n }\n }\n parameters.push(`${p}=${urlparam[p]}`);\n }\n }\n\n urlparts.push(parameters.join('&'));\n }\n });\n let join = urlparts.join().trim();\n if (join.trim() === '') return '';\n return `?${urlparts.join('&')}`;\n}\n\n//#endregion\n\n//#region interpolate utils\nexport const regexisPath = /[^\\..]+(\\.[^\\..]+)+/g;\n\n/**\n * Models like books/:id\n */\nconst 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 (\n params === void 0 ||\n (paramIsPath\n ? ___NS__get(params, param) === void 0\n : params[param] === void 0) ||\n param === 'undefined'\n ) {\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(\n new RegExp(`:${param}`, 'g'),\n `${___NS__get(params, param)}`,\n );\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 * let pattern = '/books/:bookid';\n * let url = `/books/34`;\n */\nexport function interpolateParamsToUrl(params: Object, url: string): string {\n const regexInt = /\\[\\[([^\\..]+\\.[^\\..]+)+\\]\\]/g;\n\n url = url\n .split('/')\n .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 })\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 (\n morePramsOnEnd &&\n Array.isArray(morePramsOnEnd) &&\n morePramsOnEnd.length === 1\n ) {\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 // 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 (\n !nestedParams ||\n (Array.isArray(nestedParams) && nestedParams.length === 0)\n )\n return url;\n\n // check alone params\n if (!slash.end) url = `${url}/`;\n let addUndefinedForAlone =\n !/:[a-zA-Z0-9\\.]+\\/$/g.test(url) && /[a-zA-Z0-9]+\\/$/g.test(url);\n\n let replace =\n (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//#endregion\n\n//#region axios intercepstors\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 globalInterceptors: Array<TaonAxiosClientInterceptor<T>>,\n backend: AxiosTaonHttpHandler<T>,\n): AxiosTaonHttpHandler<T> => {\n return globalInterceptors.reduceRight<AxiosTaonHttpHandler<T>>(\n (next, interceptor) => ({\n handle: req => interceptor.intercept({ req, next }),\n }),\n backend,\n );\n};\n\n//#endregion\n\n//#region response type axios\nexport type ResponseTypeAxios =\n | 'blob'\n | 'text'\n | 'json'\n/* */\n/* */\n/* */\n/* */\n/* */\n \n//#endregion\n\n//#region rest headers\nexport type RestHeadersOptions =\n | RestHeaders\n | { [name: string]: string | string[] };\n\nexport class RestHeaders {\n /** @internal header names are lower case */\n protected _headers: Map<string, string[]> = new Map();\n\n /** @internal map lower case names to actual names */\n protected _normalizedNames: Map<string, string> = new Map();\n\n public static from(headers?: RestHeadersOptions): RestHeaders {\n return new RestHeaders(headers || {});\n }\n\n apply(headers?: RestHeadersOptions): RestHeaders {\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[] = (\n Array.isArray(headers[name]) ? headers[name] : [headers[name]]\n ) as any;\n this.delete(name);\n values.forEach(value => this.set(name, value));\n });\n }\n return this;\n }\n\n private constructor(headers?: RestHeadersOptions) {\n this.apply(headers);\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(\n fn: (\n values: string[],\n name: string,\n headers: Map<string, string[]>,\n ) => void,\n ): void {\n this._headers.forEach((values, lcName) =>\n fn(values, this._normalizedNames.get(lcName), this._headers),\n );\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 {\n return this._headers.has(name.toLowerCase());\n }\n\n /**\n * Returns the names of the headers\n */\n keys(): string[] {\n return Array.from(this._normalizedNames.values());\n }\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[][] {\n return Array.from(this._headers.values());\n }\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 // 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}\n//#endregion\n\n//#region handle result source request options\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 /**\n * stack trace / more details about error\n */\n declare details?: string;\n\n /**\n * http status code\n */\n declare status?: number;\n\n /**\n * custom error code from backend\n */\n declare code?: string;\n}\n//#endregion\n\n//#region base body\nexport abstract class 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\nexport class HttpBody<T> extends BaseBody {\n constructor(\n private readonly url: string,\n private readonly method: string,\n private readonly headers: RestHeaders,\n private readonly responseText: string | Blob,\n private readonly options: ResourceOptions,\n private readonly isArray: boolean,\n ) {\n super();\n }\n\n private get entity(): EncodeSchema | EncodeSchemaString {\n if (typeof this.options.responseMapping?.entity === 'string') {\n // const headerWithMapping = headers.get(entity);\n // console.log('header key ',this.options.responseMapping?.entity);\n // console.log(this.headers)\n let entityJSON = this.headers?.getAll(\n this.options.responseMapping?.entity,\n );\n if (!!entityJSON) {\n return JSON.parse(entityJSON.join());\n }\n }\n\n const entityAsResolvableFn = this.options?.responseMapping?.entity as () =>\n | EncodeSchema\n | EncodeSchemaString;\n\n if (typeof entityAsResolvableFn === 'function') {\n const mappingFromFunction = entityAsResolvableFn();\n // console.log({ mappingFromFunction });\n return mappingFromFunction as any;\n }\n\n return this.options.responseMapping?.entity as any;\n }\n\n private get circular(): Circ[] {\n if (typeof this.options.responseMapping?.circular === 'string') {\n // const headerWithMapping = headers.get(circular);\n let circuralJSON = this.headers?.getAll(\n this.options.responseMapping.circular,\n );\n if (!!circuralJSON) {\n return JSON.parse(circuralJSON.join());\n }\n }\n return (this.options.responseMapping?.circular || []) as any;\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\n if (this.entity && typeof this.entity === 'object') {\n const json = this.toJSON(this.responseText, {\n isJSONArray: this.isArray,\n });\n // console.log({ entityMapping: this.entity })\n\n const resEntityMapping = encodeMapping(\n json,\n this.entity,\n this.circular,\n ) as any;\n\n // console.log({ resEntityMapping })\n\n this.displayWarningWhenNotUsingProperAPI(resEntityMapping);\n\n return resEntityMapping;\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 this.displayWarningWhenNotUsingProperAPI(res);\n return res as any;\n }\n\n private displayWarningWhenNotUsingProperAPI(res: any): void {\n if (!this.options.useArrayApiWarning) {\n return;\n }\n if (this.isArray) {\n Helpers__NS__warn(`[${this.method}: ${this.url}]\nYour api response is object, but you are using .array api`);\n } else {\n if (Array.isArray(res)) {\n Helpers__NS__warn(\n `[${this.method}: ${this.url}]\nYour api response is array, but you are using object api instread .arrray.`,\n );\n }\n }\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\nexport class ErrorBody<T = RestErrorResponseWrapper> extends BaseBody {\n constructor(\n private readonly url: string,\n private readonly data: any,\n ) {\n super();\n }\n\n public get json(): T {\n return this.toJSON(this.data, { parsingError: true }) as any;\n }\n\n public get text(): string {\n return this.data;\n }\n}\n\nexport abstract class BaseResponse<T> {\n constructor(\n public readonly responseText: string | Blob,\n public readonly options: ResourceOptions,\n public readonly statusCode: number,\n public readonly headers: RestHeaders,\n public readonly isArray: boolean,\n ) {}\n}\n\n//#endregion\n\n//#region http response\nexport class HttpResponse<T> extends BaseResponse<T> {\n public body: HttpBody<T>;\n\n constructor(\n public readonly url: string,\n public readonly method: CoreModels__NS__HttpMethod,\n public readonly responseText: string | Blob,\n public readonly headers: RestHeaders,\n public readonly statusCode: number,\n public readonly options: ResourceOptions,\n public readonly isArray: boolean,\n ) {\n super(responseText, options, statusCode, headers, isArray);\n\n this.body = new HttpBody(\n url,\n method,\n headers,\n responseText,\n options,\n isArray,\n );\n }\n}\n\nexport class HttpResponseError<ERROR_BODY = object> extends BaseResponse<any> {\n public readonly body: ErrorBody<ERROR_BODY>;\n\n constructor(\n public readonly url: string,\n public readonly method: CoreModels__NS__HttpMethod,\n public readonly responseText: string,\n public readonly options: ResourceOptions,\n public readonly headers: RestHeaders,\n public readonly statusCode: number,\n public readonly isArray: boolean,\n ) {\n super(responseText, options, statusCode, headers, isArray);\n this.body = new ErrorBody<ERROR_BODY>(url, responseText);\n }\n}\n\n//#endregion\n\n//#region resource strategy\nexport type ResourceStrategy = 'http' | 'ipc-electron' | 'js-mock';\n\ninterface ResourceOptions {\n strategy?: ResourceStrategy;\n headers?: RestHeaders;\n useArrayApiWarning?: boolean;\n defaultHeadersProfile?: keyof typeof DEFAULT_HEADERS;\n responseMapping?: {\n /**\n * Use ()=> MyEntity to avoid js circural dependencies.\n * String only when as header key value.\n */\n entity?:\n | (EncodeSchema | EncodeSchemaString)\n | { (): EncodeSchema | EncodeSchemaString }\n | string;\n /**\n * Metadata for remapping circular objects.\n * Generated from json10 packages.\n * String only when as header key value.\n */\n circular?: Circ[] | string;\n };\n}\n//#endregion\n\ntype BackendError = {\n msg?: string;\n stack?: string[];\n data: any;\n};\n\n//#region default headers\nexport const HeaderKeyContentType = 'Content-Type';\nexport const HeaderKeyAccept = 'Accept';\n\nexport const DEFAULT_HEADERS = {\n // JSON (most APIs)\n APPLICATION_JSON: RestHeaders.from({\n [HeaderKeyContentType]: 'application/json',\n [HeaderKeyAccept]: 'application/json',\n }),\n\n // JSON:API (you already have)\n APPLICATION_VND_API_JSON: RestHeaders.from({\n [HeaderKeyContentType]: 'application/vnd.api+json',\n [HeaderKeyAccept]: 'application/vnd.api+json',\n }),\n\n // Form URL encoded (old APIs, OAuth token endpoints)\n APPLICATION_X_WWW_FORM_URLENCODED: RestHeaders.from({\n [HeaderKeyContentType]: 'application/x-www-form-urlencoded',\n [HeaderKeyAccept]: 'application/json',\n }),\n\n // Multipart form-data (file uploads) — note: boundary will be set by FormData in Node\n MULTIPART_FORM_DATA: RestHeaders.from({\n [HeaderKeyContentType]: 'multipart/form-data',\n [HeaderKeyAccept]: 'application/json',\n }),\n\n // Plain text request/response (health checks, simple endpoints)\n TEXT_PLAIN: RestHeaders.from({\n [HeaderKeyContentType]: 'text/plain; charset=utf-8',\n [HeaderKeyAccept]: 'text/plain',\n }),\n\n // Accept anything (downloads, weird backends)\n ACCEPT_ANY: RestHeaders.from({\n [HeaderKeyAccept]: '*/*',\n }),\n\n // Binary download (still just headers; axios responseType controls actual handling)\n OCTET_STREAM: RestHeaders.from({\n [HeaderKeyAccept]: 'application/octet-stream',\n }),\n} as const;\n//#endregion\n\n//#region abstract resource reponse class\nexport abstract class ResourceResponse<\n DATA = any,\n ERROR = any,\n> implements Promise<HttpResponse<DATA> | HttpResponseError<ERROR>> {\n [Symbol.toStringTag] = 'Promise';\n\n private _promise?: Promise<HttpResponse<DATA>>;\n\n private _promiseAbort?: AbortController;\n\n private _observable?: Observable<HttpResponse<DATA>>;\n\n //#region constructor\n constructor(\n protected httpMethodName: CoreModels__NS__HttpMethod,\n protected urlOrigin: string,\n protected urlPathname: string,\n protected options: ResourceOptions,\n protected body: DATA | DATA,\n protected urlParams: UrlParams[],\n protected axiosOptions: Ng2RestAxiosRequestConfig,\n protected isArray: boolean,\n protected headers: RestHeaders,\n protected globalInterceptors: Map<string, TaonAxiosClientInterceptor>,\n protected methodsInterceptors: Map<string, TaonAxiosClientInterceptor>,\n ) {}\n //#endregion\n\n // ✅ NEW: make request cancellable\n protected abstract makeRequest(\n abortSignal: AbortSignal,\n ): Promise<HttpResponse<DATA>>;\n\n /**\n * ✅ Explicit cancel (useful for \"promise style\")\n */\n public cancel(reason?: string): void {\n this._promiseAbort?.abort(reason);\n }\n\n /**\n * Promise API (cannot be auto-cancelled by consumer, so we expose cancel())\n */\n public get promise(): Promise<HttpResponse<DATA> | HttpResponseError<ERROR>> {\n if (!this._promise) {\n this._promiseAbort = new AbortController();\n this._promise = this.makeRequest(this._promiseAbort.signal);\n }\n return this._promise;\n }\n\n then<TResult1 = HttpResponse<DATA>, TResult2 = never>(\n onfulfilled?:\n | ((value: HttpResponse<DATA>) => TResult1 | PromiseLike<TResult1>)\n | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null,\n ): Promise<TResult1 | TResult2> {\n return this.promise.then(onfulfilled as any, onrejected as any);\n }\n\n catch<TResult = never>(\n onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null,\n ): Promise<(HttpResponse<DATA> | HttpResponseError<ERROR>) | TResult> {\n return this.promise.catch(onrejected as any);\n }\n\n finally(\n onfinally?: (() => void) | null,\n ): Promise<HttpResponse<DATA> | HttpResponseError<ERROR>> {\n return this.promise.finally(onfinally as any);\n }\n\n /**\n * ✅ Observable owns AbortController:\n * - subscribe starts request\n * - unsubscribe aborts request\n * - shareReplay shares the same in-flight request among subscribers\n */\n get observable(): Observable<HttpResponse<DATA>> {\n if (!this._observable) {\n this._observable = new Observable<HttpResponse<DATA>>(subscriber => {\n const ac = new AbortController();\n\n this.makeRequest(ac.signal)\n .then(res => {\n if (res instanceof HttpResponseError) {\n subscriber.error(res);\n return;\n }\n subscriber.next(res);\n subscriber.complete();\n })\n .catch(err => subscriber.error(err));\n\n return () => ac.abort('rxjs-unsubscribe');\n }).pipe(shareReplay({ bufferSize: 1, refCount: true }));\n }\n return this._observable;\n }\n\n // -------------------------\n // Internals\n // -------------------------\n\n protected creatUrl(\n params: any,\n doNotSerializeParams: boolean = false,\n ): string {\n const origin = (this.urlOrigin || '').replace(/\\/+$/, '');\n const path = (this.urlPathname || '').replace(/^\\/+/, '');\n const endpoint = `${origin}/${path}`;\n return `${endpoint}${getParamsUrl(params, doNotSerializeParams)}`;\n }\n}\n//#endregion\n\n//#region resource reponse http strategy\n\nclass ResourceResponseHttp<DATA = any, ERROR = any> extends ResourceResponse<\n DATA,\n ERROR\n> {\n protected async makeRequest(\n abortSignal: AbortSignal,\n ): Promise<HttpResponse<DATA>> {\n const url = this.creatUrl(\n this.urlParams,\n !!this.axiosOptions?.doNotSerializeParams,\n );\n const method = this.httpMethodName;\n\n log.d(`Requesting ${method} ${url}`);\n\n const isFormData = CLASS__NS__getNameFromObject(this.body) === 'FormData';\n const formData: FormData = isFormData ? (this.body as any) : void 0;\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n const responseType: ResponseTypeAxios =\n (this.headers.get('responsetypeaxios')?.toString() as any) || 'text';\n\n const headersObj = Object.fromEntries(\n Object.entries(this.headers.toJSON()).map(([k, v]) => [\n k,\n Array.isArray(v) ? v.join(',') : v,\n ]),\n );\n\n const axiosConfig: AxiosRequestConfig = {\n url,\n method,\n data: this.body,\n responseType,\n headers: headersObj,\n signal: abortSignal, // ✅ this is the key\n ...this.axiosOptions,\n };\n\n if (isFormData) {\n axiosConfig.maxBodyLength = Infinity;\n }\n\n try {\n const uri = new URL(url);\n const backend = new AxiosBackendHandler<any>();\n\n const globalInterceptors = Array.from(this.globalInterceptors.values());\n const methodInterceptors = Array.from(this.methodsInterceptors.entries())\n .filter(([key]) =>\n key.endsWith(`-${method?.toUpperCase()}-${uri.pathname}`),\n )\n .map(([_, interceptor]) => interceptor);\n\n const handler = buildInterceptorChain(\n [...globalInterceptors, ...methodInterceptors],\n backend,\n );\n const response = await firstValueFrom(handler.handle(axiosConfig));\n\n return new HttpResponse<DATA>(\n url,\n method,\n response.data,\n RestHeaders.from(response.headers as any),\n response.status,\n this.options,\n this.isArray,\n );\n } catch (catchedError: any) {\n // ✅ treat cancellation separately (nice UX)\n if (\n catchedError?.code === 'ERR_CANCELED' ||\n catchedError?.name === 'CanceledError'\n ) {\n throw new HttpResponseError<ERROR>(\n url,\n method,\n JSON.stringify({ message: 'Request canceled' }),\n this.options,\n RestHeaders.from(),\n 0,\n this.isArray,\n );\n }\n\n //#region handle global error listener for notificaitons\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 listenErrorsSrc.next({\n msg,\n stack,\n data: catchedError.response.data,\n });\n }\n //#endregion\n\n const status = catchedError?.response?.status ?? 0; // ✅ FIX: you used \"status\" before defining it\n const data =\n catchedError?.response?.data ?? catchedError?.message ?? catchedError;\n\n const responseText =\n typeof data === 'string' ? data : JSON.stringify(data);\n\n throw new HttpResponseError<ERROR>(\n url,\n method,\n responseText,\n this.options,\n RestHeaders.from(catchedError?.response?.headers),\n status,\n this.isArray,\n );\n }\n }\n}\n\n//#endregion\n\n//#region models\nexport interface UrlParams {\n [urlModelName: string]: string | number | boolean | RegExp | Object;\n regex?: RegExp;\n}\n[];\n\nexport type Ng2RestAxiosRequestConfig = {\n doNotSerializeParams?: boolean;\n} & AxiosRequestConfig<any>;\n\n//#endregion\n\n//#region resource namespace\n//namespace Resource\n\n export const Resource__NS__globalInterceptors = new Map<\n string,\n TaonAxiosClientInterceptor\n >();\n export const Resource__NS__methodsInterceptors = new Map<\n string,\n TaonAxiosClientInterceptor\n >();\n\n export const Resource__NS__listenErrors = listenErrorsSrc.asObservable();\n\n export const Resource__NS__Cookies = Cookie.Instance;\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n export function Resource__NS__create<MODEL = any>(\n originUrl: string,\n pathnameModel: string,\n resourceOptions?: ResourceOptions,\n ) {\n return {\n model: <INTERPOLATE_ARGS = {}>(\n interpolateParams?: INTERPOLATE_ARGS,\n overrideOptions?:\n | ResourceOptions\n | { (options: ResourceOptions): ResourceOptions },\n ) => {\n const methods = <T>(\n isArray = false,\n ): {\n [method in CoreModels__NS__HttpMethod]: (\n item?: T,\n urlParams?: UrlParams[],\n axiosOptions?: Ng2RestAxiosRequestConfig,\n ) => ResourceResponse<T>;\n } => {\n const methodsObj = {};\n for (const methodName of CoreModels__NS__HttpMethodArr) {\n methodsObj[methodName] = (\n body?: MODEL,\n urlParams?: UrlParams[],\n axiosOptions?: Ng2RestAxiosRequestConfig,\n ) => {\n let localPathname = pathnameModel;\n if (!localPathname.startsWith('/')) {\n localPathname = `/${localPathname}`;\n }\n let localOriginUrl = originUrl;\n if (localOriginUrl.endsWith('/')) {\n localOriginUrl = localOriginUrl.replace(/\\/$/, '');\n }\n\n let localUrl: URL = new URL(`${localOriginUrl}${localPathname}`);\n\n //#region validate pathname model\n const badRestRegEX = new RegExp('((\\/:)[a-z]+)+', 'g');\n const matchArr = localPathname.match(badRestRegEX) || [];\n const badModelsNextToEachOther = matchArr.join();\n const atleas2DoubleDots =\n (badModelsNextToEachOther.match(new RegExp(':', 'g')) || [])\n .length >= 2;\n if (\n atleas2DoubleDots &&\n localPathname.search(badModelsNextToEachOther) !== -1\n ) {\n throw new Error(`\n\nBad rest model: ${localPathname}\n\nDo not create rest models like this: /book/author/:bookid/:authorid\nInstead use nested approach: /book/:bookid/author/:authorid\n `);\n }\n //#endregion\n\n let options: ResourceOptions = resourceOptions;\n options = options || {};\n\n options.responseMapping = options.responseMapping || {};\n\n options = {\n ...options,\n ...(___NS__isFunction(overrideOptions)\n ? overrideOptions(options)\n : overrideOptions || {}),\n };\n\n if (interpolateParams) {\n // console.log({ interpolateParams });\n // interpolate args\n let pathNameInterpolated = interpolateParamsToUrl(\n interpolateParams,\n localUrl.pathname,\n );\n // console.log(\n // `interpolated ${pathNameInterpolated}, url ${url.toString()}`,\n // );\n localUrl = new URL(\n `${localUrl.origin}/${pathNameInterpolated}`,\n );\n }\n\n const headers: RestHeaders = RestHeaders.from(options.headers);\n\n options.strategy = options.strategy || 'http';\n\n options.defaultHeadersProfile =\n options.defaultHeadersProfile || 'APPLICATION_JSON';\n\n if (options.defaultHeadersProfile) {\n DEFAULT_HEADERS[options.defaultHeadersProfile].forEach(\n (values, name) => {\n values.forEach(headerValue =>\n headers.set(name, headerValue),\n );\n },\n );\n }\n\n if (options.strategy === 'http') {\n return new ResourceResponseHttp(\n methodName,\n localUrl.origin,\n localUrl.pathname,\n options,\n body,\n urlParams,\n axiosOptions,\n isArray,\n headers,\n Resource__NS__globalInterceptors,\n Resource__NS__methodsInterceptors,\n );\n } else if (options.strategy === 'ipc-electron') {\n // TODO later\n } else if (options.strategy === 'js-mock') {\n // TODO later\n }\n };\n }\n return methodsObj as any;\n };\n\n const methodsRes = methods<MODEL>();\n const methodsArrayRes = methods<MODEL[]>(true);\n\n const res = {\n get array() {\n return methodsArrayRes;\n },\n ...methodsRes,\n };\n return res;\n },\n };\n }\n\n//end of namespace Resource\n\n//#endregion\n\n//#region exmaple usage\n/**\n * EXample useage\n */\n\nclass ExampleBook {\n title: string;\n}\n\nasync function example() {\n const rest = Resource__NS__create<ExampleBook>(\n 'http://my-website.pl',\n 'api/v3/user/:userId',\n {\n responseMapping: {\n entity: () => ({ '': ExampleBook }),\n },\n },\n );\n\n const response = await rest.model({ userId: 1 }).get();\n\n response; // type of response should be HttpResponse\n\n const responseObservable = rest\n .model({ userId: 1 })\n .array.post([new ExampleBook()], [{ 'location-id': 123 }]).observable;\n\n const responseObservableOnlyONe = rest\n .model({ userId: 1 })\n .post(new ExampleBook(), [{ 'location-id': 123 }]).observable;\n\n responseObservable.subscribe(data => {\n data; // HttpResponse<ExampleBook>\n });\n}\n//#endregion","export * from './ng2-rest';\nexport * from './new-mapping';\n/* */ ","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng2-rest-browser-prod.mjs","sources":["../../../tmp-libs-for-dist-prod/ng2-rest/projects/ng2-rest/src/lib/new-mapping.ts","../../../tmp-libs-for-dist-prod/ng2-rest/projects/ng2-rest/src/lib/ng2-rest.ts","../../../tmp-libs-for-dist-prod/ng2-rest/projects/ng2-rest/src/lib/index.ts","../../../tmp-libs-for-dist-prod/ng2-rest/projects/ng2-rest/src/ng2-rest-browser-prod.ts"],"sourcesContent":["//#region imports\nimport { Circ, JSON10 } from 'json10/browser-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, 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, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__drawLine, 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__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__sendNotification } from 'tnp-core/browser-prod';\nimport { CLASS__NS__getBy, CLASS__NS__getClassNameFromObjInstanceOrClassFn, CLASS__NS__getFromObject, CLASS__NS__getMethodsNames, CLASS__NS__getName, CLASS__NS__getNameFromObject, CLASS__NS__NAME, CLASS__NS__setClassName, CLASS__NS__setName } from 'typescript-class-helpers/browser-prod';\n//#endregion\n\n//#region constatns\nconst mappingStore = new WeakMap<\n Function,\n { mapping?: () => EncodeSchema<any> }\n>();\n\nconst defaultValueStore = new WeakMap<\n Function,\n { defaults?: () => ModelValue<any> }\n>();\n//#endregion\n\n//#region models\ntype DeepPartial<T> = {\n [K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K];\n};\n\nexport type ModelValue<T> =\n | DeepPartial<T>\n | Partial<Record<MappingFrom<T>, any>>;\n\ntype Constructor<T = any> = new (...args: any[]) => T;\n\ntype DecrementDepth = [never, 0, 1, 2, 3, 4, 5];\n\ntype MappingFrom<T, Depth extends number = 5> = [Depth] extends [never]\n ? never\n : {\n [K in keyof T & string]: T[K] extends Primitive\n ? K\n : T[K] extends Array<infer U>\n ? K | `${K}.${MappingFrom<U, DecrementDepth[Depth]>}`\n : K | `${K}.${MappingFrom<T[K], DecrementDepth[Depth]>}`;\n }[keyof T & string];\n\n/**\n * Mapping schema that can be set from decorator\n *\n * @DefaultMapping(() => ({\n * '': User,\n * 'book': Book,\n * 'book.author': Author,\n * }))\n * class User { }\n *\n */\nexport type EncodeSchema<T = any> = {\n ''?: Constructor<T>;\n} & {\n [K in MappingFrom<T>]?: Constructor<any> | [Constructor<any>];\n};\n\n/**\n * Mapping schema returned or sended inside http headers\n */\nexport type EncodeSchemaString<T = any> = {\n ''?: string;\n '[]'?: string[]; // returned only for array, cant be set on class mapping\n} & {\n [K in MappingFrom<T>]?: string | string[];\n};\n\ntype Primitive =\n | string\n | number\n | boolean\n | bigint\n | symbol\n | null\n | undefined\n | Date\n | Function;\n//#endregion\n\n//#region decorators\n\nexport function DefaultMapping<T>(mapping?: () => EncodeSchema<T>) {\n return function (target: Constructor<T>) {\n mappingStore.set(target, { mapping });\n };\n}\n\nexport function DefaultModel<T>(defaults?: () => ModelValue<T>) {\n return function (target: Constructor<T>) {\n defaultValueStore.set(target, { defaults });\n };\n}\n\n//#endregion\n\n//#region helpers\n\nconst isPlainObject = (v: any) =>\n !!v && typeof v === 'object' && !Array.isArray(v) && !(v instanceof Date);\n\nconst deepClone = <T>(v: T): T => {\n if (Array.isArray(v)) return v.map(deepClone) as any;\n if (isPlainObject(v)) {\n const out: any = {};\n for (const k of Object.keys(v)) out[k] = deepClone((v as any)[k]);\n return out;\n }\n return v;\n};\n\n/**\n * Merge defaults into target, but only when target value is undefined.\n * (Does not overwrite defined values.)\n */\nconst deepMergeIfUndefined = (target: any, defaults: any) => {\n if (!isPlainObject(defaults)) return;\n\n for (const k of Object.keys(defaults)) {\n const dv = defaults[k];\n const tv = target[k];\n\n if (tv === undefined) {\n target[k] = deepClone(dv);\n continue;\n }\n\n if (isPlainObject(tv) && isPlainObject(dv)) {\n deepMergeIfUndefined(tv, dv);\n }\n }\n};\n\nconst applyDefaultsToInstance = (instance: any, defaults?: any) => {\n if (!defaults) return;\n\n // Path-based defaults (keys containing '.')\n for (const k of Object.keys(defaults)) {\n if (k.includes('.')) {\n const value = defaults[k];\n const current = ___NS__get(instance, k);\n if (current === undefined) {\n ___NS__set(instance, k, deepClone(value));\n }\n }\n }\n\n // Object-based defaults (no dots) -> deep merge (only if undefined)\n const objDefaults: any = {};\n for (const k of Object.keys(defaults)) {\n if (!k.includes('.')) objDefaults[k] = defaults[k];\n }\n deepMergeIfUndefined(instance, objDefaults);\n};\n\nconst getClassNameTokenFromItem = (item: any): string => {\n if (item == null) return '';\n if (item == undefined) return '';\n\n // If already constructor\n if (typeof item === 'function') {\n return CLASS__NS__getName(item) || '';\n }\n\n if (typeof item !== 'object') {\n return '';\n }\n\n // If instance\n const classFn = item.constructor;\n if (typeof classFn === 'function') {\n return CLASS__NS__getName(classFn) || '';\n }\n\n return '';\n};\n\n/**\n * Encode consecutive equal tokens using # run-length.\n *\n * Examples:\n * - ['User','User','Author','User'] -> ['User#2','Author','User']\n * - ['User','User','User','User'] -> ['User#4']\n * - ['User', '', '', '', 'Author', ''] -> ['User', '#3', 'Author', '']\n */\nconst rleEncodeTokens = (tokens: string[]): string[] => {\n const out: string[] = [];\n let i = 0;\n\n while (i < tokens.length) {\n const token = tokens[i];\n let j = i + 1;\n while (j < tokens.length && tokens[j] === token) j++;\n const count = j - i;\n\n if (token === '') {\n // null/undefined run\n out.push(count >= 2 ? `#${count}` : '');\n } else {\n out.push(count >= 2 ? `${token}#${count}` : token);\n }\n\n i = j;\n }\n\n return out;\n};\n\ntype ParsedToken = { name: string; count: number };\n\nconst parseRleToken = (token: string): ParsedToken => {\n // '' => no mapping for 1\n if (token === '') return { name: '', count: 1 };\n\n // '#N' => no mapping for next N\n if (token.startsWith('#')) {\n const count = Number(token.slice(1));\n return { name: '', count: Number.isFinite(count) && count > 0 ? count : 1 };\n }\n\n // 'Name#N' => Name for next N\n const idx = token.lastIndexOf('#');\n if (idx > 0) {\n const name = token.slice(0, idx);\n const count = Number(token.slice(idx + 1));\n if (name && Number.isFinite(count) && count > 0) {\n return { name, count };\n }\n }\n\n // 'Name' => Name for 1\n return { name: token, count: 1 };\n};\n\nconst expandRleTokens = (tokens: string[]): string[] => {\n const out: string[] = [];\n for (const t of tokens) {\n const { name, count } = parseRleToken(t);\n for (let i = 0; i < count; i++) out.push(name);\n }\n return out;\n};\n\n//#endregion\n\n//#region get default value for class instance from decorator data\nexport function getDefaultModel<T>(\n instanceOrClass: T | Constructor<T>,\n): ModelValue<T> | undefined {\n const classFn =\n typeof instanceOrClass === 'function'\n ? instanceOrClass\n : (instanceOrClass as any)?.constructor;\n\n if (classFn === undefined) {\n return undefined;\n }\n\n const getter = defaultValueStore.get(classFn)?.defaults;\n return getter ? (getter() as any) : undefined;\n}\n//#endregion\n\n//#region get mapping from decorator data (may container Entites classes)\nexport function getDefaultMappingSingleObjOrClass<T>(\n instanceOrClass: T | Constructor<T>,\n): EncodeSchema<T> | undefined {\n const classFn =\n typeof instanceOrClass === 'function'\n ? instanceOrClass\n : (instanceOrClass as any)?.constructor;\n\n if (classFn === undefined) {\n return undefined;\n }\n\n const getter = mappingStore.get(classFn)?.mapping;\n return getter ? (getter() as any) : undefined;\n}\n//#endregion\n\n//#region decode mapping (replace entites with names)\n\n/**\n * This will be send in request header to later restore class mapping\n */\nexport function getMappingHeaderString<T = any>(\n instanceOrClass: T | Constructor<T> | (T | Constructor<T>)[],\n): string {\n return JSON.stringify(decodeMappingForHeaderJson(instanceOrClass));\n}\n\n/**\n *\n * @param instanceOrClass class instance or class object\n * OR array of class instancess or class objects\n * @returns Mapping object ready to be JSON.stringify\n */\nexport function decodeMappingForHeaderJson<T>(\n instanceOrClass: T | Constructor<T> | (T | Constructor<T>)[],\n options?: {\n useFirstArrayItemClassNameForAllElements?: boolean;\n },\n): EncodeSchemaString<T> {\n options = options || {};\n // Array encoding (special protocol)\n if (\n Array.isArray(instanceOrClass) &&\n !options.useFirstArrayItemClassNameForAllElements\n ) {\n const tokens = instanceOrClass.map(getClassNameTokenFromItem);\n return { '[]': rleEncodeTokens(tokens) } as any;\n }\n\n if (\n Array.isArray(instanceOrClass) &&\n options.useFirstArrayItemClassNameForAllElements\n ) {\n instanceOrClass = ___NS__first(instanceOrClass);\n }\n\n // Single object / class encoding\n const mapping = getDefaultMappingSingleObjOrClass(instanceOrClass);\n if (!mapping || !mapping['']) {\n const className =\n CLASS__NS__getClassNameFromObjInstanceOrClassFn(instanceOrClass as any) || '';\n\n return {\n '': className,\n };\n }\n\n // Your EncodeSchema is flat (dot-path keys), so we can encode it flat too.\n const mappingObj: any = {};\n\n for (const key of Object.keys(mapping)) {\n const v: any = (mapping as any)[key];\n\n if (key === '') {\n mappingObj[''] = CLASS__NS__getName(v);\n continue;\n }\n\n if (Array.isArray(v) && v.length === 1) {\n const item = v[0];\n mappingObj[key] =\n typeof item === 'function' ? CLASS__NS__getName(item) : String(item);\n continue;\n }\n\n if (typeof v === 'function') {\n mappingObj[key] = CLASS__NS__getName(v);\n continue;\n }\n }\n\n return mappingObj;\n}\n//#endregion\n\n//#region encode mapping from mapping schema and circular metadata\nexport const encodeMapping = <T>(\n input: any,\n schema: EncodeSchema | EncodeSchemaString,\n circular: Circ[] = [],\n): T => {\n const mapped = encodeMappingFn<{}>(input, schema as any, circular);\n JSON10.applyCircularMapping(mapped, circular);\n return mapped as any;\n};\n\nconst encodeMappingFn = <T>(\n input: any,\n schema: EncodeSchema<T> | EncodeSchemaString<T>,\n circular: Circ[],\n parentPath: string = '',\n): T => {\n /**\n * HANDLE ARRAYS IN SCHEMA (header-only protocol)\n *\n * {\n * '[]': ['User#1000'], // input should be in this case array...\n * } // 1000 objects ready to be changed to User class instances\n */\n if (Array.isArray(input) && (schema as any)['[]']) {\n const rle = (schema as any)['[]'] as string[];\n const expanded = expandRleTokens(rle);\n\n const out: any[] = [];\n const max = input.length;\n\n for (let i = 0; i < max; i++) {\n const className = expanded[i] ?? '';\n const raw = input[i];\n\n // keep null/undefined and \"no mapping\" items as-is\n if (!className || raw == null) {\n out.push(raw);\n continue;\n }\n\n const ClassFn = CLASS__NS__getBy(className);\n\n if (!ClassFn) {\n out.push(raw);\n continue;\n }\n\n out.push(\n encodeMappingFn(\n raw,\n { ...(schema as any), '': ClassFn },\n circular,\n parentPath,\n ),\n );\n }\n\n return out as any;\n }\n\n // Normal array (no header array schema) -> map items using same schema\n if (Array.isArray(input)) {\n return input.map(item =>\n encodeMappingFn(item, schema, circular, parentPath),\n ) as any;\n }\n\n if (!input || typeof input !== 'object') {\n return input;\n }\n\n const classNameOrFunctionInSchema: string | Constructor = (schema as any)[''];\n\n let RootClass = (\n ___NS__isString(classNameOrFunctionInSchema) &&\n classNameOrFunctionInSchema !== ''\n ? CLASS__NS__getBy(classNameOrFunctionInSchema)\n : classNameOrFunctionInSchema\n ) as Constructor | undefined;\n\n const classNameOfRootClass =\n CLASS__NS__getClassNameFromObjInstanceOrClassFn(RootClass);\n if (classNameOfRootClass === '' || !classNameOfRootClass) {\n RootClass = undefined;\n }\n\n const instance = RootClass ? new RootClass() : {};\n\n // Apply defaults from decorator (if RootClass is known)\n if (RootClass) {\n const defaults = getDefaultModel(RootClass);\n applyDefaultsToInstance(instance, defaults);\n }\n\n for (const key of Object.keys(input)) {\n const value = (input as any)[key];\n\n const fullPath = parentPath ? `${parentPath}.${key}` : key;\n const rule: any = (schema as any)[fullPath];\n\n if (!rule) {\n // still recurse so nested objects/arrays also get mapped when they have deep rules\n (instance as any)[key] = encodeMappingFn(\n value,\n schema,\n circular,\n fullPath,\n );\n continue;\n }\n\n // Array rule (value is expected to be array)\n if (Array.isArray(rule)) {\n const ItemClass =\n typeof rule[0] === 'string' ? CLASS__NS__getBy(rule[0]) : rule[0];\n\n (instance as any)[key] = Array.isArray(value)\n ? value.map(v =>\n encodeMappingFn(\n v,\n { ...(schema as any), '': ItemClass },\n circular,\n fullPath,\n ),\n )\n : [];\n\n continue;\n }\n\n // Object rule\n const NestedClass = typeof rule === 'string' ? CLASS__NS__getBy(rule) : rule;\n\n (instance as any)[key] = encodeMappingFn(\n value,\n { ...(schema as any), '': NestedClass },\n circular,\n fullPath,\n );\n }\n\n return instance as any;\n};\n\n//#endregion","//#region imports\n/* */ \n\nimport { AxiosHeaders, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport axios from 'axios';\nimport type express from 'express';\n/* */ \nimport { Circ, JSON10 } from 'json10/browser-prod';\nimport { Level, Log__NS__create, Log__NS__disableAllLogs, Log__NS__disableAllLogsPermanetly, Log__NS__enableAllLogs, Log__NS__onlyLevel, Log__NS__onlyModules, Log__NS__setGlobalLevel, Log__NS__settings } from 'ng2-logger/browser-prod';\nimport {\n firstValueFrom,\n from,\n Observable,\n shareReplay,\n Subject,\n switchMap,\n throwError,\n} 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__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, 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, 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/browser-prod';\nimport { CLASS__NS__getBy, CLASS__NS__getClassNameFromObjInstanceOrClassFn, CLASS__NS__getFromObject, CLASS__NS__getMethodsNames, CLASS__NS__getName, CLASS__NS__getNameFromObject, CLASS__NS__NAME, CLASS__NS__setClassName, CLASS__NS__setName } from 'typescript-class-helpers/browser-prod';\n\nimport { encodeMapping, EncodeSchema, EncodeSchemaString } from './new-mapping';\n\n// import { Mapping } from './mapping';\n//#endregion\n\nconst log = Log__NS__create('ng2-rest', Level.WARN, Level.ERROR);\n\nconst listenErrorsSrc = new Subject<BackendError>();\n\n//#region cookie\n\n// TODO do it for nodejs\n\n// import { CookieJar } from 'tough-cookie';\n\n// const jar = new CookieJar();\n\n// const rest = Resource__NS__create('http://my-website.pl', 'api/v3/user/:userId', {\n// cookieJar: jar,\n// });\n\n// await rest.model({ userId: 1 }).get(); // cookies persist across requests\n\n// import type { CookieJar } from 'tough-cookie';\n\n// interface ResourceOptions {\n// // ...\n// cookieJar?: CookieJar;\n// }\n\n// export class CookieJarInterceptor implements TaonAxiosClientInterceptor<any> {\n// constructor(private readonly jar: CookieJar) {}\n\n// intercept({ req, next }: TaonClientMiddlewareInterceptOptions<any>) {\n// return new Observable<AxiosResponse<any>>(subscriber => {\n// const url = req.url || '';\n\n// // 1) attach Cookie header from jar\n// this.jar.getCookieString(url, (err, cookieString) => {\n// if (err) {\n// subscriber.error(err);\n// return;\n// }\n\n// if (cookieString) {\n// req.headers = req.headers || {};\n// // axios headers can be plain object or AxiosHeaders\n// if (req.headers instanceof AxiosHeaders) {\n// req.headers.set('Cookie', cookieString);\n// } else {\n// (req.headers as any)['Cookie'] = cookieString;\n// }\n// }\n\n// // 2) proceed\n// const sub = next.handle(req).subscribe({\n// next: res => {\n// // 3) store Set-Cookie back into jar\n// const setCookie = (res.headers as any)?.['set-cookie'];\n// const cookies: string[] =\n// typeof setCookie === 'string'\n// ? [setCookie]\n// : Array.isArray(setCookie)\n// ? setCookie\n// : [];\n\n// if (!cookies.length) {\n// subscriber.next(res);\n// return;\n// }\n\n// let pending = cookies.length;\n// for (const c of cookies) {\n// this.jar.setCookie(c, url, () => {\n// pending--;\n// if (pending === 0) {\n// subscriber.next(res);\n// }\n// });\n// }\n// },\n// error: e => subscriber.error(e),\n// complete: () => subscriber.complete(),\n// });\n\n// return () => sub.unsubscribe();\n// });\n// });\n// }\n// }\n\nexport class Cookie {\n public static get Instance(): Cookie {\n if (!Cookie.__instance) {\n Cookie.__instance = new Cookie();\n }\n return Cookie.__instance as any;\n }\n\n private static __instance;\n\n private constructor() {}\n\n read(name: string): string {\n if (typeof document === 'undefined') return null;\n var result = new RegExp(\n '(?:^|; )' + encodeURIComponent(name) + '=([^;]*)',\n ).exec(document.cookie);\n return result ? result[1] : null;\n }\n\n write(name: string, value: string, days?: number): void {\n if (typeof document === 'undefined') return null;\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): void {\n if (typeof document === 'undefined') return null;\n this.write(name, '', -1);\n }\n}\n\n//#endregion\n\n//#region get params url\n\n/**\n * Create query params string for url\n *\n * @export\n * @param {UrlParams[]} params\n * @returns {string}\n */\nexport function getParamsUrl(\n params: UrlParams[],\n doNotSerialize: boolean = false,\n): string {\n params = ___NS__cloneDeep(params); // TODO refactor it\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 let parameters: string[] = [];\n let paramObject = <Object>urlparam;\n\n for (let p in paramObject) {\n if (paramObject[p] === void 0) delete paramObject[p];\n if (\n paramObject.hasOwnProperty(p) &&\n typeof p === 'string' &&\n p !== 'regex' &&\n !(paramObject[p] instanceof RegExp)\n ) {\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\n ? <string>urlparam[p]\n : encodeURIComponent(<string>urlparam[p]);\n if (urlparam.regex !== void 0 && urlparam.regex instanceof RegExp) {\n if (!urlparam.regex.test(<string>urlparam[p])) {\n console.warn(\n `Data: ${urlparam[p]} incostistent with regex ${urlparam.regex.source}`,\n );\n }\n }\n parameters.push(`${p}=${urlparam[p]}`);\n }\n }\n\n urlparts.push(parameters.join('&'));\n }\n });\n let join = urlparts.join().trim();\n if (join.trim() === '') return '';\n return `?${urlparts.join('&')}`;\n}\n\n//#endregion\n\n//#region interpolate utils\nexport const regexisPath = /[^\\..]+(\\.[^\\..]+)+/g;\n\n/**\n * Models like books/:id\n */\nconst 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 (\n params === void 0 ||\n (paramIsPath\n ? ___NS__get(params, param) === void 0\n : params[param] === void 0) ||\n param === 'undefined'\n ) {\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(\n new RegExp(`:${param}`, 'g'),\n `${___NS__get(params, param)}`,\n );\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 * let pattern = '/books/:bookid';\n * let url = `/books/34`;\n */\nexport function interpolateParamsToUrl(params: Object, url: string): string {\n const regexInt = /\\[\\[([^\\..]+\\.[^\\..]+)+\\]\\]/g;\n\n url = url\n .split('/')\n .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 })\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 (\n morePramsOnEnd &&\n Array.isArray(morePramsOnEnd) &&\n morePramsOnEnd.length === 1\n ) {\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 // 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 (\n !nestedParams ||\n (Array.isArray(nestedParams) && nestedParams.length === 0)\n )\n return url;\n\n // check alone params\n if (!slash.end) url = `${url}/`;\n let addUndefinedForAlone =\n !/:[a-zA-Z0-9\\.]+\\/$/g.test(url) && /[a-zA-Z0-9]+\\/$/g.test(url);\n\n let replace =\n (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//#endregion\n\n//#region axios intercepstors\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 globalInterceptors: Array<TaonAxiosClientInterceptor<T>>,\n backend: AxiosTaonHttpHandler<T>,\n): AxiosTaonHttpHandler<T> => {\n return globalInterceptors.reduceRight<AxiosTaonHttpHandler<T>>(\n (next, interceptor) => ({\n handle: req => interceptor.intercept({ req, next }),\n }),\n backend,\n );\n};\n\n//#endregion\n\n//#region response type axios\nexport type ResponseTypeAxios =\n | 'blob'\n | 'text'\n | 'json'\n/* */\n/* */\n/* */\n/* */\n/* */\n \n//#endregion\n\n//#region rest headers\nexport type RestHeadersOptions =\n | RestHeaders\n | { [name: string]: string | string[] };\n\nexport class RestHeaders {\n /** @internal header names are lower case */\n protected _headers: Map<string, string[]> = new Map();\n\n /** @internal map lower case names to actual names */\n protected _normalizedNames: Map<string, string> = new Map();\n\n public static from(headers?: RestHeadersOptions): RestHeaders {\n return new RestHeaders(headers || {});\n }\n\n apply(headers?: RestHeadersOptions): RestHeaders {\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[] = (\n Array.isArray(headers[name]) ? headers[name] : [headers[name]]\n ) as any;\n this.delete(name);\n values.forEach(value => this.set(name, value));\n });\n }\n return this;\n }\n\n private constructor(headers?: RestHeadersOptions) {\n this.apply(headers);\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(\n fn: (\n values: string[],\n name: string,\n headers: Map<string, string[]>,\n ) => void,\n ): void {\n this._headers.forEach((values, lcName) =>\n fn(values, this._normalizedNames.get(lcName), this._headers),\n );\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 {\n return this._headers.has(name.toLowerCase());\n }\n\n /**\n * Returns the names of the headers\n */\n keys(): string[] {\n return Array.from(this._normalizedNames.values());\n }\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[][] {\n return Array.from(this._headers.values());\n }\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 // 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}\n//#endregion\n\n//#region handle result source request options\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 /**\n * stack trace / more details about error\n */\n declare details?: string;\n\n /**\n * http status code\n */\n declare status?: number;\n\n /**\n * custom error code from backend\n */\n declare code?: string;\n}\n//#endregion\n\n//#region base body\nexport abstract class 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\nexport class HttpBody<T> extends BaseBody {\n constructor(\n private readonly url: string,\n private readonly method: string,\n private readonly headers: RestHeaders,\n private readonly responseText: string | Blob,\n private readonly options: ResourceOptions,\n private readonly isArray: boolean,\n ) {\n super();\n }\n\n private get entity(): EncodeSchema | EncodeSchemaString {\n if (typeof this.options.responseMapping?.entity === 'string') {\n // const headerWithMapping = headers.get(entity);\n // console.log('header key ',this.options.responseMapping?.entity);\n // console.log(this.headers)\n let entityJSON = this.headers?.getAll(\n this.options.responseMapping?.entity,\n );\n if (!!entityJSON) {\n return JSON.parse(entityJSON.join());\n }\n }\n\n const entityAsResolvableFn = this.options?.responseMapping?.entity as () =>\n | EncodeSchema\n | EncodeSchemaString;\n\n if (typeof entityAsResolvableFn === 'function') {\n const mappingFromFunction = entityAsResolvableFn();\n // console.log({ mappingFromFunction });\n return mappingFromFunction as any;\n }\n\n return this.options.responseMapping?.entity as any;\n }\n\n private get circular(): Circ[] {\n if (typeof this.options.responseMapping?.circular === 'string') {\n // const headerWithMapping = headers.get(circular);\n let circuralJSON = this.headers?.getAll(\n this.options.responseMapping.circular,\n );\n if (!!circuralJSON) {\n return JSON.parse(circuralJSON.join());\n }\n }\n return (this.options.responseMapping?.circular || []) as any;\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\n if (this.entity && typeof this.entity === 'object') {\n const json = this.toJSON(this.responseText, {\n isJSONArray: this.isArray,\n });\n // console.log({ entityMapping: this.entity })\n\n const resEntityMapping = encodeMapping(\n json,\n this.entity,\n this.circular,\n ) as any;\n\n // console.log({ resEntityMapping })\n\n this.displayWarningWhenNotUsingProperAPI(resEntityMapping);\n\n return resEntityMapping;\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 this.displayWarningWhenNotUsingProperAPI(res);\n return res as any;\n }\n\n private displayWarningWhenNotUsingProperAPI(res: any): void {\n if (!this.options.useArrayApiWarning) {\n return;\n }\n if (this.isArray) {\n Helpers__NS__warn(`[${this.method}: ${this.url}]\nYour api response is object, but you are using .array api`);\n } else {\n if (Array.isArray(res)) {\n Helpers__NS__warn(\n `[${this.method}: ${this.url}]\nYour api response is array, but you are using object api instread .arrray.`,\n );\n }\n }\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\nexport class ErrorBody<T = RestErrorResponseWrapper> extends BaseBody {\n constructor(\n private readonly url: string,\n private readonly data: any,\n ) {\n super();\n }\n\n public get json(): T {\n return this.toJSON(this.data, { parsingError: true }) as any;\n }\n\n public get text(): string {\n return this.data;\n }\n}\n\nexport abstract class BaseResponse<T> {\n constructor(\n public readonly responseText: string | Blob,\n public readonly options: ResourceOptions,\n public readonly statusCode: number,\n public readonly headers: RestHeaders,\n public readonly isArray: boolean,\n ) {}\n}\n\n//#endregion\n\n//#region http response\nexport class HttpResponse<T> extends BaseResponse<T> {\n public body: HttpBody<T>;\n\n constructor(\n public readonly url: string,\n public readonly method: CoreModels__NS__HttpMethod,\n public readonly responseText: string | Blob,\n public readonly headers: RestHeaders,\n public readonly statusCode: number,\n public readonly options: ResourceOptions,\n public readonly isArray: boolean,\n ) {\n super(responseText, options, statusCode, headers, isArray);\n\n this.body = new HttpBody(\n url,\n method,\n headers,\n responseText,\n options,\n isArray,\n );\n }\n}\n\nexport class HttpResponseError<ERROR_BODY = object> extends BaseResponse<any> {\n public readonly body: ErrorBody<ERROR_BODY>;\n\n constructor(\n public readonly url: string,\n public readonly method: CoreModels__NS__HttpMethod,\n public readonly responseText: string,\n public readonly options: ResourceOptions,\n public readonly headers: RestHeaders,\n public readonly statusCode: number,\n public readonly isArray: boolean,\n ) {\n super(responseText, options, statusCode, headers, isArray);\n this.body = new ErrorBody<ERROR_BODY>(url, responseText);\n }\n}\n\n//#endregion\n\n//#region resource strategy\nexport type ResourceStrategy = 'http' | 'ipc-electron' | 'js-mock';\n\ninterface ResourceOptions {\n strategy?: ResourceStrategy;\n headers?: RestHeaders;\n useArrayApiWarning?: boolean;\n defaultHeadersProfile?: keyof typeof DEFAULT_HEADERS;\n responseMapping?: {\n /**\n * Use ()=> MyEntity to avoid js circural dependencies.\n * String only when as header key value.\n */\n entity?:\n | (EncodeSchema | EncodeSchemaString)\n | { (): EncodeSchema | EncodeSchemaString }\n | string;\n /**\n * Metadata for remapping circular objects.\n * Generated from json10 packages.\n * String only when as header key value.\n */\n circular?: Circ[] | string;\n };\n}\n//#endregion\n\ntype BackendError = {\n msg?: string;\n stack?: string[];\n data: any;\n};\n\n//#region default headers\nexport const HeaderKeyContentType = 'Content-Type';\nexport const HeaderKeyAccept = 'Accept';\n\nexport const DEFAULT_HEADERS = {\n // JSON (most APIs)\n APPLICATION_JSON: RestHeaders.from({\n [HeaderKeyContentType]: 'application/json',\n [HeaderKeyAccept]: 'application/json',\n }),\n\n // JSON:API (you already have)\n APPLICATION_VND_API_JSON: RestHeaders.from({\n [HeaderKeyContentType]: 'application/vnd.api+json',\n [HeaderKeyAccept]: 'application/vnd.api+json',\n }),\n\n // Form URL encoded (old APIs, OAuth token endpoints)\n APPLICATION_X_WWW_FORM_URLENCODED: RestHeaders.from({\n [HeaderKeyContentType]: 'application/x-www-form-urlencoded',\n [HeaderKeyAccept]: 'application/json',\n }),\n\n // Multipart form-data (file uploads) — note: boundary will be set by FormData in Node\n MULTIPART_FORM_DATA: RestHeaders.from({\n [HeaderKeyContentType]: 'multipart/form-data',\n [HeaderKeyAccept]: 'application/json',\n }),\n\n // Plain text request/response (health checks, simple endpoints)\n TEXT_PLAIN: RestHeaders.from({\n [HeaderKeyContentType]: 'text/plain; charset=utf-8',\n [HeaderKeyAccept]: 'text/plain',\n }),\n\n // Accept anything (downloads, weird backends)\n ACCEPT_ANY: RestHeaders.from({\n [HeaderKeyAccept]: '*/*',\n }),\n\n // Binary download (still just headers; axios responseType controls actual handling)\n OCTET_STREAM: RestHeaders.from({\n [HeaderKeyAccept]: 'application/octet-stream',\n }),\n} as const;\n//#endregion\n\n//#region abstract resource reponse class\nexport abstract class ResourceResponse<\n DATA = any,\n ERROR = any,\n> implements Promise<HttpResponse<DATA> | HttpResponseError<ERROR>> {\n [Symbol.toStringTag] = 'Promise';\n\n private _promise?: Promise<HttpResponse<DATA>>;\n\n private _promiseAbort?: AbortController;\n\n private _observable?: Observable<HttpResponse<DATA>>;\n\n //#region constructor\n constructor(\n protected httpMethodName: CoreModels__NS__HttpMethod,\n protected urlOrigin: string,\n protected urlPathname: string,\n protected options: ResourceOptions,\n protected body: DATA | DATA,\n protected urlParams: UrlParams[],\n protected axiosOptions: Ng2RestAxiosRequestConfig,\n protected isArray: boolean,\n protected headers: RestHeaders,\n protected globalInterceptors: Map<string, TaonAxiosClientInterceptor>,\n protected methodsInterceptors: Map<string, TaonAxiosClientInterceptor>,\n ) {}\n //#endregion\n\n // ✅ NEW: make request cancellable\n protected abstract makeRequest(\n abortSignal: AbortSignal,\n ): Promise<HttpResponse<DATA>>;\n\n /**\n * ✅ Explicit cancel (useful for \"promise style\")\n */\n public cancel(reason?: string): void {\n this._promiseAbort?.abort(reason);\n }\n\n /**\n * Promise API (cannot be auto-cancelled by consumer, so we expose cancel())\n */\n public get promise(): Promise<HttpResponse<DATA> | HttpResponseError<ERROR>> {\n if (!this._promise) {\n this._promiseAbort = new AbortController();\n this._promise = this.makeRequest(this._promiseAbort.signal);\n }\n return this._promise;\n }\n\n then<TResult1 = HttpResponse<DATA>, TResult2 = never>(\n onfulfilled?:\n | ((value: HttpResponse<DATA>) => TResult1 | PromiseLike<TResult1>)\n | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null,\n ): Promise<TResult1 | TResult2> {\n return this.promise.then(onfulfilled as any, onrejected as any);\n }\n\n catch<TResult = never>(\n onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null,\n ): Promise<(HttpResponse<DATA> | HttpResponseError<ERROR>) | TResult> {\n return this.promise.catch(onrejected as any);\n }\n\n finally(\n onfinally?: (() => void) | null,\n ): Promise<HttpResponse<DATA> | HttpResponseError<ERROR>> {\n return this.promise.finally(onfinally as any);\n }\n\n /**\n * ✅ Observable owns AbortController:\n * - subscribe starts request\n * - unsubscribe aborts request\n * - shareReplay shares the same in-flight request among subscribers\n */\n get observable(): Observable<HttpResponse<DATA>> {\n if (!this._observable) {\n this._observable = new Observable<HttpResponse<DATA>>(subscriber => {\n const ac = new AbortController();\n\n this.makeRequest(ac.signal)\n .then(res => {\n if (res instanceof HttpResponseError) {\n subscriber.error(res);\n return;\n }\n subscriber.next(res);\n subscriber.complete();\n })\n .catch(err => subscriber.error(err));\n\n return () => ac.abort('rxjs-unsubscribe');\n }).pipe(shareReplay({ bufferSize: 1, refCount: true }));\n }\n return this._observable;\n }\n\n // -------------------------\n // Internals\n // -------------------------\n\n protected creatUrl(\n params: any,\n doNotSerializeParams: boolean = false,\n ): string {\n const origin = (this.urlOrigin || '').replace(/\\/+$/, '');\n const path = (this.urlPathname || '').replace(/^\\/+/, '');\n const endpoint = `${origin}/${path}`;\n return `${endpoint}${getParamsUrl(params, doNotSerializeParams)}`;\n }\n}\n//#endregion\n\n//#region resource reponse http strategy\n\nclass ResourceResponseHttp<DATA = any, ERROR = any> extends ResourceResponse<\n DATA,\n ERROR\n> {\n protected async makeRequest(\n abortSignal: AbortSignal,\n ): Promise<HttpResponse<DATA>> {\n const url = this.creatUrl(\n this.urlParams,\n !!this.axiosOptions?.doNotSerializeParams,\n );\n const method = this.httpMethodName;\n\n log.d(`Requesting ${method} ${url}`);\n\n const isFormData = CLASS__NS__getNameFromObject(this.body) === 'FormData';\n const formData: FormData = isFormData ? (this.body as any) : void 0;\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n const responseType: ResponseTypeAxios =\n (this.headers.get('responsetypeaxios')?.toString() as any) || 'text';\n\n const headersObj = Object.fromEntries(\n Object.entries(this.headers.toJSON()).map(([k, v]) => [\n k,\n Array.isArray(v) ? v.join(',') : v,\n ]),\n );\n\n const axiosConfig: AxiosRequestConfig = {\n url,\n method,\n data: this.body,\n responseType,\n headers: headersObj,\n signal: abortSignal, // ✅ this is the key\n ...this.axiosOptions,\n };\n\n if (isFormData) {\n axiosConfig.maxBodyLength = Infinity;\n }\n\n try {\n const uri = new URL(url);\n const backend = new AxiosBackendHandler<any>();\n\n const globalInterceptors = Array.from(this.globalInterceptors.values());\n const methodInterceptors = Array.from(this.methodsInterceptors.entries())\n .filter(([key]) =>\n key.endsWith(`-${method?.toUpperCase()}-${uri.pathname}`),\n )\n .map(([_, interceptor]) => interceptor);\n\n const handler = buildInterceptorChain(\n [...globalInterceptors, ...methodInterceptors],\n backend,\n );\n const response = await firstValueFrom(handler.handle(axiosConfig));\n\n return new HttpResponse<DATA>(\n url,\n method,\n response.data,\n RestHeaders.from(response.headers as any),\n response.status,\n this.options,\n this.isArray,\n );\n } catch (catchedError: any) {\n // ✅ treat cancellation separately (nice UX)\n if (\n catchedError?.code === 'ERR_CANCELED' ||\n catchedError?.name === 'CanceledError'\n ) {\n throw new HttpResponseError<ERROR>(\n url,\n method,\n JSON.stringify({ message: 'Request canceled' }),\n this.options,\n RestHeaders.from(),\n 0,\n this.isArray,\n );\n }\n\n //#region handle global error listener for notificaitons\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 listenErrorsSrc.next({\n msg,\n stack,\n data: catchedError.response.data,\n });\n }\n //#endregion\n\n const status = catchedError?.response?.status ?? 0; // ✅ FIX: you used \"status\" before defining it\n const data =\n catchedError?.response?.data ?? catchedError?.message ?? catchedError;\n\n const responseText =\n typeof data === 'string' ? data : JSON.stringify(data);\n\n throw new HttpResponseError<ERROR>(\n url,\n method,\n responseText,\n this.options,\n RestHeaders.from(catchedError?.response?.headers),\n status,\n this.isArray,\n );\n }\n }\n}\n\n//#endregion\n\n//#region models\nexport interface UrlParams {\n [urlModelName: string]: string | number | boolean | RegExp | Object;\n regex?: RegExp;\n}\n[];\n\nexport type Ng2RestAxiosRequestConfig = {\n doNotSerializeParams?: boolean;\n} & AxiosRequestConfig<any>;\n\n//#endregion\n\n//#region resource namespace\n//namespace Resource\n\n export const Resource__NS__globalInterceptors = new Map<\n string,\n TaonAxiosClientInterceptor\n >();\n export const Resource__NS__methodsInterceptors = new Map<\n string,\n TaonAxiosClientInterceptor\n >();\n\n export const Resource__NS__listenErrors = listenErrorsSrc.asObservable();\n\n export const Resource__NS__Cookies = Cookie.Instance;\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n export function Resource__NS__create<MODEL = any>(\n originUrl: string,\n pathnameModel: string,\n resourceOptions?: ResourceOptions,\n ) {\n return {\n model: <INTERPOLATE_ARGS = {}>(\n interpolateParams?: INTERPOLATE_ARGS,\n overrideOptions?:\n | ResourceOptions\n | { (options: ResourceOptions): ResourceOptions },\n ) => {\n const methods = <T>(\n isArray = false,\n ): {\n [method in CoreModels__NS__HttpMethod]: (\n item?: T,\n urlParams?: UrlParams[],\n axiosOptions?: Ng2RestAxiosRequestConfig,\n ) => ResourceResponse<T>;\n } => {\n const methodsObj = {};\n for (const methodName of CoreModels__NS__HttpMethodArr) {\n methodsObj[methodName] = (\n body?: MODEL,\n urlParams?: UrlParams[],\n axiosOptions?: Ng2RestAxiosRequestConfig,\n ) => {\n let localPathname = pathnameModel;\n if (!localPathname.startsWith('/')) {\n localPathname = `/${localPathname}`;\n }\n let localOriginUrl = originUrl;\n if (localOriginUrl.endsWith('/')) {\n localOriginUrl = localOriginUrl.replace(/\\/$/, '');\n }\n\n let localUrl: URL = new URL(`${localOriginUrl}${localPathname}`);\n\n //#region validate pathname model\n const badRestRegEX = new RegExp('((\\/:)[a-z]+)+', 'g');\n const matchArr = localPathname.match(badRestRegEX) || [];\n const badModelsNextToEachOther = matchArr.join();\n const atleas2DoubleDots =\n (badModelsNextToEachOther.match(new RegExp(':', 'g')) || [])\n .length >= 2;\n if (\n atleas2DoubleDots &&\n localPathname.search(badModelsNextToEachOther) !== -1\n ) {\n throw new Error(`\n\nBad rest model: ${localPathname}\n\nDo not create rest models like this: /book/author/:bookid/:authorid\nInstead use nested approach: /book/:bookid/author/:authorid\n `);\n }\n //#endregion\n\n let options: ResourceOptions = resourceOptions;\n options = options || {};\n\n options.responseMapping = options.responseMapping || {};\n\n options = {\n ...options,\n ...(___NS__isFunction(overrideOptions)\n ? overrideOptions(options)\n : overrideOptions || {}),\n };\n\n if (interpolateParams) {\n // console.log({ interpolateParams });\n // interpolate args\n let pathNameInterpolated = interpolateParamsToUrl(\n interpolateParams,\n localUrl.pathname,\n );\n // console.log(\n // `interpolated ${pathNameInterpolated}, url ${url.toString()}`,\n // );\n localUrl = new URL(\n `${localUrl.origin}/${pathNameInterpolated}`,\n );\n }\n\n const headers: RestHeaders = RestHeaders.from(options.headers);\n\n options.strategy = options.strategy || 'http';\n\n options.defaultHeadersProfile =\n options.defaultHeadersProfile || 'APPLICATION_JSON';\n\n if (options.defaultHeadersProfile) {\n DEFAULT_HEADERS[options.defaultHeadersProfile].forEach(\n (values, name) => {\n values.forEach(headerValue =>\n headers.set(name, headerValue),\n );\n },\n );\n }\n\n if (options.strategy === 'http') {\n return new ResourceResponseHttp(\n methodName,\n localUrl.origin,\n localUrl.pathname,\n options,\n body,\n urlParams,\n axiosOptions,\n isArray,\n headers,\n Resource__NS__globalInterceptors,\n Resource__NS__methodsInterceptors,\n );\n } else if (options.strategy === 'ipc-electron') {\n // TODO later\n } else if (options.strategy === 'js-mock') {\n // TODO later\n }\n };\n }\n return methodsObj as any;\n };\n\n const methodsRes = methods<MODEL>();\n const methodsArrayRes = methods<MODEL[]>(true);\n\n const res = {\n get array() {\n return methodsArrayRes;\n },\n ...methodsRes,\n };\n return res;\n },\n };\n }\n\n//end of namespace Resource\n\n//#endregion\n\n//#region exmaple usage\n/**\n * EXample useage\n */\n\nclass ExampleBook {\n title: string;\n}\n\nasync function example() {\n const rest = Resource__NS__create<ExampleBook>(\n 'http://my-website.pl',\n 'api/v3/user/:userId',\n {\n responseMapping: {\n entity: () => ({ '': ExampleBook }),\n },\n },\n );\n\n const response = await rest.model({ userId: 1 }).get();\n\n response; // type of response should be HttpResponse\n\n const responseObservable = rest\n .model({ userId: 1 })\n .array.post([new ExampleBook()], [{ 'location-id': 123 }]).observable;\n\n const responseObservableOnlyONe = rest\n .model({ userId: 1 })\n .post(new ExampleBook(), [{ 'location-id': 123 }]).observable;\n\n responseObservable.subscribe(data => {\n data; // HttpResponse<ExampleBook>\n });\n}\n//#endregion","export * from './ng2-rest';\nexport * from './new-mapping';\n/* */ ","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}