@dipscope/type-manager 6.0.0 → 7.0.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.
Files changed (446) hide show
  1. package/CHANGELOG.md +262 -247
  2. package/CONTRIBUTING.md +58 -58
  3. package/LICENSE.md +201 -201
  4. package/README.md +1901 -1887
  5. package/dist/es2015/alias.js +1 -1
  6. package/dist/es2015/any.js +2 -2
  7. package/dist/es2015/custom-context.js +58 -0
  8. package/dist/es2015/custom-context.js.map +1 -0
  9. package/dist/es2015/custom-key.js +8 -0
  10. package/dist/es2015/custom-key.js.map +1 -0
  11. package/dist/es2015/custom-option.js +2 -0
  12. package/dist/es2015/custom-option.js.map +1 -0
  13. package/dist/es2015/custom-value-resolver.js +2 -0
  14. package/dist/es2015/custom-value-resolver.js.map +1 -0
  15. package/dist/es2015/custom-value.js +2 -0
  16. package/dist/es2015/custom-value.js.map +1 -0
  17. package/dist/es2015/default-value-resolver.js +1 -1
  18. package/dist/es2015/default-value.js +1 -1
  19. package/dist/es2015/discriminant.js +1 -1
  20. package/dist/es2015/discriminator.js +1 -1
  21. package/dist/es2015/factories/index.js +1 -1
  22. package/dist/es2015/factories/type-factory.js +33 -33
  23. package/dist/es2015/factory.js +1 -1
  24. package/dist/es2015/functions/get-own-reflect-metadata.js +7 -7
  25. package/dist/es2015/functions/get-reflect-metadata.js +7 -7
  26. package/dist/es2015/functions/get-words.js +4 -4
  27. package/dist/es2015/functions/index.js +18 -18
  28. package/dist/es2015/functions/is-arrow-function.js +4 -4
  29. package/dist/es2015/functions/is-ctor-function.js +4 -4
  30. package/dist/es2015/functions/is-data-view.js +3 -3
  31. package/dist/es2015/functions/is-float-32-array.js +3 -3
  32. package/dist/es2015/functions/is-float-64-array.js +3 -3
  33. package/dist/es2015/functions/is-int-16-array.js +3 -3
  34. package/dist/es2015/functions/is-int-32-array.js +3 -3
  35. package/dist/es2015/functions/is-int-8-array.js +3 -3
  36. package/dist/es2015/functions/is-uint-16-array.js +3 -3
  37. package/dist/es2015/functions/is-uint-32-array.js +3 -3
  38. package/dist/es2015/functions/is-uint-8-array.js +3 -3
  39. package/dist/es2015/functions/is-uint-8-clamped-array.js +3 -3
  40. package/dist/es2015/functions/json-parse.js +3 -3
  41. package/dist/es2015/functions/json-stringify.js +66 -66
  42. package/dist/es2015/functions/name-of.js +7 -7
  43. package/dist/es2015/generic-argument.js +1 -1
  44. package/dist/es2015/generic-metadata-resolver.js +1 -1
  45. package/dist/es2015/generic-metadata.js +1 -1
  46. package/dist/es2015/generic-structure.js +1 -1
  47. package/dist/es2015/index.js +70 -66
  48. package/dist/es2015/index.js.map +1 -1
  49. package/dist/es2015/inject-index.js +1 -1
  50. package/dist/es2015/inject-internals.js +1 -1
  51. package/dist/es2015/inject-metadata.js +62 -62
  52. package/dist/es2015/inject-metadata.js.map +1 -1
  53. package/dist/es2015/inject-options.js +1 -1
  54. package/dist/es2015/inject-sorter.js +1 -1
  55. package/dist/es2015/inject-sorters/asc-inject-sorter.js +13 -13
  56. package/dist/es2015/inject-sorters/desc-inject-sorter.js +13 -13
  57. package/dist/es2015/inject-sorters/index.js +2 -2
  58. package/dist/es2015/inject.js +23 -23
  59. package/dist/es2015/injector.js +1 -1
  60. package/dist/es2015/injectors/index.js +1 -1
  61. package/dist/es2015/injectors/singleton-injector.js +30 -30
  62. package/dist/es2015/log-level.js +7 -7
  63. package/dist/es2015/log.js +49 -49
  64. package/dist/es2015/metadata.js +80 -80
  65. package/dist/es2015/metadata.js.map +1 -1
  66. package/dist/es2015/naming-convention.js +1 -1
  67. package/dist/es2015/naming-conventions/camel-case-naming-convention.js +16 -16
  68. package/dist/es2015/naming-conventions/flat-case-naming-convention.js +12 -12
  69. package/dist/es2015/naming-conventions/flat-upper-case-naming-convention.js +12 -12
  70. package/dist/es2015/naming-conventions/index.js +8 -8
  71. package/dist/es2015/naming-conventions/kebab-case-naming-convention.js +16 -16
  72. package/dist/es2015/naming-conventions/kebab-upper-case-naming-convention.js +16 -16
  73. package/dist/es2015/naming-conventions/pascal-case-naming-convention.js +17 -17
  74. package/dist/es2015/naming-conventions/snake-case-naming-convention.js +16 -16
  75. package/dist/es2015/naming-conventions/snake-upper-case-naming-convention.js +16 -16
  76. package/dist/es2015/property-internals.js +1 -1
  77. package/dist/es2015/property-metadata.js +268 -258
  78. package/dist/es2015/property-metadata.js.map +1 -1
  79. package/dist/es2015/property-name.js +1 -1
  80. package/dist/es2015/property-options.js +1 -1
  81. package/dist/es2015/property-sorter.js +1 -1
  82. package/dist/es2015/property-sorters/asc-property-sorter.js +13 -13
  83. package/dist/es2015/property-sorters/desc-property-sorter.js +13 -13
  84. package/dist/es2015/property-sorters/index.js +2 -2
  85. package/dist/es2015/property.js +38 -38
  86. package/dist/es2015/reference-callback.js +1 -1
  87. package/dist/es2015/reference-handler.js +1 -1
  88. package/dist/es2015/reference-handlers/circular-reference-handler.js +35 -35
  89. package/dist/es2015/reference-handlers/index.js +3 -3
  90. package/dist/es2015/reference-handlers/json-path-reference-handler.js +68 -68
  91. package/dist/es2015/reference-handlers/plain-reference-handler.js +31 -31
  92. package/dist/es2015/reference-key.js +1 -1
  93. package/dist/es2015/reference-value-getter.js +1 -1
  94. package/dist/es2015/reference-value-setter.js +1 -1
  95. package/dist/es2015/reference-value.js +1 -1
  96. package/dist/es2015/serializer-context-options.js +1 -1
  97. package/dist/es2015/serializer-context.js +281 -294
  98. package/dist/es2015/serializer-context.js.map +1 -1
  99. package/dist/es2015/serializer.js +1 -1
  100. package/dist/es2015/serializers/any-serializer.js +21 -21
  101. package/dist/es2015/serializers/array-buffer-serializer.js +40 -40
  102. package/dist/es2015/serializers/array-serializer.js +59 -59
  103. package/dist/es2015/serializers/boolean-serializer.js +54 -54
  104. package/dist/es2015/serializers/data-view-serializer.js +41 -41
  105. package/dist/es2015/serializers/date-serializer.js +33 -33
  106. package/dist/es2015/serializers/float-32-array-serializer.js +34 -34
  107. package/dist/es2015/serializers/float-64-array-serializer.js +34 -34
  108. package/dist/es2015/serializers/index.js +21 -21
  109. package/dist/es2015/serializers/int-16-array-serializer.js +34 -34
  110. package/dist/es2015/serializers/int-32-array-serializer.js +34 -34
  111. package/dist/es2015/serializers/int-8-array-serializer.js +34 -34
  112. package/dist/es2015/serializers/map-serializer.js +95 -95
  113. package/dist/es2015/serializers/number-serializer.js +48 -48
  114. package/dist/es2015/serializers/set-serializer.js +61 -61
  115. package/dist/es2015/serializers/string-serializer.js +54 -54
  116. package/dist/es2015/serializers/type-serializer.js +120 -120
  117. package/dist/es2015/serializers/uint-16-array-serializer.js +34 -34
  118. package/dist/es2015/serializers/uint-32-array-serializer.js +34 -34
  119. package/dist/es2015/serializers/uint-8-array-serializer.js +34 -34
  120. package/dist/es2015/serializers/uint-8-clamped-array-serializer.js +34 -34
  121. package/dist/es2015/serializers/unknown-serializer.js +21 -21
  122. package/dist/es2015/type-abstraction.js +1 -1
  123. package/dist/es2015/type-argument.js +1 -1
  124. package/dist/es2015/type-configuration.js +1 -1
  125. package/dist/es2015/type-context-entry.js +8 -8
  126. package/dist/es2015/type-context.js +30 -24
  127. package/dist/es2015/type-context.js.map +1 -1
  128. package/dist/es2015/type-ctor.js +1 -1
  129. package/dist/es2015/type-fn.js +1 -1
  130. package/dist/es2015/type-internals.js +2 -0
  131. package/dist/es2015/type-internals.js.map +1 -0
  132. package/dist/es2015/type-like.js +1 -1
  133. package/dist/es2015/type-manager-options.js +1 -1
  134. package/dist/es2015/type-manager.js +319 -313
  135. package/dist/es2015/type-manager.js.map +1 -1
  136. package/dist/es2015/type-metadata-resolver.js +1 -1
  137. package/dist/es2015/type-metadata-symbol.js +1 -1
  138. package/dist/es2015/type-metadata.js +413 -398
  139. package/dist/es2015/type-metadata.js.map +1 -1
  140. package/dist/es2015/type-name.js +1 -1
  141. package/dist/es2015/type-options-base.js +1 -1
  142. package/dist/es2015/type-options.js +1 -1
  143. package/dist/es2015/type-resolver.js +1 -1
  144. package/dist/es2015/type.js +7 -7
  145. package/dist/es2015/unknown.js +2 -2
  146. package/dist/es5/alias.js +1 -1
  147. package/dist/es5/any.js +6 -6
  148. package/dist/es5/custom-context.js +94 -0
  149. package/dist/es5/custom-context.js.map +1 -0
  150. package/dist/es5/custom-key.js +10 -0
  151. package/dist/es5/custom-key.js.map +1 -0
  152. package/dist/es5/custom-option.js +2 -0
  153. package/dist/es5/custom-option.js.map +1 -0
  154. package/dist/es5/custom-value-resolver.js +2 -0
  155. package/dist/es5/custom-value-resolver.js.map +1 -0
  156. package/dist/es5/custom-value.js +2 -0
  157. package/dist/es5/custom-value.js.map +1 -0
  158. package/dist/es5/default-value-resolver.js +1 -1
  159. package/dist/es5/default-value.js +1 -1
  160. package/dist/es5/discriminant.js +1 -1
  161. package/dist/es5/discriminator.js +1 -1
  162. package/dist/es5/factories/index.js +1 -1
  163. package/dist/es5/factories/type-factory.js +59 -59
  164. package/dist/es5/factory.js +1 -1
  165. package/dist/es5/functions/get-own-reflect-metadata.js +7 -7
  166. package/dist/es5/functions/get-reflect-metadata.js +7 -7
  167. package/dist/es5/functions/get-words.js +4 -4
  168. package/dist/es5/functions/index.js +18 -18
  169. package/dist/es5/functions/is-arrow-function.js +4 -4
  170. package/dist/es5/functions/is-ctor-function.js +4 -4
  171. package/dist/es5/functions/is-data-view.js +3 -3
  172. package/dist/es5/functions/is-float-32-array.js +3 -3
  173. package/dist/es5/functions/is-float-64-array.js +3 -3
  174. package/dist/es5/functions/is-int-16-array.js +3 -3
  175. package/dist/es5/functions/is-int-32-array.js +3 -3
  176. package/dist/es5/functions/is-int-8-array.js +3 -3
  177. package/dist/es5/functions/is-uint-16-array.js +3 -3
  178. package/dist/es5/functions/is-uint-32-array.js +3 -3
  179. package/dist/es5/functions/is-uint-8-array.js +3 -3
  180. package/dist/es5/functions/is-uint-8-clamped-array.js +3 -3
  181. package/dist/es5/functions/json-parse.js +3 -3
  182. package/dist/es5/functions/json-stringify.js +66 -66
  183. package/dist/es5/functions/name-of.js +7 -7
  184. package/dist/es5/generic-argument.js +1 -1
  185. package/dist/es5/generic-metadata-resolver.js +1 -1
  186. package/dist/es5/generic-metadata.js +1 -1
  187. package/dist/es5/generic-structure.js +1 -1
  188. package/dist/es5/index.js +70 -66
  189. package/dist/es5/index.js.map +1 -1
  190. package/dist/es5/inject-index.js +1 -1
  191. package/dist/es5/inject-internals.js +1 -1
  192. package/dist/es5/inject-metadata.js +83 -83
  193. package/dist/es5/inject-metadata.js.map +1 -1
  194. package/dist/es5/inject-options.js +1 -1
  195. package/dist/es5/inject-sorter.js +1 -1
  196. package/dist/es5/inject-sorters/asc-inject-sorter.js +17 -17
  197. package/dist/es5/inject-sorters/desc-inject-sorter.js +17 -17
  198. package/dist/es5/inject-sorters/index.js +2 -2
  199. package/dist/es5/inject.js +23 -23
  200. package/dist/es5/injector.js +1 -1
  201. package/dist/es5/injectors/index.js +1 -1
  202. package/dist/es5/injectors/singleton-injector.js +44 -44
  203. package/dist/es5/log-level.js +7 -7
  204. package/dist/es5/log.js +64 -64
  205. package/dist/es5/metadata.js +105 -105
  206. package/dist/es5/metadata.js.map +1 -1
  207. package/dist/es5/naming-convention.js +1 -1
  208. package/dist/es5/naming-conventions/camel-case-naming-convention.js +20 -20
  209. package/dist/es5/naming-conventions/flat-case-naming-convention.js +16 -16
  210. package/dist/es5/naming-conventions/flat-upper-case-naming-convention.js +16 -16
  211. package/dist/es5/naming-conventions/index.js +8 -8
  212. package/dist/es5/naming-conventions/kebab-case-naming-convention.js +20 -20
  213. package/dist/es5/naming-conventions/kebab-upper-case-naming-convention.js +20 -20
  214. package/dist/es5/naming-conventions/pascal-case-naming-convention.js +21 -21
  215. package/dist/es5/naming-conventions/snake-case-naming-convention.js +20 -20
  216. package/dist/es5/naming-conventions/snake-upper-case-naming-convention.js +20 -20
  217. package/dist/es5/property-internals.js +1 -1
  218. package/dist/es5/property-metadata.js +377 -363
  219. package/dist/es5/property-metadata.js.map +1 -1
  220. package/dist/es5/property-name.js +1 -1
  221. package/dist/es5/property-options.js +1 -1
  222. package/dist/es5/property-sorter.js +1 -1
  223. package/dist/es5/property-sorters/asc-property-sorter.js +17 -17
  224. package/dist/es5/property-sorters/desc-property-sorter.js +17 -17
  225. package/dist/es5/property-sorters/index.js +2 -2
  226. package/dist/es5/property.js +38 -38
  227. package/dist/es5/reference-callback.js +1 -1
  228. package/dist/es5/reference-handler.js +1 -1
  229. package/dist/es5/reference-handlers/circular-reference-handler.js +39 -39
  230. package/dist/es5/reference-handlers/index.js +3 -3
  231. package/dist/es5/reference-handlers/json-path-reference-handler.js +92 -92
  232. package/dist/es5/reference-handlers/plain-reference-handler.js +35 -35
  233. package/dist/es5/reference-key.js +1 -1
  234. package/dist/es5/reference-value-getter.js +1 -1
  235. package/dist/es5/reference-value-setter.js +1 -1
  236. package/dist/es5/reference-value.js +1 -1
  237. package/dist/es5/serializer-context-options.js +1 -1
  238. package/dist/es5/serializer-context.js +416 -433
  239. package/dist/es5/serializer-context.js.map +1 -1
  240. package/dist/es5/serializer.js +1 -1
  241. package/dist/es5/serializers/any-serializer.js +25 -25
  242. package/dist/es5/serializers/array-buffer-serializer.js +44 -44
  243. package/dist/es5/serializers/array-serializer.js +69 -69
  244. package/dist/es5/serializers/boolean-serializer.js +58 -58
  245. package/dist/es5/serializers/data-view-serializer.js +45 -45
  246. package/dist/es5/serializers/date-serializer.js +37 -37
  247. package/dist/es5/serializers/float-32-array-serializer.js +38 -38
  248. package/dist/es5/serializers/float-64-array-serializer.js +38 -38
  249. package/dist/es5/serializers/index.js +21 -21
  250. package/dist/es5/serializers/int-16-array-serializer.js +38 -38
  251. package/dist/es5/serializers/int-32-array-serializer.js +38 -38
  252. package/dist/es5/serializers/int-8-array-serializer.js +38 -38
  253. package/dist/es5/serializers/map-serializer.js +114 -114
  254. package/dist/es5/serializers/number-serializer.js +52 -52
  255. package/dist/es5/serializers/set-serializer.js +77 -77
  256. package/dist/es5/serializers/string-serializer.js +58 -58
  257. package/dist/es5/serializers/type-serializer.js +153 -153
  258. package/dist/es5/serializers/uint-16-array-serializer.js +38 -38
  259. package/dist/es5/serializers/uint-32-array-serializer.js +38 -38
  260. package/dist/es5/serializers/uint-8-array-serializer.js +38 -38
  261. package/dist/es5/serializers/uint-8-clamped-array-serializer.js +38 -38
  262. package/dist/es5/serializers/unknown-serializer.js +25 -25
  263. package/dist/es5/type-abstraction.js +1 -1
  264. package/dist/es5/type-argument.js +1 -1
  265. package/dist/es5/type-configuration.js +1 -1
  266. package/dist/es5/type-context-entry.js +10 -10
  267. package/dist/es5/type-context.js +32 -26
  268. package/dist/es5/type-context.js.map +1 -1
  269. package/dist/es5/type-ctor.js +1 -1
  270. package/dist/es5/type-fn.js +1 -1
  271. package/dist/es5/type-internals.js +2 -0
  272. package/dist/es5/type-internals.js.map +1 -0
  273. package/dist/es5/type-like.js +1 -1
  274. package/dist/es5/type-manager-options.js +1 -1
  275. package/dist/es5/type-manager.js +412 -406
  276. package/dist/es5/type-manager.js.map +1 -1
  277. package/dist/es5/type-metadata-resolver.js +1 -1
  278. package/dist/es5/type-metadata-symbol.js +1 -1
  279. package/dist/es5/type-metadata.js +563 -544
  280. package/dist/es5/type-metadata.js.map +1 -1
  281. package/dist/es5/type-name.js +1 -1
  282. package/dist/es5/type-options-base.js +1 -1
  283. package/dist/es5/type-options.js +1 -1
  284. package/dist/es5/type-resolver.js +1 -1
  285. package/dist/es5/type.js +7 -7
  286. package/dist/es5/unknown.js +6 -6
  287. package/dist/types/alias.d.ts +6 -6
  288. package/dist/types/any.d.ts +9 -9
  289. package/dist/types/custom-context.d.ts +89 -0
  290. package/dist/types/custom-context.d.ts.map +1 -0
  291. package/dist/types/custom-key.d.ts +29 -0
  292. package/dist/types/custom-key.d.ts.map +1 -0
  293. package/dist/types/custom-option.d.ts +11 -0
  294. package/dist/types/custom-option.d.ts.map +1 -0
  295. package/dist/types/custom-value-resolver.d.ts +7 -0
  296. package/dist/types/custom-value-resolver.d.ts.map +1 -0
  297. package/dist/types/custom-value.d.ts +7 -0
  298. package/dist/types/custom-value.d.ts.map +1 -0
  299. package/dist/types/default-value-resolver.d.ts +7 -7
  300. package/dist/types/default-value.d.ts +7 -7
  301. package/dist/types/discriminant.d.ts +8 -8
  302. package/dist/types/discriminator.d.ts +6 -6
  303. package/dist/types/factories/index.d.ts +1 -1
  304. package/dist/types/factories/type-factory.d.ts +19 -19
  305. package/dist/types/factory.d.ts +18 -18
  306. package/dist/types/functions/get-own-reflect-metadata.d.ts +9 -9
  307. package/dist/types/functions/get-reflect-metadata.d.ts +10 -10
  308. package/dist/types/functions/get-words.d.ts +8 -8
  309. package/dist/types/functions/index.d.ts +18 -18
  310. package/dist/types/functions/is-arrow-function.d.ts +8 -8
  311. package/dist/types/functions/is-ctor-function.d.ts +8 -8
  312. package/dist/types/functions/is-data-view.d.ts +8 -8
  313. package/dist/types/functions/is-float-32-array.d.ts +8 -8
  314. package/dist/types/functions/is-float-64-array.d.ts +8 -8
  315. package/dist/types/functions/is-int-16-array.d.ts +8 -8
  316. package/dist/types/functions/is-int-32-array.d.ts +8 -8
  317. package/dist/types/functions/is-int-8-array.d.ts +8 -8
  318. package/dist/types/functions/is-uint-16-array.d.ts +8 -8
  319. package/dist/types/functions/is-uint-32-array.d.ts +8 -8
  320. package/dist/types/functions/is-uint-8-array.d.ts +8 -8
  321. package/dist/types/functions/is-uint-8-clamped-array.d.ts +8 -8
  322. package/dist/types/functions/json-parse.d.ts +9 -9
  323. package/dist/types/functions/json-stringify.d.ts +10 -10
  324. package/dist/types/functions/name-of.d.ts +8 -8
  325. package/dist/types/generic-argument.d.ts +7 -7
  326. package/dist/types/generic-metadata-resolver.d.ts +7 -7
  327. package/dist/types/generic-metadata.d.ts +7 -7
  328. package/dist/types/generic-structure.d.ts +7 -7
  329. package/dist/types/index.d.ts +70 -66
  330. package/dist/types/index.d.ts.map +1 -1
  331. package/dist/types/inject-index.d.ts +6 -6
  332. package/dist/types/inject-internals.d.ts +14 -14
  333. package/dist/types/inject-internals.d.ts.map +1 -1
  334. package/dist/types/inject-metadata.d.ts +117 -117
  335. package/dist/types/inject-metadata.d.ts.map +1 -1
  336. package/dist/types/inject-options.d.ts +22 -22
  337. package/dist/types/inject-sorter.d.ts +19 -19
  338. package/dist/types/inject-sorters/asc-inject-sorter.d.ts +20 -20
  339. package/dist/types/inject-sorters/desc-inject-sorter.d.ts +20 -20
  340. package/dist/types/inject-sorters/index.d.ts +2 -2
  341. package/dist/types/inject.d.ts +10 -10
  342. package/dist/types/injector.d.ts +16 -16
  343. package/dist/types/injectors/index.d.ts +1 -1
  344. package/dist/types/injectors/singleton-injector.d.ts +31 -31
  345. package/dist/types/log-level.d.ts +11 -11
  346. package/dist/types/log.d.ts +95 -95
  347. package/dist/types/metadata.d.ts +99 -100
  348. package/dist/types/metadata.d.ts.map +1 -1
  349. package/dist/types/naming-convention.d.ts +15 -15
  350. package/dist/types/naming-conventions/camel-case-naming-convention.d.ts +26 -26
  351. package/dist/types/naming-conventions/flat-case-naming-convention.d.ts +25 -25
  352. package/dist/types/naming-conventions/flat-upper-case-naming-convention.d.ts +25 -25
  353. package/dist/types/naming-conventions/index.d.ts +8 -8
  354. package/dist/types/naming-conventions/kebab-case-naming-convention.d.ts +26 -26
  355. package/dist/types/naming-conventions/kebab-upper-case-naming-convention.d.ts +26 -26
  356. package/dist/types/naming-conventions/pascal-case-naming-convention.d.ts +26 -26
  357. package/dist/types/naming-conventions/snake-case-naming-convention.d.ts +26 -26
  358. package/dist/types/naming-conventions/snake-upper-case-naming-convention.d.ts +26 -26
  359. package/dist/types/property-internals.d.ts +35 -28
  360. package/dist/types/property-internals.d.ts.map +1 -1
  361. package/dist/types/property-metadata.d.ts +359 -352
  362. package/dist/types/property-metadata.d.ts.map +1 -1
  363. package/dist/types/property-name.d.ts +6 -6
  364. package/dist/types/property-options.d.ts +116 -116
  365. package/dist/types/property-options.d.ts.map +1 -1
  366. package/dist/types/property-sorter.d.ts +19 -19
  367. package/dist/types/property-sorters/asc-property-sorter.d.ts +20 -20
  368. package/dist/types/property-sorters/desc-property-sorter.d.ts +20 -20
  369. package/dist/types/property-sorters/index.d.ts +2 -2
  370. package/dist/types/property.d.ts +13 -13
  371. package/dist/types/reference-callback.d.ts +7 -7
  372. package/dist/types/reference-handler.d.ts +31 -31
  373. package/dist/types/reference-handlers/circular-reference-handler.d.ts +32 -32
  374. package/dist/types/reference-handlers/index.d.ts +3 -3
  375. package/dist/types/reference-handlers/json-path-reference-handler.d.ts +55 -55
  376. package/dist/types/reference-handlers/plain-reference-handler.d.ts +33 -33
  377. package/dist/types/reference-key.d.ts +6 -6
  378. package/dist/types/reference-value-getter.d.ts +7 -7
  379. package/dist/types/reference-value-setter.d.ts +7 -7
  380. package/dist/types/reference-value.d.ts +6 -6
  381. package/dist/types/serializer-context-options.d.ts +50 -50
  382. package/dist/types/serializer-context.d.ts +418 -425
  383. package/dist/types/serializer-context.d.ts.map +1 -1
  384. package/dist/types/serializer.d.ts +27 -27
  385. package/dist/types/serializers/any-serializer.d.ts +28 -28
  386. package/dist/types/serializers/array-buffer-serializer.d.ts +28 -28
  387. package/dist/types/serializers/array-serializer.d.ts +28 -28
  388. package/dist/types/serializers/boolean-serializer.d.ts +37 -37
  389. package/dist/types/serializers/data-view-serializer.d.ts +28 -28
  390. package/dist/types/serializers/date-serializer.d.ts +28 -28
  391. package/dist/types/serializers/float-32-array-serializer.d.ts +28 -28
  392. package/dist/types/serializers/float-64-array-serializer.d.ts +28 -28
  393. package/dist/types/serializers/index.d.ts +21 -21
  394. package/dist/types/serializers/int-16-array-serializer.d.ts +28 -28
  395. package/dist/types/serializers/int-32-array-serializer.d.ts +28 -28
  396. package/dist/types/serializers/int-8-array-serializer.d.ts +28 -28
  397. package/dist/types/serializers/map-serializer.d.ts +28 -28
  398. package/dist/types/serializers/number-serializer.d.ts +37 -37
  399. package/dist/types/serializers/set-serializer.d.ts +28 -28
  400. package/dist/types/serializers/string-serializer.d.ts +37 -37
  401. package/dist/types/serializers/type-serializer.d.ts +28 -28
  402. package/dist/types/serializers/uint-16-array-serializer.d.ts +28 -28
  403. package/dist/types/serializers/uint-32-array-serializer.d.ts +28 -28
  404. package/dist/types/serializers/uint-8-array-serializer.d.ts +28 -28
  405. package/dist/types/serializers/uint-8-clamped-array-serializer.d.ts +28 -28
  406. package/dist/types/serializers/unknown-serializer.d.ts +28 -28
  407. package/dist/types/type-abstraction.d.ts +6 -6
  408. package/dist/types/type-argument.d.ts +9 -9
  409. package/dist/types/type-configuration.d.ts +16 -16
  410. package/dist/types/type-context-entry.d.ts +36 -36
  411. package/dist/types/type-context.d.ts +70 -58
  412. package/dist/types/type-context.d.ts.map +1 -1
  413. package/dist/types/type-ctor.d.ts +6 -6
  414. package/dist/types/type-fn.d.ts +8 -8
  415. package/dist/types/type-internals.d.ts +15 -0
  416. package/dist/types/type-internals.d.ts.map +1 -0
  417. package/dist/types/type-like.d.ts +7 -7
  418. package/dist/types/type-manager-options.d.ts +33 -33
  419. package/dist/types/type-manager.d.ts +413 -397
  420. package/dist/types/type-manager.d.ts.map +1 -1
  421. package/dist/types/type-metadata-resolver.d.ts +8 -8
  422. package/dist/types/type-metadata-symbol.d.ts +6 -6
  423. package/dist/types/type-metadata.d.ts +513 -495
  424. package/dist/types/type-metadata.d.ts.map +1 -1
  425. package/dist/types/type-name.d.ts +6 -6
  426. package/dist/types/type-options-base.d.ts +106 -106
  427. package/dist/types/type-options-base.d.ts.map +1 -1
  428. package/dist/types/type-options.d.ts +72 -72
  429. package/dist/types/type-resolver.d.ts +7 -7
  430. package/dist/types/type.d.ts +9 -9
  431. package/dist/types/unknown.d.ts +9 -9
  432. package/dist/umd/index.js +1 -1
  433. package/dist/umd/index.js.map +1 -1
  434. package/package.json +63 -63
  435. package/dist/es2015/custom-data.js +0 -2
  436. package/dist/es2015/custom-data.js.map +0 -1
  437. package/dist/es2015/type-metadata-extractor.js +0 -2
  438. package/dist/es2015/type-metadata-extractor.js.map +0 -1
  439. package/dist/es5/custom-data.js +0 -2
  440. package/dist/es5/custom-data.js.map +0 -1
  441. package/dist/es5/type-metadata-extractor.js +0 -2
  442. package/dist/es5/type-metadata-extractor.js.map +0 -1
  443. package/dist/types/custom-data.d.ts +0 -7
  444. package/dist/types/custom-data.d.ts.map +0 -1
  445. package/dist/types/type-metadata-extractor.d.ts +0 -9
  446. package/dist/types/type-metadata-extractor.d.ts.map +0 -1
@@ -1,398 +1,414 @@
1
- import { Alias } from './alias';
2
- import { GenericArgument } from './generic-argument';
3
- import { SerializerContext } from './serializer-context';
4
- import { TypeConfiguration } from './type-configuration';
5
- import { TypeFn } from './type-fn';
6
- import { TypeLike } from './type-like';
7
- import { TypeManagerOptions } from './type-manager-options';
8
- import { TypeMetadata } from './type-metadata';
9
- import { TypeOptions } from './type-options';
10
- import { TypeOptionsBase } from './type-options-base';
11
- /**
12
- * Type manager class.
13
- *
14
- * @type {TypeManager}
15
- */
16
- export declare class TypeManager {
17
- /**
18
- * Static shared options of any type which applied to any instance of type manager
19
- * by default.
20
- *
21
- * @type {TypeOptionsBase<any>}
22
- */
23
- static readonly defaultTypeOptionsBase: TypeOptionsBase<any>;
24
- /**
25
- * Static type options per type which applied to any instance of type manager
26
- * by default.
27
- *
28
- * @type {Map<TypeFn<any>, TypeOptions<any>>}
29
- */
30
- static readonly defaultTypeOptionsMap: Map<TypeFn<any>, TypeOptions<any>>;
31
- /**
32
- * Static type manager instance which is used for decorator based configurations and
33
- * static declarative based configurations.
34
- *
35
- * @type {TypeManager}
36
- */
37
- static readonly staticTypeManager: TypeManager;
38
- /**
39
- * Type function map for types with aliases.
40
- *
41
- * @type {Map<Alias, TypeFn<any>>}
42
- */
43
- readonly typeFnMap: Map<Alias, TypeFn<any>>;
44
- /**
45
- * Symbol of current instance which is used to store type metadata within types.
46
- *
47
- * @type {symbol}
48
- */
49
- readonly symbol: symbol;
50
- /**
51
- * Type manager options.
52
- *
53
- * @type {TypeManagerOptions}
54
- */
55
- readonly typeManagerOptions: TypeManagerOptions;
56
- /**
57
- * Constructor.
58
- *
59
- * Creating an instance of type manager allows to have multiple configs. By default only static
60
- * instance of type manager is created on the background and all decorator based and declarative based
61
- * configurations are applied to it.
62
- *
63
- * @param {TypeManagerOptions} typeManagerOptions Type manager options.
64
- */
65
- constructor(typeManagerOptions?: TypeManagerOptions);
66
- /**
67
- * Gets type function map in static context.
68
- *
69
- * @returns {Map<Alias, TypeFn<any>>} Type function map.
70
- */
71
- static get typeFnMap(): Map<Alias, TypeFn<any>>;
72
- /**
73
- * Gets symbol in static context.
74
- *
75
- * @returns {symbol} Type manager symbol.
76
- */
77
- static get symbol(): symbol;
78
- /**
79
- * Gets type manager options in static context.
80
- *
81
- * @returns {TypeManagerOptions} Type manager options.
82
- */
83
- static get typeManagerOptions(): TypeManagerOptions;
84
- /**
85
- * Gets type options base in static context.
86
- *
87
- * @returns {TypeOptionsBase<any>} Type options base.
88
- */
89
- static get typeOptionsBase(): TypeOptionsBase<any>;
90
- /**
91
- * Gets type options base.
92
- *
93
- * @returns {TypeOptionsBase<any>} Type options base.
94
- */
95
- get typeOptionsBase(): TypeOptionsBase<any>;
96
- /**
97
- * Gets type options map in static context.
98
- *
99
- * @returns {Map<TypeFn<any>, TypeOptions<any>>} Type options map.
100
- */
101
- static get typeOptionsMap(): Map<TypeFn<any>, TypeOptions<any>>;
102
- /**
103
- * Gets type options map.
104
- *
105
- * @returns {Map<TypeFn<any>, TypeOptions<any>>} Type options map.
106
- */
107
- get typeOptionsMap(): Map<TypeFn<any>, TypeOptions<any>>;
108
- /**
109
- * Gets type configuration map in static context.
110
- *
111
- * @returns {Map<TypeFn<any>, TypeConfiguration<any>>} Type configuration map.
112
- */
113
- static get typeConfigurationMap(): Map<TypeFn<any>, TypeConfiguration<any>>;
114
- /**
115
- * Gets type configuration map.
116
- *
117
- * @returns {Map<TypeFn<any>, TypeConfiguration<any>>} Type configuration map.
118
- */
119
- get typeConfigurationMap(): Map<TypeFn<any>, TypeConfiguration<any>>;
120
- /**
121
- * Constructs initial type manager options by extending passed options
122
- * with default values if they are not overriden. All references are kept.
123
- *
124
- * @param {TypeManagerOptions} typeManagerOptions Type manager options.
125
- *
126
- * @returns {TypeManagerOptions} Constructed type manager options.
127
- */
128
- private constructTypeManagerOptions;
129
- /**
130
- * Constructs type options base.
131
- *
132
- * @param {Partial<TypeOptionsBase<any>>} typeOptionsBase Type options base.
133
- *
134
- * @returns {Partial<TypeOptionsBase<any>>} Constructed type options base.
135
- */
136
- private constructTypeOptionsBase;
137
- /**
138
- * Constructs type options map.
139
- *
140
- * @param {Map<TypeFn<any>, TypeOptions<any>>} typeOptionsMap Type options map.
141
- *
142
- * @returns {Map<TypeFn<any>, TypeOptions<any>>} Constructed type options map.
143
- */
144
- private constructTypeOptionsMap;
145
- /**
146
- * Configures type metadata for provided type function in a static context.
147
- *
148
- * @param {TypeFn<TType>} typeFn Type function.
149
- * @param {TypeOptions<TType>} typeOptions Type options.
150
- *
151
- * @returns {TypeMetadata<TType>} Type metadata for provided type function.
152
- */
153
- static configureTypeMetadata<TType>(typeFn: TypeFn<TType>, typeOptions?: TypeOptions<TType>): TypeMetadata<TType>;
154
- /**
155
- * Configures type metadata for provided type function.
156
- *
157
- * @param {TypeFn<TType>} typeFn Type function.
158
- * @param {TypeOptions<TType>} typeOptions Type options.
159
- *
160
- * @returns {TypeMetadata<TType>} Type metadata for provided type function.
161
- */
162
- configureTypeMetadata<TType>(typeFn: TypeFn<TType>, typeOptions?: TypeOptions<TType>): TypeMetadata<TType>;
163
- /**
164
- * Declares type metadata for provided type function based on general configuration.
165
- *
166
- * @param {TypeFn<TType>} typeFn Type function.
167
- *
168
- * @returns {TypeMetadata<TType>} Type metadata.
169
- */
170
- private declareTypeMetadata;
171
- /**
172
- * Extracts type metadata from provided type function in static context.
173
- *
174
- * @param {TypeFn<TType>} typeFn Type function.
175
- *
176
- * @returns {TypeMetadata<TType>} Type metadata for provided type function.
177
- */
178
- static extractTypeMetadata<TType>(typeFn: TypeFn<TType>): TypeMetadata<TType>;
179
- /**
180
- * Extracts type metadata from provided type function.
181
- *
182
- * @param {TypeFn<TType>} typeFn Type function.
183
- *
184
- * @returns {TypeMetadata<TType>} Type metadata for provided type function.
185
- */
186
- extractTypeMetadata<TType>(typeFn: TypeFn<TType>): TypeMetadata<TType>;
187
- /**
188
- * Applies shared type options in static context.
189
- *
190
- * @param {Partial<TypeOptionsBase<TType>>} typeOptionsBase Type options base.
191
- *
192
- * @returns {TypeManager} Static instance of type manager.
193
- */
194
- static applyTypeOptionsBase<TType>(typeOptionsBase: Partial<TypeOptionsBase<TType>>): TypeManager;
195
- /**
196
- * Applies shared type options.
197
- *
198
- * @param {Partial<TypeOptionsBase<TType>>} typeOptionsBase Type options base.
199
- *
200
- * @returns {TypeManager} Instance of type manager.
201
- */
202
- applyTypeOptionsBase<TType>(typeOptionsBase: Partial<TypeOptionsBase<TType>>): TypeManager;
203
- /**
204
- * Applies type options map in static context.
205
- *
206
- * @param {Map<TypeFn<TType>, TypeOptions<TType>>} typeOptionsMap Type options map.
207
- *
208
- * @returns {TypeManager} Static instance of type manager.
209
- */
210
- static applyTypeOptionsMap<TType>(typeOptionsMap: Map<TypeFn<TType>, TypeOptions<TType>>): TypeManager;
211
- /**
212
- * Applies type options map.
213
- *
214
- * @param {Map<TypeFn<TType>, TypeOptions<TType>>} typeOptionsMap Type options map.
215
- *
216
- * @returns {TypeManager} Instance of type manager.
217
- */
218
- applyTypeOptionsMap<TType>(typeOptionsMap: Map<TypeFn<TType>, TypeOptions<TType>>): TypeManager;
219
- /**
220
- * Applies type options in static context.
221
- *
222
- * @param {TypeFn<TType>} typeFn Type function.
223
- * @param {TypeOptions<TType>} typeOptions Type options.
224
- *
225
- * @returns {TypeManager} Static instance of type manager.
226
- */
227
- static applyTypeOptions<TType>(typeFn: TypeFn<TType>, typeOptions: TypeOptions<TType>): TypeManager;
228
- /**
229
- * Applies type options.
230
- *
231
- * @param {TypeFn<TType>} typeFn Type function.
232
- * @param {TypeOptions<TType>} typeOptions Type options.
233
- *
234
- * @returns {TypeManager} Instance of type manager.
235
- */
236
- applyTypeOptions<TType>(typeFn: TypeFn<TType>, typeOptions: TypeOptions<TType>): TypeManager;
237
- /**
238
- * Applies type configuration map in static context.
239
- *
240
- * @param {Map<TypeFn<TType>, TypeConfiguration<TType>>} typeConfigurationMap Type configuration map.
241
- *
242
- * @returns {TypeManager} Static instance of type manager.
243
- */
244
- static applyTypeConfigurationMap<TType>(typeConfigurationMap: Map<TypeFn<TType>, TypeConfiguration<TType>>): TypeManager;
245
- /**
246
- * Applies type configuration map.
247
- *
248
- * @param {Map<TypeFn<TType>, TypeConfiguration<TType>>} typeConfigurationMap Type configuration map.
249
- *
250
- * @returns {TypeManager} Instance of type manager.
251
- */
252
- applyTypeConfigurationMap<TType>(typeConfigurationMap: Map<TypeFn<TType>, TypeConfiguration<TType>>): TypeManager;
253
- /**
254
- * Applies type configuration in static context.
255
- *
256
- * @param {TypeFn<TType>} typeFn Type function.
257
- * @param {TypeConfiguration<TType>} typeConfiguration Type configuration.
258
- *
259
- * @returns {TypeManager} Static instance of type manager.
260
- */
261
- static applyTypeConfiguration<TType>(typeFn: TypeFn<TType>, typeConfiguration: TypeConfiguration<TType>): TypeManager;
262
- /**
263
- * Applies type configuration.
264
- *
265
- * @param {TypeFn<TType>} typeFn Type function.
266
- * @param {TypeConfiguration<TType>} typeConfiguration Type configuration.
267
- *
268
- * @returns {TypeManager} Instance of type manager.
269
- */
270
- applyTypeConfiguration<TType>(typeFn: TypeFn<TType>, typeConfiguration: TypeConfiguration<TType>): TypeManager;
271
- /**
272
- * Configures type manager in static context.
273
- *
274
- * @param {TypeManagerOptions} typeManagerOptions Type manager options.
275
- *
276
- * @returns {TypeManager} Static instance of type manager.
277
- */
278
- static configure(typeManagerOptions: TypeManagerOptions): TypeManager;
279
- /**
280
- * Configures type manager.
281
- *
282
- * @param {TypeManagerOptions} typeManagerOptions Type manager options.
283
- *
284
- * @returns {TypeManager} Instance of type manager.
285
- */
286
- configure(typeManagerOptions: TypeManagerOptions): TypeManager;
287
- /**
288
- * Defines serializer context for x in static context.
289
- *
290
- * @param {TypeFn<TType>} typeFn Type function.
291
- * @param {any} x Some value.
292
- * @param {Array<GenericArgument<any>>} genericArguments Generic arguments.
293
- *
294
- * @returns {SerializerContext<TType>} Serializer context.
295
- */
296
- static defineSerializerContext<TType>(typeFn: TypeFn<TType>, x: any, genericArguments?: Array<GenericArgument<any>>): SerializerContext<TType>;
297
- /**
298
- * Defines serializer context for x.
299
- *
300
- * @param {TypeFn<TType>} typeFn Type function.
301
- * @param {any} x Some value.
302
- * @param {Array<GenericArgument<any>>} genericArguments Generic arguments.
303
- *
304
- * @returns {SerializerContext<TType>} Serializer context.
305
- */
306
- defineSerializerContext<TType>(typeFn: TypeFn<TType>, x: any, genericArguments?: Array<GenericArgument<any>>): SerializerContext<TType>;
307
- /**
308
- * Serializes provided value based on the type in static context.
309
- *
310
- * @param {TypeFn<TType>} typeFn Type function.
311
- * @param {TypeLike<TType>} x Input value.
312
- *
313
- * @returns {TypeLike<any>} Object created from provided input value or undefined.
314
- */
315
- static serialize<TType>(typeFn: TypeFn<TType>, x: undefined): any;
316
- static serialize<TType>(typeFn: TypeFn<TType>, x: null): null;
317
- static serialize<TType>(typeFn: TypeFn<TType>, x: Array<TType>): Array<any>;
318
- static serialize<TType>(typeFn: TypeFn<TType>, x: TType): any;
319
- /**
320
- * Serializes provided value based on the type function.
321
- *
322
- * @param {TypeFn<TType>} typeFn Type function.
323
- * @param {TypeLike<TType>} x Input value.
324
- *
325
- * @returns {TypeLike<any>} Object created from provided input value or undefined.
326
- */
327
- serialize<TType>(typeFn: TypeFn<TType>, x: undefined): any;
328
- serialize<TType>(typeFn: TypeFn<TType>, x: null): null;
329
- serialize<TType>(typeFn: TypeFn<TType>, x: Array<TType>): Array<any>;
330
- serialize<TType>(typeFn: TypeFn<TType>, x: TType): any;
331
- /**
332
- * Deserializes provided value based on the type function in static context.
333
- *
334
- * @param {TypeFn<TType>} typeFn Type function.
335
- * @param {TypeLike<any>} x Input value.
336
- *
337
- * @returns {TypeLike<TType>} Type created from provided input value or undefined.
338
- */
339
- static deserialize<TType>(typeFn: TypeFn<TType>, x: undefined): any;
340
- static deserialize<TType>(typeFn: TypeFn<TType>, x: null): null;
341
- static deserialize<TType>(typeFn: TypeFn<TType>, x: Array<any>): Array<TType>;
342
- static deserialize<TType>(typeFn: TypeFn<TType>, x: any): TType;
343
- /**
344
- * Deserializes provided value based on the type function.
345
- *
346
- * @param {TypeFn<TType>} typeFn Type function.
347
- * @param {TypeLike<any>} x Input value.
348
- *
349
- * @returns {TypeLike<TType>} Type created from provided input value or undefined.
350
- */
351
- deserialize<TType>(typeFn: TypeFn<TType>, x: undefined): any;
352
- deserialize<TType>(typeFn: TypeFn<TType>, x: null): null;
353
- deserialize<TType>(typeFn: TypeFn<TType>, x: Array<any>): Array<TType>;
354
- deserialize<TType>(typeFn: TypeFn<TType>, x: any): TType;
355
- /**
356
- * Converts provided value to a JavaScript Object Notation (JSON) string in static context.
357
- *
358
- * @param {TypeFn<TType>} typeFn Type function.
359
- * @param {any} x Input value, usually an object or array, to be converted.
360
- * @param {Function|Array<number>|Array<string>} replacer A function that transforms the results or an array of strings and numbers that acts as an approved list.
361
- * @param {string|number} space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.
362
- *
363
- * @returns {string} JSON string.
364
- */
365
- static stringify<TType>(typeFn: TypeFn<TType>, x: any, replacer?: (this: any, key: string, value: any) => any | Array<number> | Array<string> | null, space?: string | number): string;
366
- /**
367
- * Converts provided value to a JavaScript Object Notation (JSON) string.
368
- *
369
- * @param {TypeFn<TType>} typeFn Type function.
370
- * @param {any} x Input value, usually an object or array, to be converted.
371
- * @param {Function|Array<number>|Array<string>} replacer A function that transforms the results or an array of strings and numbers that acts as an approved list.
372
- * @param {string|number} space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.
373
- *
374
- * @returns {string} JSON string.
375
- */
376
- stringify<TType>(typeFn: TypeFn<TType>, x: any, replacer?: (this: any, key: string, value: any) => any | Array<number> | Array<string> | null, space?: string | number): string;
377
- /**
378
- * Converts a JavaScript Object Notation (JSON) string into a type in static context.
379
- *
380
- * @param {TypeFn<TType>} typeFn Type function.
381
- * @param {string} x A valid JSON string.
382
- * @param {Function} reviver A function that transforms the results. This function is called for each member of the object.
383
- *
384
- * @returns {TypeLike<TType>} Type created from provided input value or undefined.
385
- */
386
- static parse<TType>(typeFn: TypeFn<TType>, x: string, reviver?: (this: any, key: string, value: any) => any): TypeLike<TType>;
387
- /**
388
- * Converts a JavaScript Object Notation (JSON) string into a type.
389
- *
390
- * @param {TypeFn<TType>} typeFn Type function.
391
- * @param {string} x A valid JSON string.
392
- * @param {Function} reviver A function that transforms the results. This function is called for each member of the object.
393
- *
394
- * @returns {TypeLike<TType>} Type created from provided input value or undefined.
395
- */
396
- parse<TType>(typeFn: TypeFn<TType>, x: string, reviver?: (this: any, key: string, value: any) => any): TypeLike<TType>;
397
- }
1
+ import { Alias } from './alias';
2
+ import { CustomContext } from './custom-context';
3
+ import { GenericArgument } from './generic-argument';
4
+ import { SerializerContext } from './serializer-context';
5
+ import { TypeConfiguration } from './type-configuration';
6
+ import { TypeFn } from './type-fn';
7
+ import { TypeLike } from './type-like';
8
+ import { TypeManagerOptions } from './type-manager-options';
9
+ import { TypeMetadata } from './type-metadata';
10
+ import { TypeOptions } from './type-options';
11
+ import { TypeOptionsBase } from './type-options-base';
12
+ /**
13
+ * Type manager class.
14
+ *
15
+ * @type {TypeManager}
16
+ */
17
+ export declare class TypeManager {
18
+ /**
19
+ * Static shared options of any type which applied to any instance of type manager
20
+ * by default.
21
+ *
22
+ * @type {TypeOptionsBase<any>}
23
+ */
24
+ static readonly defaultTypeOptionsBase: TypeOptionsBase<any>;
25
+ /**
26
+ * Static type options per type which applied to any instance of type manager
27
+ * by default.
28
+ *
29
+ * @type {Map<TypeFn<any>, TypeOptions<any>>}
30
+ */
31
+ static readonly defaultTypeOptionsMap: Map<TypeFn<any>, TypeOptions<any>>;
32
+ /**
33
+ * Static type manager instance which is used for decorator based configurations and
34
+ * static declarative based configurations.
35
+ *
36
+ * @type {TypeManager}
37
+ */
38
+ static readonly staticTypeManager: TypeManager;
39
+ /**
40
+ * Type function map for types with aliases.
41
+ *
42
+ * @type {Map<Alias, TypeFn<any>>}
43
+ */
44
+ readonly typeFnMap: Map<Alias, TypeFn<any>>;
45
+ /**
46
+ * Symbol of current instance which is used to store type metadata within types.
47
+ *
48
+ * @type {symbol}
49
+ */
50
+ readonly symbol: symbol;
51
+ /**
52
+ * Type manager options.
53
+ *
54
+ * @type {TypeManagerOptions}
55
+ */
56
+ readonly typeManagerOptions: TypeManagerOptions;
57
+ /**
58
+ * Custom context.
59
+ *
60
+ * @type {CustomContext}
61
+ */
62
+ readonly customContext: CustomContext;
63
+ /**
64
+ * Constructor.
65
+ *
66
+ * Creating an instance of type manager allows to have multiple configs. By default only static
67
+ * instance of type manager is created on the background and all decorator based and declarative based
68
+ * configurations are applied to it. Note that all options which are passed to a constructor are
69
+ * mutated and all references are kept. This allow to have different managers with intersected data.
70
+ * If such behaviour is not required then use configure methods after creating instance of type manager.
71
+ *
72
+ * @param {TypeManagerOptions} typeManagerOptions Type manager options.
73
+ */
74
+ constructor(typeManagerOptions?: TypeManagerOptions);
75
+ /**
76
+ * Gets type function map in static context.
77
+ *
78
+ * @returns {Map<Alias, TypeFn<any>>} Type function map.
79
+ */
80
+ static get typeFnMap(): Map<Alias, TypeFn<any>>;
81
+ /**
82
+ * Gets symbol in static context.
83
+ *
84
+ * @returns {symbol} Type manager symbol.
85
+ */
86
+ static get symbol(): symbol;
87
+ /**
88
+ * Gets type manager options in static context.
89
+ *
90
+ * @returns {TypeManagerOptions} Type manager options.
91
+ */
92
+ static get typeManagerOptions(): TypeManagerOptions;
93
+ /**
94
+ * Gets type options base in static context.
95
+ *
96
+ * @returns {TypeOptionsBase<any>} Type options base.
97
+ */
98
+ static get typeOptionsBase(): TypeOptionsBase<any>;
99
+ /**
100
+ * Gets type options base.
101
+ *
102
+ * @returns {TypeOptionsBase<any>} Type options base.
103
+ */
104
+ get typeOptionsBase(): TypeOptionsBase<any>;
105
+ /**
106
+ * Gets type options map in static context.
107
+ *
108
+ * @returns {Map<TypeFn<any>, TypeOptions<any>>} Type options map.
109
+ */
110
+ static get typeOptionsMap(): Map<TypeFn<any>, TypeOptions<any>>;
111
+ /**
112
+ * Gets type options map.
113
+ *
114
+ * @returns {Map<TypeFn<any>, TypeOptions<any>>} Type options map.
115
+ */
116
+ get typeOptionsMap(): Map<TypeFn<any>, TypeOptions<any>>;
117
+ /**
118
+ * Gets type configuration map in static context.
119
+ *
120
+ * @returns {Map<TypeFn<any>, TypeConfiguration<any>>} Type configuration map.
121
+ */
122
+ static get typeConfigurationMap(): Map<TypeFn<any>, TypeConfiguration<any>>;
123
+ /**
124
+ * Gets type configuration map.
125
+ *
126
+ * @returns {Map<TypeFn<any>, TypeConfiguration<any>>} Type configuration map.
127
+ */
128
+ get typeConfigurationMap(): Map<TypeFn<any>, TypeConfiguration<any>>;
129
+ /**
130
+ * Constructs initial type manager options by extending passed options
131
+ * with default values if they are not overriden. All references are kept.
132
+ *
133
+ * @param {TypeManagerOptions} typeManagerOptions Type manager options.
134
+ *
135
+ * @returns {TypeManagerOptions} Constructed type manager options.
136
+ */
137
+ private constructTypeManagerOptions;
138
+ /**
139
+ * Constructs type options base.
140
+ *
141
+ * @param {Partial<TypeOptionsBase<any>>} typeOptionsBase Type options base.
142
+ *
143
+ * @returns {Partial<TypeOptionsBase<any>>} Constructed type options base.
144
+ */
145
+ private constructTypeOptionsBase;
146
+ /**
147
+ * Constructs type options map.
148
+ *
149
+ * @param {Map<TypeFn<any>, TypeOptions<any>>} typeOptionsMap Type options map.
150
+ *
151
+ * @returns {Map<TypeFn<any>, TypeOptions<any>>} Constructed type options map.
152
+ */
153
+ private constructTypeOptionsMap;
154
+ /**
155
+ * Constructs custom context.
156
+ *
157
+ * @returns {CustomContext} Constructed custom context.
158
+ */
159
+ private constructCustomContext;
160
+ /**
161
+ * Configures type metadata for provided type function in a static context.
162
+ *
163
+ * @param {TypeFn<TType>} typeFn Type function.
164
+ * @param {TypeOptions<TType>} typeOptions Type options.
165
+ *
166
+ * @returns {TypeMetadata<TType>} Type metadata for provided type function.
167
+ */
168
+ static configureTypeMetadata<TType>(typeFn: TypeFn<TType>, typeOptions?: TypeOptions<TType>): TypeMetadata<TType>;
169
+ /**
170
+ * Configures type metadata for provided type function.
171
+ *
172
+ * @param {TypeFn<TType>} typeFn Type function.
173
+ * @param {TypeOptions<TType>} typeOptions Type options.
174
+ *
175
+ * @returns {TypeMetadata<TType>} Type metadata for provided type function.
176
+ */
177
+ configureTypeMetadata<TType>(typeFn: TypeFn<TType>, typeOptions?: TypeOptions<TType>): TypeMetadata<TType>;
178
+ /**
179
+ * Declares type metadata for provided type function based on general configuration.
180
+ *
181
+ * @param {TypeFn<TType>} typeFn Type function.
182
+ * @param {TypeOptions<TType>} typeOptions Type options.
183
+ *
184
+ * @returns {TypeMetadata<TType>} Type metadata.
185
+ */
186
+ private declareTypeMetadata;
187
+ /**
188
+ * Extracts type metadata from provided type function in static context.
189
+ *
190
+ * @param {TypeFn<TType>} typeFn Type function.
191
+ *
192
+ * @returns {TypeMetadata<TType>} Type metadata for provided type function.
193
+ */
194
+ static extractTypeMetadata<TType>(typeFn: TypeFn<TType>): TypeMetadata<TType>;
195
+ /**
196
+ * Extracts type metadata from provided type function.
197
+ *
198
+ * @param {TypeFn<TType>} typeFn Type function.
199
+ *
200
+ * @returns {TypeMetadata<TType>} Type metadata for provided type function.
201
+ */
202
+ extractTypeMetadata<TType>(typeFn: TypeFn<TType>): TypeMetadata<TType>;
203
+ /**
204
+ * Applies shared type options in static context.
205
+ *
206
+ * @param {Partial<TypeOptionsBase<TType>>} typeOptionsBase Type options base.
207
+ *
208
+ * @returns {TypeManager} Static instance of type manager.
209
+ */
210
+ static applyTypeOptionsBase<TType>(typeOptionsBase: Partial<TypeOptionsBase<TType>>): TypeManager;
211
+ /**
212
+ * Applies shared type options.
213
+ *
214
+ * @param {Partial<TypeOptionsBase<TType>>} typeOptionsBase Type options base.
215
+ *
216
+ * @returns {TypeManager} Instance of type manager.
217
+ */
218
+ applyTypeOptionsBase<TType>(typeOptionsBase: Partial<TypeOptionsBase<TType>>): TypeManager;
219
+ /**
220
+ * Applies type options map in static context.
221
+ *
222
+ * @param {Map<TypeFn<TType>, TypeOptions<TType>>} typeOptionsMap Type options map.
223
+ *
224
+ * @returns {TypeManager} Static instance of type manager.
225
+ */
226
+ static applyTypeOptionsMap<TType>(typeOptionsMap: Map<TypeFn<TType>, TypeOptions<TType>>): TypeManager;
227
+ /**
228
+ * Applies type options map.
229
+ *
230
+ * @param {Map<TypeFn<TType>, TypeOptions<TType>>} typeOptionsMap Type options map.
231
+ *
232
+ * @returns {TypeManager} Instance of type manager.
233
+ */
234
+ applyTypeOptionsMap<TType>(typeOptionsMap: Map<TypeFn<TType>, TypeOptions<TType>>): TypeManager;
235
+ /**
236
+ * Applies type options in static context.
237
+ *
238
+ * @param {TypeFn<TType>} typeFn Type function.
239
+ * @param {TypeOptions<TType>} typeOptions Type options.
240
+ *
241
+ * @returns {TypeManager} Static instance of type manager.
242
+ */
243
+ static applyTypeOptions<TType>(typeFn: TypeFn<TType>, typeOptions: TypeOptions<TType>): TypeManager;
244
+ /**
245
+ * Applies type options.
246
+ *
247
+ * @param {TypeFn<TType>} typeFn Type function.
248
+ * @param {TypeOptions<TType>} typeOptions Type options.
249
+ *
250
+ * @returns {TypeManager} Instance of type manager.
251
+ */
252
+ applyTypeOptions<TType>(typeFn: TypeFn<TType>, typeOptions: TypeOptions<TType>): TypeManager;
253
+ /**
254
+ * Applies type configuration map in static context.
255
+ *
256
+ * @param {Map<TypeFn<TType>, TypeConfiguration<TType>>} typeConfigurationMap Type configuration map.
257
+ *
258
+ * @returns {TypeManager} Static instance of type manager.
259
+ */
260
+ static applyTypeConfigurationMap<TType>(typeConfigurationMap: Map<TypeFn<TType>, TypeConfiguration<TType>>): TypeManager;
261
+ /**
262
+ * Applies type configuration map.
263
+ *
264
+ * @param {Map<TypeFn<TType>, TypeConfiguration<TType>>} typeConfigurationMap Type configuration map.
265
+ *
266
+ * @returns {TypeManager} Instance of type manager.
267
+ */
268
+ applyTypeConfigurationMap<TType>(typeConfigurationMap: Map<TypeFn<TType>, TypeConfiguration<TType>>): TypeManager;
269
+ /**
270
+ * Applies type configuration in static context.
271
+ *
272
+ * @param {TypeFn<TType>} typeFn Type function.
273
+ * @param {TypeConfiguration<TType>} typeConfiguration Type configuration.
274
+ *
275
+ * @returns {TypeManager} Static instance of type manager.
276
+ */
277
+ static applyTypeConfiguration<TType>(typeFn: TypeFn<TType>, typeConfiguration: TypeConfiguration<TType>): TypeManager;
278
+ /**
279
+ * Applies type configuration.
280
+ *
281
+ * @param {TypeFn<TType>} typeFn Type function.
282
+ * @param {TypeConfiguration<TType>} typeConfiguration Type configuration.
283
+ *
284
+ * @returns {TypeManager} Instance of type manager.
285
+ */
286
+ applyTypeConfiguration<TType>(typeFn: TypeFn<TType>, typeConfiguration: TypeConfiguration<TType>): TypeManager;
287
+ /**
288
+ * Configures type manager in static context.
289
+ *
290
+ * @param {TypeManagerOptions} typeManagerOptions Type manager options.
291
+ *
292
+ * @returns {TypeManager} Static instance of type manager.
293
+ */
294
+ static configure(typeManagerOptions: TypeManagerOptions): TypeManager;
295
+ /**
296
+ * Configures type manager.
297
+ *
298
+ * @param {TypeManagerOptions} typeManagerOptions Type manager options.
299
+ *
300
+ * @returns {TypeManager} Instance of type manager.
301
+ */
302
+ configure(typeManagerOptions: TypeManagerOptions): TypeManager;
303
+ /**
304
+ * Defines serializer context for x in static context.
305
+ *
306
+ * @param {TypeFn<TType>} typeFn Type function.
307
+ * @param {any} x Some value.
308
+ * @param {Array<GenericArgument<any>>} genericArguments Generic arguments.
309
+ *
310
+ * @returns {SerializerContext<TType>} Serializer context.
311
+ */
312
+ static defineSerializerContext<TType>(typeFn: TypeFn<TType>, x: any, genericArguments?: Array<GenericArgument<any>>): SerializerContext<TType>;
313
+ /**
314
+ * Defines serializer context for x.
315
+ *
316
+ * @param {TypeFn<TType>} typeFn Type function.
317
+ * @param {any} x Some value.
318
+ * @param {Array<GenericArgument<any>>} genericArguments Generic arguments.
319
+ *
320
+ * @returns {SerializerContext<TType>} Serializer context.
321
+ */
322
+ defineSerializerContext<TType>(typeFn: TypeFn<TType>, x: any, genericArguments?: Array<GenericArgument<any>>): SerializerContext<TType>;
323
+ /**
324
+ * Serializes provided value based on the type in static context.
325
+ *
326
+ * @param {TypeFn<TType>} typeFn Type function.
327
+ * @param {TypeLike<TType>} x Input value.
328
+ *
329
+ * @returns {TypeLike<any>} Object created from provided input value or undefined.
330
+ */
331
+ static serialize<TType>(typeFn: TypeFn<TType>, x: undefined): any;
332
+ static serialize<TType>(typeFn: TypeFn<TType>, x: null): null;
333
+ static serialize<TType>(typeFn: TypeFn<TType>, x: Array<TType>): Array<any>;
334
+ static serialize<TType>(typeFn: TypeFn<TType>, x: TType): any;
335
+ /**
336
+ * Serializes provided value based on the type function.
337
+ *
338
+ * @param {TypeFn<TType>} typeFn Type function.
339
+ * @param {TypeLike<TType>} x Input value.
340
+ *
341
+ * @returns {TypeLike<any>} Object created from provided input value or undefined.
342
+ */
343
+ serialize<TType>(typeFn: TypeFn<TType>, x: undefined): any;
344
+ serialize<TType>(typeFn: TypeFn<TType>, x: null): null;
345
+ serialize<TType>(typeFn: TypeFn<TType>, x: Array<TType>): Array<any>;
346
+ serialize<TType>(typeFn: TypeFn<TType>, x: TType): any;
347
+ /**
348
+ * Deserializes provided value based on the type function in static context.
349
+ *
350
+ * @param {TypeFn<TType>} typeFn Type function.
351
+ * @param {TypeLike<any>} x Input value.
352
+ *
353
+ * @returns {TypeLike<TType>} Type created from provided input value or undefined.
354
+ */
355
+ static deserialize<TType>(typeFn: TypeFn<TType>, x: undefined): any;
356
+ static deserialize<TType>(typeFn: TypeFn<TType>, x: null): null;
357
+ static deserialize<TType>(typeFn: TypeFn<TType>, x: Array<any>): Array<TType>;
358
+ static deserialize<TType>(typeFn: TypeFn<TType>, x: any): TType;
359
+ /**
360
+ * Deserializes provided value based on the type function.
361
+ *
362
+ * @param {TypeFn<TType>} typeFn Type function.
363
+ * @param {TypeLike<any>} x Input value.
364
+ *
365
+ * @returns {TypeLike<TType>} Type created from provided input value or undefined.
366
+ */
367
+ deserialize<TType>(typeFn: TypeFn<TType>, x: undefined): any;
368
+ deserialize<TType>(typeFn: TypeFn<TType>, x: null): null;
369
+ deserialize<TType>(typeFn: TypeFn<TType>, x: Array<any>): Array<TType>;
370
+ deserialize<TType>(typeFn: TypeFn<TType>, x: any): TType;
371
+ /**
372
+ * Converts provided value to a JavaScript Object Notation (JSON) string in static context.
373
+ *
374
+ * @param {TypeFn<TType>} typeFn Type function.
375
+ * @param {any} x Input value, usually an object or array, to be converted.
376
+ * @param {Function|Array<number>|Array<string>} replacer A function that transforms the results or an array of strings and numbers that acts as an approved list.
377
+ * @param {string|number} space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.
378
+ *
379
+ * @returns {string} JSON string.
380
+ */
381
+ static stringify<TType>(typeFn: TypeFn<TType>, x: any, replacer?: (this: any, key: string, value: any) => any | Array<number> | Array<string> | null, space?: string | number): string;
382
+ /**
383
+ * Converts provided value to a JavaScript Object Notation (JSON) string.
384
+ *
385
+ * @param {TypeFn<TType>} typeFn Type function.
386
+ * @param {any} x Input value, usually an object or array, to be converted.
387
+ * @param {Function|Array<number>|Array<string>} replacer A function that transforms the results or an array of strings and numbers that acts as an approved list.
388
+ * @param {string|number} space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.
389
+ *
390
+ * @returns {string} JSON string.
391
+ */
392
+ stringify<TType>(typeFn: TypeFn<TType>, x: any, replacer?: (this: any, key: string, value: any) => any | Array<number> | Array<string> | null, space?: string | number): string;
393
+ /**
394
+ * Converts a JavaScript Object Notation (JSON) string into a type in static context.
395
+ *
396
+ * @param {TypeFn<TType>} typeFn Type function.
397
+ * @param {string} x A valid JSON string.
398
+ * @param {Function} reviver A function that transforms the results. This function is called for each member of the object.
399
+ *
400
+ * @returns {TypeLike<TType>} Type created from provided input value or undefined.
401
+ */
402
+ static parse<TType>(typeFn: TypeFn<TType>, x: string, reviver?: (this: any, key: string, value: any) => any): TypeLike<TType>;
403
+ /**
404
+ * Converts a JavaScript Object Notation (JSON) string into a type.
405
+ *
406
+ * @param {TypeFn<TType>} typeFn Type function.
407
+ * @param {string} x A valid JSON string.
408
+ * @param {Function} reviver A function that transforms the results. This function is called for each member of the object.
409
+ *
410
+ * @returns {TypeLike<TType>} Type created from provided input value or undefined.
411
+ */
412
+ parse<TType>(typeFn: TypeFn<TType>, x: string, reviver?: (this: any, key: string, value: any) => any): TypeLike<TType>;
413
+ }
398
414
  //# sourceMappingURL=type-manager.d.ts.map