@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,84 @@
1
+ import { Combine, StrictOmit, ThunkAsync, Type } from 'ts-gems';
2
+ import { OpraSchema } from '../../schema/index.js';
3
+ import { DataTypeMap } from '../common/data-type-map.js';
4
+ import { DocumentElement } from '../common/document-element.js';
5
+ import type { DataType } from '../data-type/data-type.js';
6
+ import type { EnumType } from '../data-type/enum-type.js';
7
+ import { HttpOperationDecorator } from '../decorators/http-operation.decorator.js';
8
+ import type { HttpController } from './http-controller.js';
9
+ import type { HttpOperationResponse } from './http-operation-response.js';
10
+ import type { HttpParameter } from './http-parameter.js';
11
+ import type { HttpRequestBody } from './http-request-body.js';
12
+ /**
13
+ * @namespace HttpOperation
14
+ */
15
+ export declare namespace HttpOperation {
16
+ interface Metadata extends Pick<OpraSchema.HttpOperation, 'description' | 'path' | 'method' | 'composition' | 'compositionOptions'> {
17
+ types?: ThunkAsync<Type | EnumType.EnumObject | EnumType.EnumArray>[];
18
+ parameters?: HttpParameter.Metadata[];
19
+ responses?: HttpOperationResponse.Metadata[];
20
+ requestBody?: HttpRequestBody.Metadata;
21
+ immediateFetch?: boolean;
22
+ }
23
+ interface Options extends Partial<Pick<Metadata, 'path' | 'description' | 'method' | 'immediateFetch'>> {
24
+ requestBody?: HttpRequestBody.Options;
25
+ }
26
+ interface InitArguments extends Combine<{
27
+ name: string;
28
+ types?: DataType[];
29
+ }, Pick<Metadata, 'description' | 'path' | 'method' | 'composition' | 'compositionOptions' | 'immediateFetch'>> {
30
+ }
31
+ }
32
+ /**
33
+ * Type definition for HttpOperation
34
+ * @class HttpOperation
35
+ */
36
+ export interface HttpOperationStatic {
37
+ /**
38
+ * Class constructor of HttpOperation
39
+ * @param controller
40
+ * @param args
41
+ */
42
+ new (controller: HttpController, args: HttpOperation.InitArguments): HttpOperation;
43
+ /**
44
+ * Property decorator
45
+ * @param options
46
+ */ <T extends HttpOperation.Options>(options?: T): HttpOperationDecorator;
47
+ prototype: HttpOperation;
48
+ GET(options?: StrictOmit<HttpOperation.Options, 'method'>): HttpOperationDecorator;
49
+ DELETE(options?: StrictOmit<HttpOperation.Options, 'method'>): HttpOperationDecorator;
50
+ HEAD(options?: StrictOmit<HttpOperation.Options, 'method'>): HttpOperationDecorator;
51
+ OPTIONS(options?: StrictOmit<HttpOperation.Options, 'method'>): HttpOperationDecorator;
52
+ PATCH(options?: StrictOmit<HttpOperation.Options, 'method'>): HttpOperationDecorator;
53
+ POST(options?: StrictOmit<HttpOperation.Options, 'method'>): HttpOperationDecorator;
54
+ PUT(options?: StrictOmit<HttpOperation.Options, 'method'>): HttpOperationDecorator;
55
+ SEARCH(options?: StrictOmit<HttpOperation.Options, 'method'>): HttpOperationDecorator;
56
+ }
57
+ /**
58
+ * @class HttpOperation
59
+ */
60
+ export interface HttpOperation extends HttpOperationClass {
61
+ }
62
+ /**
63
+ * HttpOperation
64
+ */
65
+ export declare const HttpOperation: HttpOperationStatic;
66
+ /**
67
+ * @class HttpOperation
68
+ */
69
+ declare class HttpOperationClass extends DocumentElement {
70
+ readonly owner: HttpController;
71
+ readonly name: string;
72
+ method: OpraSchema.HttpMethod;
73
+ description?: string;
74
+ path?: string;
75
+ types: DataTypeMap;
76
+ parameters: HttpParameter[];
77
+ responses: HttpOperationResponse[];
78
+ requestBody?: HttpRequestBody;
79
+ composition?: string;
80
+ compositionOptions?: Record<string, any>;
81
+ findParameter(paramName: string, location?: OpraSchema.HttpParameterLocation): HttpParameter | undefined;
82
+ toJSON(): OpraSchema.HttpOperation;
83
+ }
84
+ export {};
@@ -0,0 +1,50 @@
1
+ import { Combine, StrictOmit, TypeThunkAsync } from 'ts-gems';
2
+ import type { OpraSchema } from '../../schema/index.js';
3
+ import { HttpParameterLocation } from '../../schema/types.js';
4
+ import { DocumentElement } from '../common/document-element.js';
5
+ import { Value } from '../common/value.js';
6
+ import { DataType } from '../data-type/data-type.js';
7
+ import type { EnumType } from '../data-type/enum-type.js';
8
+ /**
9
+ * @namespace HttpParameter
10
+ */
11
+ export declare namespace HttpParameter {
12
+ interface Metadata extends StrictOmit<OpraSchema.HttpParameter, 'type'> {
13
+ name: string | RegExp;
14
+ type?: string | TypeThunkAsync | EnumType.EnumObject | EnumType.EnumArray | object;
15
+ }
16
+ interface Options extends Partial<StrictOmit<Metadata, 'type'>> {
17
+ type?: string | TypeThunkAsync | object;
18
+ }
19
+ interface InitArguments extends Combine<{
20
+ type?: DataType;
21
+ }, Metadata> {
22
+ }
23
+ }
24
+ /**
25
+ * Type definition for HttpParameter
26
+ * @class HttpParameter
27
+ */
28
+ interface HttpParameterStatic {
29
+ new (owner: DocumentElement, args: HttpParameter.InitArguments): HttpParameter;
30
+ prototype: HttpParameter;
31
+ }
32
+ /**
33
+ * Type definition of HttpParameter prototype
34
+ * @interface HttpParameter
35
+ */
36
+ export interface HttpParameter extends HttpParameterClass {
37
+ }
38
+ export declare const HttpParameter: HttpParameterStatic;
39
+ /**
40
+ * @class HttpParameter
41
+ */
42
+ declare class HttpParameterClass extends Value {
43
+ readonly owner: DocumentElement;
44
+ deprecated?: boolean | string;
45
+ required?: boolean;
46
+ arraySeparator?: string;
47
+ location: HttpParameterLocation;
48
+ toJSON(): OpraSchema.HttpParameter;
49
+ }
50
+ export {};
@@ -0,0 +1,31 @@
1
+ import { StrictOmit } from 'ts-gems';
2
+ import { OpraSchema } from '../../schema/index.js';
3
+ import { DocumentElement } from '../common/document-element.js';
4
+ import { HttpMediaType } from './http-media-type.js';
5
+ import type { HttpOperation } from './http-operation';
6
+ /**
7
+ * @namespace HttpRequestBody
8
+ */
9
+ export declare namespace HttpRequestBody {
10
+ interface Metadata extends Partial<StrictOmit<OpraSchema.HttpRequestBody, 'content'>> {
11
+ content: HttpMediaType.Metadata[];
12
+ immediateFetch?: boolean;
13
+ }
14
+ interface Options extends Partial<StrictOmit<OpraSchema.HttpRequestBody, 'content'>> {
15
+ immediateFetch?: boolean;
16
+ }
17
+ }
18
+ /**
19
+ * @class HttpRequestBody
20
+ */
21
+ export declare class HttpRequestBody extends DocumentElement {
22
+ readonly owner: HttpOperation;
23
+ description?: string;
24
+ content: HttpMediaType[];
25
+ required?: boolean;
26
+ maxContentSize?: number;
27
+ immediateFetch?: boolean;
28
+ partial?: boolean | 'deep';
29
+ constructor(owner: HttpOperation);
30
+ toJSON(): OpraSchema.HttpRequestBody;
31
+ }
@@ -0,0 +1,14 @@
1
+ import { OpraSchema } from '../../schema/index.js';
2
+ /**
3
+ * @class HttpStatusRange
4
+ */
5
+ export declare class HttpStatusRange {
6
+ start: number;
7
+ end: number;
8
+ constructor(value: string);
9
+ constructor(start: number, end?: number);
10
+ constructor(init: Pick<HttpStatusRange, 'start' | 'end'>);
11
+ get distance(): number;
12
+ toString(): string;
13
+ toJSON(): OpraSchema.HttpStatusRange | number;
14
+ }
@@ -1,28 +1,39 @@
1
1
  import 'reflect-metadata';
2
- export * from './constants.js';
2
+ import * as DataTypeFactory_ from './factory/data-type.factory.js';
3
+ import * as HttpApiFactory_ from './factory/http-api.factory.js';
3
4
  export * from './api-document.js';
4
- export * from './type-document.js';
5
- export * from './factory/type-document-factory.js';
6
- export * from './factory/api-document-factory.js';
7
- export * from './data-type/data-type.js';
5
+ export * from './constants.js';
6
+ export * from './common/api-base.js';
7
+ export * from './common/data-type-map.js';
8
+ export * from './common/document-element.js';
9
+ export * from './common/document-init-context.js';
10
+ export * from './common/document-node.js';
11
+ export * from './common/opra-document-error.js';
8
12
  export * from './data-type/complex-type.js';
9
- export * from './data-type/field.js';
13
+ export * from './data-type/data-type.js';
10
14
  export * from './data-type/enum-type.js';
15
+ export * from './data-type/api-field.js';
11
16
  export * from './data-type/mapped-type.js';
12
- export * from './data-type/simple-type.js';
13
17
  export * from './data-type/mixin-type.js';
14
- export * from './resource/action.js';
15
- export * from './resource/collection.js';
16
- export * from './resource/container.js';
17
- export * from './resource/crud-resource.js';
18
- export * from './resource/endpoint.js';
19
- export * from './resource/crud-operation.js';
20
- export * from './resource/parameter.js';
21
- export * from './resource/resource.js';
22
- export * from './resource/singleton.js';
23
- export * from './resource/storage.js';
24
- export * from './resource/enums/metadata-mode.enum.js';
25
- export * from './resource/types/operation-result.type.js';
26
- export * from './interfaces/collection.interface.js';
27
- export * from './interfaces/singleton.interface.js';
28
- export * from './interfaces/storage.interface.js';
18
+ export * from './data-type/omit-type.js';
19
+ export * from './data-type/partial-type.js';
20
+ export * from './data-type/pick-type.js';
21
+ export * from './data-type/required-type.js';
22
+ export * from './data-type/simple-type.js';
23
+ export * from './data-type/primitive-types/index.js';
24
+ export * from './data-type/extended-types/index.js';
25
+ export * from './decorators/http-operation-entity.decorator.js';
26
+ export * from './factory/api-document.factory.js';
27
+ export * from './http/http-api.js';
28
+ export * from './http/http-media-type.js';
29
+ export * from './http/http-multipart-field.js';
30
+ export * from './http/http-operation.js';
31
+ export * from './http/http-operation-response.js';
32
+ export * from './http/http-parameter.js';
33
+ export * from './http/http-request-body.js';
34
+ export * from './http/http-controller.js';
35
+ export * from './http/http-status-range.js';
36
+ export declare namespace classes {
37
+ export import HttpApiFactory = HttpApiFactory_.HttpApiFactory;
38
+ export import DataTypeFactory = DataTypeFactory_.DataTypeFactory;
39
+ }
@@ -0,0 +1,4 @@
1
+ export declare function parseRegExp(str: string, options?: {
2
+ includeFlags?: string;
3
+ excludeFlags?: string;
4
+ }): RegExp;
@@ -1,11 +1,11 @@
1
1
  import { ErrorIssue } from '../error-issue.js';
2
- import { OpraException } from '../opra-exception.js';
2
+ import { OpraHttpError } from '../opra-http-error.js';
3
3
  /**
4
4
  * 400 Bad Request
5
5
  * The server cannot or will not process the request due to something that is perceived to be a client error
6
6
  * (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
7
7
  */
8
- export declare class BadRequestError extends OpraException {
8
+ export declare class BadRequestError extends OpraHttpError {
9
9
  status: number;
10
10
  protected init(issue: Partial<ErrorIssue>): void;
11
11
  }
@@ -1,10 +1,10 @@
1
1
  import { ErrorIssue } from '../error-issue.js';
2
- import { OpraException } from '../opra-exception.js';
2
+ import { OpraHttpError } from '../opra-http-error.js';
3
3
  /**
4
4
  * 409 Conflict
5
5
  * This response is sent when a request conflicts with the current state of the server.
6
6
  */
7
- export declare class ConflictError extends OpraException {
7
+ export declare class ConflictError extends OpraHttpError {
8
8
  status: number;
9
9
  protected init(issue: Partial<ErrorIssue>): void;
10
10
  }
@@ -1,10 +1,10 @@
1
1
  import { ErrorIssue } from '../error-issue.js';
2
- import { OpraException } from '../opra-exception.js';
2
+ import { OpraHttpError } from '../opra-http-error.js';
3
3
  /**
4
4
  * 424 Failed Dependency
5
5
  * The request failed due to failure of a previous request.
6
6
  */
7
- export declare class FailedDependencyError extends OpraException {
7
+ export declare class FailedDependencyError extends OpraHttpError {
8
8
  status: number;
9
9
  protected init(issue: Partial<ErrorIssue>): void;
10
10
  }
@@ -1,13 +1,13 @@
1
1
  import { HttpStatusCode } from '../../http/index.js';
2
2
  import { ErrorIssue } from '../error-issue.js';
3
- import { OpraException } from '../opra-exception.js';
3
+ import { OpraHttpError } from '../opra-http-error.js';
4
4
  /**
5
5
  * 403 Forbidden
6
6
  * The client does not have access rights to the content; that is, it is unauthorized,
7
7
  * so the server is refusing to give the requested resource. Unlike 401 Unauthorized,
8
8
  * the client's identity is known to the server.
9
9
  */
10
- export declare class ForbiddenError extends OpraException {
10
+ export declare class ForbiddenError extends OpraHttpError {
11
11
  status: HttpStatusCode;
12
12
  protected init(issue: Partial<ErrorIssue>): void;
13
13
  }
@@ -1,10 +1,10 @@
1
1
  import { ErrorIssue } from '../error-issue.js';
2
- import { OpraException } from '../opra-exception.js';
2
+ import { OpraHttpError } from '../opra-http-error.js';
3
3
  /**
4
4
  * 500 Internal Server Error
5
5
  * The server has encountered a situation it does not know how to handle.
6
6
  */
7
- export declare class InternalServerError extends OpraException {
7
+ export declare class InternalServerError extends OpraHttpError {
8
8
  status: number;
9
9
  protected init(issue: Partial<ErrorIssue>): void;
10
10
  }
@@ -1,11 +1,11 @@
1
1
  import { ErrorIssue } from '../error-issue.js';
2
- import { OpraException } from '../opra-exception.js';
2
+ import { OpraHttpError } from '../opra-http-error.js';
3
3
  /**
4
4
  * 405 Method Not Allowed
5
5
  * The request method is known by the server but is not supported by the target resource.
6
6
  * For example, an API may not allow calling DELETE to remove a resource.
7
7
  */
8
- export declare class MethodNotAllowedError extends OpraException {
8
+ export declare class MethodNotAllowedError extends OpraHttpError {
9
9
  status: number;
10
10
  protected init(issue: Partial<ErrorIssue>): void;
11
11
  }
@@ -1,11 +1,11 @@
1
1
  import { ErrorIssue } from '../error-issue.js';
2
- import { OpraException } from '../opra-exception.js';
2
+ import { OpraHttpError } from '../opra-http-error.js';
3
3
  /**
4
4
  * 406 Not Acceptable
5
5
  * This response is sent when the web server, after performing server-driven content negotiation,
6
6
  * doesn't find any content that conforms to the criteria given by the user agent.
7
7
  */
8
- export declare class NotAcceptableError extends OpraException {
8
+ export declare class NotAcceptableError extends OpraHttpError {
9
9
  status: number;
10
10
  protected init(issue: Partial<ErrorIssue>): void;
11
11
  }
@@ -1,5 +1,5 @@
1
1
  import { ErrorIssue } from '../error-issue.js';
2
- import { OpraException } from '../opra-exception.js';
2
+ import { OpraHttpError } from '../opra-http-error.js';
3
3
  /**
4
4
  * 404 Not Found
5
5
  * The server can not find the requested resource. In the browser, this means the URL is not recognized.
@@ -8,7 +8,7 @@ import { OpraException } from '../opra-exception.js';
8
8
  * from an unauthorized client. This response code is probably the most well known due to its
9
9
  * frequent occurrence on the web.
10
10
  */
11
- export declare class NotFoundError extends OpraException {
11
+ export declare class NotFoundError extends OpraHttpError {
12
12
  status: number;
13
13
  protected init(issue: Partial<ErrorIssue>): void;
14
14
  }
@@ -1,5 +1,5 @@
1
1
  import { ErrorIssue } from '../error-issue.js';
2
- import { ForbiddenError } from '../http-errors/forbidden.error.js';
2
+ import { ForbiddenError } from './forbidden.error.js';
3
3
  /**
4
4
  * 403 Forbidden
5
5
  * The client does not have access rights to the content; that is, it is unauthorized,
@@ -0,0 +1,5 @@
1
+ import { OpraHttpError } from '../opra-http-error.js';
2
+ export declare class ResourceConflictError extends OpraHttpError {
3
+ status: number;
4
+ constructor(resource: string, fields: string | string[], cause?: Error);
5
+ }
@@ -1,8 +1,8 @@
1
- import { OpraException } from '../opra-exception.js';
1
+ import { OpraHttpError } from '../opra-http-error.js';
2
2
  /**
3
3
  * The server cannot find the requested resource.
4
4
  * This can also mean that the endpoint is valid but the resource itself does not exist.
5
5
  */
6
- export declare class ResourceNotAvailableError extends OpraException {
6
+ export declare class ResourceNotAvailableError extends OpraHttpError {
7
7
  constructor(resource: string, keyValue?: any, cause?: Error);
8
8
  }
@@ -1,11 +1,11 @@
1
1
  import { ErrorIssue } from '../error-issue.js';
2
- import { OpraException } from '../opra-exception.js';
2
+ import { OpraHttpError } from '../opra-http-error.js';
3
3
  /**
4
4
  * 401 Unauthorized
5
5
  * Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated".
6
6
  * That is, the client must authenticate itself to get the requested response.
7
7
  */
8
- export declare class UnauthorizedError extends OpraException {
8
+ export declare class UnauthorizedError extends OpraHttpError {
9
9
  status: number;
10
10
  protected init(issue: Partial<ErrorIssue>): void;
11
11
  }
@@ -1,10 +1,10 @@
1
1
  import { ErrorIssue } from '../error-issue.js';
2
- import { OpraException } from '../opra-exception.js';
2
+ import { OpraHttpError } from '../opra-http-error.js';
3
3
  /**
4
4
  * 422 Unprocessable Entity
5
5
  * The request was well-formed but was unable to be followed due to semantic errors.
6
6
  */
7
- export declare class UnprocessableEntityError extends OpraException {
7
+ export declare class UnprocessableEntityError extends OpraHttpError {
8
8
  status: number;
9
9
  protected init(issue: Partial<ErrorIssue>): void;
10
10
  }
@@ -1,6 +1,6 @@
1
1
  export * from './opra-exception.js';
2
+ export * from './opra-http-error.js';
2
3
  export * from './error-issue.js';
3
- export * from './wrap-exception.js';
4
4
  export * from './issue-severity.enum.js';
5
5
  export * from './http-errors/bad-request.error.js';
6
6
  export * from './http-errors/conflict.error.js';
@@ -12,6 +12,6 @@ export * from './http-errors/not-acceptable.error.js';
12
12
  export * from './http-errors/not-found.error.js';
13
13
  export * from './http-errors/unauthorized.error.js';
14
14
  export * from './http-errors/unprocessable-entity.error.js';
15
- export * from './resource-errors/permission.error.js';
16
- export * from './resource-errors/resource-conflict.error.js';
17
- export * from './resource-errors/resource-not.available.error.js';
15
+ export * from './http-errors/permission.error.js';
16
+ export * from './http-errors/resource-conflict.error.js';
17
+ export * from './http-errors/resource-not.available.error.js';
@@ -5,15 +5,11 @@ import { IssueSeverity } from './issue-severity.enum.js';
5
5
  */
6
6
  export declare class OpraException extends Error {
7
7
  cause?: Error;
8
- status: number;
9
8
  severity: IssueSeverity.Type;
10
9
  system?: string;
11
10
  code?: string;
12
11
  details?: any;
13
- constructor();
14
- constructor(issue: string | Partial<ErrorIssue> | Error, status?: number);
15
- constructor(issue: string | Partial<ErrorIssue>, cause?: Error, status?: number);
16
- setStatus(status: number): this;
12
+ constructor(issue: string | Partial<ErrorIssue> | Error, cause?: Error);
17
13
  toString(): string;
18
14
  toJSON(): ErrorIssue;
19
15
  protected init(issue?: Partial<ErrorIssue>): void;
@@ -0,0 +1,13 @@
1
+ import { ErrorIssue } from './error-issue.js';
2
+ import { OpraException } from './opra-exception.js';
3
+ /**
4
+ * Defines the base Opra exception, which is handled by the default Exceptions Handler.
5
+ */
6
+ export declare class OpraHttpError extends OpraException {
7
+ status: number;
8
+ constructor();
9
+ constructor(issue: string | Partial<ErrorIssue> | Error, status?: number);
10
+ constructor(issue: string | Partial<ErrorIssue>, cause?: Error, status?: number);
11
+ setStatus(status: number): this;
12
+ protected initError(issue: Error): void;
13
+ }
@@ -1,4 +1,4 @@
1
- import { ATN, CharStream, DFA, Lexer } from "@browsery/antlr4";
1
+ import { ATN, CharStream, DFA, Lexer } from '@browsery/antlr4';
2
2
  export default class OpraFilterLexer extends Lexer {
3
3
  static readonly T__0 = 1;
4
4
  static readonly T__1 = 2;
@@ -1,5 +1,5 @@
1
- import { ParseTreeListener } from "@browsery/antlr4";
2
- import { ArithmeticOperatorContext, ArrayValueContext, BooleanContext, BooleanLiteralContext, ComparisonExpressionContext, ComparisonLeftContext, ComparisonOperatorContext, ComparisonRightContext, DateLiteralContext, DateTimeLiteralContext, ExternalConstantContext, IdentifierContext, InfinityContext, InfinityLiteralContext, LogicalExpressionContext, LogicalOperatorContext, NegativeExpressionContext, NullContext, NullLiteralContext, NumberLiteralContext, ParenthesizedExpressionContext, ParenthesizedItemContext, PolarityOperatorContext, QualifiedIdentifierContext, RootContext, StringLiteralContext, TimeLiteralContext } from "./OpraFilterParser.js";
1
+ import { ParseTreeListener } from '@browsery/antlr4';
2
+ import { ArithmeticOperatorContext, ArrayValueContext, BooleanContext, BooleanLiteralContext, ComparisonExpressionContext, ComparisonLeftContext, ComparisonOperatorContext, ComparisonRightContext, DateLiteralContext, DateTimeLiteralContext, ExternalConstantContext, IdentifierContext, InfinityContext, InfinityLiteralContext, LogicalExpressionContext, LogicalOperatorContext, NegativeExpressionContext, NullContext, NullLiteralContext, NumberLiteralContext, ParenthesizedExpressionContext, ParenthesizedItemContext, PolarityOperatorContext, QualifiedIdentifierContext, RootContext, StringLiteralContext, TimeLiteralContext } from './OpraFilterParser.js';
3
3
  /**
4
4
  * This interface defines a complete listener for a parse tree produced by
5
5
  * `OpraFilterParser`.
@@ -1,6 +1,6 @@
1
1
  import { ATN, DFA, FailedPredicateException, Parser, ParserRuleContext, RuleContext, TerminalNode, TokenStream } from '@browsery/antlr4';
2
- import type OpraFilterListener from "./OpraFilterListener.js";
3
- import type OpraFilterVisitor from "./OpraFilterVisitor.js";
2
+ import type OpraFilterListener from './OpraFilterListener.js';
3
+ import type OpraFilterVisitor from './OpraFilterVisitor.js';
4
4
  export default class OpraFilterParser extends Parser {
5
5
  static readonly T__0 = 1;
6
6
  static readonly T__1 = 2;
@@ -1,5 +1,5 @@
1
1
  import { ParseTreeVisitor } from '@browsery/antlr4';
2
- import { ArithmeticOperatorContext, ArrayValueContext, BooleanContext, BooleanLiteralContext, ComparisonExpressionContext, ComparisonLeftContext, ComparisonOperatorContext, ComparisonRightContext, DateLiteralContext, DateTimeLiteralContext, ExternalConstantContext, IdentifierContext, InfinityContext, InfinityLiteralContext, LogicalExpressionContext, LogicalOperatorContext, NegativeExpressionContext, NullContext, NullLiteralContext, NumberLiteralContext, ParenthesizedExpressionContext, ParenthesizedItemContext, PolarityOperatorContext, QualifiedIdentifierContext, RootContext, StringLiteralContext, TimeLiteralContext } from "./OpraFilterParser.js";
2
+ import { ArithmeticOperatorContext, ArrayValueContext, BooleanContext, BooleanLiteralContext, ComparisonExpressionContext, ComparisonLeftContext, ComparisonOperatorContext, ComparisonRightContext, DateLiteralContext, DateTimeLiteralContext, ExternalConstantContext, IdentifierContext, InfinityContext, InfinityLiteralContext, LogicalExpressionContext, LogicalOperatorContext, NegativeExpressionContext, NullContext, NullLiteralContext, NumberLiteralContext, ParenthesizedExpressionContext, ParenthesizedItemContext, PolarityOperatorContext, QualifiedIdentifierContext, RootContext, StringLiteralContext, TimeLiteralContext } from './OpraFilterParser.js';
3
3
  /**
4
4
  * This interface defines a complete generic visitor for a parse tree produced
5
5
  * by `OpraFilterParser`.
@@ -1,5 +1,5 @@
1
+ import type { ApiField } from '../../../document/data-type/api-field.js';
1
2
  import { DataType } from '../../../document/data-type/data-type.js';
2
- import type { ApiField } from '../../../document/data-type/field.js';
3
3
  import { Literal } from '../abstract/literal.js';
4
4
  export declare class QualifiedIdentifier extends Literal {
5
5
  dataType: DataType;
@@ -0,0 +1,24 @@
1
+ import { StrictOmit } from 'ts-gems';
2
+ import type { ComplexType } from '../document/index.js';
3
+ import { OpraFilter } from '../filter/index.js';
4
+ import { ResponsiveMap } from '../helpers/index.js';
5
+ import { OpraSchema } from '../schema/index.js';
6
+ export declare namespace FilterRules {
7
+ interface Options {
8
+ caseSensitive?: boolean;
9
+ }
10
+ interface Rule {
11
+ operators?: OpraFilter.ComparisonOperator[];
12
+ description?: string;
13
+ }
14
+ }
15
+ export declare class FilterRules {
16
+ protected _rules: ResponsiveMap<FilterRules.Rule>;
17
+ constructor(rules?: Record<string, FilterRules.Rule>, options?: FilterRules.Options);
18
+ set(fieldName: string, options?: Partial<StrictOmit<FilterRules.Rule, 'operators'>> & {
19
+ operators?: OpraFilter.ComparisonOperator[] | string;
20
+ }): void;
21
+ normalizeFilter(filter: OpraSchema.Field.QualifiedName | OpraFilter.Expression, dataType?: ComplexType): OpraFilter.Expression | undefined;
22
+ toJSON(): Record<string, FilterRules.Rule>;
23
+ [Symbol.iterator](): IterableIterator<[string, FilterRules.Rule]>;
24
+ }
@@ -1,9 +1,8 @@
1
- import type { ParseTreeVisitor as TParseTreeVisitor, RuleNode } from '@browsery/antlr4';
1
+ import { ParseTreeVisitor, type RuleNode } from '@browsery/antlr4';
2
2
  import { ArrayValueContext, BooleanLiteralContext, ComparisonExpressionContext, DateLiteralContext, DateTimeLiteralContext, ExternalConstantContext, LogicalExpressionContext, NegativeExpressionContext, NumberLiteralContext, ParenthesizedExpressionContext, ParenthesizedItemContext, QualifiedIdentifierContext, RootContext, StringLiteralContext, TimeLiteralContext } from './antlr/OpraFilterParser.js';
3
3
  import OpraFilterVisitor from './antlr/OpraFilterVisitor.js';
4
4
  import { ArrayExpression, BooleanLiteral, DateLiteral, LogicalExpression, NegativeExpression, NullLiteral, NumberLiteral, ParenthesizedExpression, QualifiedIdentifier, StringLiteral, TimeLiteral } from './ast/index.js';
5
5
  import { ExternalConstant } from './ast/terms/external-constant.js';
6
- declare const ParseTreeVisitor: typeof TParseTreeVisitor;
7
6
  export declare class FilterTreeVisitor extends ParseTreeVisitor<any> implements OpraFilterVisitor<any> {
8
7
  private _timeZone?;
9
8
  constructor(options?: {
@@ -29,4 +28,3 @@ export declare class FilterTreeVisitor extends ParseTreeVisitor<any> implements
29
28
  visitTimeLiteral(ctx: TimeLiteralContext): TimeLiteral;
30
29
  visitArrayValue(ctx: ArrayValueContext): ArrayExpression;
31
30
  }
32
- export {};
@@ -1,4 +1,2 @@
1
- import { Type } from 'ts-gems';
2
- import { ThunkAsync } from '../types.js';
3
- export declare function resolveThunk(thunk: ThunkAsync<any>): Promise<any>;
4
- export declare function resolveClass(thunk: ThunkAsync<Type>): Promise<Type>;
1
+ import { ThunkAsync } from 'ts-gems';
2
+ export declare function resolveThunk(thunk: ThunkAsync<any> | Promise<any>): Promise<any>;
@@ -1 +1,2 @@
1
1
  export declare function getStackFileName(position?: number): string;
2
+ export declare function getErrorStack(position?: number): string;
@@ -1,8 +1,8 @@
1
+ import './monkey-patches.js';
1
2
  export * from './function-utils.js';
2
3
  export * from './get-stack-filename.js';
3
- export * from './is-url-string.js';
4
4
  export * from './mixin-utils.js';
5
5
  export * from './object-utils.js';
6
- export * from './path-to-object-tree.js';
6
+ export * from './parse-fields-projection.js';
7
7
  export * from './responsive-map.js';
8
8
  export * from './type-guards.js';
File without changes
@@ -0,0 +1,11 @@
1
+ export declare class FieldsProjection {
2
+ [key: string]: FieldsProjection.Item;
3
+ }
4
+ export declare namespace FieldsProjection {
5
+ class Item {
6
+ sign?: string;
7
+ projection?: FieldsProjection;
8
+ }
9
+ }
10
+ export declare function parseFieldsProjection(projection: string | string[], keepCase?: boolean): FieldsProjection | undefined;
11
+ export declare function parse(input: string, target: FieldsProjection): void;