ng2-rest 13.1.7 → 13.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/app.js +3 -3
  2. package/app.js.map +1 -0
  3. package/browser/esm2020/lib/content-type.mjs +2 -2
  4. package/browser/esm2020/lib/cookie.mjs +2 -2
  5. package/browser/esm2020/lib/helpers.mjs +2 -2
  6. package/browser/esm2020/lib/index.mjs +2 -2
  7. package/browser/esm2020/lib/mapping.mjs +2 -2
  8. package/browser/esm2020/lib/models.mjs +2 -2
  9. package/browser/esm2020/lib/other/simple-resource.mjs +2 -2
  10. package/browser/esm2020/lib/params.mjs +2 -2
  11. package/browser/esm2020/lib/request-cache.mjs +2 -2
  12. package/browser/esm2020/lib/resource.service.mjs +2 -2
  13. package/browser/esm2020/lib/rest-headers.mjs +2 -2
  14. package/browser/esm2020/lib/rest-request.mjs +2 -2
  15. package/browser/esm2020/lib/rest.class.mjs +2 -2
  16. package/browser/fesm2015/ng2-rest.mjs +13 -13
  17. package/browser/fesm2015/ng2-rest.mjs.map +1 -0
  18. package/browser/fesm2020/ng2-rest.mjs +13 -13
  19. package/browser/fesm2020/ng2-rest.mjs.map +1 -0
  20. package/client/esm2020/lib/content-type.mjs +2 -2
  21. package/client/esm2020/lib/cookie.mjs +2 -2
  22. package/client/esm2020/lib/helpers.mjs +2 -2
  23. package/client/esm2020/lib/index.mjs +2 -2
  24. package/client/esm2020/lib/mapping.mjs +2 -2
  25. package/client/esm2020/lib/models.mjs +2 -2
  26. package/client/esm2020/lib/other/simple-resource.mjs +2 -2
  27. package/client/esm2020/lib/params.mjs +2 -2
  28. package/client/esm2020/lib/request-cache.mjs +2 -2
  29. package/client/esm2020/lib/resource.service.mjs +2 -2
  30. package/client/esm2020/lib/rest-headers.mjs +2 -2
  31. package/client/esm2020/lib/rest-request.mjs +2 -2
  32. package/client/esm2020/lib/rest.class.mjs +2 -2
  33. package/client/fesm2015/ng2-rest.mjs +13 -13
  34. package/client/fesm2015/ng2-rest.mjs.map +1 -0
  35. package/client/fesm2020/ng2-rest.mjs +13 -13
  36. package/client/fesm2020/ng2-rest.mjs.map +1 -0
  37. package/index.js.map +1 -0
  38. package/lib/content-type.js.map +1 -0
  39. package/lib/cookie.js.map +1 -0
  40. package/lib/helpers.js.map +1 -0
  41. package/lib/index.js.map +1 -0
  42. package/lib/mapping.js.map +1 -0
  43. package/lib/models.js.map +1 -0
  44. package/lib/other/simple-resource.js.map +1 -0
  45. package/lib/params.js.map +1 -0
  46. package/lib/request-cache.js.map +1 -0
  47. package/lib/resource.service.js.map +1 -0
  48. package/lib/rest-headers.js.map +1 -0
  49. package/lib/rest-request.js.map +1 -0
  50. package/lib/rest.class.js.map +1 -0
  51. package/package.json +4 -4
  52. package/package.json_tnp.json5 +1 -0
  53. package/tmp-environment.json +31 -29
  54. package/websql/esm2020/lib/content-type.mjs +2 -2
  55. package/websql/esm2020/lib/cookie.mjs +2 -2
  56. package/websql/esm2020/lib/helpers.mjs +2 -2
  57. package/websql/esm2020/lib/index.mjs +2 -2
  58. package/websql/esm2020/lib/mapping.mjs +2 -2
  59. package/websql/esm2020/lib/models.mjs +2 -2
  60. package/websql/esm2020/lib/other/simple-resource.mjs +2 -2
  61. package/websql/esm2020/lib/params.mjs +2 -2
  62. package/websql/esm2020/lib/request-cache.mjs +2 -2
  63. package/websql/esm2020/lib/resource.service.mjs +2 -2
  64. package/websql/esm2020/lib/rest-headers.mjs +2 -2
  65. package/websql/esm2020/lib/rest-request.mjs +2 -2
  66. package/websql/esm2020/lib/rest.class.mjs +2 -2
  67. package/websql/fesm2015/ng2-rest.mjs +13 -13
  68. package/websql/fesm2015/ng2-rest.mjs.map +1 -0
  69. package/websql/fesm2020/ng2-rest.mjs +13 -13
  70. package/websql/fesm2020/ng2-rest.mjs.map +1 -0
@@ -252,7 +252,7 @@ var Mapping;
252
252
  Mapping.DefaultModelWithMapping = DefaultModelWithMapping;
253
253
  })(Mapping || (Mapping = {}));
254
254
  ;
255
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/mapping.ts
255
+ ({}); // @--end-of-file-for-module=ng2-rest lib/mapping.ts
256
256
 
257
257
  // @ts-ignore
258
258
  class Helpers extends CoreHelpers {
@@ -273,7 +273,7 @@ class Helpers extends CoreHelpers {
273
273
  }
274
274
  Helpers.JSON = JSON10;
275
275
  ;
276
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/helpers.ts
276
+ ({}); // @--end-of-file-for-module=ng2-rest lib/helpers.ts
277
277
 
278
278
  const log$3 = Log.create('[ng2-rest] params', Level.__NOTHING);
279
279
  /** check if string is a valid pattern */
@@ -548,7 +548,7 @@ function prepareUrlOldWay(params) {
548
548
  return this.endpoint + '/' + params;
549
549
  }
550
550
  ;
551
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/params.ts
551
+ ({}); // @--end-of-file-for-module=ng2-rest lib/params.ts
552
552
 
553
553
  class RestHeaders {
554
554
  constructor(headers) {
@@ -677,7 +677,7 @@ class RestHeaders {
677
677
  }
678
678
  }
679
679
  ;
680
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/rest-headers.ts
680
+ ({}); // @--end-of-file-for-module=ng2-rest lib/rest-headers.ts
681
681
 
682
682
  const CONTENT_TYPE = {
683
683
  APPLICATION_JSON: RestHeaders.from({
@@ -689,7 +689,7 @@ const CONTENT_TYPE = {
689
689
  'Accept': 'application/vnd.api+json'
690
690
  }),
691
691
  };
692
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/content-type.ts
692
+ ({}); // @--end-of-file-for-module=ng2-rest lib/content-type.ts
693
693
 
694
694
  class Rest {
695
695
  constructor(endpoint, request, meta, customContentType) {
@@ -803,7 +803,7 @@ class Rest {
803
803
  }
804
804
  }
805
805
  ;
806
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/rest.class.ts
806
+ ({}); // @--end-of-file-for-module=ng2-rest lib/rest.class.ts
807
807
 
808
808
  class Cookie {
809
809
  constructor() {
@@ -832,7 +832,7 @@ class Cookie {
832
832
  }
833
833
  }
834
834
  ;
835
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/cookie.ts
835
+ ({}); // @--end-of-file-for-module=ng2-rest lib/cookie.ts
836
836
 
837
837
  const log$2 = Log.create('request-cache', Level.__NOTHING);
838
838
  class RequestCache {
@@ -925,7 +925,7 @@ RequestCache.LOCAL_STORAGE_KEY = 'ng2restrequestcache';
925
925
  RequestCache.cached = [];
926
926
  RequestCache.isRestoredFromLocalStorage = false;
927
927
  ;
928
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/request-cache.ts
928
+ ({}); // @--end-of-file-for-module=ng2-rest lib/request-cache.ts
929
929
 
930
930
  var Models;
931
931
  (function (Models) {
@@ -1061,7 +1061,7 @@ var Models;
1061
1061
  Models.HttpResponseError = HttpResponseError;
1062
1062
  })(Models || (Models = {}));
1063
1063
  ;
1064
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/models.ts
1064
+ ({}); // @--end-of-file-for-module=ng2-rest lib/models.ts
1065
1065
 
1066
1066
  const log$1 = Log.create('[ng2-rest] rest-request', Level.__NOTHING);
1067
1067
  const jobIDkey = 'jobID';
@@ -1373,7 +1373,7 @@ class RestRequest {
1373
1373
  }
1374
1374
  RestRequest.jobId = 0;
1375
1375
  ;
1376
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/rest-request.ts
1376
+ ({}); // @--end-of-file-for-module=ng2-rest lib/rest-request.ts
1377
1377
 
1378
1378
  const log = Log.create('resouce-service', Level.__NOTHING);
1379
1379
  class Resource {
@@ -1586,7 +1586,7 @@ Resource.endpoints = {};
1586
1586
  Resource.request = new RestRequest();
1587
1587
  Resource.Cookies = Cookie.Instance;
1588
1588
  ;
1589
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/resource.service.ts
1589
+ ({}); // @--end-of-file-for-module=ng2-rest lib/resource.service.ts
1590
1590
 
1591
1591
  /**
1592
1592
  *
@@ -1702,10 +1702,10 @@ class SimpleResource {
1702
1702
  }
1703
1703
  SimpleResource._isSetQueryParamsSerialization = false;
1704
1704
  ;
1705
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/other/simple-resource.ts
1705
+ ({}); // @--end-of-file-for-module=ng2-rest lib/other/simple-resource.ts
1706
1706
 
1707
1707
  ;
1708
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/index.ts
1708
+ ({}); // @--end-of-file-for-module=ng2-rest lib/index.ts
1709
1709
 
1710
1710
  /**
1711
1711
  * Generated bundle index. Do not edit.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ng2-rest.mjs","sources":["../../../tmp-libs-for-bundle-websql/ng2-rest/projects/ng2-rest/src/lib/mapping.ts","../../../tmp-libs-for-bundle-websql/ng2-rest/projects/ng2-rest/src/lib/helpers.ts","../../../tmp-libs-for-bundle-websql/ng2-rest/projects/ng2-rest/src/lib/params.ts","../../../tmp-libs-for-bundle-websql/ng2-rest/projects/ng2-rest/src/lib/rest-headers.ts","../../../tmp-libs-for-bundle-websql/ng2-rest/projects/ng2-rest/src/lib/content-type.ts","../../../tmp-libs-for-bundle-websql/ng2-rest/projects/ng2-rest/src/lib/rest.class.ts","../../../tmp-libs-for-bundle-websql/ng2-rest/projects/ng2-rest/src/lib/cookie.ts","../../../tmp-libs-for-bundle-websql/ng2-rest/projects/ng2-rest/src/lib/request-cache.ts","../../../tmp-libs-for-bundle-websql/ng2-rest/projects/ng2-rest/src/lib/models.ts","../../../tmp-libs-for-bundle-websql/ng2-rest/projects/ng2-rest/src/lib/rest-request.ts","../../../tmp-libs-for-bundle-websql/ng2-rest/projects/ng2-rest/src/lib/resource.service.ts","../../../tmp-libs-for-bundle-websql/ng2-rest/projects/ng2-rest/src/lib/other/simple-resource.ts","../../../tmp-libs-for-bundle-websql/ng2-rest/projects/ng2-rest/src/lib/index.ts","../../../tmp-libs-for-bundle-websql/ng2-rest/projects/ng2-rest/src/ng2-rest.ts"],"sourcesContent":["import { _ } from 'tnp-core/websql';\nimport { Helpers } from 'tnp-core/websql';\nimport { Circ, JSON10 } from 'json10/websql';\nimport { walk } from 'lodash-walk-object/websql';\nimport { CLASS, SYMBOL } from 'typescript-class-helpers/websql';\nimport { Helpers as HelpersLog } from 'tnp-core/websql';\n\nexport namespace Mapping {\n\n export function decode(json: Object, autodetect = false): Mapping {\n\n\n if (_.isUndefined(json)) {\n return void 0;\n }\n\n let mapping = decodeFromDecorator(_.isArray(json) ? _.first(json) : json, !autodetect)\n\n if (autodetect) {\n mapping = _.merge(getMappingNaive(json), mapping);\n }\n\n return mapping;\n }\n\n export function encode<T = Function>(json: Object, mapping: Mapping, circular: Circ[] = []): T {\n if (_.isString(json) || _.isBoolean(json) || _.isNumber(json)) {\n return json as any;\n }\n\n if (mapping['']) {\n const decoratorMapping = getModelsMapping(CLASS.getBy(mapping['']));\n mapping = _.merge(mapping, decoratorMapping)\n }\n\n let res: any;\n if (_.isArray(circular) && circular.length > 0) {\n res = setMappingCirc(json, mapping, circular);\n } else {\n res = setMapping(json, mapping);\n }\n return res;\n }\n\n\n function decodeFromDecorator(json: Object, production = false): Mapping {\n const entityClass = CLASS.getFromObject(json);\n const mappings = getModelsMapping(entityClass);\n return mappings as any;\n }\n\n export function getModelsMapping(entity: Function) {\n\n if (!_.isFunction(entity) || entity === Object) {\n return {};\n }\n const className = CLASS.getName(entity)\n\n let enityOWnMapping: any[] = _.isArray(entity[SYMBOL.MODELS_MAPPING]) ?\n entity[SYMBOL.MODELS_MAPPING] : [{ '': className }];\n\n let res = {};\n let parents = enityOWnMapping\n .filter(m => !_.isUndefined(m['']) && m[''] !== className)\n .map(m => m['']);\n\n enityOWnMapping.reverse().forEach(m => {\n m = _.cloneDeep(m);\n\n Object.keys(m).forEach(key => {\n const v = m[key]\n const isArr = _.isArray(v)\n const model = isArr ? _.first(v) : v;\n if (parents.includes(model)) {\n m[key] = isArr ? [className] : className;\n }\n })\n res = _.merge(res, m)\n })\n res[''] = className;\n\n return res;\n }\n\n\n export type Mapping<T = {}> = {\n [P in keyof T]?: string | string[];\n };\n\n function add(o: Object, path: string, mapping: Mapping = {}) {\n if (!o || Array.isArray(o) || typeof o !== 'object') return;\n const objectClassName = CLASS.getName(Object.getPrototypeOf(o).constructor);\n const resolveClass = CLASS.getBy(objectClassName);\n if (!resolveClass) {\n if (objectClassName !== 'Object') {\n if (Helpers.isBrowser) {\n console.error(`Cannot resolve class \"${objectClassName}\" while mapping.`)\n }\n }\n return;\n }\n if (!mapping[path]) mapping[path] = CLASS.getName(resolveClass) as any;;\n }\n\n /**\n * USE ONLY IN DEVELOPMENT\n * @param c\n * @param path\n * @param mapping\n * @param level\n */\n function getMappingNaive(c: Object, path = '', mapping: Mapping = {}, level = 0) {\n if (Array.isArray(c)) {\n c.forEach(c => getMappingNaive(c, path, mapping, level))\n return mapping;\n }\n if (++level === 16) return;\n add(c, path, mapping);\n for (var p in c) {\n if (c.hasOwnProperty(p)) {\n const v = c[p];\n if (Array.isArray(v) && v.length > 0) { // reducer as impovement\n v.forEach((elem, i) => {\n\n const currentPaht = [path, p].filter(c => c.trim() != '').join('.');\n getMappingNaive(elem, currentPaht, mapping, level);\n })\n } else if (typeof v === 'object') {\n const currentPaht = [path, p].filter(c => c.trim() != '').join('.');\n add(v, currentPaht, mapping);\n getMappingNaive(v, currentPaht, mapping, level);\n }\n }\n }\n return mapping;\n }\n\n function getMappingPathFrom(pathLodhas: string) {\n if (!_.isString(pathLodhas)) {\n return void 0;\n }\n const regex = /\\[([0-9a-zA-Z]|\\'|\\\")*\\]/g;\n pathLodhas = pathLodhas\n .replace(regex, '')\n .replace('..', '.');\n if (pathLodhas.startsWith('.')) {\n pathLodhas = pathLodhas.slice(1)\n }\n return pathLodhas;\n }\n\n function setMappingCirc(json: Object, mapping: Mapping = {}, circular: Circ[] = []) {\n\n const mainClassFn = !_.isArray(json) && CLASS.getBy(mapping['']);\n\n walk.Object(json, (v, lodashPath, changeValue) => {\n if (!_.isUndefined(v) && !_.isNull(v)) {\n const mappingPath = getMappingPathFrom(lodashPath)\n if (!_.isUndefined(mapping[mappingPath])) {\n const isArray = _.isArray(mapping[mappingPath]);\n if (!isArray) {\n const className = isArray ? _.first(mapping[mappingPath]) : mapping[mappingPath];\n const classFN = CLASS.getBy(className)\n if (_.isFunction(classFN)) {\n\n changeValue(_.merge(new (classFN as any)(), v))\n }\n }\n }\n }\n })\n\n circular.forEach(c => {\n const ref = _.get(json, c.circuralTargetPath)\n _.set(json, c.pathToObj, ref)\n })\n\n if (_.isFunction(mainClassFn)) {\n json = _.merge(new (mainClassFn as any)(), json)\n }\n\n return json;\n }\n\n\n\n function setMapping(json: Object, mapping: Mapping = {}) {\n\n\n if (Array.isArray(json)) {\n return json.map(j => {\n return setMapping(j, mapping)\n })\n }\n\n const mainClassFn = CLASS.getBy(mapping['']);\n\n for (const key in json) {\n if (json.hasOwnProperty(key)) {\n\n\n\n if (_.isArray(json[key])) {\n json[key] = json[key].map(arrObj => {\n const objMapping = getModelsMapping(CLASS.getBy(mapping[key]))\n return setMapping(arrObj, objMapping)\n })\n } else if (_.isObject(json[key])) {\n const objMapping = getModelsMapping(CLASS.getBy(mapping[key]))\n json[key] = setMapping(json[key], objMapping)\n }\n }\n\n\n\n\n\n }\n\n Object\n .keys(mapping)\n .filter(key => key !== '' && key.split('.').length >= 2)\n .forEach(lodasPath => {\n\n const objMapping = getModelsMapping(CLASS.getBy(mapping[lodasPath]))\n const input = _.get(json, lodasPath)\n if (!_.isUndefined(input)) {\n const res = setMapping(input, objMapping)\n _.set(json, lodasPath, res)\n }\n })\n\n if (!mainClassFn) {\n return json;\n }\n return _.merge(new (mainClassFn as any)(), json)\n }\n\n\n\n\n export type ModelValue<T> = {\n /**\n * Inside models types\n */\n [propName in keyof T]?: T[propName];\n };\n\n\n export function DefaultModelWithMapping<T = Object>(\n defaultModelValues?: ModelValue<T>,\n mapping?: Mapping<T>\n ) {\n return function (target: Function) {\n\n if (!_.isArray(target[SYMBOL.MODELS_MAPPING])) {\n target[SYMBOL.MODELS_MAPPING] = [];\n }\n\n (target[SYMBOL.MODELS_MAPPING] as any[]).push({ '': CLASS.getName(target) });\n if (_.isObject(mapping)) {\n target[SYMBOL.MODELS_MAPPING] = (target[SYMBOL.MODELS_MAPPING] as any[]).concat(mapping)\n Object.keys(mapping)\n .forEach(key => {\n const v = mapping;\n if (_.isUndefined(v) || _.isFunction(v)) {\n throw `\n\n\n Class: '${target.name}'\n[ng2rest] Bad mapping value for path: ${key} , please use type: <string> or [<string>]\n`;\n\n }\n });\n }\n\n\n if (_.isObject(defaultModelValues)) {\n const toMerge = {};\n const describedTarget = CLASS\n .describeProperites(target)\n .filter(prop => /^([a-zA-Z0-9]|\\_|\\#)+$/.test(prop))\n\n describedTarget.forEach(propDefInConstr => {\n if (defaultModelValues[propDefInConstr]) {\n console.warn(`\n\n CONFLICT: default value for property: \"${propDefInConstr}\"\n in class \"${target.name}\" already defined as typescript\n default class proprty value.\n\n `)\n } else {\n toMerge[propDefInConstr] = null; // TODO from toString I can't know that\n }\n });\n\n\n\n target[SYMBOL.DEFAULT_MODEL] = _.merge(toMerge, defaultModelValues);\n\n const propsToOmmit = Object\n .keys(target[SYMBOL.DEFAULT_MODEL])\n .filter(key => {\n const descriptor = Object\n .getOwnPropertyDescriptor(target.prototype, key);\n return !!descriptor;\n });\n _.merge(target.prototype, _.omit(target[SYMBOL.DEFAULT_MODEL], propsToOmmit));\n\n\n }\n }\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=ng2-rest lib/mapping.ts","import { _ } from 'tnp-core/websql';\nimport { CoreHelpers } from 'tnp-core/websql';\nimport { Mapping } from './mapping';\nimport { JSON10 } from 'json10/websql';\n\n// @ts-ignore\nexport class Helpers extends CoreHelpers {\n\n static JSON = JSON10;\n\n static get Mapping() {\n return {\n encode<T = Function>(json: Object, mapping: Mapping.Mapping): T {\n return Mapping.encode(json, mapping);\n },\n decode(json: Object, autodetect = false ): Mapping.Mapping {\n return Mapping.decode(json, autodetect)\n }\n }\n }\n\n static checkValidUrl(url: string): boolean {\n let regex = /(http|https):\\/\\/(\\w+:{0,1}\\w*)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%!\\-\\/]))?/;\n return regex.test(url);\n }\n\n\n\n}\n\n ;({}); // @--end-of-file-for-module=ng2-rest lib/helpers.ts","import { diffChars } from 'diff';\nimport { _ } from 'tnp-core/websql';\nimport { Log, Level } from 'ng2-logger/websql';\nimport { Models } from './models';\nimport { Helpers } from './helpers';\n\nconst log = Log.create('[ng2-rest] params', Level.__NOTHING)\n\n\n\n/** check if string is a valid pattern */\nexport function isValid(pattern: string) {\n return (new RegExp('\\/:[a-zA-Z]*', 'g')).test(pattern.replace('://', ''));\n}\n\nexport function check(url: string, pattern: string): boolean {\n if (!Helpers.checkValidUrl(url)) {\n log.error(`Incorrect url: ${url}`);\n return false;\n }\n if (url.charAt(url.length - 1) === '/') url = url.slice(0, url.length - 2);\n if (pattern.charAt(pattern.length - 1) === '/') pattern = pattern.slice(0, url.length - 2);\n pattern = pattern.replace(/\\//g, '\\/');\n pattern = pattern.replace(new RegExp('\\/:[a-zA-Z]*', 'g'), '.+');\n let reg = new RegExp(pattern, 'g');\n return reg.test(url);\n}\n\nexport function getModels(pattern: string): string[] {\n let m = pattern.match(new RegExp('[a-z-A-Z]*\\/:', 'g'));\n return m.map(p => p.replace('/:', ''));\n}\n\nexport function getRestPramsNames(pattern: string): string[] {\n if (pattern.charAt(pattern.length - 1) !== '/') pattern = `${pattern}/`;\n let m = pattern.match(new RegExp(':[a-zA-Z]*\\/', 'g'));\n let res = m.map(p => p.replace(':', '').replace('/', ''));\n return res.filter(p => p.trim() !== '');\n}\n\nexport function containsModels(url: string, models: string[]): boolean {\n if (url.charAt(0) !== '/') url = '/' + url;\n\n let res = models.filter(m => {\n let word = '/' + m;\n\n let iii = url.indexOf(word);\n\n if (iii + word.length < url.length && url.charAt(iii + word.length) !== '/') {\n return false;\n }\n if (iii !== -1) {\n url = url.replace(new RegExp('\\/' + m, 'g'), '');\n return true;\n }\n return false;\n }).length;\n\n return res === models.length;\n}\n\nexport function stars(n: number): string {\n let res = '';\n for (let i = 0; i < n; i++) res += '*';\n return res;\n}\n\nexport function getRestParams(url: string, pattern: string): Object {\n let res = {};\n let models = getRestPramsNames(pattern);\n\n models.forEach(m => {\n pattern = pattern.replace(`:${m}`, stars(m.length));\n })\n\n let currentModel: string = void 0;\n diffChars(pattern, url).forEach(d => {\n\n if (d.added) {\n if (!isNaN(Number(d.value))) res[currentModel] = Number(d.value);\n else if (d.value.trim() === 'true') res[currentModel] = true;\n else if (d.value.trim() === 'false') res[currentModel] = false;\n else res[currentModel] = decodeURIComponent(d.value);\n currentModel = void 0;\n }\n let m = d.value.replace(':', \"\");\n\n if (d.removed) {\n currentModel = models.shift();\n }\n });\n return res;\n}\n\nexport const regexisPath = /[^\\..]+(\\.[^\\..]+)+/g;\n\n/**\n * Models like books/:id\n */\nfunction cutUrlModel(params: Object, models: string[], output: string[]) {\n if (models.length === 0) return output.join('\\/');\n let m = models.pop();\n\n let param = m.match(/:[a-zA-Z0-9\\.]+/)[0].replace(':', '');\n const paramIsPath = regexisPath.test(param)\n\n let model = m.match(/[a-zA-Z0-9]+\\//)[0].replace('\\/', '');\n if (params === void 0 ||\n (paramIsPath ? _.get(params, param) === void 0 : params[param] === void 0) ||\n param === 'undefined') {\n output.length = 0;\n output.unshift(model)\n return cutUrlModel(params, models, output);\n } else {\n if (paramIsPath) {\n\n let mrep = m.replace(new RegExp(`:${param}`, 'g'), `${_.get(params, param)}`)\n output.unshift(mrep)\n return cutUrlModel(params, models, output);\n } else {\n\n let mrep = m.replace(new RegExp(`:${param}`, 'g'), `${params[param]}`)\n output.unshift(mrep)\n return cutUrlModel(params, models, output);\n }\n\n }\n}\n\n\nexport function interpolateParamsToUrl(params: Object, url: string): string {\n\n const regexInt = /\\[\\[([^\\..]+\\.[^\\..]+)+\\]\\]/g;\n\n url = url.split('/').map(p => {\n\n let isParam = p.startsWith(':')\n if (isParam) {\n let part = p.slice(1);\n\n if (regexInt.test(part)) {\n\n part = part.replace('[[', '')\n part = part.replace(']]', '')\n }\n return `:${part}`\n }\n return p;\n }).join('/');\n\n\n\n\n\n let slash = {\n start: url.charAt(0) === '\\/',\n end: url.charAt(url.length - 1) === '\\/'\n }\n\n let morePramsOnEnd = url.match(/(\\/:[a-zA-Z0-9\\.]+){2,10}/g);\n if (morePramsOnEnd && (Array.isArray(morePramsOnEnd) && morePramsOnEnd.length === 1)) {\n\n let m = morePramsOnEnd[0];\n let match = m.match(/\\/:[a-zA-Z0-9\\.]+/g);\n\n match.forEach(e => {\n let c = e.replace('\\/:', '');\n\n if (regexisPath.test(c)) {\n url = url.replace(e, `/${_.get(params, c)}`)\n } else {\n url = url.replace(e, `/${params[c]}`)\n }\n\n\n\n })\n return url;\n }\n\n let nestedParams = url.match(/[a-zA-Z0-9]+\\/:[a-zA-Z0-9\\.]+/g);\n if (!nestedParams || (Array.isArray(nestedParams) && nestedParams.length === 0)) return url;\n\n\n if (!slash.end) url = `${url}/`;\n let addUndefinedForAlone = (!/:[a-zA-Z0-9\\.]+\\/$/g.test(url) && /[a-zA-Z0-9]+\\/$/g.test(url));\n\n let replace = (nestedParams.length > 1 ? nestedParams.join('\\/') : nestedParams[0]) +\n (addUndefinedForAlone ? '\\/' + url.match(/[a-zA-Z0-9]+\\/$/g)[0] : '\\/');\n let beginHref = url.replace(replace, '')\n\n if (addUndefinedForAlone) {\n url = url.replace(/\\/$/g, '/:undefined')\n nestedParams = url.match(/[a-zA-Z0-9]+\\/:[a-zA-Z0-9\\.]+/g);\n url = cutUrlModel(params, nestedParams, [])\n } else {\n url = cutUrlModel(params, nestedParams, [])\n }\n url = beginHref + url;\n\n if (url.charAt(url.length - 1) !== '/' && slash.end) url = `${url}/`;\n if (url.charAt(0) !== '\\/' && slash.start) url = `/${url}`;\n\n return url;\n}\n\n/**\n * Get query params from url, like 'ex' in /api/books?ex=value\n*/\nexport function decodeUrl(url: string): Object {\n let regex = /[?&]([^=#]+)=([^&#]*)/g,\n params = {},\n match;\n while (match = regex.exec(url)) {\n params[decodeURIComponent(match[1])] = decodeURIComponent(match[2]);\n }\n let paramsObject = <Object>params;\n for (let p in paramsObject) {\n if (paramsObject[p] === void 0) {\n delete paramsObject[p];\n continue;\n }\n if (paramsObject.hasOwnProperty(p)) {\n\n let n = Number(params[p]);\n if (!isNaN(n)) {\n params[p] = n;\n continue;\n }\n if (typeof params[p] === 'string') {\n\n\n let json;\n try {\n json = JSON.parse(params[p]);\n } catch (error) { }\n if (json !== void 0) {\n params[p] = json;\n continue;\n }\n\n\n\n\n\n\n\n }\n }\n }\n return params;\n}\n\n/**\n * Create query params string for url\n *\n * @export\n * @param {UrlParams[]} params\n * @returns {string}\n */\nexport function getParamsUrl(params: Models.UrlParams[], doNotSerialize: boolean = false): string {\n let urlparts: string[] = [];\n if (!params) return '';\n if (!(params instanceof Array)) return '';\n if (params.length === 0) return '';\n\n params.forEach(urlparam => {\n if (JSON.stringify(urlparam) !== '{}') {\n\n let parameters: string[] = [];\n let paramObject = <Object>urlparam;\n\n\n for (let p in paramObject) {\n if (paramObject[p] === void 0) delete paramObject[p];\n if (paramObject.hasOwnProperty(p) && typeof p === 'string' && p !== 'regex' && !(paramObject[p] instanceof RegExp)) {\n if (p.length > 0 && p[0] === '/') {\n let newName = p.slice(1, p.length - 1);\n urlparam[newName] = urlparam[p];\n urlparam[p] = void 0;\n p = newName;\n }\n if (p.length > 0 && p[p.length - 1] === '/') {\n let newName = p.slice(0, p.length - 2);\n urlparam[newName] = urlparam[p];\n urlparam[p] = void 0;\n p = newName;\n }\n let v: any = urlparam[p];\n if (v instanceof Object) {\n urlparam[p] = JSON.stringify(urlparam[p]);\n }\n urlparam[p] = doNotSerialize ? <string>urlparam[p] : encodeURIComponent(<string>urlparam[p]);\n if (urlparam.regex !== void 0 && urlparam.regex instanceof RegExp) {\n\n if (!urlparam.regex.test(<string>urlparam[p])) {\n console.warn(`Data: ${urlparam[p]} incostistent with regex ${urlparam.regex.source}`);\n }\n }\n parameters.push(`${p}=${urlparam[p]}`);\n }\n\n }\n\n urlparts.push(parameters.join('&'));\n\n\n }\n\n\n });\n let join = urlparts.join().trim();\n if (join.trim() === '') return '';\n return `?${urlparts.join('&')}`;\n}\n\n\nfunction transform(o) {\n if (typeof o === 'object') {\n return encodeURIComponent(JSON.stringify(o));\n }\n return o;\n}\n\n\nexport function prepareUrlOldWay(params?: TemplateStringsArray): string {\n if (!params) return this.endpoint;\n if (typeof params === 'object') {\n params = transform(params);\n }\n return this.endpoint + '/' + params;\n}\n\n\n ;({}); // @--end-of-file-for-module=ng2-rest lib/params.ts","/**\n * Based on Headers from https://github.com/angular/angular/blob/master/packages/http/src/headers.ts\n */\nexport type RestHeadersOptions = RestHeaders | { [name: string]: (string | string[]) }\n\nexport class RestHeaders {\n /** @internal header names are lower case */\n _headers: Map<string, string[]> = new Map();\n /** @internal map lower case names to actual names */\n _normalizedNames: Map<string, string> = new Map();\n\n\n public static from(headers?: RestHeadersOptions) {\n if (!headers) {\n return void 0;\n }\n return new RestHeaders(headers);\n }\n\n private constructor(headers?: RestHeaders | { [name: string]: (string | string[]) }) {\n if (headers instanceof RestHeaders) {\n headers.forEach((values: string[], name: string) => {\n values.forEach(value => this.set(name, value));\n });\n } else {\n Object.keys(headers).forEach((name: string) => {\n const values: string[] = (Array.isArray(headers[name]) ? headers[name] : [headers[name]]) as any;\n this.delete(name);\n values.forEach(value => this.set(name, value));\n });\n }\n }\n\n /**\n * Returns a new RestHeaders instance from the given DOMString of Response RestHeaders\n */\n static fromResponseHeaderString(headersString: string): RestHeaders {\n const headers = new RestHeaders();\n\n headersString.split('\\n').forEach(line => {\n const index = line.indexOf(':');\n if (index > 0) {\n const name = line.slice(0, index);\n const value = line.slice(index + 1).trim();\n headers.set(name, value);\n }\n });\n\n return headers;\n }\n\n /**\n * Appends a header to existing list of header values for a given header name.\n */\n append(name: string, value: string): void {\n const values = this.getAll(name);\n\n if (values === null) {\n this.set(name, value);\n } else {\n values.push(value);\n }\n }\n\n /**\n * Deletes all header values for the given name.\n */\n delete(name: string): void {\n const lcName = name.toLowerCase();\n this._normalizedNames.delete(lcName);\n this._headers.delete(lcName);\n }\n\n forEach(fn: (values: string[], name: string, headers: Map<string, string[]>) => void): void {\n this._headers.forEach(\n (values, lcName) => fn(values, this._normalizedNames.get(lcName), this._headers));\n }\n\n /**\n * Returns first header that matches given name.\n */\n get(name: string): string {\n const values = this.getAll(name);\n\n if (values === null) {\n return null;\n }\n\n return values.length > 0 ? values[0] : null;\n }\n\n /**\n * Checks for existence of header by given name.\n */\n has(name: string): boolean { return this._headers.has(name.toLowerCase()); }\n\n /**\n * Returns the names of the headers\n */\n keys(): string[] { return Array.from(this._normalizedNames.values()); }\n\n /**\n * Sets or overrides header value for given name.\n */\n set(name: string, value: string | string[]): void {\n if (Array.isArray(value)) {\n if (value.length) {\n this._headers.set(name.toLowerCase(), [value.join(',')]);\n }\n } else {\n this._headers.set(name.toLowerCase(), [value]);\n }\n this.mayBeSetNormalizedName(name);\n }\n\n /**\n * Returns values of all headers.\n */\n values(): string[][] { return Array.from(this._headers.values()); }\n\n /**\n * Returns string of all headers.\n */\n\n toJSON(): { [name: string]: any } {\n const serialized: { [name: string]: string[] } = {};\n if (!this._headers) {\n\n\n }\n this._headers.forEach((values: string[], name: string) => {\n const split: string[] = [];\n values.forEach(v => split.push(...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\n\n ;({}); // @--end-of-file-for-module=ng2-rest lib/rest-headers.ts","import { RestHeaders } from \"./rest-headers\";\n\n\nexport const CONTENT_TYPE = {\n APPLICATION_JSON: RestHeaders.from({\n 'Content-Type': 'application/json',\n 'Accept': 'application/json'\n }),\n APPLICATINO_VND_API_JSON: RestHeaders.from({\n 'Content-Type': 'application/vnd.api+json',\n 'Accept': 'application/vnd.api+json'\n }),\n}\n\n ;({}); // @--end-of-file-for-module=ng2-rest lib/content-type.ts","\nimport { Log, Level } from 'ng2-logger/websql';\n\n\nimport { Models } from './models';\nimport { getRestParams, getParamsUrl } from './params';\nimport { RestRequest } from './rest-request';\nimport { RestHeaders } from './rest-headers';\nimport { CONTENT_TYPE } from './content-type';\n\n\nexport class Rest<T, TA = T[]> implements Models.FnMethodsHttpWithMock<T, TA> {\n\n private mockHttp: Models.MockHttp;\n mock(mock: Models.MockHttp): Models.FnMethodsHttp<T, TA> {\n if ((typeof mock === 'function') || (typeof mock === 'object')) {\n this.mockHttp = mock;\n } else {\n throw `[ng2-rest]\n .model(...)\n .mock( < BAD MOCK DATA > )\n ...\n `\n }\n return this;\n }\n\n\n\n\n private __meta_endpoint: string;\n private _endpointRest: string;\n private get endpoint() {\n let e = this.__meta_endpoint;\n if (this.restQueryParams !== void 0 && this._endpointRest !== void 0\n && typeof this._endpointRest === 'string' && this._endpointRest.trim() !== '') e = this._endpointRest;\n return e;\n }\n private restQueryParams: Object;\n public set __rest_endpoint(endpoint) {\n this._endpointRest = endpoint;\n if (endpoint === void 0) {\n this.restQueryParams = void 0;\n } else {\n this.restQueryParams = getRestParams(endpoint, this.__meta_endpoint);\n }\n\n }\n\n private creatUrl(params: any, doNotSerializeParams: boolean = false) {\n return `${this.endpoint}${getParamsUrl(params, doNotSerializeParams)}`;\n }\n\n\n\n\n private _headers = RestHeaders.from(CONTENT_TYPE.APPLICATION_JSON);\n get headers() {\n return this._headers;\n }\n constructor(\n endpoint: string,\n private request: RestRequest,\n private meta: Models.MetaRequest,\n private customContentType: RestHeaders,\n ) {\n this.__meta_endpoint = endpoint;\n\n }\n\n\n\n\n private req(method: Models.HttpMethod,\n item: T,\n params?: Models.UrlParams[],\n doNotSerializeParams: boolean = false,\n isArray: boolean = false\n ) {\n\n const modelUrl = this.creatUrl(params, doNotSerializeParams);\n const body = item ? JSON.stringify(item) : void 0;\n\n if (this.customContentType) {\n const customHeaderKeys = this.customContentType.keys();\n const currentHeaderKeys = this._headers.keys();\n currentHeaderKeys\n .filter(key => !customHeaderKeys.includes(key))\n .forEach(key => {\n this.customContentType.set(key, this._headers.get(key));\n });\n this._headers = this.customContentType;\n } else {\n this._headers = RestHeaders.from(CONTENT_TYPE.APPLICATION_JSON);\n }\n\n const result = this.request[method.toLowerCase()](\n modelUrl,\n body,\n this.headers,\n this.meta,\n isArray,\n this.mockHttp\n );\n\n this.mockHttp = void 0;\n return result;\n }\n\n\n\n\n\n replay(method: Models.HttpMethod) {\n this.request.replay(method, this.meta);\n }\n\n\n array = {\n get: (params: Models.UrlParams[] = void 0, doNotSerializeParams?: boolean): Models.PromiseObservableMix<Models.HttpResponse<TA>> => {\n return this.req('get', void 0, params, doNotSerializeParams, true) as any\n },\n head: (params: Models.UrlParams[] = void 0, doNotSerializeParams?: boolean): Models.PromiseObservableMix<Models.HttpResponse<TA>> => {\n return this.req('head', void 0, params, doNotSerializeParams, true) as any\n },\n post: (item: TA, params?: Models.UrlParams[], doNotSerializeParams?: boolean): Models.PromiseObservableMix<Models.HttpResponse<TA>> => {\n return this.req('post', item as any, params, doNotSerializeParams, true) as any;\n },\n put: (item: TA, params?: Models.UrlParams[], doNotSerializeParams?: boolean): Models.PromiseObservableMix<Models.HttpResponse<TA>> => {\n return this.req('put', item as any, params, doNotSerializeParams, true) as any;\n },\n patch: (item: TA, params?: Models.UrlParams[], doNotSerializeParams?: boolean): Models.PromiseObservableMix<Models.HttpResponse<TA>> => {\n return this.req('patch', item as any, params, doNotSerializeParams, true) as any;\n },\n delete: (params?: Models.UrlParams[], doNotSerializeParams?: boolean): Models.PromiseObservableMix<Models.HttpResponse<TA>> => {\n return this.req('delete', void 0, params, doNotSerializeParams, true) as any;\n },\n jsonp: (params?: Models.UrlParams[], doNotSerializeParams?: boolean): Models.PromiseObservableMix<Models.HttpResponse<TA>> => {\n return this.req('jsonp', void 0, params, doNotSerializeParams, true) as any;\n }\n }\n\n get(params?: Models.UrlParams[], doNotSerializeParams: boolean = false): Models.PromiseObservableMix<Models.HttpResponse<T>> {\n return this.req('get', void 0, params, doNotSerializeParams) as any;\n }\n\n head(params?: Models.UrlParams[], doNotSerializeParams: boolean = false): Models.PromiseObservableMix<Models.HttpResponse<T>> {\n return this.req('head', void 0, params, doNotSerializeParams) as any;\n }\n\n post(item: T, params?: Models.UrlParams[], doNotSerializeParams: boolean = false): Models.PromiseObservableMix<Models.HttpResponse<T>> {\n return this.req('post', item, params, doNotSerializeParams);\n }\n\n put(item: T, params?: Models.UrlParams[], doNotSerializeParams: boolean = false): Models.PromiseObservableMix<Models.HttpResponse<T>> {\n return this.req('put', item, params, doNotSerializeParams);\n }\n\n patch(item: T, params?: Models.UrlParams[], doNotSerializeParams: boolean = false): Models.PromiseObservableMix<Models.HttpResponse<T>> {\n return this.req('patch', item, params, doNotSerializeParams);\n }\n\n delete(params?: Models.UrlParams[], doNotSerializeParams: boolean = false): Models.PromiseObservableMix<Models.HttpResponse<T>> {\n return this.req('delete', void 0, params, doNotSerializeParams);\n }\n\n jsonp(params?: Models.UrlParams[], doNotSerializeParams: boolean = false): Models.PromiseObservableMix<Models.HttpResponse<T>> {\n return this.req('jsonp', void 0, params, doNotSerializeParams);\n }\n\n\n}\n\n ;({}); // @--end-of-file-for-module=ng2-rest lib/rest.class.ts","export class Cookie {\n\n public static get Instance(): Cookie {\n if (!Cookie.__instance) {\n Cookie.__instance = new Cookie();\n }\n return Cookie.__instance as any;\n }\n private static __instance;\n\n private constructor() {\n }\n\n read(name: string) {\n var result = new RegExp('(?:^|; )' + encodeURIComponent(name) + '=([^;]*)').exec(document.cookie);\n return result ? result[1] : null;\n }\n\n write(name: string, value: string, days?: number) {\n if (!days) {\n days = 365 * 20;\n }\n\n var date = new Date();\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\n\n var expires = \"; expires=\" + date.toUTCString();\n\n document.cookie = name + \"=\" + value + expires + \"; path=/\";\n }\n\n remove(name: string) {\n this.write(name, \"\", -1);\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=ng2-rest lib/cookie.ts","import { _ } from 'tnp-core/websql';\nimport { Models } from './models';\nimport { Log, Level } from 'ng2-logger/websql';\nimport { Helpers } from 'tnp-core/websql';\nimport { RestHeaders } from './rest-headers';\nconst log = Log.create('request-cache', Level.__NOTHING)\n\n\nexport class RequestCache {\n\n static readonly LOCAL_STORAGE_KEY = 'ng2restrequestcache';\n\n private static cached: RequestCache[] = [];\n private static isRestoredFromLocalStorage = false;\n\n private static restoreFromLocalStorage() {\n if (Helpers.isNode) {\n return;\n }\n if (!RequestCache.isRestoredFromLocalStorage) {\n RequestCache.isRestoredFromLocalStorage = true;\n const data = localStorage.getItem(RequestCache.LOCAL_STORAGE_KEY);\n let requests: RequestCache[] = [];\n if (data) {\n try {\n requests = JSON.parse(data) as RequestCache[];\n } catch (error) {\n\n }\n const restored = requests.map(r => {\n let { sourceRequest, responseText, body, headers, circular,\n entity, isArray, cookies, statusCode } = r.response;\n r.response = new Models.HttpResponse(\n sourceRequest,\n responseText,\n RestHeaders.from(headers),\n statusCode,\n entity,\n circular,\n -1, // jobid from local storage TODO\n isArray,\n );\n r = new RequestCache(r.response);\n r.response.rq = r;\n\n return r;\n });\n log.i('RESTORED FROM LOCAL STORAGE', restored);\n RequestCache.cached = restored;\n }\n\n }\n }\n\n public static findBy(sourceRequest: Models.HandleResultSourceRequestOptions) {\n log.i('findby', sourceRequest)\n log.i('RequestCache.cached', RequestCache.cached)\n RequestCache.restoreFromLocalStorage();\n return RequestCache.cached.find(c => {\n const a = c.response.sourceRequest;\n const b = sourceRequest;\n return (\n a.isArray === b.isArray &&\n a.url === b.url &&\n a.method === b.method &&\n a.body === b.body\n )\n });\n }\n\n\n\n\n constructor(\n public response: Models.HttpResponse<any>\n ) {\n\n }\n\n get containsCache() {\n RequestCache.restoreFromLocalStorage();\n return RequestCache.cached.includes(this);\n }\n\n private persistsInLocalStorage() {\n localStorage.setItem(RequestCache.LOCAL_STORAGE_KEY,\n JSON.stringify(RequestCache.cached.map(r => {\n return {\n response: {\n sourceRequest: r.response.sourceRequest,\n responseText: r.response.responseText,\n headers: r.response.headers,\n statusCode: r.response.statusCode,\n entity: r.response.entity,\n circular: r.response.circular,\n isArray: r.response.isArray,\n } as Models.HttpResponse<any>\n };\n })));\n }\n\n store() {\n RequestCache.restoreFromLocalStorage();\n if (!this.containsCache) {\n RequestCache.cached.push(this);\n this.persistsInLocalStorage();\n } else {\n console.log('already stored');\n }\n return this;\n }\n\n remove() {\n RequestCache.restoreFromLocalStorage();\n const index = RequestCache.cached.indexOf(this);\n if (index !== -1) {\n RequestCache.cached.splice(index, 1);\n this.persistsInLocalStorage();\n } else {\n console.log('already removed');\n }\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=ng2-rest lib/request-cache.ts","import { Observable } from 'rxjs';\nimport { Subject } from 'rxjs';\nimport { Log, Level } from 'ng2-logger/websql';\nimport { RestHeaders } from './rest-headers';\nimport { Rest } from './rest.class';\nimport { Cookie } from './cookie';\nimport { Mapping } from './mapping';\nimport { AxiosResponse } from 'axios';\nimport { Models as HelpersModels } from 'typescript-class-helpers/websql'\nimport { JSON10, Circ } from 'json10/websql';\nimport { RequestCache } from './request-cache';\nimport { _ } from 'tnp-core/websql';\nimport { ConfigModels } from 'tnp-config/websql';\n\n\nexport namespace Models {\n\n export import HttpMethod = ConfigModels.HttpMethod;\n export import ParamType = ConfigModels.ParamType;\n\n export import MethodConfig = HelpersModels.MethodConfig;\n export import ClassConfig = HelpersModels.ClassConfig;\n export import ParamConfig = HelpersModels.ParamConfig\n\n\n export interface HandleResultOptions {\n res: Models.MockResponse;\n method: Models.HttpMethod;\n jobid?: number;\n isArray?: boolean;\n }\n\n export interface HandleResultSourceRequestOptions {\n url: string,\n method: Models.HttpMethod,\n\n body: any,\n isArray: boolean,\n }\n\n export type BackendError = {\n msg?: string;\n stack?: string[];\n data: any;\n }\n\n export type MetaRequest = {\n path: string,\n endpoint: string;\n entity: Mapping.Mapping;\n circular: Circ[];\n }\n export type HttpCode = 200 | 400 | 401 | 404 | 500;\n\n export type PromiseObservableMix<T> = Promise<T> & {\n cache?: RequestCache,\n observable: Observable<T>;\n }\n\n export type MethodWithoutBody<E, T, R = PromiseObservableMix<E>> = (params?: UrlParams[], doNotSerializeParams?: boolean) => R\n export type MethodWithBody<E, T, R = PromiseObservableMix<E>> = (item?: T, params?: UrlParams[], doNotSerializeParams?: boolean) => R\n export type ReplayData = {\n subject: Subject<any>,\n data: { url: string, body: string, headers: RestHeaders, isArray: boolean; },\n /**\n * jobid\n */\n id: number;\n };\n export type ReqParams = { url: string, method: ConfigModels.HttpMethod, headers?: RestHeaders, body?: any, jobid: number, isArray: boolean };\n\n export interface ResourceModel<A, TA> {\n model: (pathModels?: Object, responseObjectType?: Function) => Rest<A, TA>,\n replay: (method: ConfigModels.HttpMethod) => void;\n headers: RestHeaders;\n }\n\n export interface Ng2RestMethods<E, T> {\n get: MethodWithoutBody<E, T>;\n post: MethodWithBody<E, T>;\n put: MethodWithBody<E, T>;\n patch: MethodWithBody<E, T>;\n head: MethodWithoutBody<E, T>;\n delete: MethodWithoutBody<E, T>;\n jsonp: MethodWithoutBody<E, T>;\n }\n\n export type MockController = (\n url: string,\n method: ConfigModels.HttpMethod,\n headers?: RestHeaders,\n body?: any\n ) => MockResponse;\n\n export type MockHttp = (MockResponse | MockController);\n\n export interface FnMethodsHttp<T, TA> extends Ng2RestMethods<HttpResponse<T>, T> {\n array: Ng2RestMethods<HttpResponse<TA>, TA>;\n };\n\n export interface FnMethodsHttpWithMock<T, TA> extends Ng2RestMethods<HttpResponse<T>, T> {\n array: Ng2RestMethods<HttpResponse<TA>, TA>;\n mock(mock: MockHttp, code: HttpCode): FnMethodsHttp<T, TA>;\n };\n\n\n\n export interface NestedParams {\n [params: string]: string;\n }\n\n export interface UrlParams {\n [urlModelName: string]: string | number | boolean | RegExp | Object;\n regex?: RegExp;\n }[];\n\n export abstract class BaseBody {\n protected toJSON(data, isJSONArray = false) {\n let r = isJSONArray ? [] : {};\n if (typeof data === 'string') {\n try {\n r = JSON.parse(data);\n } catch (e) { }\n } else if (typeof data === 'object') {\n return data;\n }\n return r as any;\n }\n }\n\n export class HttpBody<T> extends BaseBody {\n\n constructor(private body: string, private isArray = false,\n private entity: Mapping.Mapping,\n private circular: Circ[]\n ) {\n super();\n }\n\n public get booleanValue() {\n return ['ok', 'true'].includes(this.body.trim());\n }\n\n public get rawJson(): Partial<T> {\n let res = this.toJSON(this.body, this.isArray);\n if (this.circular && Array.isArray(this.circular)) {\n res = JSON10.parse(JSON.stringify(res), this.circular)\n }\n return res;\n }\n\n public get json(): T {\n if (this.entity && typeof this.entity === 'function') {\n return this.entity(); // @LAST\n }\n if (this.entity && typeof this.entity === 'object') {\n const json = this.toJSON(this.body, this.isArray);\n return Mapping.encode(json, this.entity, this.circular) as any;\n }\n let res = this.toJSON(this.body, this.isArray);\n if (this.circular && Array.isArray(this.circular)) {\n res = JSON10.parse(JSON.stringify(res), this.circular)\n }\n return res;\n }\n public get text() {\n return this.body.replace(/^\\\"/, '').replace(/\\\"$/, '')\n }\n }\n\n export class ErrorBody extends BaseBody {\n constructor(private data) {\n super();\n }\n\n public get json(): Object {\n return this.toJSON(this.data);\n }\n public get text() {\n return this.data\n }\n }\n\n\n export abstract class BaseResponse<T> {\n protected static readonly cookies = Cookie.Instance;\n\n public get cookies() {\n return BaseResponse.cookies;\n }\n constructor(\n public responseText?: string,\n public readonly headers?: RestHeaders,\n public readonly statusCode?: HttpCode | number,\n public isArray = false\n ) {\n }\n }\n\n export class HttpResponse<T> extends BaseResponse<T> {\n public body?: HttpBody<T>;\n\n\n\n\n rq: RequestCache;\n constructor(\n public sourceRequest: Models.HandleResultSourceRequestOptions,\n public responseText?: string,\n public headers?: RestHeaders,\n public statusCode?: HttpCode | number,\n public entity?: Mapping.Mapping | Function,\n public circular?: Circ[],\n public jobid?: number,\n public isArray = false,\n ) {\n super(responseText, headers, statusCode, isArray);\n\n\n\n this.init()\n }\n\n public init() {\n if (typeof this.entity === 'string') {\n\n let entityJSON = this.headers.getAll(this.entity)\n if (!!entityJSON) {\n this.entity = JSON.parse(entityJSON.join());\n }\n }\n if (typeof this.circular === 'string') {\n\n let circuralJSON = this.headers.getAll(this.circular);\n if (!!circuralJSON) {\n this.circular = JSON.parse(circuralJSON.join());\n }\n\n }\n this.body = new HttpBody(this.responseText, this.isArray, this.entity, this.circular) as any;\n }\n\n get cache() {\n if (_.isUndefined(this.rq)) {\n this.rq = new RequestCache(this);\n }\n return new RequestCache(this);\n }\n\n }\n\n export class HttpResponseError extends BaseResponse<any> {\n private body: ErrorBody;\n\n\n\n constructor(\n public message: string,\n responseText?: string,\n headers?: RestHeaders,\n statusCode?: HttpCode | number,\n public jobid?: number,\n ) {\n super(responseText, headers, statusCode);\n this.body = new ErrorBody(responseText)\n }\n }\n\n export interface MockResponse {\n data?: any;\n code?: HttpCode;\n error?: string;\n headers?: RestHeaders;\n jobid?: number;\n isArray: boolean;\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=ng2-rest lib/models.ts","import { firstValueFrom, Observable } from 'rxjs';\nimport { Subject } from 'rxjs';\n\nimport { _ } from 'tnp-core/websql';\n\nimport { Models } from './models';\nimport { RestHeaders } from './rest-headers';\n\nimport { Helpers } from 'tnp-core/websql';\nimport { Level } from 'ng2-logger/websql';\nimport axios, { AxiosResponse } from 'axios';\nimport { Resource } from './resource.service';\nimport { Log, Logger } from 'ng2-logger/websql';\n\nimport { RequestCache } from './request-cache';\nconst log = Log.create('[ng2-rest] rest-request'\n , Level.__NOTHING\n)\n\nconst jobIDkey = 'jobID';\nconst customObs = 'customObs';\nconst cancelFn = 'cancelFn';\nconst isCanceled = 'isCanceled';\ndeclare const global: any;\n\n\n\n\nexport class RestRequest {\n\n public static zone;\n private static jobId = 0;\n private subjectInuUse: { [id: number]: Subject<any> } = {};\n private meta: { [id: number]: Models.MetaRequest } = {};\n\n\n private handlerResult(options: Models.HandleResultOptions,\n sourceRequest: Models.HandleResultSourceRequestOptions) {\n if (_.isUndefined(options)) {\n options = {} as any;\n }\n\n const { res, jobid, isArray, method } = options;\n\n if (typeof res !== 'object') {\n throw new Error('No resposnse for request. ');\n }\n\n if (Helpers.isBrowser) {\n res.headers = RestHeaders.from(res.headers);\n }\n\n\n if (res.error) {\n this.subjectInuUse[jobid].error(new Models.HttpResponseError(res.error, res.data, res.headers, res.code, jobid));\n return;\n }\n const entity = this.meta[jobid].entity;\n const circular = this.meta[jobid].circular;\n\n const success = (Resource['_listenSuccess'] as Subject<Models.HttpResponse<any>>)\n\n const reqResp = new Models.HttpResponse(sourceRequest, res.data, res.headers, res.code, entity, circular, jobid, isArray);\n success.next(reqResp);\n\n this.subjectInuUse[jobid].next(reqResp);\n this.meta[jobid] = void 0;\n this.subjectInuUse[jobid].complete();\n }\n checkCache(sourceRequest: Models.HandleResultSourceRequestOptions, jobid: number) {\n const existedInCache = RequestCache.findBy(sourceRequest);\n if (existedInCache) {\n log.i('cache exists', existedInCache)\n const success = (Resource['_listenSuccess'] as Subject<Models.HttpResponse<any>>);\n success.next(existedInCache.response);\n this.subjectInuUse[jobid].next(existedInCache);\n this.subjectInuUse[jobid].complete();\n return true;\n }\n\n return false;\n }\n\n private async req(\n url: string,\n method: Models.HttpMethod,\n headers?: RestHeaders,\n body?: any,\n jobid?: number,\n isArray = false,\n mockHttp?: Models.MockHttp\n ) {\n if (this.checkCache({\n url,\n body,\n isArray,\n method\n }, jobid)) {\n return;\n }\n\n const CancelToken = axios.CancelToken;\n const source = CancelToken.source();\n this.subjectInuUse[jobid][cancelFn] = source.cancel;\n\n var response: AxiosResponse<any>;\n if (mockHttp) {\n\n if (typeof mockHttp === 'object') {\n response = {\n data: mockHttp.data,\n status: mockHttp.code,\n headers: mockHttp.headers,\n statusText: mockHttp.error,\n config: {}\n }\n } else if (typeof mockHttp === 'function') {\n const r = mockHttp(url, method, headers, body);\n response = {\n data: r.data,\n status: r.code,\n headers: r.headers,\n statusText: r.error,\n config: {}\n }\n }\n }\n\n try {\n if (!response) {\n\n\n\n\n response = await axios({\n url,\n method,\n data: body,\n responseType: 'text',\n headers: headers.toJSON(),\n cancelToken: source.token,\n\n });\n\n }\n\n if (this.subjectInuUse[jobid][isCanceled]) {\n return;\n }\n\n this.handlerResult({\n res: {\n code: response.status as any,\n data: JSON.stringify(response.data),\n isArray,\n jobid,\n headers: RestHeaders.from(response.headers)\n },\n method,\n jobid,\n isArray\n }, {\n url,\n body,\n method,\n isArray,\n });\n } catch (catchedError) {\n if (this.subjectInuUse[jobid][isCanceled]) {\n return;\n }\n\n\n if (typeof catchedError === 'object' && catchedError.response && catchedError.response.data) {\n const err = catchedError.response.data;\n const msg: string = catchedError.response.data.message || '';\n let stack: string[] = (err.stack || '').split('\\n');\n\n const errObs = (Resource['_listenErrors'] as Subject<Models.BackendError>);\n errObs.next({\n msg,\n stack,\n data: catchedError.response.data\n });\n }\n const error = (catchedError && catchedError.response) ? `[${catchedError.response.statusText}]: ` : '';\n this.handlerResult({\n res: {\n code: (catchedError && catchedError.response) ? catchedError.response.status as any : void 0,\n error: `${error}${catchedError.message}`,\n data: (catchedError && catchedError.response) ? JSON.stringify(catchedError.response.data) : void 0,\n isArray,\n jobid,\n headers: RestHeaders.from(catchedError && catchedError.response && catchedError.response.headers)\n },\n method,\n jobid,\n isArray\n }, {\n url,\n body,\n isArray,\n method\n });\n }\n }\n\n private getReplay(method: Models.HttpMethod, meta: Models.MetaRequest, onlyGetLastReplayForMethod: boolean): Models.ReplayData {\n let replay: Models.ReplayData;\n\n\n if (_.isUndefined(this.replaySubjects[meta.endpoint])) {\n\n this.replaySubjects[meta.endpoint] = {};\n }\n if (_.isUndefined(this.replaySubjects[meta.endpoint][meta.path])) {\n\n this.replaySubjects[meta.endpoint][meta.path] = {};\n }\n if (_.isUndefined(this.replaySubjects[meta.endpoint][meta.path][method])) {\n\n this.replaySubjects[meta.endpoint][meta.path][method] = {};\n }\n\n\n const objectIDToCreateOrLast = (Object.keys(this.replaySubjects[meta.endpoint][meta.path][method] as Object).length) +\n (onlyGetLastReplayForMethod ? 0 : 1);\n if (onlyGetLastReplayForMethod && (objectIDToCreateOrLast === 0)) {\n return replay;\n }\n\n if (_.isUndefined(this.replaySubjects[meta.endpoint][meta.path][method][objectIDToCreateOrLast])) {\n\n this.replaySubjects[meta.endpoint][meta.path][method][objectIDToCreateOrLast] = <Models.ReplayData>{\n subject: new Subject(),\n data: void 0,\n };\n }\n\n replay = this.replaySubjects[meta.endpoint][meta.path][method][objectIDToCreateOrLast];\n\n if (!_.isNumber(replay.id)) {\n if (RestRequest.jobId === Number.MAX_SAFE_INTEGER) {\n RestRequest.jobId = 0;\n }\n\n const jobid: number = RestRequest.jobId++;\n replay.id = jobid;\n const subject: Subject<any> = replay.subject;\n subject[jobIDkey] = jobid; // modify internal rxjs subject obj\n\n this.meta[jobid] = meta;\n this.subjectInuUse[jobid] = subject;\n\n this.subjectInuUse[jobid][customObs] = new Observable((observer) => {\n\n\n\n observer.add(() => {\n\n if (!this.subjectInuUse[jobid][isCanceled]) {\n this.subjectInuUse[jobid][isCanceled] = true;\n if (typeof this.subjectInuUse[jobid][cancelFn] === 'function') {\n this.subjectInuUse[jobid][cancelFn]('[ng2-rest] on purpose canceled http request');\n }\n } else {\n\n }\n })\n const sub = subject.subscribe({\n next: a => observer.next(a),\n error: a => observer.error(a),\n complete: () => {\n sub.unsubscribe();\n observer.complete()\n },\n });\n });\n\n\n\n\n\n\n\n\n\n\n\n\n\n }\n\n return replay;\n }\n\n\n\n\n private generalReq(\n method: Models.HttpMethod,\n url: string,\n body: string,\n headers: RestHeaders,\n meta: Models.MetaRequest,\n isArray: boolean,\n mockHttp: Models.MockHttp): Models.PromiseObservableMix<any> {\n\n const replay: Models.ReplayData = this.getReplay(method, meta, false);\n replay.data = { url, body, headers, isArray };\n\n ((pthis, purl, pmethod, pheaders, pbody, pid, pisArray, pmockHttp) => {\n\n setTimeout(() => pthis.req(purl, pmethod, pheaders, pbody, pid, pisArray, pmockHttp));\n })(this, url, method, headers, body, replay.id, isArray, mockHttp)\n\n const resp: Models.PromiseObservableMix<any> = firstValueFrom(replay.subject[customObs]) as any;\n resp.observable = replay.subject[customObs];\n resp.cache = RequestCache.findBy({\n body,\n isArray,\n method,\n url\n });\n return resp;\n }\n\n get(\n url: string,\n body: string,\n headers: RestHeaders,\n meta: Models.MetaRequest,\n isArray: boolean, mockHttp: Models.MockHttp\n ): Models.PromiseObservableMix<any> {\n return this.generalReq('get', url, body, headers, meta, isArray, mockHttp);\n }\n\n head(\n url: string,\n body: string,\n headers: RestHeaders,\n meta: Models.MetaRequest,\n isArray: boolean, mockHttp: Models.MockHttp\n ): Models.PromiseObservableMix<any> {\n return this.generalReq('head', url, body, headers, meta, isArray, mockHttp);\n }\n\n delete(\n url: string,\n body: string,\n headers: RestHeaders,\n meta: Models.MetaRequest,\n isArray: boolean,\n mockHttp: Models.MockHttp): Models.PromiseObservableMix<any> {\n return this.generalReq('delete', url, body, headers, meta, isArray, mockHttp);\n }\n\n post(\n url: string,\n body: string,\n headers: RestHeaders,\n meta: Models.MetaRequest,\n isArray: boolean,\n mockHttp: Models.MockHttp\n ): Models.PromiseObservableMix<any> {\n return this.generalReq('post', url, body, headers, meta, isArray, mockHttp);\n }\n\n put(\n url: string,\n body: string,\n headers: RestHeaders,\n meta: Models.MetaRequest,\n isArray: boolean,\n mockHttp: Models.MockHttp\n ): Models.PromiseObservableMix<any> {\n return this.generalReq('put', url, body, headers, meta, isArray, mockHttp);\n }\n\n patch(\n url: string,\n body: string,\n headers: RestHeaders,\n meta: Models.MetaRequest,\n isArray: boolean,\n mockHttp: Models.MockHttp\n ): Models.PromiseObservableMix<any> {\n return this.generalReq('patch', url, body, headers, meta, isArray, mockHttp);\n }\n\n jsonp(\n url: string,\n body: string,\n headers: RestHeaders,\n meta: Models.MetaRequest,\n isArray: boolean,\n mockHttp: Models.MockHttp\n ): Models.PromiseObservableMix<any> {\n\n const replay: Models.ReplayData = this.getReplay('jsonp', meta, false);\n const jobid = replay.id;\n const method = 'jsonp'\n setTimeout(() => {\n if (url.endsWith('/')) url = url.slice(0, url.length - 1)\n let num = Math.round(10000 * Math.random());\n let callbackMethodName = \"cb_\" + num;\n window[callbackMethodName] = (data) => {\n if (this.checkCache({\n url,\n body,\n isArray,\n method\n }, jobid)) {\n return;\n }\n this.handlerResult({\n res: {\n data, isArray\n },\n method,\n jobid,\n isArray\n }, {\n url,\n body,\n isArray,\n method,\n })\n }\n let sc = document.createElement('script');\n sc.src = `${url}?callback=${callbackMethodName}`;\n document.body.appendChild(sc);\n document.body.removeChild(sc);\n })\n\n const resp: Models.PromiseObservableMix<any> = firstValueFrom(replay.subject[customObs]) as any;\n resp.observable = replay.subject[customObs];\n console.log('assiging custom observable')\n resp.cache = RequestCache.findBy({\n body,\n isArray,\n method,\n url\n })\n return resp;\n }\n\n private replaySubjects = {};\n public replay(method: Models.HttpMethod, meta: Models.MetaRequest) {\n const replay: Models.ReplayData = this.getReplay(method, meta, true);\n if (!replay || !replay.data) {\n console.warn(`Canno replay first ${method} request from ${meta.endpoint}/${meta.path}`);\n return;\n };\n if (replay && replay.subject && Array.isArray(replay.subject.observers) &&\n replay.subject.observers.length === 0) {\n console.warn(`No observators for ${method} request from ${meta.endpoint}/${meta.path}`);\n return;\n }\n const url = replay.data.url;\n const headers = replay.data.headers;\n const body = replay.data.body;\n const isArray = replay.data.isArray;\n setTimeout(() => this.req(url, method, headers, body, replay.id, isArray))\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=ng2-rest lib/rest-request.ts","\nimport { Observable } from 'rxjs';\nimport { Subject } from 'rxjs';\nimport { Log, Level } from 'ng2-logger/websql';\nconst log = Log.create('resouce-service',\n Level.__NOTHING\n)\n\nimport { Rest } from './rest.class';\nimport { RestRequest } from './rest-request';\nimport { RestHeaders } from './rest-headers';\nimport { Cookie } from './cookie';\nimport { Mapping } from './mapping';\nimport { Models } from './models';\nimport { interpolateParamsToUrl, isValid, containsModels, getModels } from './params';\nimport { Circ } from 'json10/websql';\nimport { Helpers } from 'tnp-core/websql'\nimport { CONTENT_TYPE } from './content-type';\n\n\ndeclare const global: any;\n\n\nexport class Resource<E, T, TA> {\n protected static _listenErrors = new Subject<Models.BackendError>();\n protected static _listenSuccess = new Subject<Models.HttpResponse<any>>();\n public static get listenErrors() {\n return this._listenErrors.asObservable();\n }\n\n public static get listenSuccessOperations() {\n return this._listenSuccess.asObservable();\n }\n public static enableWarnings: boolean = true;\n\n\n private getZone() {\n const isNode = (typeof window === 'undefined')\n if (isNode) { return };\n const ng = window['ng'];\n const getAllAngularRootElements = window['getAllAngularRootElements'];\n if (!ng || !getAllAngularRootElements) { return; }\n const probe = ng.probe;\n const coreTokens = ng.coreTokens;\n if (!coreTokens || !coreTokens.NgZone) { return; }\n const zoneClass = coreTokens.NgZone;\n if (!probe || typeof probe !== 'function' || !getAllAngularRootElements) { return; }\n const angularElements: any[] = getAllAngularRootElements();\n if (!Array.isArray(angularElements) || angularElements.length === 0) { return; }\n const rootElement = ng.probe(angularElements[0]);\n if (!rootElement) { return; }\n const injector = rootElement.injector;\n if (!injector || !injector.get || typeof injector.get !== 'function') { return; }\n const zone = injector.get(zoneClass)\n return zone;\n }\n\n\n public static initAngularNgZone(zone) {\n RestRequest.zone = zone;\n }\n\n private checkNestedModels(model: string, allModels: Object) {\n\n for (let p in allModels) {\n if (allModels.hasOwnProperty(p)) {\n let m = allModels[p];\n if (isValid(p)) {\n let urlModels = getModels(p);\n if (containsModels(model, urlModels)) {\n model = p;\n break;\n }\n }\n }\n }\n\n return model;\n }\n\n private static instance = new Resource<string, any, any>();\n private static endpoints = {};\n public static getModel(endpoint: string, model: string): Rest<any> {\n model = Resource.prepareModel(model);\n const e = Resource.endpoints[endpoint];\n if (!e) { return void 0; }\n const r = Resource.endpoints[endpoint].models[model];\n return Resource.endpoints[endpoint].models[model];\n }\n private static request: RestRequest = new RestRequest();\n\n\n\n\n public static create<A, TA = A[]>(\n e: string,\n model?: string,\n entityMapping?: Mapping.Mapping,\n circular?: Circ[],\n customContentType?: RestHeaders,\n ): Models.ResourceModel<A, TA> {\n const badRestRegEX = new RegExp('((\\/:)[a-z]+)+', 'g');\n const matchArr = model.match(badRestRegEX) || [];\n const badModelsNextToEachOther = matchArr.join();\n const atleas2DoubleDots = ((badModelsNextToEachOther.match(new RegExp(':', 'g')) || []).length >= 2);\n if (atleas2DoubleDots && model.search(badModelsNextToEachOther) !== -1) {\n throw new Error(`\n\nBad rest model: ${model}\n\nDo not create rest models like this: /book/author/:bookid/:authorid\nInstead use nested approach: /book/:bookid/author/:authorid\n `)\n };\n Resource.map(e, e);\n Resource.instance.add(e, model ? model : '', entityMapping, circular, customContentType);\n\n return {\n model: (params?: Object) => Resource.instance.api(\n e,\n interpolateParamsToUrl(params, model)\n ),\n replay: (method: Models.HttpMethod) => {\n Resource.getModel(e, model).replay(method);\n },\n get headers() {\n return Resource.getModel(e, model).headers;\n }\n }\n }\n\n\n\n public static reset() {\n Resource.endpoints = {};\n }\n\n\n\n private constructor() {\n setTimeout(() => {\n const zone = this.getZone();\n if (!RestRequest.zone) { RestRequest.zone = zone };\n })\n }\n\n\n public static Cookies = Cookie.Instance;\n\n\n private static map(endpoint: string, url: string): boolean {\n\n log.i('url', url)\n let regex = /(http|https):\\/\\/(\\w+:{0,1}\\w*)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%!\\-\\/]))?/;\n let e = endpoint;\n if (!regex.test(url)) {\n throw `Url address is not correct: ${url}`;\n }\n if (url.charAt(url.length - 1) === '/') url = url.slice(0, url.length - 1);\n log.i('url after', url)\n if (Resource.endpoints[e] !== void 0) {\n Helpers.log('Cannot use map function at the same API endpoint again ('\n + Resource.endpoints[e].url + ')');\n return false;\n }\n Resource.endpoints[e] = {\n url: url,\n models: {},\n entity: null\n };\n log.i('enpoints', Resource.endpoints)\n return true;\n }\n\n\n private static prepareModel(model) {\n if (model.charAt(model.length - 1) === '/') model = model.slice(0, model.length - 1);\n if (model.charAt(0) === '/') model = model.slice(1, model.length);\n return model;\n }\n\n\n\n /**\n * And enipoint to application\n *\n * @param {E} endpoint\n * @param {string} model\n * @returns {boolean}\n */\n private add(endpoint: E, model: string, entity: Mapping.Mapping, circular?: Circ[], customContentType?: RestHeaders) {\n log.i(`I am maping ${model} on ${<any>endpoint}`);\n model = Resource.prepareModel(model);\n\n let e: string;\n e = <string>(endpoint).toString();\n\n if (Resource.endpoints[e] === void 0) {\n console.error('Endpoint is not mapped ! Cannot add model ' + model);\n return;\n }\n if (Resource.endpoints[e].models[model] !== void 0) {\n if (Resource.enableWarnings) console.warn(`Model '${model}' is already defined in endpoint: `\n + Resource.endpoints[e].url);\n return;\n }\n Resource.endpoints[e].models[model] =\n new Rest<T, TA>(Resource.endpoints[e].url\n + '/' + model, Resource.request, {\n endpoint: e,\n path: model,\n entity,\n circular,\n }, customContentType); // TODO put custom content type in meta ?\n return;\n }\n\n\n\n /**\n * Access api throught endpoint\n *\n * @param {E} endpoint\n * @param {string} model\n * @returns {Rest<T, TA>}\n */\n private api(endpoint: E, model: string): Rest<T, TA> {\n\n\n\n\n\n\n if (model.charAt(0) === '/') model = model.slice(1, model.length);\n let e = <string>(endpoint).toString();\n if (Resource.endpoints[e] === void 0) {\n throw `Endpoint: ${<any>endpoint} is not mapped ! Cannot add model: ${model}`;\n }\n let allModels: Object = Resource.endpoints[e].models;\n let orgModel = model;\n model = this.checkNestedModels(model, allModels);\n\n if (Resource.endpoints[e].models[model] === void 0) {\n\n throw `Model '${model}' is undefined in endpoint: ${Resource.endpoints[e].url} `;\n }\n\n let res: Rest<T, TA> = Resource.endpoints[<string>(endpoint).toString()].models[model];\n\n\n\n\n\n\n if (orgModel !== model) {\n let baseUrl = Resource.endpoints[<string>(endpoint).toString()].url;\n\n\n\n res.__rest_endpoint = `${baseUrl}/${orgModel}`;\n } else {\n res.__rest_endpoint = void 0;\n };\n\n\n return res;\n }\n\n\n}\n\n\n\n\n\n\n\n\n\n\n\n\n ;({}); // @--end-of-file-for-module=ng2-rest lib/resource.service.ts","import { Observable } from 'rxjs';\nimport { Subscription } from 'rxjs';\nimport { Observer } from 'rxjs';\n\nimport { Models } from '../models';\nimport { Resource } from '../resource.service';\n\n\n\nexport interface RestPromises<A, TA, QP extends Models.UrlParams> {\n get: (queryParams?: QP) => Observable<Models.HttpResponse<A>>;\n head: (queryParams?: QP) => Observable<Models.HttpResponse<A>>;\n query: (queryParams?: QP) => Observable<Models.HttpResponse<TA>>;\n put: (item?: A, queryParams?: QP) => Observable<Models.HttpResponse<A>>;\n patch: (item?: A, queryParams?: QP) => Observable<Models.HttpResponse<A>>;\n post: (item?: A, queryParams?: QP) => Observable<Models.HttpResponse<A>>;\n delete: (queryParams?: QP) => Observable<Models.HttpResponse<A> | any>;\n}\n\nexport interface Model<A, TA, RP extends Object, QP extends Models.UrlParams> {\n (restParams?: RP): RestPromises<A, TA, QP>;\n}\n\n\n\n\n/**\n *\n * @export\n * @abstract\n * @class SimpleResource\n * @extends {Resource<T, A, TA>}\n * @template E Endpoint type\n * @template A Single modle type\n * @template TA Array Model Type\n * @template RP rest url parameters type\n * @template QP query parameter type\n */\nclass ExtendedResource<E, A, TA, RP extends Object, QP extends Models.UrlParams> {\n public static doNotSerializeQueryParams = false;\n public static handlers: Subscription[] = [];\n\n rest: Models.ResourceModel<A, TA>;\n\n /**\n * Get model by rest params\n */\n model: Model<A, TA, RP, QP> = (restParams?: RP) => {\n\n return {\n\n get: (queryPrams?: QP) => {\n return Observable.create((observer: Observer<A>) => {\n ExtendedResource.handlers.push(this.rest.model(restParams)\n .get([queryPrams], ExtendedResource.doNotSerializeQueryParams)\n .observable\n .subscribe(\n data => observer.next(data.body.json),\n err => observer.error(err),\n () => observer.complete()))\n })\n },\n\n patch: (item: A, queryParams?: QP) => {\n return Observable.create((observer: Observer<A>) => {\n ExtendedResource.handlers.push(this.rest.model(restParams)\n .put(item, [queryParams], ExtendedResource.doNotSerializeQueryParams)\n .observable\n .subscribe(\n data => observer.next(data.body.json),\n err => observer.error(err),\n () => observer.complete()))\n })\n\n },\n\n head: (queryPrams?: QP) => {\n return Observable.create((observer: Observer<A>) => {\n ExtendedResource.handlers.push(this.rest.model(restParams)\n .head([queryPrams], ExtendedResource.doNotSerializeQueryParams)\n .observable\n .subscribe(\n data => observer.next(data.body.json),\n err => observer.error(err),\n () => observer.complete()))\n })\n },\n\n query: (queryPrams?: QP) => {\n return Observable.create((observer: Observer<TA>) => {\n ExtendedResource.handlers.push(this.rest.model(restParams).\n array\n .get([queryPrams], ExtendedResource.doNotSerializeQueryParams)\n .observable\n .subscribe(\n data => observer.next(data.body.json),\n err => observer.error(err),\n () => observer.complete()))\n })\n },\n\n\n post: (item: A, queryParams?: QP) => {\n return Observable.create((observer: Observer<A>) => {\n ExtendedResource.handlers.push(this.rest.model(restParams)\n .post(item, [queryParams], ExtendedResource.doNotSerializeQueryParams)\n .observable\n .subscribe(\n data => observer.next(data.body.json),\n err => observer.error(err),\n () => observer.complete()))\n })\n\n },\n\n\n put: (item: A, queryParams?: QP) => {\n return Observable.create((observer: Observer<A>) => {\n ExtendedResource.handlers.push(this.rest.model(restParams)\n .put(item, [queryParams], ExtendedResource.doNotSerializeQueryParams)\n .observable\n .subscribe(\n data => observer.next(data.body.json),\n err => observer.error(err),\n () => observer.complete()))\n })\n\n },\n\n\n delete: (queryPrams?: QP) => {\n return Observable.create((observer: Observer<A>) => {\n ExtendedResource.handlers.push(this.rest.model(restParams)\n .delete([queryPrams], ExtendedResource.doNotSerializeQueryParams)\n .observable\n .subscribe(\n data => observer.next(data.body.json),\n err => observer.error(err),\n () => observer.complete()))\n })\n }\n\n\n }\n }\n\n\n\n\n public constructor(private endpoint: E | string, private path_model: string) {\n this.rest = <any>Resource.create<A, TA>(<any>endpoint, path_model);\n\n }\n\n}\n\n\n\n/**\n *\n * @export\n * @class SimpleResource\n * @template A single model type\n * @template TA array model type\n * @template RP rest parameters type\n * @template QP query parameters type\n */\nexport class SimpleResource<A, TA> {\n model: Model<A, TA, Object, Models.UrlParams>;\n\n\n private static _isSetQueryParamsSerialization = false;\n public static set doNotSerializeQueryParams(value) {\n if (!SimpleResource._isSetQueryParamsSerialization) {\n SimpleResource._isSetQueryParamsSerialization = true;\n ExtendedResource.doNotSerializeQueryParams = value\n return;\n }\n console.warn(`Query params serialization already set as\n ${ExtendedResource.doNotSerializeQueryParams},`);\n }\n\n public static __destroy() {\n ExtendedResource.handlers.forEach(h => h.unsubscribe());\n }\n\n constructor(endpoint: string, model: string) {\n let rest = new ExtendedResource<string, A, TA, Object, Models.UrlParams>(endpoint, model);\n this.model = rest.model;\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=ng2-rest lib/other/simple-resource.ts","export * from './resource.service';\nexport * from './models';\nexport * from './mapping';\nexport * from './rest.class';\nexport * from './rest-headers';\nexport * from './helpers';\nexport * from './request-cache';\nexport * from './content-type';\nexport { SimpleResource } from './other/simple-resource';\nexport { interpolateParamsToUrl } from './params';\n\n ;({}); // @--end-of-file-for-module=ng2-rest lib/index.ts","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Helpers","log","HelpersModels"],"mappings":"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"}
@@ -251,7 +251,7 @@ var Mapping;
251
251
  Mapping.DefaultModelWithMapping = DefaultModelWithMapping;
252
252
  })(Mapping || (Mapping = {}));
253
253
  ;
254
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/mapping.ts
254
+ ({}); // @--end-of-file-for-module=ng2-rest lib/mapping.ts
255
255
 
256
256
  // @ts-ignore
257
257
  class Helpers extends CoreHelpers {
@@ -272,7 +272,7 @@ class Helpers extends CoreHelpers {
272
272
  }
273
273
  Helpers.JSON = JSON10;
274
274
  ;
275
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/helpers.ts
275
+ ({}); // @--end-of-file-for-module=ng2-rest lib/helpers.ts
276
276
 
277
277
  const log$3 = Log.create('[ng2-rest] params', Level.__NOTHING);
278
278
  /** check if string is a valid pattern */
@@ -547,7 +547,7 @@ function prepareUrlOldWay(params) {
547
547
  return this.endpoint + '/' + params;
548
548
  }
549
549
  ;
550
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/params.ts
550
+ ({}); // @--end-of-file-for-module=ng2-rest lib/params.ts
551
551
 
552
552
  class RestHeaders {
553
553
  constructor(headers) {
@@ -676,7 +676,7 @@ class RestHeaders {
676
676
  }
677
677
  }
678
678
  ;
679
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/rest-headers.ts
679
+ ({}); // @--end-of-file-for-module=ng2-rest lib/rest-headers.ts
680
680
 
681
681
  const CONTENT_TYPE = {
682
682
  APPLICATION_JSON: RestHeaders.from({
@@ -688,7 +688,7 @@ const CONTENT_TYPE = {
688
688
  'Accept': 'application/vnd.api+json'
689
689
  }),
690
690
  };
691
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/content-type.ts
691
+ ({}); // @--end-of-file-for-module=ng2-rest lib/content-type.ts
692
692
 
693
693
  class Rest {
694
694
  constructor(endpoint, request, meta, customContentType) {
@@ -802,7 +802,7 @@ class Rest {
802
802
  }
803
803
  }
804
804
  ;
805
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/rest.class.ts
805
+ ({}); // @--end-of-file-for-module=ng2-rest lib/rest.class.ts
806
806
 
807
807
  class Cookie {
808
808
  constructor() {
@@ -831,7 +831,7 @@ class Cookie {
831
831
  }
832
832
  }
833
833
  ;
834
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/cookie.ts
834
+ ({}); // @--end-of-file-for-module=ng2-rest lib/cookie.ts
835
835
 
836
836
  const log$2 = Log.create('request-cache', Level.__NOTHING);
837
837
  class RequestCache {
@@ -924,7 +924,7 @@ RequestCache.LOCAL_STORAGE_KEY = 'ng2restrequestcache';
924
924
  RequestCache.cached = [];
925
925
  RequestCache.isRestoredFromLocalStorage = false;
926
926
  ;
927
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/request-cache.ts
927
+ ({}); // @--end-of-file-for-module=ng2-rest lib/request-cache.ts
928
928
 
929
929
  var Models;
930
930
  (function (Models) {
@@ -1060,7 +1060,7 @@ var Models;
1060
1060
  Models.HttpResponseError = HttpResponseError;
1061
1061
  })(Models || (Models = {}));
1062
1062
  ;
1063
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/models.ts
1063
+ ({}); // @--end-of-file-for-module=ng2-rest lib/models.ts
1064
1064
 
1065
1065
  const log$1 = Log.create('[ng2-rest] rest-request', Level.__NOTHING);
1066
1066
  const jobIDkey = 'jobID';
@@ -1370,7 +1370,7 @@ class RestRequest {
1370
1370
  }
1371
1371
  RestRequest.jobId = 0;
1372
1372
  ;
1373
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/rest-request.ts
1373
+ ({}); // @--end-of-file-for-module=ng2-rest lib/rest-request.ts
1374
1374
 
1375
1375
  const log = Log.create('resouce-service', Level.__NOTHING);
1376
1376
  class Resource {
@@ -1583,7 +1583,7 @@ Resource.endpoints = {};
1583
1583
  Resource.request = new RestRequest();
1584
1584
  Resource.Cookies = Cookie.Instance;
1585
1585
  ;
1586
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/resource.service.ts
1586
+ ({}); // @--end-of-file-for-module=ng2-rest lib/resource.service.ts
1587
1587
 
1588
1588
  /**
1589
1589
  *
@@ -1699,10 +1699,10 @@ class SimpleResource {
1699
1699
  }
1700
1700
  SimpleResource._isSetQueryParamsSerialization = false;
1701
1701
  ;
1702
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/other/simple-resource.ts
1702
+ ({}); // @--end-of-file-for-module=ng2-rest lib/other/simple-resource.ts
1703
1703
 
1704
1704
  ;
1705
- ({}); // @--end-of-file-for-module=ng2-rest tmp-src-bundle-websql/lib/index.ts
1705
+ ({}); // @--end-of-file-for-module=ng2-rest lib/index.ts
1706
1706
 
1707
1707
  /**
1708
1708
  * Generated bundle index. Do not edit.