@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,30 @@
1
+ import { StrictOmit, Type, TypeThunkAsync } from 'ts-gems';
2
+ import { HttpMediaType } from '../http/http-media-type.js';
3
+ import { HttpMultipartField } from '../http/http-multipart-field.js';
4
+ import type { HttpOperation } from '../http/http-operation';
5
+ import type { HttpOperationResponse } from '../http/http-operation-response';
6
+ import type { HttpParameter } from '../http/http-parameter';
7
+ export interface HttpOperationDecorator {
8
+ (target: Object, propertyKey: string): void;
9
+ Cookie(name: string | RegExp, optionsOrType?: StrictOmit<HttpParameter.Options, 'location'> | string | Type): this;
10
+ Header(name: string | RegExp, optionsOrType?: StrictOmit<HttpParameter.Options, 'location'> | string | TypeThunkAsync): this;
11
+ QueryParam(name: string | RegExp, optionsOrType?: StrictOmit<HttpParameter.Options, 'location'> | string | TypeThunkAsync): this;
12
+ PathParam(name: string | RegExp, optionsOrType?: StrictOmit<HttpParameter.Options, 'location'> | string | TypeThunkAsync): this;
13
+ RequestContent(type: string | Type): this;
14
+ RequestContent(options: HttpMediaType.Options): this;
15
+ MultipartContent(options?: HttpMediaType.Options, subInit?: (content: MultipartContentScope) => void): this;
16
+ Response(status: number | string | (number | string)[], options?: HttpOperationResponse.Options): this;
17
+ UseType(...type: Type[]): this;
18
+ }
19
+ export interface MultipartContentScope {
20
+ Field(fieldName: string | RegExp, options?: StrictOmit<HttpMultipartField.Options, 'fieldName' | 'fieldType'>): MultipartContentScope;
21
+ File(fieldName: string | RegExp, options?: StrictOmit<HttpMultipartField.Options, 'fieldName' | 'fieldType'>): MultipartContentScope;
22
+ }
23
+ export interface HttpOperationDecoratorFactory {
24
+ /**
25
+ * Property decorator
26
+ * @param decoratorChain
27
+ * @param options
28
+ */ <T extends HttpOperation.Options>(decoratorChain: Function[], options?: T): HttpOperationDecorator;
29
+ }
30
+ export declare function HttpOperationDecoratorFactory(decoratorChain: Function[], options?: HttpOperation.Options & Pick<HttpOperation.Metadata, 'composition' | 'compositionOptions'>): HttpOperationDecorator;
@@ -0,0 +1,20 @@
1
+ import { OpraSchema } from '../../schema/index.js';
2
+ import type { SimpleType } from '../data-type/simple-type';
3
+ export interface SimpleTypeDecorator extends ClassDecorator {
4
+ Example(value: any, description?: string): SimpleTypeDecorator;
5
+ }
6
+ export interface SimpleTypeDecoratorFactory {
7
+ /**
8
+ * Class decorator method for SimpleType
9
+ * @param options
10
+ */
11
+ (options?: SimpleType.Options): SimpleTypeDecorator;
12
+ }
13
+ export declare function SimpleTypeDecoratorFactory(options?: SimpleType.Options): SimpleTypeDecorator;
14
+ export interface AttributeDecorator extends PropertyDecorator {
15
+ Example(options?: Partial<OpraSchema.Attribute>): SimpleTypeDecorator;
16
+ }
17
+ export interface AttributeDecoratorFactory {
18
+ (options?: Partial<OpraSchema.Attribute>): PropertyDecorator;
19
+ }
20
+ export declare function AttributeDecoratorFactory(options?: Partial<OpraSchema.Attribute>): PropertyDecorator;
@@ -0,0 +1,35 @@
1
+ import { PartialSome, StrictOmit, ThunkAsync } from 'ts-gems';
2
+ import { OpraSchema } from '../../schema/index.js';
3
+ import { ApiDocument } from '../api-document.js';
4
+ import { DocumentInitContext } from '../common/document-init-context.js';
5
+ import { DataTypeFactory } from './data-type.factory.js';
6
+ import { HttpApiFactory } from './http-api.factory.js';
7
+ export declare namespace ApiDocumentFactory {
8
+ interface InitArguments extends PartialSome<StrictOmit<OpraSchema.ApiDocument, 'references' | 'types' | 'api'>, 'spec'> {
9
+ references?: Record<string, ReferenceThunk>;
10
+ types?: DataTypeInitSources;
11
+ api?: HttpApiFactory.InitArguments;
12
+ }
13
+ type ReferenceSource = string | OpraSchema.ApiDocument | InitArguments | ApiDocument;
14
+ type ReferenceThunk = ThunkAsync<ReferenceSource>;
15
+ type DataTypeInitSources = DataTypeFactory.DataTypeSources;
16
+ }
17
+ /**
18
+ * @class ApiDocumentFactory
19
+ */
20
+ export declare class ApiDocumentFactory {
21
+ /**
22
+ * Creates ApiDocument instance from given schema object
23
+ */
24
+ static createDocument(schemaOrUrl: string | PartialSome<OpraSchema.ApiDocument, 'spec'> | ApiDocumentFactory.InitArguments, options?: Partial<Pick<DocumentInitContext, 'maxErrors' | 'showErrorDetails'>> | DocumentInitContext): Promise<ApiDocument>;
25
+ /**
26
+ * Downloads schema from the given URL and creates the document instance * @param url
27
+ */
28
+ protected initDocument(document: ApiDocument, context: DocumentInitContext, schemaOrUrl: ApiDocumentFactory.InitArguments | string): Promise<void>;
29
+ /**
30
+ *
31
+ * @param context
32
+ * @protected
33
+ */
34
+ protected createBuiltinDocument(context: DocumentInitContext): Promise<ApiDocument>;
35
+ }
@@ -0,0 +1,103 @@
1
+ import { Combine, ThunkAsync, Type } from 'ts-gems';
2
+ import { ResponsiveMap } from '../../helpers/index.js';
3
+ import { OpraSchema } from '../../schema/index.js';
4
+ import { DocumentElement } from '../common/document-element.js';
5
+ import { DocumentInitContext } from '../common/document-init-context.js';
6
+ import { ApiField } from '../data-type/api-field.js';
7
+ import { ComplexType } from '../data-type/complex-type.js';
8
+ import { DataType } from '../data-type/data-type.js';
9
+ import { EnumType } from '../data-type/enum-type.js';
10
+ import { MappedType } from '../data-type/mapped-type.js';
11
+ import { MixinType } from '../data-type/mixin-type.js';
12
+ import { SimpleType } from '../data-type/simple-type.js';
13
+ /**
14
+ *
15
+ * @namespace DataTypeFactory
16
+ */
17
+ export declare namespace DataTypeFactory {
18
+ type DataTypeSources = ThunkAsync<Type | EnumType.EnumObject | EnumType.EnumArray | object>[] | Record<string, OpraSchema.DataType>;
19
+ type DataTypeThunk = Type | EnumType.EnumObject | EnumType.EnumArray | object;
20
+ interface ComplexTypeInit extends Combine<{
21
+ base?: string | ComplexTypeInit | MappedTypeInit | MixinTypeInit;
22
+ fields?: Record<string, ApiFieldInit>;
23
+ additionalFields?: boolean | string | DataTypeFactory.DataTypeInitArguments | ['error'] | ['error', string];
24
+ }, ComplexType.InitArguments> {
25
+ }
26
+ interface EnumTypeInit extends Combine<{
27
+ base?: string | EnumTypeInit;
28
+ }, EnumType.InitArguments> {
29
+ }
30
+ interface MappedTypeInit extends Combine<{
31
+ base: string | ComplexTypeInit | MappedTypeInit | MixinTypeInit;
32
+ }, MappedType.InitArguments> {
33
+ }
34
+ interface MixinTypeInit extends Combine<{
35
+ types: (string | ComplexTypeInit | MappedTypeInit | MixinTypeInit)[];
36
+ }, MixinType.InitArguments> {
37
+ }
38
+ interface SimpleTypeInit extends Combine<{
39
+ base?: string | SimpleTypeInit;
40
+ }, SimpleType.InitArguments> {
41
+ }
42
+ interface ApiFieldInit extends Combine<{
43
+ type: string | DataTypeInitArguments;
44
+ }, ApiField.InitArguments> {
45
+ }
46
+ type DataTypeInitArguments = ComplexTypeInit | EnumTypeInit | MappedTypeInit | MixinTypeInit | SimpleTypeInit;
47
+ interface Context extends DocumentInitContext {
48
+ importQueue?: ResponsiveMap<any>;
49
+ initArgsMap?: ResponsiveMap<DataTypeInitArguments>;
50
+ }
51
+ }
52
+ /**
53
+ *
54
+ * @class DataTypeFactory
55
+ */
56
+ export declare class DataTypeFactory {
57
+ static createDataType(context: DocumentInitContext | undefined, owner: DocumentElement, thunk: DataTypeFactory.DataTypeThunk): Promise<DataType | undefined>;
58
+ /**
59
+ *
60
+ * @param context
61
+ * @param target
62
+ * @param types
63
+ */
64
+ static addDataTypes(context: DocumentInitContext | undefined, target: DocumentElement, types: DataTypeFactory.DataTypeSources): Promise<void>;
65
+ /**
66
+ *
67
+ * @param context
68
+ * @param owner
69
+ * @param types
70
+ */
71
+ static createAllDataTypes(context: DocumentInitContext | undefined, owner: DocumentElement, types: DataTypeFactory.DataTypeSources): Promise<DataType[] | undefined>;
72
+ /**
73
+ *
74
+ * @param ctx
75
+ * @param owner
76
+ * @param types
77
+ */
78
+ protected static _prepareAllInitArgs(ctx: DocumentInitContext, owner: DocumentElement, types: DataTypeFactory.DataTypeSources): Promise<DataTypeFactory.DataTypeInitArguments[] | void>;
79
+ /**
80
+ *
81
+ * @param context
82
+ * @param owner
83
+ * @param thunk
84
+ * @protected
85
+ */
86
+ protected static _importDataTypeArgs(context: DataTypeFactory.Context, owner: DocumentElement, thunk: string | Type | OpraSchema.DataType | object): Promise<DataTypeFactory.DataTypeInitArguments | string | void>;
87
+ protected static _prepareDataTypeArgs(context: DataTypeFactory.Context, initArgs: DataTypeFactory.DataTypeInitArguments, metadata: OpraSchema.DataTypeBase): Promise<void>;
88
+ protected static _prepareComplexTypeArgs(context: DataTypeFactory.Context, owner: DocumentElement, initArgs: DataTypeFactory.ComplexTypeInit, metadata: ComplexType.Metadata | OpraSchema.ComplexType): Promise<void>;
89
+ protected static _prepareEnumTypeArgs(context: DataTypeFactory.Context, owner: DocumentElement, initArgs: DataTypeFactory.EnumTypeInit, metadata: EnumType.Metadata | OpraSchema.EnumType): Promise<void>;
90
+ protected static _prepareSimpleTypeArgs(context: DataTypeFactory.Context, owner: DocumentElement, initArgs: DataTypeFactory.SimpleTypeInit, metadata: SimpleType.Metadata | OpraSchema.SimpleType): Promise<void>;
91
+ protected static _prepareMappedTypeArgs(context: DataTypeFactory.Context, owner: DocumentElement, initArgs: DataTypeFactory.MappedTypeInit, metadata: DataTypeFactory.MappedTypeInit | OpraSchema.MappedType): Promise<void>;
92
+ protected static _prepareMixinTypeArgs(context: DataTypeFactory.Context, owner: DocumentElement, initArgs: DataTypeFactory.MixinTypeInit, metadata: (MixinType.Metadata | OpraSchema.MixinType) & {
93
+ ctor?: Type;
94
+ }): Promise<void>;
95
+ protected static _createDataType(context: DocumentInitContext & {
96
+ initArgsMap?: ResponsiveMap<DataTypeFactory.DataTypeInitArguments>;
97
+ }, owner: DocumentElement, args: DataTypeFactory.DataTypeInitArguments | string): ComplexType | EnumType | MappedType | MixinType | SimpleType | undefined;
98
+ protected static _createComplexType(context: DocumentInitContext, owner: DocumentElement, args: DataTypeFactory.ComplexTypeInit): ComplexType;
99
+ protected static _createEnumType(context: DocumentInitContext, owner: DocumentElement, args: DataTypeFactory.EnumTypeInit): EnumType;
100
+ protected static _createMappedType(context: DocumentInitContext, owner: DocumentElement, args: DataTypeFactory.MappedTypeInit): MappedType;
101
+ protected static _createMixinType(context: DocumentInitContext, owner: DocumentElement, args: DataTypeFactory.MixinTypeInit): MixinType;
102
+ protected static _createSimpleType(context: DocumentInitContext, owner: DocumentElement, args: DataTypeFactory.SimpleTypeInit): SimpleType;
103
+ }
@@ -0,0 +1,60 @@
1
+ import { StrictOmit, Type } from 'ts-gems';
2
+ import { OpraSchema } from '../../schema/index.js';
3
+ import { ApiDocument } from '../api-document.js';
4
+ import { DocumentInitContext } from '../common/document-init-context.js';
5
+ import { HttpApi } from '../http/http-api.js';
6
+ import { HttpController } from '../http/http-controller.js';
7
+ import { HttpMediaType } from '../http/http-media-type.js';
8
+ import { HttpOperation } from '../http/http-operation.js';
9
+ import { HttpOperationResponse } from '../http/http-operation-response.js';
10
+ import { HttpRequestBody } from '../http/http-request-body.js';
11
+ export declare namespace HttpApiFactory {
12
+ interface InitArguments extends StrictOmit<OpraSchema.HttpApi, 'controllers'> {
13
+ controllers: Type[] | any[] | ((parent: any) => any) | OpraSchema.HttpApi['controllers'];
14
+ }
15
+ }
16
+ /**
17
+ * @class HttpApiFactory
18
+ */
19
+ export declare class HttpApiFactory {
20
+ /**
21
+ * Generates HttpApi
22
+ * @param context
23
+ * @param document
24
+ * @param init
25
+ */
26
+ static createApi(context: DocumentInitContext, document: ApiDocument, init: HttpApiFactory.InitArguments): Promise<HttpApi>;
27
+ protected static _createController(context: DocumentInitContext, parent: HttpApi | HttpController, thunk: Type | object | Function | OpraSchema.HttpController, name?: string): Promise<HttpController | undefined | void>;
28
+ /**
29
+ * Initializes HttpOperation
30
+ * @param context
31
+ * @param operation
32
+ * @param metadata
33
+ * @protected
34
+ */
35
+ protected static _initHttpOperation(context: DocumentInitContext, operation: HttpOperation, metadata: HttpOperation.Metadata | OpraSchema.HttpOperation): Promise<HttpOperation>;
36
+ /**
37
+ * Initializes HttpMediaType
38
+ * @param context
39
+ * @param target
40
+ * @param metadata
41
+ * @protected
42
+ */
43
+ protected static _initHttpMediaType(context: DocumentInitContext, target: HttpMediaType, metadata: HttpMediaType.Metadata | OpraSchema.HttpMediaType): Promise<void>;
44
+ /**
45
+ * Initializes HttpOperationResponse
46
+ * @param context
47
+ * @param target
48
+ * @param metadata
49
+ * @protected
50
+ */
51
+ protected static _initHttpOperationResponse(context: DocumentInitContext, target: HttpOperationResponse, metadata: HttpOperationResponse.Metadata | OpraSchema.HttpOperationResponse): Promise<void>;
52
+ /**
53
+ * Initializes HttpRequestBody
54
+ * @param context
55
+ * @param target
56
+ * @param metadata
57
+ * @protected
58
+ */
59
+ protected static _initHttpRequestBody(context: DocumentInitContext, target: HttpRequestBody, metadata: HttpRequestBody.Metadata | OpraSchema.HttpRequestBody): Promise<void>;
60
+ }
@@ -0,0 +1,14 @@
1
+ import { StrictOmit, Type, TypeThunkAsync } from 'ts-gems';
2
+ import type { HttpController } from '../http-controller';
3
+ import type { HttpParameter } from '../http-parameter.js';
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-parameter';
5
+ import { HttpRequestBody } from '../http-request-body.js';
6
+ import { HttpOperationDecorator } from './http-operation.decorator.js';
7
+ /** Augmentation **/
8
+ declare module '../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
+ }
@@ -0,0 +1,30 @@
1
+ import { StrictOmit, Type, TypeThunkAsync } from 'ts-gems';
2
+ import { HttpMediaType } from '../http-media-type.js';
3
+ import { HttpMultipartField } from '../http-multipart-field.js';
4
+ import type { HttpOperation } from '../http-operation';
5
+ import type { HttpOperationResponse } from '../http-operation-response.js';
6
+ import type { HttpParameter } from '../http-parameter';
7
+ export interface HttpOperationDecorator {
8
+ (target: Object, propertyKey: string): void;
9
+ Cookie(name: string | RegExp, optionsOrType?: StrictOmit<HttpParameter.Options, 'location'> | string | Type): this;
10
+ Header(name: string | RegExp, optionsOrType?: StrictOmit<HttpParameter.Options, 'location'> | string | TypeThunkAsync): this;
11
+ QueryParam(name: string | RegExp, optionsOrType?: StrictOmit<HttpParameter.Options, 'location'> | string | TypeThunkAsync): this;
12
+ PathParam(name: string | RegExp, optionsOrType?: StrictOmit<HttpParameter.Options, 'location'> | string | TypeThunkAsync): this;
13
+ RequestContent(type: string | Type): this;
14
+ RequestContent(options: HttpMediaType.Options): this;
15
+ MultipartContent(options?: HttpMediaType.Options, subInit?: (content: MultipartContentScope) => void): this;
16
+ Response(status: number | string | (number | string)[], options?: HttpOperationResponse.Options): this;
17
+ UseType(...type: Type[]): this;
18
+ }
19
+ export interface MultipartContentScope {
20
+ Field(fieldName: string | RegExp, options?: StrictOmit<HttpMultipartField.Options, 'fieldName' | 'fieldType'>): MultipartContentScope;
21
+ File(fieldName: string | RegExp, options?: StrictOmit<HttpMultipartField.Options, 'fieldName' | 'fieldType'>): MultipartContentScope;
22
+ }
23
+ export interface HttpOperationDecoratorFactory {
24
+ /**
25
+ * Property decorator
26
+ * @param decoratorChain
27
+ * @param options
28
+ */ <T extends HttpOperation.Options>(decoratorChain: Function[], options?: T): HttpOperationDecorator;
29
+ }
30
+ export declare function HttpOperationDecoratorFactory(decoratorChain: Function[], options?: HttpOperation.Options & Pick<HttpOperation.Metadata, 'composition' | 'compositionOptions'>): HttpOperationDecorator;
@@ -0,0 +1,23 @@
1
+ import { Type } from 'ts-gems';
2
+ import { ResponsiveMap } from '../../helpers/index.js';
3
+ import { OpraSchema } from '../../schema/index.js';
4
+ import type { ApiDocument } from '../api-document';
5
+ import { ApiBase } from '../common/api-base.js';
6
+ import { HttpController } from './http-controller.js';
7
+ import type { HttpOperation } from './http-operation.js';
8
+ /**
9
+ * @class HttpApi
10
+ */
11
+ export declare class HttpApi extends ApiBase {
12
+ readonly owner: ApiDocument;
13
+ protected _controllerReverseMap: WeakMap<Type, HttpController | null>;
14
+ readonly protocol = "http";
15
+ controllers: ResponsiveMap<HttpController>;
16
+ url?: string;
17
+ constructor(owner: ApiDocument);
18
+ findController(controller: Type): HttpController | undefined;
19
+ findController(resourcePath: string): HttpController | undefined;
20
+ findOperation(controller: Type, operationName: string): HttpOperation | undefined;
21
+ findOperation(resourcePath: string, operationName: string): HttpOperation | undefined;
22
+ toJSON(): OpraSchema.HttpApi;
23
+ }
@@ -0,0 +1,92 @@
1
+ import { Combine, ThunkAsync, Type } from 'ts-gems';
2
+ import { ResponsiveMap } from '../../helpers/index.js';
3
+ import { OpraSchema } from '../../schema/index.js';
4
+ import { DataTypeMap } from '../common/data-type-map.js';
5
+ import { DocumentElement } from '../common/document-element.js';
6
+ import type { EnumType } from '../data-type/enum-type.js';
7
+ import { HttpControllerDecoratorFactory } from '../decorators/http-controller.decorator.js';
8
+ import { nodeInspectCustom } from '../utils/inspect.util.js';
9
+ import type { HttpApi } from './http-api.js';
10
+ import type { HttpOperation } from './http-operation';
11
+ import { HttpParameter } from './http-parameter.js';
12
+ /**
13
+ * @namespace HttpController
14
+ */
15
+ export declare namespace HttpController {
16
+ interface Metadata extends Pick<OpraSchema.HttpController, 'description' | 'path'> {
17
+ name: string;
18
+ controllers?: (Type | ((parent: any) => any))[];
19
+ types?: ThunkAsync<Type | EnumType.EnumObject | EnumType.EnumArray>[];
20
+ operations?: Record<string, HttpOperation.Metadata>;
21
+ parameters?: HttpParameter.Metadata[];
22
+ }
23
+ interface Options extends Partial<Pick<OpraSchema.HttpController, 'description' | 'path'>> {
24
+ name?: string;
25
+ controllers?: (Type | ((parent: any) => any))[];
26
+ }
27
+ interface InitArguments extends Combine<{
28
+ instance?: object;
29
+ ctor?: Type;
30
+ }, Pick<Metadata, 'name' | 'description' | 'path'>> {
31
+ }
32
+ }
33
+ /**
34
+ * Type definition for HttpOperation
35
+ * @class HttpController
36
+ */
37
+ export interface HttpControllerStatic extends HttpControllerDecoratorFactory {
38
+ /**
39
+ * Class constructor of HttpController
40
+ * @param owner
41
+ * @param args
42
+ */
43
+ new (owner: HttpApi | HttpController, args: HttpController.InitArguments): HttpController;
44
+ prototype: HttpController;
45
+ }
46
+ /**
47
+ * Type definition of HttpController prototype
48
+ * @interface HttpController
49
+ */
50
+ export interface HttpController extends HttpControllerClass {
51
+ }
52
+ /**
53
+ * HttpController
54
+ */
55
+ export declare const HttpController: HttpControllerStatic;
56
+ /**
57
+ *
58
+ * @class HttpController
59
+ */
60
+ declare class HttpControllerClass extends DocumentElement {
61
+ protected _controllerReverseMap: WeakMap<Type, HttpController | null>;
62
+ readonly kind: OpraSchema.HttpController.Kind;
63
+ readonly name: string;
64
+ description?: string;
65
+ path: string;
66
+ instance?: any;
67
+ ctor?: Type;
68
+ parameters: HttpParameter[];
69
+ operations: ResponsiveMap<HttpOperation>;
70
+ controllers: ResponsiveMap<HttpController>;
71
+ types: DataTypeMap;
72
+ /**
73
+ * @property isRoot
74
+ */
75
+ get isRoot(): boolean;
76
+ findController(controller: Type): HttpController | undefined;
77
+ findController(resourcePath: string): HttpController | undefined;
78
+ findParameter(paramName: string, location?: OpraSchema.HttpParameterLocation): HttpParameter | undefined;
79
+ /**
80
+ *
81
+ */
82
+ toString(): string;
83
+ /**
84
+ *
85
+ */
86
+ toJSON(): OpraSchema.HttpController;
87
+ /**
88
+ *
89
+ */
90
+ protected [nodeInspectCustom](): string;
91
+ }
92
+ export {};
@@ -0,0 +1,59 @@
1
+ import { Combine, StrictOmit, Type } from 'ts-gems';
2
+ import { OpraSchema } from '../../schema/index.js';
3
+ import { DocumentElement } from '../common/document-element.js';
4
+ import { DataType } from '../data-type/data-type.js';
5
+ import type { HttpMultipartField } from './http-multipart-field.js';
6
+ /**
7
+ * @namespace HttpMediaType
8
+ */
9
+ export declare namespace HttpMediaType {
10
+ interface Metadata extends Partial<StrictOmit<OpraSchema.HttpMediaType, 'type' | 'multipartFields'>> {
11
+ type?: Type | string;
12
+ multipartFields?: HttpMultipartField.Metadata[];
13
+ }
14
+ interface Options extends Partial<StrictOmit<OpraSchema.HttpMediaType, 'type' | 'multipartFields'>> {
15
+ type?: Type | string;
16
+ }
17
+ interface InitArguments extends Combine<{
18
+ type?: DataType | string | Type;
19
+ }, StrictOmit<Metadata, 'multipartFields'>> {
20
+ }
21
+ }
22
+ /**
23
+ * Type definition for HttpMediaType
24
+ * @class HttpMediaType
25
+ */
26
+ interface HttpMediaTypeStatic {
27
+ new (parent: DocumentElement, initArgs: HttpMediaType.InitArguments): HttpMediaType;
28
+ prototype: HttpMediaType;
29
+ }
30
+ /**
31
+ * Type definition of HttpMediaType prototype
32
+ * @interface HttpMediaType
33
+ */
34
+ export interface HttpMediaType extends HttpMediaTypeClass {
35
+ }
36
+ export declare const HttpMediaType: HttpMediaTypeStatic;
37
+ /**
38
+ * @class HttpMediaType
39
+ */
40
+ declare class HttpMediaTypeClass extends DocumentElement {
41
+ readonly owner: DocumentElement;
42
+ description?: string;
43
+ contentType?: string | string[];
44
+ contentEncoding?: string;
45
+ type?: DataType;
46
+ isArray?: boolean;
47
+ example?: string;
48
+ examples?: Record<string, string>;
49
+ multipartFields: HttpMultipartField[];
50
+ maxFields?: number;
51
+ maxFieldsSize?: number;
52
+ maxFiles?: number;
53
+ maxFileSize?: number;
54
+ maxTotalFileSize?: number;
55
+ minFileSize?: number;
56
+ findMultipartField(fieldName: string, fieldType?: OpraSchema.HttpMultipartFieldType): HttpMultipartField | undefined;
57
+ toJSON(): OpraSchema.HttpMediaType;
58
+ }
59
+ export {};
@@ -0,0 +1,26 @@
1
+ import { Combine } from 'ts-gems';
2
+ import { OpraSchema } from '../../schema/index.js';
3
+ import { HttpMediaType } from './http-media-type.js';
4
+ /**
5
+ * @namespace HttpMultipartField
6
+ */
7
+ export declare namespace HttpMultipartField {
8
+ interface Metadata extends Combine<Pick<OpraSchema.HttpMultipartField, 'fieldName' | 'fieldType' | 'required'>, HttpMediaType.Metadata> {
9
+ }
10
+ interface Options extends Combine<Pick<OpraSchema.HttpMultipartField, 'fieldName' | 'fieldType' | 'required'>, HttpMediaType.Options> {
11
+ }
12
+ interface InitArguments extends Combine<Pick<OpraSchema.HttpMultipartField, 'fieldName' | 'fieldType' | 'required'>, HttpMediaType.InitArguments> {
13
+ }
14
+ }
15
+ /**
16
+ *
17
+ * @class HttpMultipartField
18
+ */
19
+ export declare class HttpMultipartField extends HttpMediaType {
20
+ readonly owner: HttpMediaType | HttpMultipartField;
21
+ fieldName: string | RegExp;
22
+ fieldType: OpraSchema.HttpMultipartFieldType;
23
+ required?: boolean;
24
+ constructor(owner: HttpMediaType | HttpMultipartField, initArgs: HttpMultipartField.InitArguments);
25
+ toJSON(): OpraSchema.HttpMultipartField;
26
+ }
@@ -0,0 +1,36 @@
1
+ import { Combine, StrictOmit } from 'ts-gems';
2
+ import { OpraSchema } from '../../schema/index.js';
3
+ import { HttpMediaType } from './http-media-type.js';
4
+ import { HttpOperation } from './http-operation.js';
5
+ import type { HttpParameter } from './http-parameter.js';
6
+ import { HttpStatusRange } from './http-status-range.js';
7
+ /**
8
+ * @namespace HttpOperationResponse
9
+ */
10
+ export declare namespace HttpOperationResponse {
11
+ interface Metadata extends Combine<{
12
+ statusCode: number | string | (number | string)[];
13
+ parameters?: HttpParameter.Metadata[];
14
+ partial?: boolean | 'deep';
15
+ }, HttpMediaType.Metadata> {
16
+ }
17
+ interface Options extends HttpMediaType.Options {
18
+ partial?: boolean | 'deep';
19
+ }
20
+ interface InitArguments extends Combine<{
21
+ statusCode: number | string | HttpStatusRange | OpraSchema.HttpStatusRange | (number | string | HttpStatusRange | OpraSchema.HttpStatusRange)[];
22
+ }, HttpMediaType.InitArguments, StrictOmit<Metadata, 'multipartFields'>> {
23
+ }
24
+ }
25
+ /**
26
+ * @class HttpOperationResponse
27
+ */
28
+ export declare class HttpOperationResponse extends HttpMediaType {
29
+ readonly owner: HttpOperation;
30
+ statusCode: HttpStatusRange[];
31
+ parameters: HttpParameter[];
32
+ partial?: boolean | 'deep';
33
+ constructor(owner: HttpOperation, init: HttpOperationResponse.InitArguments);
34
+ findParameter(paramName: string, location?: OpraSchema.HttpParameterLocation): HttpParameter | undefined;
35
+ toJSON(): OpraSchema.HttpOperationResponse;
36
+ }