@dipscope/type-manager 7.0.0-beta.0 → 7.0.1

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 (392) hide show
  1. package/CHANGELOG.md +268 -262
  2. package/CONTRIBUTING.md +58 -58
  3. package/LICENSE.md +201 -201
  4. package/README.md +1901 -1901
  5. package/dist/es2015/alias.js +1 -1
  6. package/dist/es2015/any.js +2 -2
  7. package/dist/es2015/custom-context.js +57 -57
  8. package/dist/es2015/custom-key.js +7 -7
  9. package/dist/es2015/custom-option.js +1 -1
  10. package/dist/es2015/custom-value-resolver.js +1 -1
  11. package/dist/es2015/custom-value.js +1 -1
  12. package/dist/es2015/default-value-resolver.js +1 -1
  13. package/dist/es2015/default-value.js +1 -1
  14. package/dist/es2015/discriminant.js +1 -1
  15. package/dist/es2015/discriminator.js +1 -1
  16. package/dist/es2015/factories/index.js +1 -1
  17. package/dist/es2015/factories/type-factory.js +33 -33
  18. package/dist/es2015/factory.js +1 -1
  19. package/dist/es2015/functions/get-own-reflect-metadata.js +7 -7
  20. package/dist/es2015/functions/get-reflect-metadata.js +7 -7
  21. package/dist/es2015/functions/get-words.js +4 -4
  22. package/dist/es2015/functions/index.js +18 -18
  23. package/dist/es2015/functions/is-arrow-function.js +4 -4
  24. package/dist/es2015/functions/is-arrow-function.js.map +1 -1
  25. package/dist/es2015/functions/is-ctor-function.js +4 -4
  26. package/dist/es2015/functions/is-ctor-function.js.map +1 -1
  27. package/dist/es2015/functions/is-data-view.js +3 -3
  28. package/dist/es2015/functions/is-float-32-array.js +3 -3
  29. package/dist/es2015/functions/is-float-64-array.js +3 -3
  30. package/dist/es2015/functions/is-int-16-array.js +3 -3
  31. package/dist/es2015/functions/is-int-32-array.js +3 -3
  32. package/dist/es2015/functions/is-int-8-array.js +3 -3
  33. package/dist/es2015/functions/is-uint-16-array.js +3 -3
  34. package/dist/es2015/functions/is-uint-32-array.js +3 -3
  35. package/dist/es2015/functions/is-uint-8-array.js +3 -3
  36. package/dist/es2015/functions/is-uint-8-clamped-array.js +3 -3
  37. package/dist/es2015/functions/json-parse.js +3 -3
  38. package/dist/es2015/functions/json-stringify.js +66 -66
  39. package/dist/es2015/functions/name-of.js +7 -7
  40. package/dist/es2015/generic-argument.js +1 -1
  41. package/dist/es2015/generic-metadata-resolver.js +1 -1
  42. package/dist/es2015/generic-metadata.js +1 -1
  43. package/dist/es2015/generic-structure.js +1 -1
  44. package/dist/es2015/index.js +70 -70
  45. package/dist/es2015/inject-index.js +1 -1
  46. package/dist/es2015/inject-internals.js +1 -1
  47. package/dist/es2015/inject-metadata.js +62 -62
  48. package/dist/es2015/inject-options.js +1 -1
  49. package/dist/es2015/inject-sorter.js +1 -1
  50. package/dist/es2015/inject-sorters/asc-inject-sorter.js +13 -13
  51. package/dist/es2015/inject-sorters/desc-inject-sorter.js +13 -13
  52. package/dist/es2015/inject-sorters/index.js +2 -2
  53. package/dist/es2015/inject.js +23 -23
  54. package/dist/es2015/injector.js +1 -1
  55. package/dist/es2015/injectors/index.js +1 -1
  56. package/dist/es2015/injectors/singleton-injector.js +30 -30
  57. package/dist/es2015/log-level.js +7 -7
  58. package/dist/es2015/log.js +49 -49
  59. package/dist/es2015/metadata.js +80 -80
  60. package/dist/es2015/naming-convention.js +1 -1
  61. package/dist/es2015/naming-conventions/camel-case-naming-convention.js +16 -16
  62. package/dist/es2015/naming-conventions/flat-case-naming-convention.js +12 -12
  63. package/dist/es2015/naming-conventions/flat-upper-case-naming-convention.js +12 -12
  64. package/dist/es2015/naming-conventions/index.js +8 -8
  65. package/dist/es2015/naming-conventions/kebab-case-naming-convention.js +16 -16
  66. package/dist/es2015/naming-conventions/kebab-upper-case-naming-convention.js +16 -16
  67. package/dist/es2015/naming-conventions/pascal-case-naming-convention.js +17 -17
  68. package/dist/es2015/naming-conventions/snake-case-naming-convention.js +16 -16
  69. package/dist/es2015/naming-conventions/snake-upper-case-naming-convention.js +16 -16
  70. package/dist/es2015/property-internals.js +1 -1
  71. package/dist/es2015/property-metadata.js +268 -268
  72. package/dist/es2015/property-name.js +1 -1
  73. package/dist/es2015/property-options.js +1 -1
  74. package/dist/es2015/property-sorter.js +1 -1
  75. package/dist/es2015/property-sorters/asc-property-sorter.js +13 -13
  76. package/dist/es2015/property-sorters/desc-property-sorter.js +13 -13
  77. package/dist/es2015/property-sorters/index.js +2 -2
  78. package/dist/es2015/property.js +38 -38
  79. package/dist/es2015/reference-callback.js +1 -1
  80. package/dist/es2015/reference-handler.js +1 -1
  81. package/dist/es2015/reference-handlers/circular-reference-handler.js +35 -35
  82. package/dist/es2015/reference-handlers/index.js +3 -3
  83. package/dist/es2015/reference-handlers/json-path-reference-handler.js +68 -68
  84. package/dist/es2015/reference-handlers/plain-reference-handler.js +31 -31
  85. package/dist/es2015/reference-key.js +1 -1
  86. package/dist/es2015/reference-value-getter.js +1 -1
  87. package/dist/es2015/reference-value-setter.js +1 -1
  88. package/dist/es2015/reference-value.js +1 -1
  89. package/dist/es2015/serializer-context-options.js +1 -1
  90. package/dist/es2015/serializer-context.js +281 -281
  91. package/dist/es2015/serializer.js +1 -1
  92. package/dist/es2015/serializers/any-serializer.js +21 -21
  93. package/dist/es2015/serializers/array-buffer-serializer.js +40 -40
  94. package/dist/es2015/serializers/array-serializer.js +59 -59
  95. package/dist/es2015/serializers/boolean-serializer.js +54 -54
  96. package/dist/es2015/serializers/data-view-serializer.js +41 -41
  97. package/dist/es2015/serializers/date-serializer.js +33 -33
  98. package/dist/es2015/serializers/float-32-array-serializer.js +34 -34
  99. package/dist/es2015/serializers/float-64-array-serializer.js +34 -34
  100. package/dist/es2015/serializers/index.js +21 -21
  101. package/dist/es2015/serializers/int-16-array-serializer.js +34 -34
  102. package/dist/es2015/serializers/int-32-array-serializer.js +34 -34
  103. package/dist/es2015/serializers/int-8-array-serializer.js +34 -34
  104. package/dist/es2015/serializers/map-serializer.js +95 -95
  105. package/dist/es2015/serializers/number-serializer.js +48 -48
  106. package/dist/es2015/serializers/set-serializer.js +61 -61
  107. package/dist/es2015/serializers/string-serializer.js +54 -54
  108. package/dist/es2015/serializers/type-serializer.js +120 -120
  109. package/dist/es2015/serializers/uint-16-array-serializer.js +34 -34
  110. package/dist/es2015/serializers/uint-32-array-serializer.js +34 -34
  111. package/dist/es2015/serializers/uint-8-array-serializer.js +34 -34
  112. package/dist/es2015/serializers/uint-8-clamped-array-serializer.js +34 -34
  113. package/dist/es2015/serializers/unknown-serializer.js +21 -21
  114. package/dist/es2015/type-abstraction.js +1 -1
  115. package/dist/es2015/type-argument.js +1 -1
  116. package/dist/es2015/type-configuration.js +1 -1
  117. package/dist/es2015/type-context-entry.js +8 -8
  118. package/dist/es2015/type-context.js +30 -30
  119. package/dist/es2015/type-ctor.js +1 -1
  120. package/dist/es2015/type-fn.js +1 -1
  121. package/dist/es2015/type-internals.js +1 -1
  122. package/dist/es2015/type-like.js +1 -1
  123. package/dist/es2015/type-manager-options.js +1 -1
  124. package/dist/es2015/type-manager.js +319 -319
  125. package/dist/es2015/type-metadata-resolver.js +1 -1
  126. package/dist/es2015/type-metadata-symbol.js +1 -1
  127. package/dist/es2015/type-metadata.js +413 -413
  128. package/dist/es2015/type-name.js +1 -1
  129. package/dist/es2015/type-options-base.js +1 -1
  130. package/dist/es2015/type-options.js +1 -1
  131. package/dist/es2015/type-resolver.js +1 -1
  132. package/dist/es2015/type.js +7 -7
  133. package/dist/es2015/unknown.js +2 -2
  134. package/dist/es5/alias.js +1 -1
  135. package/dist/es5/any.js +6 -6
  136. package/dist/es5/custom-context.js +93 -93
  137. package/dist/es5/custom-key.js +9 -9
  138. package/dist/es5/custom-option.js +1 -1
  139. package/dist/es5/custom-value-resolver.js +1 -1
  140. package/dist/es5/custom-value.js +1 -1
  141. package/dist/es5/default-value-resolver.js +1 -1
  142. package/dist/es5/default-value.js +1 -1
  143. package/dist/es5/discriminant.js +1 -1
  144. package/dist/es5/discriminator.js +1 -1
  145. package/dist/es5/factories/index.js +1 -1
  146. package/dist/es5/factories/type-factory.js +59 -59
  147. package/dist/es5/factory.js +1 -1
  148. package/dist/es5/functions/get-own-reflect-metadata.js +7 -7
  149. package/dist/es5/functions/get-reflect-metadata.js +7 -7
  150. package/dist/es5/functions/get-words.js +4 -4
  151. package/dist/es5/functions/index.js +18 -18
  152. package/dist/es5/functions/is-arrow-function.js +4 -4
  153. package/dist/es5/functions/is-arrow-function.js.map +1 -1
  154. package/dist/es5/functions/is-ctor-function.js +4 -4
  155. package/dist/es5/functions/is-ctor-function.js.map +1 -1
  156. package/dist/es5/functions/is-data-view.js +3 -3
  157. package/dist/es5/functions/is-float-32-array.js +3 -3
  158. package/dist/es5/functions/is-float-64-array.js +3 -3
  159. package/dist/es5/functions/is-int-16-array.js +3 -3
  160. package/dist/es5/functions/is-int-32-array.js +3 -3
  161. package/dist/es5/functions/is-int-8-array.js +3 -3
  162. package/dist/es5/functions/is-uint-16-array.js +3 -3
  163. package/dist/es5/functions/is-uint-32-array.js +3 -3
  164. package/dist/es5/functions/is-uint-8-array.js +3 -3
  165. package/dist/es5/functions/is-uint-8-clamped-array.js +3 -3
  166. package/dist/es5/functions/json-parse.js +3 -3
  167. package/dist/es5/functions/json-stringify.js +66 -66
  168. package/dist/es5/functions/name-of.js +7 -7
  169. package/dist/es5/generic-argument.js +1 -1
  170. package/dist/es5/generic-metadata-resolver.js +1 -1
  171. package/dist/es5/generic-metadata.js +1 -1
  172. package/dist/es5/generic-structure.js +1 -1
  173. package/dist/es5/index.js +70 -70
  174. package/dist/es5/inject-index.js +1 -1
  175. package/dist/es5/inject-internals.js +1 -1
  176. package/dist/es5/inject-metadata.js +83 -83
  177. package/dist/es5/inject-options.js +1 -1
  178. package/dist/es5/inject-sorter.js +1 -1
  179. package/dist/es5/inject-sorters/asc-inject-sorter.js +17 -17
  180. package/dist/es5/inject-sorters/desc-inject-sorter.js +17 -17
  181. package/dist/es5/inject-sorters/index.js +2 -2
  182. package/dist/es5/inject.js +23 -23
  183. package/dist/es5/injector.js +1 -1
  184. package/dist/es5/injectors/index.js +1 -1
  185. package/dist/es5/injectors/singleton-injector.js +44 -44
  186. package/dist/es5/log-level.js +7 -7
  187. package/dist/es5/log.js +64 -64
  188. package/dist/es5/metadata.js +105 -105
  189. package/dist/es5/naming-convention.js +1 -1
  190. package/dist/es5/naming-conventions/camel-case-naming-convention.js +20 -20
  191. package/dist/es5/naming-conventions/flat-case-naming-convention.js +16 -16
  192. package/dist/es5/naming-conventions/flat-upper-case-naming-convention.js +16 -16
  193. package/dist/es5/naming-conventions/index.js +8 -8
  194. package/dist/es5/naming-conventions/kebab-case-naming-convention.js +20 -20
  195. package/dist/es5/naming-conventions/kebab-upper-case-naming-convention.js +20 -20
  196. package/dist/es5/naming-conventions/pascal-case-naming-convention.js +21 -21
  197. package/dist/es5/naming-conventions/snake-case-naming-convention.js +20 -20
  198. package/dist/es5/naming-conventions/snake-upper-case-naming-convention.js +20 -20
  199. package/dist/es5/property-internals.js +1 -1
  200. package/dist/es5/property-metadata.js +377 -377
  201. package/dist/es5/property-name.js +1 -1
  202. package/dist/es5/property-options.js +1 -1
  203. package/dist/es5/property-sorter.js +1 -1
  204. package/dist/es5/property-sorters/asc-property-sorter.js +17 -17
  205. package/dist/es5/property-sorters/desc-property-sorter.js +17 -17
  206. package/dist/es5/property-sorters/index.js +2 -2
  207. package/dist/es5/property.js +38 -38
  208. package/dist/es5/reference-callback.js +1 -1
  209. package/dist/es5/reference-handler.js +1 -1
  210. package/dist/es5/reference-handlers/circular-reference-handler.js +39 -39
  211. package/dist/es5/reference-handlers/index.js +3 -3
  212. package/dist/es5/reference-handlers/json-path-reference-handler.js +92 -92
  213. package/dist/es5/reference-handlers/plain-reference-handler.js +35 -35
  214. package/dist/es5/reference-key.js +1 -1
  215. package/dist/es5/reference-value-getter.js +1 -1
  216. package/dist/es5/reference-value-setter.js +1 -1
  217. package/dist/es5/reference-value.js +1 -1
  218. package/dist/es5/serializer-context-options.js +1 -1
  219. package/dist/es5/serializer-context.js +416 -416
  220. package/dist/es5/serializer.js +1 -1
  221. package/dist/es5/serializers/any-serializer.js +25 -25
  222. package/dist/es5/serializers/array-buffer-serializer.js +44 -44
  223. package/dist/es5/serializers/array-serializer.js +69 -69
  224. package/dist/es5/serializers/boolean-serializer.js +58 -58
  225. package/dist/es5/serializers/data-view-serializer.js +45 -45
  226. package/dist/es5/serializers/date-serializer.js +37 -37
  227. package/dist/es5/serializers/float-32-array-serializer.js +38 -38
  228. package/dist/es5/serializers/float-64-array-serializer.js +38 -38
  229. package/dist/es5/serializers/index.js +21 -21
  230. package/dist/es5/serializers/int-16-array-serializer.js +38 -38
  231. package/dist/es5/serializers/int-32-array-serializer.js +38 -38
  232. package/dist/es5/serializers/int-8-array-serializer.js +38 -38
  233. package/dist/es5/serializers/map-serializer.js +114 -114
  234. package/dist/es5/serializers/number-serializer.js +52 -52
  235. package/dist/es5/serializers/set-serializer.js +77 -77
  236. package/dist/es5/serializers/string-serializer.js +58 -58
  237. package/dist/es5/serializers/type-serializer.js +153 -153
  238. package/dist/es5/serializers/uint-16-array-serializer.js +38 -38
  239. package/dist/es5/serializers/uint-32-array-serializer.js +38 -38
  240. package/dist/es5/serializers/uint-8-array-serializer.js +38 -38
  241. package/dist/es5/serializers/uint-8-clamped-array-serializer.js +38 -38
  242. package/dist/es5/serializers/unknown-serializer.js +25 -25
  243. package/dist/es5/type-abstraction.js +1 -1
  244. package/dist/es5/type-argument.js +1 -1
  245. package/dist/es5/type-configuration.js +1 -1
  246. package/dist/es5/type-context-entry.js +10 -10
  247. package/dist/es5/type-context.js +32 -32
  248. package/dist/es5/type-ctor.js +1 -1
  249. package/dist/es5/type-fn.js +1 -1
  250. package/dist/es5/type-internals.js +1 -1
  251. package/dist/es5/type-like.js +1 -1
  252. package/dist/es5/type-manager-options.js +1 -1
  253. package/dist/es5/type-manager.js +412 -412
  254. package/dist/es5/type-metadata-resolver.js +1 -1
  255. package/dist/es5/type-metadata-symbol.js +1 -1
  256. package/dist/es5/type-metadata.js +563 -563
  257. package/dist/es5/type-name.js +1 -1
  258. package/dist/es5/type-options-base.js +1 -1
  259. package/dist/es5/type-options.js +1 -1
  260. package/dist/es5/type-resolver.js +1 -1
  261. package/dist/es5/type.js +7 -7
  262. package/dist/es5/unknown.js +6 -6
  263. package/dist/types/alias.d.ts +6 -6
  264. package/dist/types/any.d.ts +9 -9
  265. package/dist/types/custom-context.d.ts +88 -88
  266. package/dist/types/custom-key.d.ts +28 -28
  267. package/dist/types/custom-option.d.ts +10 -10
  268. package/dist/types/custom-value-resolver.d.ts +6 -6
  269. package/dist/types/custom-value.d.ts +6 -6
  270. package/dist/types/default-value-resolver.d.ts +7 -7
  271. package/dist/types/default-value.d.ts +7 -7
  272. package/dist/types/discriminant.d.ts +8 -8
  273. package/dist/types/discriminator.d.ts +6 -6
  274. package/dist/types/factories/index.d.ts +1 -1
  275. package/dist/types/factories/type-factory.d.ts +19 -19
  276. package/dist/types/factory.d.ts +18 -18
  277. package/dist/types/functions/get-own-reflect-metadata.d.ts +9 -9
  278. package/dist/types/functions/get-reflect-metadata.d.ts +10 -10
  279. package/dist/types/functions/get-words.d.ts +8 -8
  280. package/dist/types/functions/index.d.ts +18 -18
  281. package/dist/types/functions/is-arrow-function.d.ts +8 -8
  282. package/dist/types/functions/is-ctor-function.d.ts +8 -8
  283. package/dist/types/functions/is-data-view.d.ts +8 -8
  284. package/dist/types/functions/is-float-32-array.d.ts +8 -8
  285. package/dist/types/functions/is-float-64-array.d.ts +8 -8
  286. package/dist/types/functions/is-int-16-array.d.ts +8 -8
  287. package/dist/types/functions/is-int-32-array.d.ts +8 -8
  288. package/dist/types/functions/is-int-8-array.d.ts +8 -8
  289. package/dist/types/functions/is-uint-16-array.d.ts +8 -8
  290. package/dist/types/functions/is-uint-32-array.d.ts +8 -8
  291. package/dist/types/functions/is-uint-8-array.d.ts +8 -8
  292. package/dist/types/functions/is-uint-8-clamped-array.d.ts +8 -8
  293. package/dist/types/functions/json-parse.d.ts +9 -9
  294. package/dist/types/functions/json-stringify.d.ts +10 -10
  295. package/dist/types/functions/name-of.d.ts +8 -8
  296. package/dist/types/generic-argument.d.ts +7 -7
  297. package/dist/types/generic-metadata-resolver.d.ts +7 -7
  298. package/dist/types/generic-metadata.d.ts +7 -7
  299. package/dist/types/generic-structure.d.ts +7 -7
  300. package/dist/types/index.d.ts +70 -70
  301. package/dist/types/inject-index.d.ts +6 -6
  302. package/dist/types/inject-internals.d.ts +14 -14
  303. package/dist/types/inject-metadata.d.ts +117 -117
  304. package/dist/types/inject-options.d.ts +22 -22
  305. package/dist/types/inject-sorter.d.ts +19 -19
  306. package/dist/types/inject-sorters/asc-inject-sorter.d.ts +20 -20
  307. package/dist/types/inject-sorters/desc-inject-sorter.d.ts +20 -20
  308. package/dist/types/inject-sorters/index.d.ts +2 -2
  309. package/dist/types/inject.d.ts +10 -10
  310. package/dist/types/injector.d.ts +16 -16
  311. package/dist/types/injectors/index.d.ts +1 -1
  312. package/dist/types/injectors/singleton-injector.d.ts +31 -31
  313. package/dist/types/log-level.d.ts +11 -11
  314. package/dist/types/log.d.ts +95 -95
  315. package/dist/types/metadata.d.ts +99 -99
  316. package/dist/types/naming-convention.d.ts +15 -15
  317. package/dist/types/naming-conventions/camel-case-naming-convention.d.ts +26 -26
  318. package/dist/types/naming-conventions/flat-case-naming-convention.d.ts +25 -25
  319. package/dist/types/naming-conventions/flat-upper-case-naming-convention.d.ts +25 -25
  320. package/dist/types/naming-conventions/index.d.ts +8 -8
  321. package/dist/types/naming-conventions/kebab-case-naming-convention.d.ts +26 -26
  322. package/dist/types/naming-conventions/kebab-upper-case-naming-convention.d.ts +26 -26
  323. package/dist/types/naming-conventions/pascal-case-naming-convention.d.ts +26 -26
  324. package/dist/types/naming-conventions/snake-case-naming-convention.d.ts +26 -26
  325. package/dist/types/naming-conventions/snake-upper-case-naming-convention.d.ts +26 -26
  326. package/dist/types/property-internals.d.ts +35 -35
  327. package/dist/types/property-metadata.d.ts +359 -359
  328. package/dist/types/property-name.d.ts +6 -6
  329. package/dist/types/property-options.d.ts +116 -116
  330. package/dist/types/property-sorter.d.ts +19 -19
  331. package/dist/types/property-sorters/asc-property-sorter.d.ts +20 -20
  332. package/dist/types/property-sorters/desc-property-sorter.d.ts +20 -20
  333. package/dist/types/property-sorters/index.d.ts +2 -2
  334. package/dist/types/property.d.ts +13 -13
  335. package/dist/types/reference-callback.d.ts +7 -7
  336. package/dist/types/reference-handler.d.ts +31 -31
  337. package/dist/types/reference-handlers/circular-reference-handler.d.ts +32 -32
  338. package/dist/types/reference-handlers/index.d.ts +3 -3
  339. package/dist/types/reference-handlers/json-path-reference-handler.d.ts +55 -55
  340. package/dist/types/reference-handlers/plain-reference-handler.d.ts +33 -33
  341. package/dist/types/reference-key.d.ts +6 -6
  342. package/dist/types/reference-value-getter.d.ts +7 -7
  343. package/dist/types/reference-value-setter.d.ts +7 -7
  344. package/dist/types/reference-value.d.ts +6 -6
  345. package/dist/types/serializer-context-options.d.ts +50 -50
  346. package/dist/types/serializer-context.d.ts +418 -418
  347. package/dist/types/serializer.d.ts +27 -27
  348. package/dist/types/serializers/any-serializer.d.ts +28 -28
  349. package/dist/types/serializers/array-buffer-serializer.d.ts +28 -28
  350. package/dist/types/serializers/array-serializer.d.ts +28 -28
  351. package/dist/types/serializers/boolean-serializer.d.ts +37 -37
  352. package/dist/types/serializers/data-view-serializer.d.ts +28 -28
  353. package/dist/types/serializers/date-serializer.d.ts +28 -28
  354. package/dist/types/serializers/float-32-array-serializer.d.ts +28 -28
  355. package/dist/types/serializers/float-64-array-serializer.d.ts +28 -28
  356. package/dist/types/serializers/index.d.ts +21 -21
  357. package/dist/types/serializers/int-16-array-serializer.d.ts +28 -28
  358. package/dist/types/serializers/int-32-array-serializer.d.ts +28 -28
  359. package/dist/types/serializers/int-8-array-serializer.d.ts +28 -28
  360. package/dist/types/serializers/map-serializer.d.ts +28 -28
  361. package/dist/types/serializers/number-serializer.d.ts +37 -37
  362. package/dist/types/serializers/set-serializer.d.ts +28 -28
  363. package/dist/types/serializers/string-serializer.d.ts +37 -37
  364. package/dist/types/serializers/type-serializer.d.ts +28 -28
  365. package/dist/types/serializers/uint-16-array-serializer.d.ts +28 -28
  366. package/dist/types/serializers/uint-32-array-serializer.d.ts +28 -28
  367. package/dist/types/serializers/uint-8-array-serializer.d.ts +28 -28
  368. package/dist/types/serializers/uint-8-clamped-array-serializer.d.ts +28 -28
  369. package/dist/types/serializers/unknown-serializer.d.ts +28 -28
  370. package/dist/types/type-abstraction.d.ts +6 -6
  371. package/dist/types/type-argument.d.ts +9 -9
  372. package/dist/types/type-configuration.d.ts +16 -16
  373. package/dist/types/type-context-entry.d.ts +36 -36
  374. package/dist/types/type-context.d.ts +70 -70
  375. package/dist/types/type-ctor.d.ts +6 -6
  376. package/dist/types/type-fn.d.ts +8 -8
  377. package/dist/types/type-internals.d.ts +14 -14
  378. package/dist/types/type-like.d.ts +7 -7
  379. package/dist/types/type-manager-options.d.ts +33 -33
  380. package/dist/types/type-manager.d.ts +413 -413
  381. package/dist/types/type-metadata-resolver.d.ts +8 -8
  382. package/dist/types/type-metadata-symbol.d.ts +6 -6
  383. package/dist/types/type-metadata.d.ts +513 -513
  384. package/dist/types/type-name.d.ts +6 -6
  385. package/dist/types/type-options-base.d.ts +106 -106
  386. package/dist/types/type-options.d.ts +72 -72
  387. package/dist/types/type-resolver.d.ts +7 -7
  388. package/dist/types/type.d.ts +9 -9
  389. package/dist/types/unknown.d.ts +9 -9
  390. package/dist/umd/index.js +1 -1
  391. package/dist/umd/index.js.map +1 -1
  392. package/package.json +63 -63
@@ -1,514 +1,514 @@
1
- import { Alias } from './alias';
2
- import { CustomContext } from './custom-context';
3
- import { CustomOption } from './custom-option';
4
- import { DefaultValue } from './default-value';
5
- import { Discriminant } from './discriminant';
6
- import { Discriminator } from './discriminator';
7
- import { Factory } from './factory';
8
- import { InjectIndex } from './inject-index';
9
- import { InjectMetadata } from './inject-metadata';
10
- import { InjectOptions } from './inject-options';
11
- import { InjectSorter } from './inject-sorter';
12
- import { Injector } from './injector';
13
- import { Log } from './log';
14
- import { Metadata } from './metadata';
15
- import { NamingConvention } from './naming-convention';
16
- import { PropertyMetadata } from './property-metadata';
17
- import { PropertyName } from './property-name';
18
- import { PropertyOptions } from './property-options';
19
- import { PropertySorter } from './property-sorter';
20
- import { ReferenceHandler } from './reference-handler';
21
- import { Serializer } from './serializer';
22
- import { TypeFn } from './type-fn';
23
- import { TypeInternals } from './type-internals';
24
- import { TypeManager } from './type-manager';
25
- import { TypeName } from './type-name';
26
- import { TypeOptions } from './type-options';
27
- import { TypeOptionsBase } from './type-options-base';
28
- /**
29
- * Main class used to describe a certain type.
30
- *
31
- * @type {TypeMetadata<TType>}
32
- */
33
- export declare class TypeMetadata<TType> extends Metadata {
34
- /**
35
- * Type name.
36
- *
37
- * Defined at runtime based on the constructor function.
38
- *
39
- * @type {TypeName}
40
- */
41
- readonly typeName: TypeName;
42
- /**
43
- * Type function.
44
- *
45
- * @type {TypeFn<TType>}
46
- */
47
- readonly typeFn: TypeFn<TType>;
48
- /**
49
- * Type options used by default.
50
- *
51
- * @type {TypeOptionsBase<TType>}
52
- */
53
- readonly typeOptionsBase: TypeOptionsBase<TType>;
54
- /**
55
- * Type options.
56
- *
57
- * @type {TypeOptions<TType>}
58
- */
59
- readonly typeOptions: TypeOptions<TType>;
60
- /**
61
- * Type internals.
62
- *
63
- * @type {TypeInternals}
64
- */
65
- readonly typeInternals: TypeInternals;
66
- /**
67
- * Children type metadata map.
68
- *
69
- * @type {Map<TypeFn<TType>, TypeMetadata<any>>}
70
- */
71
- readonly childrenTypeMetadataMap: Map<TypeFn<any>, TypeMetadata<any>>;
72
- /**
73
- * Discriminant map.
74
- *
75
- * @type {Map<TypeFn<any>, Discriminant>}
76
- */
77
- readonly discriminantMap: Map<TypeFn<any>, Discriminant>;
78
- /**
79
- * Properties defined for a type.
80
- *
81
- * @type {Map<PropertyName, PropertyMetadata<TType, any>>}
82
- */
83
- readonly propertyMetadataMap: Map<PropertyName, PropertyMetadata<TType, any>>;
84
- /**
85
- * Injections defined for a type.
86
- *
87
- * @type {Map<InjectIndex, InjectMetadata<TType, any>>}
88
- */
89
- readonly injectMetadataMap: Map<InjectIndex, InjectMetadata<TType, any>>;
90
- /**
91
- * Parent type metadata.
92
- *
93
- * @type {TypeMetadata<any>}
94
- */
95
- readonly parentTypeMetadata?: TypeMetadata<any>;
96
- /**
97
- * Constructor.
98
- *
99
- * @param {TypeManager} typeManager Type manager.
100
- * @param {TypeFn<any>} typeFn Type function.
101
- * @param {TypeOptions<TType>} typeOptions Type options.
102
- * @param {TypeMetadata<any>} parentTypeMetadata Parent type metadata.
103
- */
104
- constructor(typeManager: TypeManager, typeFn: TypeFn<TType>, typeOptions: TypeOptions<TType>, parentTypeMetadata?: TypeMetadata<any>);
105
- /**
106
- * Gets alias.
107
- *
108
- * @returns {Alias|undefined} Alias or undefined.
109
- */
110
- get alias(): Alias | undefined;
111
- /**
112
- * Gets custom options.
113
- *
114
- * @returns {Array<CustomOption>} Custom options.
115
- */
116
- get customOptions(): Array<CustomOption> | undefined;
117
- /**
118
- * Gets custom context.
119
- *
120
- * @returns {CustomContext} Custom context.
121
- */
122
- get customContext(): CustomContext;
123
- /**
124
- * Gets serialized null value.
125
- *
126
- * @returns {any|undefined} Resolved serialized null value or undefined.
127
- */
128
- get serializedNullValue(): any | undefined;
129
- /**
130
- * Gets serialized default value.
131
- *
132
- * @returns {any|undefined} Resolved serialized default value or undefined.
133
- */
134
- get serializedDefaultValue(): any | undefined;
135
- /**
136
- * Gets deserialized null value.
137
- *
138
- * @returns {any|undefined} Resolved deserialized null value or undefined.
139
- */
140
- get deserializedNullValue(): any | undefined;
141
- /**
142
- * Gets deserialized default value.
143
- *
144
- * @returns {any|undefined} Resolved deserialized default value or undefined.
145
- */
146
- get deserializedDefaultValue(): any | undefined;
147
- /**
148
- * Gets discriminant.
149
- *
150
- * @returns {Discriminant} Discriminant.
151
- */
152
- get discriminant(): Discriminant;
153
- /**
154
- * Gets discriminator.
155
- *
156
- * @returns {Discriminator} Discriminator.
157
- */
158
- get discriminator(): Discriminator;
159
- /**
160
- * Gets factory.
161
- *
162
- * @returns {Factory} Factory.
163
- */
164
- get factory(): Factory;
165
- /**
166
- * Gets injectable value.
167
- *
168
- * @returns {boolean|undefined} Injectable indicator or undefined.
169
- */
170
- get injectable(): boolean | undefined;
171
- /**
172
- * Gets injector.
173
- *
174
- * @returns {Injector} Injector.
175
- */
176
- get injector(): Injector;
177
- /**
178
- * Gets log.
179
- *
180
- * @returns {Log} Log instance.
181
- */
182
- get log(): Log;
183
- /**
184
- * Gets naming convention.
185
- *
186
- * @returns {NamingConvention|undefined} Naming convention or undefined.
187
- */
188
- get namingConvention(): NamingConvention | undefined;
189
- /**
190
- * Gets indicator if current type metadata is polymorphic.
191
- *
192
- * @returns {boolean} True when type metadata is polymorphic. False otherwise.
193
- */
194
- get polymorphic(): boolean;
195
- /**
196
- * Gets indicator if discriminator should be preserved.
197
- *
198
- * @returns {boolean} True when discriminator should be preserved. False otherwise.
199
- */
200
- get preserveDiscriminator(): boolean;
201
- /**
202
- * Gets reference handler.
203
- *
204
- * @returns {ReferenceHandler} Reference handler.
205
- */
206
- get referenceHandler(): ReferenceHandler;
207
- /**
208
- * Gets serializer.
209
- *
210
- * @returns {Serializer<TType>} Serializer.
211
- */
212
- get serializer(): Serializer<TType>;
213
- /**
214
- * Gets indicator if null value should be preserved.
215
- *
216
- * @returns {boolean} True when null value should be preserved. False otherwise.
217
- */
218
- get preserveNull(): boolean;
219
- /**
220
- * Gets indicator if default value should be used.
221
- *
222
- * @returns {boolean} True when type should use default value. False otherwise.
223
- */
224
- get useDefaultValue(): boolean;
225
- /**
226
- * Gets indicator if implicit conversion should be used.
227
- *
228
- * @returns {boolean} True when type should use implicit conversion. False otherwise.
229
- */
230
- get useImplicitConversion(): boolean;
231
- /**
232
- * Gets property sorter.
233
- *
234
- * @returns {PropertySorter|undefined} Property sorter or undefined.
235
- */
236
- get propertySorter(): PropertySorter | undefined;
237
- /**
238
- * Gets sorted property metadatas.
239
- *
240
- * @returns {IterableIterator<PropertyMetadata<TType, any>>} Iterable of property metadatas.
241
- */
242
- get sortedPropertyMetadatas(): IterableIterator<PropertyMetadata<TType, any>>;
243
- /**
244
- * Gets inject sorter.
245
- *
246
- * @returns {InjectSorter|undefined} Property sorter or undefined.
247
- */
248
- get injectSorter(): InjectSorter | undefined;
249
- /**
250
- * Gets sorted inject metadatas.
251
- *
252
- * @returns {IterableIterator<InjectMetadata<TType, any>>} Iterable of inject metadatas.
253
- */
254
- get sortedInjectMetadatas(): IterableIterator<InjectMetadata<TType, any>>;
255
- /**
256
- * Gets property options map.
257
- *
258
- * @returns {Map<PropertyName, PropertyOptions<any>>} Property options map.
259
- */
260
- get propertyOptionsMap(): Map<PropertyName, PropertyOptions<any>>;
261
- /**
262
- * Gets inject options map.
263
- *
264
- * @returns {Map<InjectIndex, InjectOptions<any>>} Inject options map.
265
- */
266
- get injectOptionsMap(): Map<InjectIndex, InjectOptions<any>>;
267
- /**
268
- * Constructs initial type options by extending passed options
269
- * with default values if they are not overriden. All references are kept.
270
- *
271
- * @param {TypeOptions<TType>} typeOptions Type options.
272
- *
273
- * @returns {TypeOptions<TType>} Constructed type options.
274
- */
275
- private constructTypeOptions;
276
- /**
277
- * Constructs type internals.
278
- *
279
- * @returns {TypeInternals} Constructed type internals.
280
- */
281
- private constructTypeInternals;
282
- /**
283
- * Derives parent type metadata properties.
284
- *
285
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
286
- */
287
- private deriveParentTypeMetadataProperties;
288
- /**
289
- * Reflects inject metadata.
290
- *
291
- * Used to configure inject metadata based on reflect metadata as inject decorators may be omitted.
292
- *
293
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
294
- */
295
- reflectInjectMetadata(): TypeMetadata<TType>;
296
- /**
297
- * Configures alias.
298
- *
299
- * @param {Alias|undefined} alias Alias.
300
- *
301
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
302
- */
303
- hasAlias(alias: Alias | undefined): TypeMetadata<TType>;
304
- /**
305
- * Releases alias.
306
- *
307
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
308
- */
309
- private releaseAlias;
310
- /**
311
- * Configures custom options.
312
- *
313
- * @param {Array<CustomOption>|undefined} customOptions Custom options.
314
- *
315
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
316
- */
317
- private hasCustomOptions;
318
- /**
319
- * Configures default value.
320
- *
321
- * @param {DefaultValue} defaultValue Default value.
322
- *
323
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
324
- */
325
- hasDefaultValue(defaultValue: DefaultValue): TypeMetadata<TType>;
326
- /**
327
- * Configures serialized default value.
328
- *
329
- * @param {DefaultValue} serializedDefaultValue Serialized default value.
330
- *
331
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
332
- */
333
- hasSerializedDefaultValue(serializedDefaultValue: DefaultValue): TypeMetadata<TType>;
334
- /**
335
- * Configures deserialized default value.
336
- *
337
- * @param {DefaultValue} deserializedDefaultValue Deserialized default value.
338
- *
339
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
340
- */
341
- hasDeserializedDefaultValue(deserializedDefaultValue: DefaultValue): TypeMetadata<TType>;
342
- /**
343
- * Configures discriminator.
344
- *
345
- * @param {Discriminator|undefined} discriminator Discriminator.
346
- *
347
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
348
- */
349
- hasDiscriminator(discriminator: Discriminator | undefined): TypeMetadata<TType>;
350
- /**
351
- * Configures discriminant.
352
- *
353
- * @param {Discriminant|undefined} discriminant Discriminant.
354
- *
355
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
356
- */
357
- hasDiscriminant(discriminant: Discriminant | undefined): TypeMetadata<TType>;
358
- /**
359
- * Provides discriminant.
360
- *
361
- * @param {TypeFn<any>} typeFn Type function.
362
- * @param {Discriminant} discriminant Discriminant.
363
- *
364
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
365
- */
366
- private provideDiscriminant;
367
- /**
368
- * Configures factory.
369
- *
370
- * @param {Factory|undefined} factory Factory.
371
- *
372
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
373
- */
374
- hasFactory(factory: Factory | undefined): TypeMetadata<TType>;
375
- /**
376
- * Configures injectable.
377
- *
378
- * @param {boolean} injectable Injectable.
379
- *
380
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
381
- */
382
- isInjectable(injectable?: boolean): TypeMetadata<TType>;
383
- /**
384
- * Configures injector.
385
- *
386
- * @param {Injector|undefined} injector Injector.
387
- *
388
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
389
- */
390
- hasInjector(injector: Injector | undefined): TypeMetadata<TType>;
391
- /**
392
- * Configures log.
393
- *
394
- * @param {Log|undefined} log Log.
395
- *
396
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
397
- */
398
- hasLog(log: Log | undefined): TypeMetadata<TType>;
399
- /**
400
- * Configures naming convention.
401
- *
402
- * @param {NamingConvention|undefined} namingConvention Naming convention.
403
- *
404
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
405
- */
406
- hasNamingConvention(namingConvention: NamingConvention | undefined): TypeMetadata<TType>;
407
- /**
408
- * Configures preserve discriminator.
409
- *
410
- * @param {boolean} preserveDiscriminator Preserve discriminator.
411
- *
412
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
413
- */
414
- shouldPreserveDiscriminator(preserveDiscriminator?: boolean): TypeMetadata<TType>;
415
- /**
416
- * Configures reference handler.
417
- *
418
- * @param {ReferenceHandler|undefined} referenceHandler Reference handler.
419
- *
420
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
421
- */
422
- hasReferenceHandler(referenceHandler: ReferenceHandler | undefined): TypeMetadata<TType>;
423
- /**
424
- * Configures serializer.
425
- *
426
- * @param {Serializer<TType>|undefined} serializer Serializer.
427
- *
428
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
429
- */
430
- hasSerializer(serializer: Serializer<TType> | undefined): TypeMetadata<TType>;
431
- /**
432
- * Configures preserve null.
433
- *
434
- * @param {boolean} preserveNull Preserve null.
435
- *
436
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
437
- */
438
- shouldPreserveNull(preserveNull?: boolean): TypeMetadata<TType>;
439
- /**
440
- * Configures use default value.
441
- *
442
- * @param {boolean} useDefaultValue Use default value.
443
- *
444
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
445
- */
446
- shouldUseDefaultValue(useDefaultValue?: boolean): TypeMetadata<TType>;
447
- /**
448
- * Configures use implicit convertion.
449
- *
450
- * @param {boolean} useImplicitConversion Use implicit convertion.
451
- *
452
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
453
- */
454
- shouldUseImplicitConversion(useImplicitConversion?: boolean): TypeMetadata<TType>;
455
- /**
456
- * Configures property sorter.
457
- *
458
- * @param {PropertySorter|undefined} propertySorter Property sorter.
459
- *
460
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
461
- */
462
- hasPropertySorter(propertySorter: PropertySorter | undefined): TypeMetadata<TType>;
463
- /**
464
- * Configures inject sorter.
465
- *
466
- * @param {InjectSorter|undefined} injectSorter Inject sorter.
467
- *
468
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
469
- */
470
- hasInjectSorter(injectSorter: InjectSorter | undefined): TypeMetadata<TType>;
471
- /**
472
- * Configures certain property metadata.
473
- *
474
- * @param {PropertyName} propertyName Property name.
475
- * @param {PropertyOptions<TPropertyType>} propertyOptions Property options.
476
- *
477
- * @returns {PropertyMetadata<TType, TPropertyType>} Configured property metadata.
478
- */
479
- configurePropertyMetadata<TPropertyType>(propertyName: PropertyName, propertyOptions?: PropertyOptions<TPropertyType>): PropertyMetadata<TType, TPropertyType>;
480
- /**
481
- * Configures certain inject metadata.
482
- *
483
- * @param {InjectIndex} injectIndex Inject index.
484
- * @param {InjectOptions<TInjectType>} injectOptions Inject options.
485
- *
486
- * @returns {InjectMetadata<TType, TInjectType>} Configured inject metadata.
487
- */
488
- configureInjectMetadata<TInjectType>(injectIndex: InjectIndex, injectOptions?: InjectOptions<TInjectType>): InjectMetadata<TType, TInjectType>;
489
- /**
490
- * Configures property metadata map.
491
- *
492
- * @param {Map<PropertyName, PropertyOptions<TPropertyType>>} propertyOptionsMap Property options map.
493
- *
494
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
495
- */
496
- hasPropertyMetadataMap<TPropertyType>(propertyOptionsMap: Map<PropertyName, PropertyOptions<TPropertyType>>): TypeMetadata<TType>;
497
- /**
498
- * Configures inject metadata map.
499
- *
500
- * @param {Map<InjectIndex, InjectOptions<TInjectType>>} injectOptionsMap Inject options map.
501
- *
502
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
503
- */
504
- hasInjectMetadataMap<TInjectType>(injectOptionsMap: Map<InjectIndex, InjectOptions<TInjectType>>): TypeMetadata<TType>;
505
- /**
506
- * Configures type metadata based on provided options.
507
- *
508
- * @param {TypeOptions<TType>} typeOptions Type options.
509
- *
510
- * @returns {TypeMetadata<TType>} Current instance of type metadata.
511
- */
512
- configure(typeOptions: TypeOptions<TType>): TypeMetadata<TType>;
513
- }
1
+ import { Alias } from './alias';
2
+ import { CustomContext } from './custom-context';
3
+ import { CustomOption } from './custom-option';
4
+ import { DefaultValue } from './default-value';
5
+ import { Discriminant } from './discriminant';
6
+ import { Discriminator } from './discriminator';
7
+ import { Factory } from './factory';
8
+ import { InjectIndex } from './inject-index';
9
+ import { InjectMetadata } from './inject-metadata';
10
+ import { InjectOptions } from './inject-options';
11
+ import { InjectSorter } from './inject-sorter';
12
+ import { Injector } from './injector';
13
+ import { Log } from './log';
14
+ import { Metadata } from './metadata';
15
+ import { NamingConvention } from './naming-convention';
16
+ import { PropertyMetadata } from './property-metadata';
17
+ import { PropertyName } from './property-name';
18
+ import { PropertyOptions } from './property-options';
19
+ import { PropertySorter } from './property-sorter';
20
+ import { ReferenceHandler } from './reference-handler';
21
+ import { Serializer } from './serializer';
22
+ import { TypeFn } from './type-fn';
23
+ import { TypeInternals } from './type-internals';
24
+ import { TypeManager } from './type-manager';
25
+ import { TypeName } from './type-name';
26
+ import { TypeOptions } from './type-options';
27
+ import { TypeOptionsBase } from './type-options-base';
28
+ /**
29
+ * Main class used to describe a certain type.
30
+ *
31
+ * @type {TypeMetadata<TType>}
32
+ */
33
+ export declare class TypeMetadata<TType> extends Metadata {
34
+ /**
35
+ * Type name.
36
+ *
37
+ * Defined at runtime based on the constructor function.
38
+ *
39
+ * @type {TypeName}
40
+ */
41
+ readonly typeName: TypeName;
42
+ /**
43
+ * Type function.
44
+ *
45
+ * @type {TypeFn<TType>}
46
+ */
47
+ readonly typeFn: TypeFn<TType>;
48
+ /**
49
+ * Type options used by default.
50
+ *
51
+ * @type {TypeOptionsBase<TType>}
52
+ */
53
+ readonly typeOptionsBase: TypeOptionsBase<TType>;
54
+ /**
55
+ * Type options.
56
+ *
57
+ * @type {TypeOptions<TType>}
58
+ */
59
+ readonly typeOptions: TypeOptions<TType>;
60
+ /**
61
+ * Type internals.
62
+ *
63
+ * @type {TypeInternals}
64
+ */
65
+ readonly typeInternals: TypeInternals;
66
+ /**
67
+ * Children type metadata map.
68
+ *
69
+ * @type {Map<TypeFn<TType>, TypeMetadata<any>>}
70
+ */
71
+ readonly childrenTypeMetadataMap: Map<TypeFn<any>, TypeMetadata<any>>;
72
+ /**
73
+ * Discriminant map.
74
+ *
75
+ * @type {Map<TypeFn<any>, Discriminant>}
76
+ */
77
+ readonly discriminantMap: Map<TypeFn<any>, Discriminant>;
78
+ /**
79
+ * Properties defined for a type.
80
+ *
81
+ * @type {Map<PropertyName, PropertyMetadata<TType, any>>}
82
+ */
83
+ readonly propertyMetadataMap: Map<PropertyName, PropertyMetadata<TType, any>>;
84
+ /**
85
+ * Injections defined for a type.
86
+ *
87
+ * @type {Map<InjectIndex, InjectMetadata<TType, any>>}
88
+ */
89
+ readonly injectMetadataMap: Map<InjectIndex, InjectMetadata<TType, any>>;
90
+ /**
91
+ * Parent type metadata.
92
+ *
93
+ * @type {TypeMetadata<any>}
94
+ */
95
+ readonly parentTypeMetadata?: TypeMetadata<any>;
96
+ /**
97
+ * Constructor.
98
+ *
99
+ * @param {TypeManager} typeManager Type manager.
100
+ * @param {TypeFn<any>} typeFn Type function.
101
+ * @param {TypeOptions<TType>} typeOptions Type options.
102
+ * @param {TypeMetadata<any>} parentTypeMetadata Parent type metadata.
103
+ */
104
+ constructor(typeManager: TypeManager, typeFn: TypeFn<TType>, typeOptions: TypeOptions<TType>, parentTypeMetadata?: TypeMetadata<any>);
105
+ /**
106
+ * Gets alias.
107
+ *
108
+ * @returns {Alias|undefined} Alias or undefined.
109
+ */
110
+ get alias(): Alias | undefined;
111
+ /**
112
+ * Gets custom options.
113
+ *
114
+ * @returns {Array<CustomOption>} Custom options.
115
+ */
116
+ get customOptions(): Array<CustomOption> | undefined;
117
+ /**
118
+ * Gets custom context.
119
+ *
120
+ * @returns {CustomContext} Custom context.
121
+ */
122
+ get customContext(): CustomContext;
123
+ /**
124
+ * Gets serialized null value.
125
+ *
126
+ * @returns {any|undefined} Resolved serialized null value or undefined.
127
+ */
128
+ get serializedNullValue(): any | undefined;
129
+ /**
130
+ * Gets serialized default value.
131
+ *
132
+ * @returns {any|undefined} Resolved serialized default value or undefined.
133
+ */
134
+ get serializedDefaultValue(): any | undefined;
135
+ /**
136
+ * Gets deserialized null value.
137
+ *
138
+ * @returns {any|undefined} Resolved deserialized null value or undefined.
139
+ */
140
+ get deserializedNullValue(): any | undefined;
141
+ /**
142
+ * Gets deserialized default value.
143
+ *
144
+ * @returns {any|undefined} Resolved deserialized default value or undefined.
145
+ */
146
+ get deserializedDefaultValue(): any | undefined;
147
+ /**
148
+ * Gets discriminant.
149
+ *
150
+ * @returns {Discriminant} Discriminant.
151
+ */
152
+ get discriminant(): Discriminant;
153
+ /**
154
+ * Gets discriminator.
155
+ *
156
+ * @returns {Discriminator} Discriminator.
157
+ */
158
+ get discriminator(): Discriminator;
159
+ /**
160
+ * Gets factory.
161
+ *
162
+ * @returns {Factory} Factory.
163
+ */
164
+ get factory(): Factory;
165
+ /**
166
+ * Gets injectable value.
167
+ *
168
+ * @returns {boolean|undefined} Injectable indicator or undefined.
169
+ */
170
+ get injectable(): boolean | undefined;
171
+ /**
172
+ * Gets injector.
173
+ *
174
+ * @returns {Injector} Injector.
175
+ */
176
+ get injector(): Injector;
177
+ /**
178
+ * Gets log.
179
+ *
180
+ * @returns {Log} Log instance.
181
+ */
182
+ get log(): Log;
183
+ /**
184
+ * Gets naming convention.
185
+ *
186
+ * @returns {NamingConvention|undefined} Naming convention or undefined.
187
+ */
188
+ get namingConvention(): NamingConvention | undefined;
189
+ /**
190
+ * Gets indicator if current type metadata is polymorphic.
191
+ *
192
+ * @returns {boolean} True when type metadata is polymorphic. False otherwise.
193
+ */
194
+ get polymorphic(): boolean;
195
+ /**
196
+ * Gets indicator if discriminator should be preserved.
197
+ *
198
+ * @returns {boolean} True when discriminator should be preserved. False otherwise.
199
+ */
200
+ get preserveDiscriminator(): boolean;
201
+ /**
202
+ * Gets reference handler.
203
+ *
204
+ * @returns {ReferenceHandler} Reference handler.
205
+ */
206
+ get referenceHandler(): ReferenceHandler;
207
+ /**
208
+ * Gets serializer.
209
+ *
210
+ * @returns {Serializer<TType>} Serializer.
211
+ */
212
+ get serializer(): Serializer<TType>;
213
+ /**
214
+ * Gets indicator if null value should be preserved.
215
+ *
216
+ * @returns {boolean} True when null value should be preserved. False otherwise.
217
+ */
218
+ get preserveNull(): boolean;
219
+ /**
220
+ * Gets indicator if default value should be used.
221
+ *
222
+ * @returns {boolean} True when type should use default value. False otherwise.
223
+ */
224
+ get useDefaultValue(): boolean;
225
+ /**
226
+ * Gets indicator if implicit conversion should be used.
227
+ *
228
+ * @returns {boolean} True when type should use implicit conversion. False otherwise.
229
+ */
230
+ get useImplicitConversion(): boolean;
231
+ /**
232
+ * Gets property sorter.
233
+ *
234
+ * @returns {PropertySorter|undefined} Property sorter or undefined.
235
+ */
236
+ get propertySorter(): PropertySorter | undefined;
237
+ /**
238
+ * Gets sorted property metadatas.
239
+ *
240
+ * @returns {IterableIterator<PropertyMetadata<TType, any>>} Iterable of property metadatas.
241
+ */
242
+ get sortedPropertyMetadatas(): IterableIterator<PropertyMetadata<TType, any>>;
243
+ /**
244
+ * Gets inject sorter.
245
+ *
246
+ * @returns {InjectSorter|undefined} Property sorter or undefined.
247
+ */
248
+ get injectSorter(): InjectSorter | undefined;
249
+ /**
250
+ * Gets sorted inject metadatas.
251
+ *
252
+ * @returns {IterableIterator<InjectMetadata<TType, any>>} Iterable of inject metadatas.
253
+ */
254
+ get sortedInjectMetadatas(): IterableIterator<InjectMetadata<TType, any>>;
255
+ /**
256
+ * Gets property options map.
257
+ *
258
+ * @returns {Map<PropertyName, PropertyOptions<any>>} Property options map.
259
+ */
260
+ get propertyOptionsMap(): Map<PropertyName, PropertyOptions<any>>;
261
+ /**
262
+ * Gets inject options map.
263
+ *
264
+ * @returns {Map<InjectIndex, InjectOptions<any>>} Inject options map.
265
+ */
266
+ get injectOptionsMap(): Map<InjectIndex, InjectOptions<any>>;
267
+ /**
268
+ * Constructs initial type options by extending passed options
269
+ * with default values if they are not overriden. All references are kept.
270
+ *
271
+ * @param {TypeOptions<TType>} typeOptions Type options.
272
+ *
273
+ * @returns {TypeOptions<TType>} Constructed type options.
274
+ */
275
+ private constructTypeOptions;
276
+ /**
277
+ * Constructs type internals.
278
+ *
279
+ * @returns {TypeInternals} Constructed type internals.
280
+ */
281
+ private constructTypeInternals;
282
+ /**
283
+ * Derives parent type metadata properties.
284
+ *
285
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
286
+ */
287
+ private deriveParentTypeMetadataProperties;
288
+ /**
289
+ * Reflects inject metadata.
290
+ *
291
+ * Used to configure inject metadata based on reflect metadata as inject decorators may be omitted.
292
+ *
293
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
294
+ */
295
+ reflectInjectMetadata(): TypeMetadata<TType>;
296
+ /**
297
+ * Configures alias.
298
+ *
299
+ * @param {Alias|undefined} alias Alias.
300
+ *
301
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
302
+ */
303
+ hasAlias(alias: Alias | undefined): TypeMetadata<TType>;
304
+ /**
305
+ * Releases alias.
306
+ *
307
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
308
+ */
309
+ private releaseAlias;
310
+ /**
311
+ * Configures custom options.
312
+ *
313
+ * @param {Array<CustomOption>|undefined} customOptions Custom options.
314
+ *
315
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
316
+ */
317
+ private hasCustomOptions;
318
+ /**
319
+ * Configures default value.
320
+ *
321
+ * @param {DefaultValue} defaultValue Default value.
322
+ *
323
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
324
+ */
325
+ hasDefaultValue(defaultValue: DefaultValue): TypeMetadata<TType>;
326
+ /**
327
+ * Configures serialized default value.
328
+ *
329
+ * @param {DefaultValue} serializedDefaultValue Serialized default value.
330
+ *
331
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
332
+ */
333
+ hasSerializedDefaultValue(serializedDefaultValue: DefaultValue): TypeMetadata<TType>;
334
+ /**
335
+ * Configures deserialized default value.
336
+ *
337
+ * @param {DefaultValue} deserializedDefaultValue Deserialized default value.
338
+ *
339
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
340
+ */
341
+ hasDeserializedDefaultValue(deserializedDefaultValue: DefaultValue): TypeMetadata<TType>;
342
+ /**
343
+ * Configures discriminator.
344
+ *
345
+ * @param {Discriminator|undefined} discriminator Discriminator.
346
+ *
347
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
348
+ */
349
+ hasDiscriminator(discriminator: Discriminator | undefined): TypeMetadata<TType>;
350
+ /**
351
+ * Configures discriminant.
352
+ *
353
+ * @param {Discriminant|undefined} discriminant Discriminant.
354
+ *
355
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
356
+ */
357
+ hasDiscriminant(discriminant: Discriminant | undefined): TypeMetadata<TType>;
358
+ /**
359
+ * Provides discriminant.
360
+ *
361
+ * @param {TypeFn<any>} typeFn Type function.
362
+ * @param {Discriminant} discriminant Discriminant.
363
+ *
364
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
365
+ */
366
+ private provideDiscriminant;
367
+ /**
368
+ * Configures factory.
369
+ *
370
+ * @param {Factory|undefined} factory Factory.
371
+ *
372
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
373
+ */
374
+ hasFactory(factory: Factory | undefined): TypeMetadata<TType>;
375
+ /**
376
+ * Configures injectable.
377
+ *
378
+ * @param {boolean} injectable Injectable.
379
+ *
380
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
381
+ */
382
+ isInjectable(injectable?: boolean): TypeMetadata<TType>;
383
+ /**
384
+ * Configures injector.
385
+ *
386
+ * @param {Injector|undefined} injector Injector.
387
+ *
388
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
389
+ */
390
+ hasInjector(injector: Injector | undefined): TypeMetadata<TType>;
391
+ /**
392
+ * Configures log.
393
+ *
394
+ * @param {Log|undefined} log Log.
395
+ *
396
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
397
+ */
398
+ hasLog(log: Log | undefined): TypeMetadata<TType>;
399
+ /**
400
+ * Configures naming convention.
401
+ *
402
+ * @param {NamingConvention|undefined} namingConvention Naming convention.
403
+ *
404
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
405
+ */
406
+ hasNamingConvention(namingConvention: NamingConvention | undefined): TypeMetadata<TType>;
407
+ /**
408
+ * Configures preserve discriminator.
409
+ *
410
+ * @param {boolean} preserveDiscriminator Preserve discriminator.
411
+ *
412
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
413
+ */
414
+ shouldPreserveDiscriminator(preserveDiscriminator?: boolean): TypeMetadata<TType>;
415
+ /**
416
+ * Configures reference handler.
417
+ *
418
+ * @param {ReferenceHandler|undefined} referenceHandler Reference handler.
419
+ *
420
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
421
+ */
422
+ hasReferenceHandler(referenceHandler: ReferenceHandler | undefined): TypeMetadata<TType>;
423
+ /**
424
+ * Configures serializer.
425
+ *
426
+ * @param {Serializer<TType>|undefined} serializer Serializer.
427
+ *
428
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
429
+ */
430
+ hasSerializer(serializer: Serializer<TType> | undefined): TypeMetadata<TType>;
431
+ /**
432
+ * Configures preserve null.
433
+ *
434
+ * @param {boolean} preserveNull Preserve null.
435
+ *
436
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
437
+ */
438
+ shouldPreserveNull(preserveNull?: boolean): TypeMetadata<TType>;
439
+ /**
440
+ * Configures use default value.
441
+ *
442
+ * @param {boolean} useDefaultValue Use default value.
443
+ *
444
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
445
+ */
446
+ shouldUseDefaultValue(useDefaultValue?: boolean): TypeMetadata<TType>;
447
+ /**
448
+ * Configures use implicit convertion.
449
+ *
450
+ * @param {boolean} useImplicitConversion Use implicit convertion.
451
+ *
452
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
453
+ */
454
+ shouldUseImplicitConversion(useImplicitConversion?: boolean): TypeMetadata<TType>;
455
+ /**
456
+ * Configures property sorter.
457
+ *
458
+ * @param {PropertySorter|undefined} propertySorter Property sorter.
459
+ *
460
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
461
+ */
462
+ hasPropertySorter(propertySorter: PropertySorter | undefined): TypeMetadata<TType>;
463
+ /**
464
+ * Configures inject sorter.
465
+ *
466
+ * @param {InjectSorter|undefined} injectSorter Inject sorter.
467
+ *
468
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
469
+ */
470
+ hasInjectSorter(injectSorter: InjectSorter | undefined): TypeMetadata<TType>;
471
+ /**
472
+ * Configures certain property metadata.
473
+ *
474
+ * @param {PropertyName} propertyName Property name.
475
+ * @param {PropertyOptions<TPropertyType>} propertyOptions Property options.
476
+ *
477
+ * @returns {PropertyMetadata<TType, TPropertyType>} Configured property metadata.
478
+ */
479
+ configurePropertyMetadata<TPropertyType>(propertyName: PropertyName, propertyOptions?: PropertyOptions<TPropertyType>): PropertyMetadata<TType, TPropertyType>;
480
+ /**
481
+ * Configures certain inject metadata.
482
+ *
483
+ * @param {InjectIndex} injectIndex Inject index.
484
+ * @param {InjectOptions<TInjectType>} injectOptions Inject options.
485
+ *
486
+ * @returns {InjectMetadata<TType, TInjectType>} Configured inject metadata.
487
+ */
488
+ configureInjectMetadata<TInjectType>(injectIndex: InjectIndex, injectOptions?: InjectOptions<TInjectType>): InjectMetadata<TType, TInjectType>;
489
+ /**
490
+ * Configures property metadata map.
491
+ *
492
+ * @param {Map<PropertyName, PropertyOptions<TPropertyType>>} propertyOptionsMap Property options map.
493
+ *
494
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
495
+ */
496
+ hasPropertyMetadataMap<TPropertyType>(propertyOptionsMap: Map<PropertyName, PropertyOptions<TPropertyType>>): TypeMetadata<TType>;
497
+ /**
498
+ * Configures inject metadata map.
499
+ *
500
+ * @param {Map<InjectIndex, InjectOptions<TInjectType>>} injectOptionsMap Inject options map.
501
+ *
502
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
503
+ */
504
+ hasInjectMetadataMap<TInjectType>(injectOptionsMap: Map<InjectIndex, InjectOptions<TInjectType>>): TypeMetadata<TType>;
505
+ /**
506
+ * Configures type metadata based on provided options.
507
+ *
508
+ * @param {TypeOptions<TType>} typeOptions Type options.
509
+ *
510
+ * @returns {TypeMetadata<TType>} Current instance of type metadata.
511
+ */
512
+ configure(typeOptions: TypeOptions<TType>): TypeMetadata<TType>;
513
+ }
514
514
  //# sourceMappingURL=type-metadata.d.ts.map