@avstantso/ts 1.0.4 → 1.1.0
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.
- package/CHANGELOG.md +7 -0
- package/package.json +3 -3
- package/dist/_global/_register.d.ts +0 -80
- package/dist/_global/array/_register.d.ts +0 -28
- package/dist/_global/array/arr-n.d.ts +0 -21
- package/dist/_global/array/create.d.ts +0 -59
- package/dist/_global/array/derivative.d.ts +0 -197
- package/dist/_global/array/find.d.ts +0 -89
- package/dist/_global/array/index.d.ts +0 -8
- package/dist/_global/array/low-level.d.ts +0 -84
- package/dist/_global/array/map-key-value.d.ts +0 -121
- package/dist/_global/array/min-max-sort.d.ts +0 -244
- package/dist/_global/ascii.d.ts +0 -76
- package/dist/_global/boolean.d.ts +0 -74
- package/dist/_global/comparisons.d.ts +0 -85
- package/dist/_global/func.d.ts +0 -17
- package/dist/_global/index.d.ts +0 -14
- package/dist/_global/literal.d.ts +0 -180
- package/dist/_global/numeric/domain/describes.d.ts +0 -62
- package/dist/_global/numeric/domain/generated.d.ts +0 -11240
- package/dist/_global/numeric/domain/inc-dec.d.ts +0 -52
- package/dist/_global/numeric/domain/independent.d.ts +0 -203
- package/dist/_global/numeric/domain/index.d.ts +0 -4
- package/dist/_global/numeric/inc-dec.d.ts +0 -50
- package/dist/_global/numeric/index.d.ts +0 -3
- package/dist/_global/numeric/math.d.ts +0 -257
- package/dist/_global/resolve.d.ts +0 -45
- package/dist/_global/string.d.ts +0 -306
- package/dist/_global/structure/_register.d.ts +0 -93
- package/dist/_global/structure/index.d.ts +0 -2
- package/dist/_global/structure/structure.d.ts +0 -289
- package/dist/_global/type/_register.d.ts +0 -64
- package/dist/_global/type/def.d.ts +0 -47
- package/dist/_global/type/index.d.ts +0 -7
- package/dist/_global/type/key-arr-def.d.ts +0 -14
- package/dist/_global/type/key-def.d.ts +0 -76
- package/dist/_global/type/key-literal-default-arr.d.ts +0 -45
- package/dist/_global/type/not.d.ts +0 -44
- package/dist/_global/type/union.d.ts +0 -33
- package/dist/_global/union.d.ts +0 -79
- package/dist/_global/utility/alt.d.ts +0 -58
- package/dist/_global/utility/flat.d.ts +0 -60
- package/dist/_global/utility/if-def.d.ts +0 -22
- package/dist/_global/utility/index.d.ts +0 -9
- package/dist/_global/utility/merge.d.ts +0 -29
- package/dist/_global/utility/opaque.d.ts +0 -17
- package/dist/_global/utility/options.d.ts +0 -34
- package/dist/_global/utility/override.d.ts +0 -100
- package/dist/_global/utility/replace-key.d.ts +0 -33
- package/dist/_global/utility/required-optional.d.ts +0 -24
- package/dist/_std-ext/index.d.ts +0 -1
- package/dist/_std-ext/object.d.ts +0 -23
- package/dist/export.d.ts +0 -2
- package/dist/index.d.ts +0 -4
- package/dist/index.js +0 -480
- package/dist/index.js.map +0 -1
package/dist/index.js
DELETED
|
@@ -1,480 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
require('@avstantso/core');
|
|
4
|
-
|
|
5
|
-
var AVStantso$2;
|
|
6
|
-
(function (AVStantso) {
|
|
7
|
-
AVStantso.TS = avstantso._reg.TS(({ Func }) => {
|
|
8
|
-
function isLvlOfFlat(structure) {
|
|
9
|
-
if ('object' === typeof structure)
|
|
10
|
-
return 0;
|
|
11
|
-
if ('function' === typeof structure && Func.isExt(structure))
|
|
12
|
-
return 1;
|
|
13
|
-
return -1;
|
|
14
|
-
}
|
|
15
|
-
function flat(structure, depth = 1) {
|
|
16
|
-
if (depth <= 0 || isLvlOfFlat(structure) < 0)
|
|
17
|
-
return structure;
|
|
18
|
-
return Object.fromEntries(Object.entries(structure).reduce((r, [sk, sv]) => {
|
|
19
|
-
const l = isLvlOfFlat(sv);
|
|
20
|
-
if (l < 0)
|
|
21
|
-
return r.push([sk, sv]) && r;
|
|
22
|
-
const c = flat(sv, depth - 1);
|
|
23
|
-
r.push(...Object.entries(c));
|
|
24
|
-
if (l)
|
|
25
|
-
r.push([sk, (...params) => sv(...params)]);
|
|
26
|
-
return r;
|
|
27
|
-
}, []));
|
|
28
|
-
}
|
|
29
|
-
function inOneOrList(oneOrList, candidate) {
|
|
30
|
-
return Array.isArray(oneOrList) ? oneOrList.includes(candidate) : oneOrList === candidate;
|
|
31
|
-
}
|
|
32
|
-
const OL = { in: inOneOrList };
|
|
33
|
-
// `isKey` will be registred in `Literal`
|
|
34
|
-
return { isKey: null, flat, OL };
|
|
35
|
-
});
|
|
36
|
-
})(AVStantso$2 || (AVStantso$2 = {}));
|
|
37
|
-
|
|
38
|
-
(function (AVStantso) {
|
|
39
|
-
avstantso._reg.TS.Array(() => {
|
|
40
|
-
function ToKey2Key(arr) {
|
|
41
|
-
return Object.fromEntries(arr.map((k) => [k, k]));
|
|
42
|
-
}
|
|
43
|
-
return { ToKey2Key };
|
|
44
|
-
});
|
|
45
|
-
})();
|
|
46
|
-
|
|
47
|
-
(function (AVStantso) {
|
|
48
|
-
function Unused(n) {
|
|
49
|
-
return `Unused${n}`;
|
|
50
|
-
}
|
|
51
|
-
const ASCII_Control_Characters = [
|
|
52
|
-
'␀',
|
|
53
|
-
'␁',
|
|
54
|
-
'␂',
|
|
55
|
-
'␃',
|
|
56
|
-
'␄',
|
|
57
|
-
'␅',
|
|
58
|
-
'␆',
|
|
59
|
-
'␇',
|
|
60
|
-
'␈',
|
|
61
|
-
'␉',
|
|
62
|
-
'␊',
|
|
63
|
-
'␋',
|
|
64
|
-
'␌',
|
|
65
|
-
'␍',
|
|
66
|
-
'␎',
|
|
67
|
-
'␏',
|
|
68
|
-
'␐',
|
|
69
|
-
'␑',
|
|
70
|
-
'␒',
|
|
71
|
-
'␓',
|
|
72
|
-
'␔',
|
|
73
|
-
'␕',
|
|
74
|
-
'␖',
|
|
75
|
-
'␗',
|
|
76
|
-
'␘',
|
|
77
|
-
'␙',
|
|
78
|
-
'␚',
|
|
79
|
-
'␛',
|
|
80
|
-
'␜',
|
|
81
|
-
'␝',
|
|
82
|
-
'␞',
|
|
83
|
-
'␟'
|
|
84
|
-
];
|
|
85
|
-
const ASCII_Printable_Characters_Digits = [
|
|
86
|
-
'0',
|
|
87
|
-
'1',
|
|
88
|
-
'2',
|
|
89
|
-
'3',
|
|
90
|
-
'4',
|
|
91
|
-
'5',
|
|
92
|
-
'6',
|
|
93
|
-
'7',
|
|
94
|
-
'8',
|
|
95
|
-
'9'
|
|
96
|
-
];
|
|
97
|
-
const ASCII_Printable_Characters_Letters_Upper = [
|
|
98
|
-
'A',
|
|
99
|
-
'B',
|
|
100
|
-
'C',
|
|
101
|
-
'D',
|
|
102
|
-
'E',
|
|
103
|
-
'F',
|
|
104
|
-
'G',
|
|
105
|
-
'H',
|
|
106
|
-
'I',
|
|
107
|
-
'J',
|
|
108
|
-
'K',
|
|
109
|
-
'L',
|
|
110
|
-
'M',
|
|
111
|
-
'N',
|
|
112
|
-
'O',
|
|
113
|
-
'P',
|
|
114
|
-
'Q',
|
|
115
|
-
'R',
|
|
116
|
-
'S',
|
|
117
|
-
'T',
|
|
118
|
-
'U',
|
|
119
|
-
'V',
|
|
120
|
-
'W',
|
|
121
|
-
'X',
|
|
122
|
-
'Y',
|
|
123
|
-
'Z'
|
|
124
|
-
];
|
|
125
|
-
const ASCII_Printable_Characters_Letters_Lower = [
|
|
126
|
-
'a',
|
|
127
|
-
'b',
|
|
128
|
-
'c',
|
|
129
|
-
'd',
|
|
130
|
-
'e',
|
|
131
|
-
'f',
|
|
132
|
-
'g',
|
|
133
|
-
'h',
|
|
134
|
-
'i',
|
|
135
|
-
'j',
|
|
136
|
-
'k',
|
|
137
|
-
'l',
|
|
138
|
-
'm',
|
|
139
|
-
'n',
|
|
140
|
-
'o',
|
|
141
|
-
'p',
|
|
142
|
-
'q',
|
|
143
|
-
'r',
|
|
144
|
-
's',
|
|
145
|
-
't',
|
|
146
|
-
'u',
|
|
147
|
-
'v',
|
|
148
|
-
'w',
|
|
149
|
-
'x',
|
|
150
|
-
'y',
|
|
151
|
-
'z'
|
|
152
|
-
];
|
|
153
|
-
const ASCII_Printable_Characters = [
|
|
154
|
-
' ',
|
|
155
|
-
'!',
|
|
156
|
-
'"',
|
|
157
|
-
'#',
|
|
158
|
-
'$',
|
|
159
|
-
'%',
|
|
160
|
-
'&',
|
|
161
|
-
"'",
|
|
162
|
-
'(',
|
|
163
|
-
')',
|
|
164
|
-
'*',
|
|
165
|
-
'+',
|
|
166
|
-
',',
|
|
167
|
-
'-',
|
|
168
|
-
'.',
|
|
169
|
-
'/',
|
|
170
|
-
...ASCII_Printable_Characters_Digits,
|
|
171
|
-
':',
|
|
172
|
-
';',
|
|
173
|
-
'<',
|
|
174
|
-
'=',
|
|
175
|
-
'>',
|
|
176
|
-
'?',
|
|
177
|
-
'@',
|
|
178
|
-
...ASCII_Printable_Characters_Letters_Upper,
|
|
179
|
-
'[',
|
|
180
|
-
'\\',
|
|
181
|
-
']',
|
|
182
|
-
'^',
|
|
183
|
-
'_',
|
|
184
|
-
'`',
|
|
185
|
-
...ASCII_Printable_Characters_Letters_Lower,
|
|
186
|
-
'{',
|
|
187
|
-
'|',
|
|
188
|
-
'}',
|
|
189
|
-
'~',
|
|
190
|
-
'␡'
|
|
191
|
-
];
|
|
192
|
-
const ASCII_Extended_Codes = [
|
|
193
|
-
'€',
|
|
194
|
-
Unused(0),
|
|
195
|
-
'‚',
|
|
196
|
-
'ƒ',
|
|
197
|
-
'„',
|
|
198
|
-
'…',
|
|
199
|
-
'†',
|
|
200
|
-
'‡',
|
|
201
|
-
'ˆ',
|
|
202
|
-
'‰',
|
|
203
|
-
'Š',
|
|
204
|
-
'‹',
|
|
205
|
-
'Œ',
|
|
206
|
-
Unused(1),
|
|
207
|
-
'Ž',
|
|
208
|
-
Unused(2),
|
|
209
|
-
Unused(3),
|
|
210
|
-
'‘',
|
|
211
|
-
'’',
|
|
212
|
-
'“',
|
|
213
|
-
'”',
|
|
214
|
-
'•',
|
|
215
|
-
'–',
|
|
216
|
-
'—',
|
|
217
|
-
'˜',
|
|
218
|
-
'™',
|
|
219
|
-
'š',
|
|
220
|
-
'›',
|
|
221
|
-
'œ',
|
|
222
|
-
Unused(4),
|
|
223
|
-
'ž',
|
|
224
|
-
'Ÿ',
|
|
225
|
-
'NBSP',
|
|
226
|
-
'¡',
|
|
227
|
-
'¢',
|
|
228
|
-
'£',
|
|
229
|
-
'¤',
|
|
230
|
-
'¥',
|
|
231
|
-
'¦',
|
|
232
|
-
'§',
|
|
233
|
-
'¨',
|
|
234
|
-
'©',
|
|
235
|
-
'ª',
|
|
236
|
-
'«',
|
|
237
|
-
'¬',
|
|
238
|
-
'SHY',
|
|
239
|
-
'®',
|
|
240
|
-
'¯',
|
|
241
|
-
'°',
|
|
242
|
-
'±',
|
|
243
|
-
'²',
|
|
244
|
-
'³',
|
|
245
|
-
'´',
|
|
246
|
-
'µ',
|
|
247
|
-
'¶',
|
|
248
|
-
'·',
|
|
249
|
-
'¸',
|
|
250
|
-
'¹',
|
|
251
|
-
'º',
|
|
252
|
-
'»',
|
|
253
|
-
'¼',
|
|
254
|
-
'½',
|
|
255
|
-
'¾',
|
|
256
|
-
'¿',
|
|
257
|
-
'À',
|
|
258
|
-
'Á',
|
|
259
|
-
'Â',
|
|
260
|
-
'Ã',
|
|
261
|
-
'Ä',
|
|
262
|
-
'Å',
|
|
263
|
-
'Æ',
|
|
264
|
-
'Ç',
|
|
265
|
-
'È',
|
|
266
|
-
'É',
|
|
267
|
-
'Ê',
|
|
268
|
-
'Ë',
|
|
269
|
-
'Ì',
|
|
270
|
-
'Í',
|
|
271
|
-
'Î',
|
|
272
|
-
'Ï',
|
|
273
|
-
'Ð',
|
|
274
|
-
'Ñ',
|
|
275
|
-
'Ò',
|
|
276
|
-
'Ó',
|
|
277
|
-
'Ô',
|
|
278
|
-
'Õ',
|
|
279
|
-
'Ö',
|
|
280
|
-
'×',
|
|
281
|
-
'Ø',
|
|
282
|
-
'Ù',
|
|
283
|
-
'Ú',
|
|
284
|
-
'Û',
|
|
285
|
-
'Ü',
|
|
286
|
-
'Ý',
|
|
287
|
-
'Þ',
|
|
288
|
-
'ß',
|
|
289
|
-
'à',
|
|
290
|
-
'á',
|
|
291
|
-
'â',
|
|
292
|
-
'ã',
|
|
293
|
-
'ä',
|
|
294
|
-
'å',
|
|
295
|
-
'æ',
|
|
296
|
-
'ç',
|
|
297
|
-
'è',
|
|
298
|
-
'é',
|
|
299
|
-
'ê',
|
|
300
|
-
'ë',
|
|
301
|
-
'ì',
|
|
302
|
-
'í',
|
|
303
|
-
'î',
|
|
304
|
-
'ï',
|
|
305
|
-
'ð',
|
|
306
|
-
'ñ',
|
|
307
|
-
'ò',
|
|
308
|
-
'ó',
|
|
309
|
-
'ô',
|
|
310
|
-
'õ',
|
|
311
|
-
'ö',
|
|
312
|
-
'÷',
|
|
313
|
-
'ø',
|
|
314
|
-
'ù',
|
|
315
|
-
'ú',
|
|
316
|
-
'û',
|
|
317
|
-
'ü',
|
|
318
|
-
'ý',
|
|
319
|
-
'þ',
|
|
320
|
-
'ÿ'
|
|
321
|
-
];
|
|
322
|
-
avstantso._reg.TS.ASCII(Object.freeze([
|
|
323
|
-
...ASCII_Control_Characters,
|
|
324
|
-
...ASCII_Printable_Characters,
|
|
325
|
-
...ASCII_Extended_Codes
|
|
326
|
-
]));
|
|
327
|
-
})();
|
|
328
|
-
|
|
329
|
-
(function (AVStantso) {
|
|
330
|
-
avstantso._reg.TS.Literal(({ AtomicObjects, TS: TSRoot }) => {
|
|
331
|
-
const CanBeObjKey = Object.freeze(['string', 'number', 'symbol']);
|
|
332
|
-
const Structural = Object.freeze(['object', 'function']);
|
|
333
|
-
/**
|
|
334
|
-
* @see AVStantso.TS.isKey
|
|
335
|
-
*/
|
|
336
|
-
function isKey(candidate) {
|
|
337
|
-
return undefined !== candidate
|
|
338
|
-
&& CanBeObjKey.includes(typeof candidate);
|
|
339
|
-
}
|
|
340
|
-
Object.assign(TSRoot, { isKey });
|
|
341
|
-
const meta = {
|
|
342
|
-
string: '',
|
|
343
|
-
number: 0,
|
|
344
|
-
bigint: 0,
|
|
345
|
-
boolean: false,
|
|
346
|
-
symbol: Symbol(0),
|
|
347
|
-
undefined: undefined,
|
|
348
|
-
object: undefined,
|
|
349
|
-
function: undefined
|
|
350
|
-
};
|
|
351
|
-
const Builtins = Object.freeze(Object.keys(meta));
|
|
352
|
-
function Empty(type) {
|
|
353
|
-
if (type in meta)
|
|
354
|
-
return meta[type];
|
|
355
|
-
const d = AtomicObjects.descriptor(type);
|
|
356
|
-
return d?.empty?.();
|
|
357
|
-
}
|
|
358
|
-
function IsValue(type, value) {
|
|
359
|
-
const t = typeof value;
|
|
360
|
-
if ('object' !== t)
|
|
361
|
-
return t === type;
|
|
362
|
-
const d = AtomicObjects.descriptor(type);
|
|
363
|
-
return !!d && value instanceof d.Class;
|
|
364
|
-
}
|
|
365
|
-
const Literal = {
|
|
366
|
-
Builtins,
|
|
367
|
-
CanBeObjKey,
|
|
368
|
-
Structural,
|
|
369
|
-
get List() {
|
|
370
|
-
const r = Object.keys(meta);
|
|
371
|
-
for (const Class of AtomicObjects.classes.keys())
|
|
372
|
-
r.push(Class.name);
|
|
373
|
-
return r;
|
|
374
|
-
},
|
|
375
|
-
Empty,
|
|
376
|
-
IsValue,
|
|
377
|
-
_Register(literal, empty) {
|
|
378
|
-
if (literal in meta)
|
|
379
|
-
throw Error(`Literal named "${literal}" already registered`);
|
|
380
|
-
if (AtomicObjects.descriptor(literal))
|
|
381
|
-
throw Error(`Atomic object with class named "${literal}" already registered`);
|
|
382
|
-
Object.assign(meta, { [literal]: empty });
|
|
383
|
-
Object.defineProperty(this, literal, { value: literal, writable: false });
|
|
384
|
-
}
|
|
385
|
-
};
|
|
386
|
-
for (const literal of Literal.List) {
|
|
387
|
-
Object.defineProperty(Literal, literal, { value: literal, writable: false });
|
|
388
|
-
Object.defineProperty(Empty, literal, { get: Empty.bind(null, literal) });
|
|
389
|
-
Object.defineProperty(IsValue, literal, {
|
|
390
|
-
value: IsValue.bind(null, literal),
|
|
391
|
-
writable: false
|
|
392
|
-
});
|
|
393
|
-
}
|
|
394
|
-
return Literal;
|
|
395
|
-
});
|
|
396
|
-
})();
|
|
397
|
-
|
|
398
|
-
var AVStantso$1;
|
|
399
|
-
(function (AVStantso) {
|
|
400
|
-
(function (Code) {
|
|
401
|
-
(function (TS) {
|
|
402
|
-
(function (Structure) {
|
|
403
|
-
})(TS.Structure || (TS.Structure = {}));
|
|
404
|
-
})(Code.TS || (Code.TS = {}));
|
|
405
|
-
})(AVStantso.Code || (AVStantso.Code = {}));
|
|
406
|
-
avstantso._reg.TS.Structure(({ TS: { isKey, Literal } }) => {
|
|
407
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
408
|
-
function isStructure(candidate, noSpecialClasses) {
|
|
409
|
-
if (!candidate)
|
|
410
|
-
return false;
|
|
411
|
-
const i = Literal.Structural.indexOf(typeof candidate);
|
|
412
|
-
switch (i) {
|
|
413
|
-
case -1:
|
|
414
|
-
return false;
|
|
415
|
-
case 1:
|
|
416
|
-
return true;
|
|
417
|
-
default:
|
|
418
|
-
return !noSpecialClasses || Object.getPrototypeOf(candidate) === Object.prototype;
|
|
419
|
-
}
|
|
420
|
-
}
|
|
421
|
-
function resolveValue(value, field) {
|
|
422
|
-
const useFileld = field && (isStructure(value) && field in value);
|
|
423
|
-
return useFileld ? value[field] : value;
|
|
424
|
-
}
|
|
425
|
-
function keyByValue(...params) {
|
|
426
|
-
const field = params.length > 2 ? params.shift() : undefined;
|
|
427
|
-
const [structure, value] = params;
|
|
428
|
-
if (!isStructure(structure))
|
|
429
|
-
return null;
|
|
430
|
-
const rv = resolveValue(value, field);
|
|
431
|
-
for (const [k, v] of Object.entries(structure))
|
|
432
|
-
if (rv === resolveValue(v, field))
|
|
433
|
-
return k;
|
|
434
|
-
return null;
|
|
435
|
-
}
|
|
436
|
-
function reverse(structure, field) {
|
|
437
|
-
if (!isStructure(structure))
|
|
438
|
-
return null;
|
|
439
|
-
const r = {};
|
|
440
|
-
for (const [k, v] of Object.entries(structure)) {
|
|
441
|
-
const vv = resolveValue(v, field);
|
|
442
|
-
if (isKey(vv))
|
|
443
|
-
r[vv] = k;
|
|
444
|
-
}
|
|
445
|
-
return r;
|
|
446
|
-
}
|
|
447
|
-
return {
|
|
448
|
-
is: isStructure,
|
|
449
|
-
keyByValue,
|
|
450
|
-
reverse
|
|
451
|
-
};
|
|
452
|
-
});
|
|
453
|
-
})(AVStantso$1 || (AVStantso$1 = {}));
|
|
454
|
-
|
|
455
|
-
(function (AVStantso) {
|
|
456
|
-
avstantso._reg.TS.Type(() => {
|
|
457
|
-
function KeyDef(key, type) {
|
|
458
|
-
return { K: key, L: type };
|
|
459
|
-
}
|
|
460
|
-
const KLD = Object.assign(function KLD(key, type, def) {
|
|
461
|
-
return [key, type, def];
|
|
462
|
-
}, {
|
|
463
|
-
Parse: function KLDParse(params) {
|
|
464
|
-
return Array.isArray(params[0]) ? params[0] : params;
|
|
465
|
-
}
|
|
466
|
-
});
|
|
467
|
-
return { KeyDef, KLD };
|
|
468
|
-
});
|
|
469
|
-
})();
|
|
470
|
-
|
|
471
|
-
Object.defineProperties(Object, {
|
|
472
|
-
keysEx: { value: Object.keys, writable: false },
|
|
473
|
-
valuesEx: { value: Object.values, writable: false },
|
|
474
|
-
entriesEx: { value: Object.entries, writable: false }
|
|
475
|
-
});
|
|
476
|
-
|
|
477
|
-
var TS = AVStantso.TS;
|
|
478
|
-
|
|
479
|
-
exports.TS = TS;
|
|
480
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/_global/_register.ts","../src/_global/array/_register.ts","../src/_global/ascii.ts","../src/_global/literal.ts","../src/_global/structure/_register.ts","../src/_global/type/_register.ts","../src/_std-ext/object.ts","../src/export.ts"],"sourcesContent":["namespace AVStantso {\n export namespace TS {\n //#region Extends\n /**\n * @summary Check extends T1 to T2. Supports `undefined === undefined`.\n * @template T1 Tested type 1\n * @template T2 Tested type 2\n * @template IfTrue Result, if `T1` extends `T2`\n * @template IfFalse Result, if NOT `T1` extends `T2`\n * @returns `IfFalse` or `IfTrue` param\n * @EXAMPLE(@TS.Extends)\n */\n export type Extends<T1, T2, IfTrue = true, IfFalse = false> =\n T1 extends undefined\n ? T2 extends undefined\n ? IfTrue\n : IfFalse\n : T1 extends T2\n ? IfTrue\n : IfFalse;\n\n namespace Extends{\n //#region @TS.Extends — Tests:\n /* eslint-disable @typescript-eslint/no-unused-vars */\n\n type n0 = CheckType<Extends<never, never>, never>;\n type n1 = CheckType<Extends<undefined, never>, never>;\n type n2 = CheckType<Extends<never, undefined>, never>;\n\n type u0 = CheckType<Extends<unknown, undefined>, false>;\n type u1 = CheckType<Extends<undefined, unknown>, false>;\n type u2 = CheckType<Extends<1, undefined>, false>;\n type u3 = CheckType<Extends<undefined, 2>, false>;\n\n type e0 = CheckType<Extends<undefined, undefined>, true>;\n type e1 = CheckType<Extends<0, 0>, true>;\n type e2 = CheckType<Extends<0, number>, true>;\n type e3 = CheckType<Extends<'a', 'a'>, true>;\n type e4 = CheckType<Extends<'a', string>, true>;\n\n type ne1 = CheckType<Extends<number, 0>, false>;\n type ne2 = CheckType<Extends<string, 'a'>, false>;\n\n /* eslint-enable @typescript-eslint/no-unused-vars */\n //#endregion\n }\n //#endregion\n\n /**\n * @summary TypeScript helpers for arrays\n */\n export namespace Array {}\n\n /**\n * @summary TypeScript helpers for string\n */\n export namespace String {}\n }\n\n export namespace Code {\n /**\n * @summary TypeScript helpers utility\n */\n export namespace TS {\n /**\n * @summary [O]ne or readonly [L]ist of `T` utility\n */\n export interface OL {\n /**\n * @summary Check `candidate` includes into array or equals value.\\\n * `true` if both `undefined` or `null`\n */\n in<T, O extends T | readonly T[]>(oneOrList: O, candidate: unknown): candidate is T;\n }\n }\n\n export interface TS {\n /**\n * @summary Checks candidate has object key type\n */\n isKey<K extends AVStantso.TS.Key>(candidate: unknown): candidate is K;\n\n /**\n * @summary Flat `structure` into `depth`.\\\n * ⚠ Creates wraps for functions with extended props, `this` context will loss\n * @param structure Structure to flat\n * @param depth Depth of flat. Default `1`\n */\n flat<T extends object, Depth extends number = 1>(\n structure: T,\n depth?: Depth\n ): AVStantso.TS.Flat<T, Depth>;\n\n /**\n * @summary [O]ne or readonly [L]ist of `T` utility\n */\n OL: TS.OL;\n }\n }\n\n export interface Code {\n /**\n * @summary TypeScript helpers utility\n */\n TS: Code.TS;\n }\n\n export const TS: Code.TS = avstantso._reg.TS(({ Func }) => {\n function isLvlOfFlat(structure: unknown) {\n if ('object' === typeof structure)\n return 0;\n\n if ('function' === typeof structure && Func.isExt(structure))\n return 1;\n\n return -1;\n }\n\n function flat(structure: unknown, depth = 1) {\n if (depth <= 0 || isLvlOfFlat(structure) < 0)\n return structure;\n\n return Object.fromEntries(\n Object.entries(structure).reduce((r, [sk, sv]) => {\n const l = isLvlOfFlat(sv);\n if (l < 0) return r.push([sk, sv]) && r;\n\n const c = flat(sv, depth - 1);\n r.push(...Object.entries(c));\n\n if (l) r.push([sk, (...params: TS.Arr) => sv(...params)]);\n\n return r;\n }, [])\n );\n }\n\n function inOneOrList(oneOrList: unknown, candidate: unknown): boolean {\n return Array.isArray(oneOrList) ? oneOrList.includes(candidate) : oneOrList === candidate;\n }\n\n const OL = { in: inOneOrList };\n\n // `isKey` will be registred in `Literal`\n return { isKey: null, flat, OL } as unknown as Code.TS;\n });\n}\n","namespace AVStantso {\n export namespace Code {\n export namespace TS {\n /**\n * @summary Array utils\n */\n export interface Array {\n /**\n * @summary Create `Array.ToKey2Key` record\n * @template A Array type\n * @param arr Array\n * @returns `Array.ToKey2Key` record\n * @example\n * const arr = ['x', 'y', 'z'] as const;\n * const rec = TS.Array.ToKey2Key(arr);\n * expect(rec).toStrictEqual({ x: 'x', y: 'y', z: 'z' });\n */\n ToKey2Key<A extends AVStantso.TS.ArrR>(arr: A): AVStantso.TS.Array.ToKey2Key<A>;\n }\n }\n\n export interface TS {\n /**\n * @summary Array utils\n */\n Array: TS.Array;\n }\n }\n\n avstantso._reg.TS.Array(() => {\n function ToKey2Key(arr: readonly unknown[]) {\n return Object.fromEntries(arr.map((k) => [k, k]));\n }\n\n return { ToKey2Key } as Code.TS.Array;\n });\n}\n","namespace AVStantso {\n type Unused<N extends number> = `Unused${N}`;\n function Unused<N extends number>(n: N): Unused<N> {\n return `Unused${n}`;\n }\n\n const ASCII_Control_Characters = [\n '␀',\n '␁',\n '␂',\n '␃',\n '␄',\n '␅',\n '␆',\n '␇',\n '␈',\n '␉',\n '␊',\n '␋',\n '␌',\n '␍',\n '␎',\n '␏',\n '␐',\n '␑',\n '␒',\n '␓',\n '␔',\n '␕',\n '␖',\n '␗',\n '␘',\n '␙',\n '␚',\n '␛',\n '␜',\n '␝',\n '␞',\n '␟'\n ] as const;\n\n const ASCII_Printable_Characters_Digits = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9'\n ] as const;\n\n const ASCII_Printable_Characters_Letters_Upper = [\n 'A',\n 'B',\n 'C',\n 'D',\n 'E',\n 'F',\n 'G',\n 'H',\n 'I',\n 'J',\n 'K',\n 'L',\n 'M',\n 'N',\n 'O',\n 'P',\n 'Q',\n 'R',\n 'S',\n 'T',\n 'U',\n 'V',\n 'W',\n 'X',\n 'Y',\n 'Z'\n ] as const;\n\n const ASCII_Printable_Characters_Letters_Lower = [\n 'a',\n 'b',\n 'c',\n 'd',\n 'e',\n 'f',\n 'g',\n 'h',\n 'i',\n 'j',\n 'k',\n 'l',\n 'm',\n 'n',\n 'o',\n 'p',\n 'q',\n 'r',\n 's',\n 't',\n 'u',\n 'v',\n 'w',\n 'x',\n 'y',\n 'z'\n ] as const;\n\n const ASCII_Printable_Characters = [\n ' ',\n '!',\n '\"',\n '#',\n '$',\n '%',\n '&',\n \"'\",\n '(',\n ')',\n '*',\n '+',\n ',',\n '-',\n '.',\n '/',\n ...ASCII_Printable_Characters_Digits,\n ':',\n ';',\n '<',\n '=',\n '>',\n '?',\n '@',\n ...ASCII_Printable_Characters_Letters_Upper,\n '[',\n '\\\\',\n ']',\n '^',\n '_',\n '`',\n ...ASCII_Printable_Characters_Letters_Lower,\n '{',\n '|',\n '}',\n '~',\n '␡'\n ] as const;\n\n const ASCII_Extended_Codes = [\n '€',\n Unused(0),\n '‚',\n 'ƒ',\n '„',\n '…',\n '†',\n '‡',\n 'ˆ',\n '‰',\n 'Š',\n '‹',\n 'Œ',\n Unused(1),\n 'Ž',\n Unused(2),\n Unused(3),\n '‘',\n '’',\n '“',\n '”',\n '•',\n '–',\n '—',\n '˜',\n '™',\n 'š',\n '›',\n 'œ',\n Unused(4),\n 'ž',\n 'Ÿ',\n 'NBSP',\n '¡',\n '¢',\n '£',\n '¤',\n '¥',\n '¦',\n '§',\n '¨',\n '©',\n 'ª',\n '«',\n '¬',\n 'SHY',\n '®',\n '¯',\n '°',\n '±',\n '²',\n '³',\n '´',\n 'µ',\n '¶',\n '·',\n '¸',\n '¹',\n 'º',\n '»',\n '¼',\n '½',\n '¾',\n '¿',\n 'À',\n 'Á',\n 'Â',\n 'Ã',\n 'Ä',\n 'Å',\n 'Æ',\n 'Ç',\n 'È',\n 'É',\n 'Ê',\n 'Ë',\n 'Ì',\n 'Í',\n 'Î',\n 'Ï',\n 'Ð',\n 'Ñ',\n 'Ò',\n 'Ó',\n 'Ô',\n 'Õ',\n 'Ö',\n '×',\n 'Ø',\n 'Ù',\n 'Ú',\n 'Û',\n 'Ü',\n 'Ý',\n 'Þ',\n 'ß',\n 'à',\n 'á',\n 'â',\n 'ã',\n 'ä',\n 'å',\n 'æ',\n 'ç',\n 'è',\n 'é',\n 'ê',\n 'ë',\n 'ì',\n 'í',\n 'î',\n 'ï',\n 'ð',\n 'ñ',\n 'ò',\n 'ó',\n 'ô',\n 'õ',\n 'ö',\n '÷',\n 'ø',\n 'ù',\n 'ú',\n 'û',\n 'ü',\n 'ý',\n 'þ',\n 'ÿ'\n ] as const;\n\n export namespace TS {\n /**\n * @summary English letters\n */\n export namespace Letters {\n export type Upper = typeof ASCII_Printable_Characters_Letters_Upper;\n export type Lower = typeof ASCII_Printable_Characters_Letters_Lower;\n }\n\n export type Letters<IsUpper extends boolean = true> = IsUpper extends true\n ? Letters.Upper\n : Letters.Lower;\n\n /**\n * @summary `ASCII` characters\n * @see https://www.ascii-code.com/\n */\n export type ASCII = readonly [\n ...ASCII.Control,\n ...ASCII.Printable,\n ...ASCII.Extended\n ];\n\n export namespace ASCII {\n /**\n * @summary ASCII control characters (character code `0-31`)\n */\n export type Control = typeof ASCII_Control_Characters;\n\n /**\n * @summary ASCII printable characters (character code `32-127`)\n */\n export type Printable = typeof ASCII_Printable_Characters;\n\n /**\n * @summary The extended ASCII codes (character code `128-255`)\n */\n export type Extended = typeof ASCII_Extended_Codes;\n\n /**\n * @summary ASCII characters map char-code\n */\n export namespace Map {\n /**\n * @summary ASCII control characters (character code `0-31`)\n */\n export type Control = Array.KeyValueMapFrom<ASCII.Control>;\n\n /**\n * @summary ASCII printable characters (character code `32-127`)\n */\n export type Printable = Array.KeyValueMapFrom<\n ASCII.Printable,\n 32\n >;\n\n /**\n * @summary The extended ASCII codes (character code `128-255`)\n */\n export type Extended = Array.KeyValueMapFrom<\n ASCII.Extended,\n 128\n >;\n }\n\n export type Map = Array.KeyValueMapFrom<ASCII>;\n\n export type _Code<\n S extends string,\n R extends number = Extract<ASCII.Map[Extract<S, keyof ASCII.Map>], number>\n > = R;\n\n /**\n * @summary Gets `ASCII` characters code by `S`. `never` if `S` is not a character.\n */\n export type Code<S extends string> = _Code<S>;\n\n /**\n * @summary ASCII character union\n */\n export type Character = Array.ToKey<ASCII>;\n }\n }\n\n export namespace Code {\n export interface TS {\n /**\n * @summary `ASCII` characters array\n */\n ASCII: AVStantso.TS.ASCII;\n }\n }\n\n avstantso._reg.TS.ASCII(\n Object.freeze([\n ...ASCII_Control_Characters,\n ...ASCII_Printable_Characters,\n ...ASCII_Extended_Codes\n ] as const)\n );\n}\n","namespace AVStantso {\n export namespace TS {\n /**\n * @summary Literal for available types for value\n */\n export type Literal = keyof Literal.Map;\n\n export namespace Literal {\n /**\n * @summary Map for available builtin types for value\n */\n export type Builtins = {\n string: string;\n number: number;\n bigint: bigint;\n boolean: boolean;\n symbol: symbol;\n undefined: undefined;\n object: object;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n function: Function;\n };\n\n /**\n * @summary Map for available types for value\n */\n export interface Map extends AtomicObjects, Builtins {\n }\n\n /**\n * @summary Map for number-like types.\n *\n * ⚠ Key is significant, value ignored\n */\n export interface NumberLike {\n number: 0;\n bigint: 0;\n Date: 0;\n }\n\n /**\n * @summary If `L` is number-like returns `IfTrue` else `IfFalse`\n * @template L Tested literal\n * @template IfTrue Result, if `L` is number-like\n * @template IfFalse Result, if `L` NOT is number-like\n * @returns `IfFalse` or `IfTrue` param\n * @EXAMPLE(@TS.Literal.IsNumberLike)\n */\n export type IsNumberLike<\n L extends Literal,\n IfTrue = true,\n IfFalse = false\n > = L extends undefined\n ? undefined\n : [Extract<L, keyof NumberLike>] extends [never]\n ? IfFalse\n : IfTrue;\n\n namespace IsNumberLike {\n //#region @TS.Literal.IsNumberLike — Tests:\n /* eslint-disable @typescript-eslint/no-unused-vars */\n\n type n = CheckType<IsNumberLike<never>, never>;\n type u = CheckType<IsNumberLike<undefined>, undefined>;\n\n type t = CheckType<IsNumberLike<'number'>, true>;\n type f = CheckType<IsNumberLike<'object'>, false>;\n\n /* eslint-enable @typescript-eslint/no-unused-vars */\n //#endregion\n }\n\n /**\n * @summary Map for string-like types.\n *\n * ⚠ Key is significant, value ignored\n */\n export interface StringLike {\n string: 0;\n Buffer: 0;\n }\n\n /**\n * @summary If `L` is string-like returns `IfTrue` else `IfFalse`\n * @template L Tested literal\n * @template IfTrue Result, if `L` is string-like\n * @template IfFalse Result, if `L` NOT is string-like\n * @returns `IfFalse` or `IfTrue` param\n * @EXAMPLE(@TS.Literal.IsStringLike)\n */\n export type IsStringLike<\n L extends Literal,\n IfTrue = true,\n IfFalse = false\n > = L extends undefined\n ? undefined\n : [Extract<L, keyof StringLike>] extends [never]\n ? IfFalse\n : IfTrue;\n\n namespace IsStringLike {\n //#region @TS.Literal.IsStringLike — Tests:\n /* eslint-disable @typescript-eslint/no-unused-vars */\n\n type n = CheckType<IsStringLike<never>, never>;\n type u = CheckType<IsStringLike<undefined>, undefined>;\n\n type t = CheckType<IsStringLike<'string'>, true>;\n type f = CheckType<IsStringLike<'object'>, false>;\n\n /* eslint-enable @typescript-eslint/no-unused-vars */\n //#endregion\n }\n\n /**\n * @summary Literals array for available types for value\n */\n export type List = Union.ToTuple<Literal>;\n\n export namespace List {\n /**\n * @summary Literals array for available builtin types for value\n */\n export type Builtins = Union.ToTuple<keyof Literal.Builtins>;\n\n /**\n * @summary Literals array for available builtin object key types for value\n */\n export type CanBeObjKey = ['string', 'number', 'symbol'];\n\n /**\n * @summary Literals array for available builtin structural types for value\n */\n export type Structural = ['object', 'function'];\n }\n\n /**\n * @summary Literals key-to-key record\n */\n export type Key2KeyRec = Array._ToKey2Key<List>;\n }\n }\n\n export namespace Code {\n export namespace TS {\n /**\n * @summary Literals key-to-key record + utils\n */\n export interface Literal extends AVStantso.TS.Literal.Key2KeyRec {\n /**\n * @summary Literals array for available builtin types for value\n */\n Builtins: readonly[...AVStantso.TS.Literal.List.Builtins];\n\n /**\n * @summary Literals array for available builtin object key types for value\n */\n CanBeObjKey: readonly [...AVStantso.TS.Literal.List.CanBeObjKey];\n\n /**\n * @summary Literals array for available builtin structural types for value\n */\n Structural: readonly [...AVStantso.TS.Literal.List.Structural];\n\n /**\n * @summary Literals array for available types for value\n */\n List: AVStantso.TS.Literal.List;\n\n /**\n * @summary Empty value for `Literal`\n * @param type Type literal\n * @returns Resolved literal empty value\n */\n Empty: {\n /**\n * @summary Empty value for `Literal`\n * @param type Type literal\n * @returns Resolved literal empty value\n */\n <L extends AVStantso.TS.Literal>(\n type: L\n ): AVStantso.TS.Resolve<L>;\n } & {\n [ K in AVStantso.TS.Literal ]: AVStantso.TS.Resolve<K>\n };\n\n /**\n * @summary Is `value` a resolved `type` of `L`\n * @param type Type literal\n * @param value Tested value\n */\n IsValue: {\n /**\n * @summary Is `value` a resolved `type` of `L`\n * @param type Type literal\n * @param value Tested value\n */\n <L extends AVStantso.TS.Literal>(\n type: L,\n value: unknown\n ): value is AVStantso.TS.Resolve<L>;\n } & {\n [ K in AVStantso.TS.Literal ]: (value: unknown) => value is AVStantso.TS.Resolve<K>\n };\n\n /**\n * @summary Registrate extended literal\n * @template L Literal type\n * @param literal Literal value\n * @example\n * type XYZ = {x: string; y: number; z: boolean; };\n *\n * namespace AVStantso.TS.Literal {\n * export interface Map {\n * xyz: XYZ;\n * }\n * }\n *\n * avstantso.TS.Literal._Register('xyz');\n *\n * ///////////////\n *\n * type t = CheckType<AVStantso.TS.Resolve<'xyz'>, XYZ>;\n *\n * console.log(avstantso.TS.Literal.List.includes('xyz')); // prints true\n */\n _Register<L extends AVStantso.TS.Literal>(\n literal: L,\n empty?: AVStantso.TS.Resolve<L>\n ): void;\n }\n }\n\n export interface TS {\n /**\n * @summary Literals key-to-key record + utils\n */\n Literal: TS.Literal;\n }\n }\n\n avstantso._reg.TS.Literal(({ AtomicObjects, TS: TSRoot }) => {\n const CanBeObjKey = Object.freeze(['string', 'number', 'symbol'] as const);\n const Structural = Object.freeze(['object', 'function'] as const);\n\n /**\n * @see AVStantso.TS.isKey\n */\n function isKey<K extends AVStantso.TS.Key>(candidate: unknown): candidate is K {\n return undefined !== candidate\n && CanBeObjKey.includes(typeof candidate as typeof CanBeObjKey[number]);\n }\n Object.assign(TSRoot, { isKey });\n\n const meta = {\n string: '',\n number: 0,\n bigint: 0,\n boolean: false,\n symbol: Symbol(0),\n undefined: undefined as undefined,\n object: undefined as undefined,\n function: undefined as undefined\n };\n\n const Builtins = Object.freeze(Object.keys(meta));\n\n function Empty(type: string) {\n if (type in meta) return meta[type as keyof typeof meta];\n\n const d = AtomicObjects.descriptor(type);\n return d?.empty?.();\n }\n\n function IsValue(type: string, value: unknown) {\n const t = typeof value;\n if ('object' !== t) return t === type;\n\n const d = AtomicObjects.descriptor(type);\n return !!d && value instanceof d.Class;\n }\n\n const Literal = {\n Builtins,\n CanBeObjKey,\n Structural,\n get List() {\n const r = Object.keys(meta);\n\n for (const Class of AtomicObjects.classes.keys())\n r.push(Class.name);\n\n return r;\n },\n\n Empty,\n IsValue,\n\n _Register(literal: string, empty?: unknown) {\n if (literal in meta)\n throw Error(`Literal named \"${literal}\" already registered`);\n\n if (AtomicObjects.descriptor(literal))\n throw Error(`Atomic object with class named \"${literal}\" already registered`);\n\n Object.assign(meta, { [literal]: empty });\n\n Object.defineProperty(this, literal, { value: literal, writable: false });\n }\n } as unknown as Code.TS.Literal;\n\n for (const literal of Literal.List) {\n Object.defineProperty(Literal, literal, { value: literal, writable: false });\n\n Object.defineProperty(Empty, literal, { get: Empty.bind(null, literal) });\n\n Object.defineProperty(IsValue, literal, {\n value: IsValue.bind(null, literal),\n writable: false\n });\n }\n\n return Literal;\n });\n}\n","namespace AVStantso {\n export namespace Code {\n export namespace TS {\n export namespace Structure {\n /**\n * @summary Not strict Structure.\n */\n export type Wildcard = AVStantso.TS.Structure.Wildcard;\n\n /**\n * @summary Find structure `object` `T` key by `value` `V`\n * @template T Structure\n * @template V Structure value or provider subvalue\n * @template TProviderFiled Sub key of `object` values for extract value\n * @param structure Structure for search\n * @param value Structure value or provider subvalue\n * @param field Sub key of `object` values for extract value\n */\n export interface KeyByValue {\n /**\n * @summary Find structure `object` `T` key by `value` `V`\n * @template T Structure\n * @template V Structure value\n * @param structure Structure for search\n * @param value Structure value or provider subvalue\n */\n <\n T extends Structure.Wildcard,\n V\n >(\n structure: T,\n value: V,\n ): AVStantso.TS.Structure.Reverse<T> extends infer R\n ? V extends keyof R ? R[V] : unknown\n : unknown;\n\n /**\n * @summary Find structure `object` `T` key by `value` `V`\n * @template T Structure\n * @template V Structure value or provider subvalue\n * @template TProviderFiled Sub key of `object` values for extract value\n * @param field Sub key of `object` values for extract value\n * @param structure Structure for search\n * @param value Structure value or provider subvalue\n */\n <\n T extends Structure.Wildcard,\n V,\n TProviderFiled extends AVStantso.TS.Key = undefined\n >(\n field: TProviderFiled,\n structure: T,\n value: V,\n ): AVStantso.TS.Structure.Reverse<T, TProviderFiled> extends infer R\n ? V extends keyof R ? R[V] : unknown\n : unknown;\n };\n }\n\n /**\n * @summary TypeScript structure helpers utility\n */\n export interface Structure {\n /**\n * @summary Check `candidate` is `Structure` and cast to `T`.\n * @param candidate Tested value\n * @param noSpecialClasses If setted, returns `false` for `Array`, `Map`, `Set` etc.\n */\n is<T extends Structure.Wildcard>(\n candidate: unknown,\n noSpecialClasses?: boolean\n ): candidate is T;\n\n /**\n * @summary Find structure `object` `T` key by `value` `V`\n * @template T Structure\n * @template V Structure value or provider subvalue\n * @template TProviderFiled Sub key of `object` values for extract value\n * @param field Sub key of `object` values for extract value\n * @param structure Structure for search\n * @param value Structure value or provider subvalue\n */\n keyByValue: Structure.KeyByValue;\n\n /**\n * @summary Reverse structure `object` `T` to map value-key.\\\n * Non keyable values is ignored\\\n * except `object` if defined `TProviderFiled` and it's have this key\n * @template T Structure object for reverse\n * @template TProviderFiled Sub key of `object` values for extract value\n * @EXAMPLE(@TS.Structure.Reverse)\n */\n reverse<\n T extends object,\n TProviderFiled extends AVStantso.TS.Key = undefined\n >(\n structure: T,\n field?: TProviderFiled\n ): AVStantso.TS.Structure.Reverse<T, TProviderFiled>;\n }\n\n }\n\n export interface TS {\n /**\n * @summary TypeScript structure helpers utility\n */\n Structure: TS.Structure;\n }\n }\n\n avstantso._reg.TS.Structure(({ TS: { isKey, Literal } }) => {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n function isStructure<\n T extends AVStantso.TS.Structure.Wildcard\n >(\n candidate: unknown,\n noSpecialClasses?: boolean\n ): candidate is T {\n if (!candidate) return false;\n\n const i = Literal.Structural.indexOf(typeof candidate as any);\n switch (i) {\n case -1:\n return false;\n\n case 1:\n return true;\n\n default:\n return !noSpecialClasses || Object.getPrototypeOf(candidate) === Object.prototype;\n }\n }\n\n function resolveValue(value: unknown, field?: string) {\n const useFileld = field && (isStructure<any>(value) && field in value);\n return useFileld ? value[field] : value;\n }\n\n function keyByValue(...params: AVStantso.TS.Arr) {\n const field = params.length > 2 ? params.shift() : undefined;\n const [structure, value] = params as [object, unknown];\n if (!isStructure(structure))\n return null;\n\n const rv = resolveValue(value, field);\n for (const [k, v] of Object.entries(structure))\n if (rv === resolveValue(v, field))\n return k;\n\n return null;\n }\n\n function reverse(structure: object, field?: string): object {\n if (!isStructure(structure))\n return null;\n\n const r: any = {};\n for (const [k, v] of Object.entries(structure)) {\n const vv = resolveValue(v, field);\n if (isKey(vv))\n r[vv] = k;\n }\n\n return r;\n }\n\n return {\n is: isStructure,\n keyByValue,\n reverse\n } as Code.TS.Structure;\n });\n}\n","namespace AVStantso {\n export namespace TS {\n /**\n * @summary Available types for value\n */\n export type Type = Literal.Map[Literal];\n }\n\n export namespace Code {\n export namespace TS {\n export namespace Type {\n /**\n * @summary Create type definition array `[<key>, <type literal>, <default value>?]`\n */\n export type KLD = {\n /**\n * @summary Create type definition array `[<key>, <type literal>, <default value>?]`\n * @template K Key constraint\n * @template L Literal constraint\n * @template D Default constraint\n * @param key Key value\n * @param type Literal type value\n * @param def Resolved type default value\n */\n <\n K extends AVStantso.TS.Key,\n L extends AVStantso.TS.Literal,\n D extends AVStantso.TS.Resolve<L> = undefined\n >(\n key: K,\n type: L,\n def?: D\n ): AVStantso.TS.Type.KLD<K, L, D>;\n\n /**\n * @summary Parse params like `[K, L]` or `[[K, L]]`\n *\n * `⚠ Without strict control`\n */\n Parse(params: AVStantso.TS.Arr): AVStantso.TS.Type.KLD;\n };\n }\n\n /**\n * @summary `AVStantso.TS.Type` utility\n */\n export interface Type {\n /**\n * @summary Create keyed type definition structure\n * @template K Key constraint\n * @template L Literal constraint\n * @param key Key value\n * @param type Literal type value\n */\n KeyDef<K extends AVStantso.TS.Key, L extends AVStantso.TS.Literal>(\n key: K,\n type: L\n ): AVStantso.TS.Type.KeyDef.Make<K, L>;\n\n /**\n * @summary Create type definition array `[<key>, <type literal>, <default value>?]`\n * @template K Key constraint\n * @template L Literal constraint\n * @template D Default constraint\n * @param key Key value\n * @param type Literal type value\n * @param def Resolved type default value\n */\n KLD: Type.KLD;\n }\n }\n\n export interface TS {\n /**\n * @summary `AVStantso.TS.Type` utility\n */\n Type: TS.Type;\n }\n }\n\n avstantso._reg.TS.Type(() => {\n function KeyDef(key: string, type: string){\n return { K: key, L: type };\n };\n\n const KLD = Object.assign(\n function KLD(key: string, type: string, def?: unknown) {\n return [key, type, def];\n },\n {\n Parse: function KLDParse(params: TS.Arr) {\n return Array.isArray(params[0]) ? params[0] : params;\n }\n }\n );\n\n return { KeyDef, KLD } as Code.TS.Type;\n });\n}\n","// eslint-disable-next-line @typescript-eslint/no-unused-vars\ndeclare interface ObjectConstructor {\n /**\n * Returns typed the names of the enumerable string properties and methods of an object.\n * @param o — Object that contains the properties and methods.\n * This can be an object that you created\n * or an existing Document Object Model (DOM) object.\n */\n keysEx<O extends object>(o: O): AVStantso.TS.Structure.ToKeysArray<O>;\n\n /**\n * Returns an array of typed values of the enumerable own properties of an object\n * @param o — Object that contains the properties and methods.\n * This can be an object that you created\n * or an existing Document Object Model (DOM) object.\n */\n valuesEx<O extends object>(o: O): AVStantso.TS.Structure.ToValuesArray<O>;\n\n /**\n * Returns an array of typed key/values of the enumerable own properties of an object\n * @param o — Object that contains the properties and methods.\n * This can be an object that you created\n * or an existing Document Object Model (DOM) object.\n */\n entriesEx<O extends object>(o: O): AVStantso.TS.Structure.ToEntriesArray<O>;\n}\n\nObject.defineProperties(Object, {\n keysEx: { value: Object.keys, writable: false },\n valuesEx: { value: Object.values, writable: false },\n entriesEx: { value: Object.entries, writable: false }\n});\n","import TS = AVStantso.TS;\nexport { TS };\n"],"names":["AVStantso"],"mappings":"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"}
|