ng2-rest 21.0.49 → 21.0.52

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 (83) hide show
  1. package/VERIFIED-BUILD-DATA.jsonc +3 -3
  2. package/browser/package.json +1 -1
  3. package/browser-prod/fesm2022/ng2-rest-browser-prod.mjs.map +1 -1
  4. package/browser-prod/package.json +1 -1
  5. package/lib/build-info._auto-generated_.d.ts +1 -1
  6. package/lib/build-info._auto-generated_.js +1 -1
  7. package/lib/package.json +1 -1
  8. package/lib-esm/app.d.ts +0 -0
  9. package/lib-esm/app.electron.d.ts +0 -0
  10. package/lib-esm/app.electron.js +82 -0
  11. package/lib-esm/app.electron.js.map +1 -0
  12. package/lib-esm/app.hosts.d.ts +3 -0
  13. package/lib-esm/app.hosts.js +48 -0
  14. package/lib-esm/app.hosts.js.map +1 -0
  15. package/lib-esm/app.js +318 -0
  16. package/lib-esm/app.js.map +1 -0
  17. package/lib-esm/app.vscode.d.ts +0 -0
  18. package/lib-esm/app.vscode.js +47 -0
  19. package/lib-esm/app.vscode.js.map +1 -0
  20. package/lib-esm/cli.d.ts +1 -0
  21. package/lib-esm/cli.js +4 -0
  22. package/lib-esm/cli.js.map +1 -0
  23. package/lib-esm/index.d.ts +1 -0
  24. package/lib-esm/index.js +2 -0
  25. package/lib-esm/index.js.map +1 -0
  26. package/lib-esm/lib/build-info._auto-generated_.d.ts +24 -0
  27. package/lib-esm/lib/build-info._auto-generated_.js +27 -0
  28. package/lib-esm/lib/build-info._auto-generated_.js.map +1 -0
  29. package/lib-esm/lib/env/env.angular-node-app.d.ts +66 -0
  30. package/lib-esm/lib/env/env.angular-node-app.js +135 -0
  31. package/lib-esm/lib/env/env.angular-node-app.js.map +1 -0
  32. package/lib-esm/lib/env/env.docs-webapp.d.ts +66 -0
  33. package/lib-esm/lib/env/env.docs-webapp.js +135 -0
  34. package/lib-esm/lib/env/env.docs-webapp.js.map +1 -0
  35. package/lib-esm/lib/env/env.electron-app.d.ts +66 -0
  36. package/lib-esm/lib/env/env.electron-app.js +135 -0
  37. package/lib-esm/lib/env/env.electron-app.js.map +1 -0
  38. package/lib-esm/lib/env/env.mobile-app.d.ts +66 -0
  39. package/lib-esm/lib/env/env.mobile-app.js +135 -0
  40. package/lib-esm/lib/env/env.mobile-app.js.map +1 -0
  41. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.d.ts +66 -0
  42. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js +135 -0
  43. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js.map +1 -0
  44. package/lib-esm/lib/env/env.vscode-plugin.d.ts +66 -0
  45. package/lib-esm/lib/env/env.vscode-plugin.js +135 -0
  46. package/lib-esm/lib/env/env.vscode-plugin.js.map +1 -0
  47. package/lib-esm/lib/env/index.d.ts +6 -0
  48. package/lib-esm/lib/env/index.js +7 -0
  49. package/lib-esm/lib/env/index.js.map +1 -0
  50. package/lib-esm/lib/index._auto-generated_.d.ts +0 -0
  51. package/lib-esm/lib/index._auto-generated_.js +6 -0
  52. package/lib-esm/lib/index._auto-generated_.js.map +1 -0
  53. package/lib-esm/lib/index.d.ts +3 -0
  54. package/lib-esm/lib/index.js +4 -0
  55. package/lib-esm/lib/index.js.map +1 -0
  56. package/lib-esm/lib/new-mapping-decode.test.d.ts +1 -0
  57. package/lib-esm/lib/new-mapping-decode.test.js +119 -0
  58. package/lib-esm/lib/new-mapping-decode.test.js.map +1 -0
  59. package/lib-esm/lib/new-mapping-encode.test.d.ts +1 -0
  60. package/lib-esm/lib/new-mapping-encode.test.js +229 -0
  61. package/lib-esm/lib/new-mapping-encode.test.js.map +1 -0
  62. package/lib-esm/lib/new-mapping.d.ts +55 -0
  63. package/lib-esm/lib/new-mapping.js +314 -0
  64. package/lib-esm/lib/new-mapping.js.map +1 -0
  65. package/lib-esm/lib/new-mapping.test.d.ts +1 -0
  66. package/lib-esm/lib/new-mapping.test.js +7 -0
  67. package/lib-esm/lib/new-mapping.test.js.map +1 -0
  68. package/lib-esm/lib/ng2-rest.d.ts +301 -0
  69. package/lib-esm/lib/ng2-rest.js +998 -0
  70. package/lib-esm/lib/ng2-rest.js.map +1 -0
  71. package/lib-esm/lib/start-cli.d.ts +1 -0
  72. package/lib-esm/lib/start-cli.js +31 -0
  73. package/lib-esm/lib/start-cli.js.map +1 -0
  74. package/lib-prod/build-info._auto-generated_.d.ts +1 -1
  75. package/lib-prod/build-info._auto-generated_.js +1 -1
  76. package/lib-prod/new-mapping.js.map +1 -1
  77. package/lib-prod/ng2-rest.js.map +1 -1
  78. package/lib-prod/package.json +1 -1
  79. package/package.json +1 -1
  80. package/src.js +4 -20
  81. package/websql/package.json +1 -1
  82. package/websql-prod/fesm2022/ng2-rest-websql-prod.mjs.map +1 -1
  83. package/websql-prod/package.json +1 -1
@@ -0,0 +1,314 @@
1
+ //#region imports
2
+ import { JSON10 } from 'json10/lib';
3
+ import { _ } from 'tnp-core/lib';
4
+ import { CLASS } from 'typescript-class-helpers/lib';
5
+ //#endregion
6
+ //#region constatns
7
+ const mappingStore = new WeakMap();
8
+ const defaultValueStore = new WeakMap();
9
+ //#endregion
10
+ //#region decorators
11
+ export function DefaultMapping(mapping) {
12
+ return function (target) {
13
+ mappingStore.set(target, { mapping });
14
+ };
15
+ }
16
+ export function DefaultModel(defaults) {
17
+ return function (target) {
18
+ defaultValueStore.set(target, { defaults });
19
+ };
20
+ }
21
+ //#endregion
22
+ //#region helpers
23
+ const isPlainObject = (v) => !!v && typeof v === 'object' && !Array.isArray(v) && !(v instanceof Date);
24
+ const deepClone = (v) => {
25
+ if (Array.isArray(v))
26
+ return v.map(deepClone);
27
+ if (isPlainObject(v)) {
28
+ const out = {};
29
+ for (const k of Object.keys(v))
30
+ out[k] = deepClone(v[k]);
31
+ return out;
32
+ }
33
+ return v;
34
+ };
35
+ /**
36
+ * Merge defaults into target, but only when target value is undefined.
37
+ * (Does not overwrite defined values.)
38
+ */
39
+ const deepMergeIfUndefined = (target, defaults) => {
40
+ if (!isPlainObject(defaults))
41
+ return;
42
+ for (const k of Object.keys(defaults)) {
43
+ const dv = defaults[k];
44
+ const tv = target[k];
45
+ if (tv === undefined) {
46
+ target[k] = deepClone(dv);
47
+ continue;
48
+ }
49
+ if (isPlainObject(tv) && isPlainObject(dv)) {
50
+ deepMergeIfUndefined(tv, dv);
51
+ }
52
+ }
53
+ };
54
+ const applyDefaultsToInstance = (instance, defaults) => {
55
+ if (!defaults)
56
+ return;
57
+ // Path-based defaults (keys containing '.')
58
+ for (const k of Object.keys(defaults)) {
59
+ if (k.includes('.')) {
60
+ const value = defaults[k];
61
+ const current = _.get(instance, k);
62
+ if (current === undefined) {
63
+ _.set(instance, k, deepClone(value));
64
+ }
65
+ }
66
+ }
67
+ // Object-based defaults (no dots) -> deep merge (only if undefined)
68
+ const objDefaults = {};
69
+ for (const k of Object.keys(defaults)) {
70
+ if (!k.includes('.'))
71
+ objDefaults[k] = defaults[k];
72
+ }
73
+ deepMergeIfUndefined(instance, objDefaults);
74
+ };
75
+ const getClassNameTokenFromItem = (item) => {
76
+ if (item == null)
77
+ return '';
78
+ if (item == undefined)
79
+ return '';
80
+ // If already constructor
81
+ if (typeof item === 'function') {
82
+ return CLASS.getName(item) || '';
83
+ }
84
+ if (typeof item !== 'object') {
85
+ return '';
86
+ }
87
+ // If instance
88
+ const classFn = item.constructor;
89
+ if (typeof classFn === 'function') {
90
+ return CLASS.getName(classFn) || '';
91
+ }
92
+ return '';
93
+ };
94
+ /**
95
+ * Encode consecutive equal tokens using # run-length.
96
+ *
97
+ * Examples:
98
+ * - ['User','User','Author','User'] -> ['User#2','Author','User']
99
+ * - ['User','User','User','User'] -> ['User#4']
100
+ * - ['User', '', '', '', 'Author', ''] -> ['User', '#3', 'Author', '']
101
+ */
102
+ const rleEncodeTokens = (tokens) => {
103
+ const out = [];
104
+ let i = 0;
105
+ while (i < tokens.length) {
106
+ const token = tokens[i];
107
+ let j = i + 1;
108
+ while (j < tokens.length && tokens[j] === token)
109
+ j++;
110
+ const count = j - i;
111
+ if (token === '') {
112
+ // null/undefined run
113
+ out.push(count >= 2 ? `#${count}` : '');
114
+ }
115
+ else {
116
+ out.push(count >= 2 ? `${token}#${count}` : token);
117
+ }
118
+ i = j;
119
+ }
120
+ return out;
121
+ };
122
+ const parseRleToken = (token) => {
123
+ // '' => no mapping for 1
124
+ if (token === '')
125
+ return { name: '', count: 1 };
126
+ // '#N' => no mapping for next N
127
+ if (token.startsWith('#')) {
128
+ const count = Number(token.slice(1));
129
+ return { name: '', count: Number.isFinite(count) && count > 0 ? count : 1 };
130
+ }
131
+ // 'Name#N' => Name for next N
132
+ const idx = token.lastIndexOf('#');
133
+ if (idx > 0) {
134
+ const name = token.slice(0, idx);
135
+ const count = Number(token.slice(idx + 1));
136
+ if (name && Number.isFinite(count) && count > 0) {
137
+ return { name, count };
138
+ }
139
+ }
140
+ // 'Name' => Name for 1
141
+ return { name: token, count: 1 };
142
+ };
143
+ const expandRleTokens = (tokens) => {
144
+ const out = [];
145
+ for (const t of tokens) {
146
+ const { name, count } = parseRleToken(t);
147
+ for (let i = 0; i < count; i++)
148
+ out.push(name);
149
+ }
150
+ return out;
151
+ };
152
+ //#endregion
153
+ //#region get default value for class instance from decorator data
154
+ export function getDefaultModel(instanceOrClass) {
155
+ const classFn = typeof instanceOrClass === 'function'
156
+ ? instanceOrClass
157
+ : instanceOrClass?.constructor;
158
+ if (classFn === undefined) {
159
+ return undefined;
160
+ }
161
+ const getter = defaultValueStore.get(classFn)?.defaults;
162
+ return getter ? getter() : undefined;
163
+ }
164
+ //#endregion
165
+ //#region get mapping from decorator data (may container Entites classes)
166
+ export function getDefaultMappingSingleObjOrClass(instanceOrClass) {
167
+ const classFn = typeof instanceOrClass === 'function'
168
+ ? instanceOrClass
169
+ : instanceOrClass?.constructor;
170
+ if (classFn === undefined) {
171
+ return undefined;
172
+ }
173
+ const getter = mappingStore.get(classFn)?.mapping;
174
+ return getter ? getter() : undefined;
175
+ }
176
+ //#endregion
177
+ //#region decode mapping (replace entites with names)
178
+ /**
179
+ * This will be send in request header to later restore class mapping
180
+ */
181
+ export function getMappingHeaderString(instanceOrClass) {
182
+ return JSON.stringify(decodeMappingForHeaderJson(instanceOrClass));
183
+ }
184
+ /**
185
+ *
186
+ * @param instanceOrClass class instance or class object
187
+ * OR array of class instancess or class objects
188
+ * @returns Mapping object ready to be JSON.stringify
189
+ */
190
+ export function decodeMappingForHeaderJson(instanceOrClass, options) {
191
+ options = options || {};
192
+ // Array encoding (special protocol)
193
+ if (Array.isArray(instanceOrClass) &&
194
+ !options.useFirstArrayItemClassNameForAllElements) {
195
+ const tokens = instanceOrClass.map(getClassNameTokenFromItem);
196
+ return { '[]': rleEncodeTokens(tokens) };
197
+ }
198
+ if (Array.isArray(instanceOrClass) &&
199
+ options.useFirstArrayItemClassNameForAllElements) {
200
+ instanceOrClass = _.first(instanceOrClass);
201
+ }
202
+ // Single object / class encoding
203
+ const mapping = getDefaultMappingSingleObjOrClass(instanceOrClass);
204
+ if (!mapping || !mapping['']) {
205
+ const className = CLASS.getClassNameFromObjInstanceOrClassFn(instanceOrClass) || '';
206
+ return {
207
+ '': className,
208
+ };
209
+ }
210
+ // Your EncodeSchema is flat (dot-path keys), so we can encode it flat too.
211
+ const mappingObj = {};
212
+ for (const key of Object.keys(mapping)) {
213
+ const v = mapping[key];
214
+ if (key === '') {
215
+ mappingObj[''] = CLASS.getName(v);
216
+ continue;
217
+ }
218
+ if (Array.isArray(v) && v.length === 1) {
219
+ const item = v[0];
220
+ mappingObj[key] =
221
+ typeof item === 'function' ? CLASS.getName(item) : String(item);
222
+ continue;
223
+ }
224
+ if (typeof v === 'function') {
225
+ mappingObj[key] = CLASS.getName(v);
226
+ continue;
227
+ }
228
+ }
229
+ return mappingObj;
230
+ }
231
+ //#endregion
232
+ //#region encode mapping from mapping schema and circular metadata
233
+ export const encodeMapping = (input, schema, circular = []) => {
234
+ const mapped = encodeMappingFn(input, schema, circular);
235
+ JSON10.applyCircularMapping(mapped, circular);
236
+ return mapped;
237
+ };
238
+ const encodeMappingFn = (input, schema, circular, parentPath = '') => {
239
+ /**
240
+ * HANDLE ARRAYS IN SCHEMA (header-only protocol)
241
+ *
242
+ * {
243
+ * '[]': ['User#1000'], // input should be in this case array...
244
+ * } // 1000 objects ready to be changed to User class instances
245
+ */
246
+ if (Array.isArray(input) && schema['[]']) {
247
+ const rle = schema['[]'];
248
+ const expanded = expandRleTokens(rle);
249
+ const out = [];
250
+ const max = input.length;
251
+ for (let i = 0; i < max; i++) {
252
+ const className = expanded[i] ?? '';
253
+ const raw = input[i];
254
+ // keep null/undefined and "no mapping" items as-is
255
+ if (!className || raw == null) {
256
+ out.push(raw);
257
+ continue;
258
+ }
259
+ const ClassFn = CLASS.getBy(className);
260
+ if (!ClassFn) {
261
+ out.push(raw);
262
+ continue;
263
+ }
264
+ out.push(encodeMappingFn(raw, { ...schema, '': ClassFn }, circular, parentPath));
265
+ }
266
+ return out;
267
+ }
268
+ // Normal array (no header array schema) -> map items using same schema
269
+ if (Array.isArray(input)) {
270
+ return input.map(item => encodeMappingFn(item, schema, circular, parentPath));
271
+ }
272
+ if (!input || typeof input !== 'object') {
273
+ return input;
274
+ }
275
+ const classNameOrFunctionInSchema = schema[''];
276
+ let RootClass = (_.isString(classNameOrFunctionInSchema) &&
277
+ classNameOrFunctionInSchema !== ''
278
+ ? CLASS.getBy(classNameOrFunctionInSchema)
279
+ : classNameOrFunctionInSchema);
280
+ const classNameOfRootClass = CLASS.getClassNameFromObjInstanceOrClassFn(RootClass);
281
+ if (classNameOfRootClass === '' || !classNameOfRootClass) {
282
+ RootClass = undefined;
283
+ }
284
+ const instance = RootClass ? new RootClass() : {};
285
+ // Apply defaults from decorator (if RootClass is known)
286
+ if (RootClass) {
287
+ const defaults = getDefaultModel(RootClass);
288
+ applyDefaultsToInstance(instance, defaults);
289
+ }
290
+ for (const key of Object.keys(input)) {
291
+ const value = input[key];
292
+ const fullPath = parentPath ? `${parentPath}.${key}` : key;
293
+ const rule = schema[fullPath];
294
+ if (!rule) {
295
+ // still recurse so nested objects/arrays also get mapped when they have deep rules
296
+ instance[key] = encodeMappingFn(value, schema, circular, fullPath);
297
+ continue;
298
+ }
299
+ // Array rule (value is expected to be array)
300
+ if (Array.isArray(rule)) {
301
+ const ItemClass = typeof rule[0] === 'string' ? CLASS.getBy(rule[0]) : rule[0];
302
+ instance[key] = Array.isArray(value)
303
+ ? value.map(v => encodeMappingFn(v, { ...schema, '': ItemClass }, circular, fullPath))
304
+ : [];
305
+ continue;
306
+ }
307
+ // Object rule
308
+ const NestedClass = typeof rule === 'string' ? CLASS.getBy(rule) : rule;
309
+ instance[key] = encodeMappingFn(value, { ...schema, '': NestedClass }, circular, fullPath);
310
+ }
311
+ return instance;
312
+ };
313
+ //#endregion
314
+ //# sourceMappingURL=new-mapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-mapping.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,iBAAiB;AACjB,OAAO,EAAQ,MAAM,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,CAAC,EAAoB,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,YAAY;AAEZ,mBAAmB;AACnB,MAAM,YAAY,GAAG,IAAI,OAAO,EAG7B,CAAC;AAEJ,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAGlC,CAAC;AA+DJ,YAAY;AAEZ,oBAAoB;AAEpB,MAAM,UAAU,cAAc,CAAI,OAA+B;IAC/D,OAAO,UAAU,MAAsB;QACrC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAI,QAA8B;IAC5D,OAAO,UAAU,MAAsB;QACrC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC;AACJ,CAAC;AAED,YAAY;AAEZ,iBAAiB;AAEjB,MAAM,aAAa,GAAG,CAAC,CAAM,EAAE,EAAE,CAC/B,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC;AAE5E,MAAM,SAAS,GAAG,CAAI,CAAI,EAAK,EAAE;IAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAQ,CAAC;IACrD,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,MAAM,GAAG,GAAQ,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAE,CAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,oBAAoB,GAAG,CAAC,MAAW,EAAE,QAAa,EAAE,EAAE;IAC1D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;QAAE,OAAO;IAErC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAErB,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;YAC1B,SAAS;QACX,CAAC;QAED,IAAI,aAAa,CAAC,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3C,oBAAoB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,QAAa,EAAE,QAAc,EAAE,EAAE;IAChE,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEtB,4CAA4C;IAC5C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACnC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,MAAM,WAAW,GAAQ,EAAE,CAAC;IAC5B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,oBAAoB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,IAAS,EAAU,EAAE;IACtD,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IAC5B,IAAI,IAAI,IAAI,SAAS;QAAE,OAAO,EAAE,CAAC;IAEjC,yBAAyB;IACzB,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,cAAc;IACd,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;IACjC,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,eAAe,GAAG,CAAC,MAAgB,EAAY,EAAE;IACrD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK;YAAE,CAAC,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QAEpB,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACjB,qBAAqB;YACrB,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC;QAED,CAAC,GAAG,CAAC,CAAC;IACR,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAIF,MAAM,aAAa,GAAG,CAAC,KAAa,EAAe,EAAE;IACnD,yBAAyB;IACzB,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAEhD,gCAAgC;IAChC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,CAAC;IAED,8BAA8B;IAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YAChD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,MAAgB,EAAY,EAAE;IACrD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,YAAY;AAEZ,kEAAkE;AAClE,MAAM,UAAU,eAAe,CAC7B,eAAmC;IAEnC,MAAM,OAAO,GACX,OAAO,eAAe,KAAK,UAAU;QACnC,CAAC,CAAC,eAAe;QACjB,CAAC,CAAE,eAAuB,EAAE,WAAW,CAAC;IAE5C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC;IACxD,OAAO,MAAM,CAAC,CAAC,CAAE,MAAM,EAAU,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,CAAC;AACD,YAAY;AAEZ,yEAAyE;AACzE,MAAM,UAAU,iCAAiC,CAC/C,eAAmC;IAEnC,MAAM,OAAO,GACX,OAAO,eAAe,KAAK,UAAU;QACnC,CAAC,CAAC,eAAe;QACjB,CAAC,CAAE,eAAuB,EAAE,WAAW,CAAC;IAE5C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClD,OAAO,MAAM,CAAC,CAAC,CAAE,MAAM,EAAU,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,CAAC;AACD,YAAY;AAEZ,qDAAqD;AAErD;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,eAA4D;IAE5D,OAAO,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,eAAe,CAAC,CAAC,CAAC;AACrE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,eAA4D,EAC5D,OAEC;IAED,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IACxB,oCAAoC;IACpC,IACE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;QAC9B,CAAC,OAAO,CAAC,wCAAwC,EACjD,CAAC;QACD,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAC9D,OAAO,EAAE,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,EAAS,CAAC;IAClD,CAAC;IAED,IACE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;QAC9B,OAAO,CAAC,wCAAwC,EAChD,CAAC;QACD,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC;IAED,iCAAiC;IACjC,MAAM,OAAO,GAAG,iCAAiC,CAAC,eAAe,CAAC,CAAC;IACnE,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QAC7B,MAAM,SAAS,GACb,KAAK,CAAC,oCAAoC,CAAC,eAAsB,CAAC,IAAI,EAAE,CAAC;QAE3E,OAAO;YACL,EAAE,EAAE,SAAS;SACd,CAAC;IACJ,CAAC;IAED,2EAA2E;IAC3E,MAAM,UAAU,GAAQ,EAAE,CAAC;IAE3B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,GAAS,OAAe,CAAC,GAAG,CAAC,CAAC;QAErC,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;YACf,UAAU,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAClC,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAClB,UAAU,CAAC,GAAG,CAAC;gBACb,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClE,SAAS;QACX,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE,CAAC;YAC5B,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACnC,SAAS;QACX,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AACD,YAAY;AAEZ,kEAAkE;AAClE,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,KAAU,EACV,MAAyC,EACzC,WAAmB,EAAE,EAClB,EAAE;IACL,MAAM,MAAM,GAAG,eAAe,CAAK,KAAK,EAAE,MAAa,EAAE,QAAQ,CAAC,CAAC;IACnE,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9C,OAAO,MAAa,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CACtB,KAAU,EACV,MAA+C,EAC/C,QAAgB,EAChB,aAAqB,EAAE,EACpB,EAAE;IACL;;;;;;OAMG;IACH,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAK,MAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,GAAG,GAAI,MAAc,CAAC,IAAI,CAAa,CAAC;QAC9C,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QAEtC,MAAM,GAAG,GAAU,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;QAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAErB,mDAAmD;YACnD,IAAI,CAAC,SAAS,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBAC9B,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACd,SAAS;YACX,CAAC;YAED,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAEvC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACd,SAAS;YACX,CAAC;YAED,GAAG,CAAC,IAAI,CACN,eAAe,CACb,GAAG,EACH,EAAE,GAAI,MAAc,EAAE,EAAE,EAAE,OAAO,EAAE,EACnC,QAAQ,EACR,UAAU,CACX,CACF,CAAC;QACJ,CAAC;QAED,OAAO,GAAU,CAAC;IACpB,CAAC;IAED,uEAAuE;IACvE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACtB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAC7C,CAAC;IACX,CAAC;IAED,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,2BAA2B,GAA0B,MAAc,CAAC,EAAE,CAAC,CAAC;IAE9E,IAAI,SAAS,GAAG,CACd,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QACvC,2BAA2B,KAAK,EAAE;QAChC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC;QAC1C,CAAC,CAAC,2BAA2B,CACL,CAAC;IAE7B,MAAM,oBAAoB,GACxB,KAAK,CAAC,oCAAoC,CAAC,SAAS,CAAC,CAAC;IACxD,IAAI,oBAAoB,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACzD,SAAS,GAAG,SAAS,CAAC;IACxB,CAAC;IAED,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAElD,wDAAwD;IACxD,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QAC5C,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,KAAK,GAAI,KAAa,CAAC,GAAG,CAAC,CAAC;QAElC,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAC3D,MAAM,IAAI,GAAS,MAAc,CAAC,QAAQ,CAAC,CAAC;QAE5C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,mFAAmF;YAClF,QAAgB,CAAC,GAAG,CAAC,GAAG,eAAe,CACtC,KAAK,EACL,MAAM,EACN,QAAQ,EACR,QAAQ,CACT,CAAC;YACF,SAAS;QACX,CAAC;QAED,6CAA6C;QAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,SAAS,GACb,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE9D,QAAgB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC3C,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACZ,eAAe,CACb,CAAC,EACD,EAAE,GAAI,MAAc,EAAE,EAAE,EAAE,SAAS,EAAE,EACrC,QAAQ,EACR,QAAQ,CACT,CACF;gBACH,CAAC,CAAC,EAAE,CAAC;YAEP,SAAS;QACX,CAAC;QAED,cAAc;QACd,MAAM,WAAW,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEvE,QAAgB,CAAC,GAAG,CAAC,GAAG,eAAe,CACtC,KAAK,EACL,EAAE,GAAI,MAAc,EAAE,EAAE,EAAE,WAAW,EAAE,EACvC,QAAQ,EACR,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,OAAO,QAAe,CAAC;AACzB,CAAC,CAAC;AAEF,YAAY"}
@@ -0,0 +1 @@
1
+ export declare function add(a: any, b: any): any;
@@ -0,0 +1,7 @@
1
+ export function add(a, b) {
2
+ return a + b;
3
+ }
4
+ test('adds two numbers correctly', () => {
5
+ expect(add(1, 2)).toBe(3);
6
+ });
7
+ //# sourceMappingURL=new-mapping.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-mapping.test.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC;IACtB,OAAO,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE;IACtC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC"}
@@ -0,0 +1,301 @@
1
+ import { AxiosRequestConfig, AxiosResponse } from 'axios';
2
+ import type express from 'express';
3
+ import { Circ } from 'json10/lib';
4
+ import { Observable } from 'rxjs';
5
+ import { CoreModels } from 'tnp-core/lib';
6
+ import { EncodeSchema, EncodeSchemaString } from './new-mapping';
7
+ export declare class Cookie {
8
+ static get Instance(): Cookie;
9
+ private static __instance;
10
+ private constructor();
11
+ read(name: string): string;
12
+ write(name: string, value: string, days?: number): void;
13
+ remove(name: string): void;
14
+ }
15
+ /**
16
+ * Create query params string for url
17
+ *
18
+ * @export
19
+ * @param {UrlParams[]} params
20
+ * @returns {string}
21
+ */
22
+ export declare function getParamsUrl(params: UrlParams[], doNotSerialize?: boolean): string;
23
+ export declare const regexisPath: RegExp;
24
+ /**
25
+ * let pattern = '/books/:bookid';
26
+ * let url = `/books/34`;
27
+ */
28
+ export declare function interpolateParamsToUrl(params: Object, url: string): string;
29
+ export interface AxiosTaonHttpHandler<T = any> {
30
+ handle(req: AxiosRequestConfig): Observable<AxiosResponse<T>>;
31
+ }
32
+ export interface TaonClientMiddlewareInterceptOptions<T = any> {
33
+ req: AxiosRequestConfig;
34
+ next: AxiosTaonHttpHandler<T>;
35
+ }
36
+ export interface TaonServerMiddlewareInterceptOptions<T = any> {
37
+ req: express.Request;
38
+ res: express.Response;
39
+ next: express.NextFunction;
40
+ }
41
+ export interface TaonAxiosClientInterceptor<T = any> {
42
+ intercept(client: TaonClientMiddlewareInterceptOptions<T>): Observable<AxiosResponse<T>>;
43
+ }
44
+ export declare class AxiosBackendHandler<T = any> implements AxiosTaonHttpHandler<T> {
45
+ handle(req: AxiosRequestConfig): Observable<AxiosResponse<T>>;
46
+ }
47
+ export declare const buildInterceptorChain: <T = any>(globalInterceptors: Array<TaonAxiosClientInterceptor<T>>, backend: AxiosTaonHttpHandler<T>) => AxiosTaonHttpHandler<T>;
48
+ export type ResponseTypeAxios = 'blob' | 'text' | 'json' | 'arraybuffer' | 'document' | 'stream' | 'formdata';
49
+ export type RestHeadersOptions = RestHeaders | {
50
+ [name: string]: string | string[];
51
+ };
52
+ export declare class RestHeaders {
53
+ /** @internal header names are lower case */
54
+ protected _headers: Map<string, string[]>;
55
+ /** @internal map lower case names to actual names */
56
+ protected _normalizedNames: Map<string, string>;
57
+ static from(headers?: RestHeadersOptions): RestHeaders;
58
+ apply(headers?: RestHeadersOptions): RestHeaders;
59
+ private constructor();
60
+ /**
61
+ * Returns a new RestHeaders instance from the given DOMString of Response RestHeaders
62
+ */
63
+ static fromResponseHeaderString(headersString: string): RestHeaders;
64
+ /**
65
+ * Appends a header to existing list of header values for a given header name.
66
+ */
67
+ append(name: string, value: string): void;
68
+ /**
69
+ * Deletes all header values for the given name.
70
+ */
71
+ delete(name: string): void;
72
+ forEach(fn: (values: string[], name: string, headers: Map<string, string[]>) => void): void;
73
+ /**
74
+ * Returns first header that matches given name.
75
+ */
76
+ get(name: string): string;
77
+ /**
78
+ * Checks for existence of header by given name.
79
+ */
80
+ has(name: string): boolean;
81
+ /**
82
+ * Returns the names of the headers
83
+ */
84
+ keys(): string[];
85
+ /**
86
+ * Sets or overrides header value for given name.
87
+ */
88
+ set(name: string, value: string | string[]): void;
89
+ /**
90
+ * Returns values of all headers.
91
+ */
92
+ values(): string[][];
93
+ /**
94
+ * Returns string of all headers.
95
+ */
96
+ toJSON(): {
97
+ [name: string]: any;
98
+ };
99
+ /**
100
+ * Returns list of header values for a given name.
101
+ */
102
+ getAll(name: string): string[];
103
+ private mayBeSetNormalizedName;
104
+ }
105
+ declare class RestCommonHttpResponseWrapper {
106
+ success?: boolean;
107
+ }
108
+ export declare class RestResponseWrapper extends RestCommonHttpResponseWrapper {
109
+ data?: any;
110
+ }
111
+ export declare class RestErrorResponseWrapper extends RestCommonHttpResponseWrapper {
112
+ message: string;
113
+ /**
114
+ * stack trace / more details about error
115
+ */
116
+ details?: string;
117
+ /**
118
+ * http status code
119
+ */
120
+ status?: number;
121
+ /**
122
+ * custom error code from backend
123
+ */
124
+ code?: string;
125
+ }
126
+ export declare abstract class BaseBody {
127
+ protected toJSON(data: any, opt: {
128
+ isJSONArray?: boolean;
129
+ parsingError?: boolean;
130
+ }): object | undefined;
131
+ }
132
+ export declare class HttpBody<T> extends BaseBody {
133
+ private readonly url;
134
+ private readonly method;
135
+ private readonly headers;
136
+ private readonly responseText;
137
+ private readonly options;
138
+ private readonly isArray;
139
+ constructor(url: string, method: string, headers: RestHeaders, responseText: string | Blob, options: ResourceOptions, isArray: boolean);
140
+ private get entity();
141
+ private get circular();
142
+ get blob(): Blob;
143
+ get booleanValue(): boolean | undefined;
144
+ get numericValue(): number | undefined;
145
+ get rawJson(): Partial<T>;
146
+ get json(): T;
147
+ private displayWarningWhenNotUsingProperAPI;
148
+ /**
149
+ * undefined when blob
150
+ */
151
+ get text(): string | undefined;
152
+ }
153
+ export declare class ErrorBody<T = RestErrorResponseWrapper> extends BaseBody {
154
+ private readonly url;
155
+ private readonly data;
156
+ constructor(url: string, data: any);
157
+ get json(): T;
158
+ get text(): string;
159
+ }
160
+ export declare abstract class BaseResponse<T> {
161
+ readonly responseText: string | Blob;
162
+ readonly options: ResourceOptions;
163
+ readonly statusCode: number;
164
+ readonly headers: RestHeaders;
165
+ readonly isArray: boolean;
166
+ constructor(responseText: string | Blob, options: ResourceOptions, statusCode: number, headers: RestHeaders, isArray: boolean);
167
+ }
168
+ export declare class HttpResponse<T> extends BaseResponse<T> {
169
+ readonly url: string;
170
+ readonly method: CoreModels.HttpMethod;
171
+ readonly responseText: string | Blob;
172
+ readonly headers: RestHeaders;
173
+ readonly statusCode: number;
174
+ readonly options: ResourceOptions;
175
+ readonly isArray: boolean;
176
+ body: HttpBody<T>;
177
+ constructor(url: string, method: CoreModels.HttpMethod, responseText: string | Blob, headers: RestHeaders, statusCode: number, options: ResourceOptions, isArray: boolean);
178
+ }
179
+ export declare class HttpResponseError<ERROR_BODY = object> extends BaseResponse<any> {
180
+ readonly url: string;
181
+ readonly method: CoreModels.HttpMethod;
182
+ readonly responseText: string;
183
+ readonly options: ResourceOptions;
184
+ readonly headers: RestHeaders;
185
+ readonly statusCode: number;
186
+ readonly isArray: boolean;
187
+ readonly body: ErrorBody<ERROR_BODY>;
188
+ constructor(url: string, method: CoreModels.HttpMethod, responseText: string, options: ResourceOptions, headers: RestHeaders, statusCode: number, isArray: boolean);
189
+ }
190
+ export type ResourceStrategy = 'http' | 'ipc-electron' | 'js-mock';
191
+ interface ResourceOptions {
192
+ strategy?: ResourceStrategy;
193
+ headers?: RestHeaders;
194
+ useArrayApiWarning?: boolean;
195
+ defaultHeadersProfile?: keyof typeof DEFAULT_HEADERS;
196
+ responseMapping?: {
197
+ /**
198
+ * Use ()=> MyEntity to avoid js circural dependencies.
199
+ * String only when as header key value.
200
+ */
201
+ entity?: (EncodeSchema | EncodeSchemaString) | {
202
+ (): EncodeSchema | EncodeSchemaString;
203
+ } | string;
204
+ /**
205
+ * Metadata for remapping circular objects.
206
+ * Generated from json10 packages.
207
+ * String only when as header key value.
208
+ */
209
+ circular?: Circ[] | string;
210
+ };
211
+ }
212
+ type BackendError = {
213
+ msg?: string;
214
+ stack?: string[];
215
+ data: any;
216
+ };
217
+ export declare const HeaderKeyContentType = "Content-Type";
218
+ export declare const HeaderKeyAccept = "Accept";
219
+ export declare const DEFAULT_HEADERS: {
220
+ readonly APPLICATION_JSON: RestHeaders;
221
+ readonly APPLICATION_VND_API_JSON: RestHeaders;
222
+ readonly APPLICATION_X_WWW_FORM_URLENCODED: RestHeaders;
223
+ readonly MULTIPART_FORM_DATA: RestHeaders;
224
+ readonly TEXT_PLAIN: RestHeaders;
225
+ readonly ACCEPT_ANY: RestHeaders;
226
+ readonly OCTET_STREAM: RestHeaders;
227
+ };
228
+ export declare abstract class ResourceResponse<DATA = any, ERROR = any> implements Promise<HttpResponse<DATA> | HttpResponseError<ERROR>> {
229
+ protected httpMethodName: CoreModels.HttpMethod;
230
+ protected urlOrigin: string;
231
+ protected urlPathname: string;
232
+ protected options: ResourceOptions;
233
+ protected body: DATA | DATA;
234
+ protected urlParams: UrlParams[];
235
+ protected axiosOptions: Ng2RestAxiosRequestConfig;
236
+ protected isArray: boolean;
237
+ protected headers: RestHeaders;
238
+ protected globalInterceptors: Map<string, TaonAxiosClientInterceptor>;
239
+ protected methodsInterceptors: Map<string, TaonAxiosClientInterceptor>;
240
+ [Symbol.toStringTag]: string;
241
+ private _promise?;
242
+ private _promiseAbort?;
243
+ private _observable?;
244
+ constructor(httpMethodName: CoreModels.HttpMethod, urlOrigin: string, urlPathname: string, options: ResourceOptions, body: DATA | DATA, urlParams: UrlParams[], axiosOptions: Ng2RestAxiosRequestConfig, isArray: boolean, headers: RestHeaders, globalInterceptors: Map<string, TaonAxiosClientInterceptor>, methodsInterceptors: Map<string, TaonAxiosClientInterceptor>);
245
+ protected abstract makeRequest(abortSignal: AbortSignal): Promise<HttpResponse<DATA>>;
246
+ /**
247
+ * ✅ Explicit cancel (useful for "promise style")
248
+ */
249
+ cancel(reason?: string): void;
250
+ /**
251
+ * Promise API (cannot be auto-cancelled by consumer, so we expose cancel())
252
+ */
253
+ get promise(): Promise<HttpResponse<DATA> | HttpResponseError<ERROR>>;
254
+ then<TResult1 = HttpResponse<DATA>, TResult2 = never>(onfulfilled?: ((value: HttpResponse<DATA>) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null): Promise<TResult1 | TResult2>;
255
+ catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null): Promise<(HttpResponse<DATA> | HttpResponseError<ERROR>) | TResult>;
256
+ finally(onfinally?: (() => void) | null): Promise<HttpResponse<DATA> | HttpResponseError<ERROR>>;
257
+ /**
258
+ * ✅ Observable owns AbortController:
259
+ * - subscribe starts request
260
+ * - unsubscribe aborts request
261
+ * - shareReplay shares the same in-flight request among subscribers
262
+ */
263
+ get observable(): Observable<HttpResponse<DATA>>;
264
+ protected creatUrl(params: any, doNotSerializeParams?: boolean): string;
265
+ }
266
+ export interface UrlParams {
267
+ [urlModelName: string]: string | number | boolean | RegExp | Object;
268
+ regex?: RegExp;
269
+ }
270
+ export type Ng2RestAxiosRequestConfig = {
271
+ doNotSerializeParams?: boolean;
272
+ } & AxiosRequestConfig<any>;
273
+ export declare namespace Resource {
274
+ const globalInterceptors: Map<string, TaonAxiosClientInterceptor<any>>;
275
+ const methodsInterceptors: Map<string, TaonAxiosClientInterceptor<any>>;
276
+ const listenErrors: Observable<BackendError>;
277
+ const Cookies: Cookie;
278
+ function create<MODEL = any>(originUrl: string, pathnameModel: string, resourceOptions?: ResourceOptions): {
279
+ model: <INTERPOLATE_ARGS = {}>(interpolateParams?: INTERPOLATE_ARGS, overrideOptions?: ResourceOptions | {
280
+ (options: ResourceOptions): ResourceOptions;
281
+ }) => {
282
+ get: (item?: MODEL, urlParams?: UrlParams[], axiosOptions?: Ng2RestAxiosRequestConfig) => ResourceResponse<MODEL, any>;
283
+ delete: (item?: MODEL, urlParams?: UrlParams[], axiosOptions?: Ng2RestAxiosRequestConfig) => ResourceResponse<MODEL, any>;
284
+ head: (item?: MODEL, urlParams?: UrlParams[], axiosOptions?: Ng2RestAxiosRequestConfig) => ResourceResponse<MODEL, any>;
285
+ post: (item?: MODEL, urlParams?: UrlParams[], axiosOptions?: Ng2RestAxiosRequestConfig) => ResourceResponse<MODEL, any>;
286
+ put: (item?: MODEL, urlParams?: UrlParams[], axiosOptions?: Ng2RestAxiosRequestConfig) => ResourceResponse<MODEL, any>;
287
+ patch: (item?: MODEL, urlParams?: UrlParams[], axiosOptions?: Ng2RestAxiosRequestConfig) => ResourceResponse<MODEL, any>;
288
+ jsonp: (item?: MODEL, urlParams?: UrlParams[], axiosOptions?: Ng2RestAxiosRequestConfig) => ResourceResponse<MODEL, any>;
289
+ array: {
290
+ get: (item?: MODEL[], urlParams?: UrlParams[], axiosOptions?: Ng2RestAxiosRequestConfig) => ResourceResponse<MODEL[], any>;
291
+ delete: (item?: MODEL[], urlParams?: UrlParams[], axiosOptions?: Ng2RestAxiosRequestConfig) => ResourceResponse<MODEL[], any>;
292
+ head: (item?: MODEL[], urlParams?: UrlParams[], axiosOptions?: Ng2RestAxiosRequestConfig) => ResourceResponse<MODEL[], any>;
293
+ post: (item?: MODEL[], urlParams?: UrlParams[], axiosOptions?: Ng2RestAxiosRequestConfig) => ResourceResponse<MODEL[], any>;
294
+ put: (item?: MODEL[], urlParams?: UrlParams[], axiosOptions?: Ng2RestAxiosRequestConfig) => ResourceResponse<MODEL[], any>;
295
+ patch: (item?: MODEL[], urlParams?: UrlParams[], axiosOptions?: Ng2RestAxiosRequestConfig) => ResourceResponse<MODEL[], any>;
296
+ jsonp: (item?: MODEL[], urlParams?: UrlParams[], axiosOptions?: Ng2RestAxiosRequestConfig) => ResourceResponse<MODEL[], any>;
297
+ };
298
+ };
299
+ };
300
+ }
301
+ export {};