@opra/common 0.33.13 → 1.0.0-alpha.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 (582) hide show
  1. package/browser.js +4657 -3899
  2. package/cjs/document/api-document.js +112 -23
  3. package/cjs/document/common/api-base.js +27 -0
  4. package/cjs/document/common/data-type-map.js +66 -0
  5. package/cjs/document/common/document-element.js +31 -0
  6. package/cjs/document/common/document-init-context.js +69 -0
  7. package/cjs/document/common/document-node.js +124 -0
  8. package/cjs/document/common/opra-document-error.js +15 -0
  9. package/cjs/document/common/value.js +33 -0
  10. package/cjs/document/constants.js +13 -7
  11. package/cjs/document/data-type/api-field.js +64 -0
  12. package/cjs/document/data-type/complex-type-base.js +183 -0
  13. package/cjs/document/data-type/complex-type.js +89 -13
  14. package/cjs/document/data-type/data-type.js +32 -25
  15. package/cjs/document/data-type/decorators/api-field-decorator.js +26 -0
  16. package/cjs/document/data-type/decorators/complex-type.decorator.js +33 -0
  17. package/cjs/document/data-type/decorators/simple-type.decorator.js +67 -0
  18. package/cjs/document/data-type/enum-type.js +92 -36
  19. package/cjs/document/data-type/{builtin → extended-types}/base64.type.js +11 -2
  20. package/cjs/document/data-type/extended-types/date-string.type.js +44 -0
  21. package/cjs/document/data-type/extended-types/date-time-string.type.js +47 -0
  22. package/cjs/document/data-type/extended-types/date-time.type.js +58 -0
  23. package/cjs/document/data-type/extended-types/date.type.js +55 -0
  24. package/cjs/document/data-type/extended-types/email.type.js +80 -0
  25. package/cjs/document/data-type/extended-types/field-path.type.js +53 -0
  26. package/cjs/document/data-type/extended-types/filter.type.js +74 -0
  27. package/cjs/document/data-type/extended-types/index.js +16 -0
  28. package/cjs/document/data-type/{builtin → extended-types}/object-id.type.js +11 -2
  29. package/cjs/document/data-type/extended-types/operation-result.type.js +56 -0
  30. package/cjs/document/data-type/extended-types/time.type.js +47 -0
  31. package/cjs/document/data-type/{builtin → extended-types}/url.type.js +12 -3
  32. package/cjs/document/data-type/extended-types/uuid.type.js +30 -0
  33. package/cjs/document/data-type/mapped-type.js +77 -61
  34. package/cjs/document/data-type/mixin-type.js +78 -23
  35. package/cjs/document/data-type/omit-type.js +11 -0
  36. package/cjs/document/data-type/partial-type.js +13 -0
  37. package/cjs/document/data-type/pick-type.js +11 -0
  38. package/cjs/document/data-type/primitive-types/any.type.js +25 -0
  39. package/cjs/document/data-type/primitive-types/bigint.type.js +30 -0
  40. package/cjs/document/data-type/{builtin → primitive-types}/boolean.type.js +11 -2
  41. package/cjs/document/data-type/primitive-types/index.js +11 -0
  42. package/cjs/document/data-type/primitive-types/integer.type.js +30 -0
  43. package/cjs/document/data-type/{builtin → primitive-types}/null.type.js +11 -2
  44. package/cjs/document/data-type/primitive-types/number.type.js +40 -0
  45. package/cjs/document/data-type/{builtin → primitive-types}/object.type.js +7 -1
  46. package/cjs/document/data-type/primitive-types/string.type.js +58 -0
  47. package/cjs/document/data-type/required-type.js +13 -0
  48. package/cjs/document/data-type/simple-type.js +93 -14
  49. package/cjs/document/data-type/utils/create-mapped-class.js +54 -0
  50. package/cjs/document/data-type/utils/get-is-inherited-predicate-fn.js +15 -0
  51. package/cjs/document/{data-type/field-decorator.js → decorators/api-field-decorator.js} +7 -7
  52. package/cjs/document/{data-type → decorators}/complex-type.decorator.js +11 -1
  53. package/cjs/document/decorators/http-controller.decorator.js +117 -0
  54. package/cjs/document/decorators/http-operation-entity.decorator.js +462 -0
  55. package/cjs/document/decorators/http-operation.decorator.js +183 -0
  56. package/cjs/document/decorators/simple-type.decorator.js +67 -0
  57. package/cjs/document/factory/api-document.factory.js +178 -0
  58. package/cjs/document/factory/data-type.factory.js +498 -0
  59. package/cjs/document/factory/http-api.factory.js +315 -0
  60. package/cjs/document/http/decorators/http-controller.decorator.js +117 -0
  61. package/cjs/document/http/decorators/http-operation-entity.decorator.js +461 -0
  62. package/cjs/document/http/decorators/http-operation.decorator.js +183 -0
  63. package/cjs/document/http/http-api.js +40 -0
  64. package/cjs/document/http/http-controller.js +145 -0
  65. package/cjs/document/http/http-media-type.js +68 -0
  66. package/cjs/document/http/http-multipart-field.js +33 -0
  67. package/cjs/document/http/http-operation-response.js +42 -0
  68. package/cjs/document/http/http-operation.js +93 -0
  69. package/cjs/document/http/http-parameter.js +44 -0
  70. package/cjs/document/http/http-request-body.js +25 -0
  71. package/cjs/document/http/http-status-range.js +41 -0
  72. package/cjs/document/index.js +35 -22
  73. package/cjs/document/utils/inspect.util.js +3 -3
  74. package/cjs/document/utils/parse-regexp.util.js +22 -0
  75. package/cjs/exception/http-errors/bad-request.error.js +3 -3
  76. package/cjs/exception/http-errors/conflict.error.js +3 -3
  77. package/cjs/exception/http-errors/failed-dependency.error.js +3 -3
  78. package/cjs/exception/http-errors/forbidden.error.js +3 -3
  79. package/cjs/exception/http-errors/internal-server.error.js +3 -3
  80. package/cjs/exception/http-errors/method-not-allowed.error.js +3 -3
  81. package/cjs/exception/http-errors/not-acceptable.error.js +3 -3
  82. package/cjs/exception/http-errors/not-found.error.js +3 -3
  83. package/cjs/exception/{resource-errors → http-errors}/permission.error.js +2 -2
  84. package/cjs/exception/{resource-errors → http-errors}/resource-conflict.error.js +3 -3
  85. package/cjs/exception/{resource-errors → http-errors}/resource-not.available.error.js +5 -5
  86. package/cjs/exception/http-errors/unauthorized.error.js +3 -3
  87. package/cjs/exception/http-errors/unprocessable-entity.error.js +3 -3
  88. package/cjs/exception/index.js +4 -4
  89. package/cjs/exception/issue-severity.enum.js +1 -1
  90. package/cjs/exception/opra-exception.js +5 -16
  91. package/cjs/exception/opra-http-error.js +25 -0
  92. package/cjs/filter/antlr/OpraFilterLexer.js +259 -193
  93. package/cjs/filter/antlr/OpraFilterParser.js +137 -84
  94. package/cjs/filter/ast/expressions/arithmetic-expression.js +1 -1
  95. package/cjs/filter/ast/expressions/logical-expression.js +1 -3
  96. package/cjs/filter/ast/terms/number-literal.js +1 -3
  97. package/cjs/filter/ast/terms/time-literal.js +6 -4
  98. package/cjs/filter/build.js +1 -3
  99. package/cjs/filter/filter-rules.js +93 -0
  100. package/cjs/filter/filter-tree-visitor.js +4 -7
  101. package/cjs/filter/parse.js +2 -2
  102. package/cjs/filter/utils.js +1 -3
  103. package/cjs/helpers/function-utils.js +2 -11
  104. package/cjs/helpers/get-stack-filename.js +28 -4
  105. package/cjs/helpers/index.js +2 -2
  106. package/cjs/helpers/is-url-string.js +1 -2
  107. package/cjs/helpers/mixin-utils.js +5 -8
  108. package/cjs/helpers/monkey-patches.js +12 -0
  109. package/cjs/helpers/object-utils.js +4 -5
  110. package/cjs/helpers/parse-fields-projection.js +67 -0
  111. package/cjs/helpers/responsive-map.js +93 -117
  112. package/cjs/helpers/type-guards.js +22 -29
  113. package/cjs/http/enums/http-status-messages.js +63 -63
  114. package/cjs/http/enums/mime-types.enum.js +17 -0
  115. package/cjs/http/index.js +1 -2
  116. package/cjs/http/opra-url-path.js +14 -9
  117. package/cjs/http/opra-url.js +18 -15
  118. package/cjs/i18n/i18n.js +9 -5
  119. package/cjs/i18n/translate.js +2 -2
  120. package/cjs/index.js +1 -1
  121. package/cjs/schema/http/http-controller.interface.js +11 -0
  122. package/cjs/schema/http/http-operation.interface.js +7 -0
  123. package/cjs/schema/index.js +27 -2
  124. package/cjs/schema/type-guards.js +8 -30
  125. package/cjs/schema/value.interface.js +2 -0
  126. package/esm/document/api-document.js +112 -23
  127. package/esm/document/common/api-base.js +23 -0
  128. package/esm/document/common/data-type-map.js +62 -0
  129. package/esm/document/common/document-element.js +28 -0
  130. package/esm/document/common/document-init-context.js +65 -0
  131. package/esm/document/common/document-node.js +120 -0
  132. package/esm/document/common/opra-document-error.js +11 -0
  133. package/esm/document/common/value.js +30 -0
  134. package/esm/document/constants.js +12 -6
  135. package/esm/document/data-type/api-field.js +61 -0
  136. package/esm/document/data-type/complex-type-base.js +180 -0
  137. package/esm/document/data-type/complex-type.js +88 -11
  138. package/esm/document/data-type/data-type.js +32 -24
  139. package/esm/document/data-type/decorators/api-field-decorator.js +22 -0
  140. package/esm/document/data-type/decorators/complex-type.decorator.js +28 -0
  141. package/esm/document/data-type/decorators/simple-type.decorator.js +61 -0
  142. package/esm/document/data-type/enum-type.js +93 -36
  143. package/esm/document/data-type/extended-types/base64.type.js +22 -0
  144. package/esm/document/data-type/extended-types/date-string.type.js +41 -0
  145. package/esm/document/data-type/extended-types/date-time-string.type.js +44 -0
  146. package/esm/document/data-type/extended-types/date-time.type.js +55 -0
  147. package/esm/document/data-type/extended-types/date.type.js +52 -0
  148. package/esm/document/data-type/extended-types/email.type.js +77 -0
  149. package/esm/document/data-type/extended-types/field-path.type.js +50 -0
  150. package/esm/document/data-type/extended-types/filter.type.js +71 -0
  151. package/esm/document/data-type/extended-types/index.js +13 -0
  152. package/esm/document/data-type/extended-types/object-id.type.js +22 -0
  153. package/esm/document/{resource/types → data-type/extended-types}/operation-result.type.js +25 -14
  154. package/esm/document/data-type/extended-types/time.type.js +44 -0
  155. package/esm/document/data-type/extended-types/url.type.js +22 -0
  156. package/esm/document/data-type/extended-types/uuid.type.js +27 -0
  157. package/esm/document/data-type/mapped-type.js +76 -56
  158. package/esm/document/data-type/mixin-type.js +80 -24
  159. package/esm/document/data-type/omit-type.js +7 -0
  160. package/esm/document/data-type/partial-type.js +9 -0
  161. package/esm/document/data-type/pick-type.js +7 -0
  162. package/esm/document/data-type/primitive-types/any.type.js +22 -0
  163. package/esm/document/data-type/primitive-types/bigint.type.js +27 -0
  164. package/esm/document/data-type/primitive-types/boolean.type.js +22 -0
  165. package/esm/document/data-type/primitive-types/index.js +8 -0
  166. package/esm/document/data-type/primitive-types/integer.type.js +27 -0
  167. package/esm/document/data-type/{builtin → primitive-types}/null.type.js +11 -2
  168. package/esm/document/data-type/primitive-types/number.type.js +37 -0
  169. package/esm/document/data-type/{builtin → primitive-types}/object.type.js +7 -1
  170. package/esm/document/data-type/primitive-types/string.type.js +55 -0
  171. package/esm/document/data-type/required-type.js +9 -0
  172. package/esm/document/data-type/simple-type.js +92 -12
  173. package/esm/document/data-type/utils/create-mapped-class.js +50 -0
  174. package/esm/document/data-type/utils/get-is-inherited-predicate-fn.js +11 -0
  175. package/esm/document/{data-type/field-decorator.js → decorators/api-field-decorator.js} +5 -5
  176. package/esm/document/{data-type → decorators}/complex-type.decorator.js +12 -2
  177. package/esm/document/decorators/http-controller.decorator.js +112 -0
  178. package/esm/document/decorators/http-operation-entity.decorator.js +460 -0
  179. package/esm/document/decorators/http-operation.decorator.js +178 -0
  180. package/esm/document/decorators/simple-type.decorator.js +61 -0
  181. package/esm/document/factory/api-document.factory.js +174 -0
  182. package/esm/document/factory/data-type.factory.js +494 -0
  183. package/esm/document/factory/http-api.factory.js +311 -0
  184. package/esm/document/http/decorators/http-controller.decorator.js +112 -0
  185. package/esm/document/http/decorators/http-operation-entity.decorator.js +459 -0
  186. package/esm/document/http/decorators/http-operation.decorator.js +178 -0
  187. package/esm/document/http/http-api.js +36 -0
  188. package/esm/document/http/http-controller.js +142 -0
  189. package/esm/document/http/http-media-type.js +65 -0
  190. package/esm/document/http/http-multipart-field.js +29 -0
  191. package/esm/document/http/http-operation-response.js +38 -0
  192. package/esm/document/http/http-operation.js +90 -0
  193. package/esm/document/http/http-parameter.js +41 -0
  194. package/esm/document/http/http-request-body.js +21 -0
  195. package/esm/document/http/http-status-range.js +37 -0
  196. package/esm/document/index.js +34 -22
  197. package/esm/document/utils/inspect.util.js +3 -3
  198. package/esm/document/utils/parse-regexp.util.js +18 -0
  199. package/esm/exception/http-errors/bad-request.error.js +3 -3
  200. package/esm/exception/http-errors/conflict.error.js +3 -3
  201. package/esm/exception/http-errors/failed-dependency.error.js +3 -3
  202. package/esm/exception/http-errors/forbidden.error.js +3 -3
  203. package/esm/exception/http-errors/internal-server.error.js +3 -3
  204. package/esm/exception/http-errors/method-not-allowed.error.js +3 -3
  205. package/esm/exception/http-errors/not-acceptable.error.js +3 -3
  206. package/esm/exception/http-errors/not-found.error.js +3 -3
  207. package/esm/exception/{resource-errors → http-errors}/permission.error.js +2 -2
  208. package/esm/exception/{resource-errors → http-errors}/resource-conflict.error.js +3 -3
  209. package/esm/exception/{resource-errors → http-errors}/resource-not.available.error.js +5 -5
  210. package/esm/exception/http-errors/unauthorized.error.js +3 -3
  211. package/esm/exception/http-errors/unprocessable-entity.error.js +3 -3
  212. package/esm/exception/index.js +4 -4
  213. package/esm/exception/issue-severity.enum.js +1 -1
  214. package/esm/exception/opra-exception.js +5 -16
  215. package/esm/exception/opra-http-error.js +21 -0
  216. package/esm/filter/antlr/OpraFilterLexer.js +260 -194
  217. package/esm/filter/antlr/OpraFilterListener.js +1 -1
  218. package/esm/filter/antlr/OpraFilterParser.js +138 -85
  219. package/esm/filter/ast/expressions/arithmetic-expression.js +1 -1
  220. package/esm/filter/ast/expressions/logical-expression.js +1 -3
  221. package/esm/filter/ast/terms/number-literal.js +1 -3
  222. package/esm/filter/ast/terms/time-literal.js +6 -4
  223. package/esm/filter/build.js +2 -4
  224. package/esm/filter/filter-rules.js +89 -0
  225. package/esm/filter/filter-tree-visitor.js +4 -6
  226. package/esm/filter/parse.js +2 -2
  227. package/esm/filter/utils.js +1 -3
  228. package/esm/helpers/function-utils.js +1 -9
  229. package/esm/helpers/get-stack-filename.js +26 -3
  230. package/esm/helpers/index.js +2 -2
  231. package/esm/helpers/is-url-string.js +1 -2
  232. package/esm/helpers/mixin-utils.js +5 -8
  233. package/esm/helpers/monkey-patches.js +12 -0
  234. package/esm/helpers/object-utils.js +4 -5
  235. package/esm/helpers/parse-fields-projection.js +61 -0
  236. package/esm/helpers/responsive-map.js +93 -117
  237. package/esm/helpers/type-guards.js +22 -29
  238. package/esm/http/enums/http-status-messages.js +63 -63
  239. package/esm/http/enums/mime-types.enum.js +14 -0
  240. package/esm/http/index.js +1 -2
  241. package/esm/http/opra-url-path.js +14 -9
  242. package/esm/http/opra-url.js +18 -15
  243. package/esm/i18n/i18n.js +9 -5
  244. package/esm/i18n/translate.js +2 -2
  245. package/esm/index.js +1 -1
  246. package/esm/schema/http/http-controller.interface.js +8 -0
  247. package/esm/schema/http/http-operation.interface.js +4 -0
  248. package/esm/schema/index.js +27 -2
  249. package/esm/schema/type-guards.js +6 -24
  250. package/esm/schema/value.interface.js +1 -0
  251. package/package.json +14 -13
  252. package/types/document/api-document.d.ts +31 -51
  253. package/types/document/common/api-base.d.ts +17 -0
  254. package/types/document/common/data-type-map.d.ts +23 -0
  255. package/types/document/common/document-element.d.ts +23 -0
  256. package/types/document/common/document-init-context.d.ts +17 -0
  257. package/types/document/common/document-node.d.ts +65 -0
  258. package/types/document/common/opra-document-error.d.ts +12 -0
  259. package/types/document/common/value.d.ts +48 -0
  260. package/types/document/constants.d.ts +9 -3
  261. package/types/document/data-type/api-field.d.ts +65 -0
  262. package/types/document/data-type/complex-type-base.d.ts +80 -0
  263. package/types/document/data-type/complex-type.d.ts +61 -35
  264. package/types/document/data-type/data-type.d.ts +49 -46
  265. package/types/document/data-type/decorators/api-field-decorator.d.ts +5 -0
  266. package/types/document/data-type/decorators/complex-type.decorator.d.ts +2 -0
  267. package/types/document/data-type/decorators/simple-type.decorator.d.ts +20 -0
  268. package/types/document/data-type/enum-type.d.ts +59 -23
  269. package/types/document/data-type/extended-types/base64.type.d.ts +7 -0
  270. package/types/document/data-type/extended-types/date-string.type.d.ts +9 -0
  271. package/types/document/data-type/extended-types/date-time-string.type.d.ts +9 -0
  272. package/types/document/data-type/extended-types/date-time.type.d.ts +9 -0
  273. package/types/document/data-type/extended-types/date.type.d.ts +9 -0
  274. package/types/document/data-type/extended-types/email.type.d.ts +16 -0
  275. package/types/document/data-type/extended-types/field-path.type.d.ts +15 -0
  276. package/types/document/data-type/extended-types/filter.type.d.ts +16 -0
  277. package/types/document/data-type/extended-types/index.d.ts +13 -0
  278. package/types/document/data-type/extended-types/object-id.type.d.ts +7 -0
  279. package/types/document/{resource/types → data-type/extended-types}/operation-result.type.d.ts +7 -6
  280. package/types/document/data-type/extended-types/time.type.d.ts +9 -0
  281. package/types/document/data-type/extended-types/url.type.d.ts +7 -0
  282. package/types/document/data-type/extended-types/uuid.type.d.ts +8 -0
  283. package/types/document/data-type/mapped-type.d.ts +55 -44
  284. package/types/document/data-type/mixin-type.d.ts +65 -26
  285. package/types/document/data-type/omit-type.d.ts +15 -0
  286. package/types/document/data-type/partial-type.d.ts +28 -0
  287. package/types/document/data-type/pick-type.d.ts +16 -0
  288. package/types/document/data-type/primitive-types/any.type.d.ts +7 -0
  289. package/types/document/data-type/primitive-types/bigint.type.d.ts +8 -0
  290. package/types/document/data-type/primitive-types/boolean.type.d.ts +7 -0
  291. package/types/document/data-type/primitive-types/index.d.ts +8 -0
  292. package/types/document/data-type/primitive-types/integer.type.d.ts +8 -0
  293. package/types/document/data-type/primitive-types/null.type.d.ts +7 -0
  294. package/types/document/data-type/primitive-types/number.type.d.ts +9 -0
  295. package/types/document/data-type/primitive-types/object.type.d.ts +3 -0
  296. package/types/document/data-type/primitive-types/string.type.d.ts +11 -0
  297. package/types/document/data-type/required-type.d.ts +22 -0
  298. package/types/document/data-type/simple-type.d.ts +63 -24
  299. package/types/document/data-type/utils/create-mapped-class.d.ts +3 -0
  300. package/types/document/data-type/utils/get-is-inherited-predicate-fn.d.ts +1 -0
  301. package/types/document/decorators/api-field-decorator.d.ts +5 -0
  302. package/types/document/decorators/complex-type.decorator.d.ts +2 -0
  303. package/types/document/decorators/http-controller.decorator.d.ts +14 -0
  304. package/types/document/decorators/http-operation-entity.decorator.d.ts +100 -0
  305. package/types/document/decorators/http-operation.decorator.d.ts +30 -0
  306. package/types/document/decorators/simple-type.decorator.d.ts +20 -0
  307. package/types/document/factory/api-document.factory.d.ts +35 -0
  308. package/types/document/factory/data-type.factory.d.ts +103 -0
  309. package/types/document/factory/http-api.factory.d.ts +60 -0
  310. package/types/document/http/decorators/http-controller.decorator.d.ts +14 -0
  311. package/types/document/http/decorators/http-operation-entity.decorator.d.ts +100 -0
  312. package/types/document/http/decorators/http-operation.decorator.d.ts +30 -0
  313. package/types/document/http/http-api.d.ts +23 -0
  314. package/types/document/http/http-controller.d.ts +92 -0
  315. package/types/document/http/http-media-type.d.ts +59 -0
  316. package/types/document/http/http-multipart-field.d.ts +26 -0
  317. package/types/document/http/http-operation-response.d.ts +36 -0
  318. package/types/document/http/http-operation.d.ts +84 -0
  319. package/types/document/http/http-parameter.d.ts +50 -0
  320. package/types/document/http/http-request-body.d.ts +31 -0
  321. package/types/document/http/http-status-range.d.ts +14 -0
  322. package/types/document/index.d.ts +33 -22
  323. package/types/document/utils/parse-regexp.util.d.ts +4 -0
  324. package/types/exception/http-errors/bad-request.error.d.ts +2 -2
  325. package/types/exception/http-errors/conflict.error.d.ts +2 -2
  326. package/types/exception/http-errors/failed-dependency.error.d.ts +2 -2
  327. package/types/exception/http-errors/forbidden.error.d.ts +2 -2
  328. package/types/exception/http-errors/internal-server.error.d.ts +2 -2
  329. package/types/exception/http-errors/method-not-allowed.error.d.ts +2 -2
  330. package/types/exception/http-errors/not-acceptable.error.d.ts +2 -2
  331. package/types/exception/http-errors/not-found.error.d.ts +2 -2
  332. package/types/exception/{resource-errors → http-errors}/permission.error.d.ts +1 -1
  333. package/types/exception/http-errors/resource-conflict.error.d.ts +5 -0
  334. package/types/exception/{resource-errors → http-errors}/resource-not.available.error.d.ts +2 -2
  335. package/types/exception/http-errors/unauthorized.error.d.ts +2 -2
  336. package/types/exception/http-errors/unprocessable-entity.error.d.ts +2 -2
  337. package/types/exception/index.d.ts +4 -4
  338. package/types/exception/opra-exception.d.ts +1 -5
  339. package/types/exception/opra-http-error.d.ts +13 -0
  340. package/types/filter/antlr/OpraFilterLexer.d.ts +1 -1
  341. package/types/filter/antlr/OpraFilterListener.d.ts +2 -2
  342. package/types/filter/antlr/OpraFilterParser.d.ts +2 -2
  343. package/types/filter/antlr/OpraFilterVisitor.d.ts +1 -1
  344. package/types/filter/ast/terms/qualified-identifier.d.ts +1 -1
  345. package/types/filter/filter-rules.d.ts +24 -0
  346. package/types/filter/filter-tree-visitor.d.ts +1 -3
  347. package/types/helpers/function-utils.d.ts +2 -4
  348. package/types/helpers/get-stack-filename.d.ts +1 -0
  349. package/types/helpers/index.d.ts +2 -2
  350. package/types/helpers/monkey-patches.d.ts +0 -0
  351. package/types/helpers/parse-fields-projection.d.ts +11 -0
  352. package/types/helpers/responsive-map.d.ts +8 -4
  353. package/types/helpers/type-guards.d.ts +2 -2
  354. package/types/http/enums/http-status-messages.d.ts +63 -63
  355. package/types/http/enums/mime-types.enum.d.ts +12 -0
  356. package/types/http/index.d.ts +1 -2
  357. package/types/i18n/i18n.d.ts +2 -1
  358. package/types/schema/data-type/complex-type.interface.d.ts +3 -3
  359. package/types/schema/data-type/data-type.interface.d.ts +6 -0
  360. package/types/schema/data-type/enum-type.interface.d.ts +3 -4
  361. package/types/schema/data-type/field.interface.d.ts +2 -10
  362. package/types/schema/data-type/mapped-type.interface.d.ts +7 -3
  363. package/types/schema/data-type/mixin-type.interface.d.ts +2 -2
  364. package/types/schema/data-type/simple-type.interface.d.ts +35 -7
  365. package/types/schema/data-type-container.interface.d.ts +7 -0
  366. package/types/schema/document.interface.d.ts +55 -0
  367. package/types/schema/http/http-controller.interface.d.ts +24 -0
  368. package/types/schema/http/http-media-type.interface.d.ts +65 -0
  369. package/types/schema/http/http-multipart-field.interface.d.ts +7 -0
  370. package/types/schema/http/http-operation-response.interface.d.ts +24 -0
  371. package/types/schema/http/http-operation.interface.d.ts +23 -0
  372. package/types/schema/http/http-parameter.interface.d.ts +28 -0
  373. package/types/schema/http/http-request-body.interface.d.ts +29 -0
  374. package/types/schema/http/http-status-range.interface.d.ts +4 -0
  375. package/types/schema/index.d.ts +61 -2
  376. package/types/schema/type-guards.d.ts +2 -10
  377. package/types/schema/types.d.ts +3 -0
  378. package/types/schema/value.interface.d.ts +23 -0
  379. package/types/types.d.ts +1 -14
  380. package/cjs/document/data-type/builtin/any.type.js +0 -13
  381. package/cjs/document/data-type/builtin/approx-date.type.js +0 -21
  382. package/cjs/document/data-type/builtin/approx-datetime.type.js +0 -24
  383. package/cjs/document/data-type/builtin/bigint.type.js +0 -16
  384. package/cjs/document/data-type/builtin/date.type.js +0 -17
  385. package/cjs/document/data-type/builtin/datetime.type.js +0 -21
  386. package/cjs/document/data-type/builtin/email.type.js +0 -16
  387. package/cjs/document/data-type/builtin/index.js +0 -21
  388. package/cjs/document/data-type/builtin/integer.type.js +0 -16
  389. package/cjs/document/data-type/builtin/number.type.js +0 -16
  390. package/cjs/document/data-type/builtin/string.type.js +0 -16
  391. package/cjs/document/data-type/builtin/time.type.js +0 -23
  392. package/cjs/document/data-type/builtin/uuid.type.js +0 -16
  393. package/cjs/document/data-type/complex-type-class.js +0 -274
  394. package/cjs/document/data-type/enum-type-class.js +0 -39
  395. package/cjs/document/data-type/field-class.js +0 -67
  396. package/cjs/document/data-type/field.js +0 -25
  397. package/cjs/document/data-type/mapped-type-class.js +0 -53
  398. package/cjs/document/data-type/mixin-type-class.js +0 -38
  399. package/cjs/document/data-type/simple-type-class.js +0 -37
  400. package/cjs/document/data-type/simple-type.decorator.js +0 -20
  401. package/cjs/document/document-base.js +0 -24
  402. package/cjs/document/factory/api-document-factory.js +0 -262
  403. package/cjs/document/factory/type-document-factory.js +0 -326
  404. package/cjs/document/resource/action-decorator.js +0 -33
  405. package/cjs/document/resource/action.js +0 -34
  406. package/cjs/document/resource/collection-class.js +0 -257
  407. package/cjs/document/resource/collection-decorator.js +0 -211
  408. package/cjs/document/resource/collection.js +0 -25
  409. package/cjs/document/resource/container-class.js +0 -84
  410. package/cjs/document/resource/container-decorator.js +0 -24
  411. package/cjs/document/resource/container.js +0 -29
  412. package/cjs/document/resource/crud-operation-decorator.js +0 -28
  413. package/cjs/document/resource/crud-operation.js +0 -49
  414. package/cjs/document/resource/crud-resource.js +0 -34
  415. package/cjs/document/resource/endpoint.js +0 -59
  416. package/cjs/document/resource/enums/metadata-mode.enum.js +0 -19
  417. package/cjs/document/resource/parameter.js +0 -50
  418. package/cjs/document/resource/resource-decorator.js +0 -33
  419. package/cjs/document/resource/resource.js +0 -60
  420. package/cjs/document/resource/singleton-class.js +0 -83
  421. package/cjs/document/resource/singleton-decorator.js +0 -57
  422. package/cjs/document/resource/singleton.js +0 -25
  423. package/cjs/document/resource/storage-class.js +0 -18
  424. package/cjs/document/resource/storage-decorator.js +0 -70
  425. package/cjs/document/resource/storage.js +0 -25
  426. package/cjs/document/resource/types/operation-result.type.js +0 -45
  427. package/cjs/document/type-document.js +0 -204
  428. package/cjs/exception/wrap-exception.js +0 -43
  429. package/cjs/helpers/path-to-object-tree.js +0 -28
  430. package/cjs/schema/opra-schema.ns.js +0 -22
  431. package/cjs/schema/resource/collection.interface.js +0 -7
  432. package/cjs/schema/resource/container.interface.js +0 -7
  433. package/cjs/schema/resource/singleton.interface.js +0 -7
  434. package/cjs/schema/resource/storage.interface.js +0 -7
  435. package/esm/document/data-type/builtin/any.type.js +0 -10
  436. package/esm/document/data-type/builtin/approx-date.type.js +0 -18
  437. package/esm/document/data-type/builtin/approx-datetime.type.js +0 -21
  438. package/esm/document/data-type/builtin/base64.type.js +0 -13
  439. package/esm/document/data-type/builtin/bigint.type.js +0 -13
  440. package/esm/document/data-type/builtin/boolean.type.js +0 -13
  441. package/esm/document/data-type/builtin/date.type.js +0 -14
  442. package/esm/document/data-type/builtin/datetime.type.js +0 -18
  443. package/esm/document/data-type/builtin/email.type.js +0 -13
  444. package/esm/document/data-type/builtin/index.js +0 -18
  445. package/esm/document/data-type/builtin/integer.type.js +0 -13
  446. package/esm/document/data-type/builtin/number.type.js +0 -13
  447. package/esm/document/data-type/builtin/object-id.type.js +0 -13
  448. package/esm/document/data-type/builtin/string.type.js +0 -13
  449. package/esm/document/data-type/builtin/time.type.js +0 -20
  450. package/esm/document/data-type/builtin/url.type.js +0 -13
  451. package/esm/document/data-type/builtin/uuid.type.js +0 -13
  452. package/esm/document/data-type/complex-type-class.js +0 -270
  453. package/esm/document/data-type/enum-type-class.js +0 -35
  454. package/esm/document/data-type/field-class.js +0 -63
  455. package/esm/document/data-type/field.js +0 -21
  456. package/esm/document/data-type/mapped-type-class.js +0 -48
  457. package/esm/document/data-type/mixin-type-class.js +0 -34
  458. package/esm/document/data-type/simple-type-class.js +0 -33
  459. package/esm/document/data-type/simple-type.decorator.js +0 -15
  460. package/esm/document/document-base.js +0 -20
  461. package/esm/document/factory/api-document-factory.js +0 -258
  462. package/esm/document/factory/type-document-factory.js +0 -322
  463. package/esm/document/resource/action-decorator.js +0 -29
  464. package/esm/document/resource/action.js +0 -30
  465. package/esm/document/resource/collection-class.js +0 -253
  466. package/esm/document/resource/collection-decorator.js +0 -207
  467. package/esm/document/resource/collection.js +0 -21
  468. package/esm/document/resource/container-class.js +0 -80
  469. package/esm/document/resource/container-decorator.js +0 -20
  470. package/esm/document/resource/container.js +0 -25
  471. package/esm/document/resource/crud-operation-decorator.js +0 -24
  472. package/esm/document/resource/crud-operation.js +0 -45
  473. package/esm/document/resource/crud-resource.js +0 -30
  474. package/esm/document/resource/endpoint.js +0 -55
  475. package/esm/document/resource/enums/metadata-mode.enum.js +0 -16
  476. package/esm/document/resource/parameter.js +0 -46
  477. package/esm/document/resource/resource-decorator.js +0 -28
  478. package/esm/document/resource/resource.js +0 -56
  479. package/esm/document/resource/singleton-class.js +0 -79
  480. package/esm/document/resource/singleton-decorator.js +0 -53
  481. package/esm/document/resource/singleton.js +0 -21
  482. package/esm/document/resource/storage-class.js +0 -14
  483. package/esm/document/resource/storage-decorator.js +0 -66
  484. package/esm/document/resource/storage.js +0 -21
  485. package/esm/document/type-document.js +0 -200
  486. package/esm/exception/wrap-exception.js +0 -39
  487. package/esm/helpers/path-to-object-tree.js +0 -24
  488. package/esm/schema/opra-schema.ns.js +0 -19
  489. package/esm/schema/resource/collection.interface.js +0 -4
  490. package/esm/schema/resource/container.interface.js +0 -4
  491. package/esm/schema/resource/singleton.interface.js +0 -4
  492. package/esm/schema/resource/storage.interface.js +0 -4
  493. package/types/document/data-type/builtin/any.type.d.ts +0 -2
  494. package/types/document/data-type/builtin/approx-date.type.d.ts +0 -2
  495. package/types/document/data-type/builtin/approx-datetime.type.d.ts +0 -2
  496. package/types/document/data-type/builtin/base64.type.d.ts +0 -2
  497. package/types/document/data-type/builtin/bigint.type.d.ts +0 -2
  498. package/types/document/data-type/builtin/boolean.type.d.ts +0 -2
  499. package/types/document/data-type/builtin/date.type.d.ts +0 -2
  500. package/types/document/data-type/builtin/datetime.type.d.ts +0 -2
  501. package/types/document/data-type/builtin/email.type.d.ts +0 -2
  502. package/types/document/data-type/builtin/index.d.ts +0 -18
  503. package/types/document/data-type/builtin/integer.type.d.ts +0 -2
  504. package/types/document/data-type/builtin/null.type.d.ts +0 -2
  505. package/types/document/data-type/builtin/number.type.d.ts +0 -2
  506. package/types/document/data-type/builtin/object-id.type.d.ts +0 -2
  507. package/types/document/data-type/builtin/object.type.d.ts +0 -2
  508. package/types/document/data-type/builtin/string.type.d.ts +0 -2
  509. package/types/document/data-type/builtin/time.type.d.ts +0 -2
  510. package/types/document/data-type/builtin/url.type.d.ts +0 -2
  511. package/types/document/data-type/builtin/uuid.type.d.ts +0 -2
  512. package/types/document/data-type/complex-type-class.d.ts +0 -36
  513. package/types/document/data-type/complex-type.decorator.d.ts +0 -2
  514. package/types/document/data-type/enum-type-class.d.ts +0 -18
  515. package/types/document/data-type/field-class.d.ts +0 -31
  516. package/types/document/data-type/field-decorator.d.ts +0 -5
  517. package/types/document/data-type/field.d.ts +0 -46
  518. package/types/document/data-type/mapped-type-class.d.ts +0 -18
  519. package/types/document/data-type/mixin-type-class.d.ts +0 -12
  520. package/types/document/data-type/simple-type-class.d.ts +0 -19
  521. package/types/document/data-type/simple-type.decorator.d.ts +0 -2
  522. package/types/document/document-base.d.ts +0 -10
  523. package/types/document/factory/api-document-factory.d.ts +0 -49
  524. package/types/document/factory/type-document-factory.d.ts +0 -57
  525. package/types/document/interfaces/collection.interface.d.ts +0 -10
  526. package/types/document/interfaces/singleton.interface.d.ts +0 -7
  527. package/types/document/interfaces/storage.interface.d.ts +0 -8
  528. package/types/document/resource/action-decorator.d.ts +0 -8
  529. package/types/document/resource/action.d.ts +0 -30
  530. package/types/document/resource/collection-class.d.ts +0 -20
  531. package/types/document/resource/collection-decorator.d.ts +0 -204
  532. package/types/document/resource/collection.d.ts +0 -62
  533. package/types/document/resource/container-class.d.ts +0 -66
  534. package/types/document/resource/container-decorator.d.ts +0 -37
  535. package/types/document/resource/container.d.ts +0 -27
  536. package/types/document/resource/crud-operation-decorator.d.ts +0 -6
  537. package/types/document/resource/crud-operation.d.ts +0 -32
  538. package/types/document/resource/crud-resource.d.ts +0 -16
  539. package/types/document/resource/endpoint.d.ts +0 -32
  540. package/types/document/resource/enums/metadata-mode.enum.d.ts +0 -5
  541. package/types/document/resource/parameter.d.ts +0 -35
  542. package/types/document/resource/resource-decorator.d.ts +0 -40
  543. package/types/document/resource/resource.d.ts +0 -35
  544. package/types/document/resource/singleton-class.d.ts +0 -21
  545. package/types/document/resource/singleton-decorator.d.ts +0 -131
  546. package/types/document/resource/singleton.d.ts +0 -49
  547. package/types/document/resource/storage-class.d.ts +0 -17
  548. package/types/document/resource/storage-decorator.d.ts +0 -100
  549. package/types/document/resource/storage.d.ts +0 -39
  550. package/types/document/type-document.d.ts +0 -79
  551. package/types/exception/resource-errors/resource-conflict.error.d.ts +0 -5
  552. package/types/exception/wrap-exception.d.ts +0 -2
  553. package/types/helpers/path-to-object-tree.d.ts +0 -4
  554. package/types/schema/document/api-document.interface.d.ts +0 -11
  555. package/types/schema/document/document-base.interface.d.ts +0 -24
  556. package/types/schema/document/type-document.interface.d.ts +0 -6
  557. package/types/schema/opra-schema.ns.d.ts +0 -19
  558. package/types/schema/resource/action.interface.d.ts +0 -6
  559. package/types/schema/resource/collection.interface.d.ts +0 -55
  560. package/types/schema/resource/container.interface.d.ts +0 -10
  561. package/types/schema/resource/endpoint.interface.d.ts +0 -13
  562. package/types/schema/resource/resource.interface.d.ts +0 -15
  563. package/types/schema/resource/singleton.interface.d.ts +0 -25
  564. package/types/schema/resource/storage.interface.d.ts +0 -61
  565. /package/cjs/{document/interfaces/collection.interface.js → schema/data-type-container.interface.js} +0 -0
  566. /package/cjs/{document/interfaces/singleton.interface.js → schema/document.interface.js} +0 -0
  567. /package/cjs/{document/interfaces/storage.interface.js → schema/http/http-media-type.interface.js} +0 -0
  568. /package/cjs/schema/{document/api-document.interface.js → http/http-multipart-field.interface.js} +0 -0
  569. /package/cjs/schema/{document/document-base.interface.js → http/http-operation-response.interface.js} +0 -0
  570. /package/cjs/schema/{document/type-document.interface.js → http/http-parameter.interface.js} +0 -0
  571. /package/cjs/schema/{resource/action.interface.js → http/http-request-body.interface.js} +0 -0
  572. /package/cjs/schema/{resource/endpoint.interface.js → http/http-status-range.interface.js} +0 -0
  573. /package/cjs/schema/{resource/resource.interface.js → types.js} +0 -0
  574. /package/esm/{document/interfaces/collection.interface.js → schema/data-type-container.interface.js} +0 -0
  575. /package/esm/{document/interfaces/singleton.interface.js → schema/document.interface.js} +0 -0
  576. /package/esm/{document/interfaces/storage.interface.js → schema/http/http-media-type.interface.js} +0 -0
  577. /package/esm/schema/{document/api-document.interface.js → http/http-multipart-field.interface.js} +0 -0
  578. /package/esm/schema/{document/document-base.interface.js → http/http-operation-response.interface.js} +0 -0
  579. /package/esm/schema/{document/type-document.interface.js → http/http-parameter.interface.js} +0 -0
  580. /package/esm/schema/{resource/action.interface.js → http/http-request-body.interface.js} +0 -0
  581. /package/esm/schema/{resource/endpoint.interface.js → http/http-status-range.interface.js} +0 -0
  582. /package/esm/schema/{resource/resource.interface.js → types.js} +0 -0
@@ -0,0 +1,8 @@
1
+ import { Validator } from 'valgen';
2
+ import { DECODER, ENCODER } from '../../constants.js';
3
+ export declare class UuidType {
4
+ constructor(attributes?: Partial<UuidType>);
5
+ version?: 1 | 2 | 3 | 4 | 5;
6
+ protected [DECODER](properties?: Partial<this>): Validator;
7
+ protected [ENCODER](properties?: Partial<this>): Validator;
8
+ }
@@ -1,62 +1,73 @@
1
1
  import 'reflect-metadata';
2
- import { Class, StrictOmit, Type } from 'ts-gems';
2
+ import { Combine, Type } from 'ts-gems';
3
+ import type { Field } from '../../schema/data-type/field.interface';
3
4
  import { OpraSchema } from '../../schema/index.js';
4
- import type { ApiDocument } from '../api-document.js';
5
- import { ComplexType } from './complex-type.js';
6
- import { MappedTypeClass } from './mapped-type-class.js';
5
+ import { DocumentElement } from '../common/document-element.js';
6
+ import type { ComplexType } from './complex-type.js';
7
+ import { ComplexTypeBase } from './complex-type-base.js';
8
+ import type { DataType } from './data-type.js';
9
+ import type { MixinType } from './mixin-type';
7
10
  /**
8
- *
9
- */
10
- export declare function PickType<T extends any[], I1, S1, K extends keyof I1>(classRef: Class<T, I1, S1>, keys: readonly K[]): Class<T, Pick<I1, K>> & Omit<Pick<S1, keyof typeof classRef>, 'prototype' | 'constructor'>;
11
- /**
12
- *
13
- */
14
- export declare function OmitType<T extends any[], I1, S1, K extends keyof I1>(classRef: Class<T, I1, S1>, keys: readonly K[]): Class<T, Omit<I1, K>> & Omit<Pick<S1, keyof typeof classRef>, 'prototype' | 'constructor'>;
15
- /**
16
- *
11
+ * @namespace MappedType
17
12
  */
18
- export declare function PartialType<T extends any[], I1, S1, K extends keyof I1>(classRef: Class<T, I1, S1>, keys?: readonly K[]): Class<T, Omit<I1, K>> & Omit<Pick<S1, keyof typeof classRef>, 'prototype' | 'constructor'>;
13
+ export declare namespace MappedType {
14
+ interface Metadata extends Combine<{
15
+ kind: OpraSchema.MappedType.Kind;
16
+ base: Type | string;
17
+ }, DataType.Metadata, Pick<ComplexType.Metadata, 'additionalFields'>, OpraSchema.MappedType> {
18
+ }
19
+ interface Options<T, K = keyof T> {
20
+ pick?: readonly K[];
21
+ omit?: readonly K[];
22
+ partial?: readonly K[] | boolean;
23
+ }
24
+ interface InitArguments extends Combine<{
25
+ kind: OpraSchema.MappedType.Kind;
26
+ base: ComplexType | MappedType | MixinType;
27
+ ctor?: Type;
28
+ }, DataType.InitArguments, MappedType.Metadata> {
29
+ }
30
+ }
19
31
  /**
20
- * Type definition of MappedType constructor type
21
- * @type MappedTypeConstructor
32
+ * Type definition of class constructor for MappedType
22
33
  */
23
- export interface MappedTypeConstructor {
24
- prototype: MappedType;
25
- new (document: ApiDocument, init: MappedType.InitArguments): MappedType;
26
- <T extends any[], I1, S1, PickKey extends keyof I1, OmitKey extends keyof I1, PartialKey extends keyof I1>(resource: Class<T, I1, S1>, options: {
27
- pickKeys?: readonly PickKey[];
28
- omitKeys?: readonly OmitKey[];
29
- partialKeys?: readonly PartialKey[];
30
- }): Class<T, Omit<Pick<I1, PickKey>, OmitKey>>;
34
+ export interface MappedTypeStatic {
35
+ /**
36
+ * Class constructor of MappedType
37
+ *
38
+ * @param owner
39
+ * @param args
40
+ * @constructor
41
+ */
42
+ new (owner: DocumentElement, args: MappedType.InitArguments): MappedType;
31
43
  _applyMixin(targetType: Type, sourceType: Type, options: MappedType.Options<any> & {
32
44
  isInheritedPredicate: (fieldName: string) => boolean;
33
45
  }): void;
46
+ prototype: MappedType;
34
47
  }
35
- /**
36
- * @class MappedType
37
- */
38
- export declare const MappedType: MappedTypeConstructor;
39
48
  /**
40
49
  * Type definition of MappedType prototype
41
- * @type MappedType
50
+ * @interface MappedType
42
51
  */
43
52
  export interface MappedType extends MappedTypeClass {
44
53
  }
45
54
  /**
46
- * @namespace MappedType
55
+ * MappedType constructor
47
56
  */
48
- export declare namespace MappedType {
49
- interface InitArguments extends ComplexType.InitArguments, Pick<OpraSchema.MappedType, 'pick' | 'omit' | 'partial'> {
50
- }
51
- interface Metadata extends StrictOmit<ComplexType.Metadata, 'kind' | 'base' | 'name'>, Pick<OpraSchema.MappedType, 'pick' | 'omit' | 'partial'> {
52
- kind: OpraSchema.MappedType.Kind;
53
- base: Type;
54
- }
55
- interface OwnProperties extends ComplexType.OwnProperties, Pick<OpraSchema.MappedType, 'pick' | 'omit' | 'partial'> {
56
- }
57
- interface Options<T, K = keyof T> {
58
- pick?: readonly K[];
59
- omit?: readonly K[];
60
- partial?: readonly K[] | boolean;
61
- }
57
+ export declare const MappedType: MappedTypeStatic;
58
+ /**
59
+ *
60
+ * @class MappedType
61
+ */
62
+ declare class MappedTypeClass extends ComplexTypeBase {
63
+ readonly kind: OpraSchema.MappedType.Kind;
64
+ readonly base: ComplexType | MappedType | MixinType;
65
+ readonly ctor?: Type;
66
+ readonly omit?: Field.Name[];
67
+ readonly pick?: Field.Name[];
68
+ readonly partial?: Field.Name[] | boolean;
69
+ readonly required?: Field.Name[] | boolean;
70
+ extendsFrom(baseType: DataType): boolean;
71
+ toJSON(): OpraSchema.MappedType;
62
72
  }
73
+ export {};
@@ -1,43 +1,82 @@
1
1
  import 'reflect-metadata';
2
- import { Class, StrictOmit, Type } from 'ts-gems';
2
+ import { Class, Combine, Type } from 'ts-gems';
3
3
  import { OpraSchema } from '../../schema/index.js';
4
- import type { ApiDocument } from '../api-document.js';
5
- import { ComplexType } from './complex-type.js';
6
- import { MappedType } from './mapped-type.js';
7
- import { MixinTypeClass } from './mixin-type-class.js';
4
+ import type { DocumentElement } from '../common/document-element.js';
5
+ import type { ComplexType } from './complex-type.js';
6
+ import { ComplexTypeBase } from './complex-type-base.js';
7
+ import type { DataType } from './data-type.js';
8
+ import type { MappedType } from './mapped-type.js';
8
9
  /**
9
- * Type definition of MixinType constructor type
10
- * @type MixinTypeConstructor
10
+ * @namespace MixinType
11
11
  */
12
- export interface MixinTypeConstructor {
12
+ export declare namespace MixinType {
13
+ interface Metadata extends Combine<{
14
+ kind: OpraSchema.MixinType.Kind;
15
+ name?: string;
16
+ types: Type[];
17
+ }, DataType.Metadata, Pick<ComplexType.Metadata, 'additionalFields'>, OpraSchema.MixinType> {
18
+ }
19
+ interface InitArguments extends Combine<{
20
+ kind: OpraSchema.MixinType.Kind;
21
+ types: (ComplexType | MappedType | MixinType)[];
22
+ ctor?: Type;
23
+ }, DataType.InitArguments, MixinType.Metadata> {
24
+ }
25
+ }
26
+ /**
27
+ * Type definition for MixinType
28
+ * @class MixinType
29
+ */
30
+ export interface MixinTypeStatic {
31
+ /**
32
+ * Class constructor of MixinType
33
+ *
34
+ * @param owner
35
+ * @param args
36
+ * @constructor
37
+ */
38
+ new (owner: DocumentElement, args: MixinType.InitArguments): MixinType;
39
+ /**
40
+ * Create a new mixin type from given two types
41
+ * @param c1
42
+ * @param c2
43
+ * @param options
44
+ */ <A1 extends any[], I1, S1, A2 extends any[], I2, S2>(c1: Class<A1, I1, S1>, c2: Class<A2, I2, S2>, options?: DataType.Options): Class<any[], I1 & I2, S1 & S2>;
45
+ /**
46
+ * Helper method that mixes given types
47
+ * @param c1
48
+ * @param c2
49
+ * @param c3
50
+ * @param options
51
+ */ <A1 extends any[], I1, S1, A2 extends any[], I2, S2, A3 extends any[], I3, S3>(c1: Class<A1, I1, S1>, c2: Class<A2, I2, S2>, c3?: Class<A3, I3, S3>, options?: DataType.Options): Class<any[], I1 & I2 & I3, S1 & S2 & S3>;
52
+ /**
53
+ * Helper method that mixes given types
54
+ * @param c1
55
+ * @param c2
56
+ * @param c3
57
+ * @param c4
58
+ * @param options
59
+ */ <A1 extends any[], I1, S1, A2 extends any[], I2, S2, A3 extends any[], I3, S3, A4 extends any[], I4, S4>(c1: Class<A1, I1, S1>, c2: Class<A2, I2, S2>, c3?: Class<A3, I3, S3>, c4?: Class<A4, I4, S4>, options?: DataType.Options): Class<any[], I1 & I2 & I3 & I4, S1 & S2 & S3 & S4>;
13
60
  prototype: MixinType;
14
- new (document: ApiDocument, init: MixinType.InitArguments): MixinType;
15
- <A1 extends any[], I1, S1, A2 extends any[], I2, S2, A3 extends any[], I3, S3, A4 extends any[], I4, S4>(c1: Class<A1, I1, S1>, c2: Class<A2, I2, S2>, c3?: Class<A3, I3, S3>, c4?: Class<A4, I4, S4>): Class<any[], I1 & I2 & I3 & I4, S1 & S2 & S3 & S4>;
16
- _applyMixin(target: Type, ...sources: [Type]): void;
17
61
  }
18
62
  /**
19
63
  * Type definition of MixinType prototype
20
- * @type MixinType
64
+ * @interface
21
65
  */
22
66
  export interface MixinType extends MixinTypeClass {
23
67
  }
24
68
  /**
25
69
  * @class MixinType
26
70
  */
27
- export declare const MixinType: MixinTypeConstructor;
71
+ export declare const MixinType: MixinTypeStatic;
28
72
  /**
29
- * @namespace MixinType
73
+ *
74
+ * @class MixinType
30
75
  */
31
- export declare namespace MixinType {
32
- interface InitArguments extends ComplexType.InitArguments {
33
- types: (ComplexType | MixinType | MappedType)[];
34
- }
35
- interface Metadata extends StrictOmit<ComplexType.Metadata, 'kind' | 'base' | 'name'> {
36
- kind: OpraSchema.MixinType.Kind;
37
- base?: Type;
38
- types: Type[];
39
- }
40
- interface OwnProperties extends ComplexType.OwnProperties {
41
- types: (ComplexType | MixinType | MappedType)[];
42
- }
76
+ declare class MixinTypeClass extends ComplexTypeBase {
77
+ readonly kind: OpraSchema.MixinType.Kind;
78
+ readonly types: (ComplexType | MixinType | MappedType)[];
79
+ extendsFrom(baseType: DataType): boolean;
80
+ toJSON(): OpraSchema.MixinType;
43
81
  }
82
+ export {};
@@ -0,0 +1,15 @@
1
+ import { Class, Type } from 'ts-gems';
2
+ import type { DataType } from './data-type.js';
3
+ /**
4
+ * Create a new MappedType that omits given fields from base type
5
+ * @param baseType
6
+ * @param keys
7
+ * @param options
8
+ */
9
+ export declare function OmitType(baseType: string | Type, keys: string[], options?: DataType.Options): Type;
10
+ /**
11
+ * Create a new MappedType that omits given fields from base type
12
+ * @param baseType
13
+ * @param keys
14
+ * @param options
15
+ */ export declare function OmitType<Args extends any[], Instance, Static, K extends keyof Instance>(baseType: Class<Args, Instance, Static>, keys: readonly K[], options?: DataType.Options): Class<Args, Omit<Instance, K>> & Omit<Pick<Static, keyof typeof baseType>, 'prototype' | 'constructor'>;
@@ -0,0 +1,28 @@
1
+ import { Class, PartialSome, Type } from 'ts-gems';
2
+ import type { DataType } from './data-type.js';
3
+ /**
4
+ * Create a new MappedType that marks given or all fields as optional
5
+ * @param baseType
6
+ * @param keys
7
+ * @param options
8
+ */
9
+ export declare function PartialType(baseType: string | Type, keys: string[], options?: DataType.Options): Type;
10
+ /**
11
+ * Create a new MappedType that marks given or all fields as optional
12
+ * @param baseType
13
+ * @param options
14
+ */
15
+ export declare function PartialType(baseType: string | Type, options?: DataType.Options): Type;
16
+ /**
17
+ * Create a new MappedType that marks given fields as optional
18
+ * @param baseType
19
+ * @param keys
20
+ * @param options
21
+ */
22
+ export declare function PartialType<Args extends any[], Instance, Static, K extends keyof Instance>(baseType: Class<Args, Instance, Static>, keys: readonly K[], options?: DataType.Options): Class<Args, PartialSome<Instance, K>> & Omit<Pick<Static, keyof typeof baseType>, 'prototype' | 'constructor'>;
23
+ /**
24
+ * Create a new MappedType that marks all fields as optional
25
+ * @param baseType
26
+ * @param options
27
+ */
28
+ export declare function PartialType<Args extends any[], Instance, Static>(baseType: Class<Args, Instance, Static>, options?: DataType.Options): Class<Args, Partial<Instance>> & Omit<Pick<Static, keyof typeof baseType>, 'prototype' | 'constructor'>;
@@ -0,0 +1,16 @@
1
+ import { Class, Type } from 'ts-gems';
2
+ import type { DataType } from './data-type.js';
3
+ /**
4
+ * Create a new MappedType that picks given fields from base type
5
+ * @param baseType
6
+ * @param keys
7
+ * @param options
8
+ */
9
+ export declare function PickType(baseType: string | Type, keys: string[], options?: DataType.Options): Type;
10
+ /**
11
+ * Create a new MappedType that picks given fields from base type
12
+ * @param baseType
13
+ * @param keys
14
+ * @param options
15
+ */
16
+ export declare function PickType<Args extends any[], Instance, Static, K extends keyof Instance>(baseType: Class<Args, Instance, Static>, keys: readonly K[], options?: DataType.Options): Class<Args, Pick<Instance, K>> & Omit<Pick<Static, keyof typeof baseType>, 'prototype' | 'constructor'>;
@@ -0,0 +1,7 @@
1
+ import { Validator } from 'valgen';
2
+ import { DECODER, ENCODER } from '../../constants.js';
3
+ export declare class AnyType {
4
+ constructor(properties?: Partial<AnyType>);
5
+ protected [DECODER](): Validator;
6
+ protected [ENCODER](): Validator;
7
+ }
@@ -0,0 +1,8 @@
1
+ import { Validator } from 'valgen';
2
+ import { DECODER, ENCODER } from '../../constants.js';
3
+ import { NumberType } from './number.type.js';
4
+ export declare class BigintType extends NumberType {
5
+ constructor(attributes?: Partial<BigintType>);
6
+ protected [DECODER](properties: Partial<this>): Validator;
7
+ protected [ENCODER](properties: Partial<this>): Validator;
8
+ }
@@ -0,0 +1,7 @@
1
+ import { Validator } from 'valgen';
2
+ import { DECODER, ENCODER } from '../../constants.js';
3
+ export declare class BooleanType {
4
+ constructor(properties?: Partial<BooleanType>);
5
+ protected [DECODER](): Validator;
6
+ protected [ENCODER](): Validator;
7
+ }
@@ -0,0 +1,8 @@
1
+ export * from './any.type.js';
2
+ export * from './bigint.type.js';
3
+ export * from './boolean.type.js';
4
+ export * from './integer.type.js';
5
+ export * from './null.type.js';
6
+ export * from './number.type.js';
7
+ export * from './object.type.js';
8
+ export * from './string.type.js';
@@ -0,0 +1,8 @@
1
+ import { Validator } from 'valgen';
2
+ import { DECODER, ENCODER } from '../../constants.js';
3
+ import { NumberType } from './number.type.js';
4
+ export declare class IntegerType extends NumberType {
5
+ constructor(properties?: Partial<IntegerType>);
6
+ protected [DECODER](properties: Partial<this>): Validator;
7
+ protected [ENCODER](properties: Partial<this>): Validator;
8
+ }
@@ -0,0 +1,7 @@
1
+ import { Validator } from 'valgen';
2
+ import { DECODER, ENCODER } from '../../constants.js';
3
+ export declare class NullType {
4
+ constructor(properties?: Partial<NullType>);
5
+ protected [DECODER](): Validator;
6
+ protected [ENCODER](): Validator;
7
+ }
@@ -0,0 +1,9 @@
1
+ import { Validator } from 'valgen';
2
+ import { DECODER, ENCODER } from '../../constants.js';
3
+ export declare class NumberType {
4
+ constructor(properties?: Partial<NumberType>);
5
+ minValue?: number;
6
+ maxValue?: number;
7
+ protected [DECODER](properties: Partial<this>): Validator;
8
+ protected [ENCODER](properties: Partial<this>): Validator;
9
+ }
@@ -0,0 +1,3 @@
1
+ export declare class ObjectType {
2
+ constructor(properties?: Partial<ObjectType>);
3
+ }
@@ -0,0 +1,11 @@
1
+ import { Validator } from 'valgen';
2
+ import { DECODER, ENCODER } from '../../constants.js';
3
+ export declare class StringType {
4
+ constructor(properties?: Partial<StringType>);
5
+ pattern?: string | RegExp;
6
+ patternName?: string;
7
+ minLength?: number;
8
+ maxLength?: number;
9
+ protected [DECODER](properties: Partial<this>): Validator;
10
+ protected [ENCODER](properties: Partial<this>): Validator;
11
+ }
@@ -0,0 +1,22 @@
1
+ import { Class, RequiredSome, Type } from 'ts-gems';
2
+ import type { DataType } from './data-type.js';
3
+ /**
4
+ * Create a new MappedType that marks given or all fields as required
5
+ * @param baseType
6
+ * @param keys
7
+ * @param options
8
+ */
9
+ export declare function RequiredType(baseType: string | Type, keys?: string[] | true, options?: DataType.Options): Type;
10
+ /**
11
+ * Create a new MappedType that marks given fields as baseType
12
+ * @param baseType
13
+ * @param keys
14
+ * @param options
15
+ */
16
+ export declare function RequiredType<Args extends any[], Instance, Static, K extends keyof Instance>(baseType: Class<Args, Instance, Static>, keys?: readonly K[], options?: DataType.Options): Class<Args, RequiredSome<Instance, K>> & Omit<Pick<Static, keyof typeof baseType>, 'prototype' | 'constructor'>;
17
+ /**
18
+ * Create a new MappedType that marks all fields as baseType
19
+ * @param baseType
20
+ * @param options
21
+ */
22
+ export declare function RequiredType<Args extends any[], Instance, Static>(baseType: Class<Args, Instance, Static>, options?: DataType.Options): Class<Args, Required<Instance>> & Omit<Pick<Static, keyof typeof baseType>, 'prototype' | 'constructor'>;
@@ -1,36 +1,75 @@
1
1
  import 'reflect-metadata';
2
+ import { Combine, Type } from 'ts-gems';
2
3
  import { Validator } from 'valgen';
3
- import type { ApiDocument } from '../api-document.js';
4
+ import { OpraSchema } from '../../schema/index.js';
5
+ import type { DocumentElement } from '../common/document-element';
6
+ import { DocumentInitContext } from '../common/document-init-context.js';
7
+ import { AttributeDecoratorFactory, SimpleTypeDecoratorFactory } from '../decorators/simple-type.decorator.js';
4
8
  import { DataType } from './data-type.js';
5
- import { SimpleTypeClass } from './simple-type-class.js';
6
- export interface SimpleTypeConstructor {
7
- new (document: ApiDocument, init: SimpleType.InitArguments): SimpleType;
8
- (options?: SimpleType.DecoratorOptions): (target: any) => any;
9
- prototype: SimpleType;
10
- }
11
- export interface SimpleType extends SimpleTypeClass {
12
- }
13
- /**
14
- * @class SimpleType
15
- */
16
- export declare const SimpleType: SimpleTypeConstructor;
17
9
  /**
18
10
  * @namespace SimpleType
19
11
  */
20
12
  export declare namespace SimpleType {
21
- interface InitArguments extends DataType.InitArguments {
22
- base?: SimpleType;
23
- decoder?: Validator;
24
- encoder?: Validator;
13
+ interface Metadata extends Combine<{
14
+ kind: OpraSchema.SimpleType.Kind;
15
+ }, DataType.Metadata, OpraSchema.SimpleType> {
25
16
  }
26
- interface DecoratorOptions extends DataType.DecoratorOptions {
27
- decoder?: Validator;
28
- encoder?: Validator;
17
+ interface Options extends DataType.Options {
29
18
  }
30
- interface Metadata extends DataType.Metadata {
31
- decoder?: Validator;
32
- encoder?: Validator;
19
+ interface InitArguments extends Combine<{
20
+ kind: OpraSchema.SimpleType.Kind;
21
+ base?: SimpleType;
22
+ ctor?: Type;
23
+ properties?: object;
24
+ generateDecoder?: SimpleType.ValidatorGenerator;
25
+ generateEncoder?: SimpleType.ValidatorGenerator;
26
+ }, DataType.InitArguments, SimpleType.Metadata> {
33
27
  }
34
- interface OwnProperties extends DataType.OwnProperties {
28
+ interface Attribute extends OpraSchema.Attribute {
35
29
  }
30
+ type ValidatorGenerator = (properties: Record<string, any>, element: DocumentElement) => Validator;
31
+ }
32
+ /**
33
+ * Type definition for MixinType
34
+ * @class SimpleType
35
+ */
36
+ export interface SimpleTypeStatic extends SimpleTypeDecoratorFactory {
37
+ /**
38
+ * Class constructor of SimpleType
39
+ *
40
+ * @param owner
41
+ * @param initArgs
42
+ * @param context
43
+ * @constructor
44
+ */
45
+ new (owner: DocumentElement, initArgs: SimpleType.InitArguments, context?: DocumentInitContext): SimpleType;
46
+ prototype: SimpleType;
47
+ Attribute: AttributeDecoratorFactory;
48
+ }
49
+ /**
50
+ * Type definition of SimpleType prototype
51
+ * @interface SimpleType
52
+ */
53
+ export interface SimpleType extends SimpleTypeClass {
54
+ }
55
+ /**
56
+ * SimpleType constructor
57
+ */
58
+ export declare const SimpleType: SimpleTypeStatic;
59
+ /**
60
+ *
61
+ * @class SimpleType
62
+ */
63
+ declare abstract class SimpleTypeClass extends DataType {
64
+ readonly kind: OpraSchema.SimpleType.Kind;
65
+ readonly base?: SimpleType;
66
+ readonly attributes: Record<string, SimpleType.Attribute>;
67
+ readonly ownAttributes: Record<string, SimpleType.Attribute>;
68
+ protected _generateDecoder?: SimpleType.ValidatorGenerator;
69
+ protected _generateEncoder?: SimpleType.ValidatorGenerator;
70
+ properties?: any;
71
+ extendsFrom(baseType: DataType): boolean;
72
+ generateCodec<T extends Record<string, any> | object = object>(codec: 'encode' | 'decode', options?: DataType.GenerateCodecOptions | null, properties?: Partial<T>): Validator;
73
+ toJSON(): OpraSchema.SimpleType;
36
74
  }
75
+ export {};
@@ -0,0 +1,3 @@
1
+ import { Type } from 'ts-gems';
2
+ import type { DataType } from '../data-type';
3
+ export declare function createMappedClass(source: string | Type, config: any, options?: DataType.Options): any;
@@ -0,0 +1 @@
1
+ export declare function getIsInheritedPredicateFn(pick?: string[], omit?: string[]): (propertyName: string) => boolean;
@@ -0,0 +1,5 @@
1
+ import type { ApiField } from '../data-type/api-field';
2
+ export interface ApiFieldDecorator {
3
+ (options?: ApiField.Options): PropertyDecorator;
4
+ }
5
+ export declare function ApiFieldDecorator(options?: ApiField.Options): PropertyDecorator;
@@ -0,0 +1,2 @@
1
+ import type { ComplexType } from '../data-type/complex-type';
2
+ export declare function ComplexTypeDecorator(options?: ComplexType.Options): (target: Function) => void;
@@ -0,0 +1,14 @@
1
+ import { StrictOmit, Type, TypeThunkAsync } from 'ts-gems';
2
+ import type { HttpController } from '../http/http-controller';
3
+ import type { HttpParameter } from '../http/http-parameter';
4
+ export interface HttpControllerDecorator<T extends HttpControllerDecorator<any> = HttpControllerDecorator<any>> extends ClassDecorator {
5
+ Cookie(name: string | RegExp, optionsOrType?: StrictOmit<HttpParameter.Options, 'location'> | string | Type | false): T;
6
+ Header(name: string | RegExp, optionsOrType?: StrictOmit<HttpParameter.Options, 'location'> | string | TypeThunkAsync | false): T;
7
+ QueryParam(name: string | RegExp, optionsOrType?: StrictOmit<HttpParameter.Options, 'location'> | string | TypeThunkAsync | false): T;
8
+ PathParam(name: string | RegExp, optionsOrType?: StrictOmit<HttpParameter.Options, 'location'> | string | TypeThunkAsync | false): T;
9
+ UseType(...type: TypeThunkAsync[]): T;
10
+ }
11
+ export interface HttpControllerDecoratorFactory {
12
+ <T extends HttpController.Options>(options?: T): HttpControllerDecorator;
13
+ }
14
+ export declare function HttpControllerDecoratorFactory<O extends HttpController.Options>(options?: O): HttpControllerDecorator;
@@ -0,0 +1,100 @@
1
+ import { StrictOmit, Type, TypeThunkAsync } from 'ts-gems';
2
+ import { OpraFilter } from '../../filter/index.js';
3
+ import { OpraSchema } from '../../schema/index.js';
4
+ import type { HttpParameter } from '../http/http-parameter.js';
5
+ import { HttpRequestBody } from '../http/http-request-body.js';
6
+ import { HttpOperationDecorator } from './http-operation.decorator.js';
7
+ /** Augmentation **/
8
+ declare module '../http/http-operation' {
9
+ /**
10
+ * HttpOperationConstructor
11
+ */
12
+ interface HttpOperationStatic {
13
+ Entity: HttpOperationEntity;
14
+ }
15
+ interface HttpOperationEntity {
16
+ Create(type: Type | string, options?: StrictOmit<HttpOperation.Entity.CreateArgs, 'type'>): HttpOperation.Entity.CreateDecorator;
17
+ Create(args: HttpOperation.Entity.CreateArgs): HttpOperation.Entity.CreateDecorator;
18
+ Delete(type: Type | string, options?: StrictOmit<HttpOperation.Entity.DeleteArgs, 'type'>): HttpOperation.Entity.DeleteDecorator;
19
+ Delete(args: HttpOperation.Entity.DeleteArgs): HttpOperation.Entity.DeleteDecorator;
20
+ DeleteMany(type: Type | string, options?: StrictOmit<HttpOperation.Entity.DeleteManyArgs, 'type'>): HttpOperation.Entity.DeleteManyDecorator;
21
+ DeleteMany(args: HttpOperation.Entity.DeleteManyArgs): HttpOperation.Entity.DeleteManyDecorator;
22
+ FindMany(type: Type | string, options?: StrictOmit<HttpOperation.Entity.FindManyArgs, 'type'>): HttpOperation.Entity.FindManyDecorator;
23
+ FindMany(args: HttpOperation.Entity.FindManyArgs): HttpOperation.Entity.FindManyDecorator;
24
+ Get(type: Type | string, options?: StrictOmit<HttpOperation.Entity.GetArgs, 'type'>): HttpOperation.Entity.GetDecorator;
25
+ Get(args: HttpOperation.Entity.GetArgs): HttpOperation.Entity.GetDecorator;
26
+ Update(type: Type | string, options?: StrictOmit<HttpOperation.Entity.UpdateArgs, 'type'>): HttpOperation.Entity.UpdateDecorator;
27
+ Update(args: HttpOperation.Entity.UpdateArgs): HttpOperation.Entity.UpdateDecorator;
28
+ UpdateMany(type: Type | string, options?: StrictOmit<HttpOperation.Entity.UpdateManyArgs, 'type'>): HttpOperation.Entity.UpdateManyDecorator;
29
+ UpdateMany(args: HttpOperation.Entity.UpdateManyArgs): HttpOperation.Entity.UpdateManyDecorator;
30
+ }
31
+ namespace HttpOperation {
32
+ namespace Entity {
33
+ /** Create */
34
+ interface CreateDecorator extends HttpOperationDecorator {
35
+ }
36
+ interface CreateArgs extends StrictOmit<HttpOperation.Options, 'method' | 'requestBody'> {
37
+ type: Type | string;
38
+ requestBody?: Pick<HttpRequestBody.Options, 'description' | 'maxContentSize'> & {
39
+ type?: Type | string;
40
+ immediateFetch?: boolean;
41
+ };
42
+ }
43
+ /** Delete */
44
+ interface DeleteDecorator extends HttpOperationDecorator {
45
+ KeyParam(name: string, optionsOrType?: StrictOmit<HttpParameter.Options, 'location'> | string | TypeThunkAsync): this;
46
+ }
47
+ interface DeleteArgs extends StrictOmit<HttpOperation.Options, 'method' | 'requestBody'> {
48
+ type: Type | string;
49
+ }
50
+ /** DeleteMany */
51
+ interface DeleteManyDecorator extends HttpOperationDecorator {
52
+ Filter(field: OpraSchema.Field.QualifiedName, operators?: OpraFilter.ComparisonOperator[] | string, notes?: string): this;
53
+ }
54
+ interface DeleteManyArgs extends StrictOmit<HttpOperation.Options, 'method' | 'requestBody'> {
55
+ type: Type | string;
56
+ }
57
+ /** FindMany */
58
+ interface FindManyDecorator extends HttpOperationDecorator {
59
+ SortFields(...fields: OpraSchema.Field.QualifiedName[]): FindManyDecorator;
60
+ DefaultSort(...fields: OpraSchema.Field.QualifiedName[]): FindManyDecorator;
61
+ Filter(field: OpraSchema.Field.QualifiedName, operators?: OpraFilter.ComparisonOperator[] | string, notes?: string): this;
62
+ }
63
+ interface FindManyArgs extends StrictOmit<HttpOperation.Options, 'method' | 'requestBody'> {
64
+ type: Type | string;
65
+ defaultLimit?: number;
66
+ maxLimit?: number;
67
+ }
68
+ /** Get */
69
+ interface GetDecorator extends HttpOperationDecorator {
70
+ KeyParam(name: string, optionsOrType?: StrictOmit<HttpParameter.Options, 'location'> | string | TypeThunkAsync): this;
71
+ }
72
+ interface GetArgs extends StrictOmit<HttpOperation.Options, 'method' | 'requestBody'> {
73
+ type: Type | string;
74
+ }
75
+ /** Update */
76
+ interface UpdateDecorator extends HttpOperationDecorator {
77
+ KeyParam(name: string, optionsOrType?: StrictOmit<HttpParameter.Options, 'location'> | string | TypeThunkAsync): this;
78
+ Filter(field: OpraSchema.Field.QualifiedName, operators?: OpraFilter.ComparisonOperator[] | string, notes?: string): this;
79
+ }
80
+ interface UpdateArgs extends StrictOmit<HttpOperation.Options, 'method' | 'requestBody'> {
81
+ type: Type | string;
82
+ requestBody?: Pick<HttpRequestBody.Options, 'description' | 'maxContentSize'> & {
83
+ type?: Type | string;
84
+ immediateFetch?: boolean;
85
+ };
86
+ }
87
+ /** UpdateMany */
88
+ interface UpdateManyDecorator extends HttpOperationDecorator {
89
+ Filter(field: OpraSchema.Field.QualifiedName, operators?: OpraFilter.ComparisonOperator[] | string, notes?: string): this;
90
+ }
91
+ interface UpdateManyArgs extends StrictOmit<HttpOperation.Options, 'method' | 'requestBody'> {
92
+ type: Type | string;
93
+ requestBody?: Pick<HttpRequestBody.Options, 'description' | 'maxContentSize'> & {
94
+ type?: Type | string;
95
+ immediateFetch?: boolean;
96
+ };
97
+ }
98
+ }
99
+ }
100
+ }