@opra/common 0.33.13 → 1.0.0-alpha.10

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 (583) hide show
  1. package/browser.js +9785 -8741
  2. package/cjs/document/api-document.js +117 -22
  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 +32 -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 +69 -0
  12. package/cjs/document/data-type/complex-type-base.js +188 -0
  13. package/cjs/document/data-type/complex-type.js +92 -13
  14. package/cjs/document/data-type/data-type.js +33 -25
  15. package/cjs/document/data-type/enum-type.js +95 -36
  16. package/cjs/document/data-type/extended-types/base64.type.js +30 -0
  17. package/cjs/document/data-type/extended-types/date-string.type.js +51 -0
  18. package/cjs/document/data-type/extended-types/date-time-string.type.js +54 -0
  19. package/cjs/document/data-type/extended-types/date-time.type.js +65 -0
  20. package/cjs/document/data-type/extended-types/date.type.js +62 -0
  21. package/cjs/document/data-type/extended-types/email.type.js +94 -0
  22. package/cjs/document/data-type/extended-types/field-path.type.js +59 -0
  23. package/cjs/document/data-type/extended-types/filter.type.js +79 -0
  24. package/cjs/document/data-type/extended-types/index.js +16 -0
  25. package/cjs/document/data-type/extended-types/object-id.type.js +30 -0
  26. package/cjs/document/data-type/extended-types/operation-result.type.js +66 -0
  27. package/cjs/document/data-type/extended-types/time.type.js +54 -0
  28. package/cjs/document/data-type/extended-types/url.type.js +30 -0
  29. package/cjs/document/data-type/extended-types/uuid.type.js +36 -0
  30. package/cjs/document/data-type/mapped-type.js +85 -62
  31. package/cjs/document/data-type/mixin-type.js +82 -23
  32. package/cjs/document/data-type/omit-type.js +11 -0
  33. package/cjs/document/data-type/partial-type.js +13 -0
  34. package/cjs/document/data-type/pick-type.js +11 -0
  35. package/cjs/document/data-type/primitive-types/any.type.js +26 -0
  36. package/cjs/document/data-type/primitive-types/bigint.type.js +35 -0
  37. package/cjs/document/data-type/{builtin → primitive-types}/boolean.type.js +17 -3
  38. package/cjs/document/data-type/primitive-types/index.js +11 -0
  39. package/cjs/document/data-type/primitive-types/integer.type.js +35 -0
  40. package/cjs/document/data-type/primitive-types/null.type.js +30 -0
  41. package/cjs/document/data-type/primitive-types/number.type.js +47 -0
  42. package/cjs/document/data-type/{builtin → primitive-types}/object.type.js +9 -2
  43. package/cjs/document/data-type/primitive-types/string.type.js +67 -0
  44. package/cjs/document/data-type/required-type.js +13 -0
  45. package/cjs/document/data-type/simple-type.js +99 -14
  46. package/cjs/document/data-type/utils/create-mapped-class.js +55 -0
  47. package/cjs/document/data-type/utils/get-is-inherited-predicate-fn.js +15 -0
  48. package/cjs/document/{data-type/field-decorator.js → decorators/api-field-decorator.js} +7 -7
  49. package/cjs/document/{data-type → decorators}/complex-type.decorator.js +11 -1
  50. package/cjs/document/decorators/http-controller.decorator.js +142 -0
  51. package/cjs/document/decorators/http-operation-entity.decorator.js +498 -0
  52. package/cjs/document/decorators/http-operation.decorator.js +187 -0
  53. package/cjs/document/decorators/simple-type.decorator.js +67 -0
  54. package/cjs/document/factory/api-document.factory.js +181 -0
  55. package/cjs/document/factory/data-type.factory.js +539 -0
  56. package/cjs/document/factory/http-api.factory.js +317 -0
  57. package/cjs/document/http/http-api.js +40 -0
  58. package/cjs/document/http/http-controller.js +157 -0
  59. package/cjs/document/http/http-media-type.js +70 -0
  60. package/cjs/document/http/http-multipart-field.js +33 -0
  61. package/cjs/document/http/http-operation-response.js +43 -0
  62. package/cjs/document/http/http-operation.js +106 -0
  63. package/cjs/document/http/http-parameter.js +46 -0
  64. package/cjs/document/http/http-request-body.js +25 -0
  65. package/cjs/document/http/http-status-range.js +40 -0
  66. package/cjs/document/index.js +35 -22
  67. package/cjs/document/utils/inspect.util.js +3 -3
  68. package/cjs/document/utils/parse-regexp.util.js +22 -0
  69. package/cjs/exception/http-errors/bad-request.error.js +3 -3
  70. package/cjs/exception/http-errors/conflict.error.js +3 -3
  71. package/cjs/exception/http-errors/failed-dependency.error.js +3 -3
  72. package/cjs/exception/http-errors/forbidden.error.js +3 -3
  73. package/cjs/exception/http-errors/internal-server.error.js +3 -3
  74. package/cjs/exception/http-errors/method-not-allowed.error.js +3 -3
  75. package/cjs/exception/http-errors/not-acceptable.error.js +3 -3
  76. package/cjs/exception/http-errors/not-found.error.js +3 -3
  77. package/cjs/exception/{resource-errors → http-errors}/permission.error.js +2 -2
  78. package/cjs/exception/{resource-errors → http-errors}/resource-conflict.error.js +3 -3
  79. package/cjs/exception/{resource-errors → http-errors}/resource-not.available.error.js +5 -5
  80. package/cjs/exception/http-errors/unauthorized.error.js +3 -3
  81. package/cjs/exception/http-errors/unprocessable-entity.error.js +3 -3
  82. package/cjs/exception/index.js +6 -6
  83. package/cjs/exception/issue-severity.enum.js +1 -1
  84. package/cjs/exception/opra-exception.js +5 -16
  85. package/cjs/exception/opra-http-error.js +25 -0
  86. package/cjs/filter/antlr/OpraFilterLexer.js +259 -193
  87. package/cjs/filter/antlr/OpraFilterParser.js +165 -166
  88. package/cjs/filter/ast/expressions/arithmetic-expression.js +1 -1
  89. package/cjs/filter/ast/expressions/logical-expression.js +1 -3
  90. package/cjs/filter/ast/index.js +1 -1
  91. package/cjs/filter/ast/terms/number-literal.js +1 -3
  92. package/cjs/filter/ast/terms/time-literal.js +6 -4
  93. package/cjs/filter/build.js +1 -5
  94. package/cjs/filter/filter-rules.js +95 -0
  95. package/cjs/filter/filter-tree-visitor.js +4 -7
  96. package/cjs/filter/opra-filter.ns.js +2 -2
  97. package/cjs/filter/parse.js +1 -3
  98. package/cjs/filter/utils.js +1 -3
  99. package/cjs/helpers/function-utils.js +2 -11
  100. package/cjs/helpers/get-stack-filename.js +28 -4
  101. package/cjs/helpers/index.js +2 -2
  102. package/cjs/helpers/mixin-utils.js +6 -8
  103. package/cjs/helpers/monkey-patches.js +14 -0
  104. package/cjs/helpers/object-utils.js +4 -5
  105. package/cjs/helpers/parse-fields-projection.js +65 -0
  106. package/cjs/helpers/responsive-map.js +95 -118
  107. package/cjs/helpers/type-guards.js +22 -29
  108. package/cjs/http/enums/http-status-messages.js +63 -63
  109. package/cjs/http/enums/mime-types.enum.js +17 -0
  110. package/cjs/http/index.js +1 -2
  111. package/cjs/i18n/i18n.js +12 -7
  112. package/cjs/i18n/index.js +1 -1
  113. package/cjs/i18n/translate.js +2 -2
  114. package/cjs/index.js +2 -2
  115. package/cjs/schema/http/http-controller.interface.js +11 -0
  116. package/cjs/schema/http/http-operation.interface.js +7 -0
  117. package/cjs/schema/index.js +27 -2
  118. package/cjs/schema/type-guards.js +8 -30
  119. package/cjs/schema/value.interface.js +2 -0
  120. package/esm/document/api-document.js +117 -22
  121. package/esm/document/common/api-base.js +23 -0
  122. package/esm/document/common/data-type-map.js +62 -0
  123. package/esm/document/common/document-element.js +29 -0
  124. package/esm/document/common/document-init-context.js +65 -0
  125. package/esm/document/common/document-node.js +120 -0
  126. package/esm/document/common/opra-document-error.js +11 -0
  127. package/esm/document/common/value.js +30 -0
  128. package/esm/document/constants.js +12 -6
  129. package/esm/document/data-type/api-field.js +66 -0
  130. package/esm/document/data-type/complex-type-base.js +185 -0
  131. package/esm/document/data-type/complex-type.js +91 -11
  132. package/esm/document/data-type/data-type.js +33 -24
  133. package/esm/document/data-type/enum-type.js +96 -36
  134. package/esm/document/data-type/extended-types/base64.type.js +27 -0
  135. package/esm/document/data-type/extended-types/date-string.type.js +48 -0
  136. package/esm/document/data-type/extended-types/date-time-string.type.js +51 -0
  137. package/esm/document/data-type/extended-types/date-time.type.js +62 -0
  138. package/esm/document/data-type/extended-types/date.type.js +59 -0
  139. package/esm/document/data-type/extended-types/email.type.js +91 -0
  140. package/esm/document/data-type/extended-types/field-path.type.js +56 -0
  141. package/esm/document/data-type/extended-types/filter.type.js +76 -0
  142. package/esm/document/data-type/extended-types/index.js +13 -0
  143. package/esm/document/data-type/extended-types/object-id.type.js +27 -0
  144. package/esm/document/data-type/extended-types/operation-result.type.js +63 -0
  145. package/esm/document/data-type/extended-types/time.type.js +51 -0
  146. package/esm/document/data-type/extended-types/url.type.js +27 -0
  147. package/esm/document/data-type/extended-types/uuid.type.js +33 -0
  148. package/esm/document/data-type/mapped-type.js +84 -57
  149. package/esm/document/data-type/mixin-type.js +84 -24
  150. package/esm/document/data-type/omit-type.js +7 -0
  151. package/esm/document/data-type/partial-type.js +9 -0
  152. package/esm/document/data-type/pick-type.js +7 -0
  153. package/esm/document/data-type/primitive-types/any.type.js +23 -0
  154. package/esm/document/data-type/primitive-types/bigint.type.js +32 -0
  155. package/esm/document/data-type/primitive-types/boolean.type.js +27 -0
  156. package/esm/document/data-type/primitive-types/index.js +8 -0
  157. package/esm/document/data-type/primitive-types/integer.type.js +32 -0
  158. package/esm/document/data-type/primitive-types/null.type.js +27 -0
  159. package/esm/document/data-type/primitive-types/number.type.js +44 -0
  160. package/esm/document/data-type/primitive-types/object.type.js +20 -0
  161. package/esm/document/data-type/primitive-types/string.type.js +64 -0
  162. package/esm/document/data-type/required-type.js +9 -0
  163. package/esm/document/data-type/simple-type.js +98 -12
  164. package/esm/document/data-type/utils/create-mapped-class.js +51 -0
  165. package/esm/document/data-type/utils/get-is-inherited-predicate-fn.js +11 -0
  166. package/esm/document/{data-type/field-decorator.js → decorators/api-field-decorator.js} +5 -5
  167. package/esm/document/{data-type → decorators}/complex-type.decorator.js +12 -2
  168. package/esm/document/decorators/http-controller.decorator.js +137 -0
  169. package/esm/document/decorators/http-operation-entity.decorator.js +496 -0
  170. package/esm/document/decorators/http-operation.decorator.js +182 -0
  171. package/esm/document/decorators/simple-type.decorator.js +61 -0
  172. package/esm/document/factory/api-document.factory.js +176 -0
  173. package/esm/document/factory/data-type.factory.js +535 -0
  174. package/esm/document/factory/http-api.factory.js +313 -0
  175. package/esm/document/http/http-api.js +36 -0
  176. package/esm/document/http/http-controller.js +153 -0
  177. package/esm/document/http/http-media-type.js +67 -0
  178. package/esm/document/http/http-multipart-field.js +29 -0
  179. package/esm/document/http/http-operation-response.js +39 -0
  180. package/esm/document/http/http-operation.js +102 -0
  181. package/esm/document/http/http-parameter.js +43 -0
  182. package/esm/document/http/http-request-body.js +21 -0
  183. package/esm/document/http/http-status-range.js +36 -0
  184. package/esm/document/index.js +34 -22
  185. package/esm/document/utils/inspect.util.js +3 -3
  186. package/esm/document/utils/parse-regexp.util.js +18 -0
  187. package/esm/exception/http-errors/bad-request.error.js +3 -3
  188. package/esm/exception/http-errors/conflict.error.js +3 -3
  189. package/esm/exception/http-errors/failed-dependency.error.js +3 -3
  190. package/esm/exception/http-errors/forbidden.error.js +3 -3
  191. package/esm/exception/http-errors/internal-server.error.js +3 -3
  192. package/esm/exception/http-errors/method-not-allowed.error.js +3 -3
  193. package/esm/exception/http-errors/not-acceptable.error.js +3 -3
  194. package/esm/exception/http-errors/not-found.error.js +3 -3
  195. package/esm/exception/{resource-errors → http-errors}/permission.error.js +2 -2
  196. package/esm/exception/{resource-errors → http-errors}/resource-conflict.error.js +3 -3
  197. package/esm/exception/{resource-errors → http-errors}/resource-not.available.error.js +5 -5
  198. package/esm/exception/http-errors/unauthorized.error.js +3 -3
  199. package/esm/exception/http-errors/unprocessable-entity.error.js +3 -3
  200. package/esm/exception/index.js +6 -6
  201. package/esm/exception/issue-severity.enum.js +1 -1
  202. package/esm/exception/opra-exception.js +5 -16
  203. package/esm/exception/opra-http-error.js +21 -0
  204. package/esm/filter/antlr/OpraFilterLexer.js +260 -194
  205. package/esm/filter/antlr/OpraFilterListener.js +1 -1
  206. package/esm/filter/antlr/OpraFilterParser.js +166 -167
  207. package/esm/filter/ast/expressions/arithmetic-expression.js +1 -1
  208. package/esm/filter/ast/expressions/logical-expression.js +1 -3
  209. package/esm/filter/ast/index.js +1 -1
  210. package/esm/filter/ast/terms/number-literal.js +1 -3
  211. package/esm/filter/ast/terms/time-literal.js +6 -4
  212. package/esm/filter/build.js +2 -6
  213. package/esm/filter/filter-rules.js +91 -0
  214. package/esm/filter/filter-tree-visitor.js +4 -6
  215. package/esm/filter/opra-filter.ns.js +2 -2
  216. package/esm/filter/parse.js +1 -3
  217. package/esm/filter/utils.js +1 -3
  218. package/esm/helpers/function-utils.js +1 -9
  219. package/esm/helpers/get-stack-filename.js +26 -3
  220. package/esm/helpers/index.js +2 -2
  221. package/esm/helpers/mixin-utils.js +6 -8
  222. package/esm/helpers/monkey-patches.js +14 -0
  223. package/esm/helpers/object-utils.js +4 -5
  224. package/esm/helpers/parse-fields-projection.js +59 -0
  225. package/esm/helpers/responsive-map.js +95 -118
  226. package/esm/helpers/type-guards.js +22 -29
  227. package/esm/http/enums/http-status-messages.js +63 -63
  228. package/esm/http/enums/mime-types.enum.js +14 -0
  229. package/esm/http/index.js +1 -2
  230. package/esm/i18n/i18n.js +12 -7
  231. package/esm/i18n/index.js +1 -1
  232. package/esm/i18n/translate.js +2 -2
  233. package/esm/index.js +2 -2
  234. package/esm/schema/http/http-controller.interface.js +8 -0
  235. package/esm/schema/http/http-operation.interface.js +4 -0
  236. package/esm/schema/index.js +27 -2
  237. package/esm/schema/type-guards.js +6 -24
  238. package/esm/schema/value.interface.js +1 -0
  239. package/package.json +17 -15
  240. package/types/document/api-document.d.ts +28 -51
  241. package/types/document/common/api-base.d.ts +17 -0
  242. package/types/document/common/data-type-map.d.ts +23 -0
  243. package/types/document/common/document-element.d.ts +23 -0
  244. package/types/document/common/document-init-context.d.ts +17 -0
  245. package/types/document/common/document-node.d.ts +65 -0
  246. package/types/document/common/opra-document-error.d.ts +12 -0
  247. package/types/document/common/value.d.ts +48 -0
  248. package/types/document/constants.d.ts +9 -3
  249. package/types/document/data-type/api-field.d.ts +67 -0
  250. package/types/document/data-type/complex-type-base.d.ts +80 -0
  251. package/types/document/data-type/complex-type.d.ts +61 -35
  252. package/types/document/data-type/data-type.d.ts +51 -46
  253. package/types/document/data-type/enum-type.d.ts +59 -23
  254. package/types/document/data-type/extended-types/base64.type.d.ts +7 -0
  255. package/types/document/data-type/extended-types/date-string.type.d.ts +9 -0
  256. package/types/document/data-type/extended-types/date-time-string.type.d.ts +9 -0
  257. package/types/document/data-type/extended-types/date-time.type.d.ts +9 -0
  258. package/types/document/data-type/extended-types/date.type.d.ts +9 -0
  259. package/types/document/data-type/extended-types/email.type.d.ts +16 -0
  260. package/types/document/data-type/extended-types/field-path.type.d.ts +15 -0
  261. package/types/document/data-type/extended-types/filter.type.d.ts +16 -0
  262. package/types/document/data-type/extended-types/index.d.ts +13 -0
  263. package/types/document/data-type/extended-types/object-id.type.d.ts +7 -0
  264. package/types/document/{resource/types → data-type/extended-types}/operation-result.type.d.ts +7 -6
  265. package/types/document/data-type/extended-types/time.type.d.ts +9 -0
  266. package/types/document/data-type/extended-types/url.type.d.ts +7 -0
  267. package/types/document/data-type/extended-types/uuid.type.d.ts +8 -0
  268. package/types/document/data-type/mapped-type.d.ts +55 -44
  269. package/types/document/data-type/mixin-type.d.ts +65 -26
  270. package/types/document/data-type/omit-type.d.ts +15 -0
  271. package/types/document/data-type/partial-type.d.ts +28 -0
  272. package/types/document/data-type/pick-type.d.ts +16 -0
  273. package/types/document/data-type/primitive-types/any.type.d.ts +7 -0
  274. package/types/document/data-type/primitive-types/bigint.type.d.ts +8 -0
  275. package/types/document/data-type/primitive-types/boolean.type.d.ts +7 -0
  276. package/types/document/data-type/primitive-types/index.d.ts +8 -0
  277. package/types/document/data-type/primitive-types/integer.type.d.ts +8 -0
  278. package/types/document/data-type/primitive-types/null.type.d.ts +7 -0
  279. package/types/document/data-type/primitive-types/number.type.d.ts +9 -0
  280. package/types/document/data-type/primitive-types/object.type.d.ts +3 -0
  281. package/types/document/data-type/primitive-types/string.type.d.ts +11 -0
  282. package/types/document/data-type/required-type.d.ts +22 -0
  283. package/types/document/data-type/simple-type.d.ts +65 -24
  284. package/types/document/data-type/utils/create-mapped-class.d.ts +3 -0
  285. package/types/document/data-type/utils/get-is-inherited-predicate-fn.d.ts +1 -0
  286. package/types/document/decorators/api-field-decorator.d.ts +5 -0
  287. package/types/document/decorators/complex-type.decorator.d.ts +2 -0
  288. package/types/document/decorators/http-controller.decorator.d.ts +15 -0
  289. package/types/document/decorators/http-operation-entity.decorator.d.ts +100 -0
  290. package/types/document/decorators/http-operation.decorator.d.ts +30 -0
  291. package/types/document/decorators/simple-type.decorator.d.ts +20 -0
  292. package/types/document/factory/api-document.factory.d.ts +35 -0
  293. package/types/document/factory/data-type.factory.d.ts +108 -0
  294. package/types/document/factory/http-api.factory.d.ts +60 -0
  295. package/types/document/http/http-api.d.ts +23 -0
  296. package/types/document/http/http-controller.d.ts +93 -0
  297. package/types/document/http/http-media-type.d.ts +59 -0
  298. package/types/document/http/http-multipart-field.d.ts +26 -0
  299. package/types/document/http/http-operation-response.d.ts +36 -0
  300. package/types/document/http/http-operation.d.ts +85 -0
  301. package/types/document/http/http-parameter.d.ts +51 -0
  302. package/types/document/http/http-request-body.d.ts +31 -0
  303. package/types/document/http/http-status-range.d.ts +14 -0
  304. package/types/document/index.d.ts +33 -22
  305. package/types/document/utils/parse-regexp.util.d.ts +4 -0
  306. package/types/exception/http-errors/bad-request.error.d.ts +2 -2
  307. package/types/exception/http-errors/conflict.error.d.ts +2 -2
  308. package/types/exception/http-errors/failed-dependency.error.d.ts +2 -2
  309. package/types/exception/http-errors/forbidden.error.d.ts +2 -2
  310. package/types/exception/http-errors/internal-server.error.d.ts +2 -2
  311. package/types/exception/http-errors/method-not-allowed.error.d.ts +2 -2
  312. package/types/exception/http-errors/not-acceptable.error.d.ts +2 -2
  313. package/types/exception/http-errors/not-found.error.d.ts +2 -2
  314. package/types/exception/{resource-errors → http-errors}/permission.error.d.ts +1 -1
  315. package/types/exception/http-errors/resource-conflict.error.d.ts +5 -0
  316. package/types/exception/{resource-errors → http-errors}/resource-not.available.error.d.ts +2 -2
  317. package/types/exception/http-errors/unauthorized.error.d.ts +2 -2
  318. package/types/exception/http-errors/unprocessable-entity.error.d.ts +2 -2
  319. package/types/exception/index.d.ts +6 -6
  320. package/types/exception/opra-exception.d.ts +1 -5
  321. package/types/exception/opra-http-error.d.ts +13 -0
  322. package/types/filter/antlr/OpraFilterLexer.d.ts +1 -1
  323. package/types/filter/antlr/OpraFilterListener.d.ts +2 -2
  324. package/types/filter/antlr/OpraFilterParser.d.ts +2 -2
  325. package/types/filter/antlr/OpraFilterVisitor.d.ts +1 -1
  326. package/types/filter/ast/index.d.ts +1 -1
  327. package/types/filter/ast/terms/qualified-identifier.d.ts +1 -1
  328. package/types/filter/filter-rules.d.ts +24 -0
  329. package/types/filter/filter-tree-visitor.d.ts +1 -3
  330. package/types/filter/opra-filter.ns.d.ts +2 -2
  331. package/types/helpers/function-utils.d.ts +2 -4
  332. package/types/helpers/get-stack-filename.d.ts +1 -0
  333. package/types/helpers/index.d.ts +2 -2
  334. package/types/helpers/monkey-patches.d.ts +0 -0
  335. package/types/helpers/parse-fields-projection.d.ts +11 -0
  336. package/types/helpers/responsive-map.d.ts +8 -4
  337. package/types/helpers/type-guards.d.ts +2 -2
  338. package/types/http/enums/http-status-messages.d.ts +63 -63
  339. package/types/http/enums/mime-types.enum.d.ts +12 -0
  340. package/types/http/index.d.ts +1 -2
  341. package/types/i18n/i18n.d.ts +23 -20
  342. package/types/index.d.ts +1 -1
  343. package/types/schema/data-type/complex-type.interface.d.ts +3 -3
  344. package/types/schema/data-type/data-type.interface.d.ts +6 -0
  345. package/types/schema/data-type/enum-type.interface.d.ts +3 -4
  346. package/types/schema/data-type/field.interface.d.ts +2 -10
  347. package/types/schema/data-type/mapped-type.interface.d.ts +7 -3
  348. package/types/schema/data-type/mixin-type.interface.d.ts +2 -2
  349. package/types/schema/data-type/simple-type.interface.d.ts +39 -7
  350. package/types/schema/data-type-container.interface.d.ts +7 -0
  351. package/types/schema/document.interface.d.ts +67 -0
  352. package/types/schema/http/http-controller.interface.d.ts +24 -0
  353. package/types/schema/http/http-media-type.interface.d.ts +65 -0
  354. package/types/schema/http/http-multipart-field.interface.d.ts +7 -0
  355. package/types/schema/http/http-operation-response.interface.d.ts +24 -0
  356. package/types/schema/http/http-operation.interface.d.ts +23 -0
  357. package/types/schema/http/http-parameter.interface.d.ts +32 -0
  358. package/types/schema/http/http-request-body.interface.d.ts +29 -0
  359. package/types/schema/http/http-status-range.interface.d.ts +4 -0
  360. package/types/schema/index.d.ts +62 -2
  361. package/types/schema/type-guards.d.ts +2 -10
  362. package/types/schema/types.d.ts +3 -0
  363. package/types/schema/value.interface.d.ts +23 -0
  364. package/types/types.d.ts +1 -14
  365. package/cjs/document/data-type/builtin/any.type.js +0 -13
  366. package/cjs/document/data-type/builtin/approx-date.type.js +0 -21
  367. package/cjs/document/data-type/builtin/approx-datetime.type.js +0 -24
  368. package/cjs/document/data-type/builtin/base64.type.js +0 -16
  369. package/cjs/document/data-type/builtin/bigint.type.js +0 -16
  370. package/cjs/document/data-type/builtin/date.type.js +0 -17
  371. package/cjs/document/data-type/builtin/datetime.type.js +0 -21
  372. package/cjs/document/data-type/builtin/email.type.js +0 -16
  373. package/cjs/document/data-type/builtin/index.js +0 -21
  374. package/cjs/document/data-type/builtin/integer.type.js +0 -16
  375. package/cjs/document/data-type/builtin/null.type.js +0 -16
  376. package/cjs/document/data-type/builtin/number.type.js +0 -16
  377. package/cjs/document/data-type/builtin/object-id.type.js +0 -16
  378. package/cjs/document/data-type/builtin/string.type.js +0 -16
  379. package/cjs/document/data-type/builtin/time.type.js +0 -23
  380. package/cjs/document/data-type/builtin/url.type.js +0 -16
  381. package/cjs/document/data-type/builtin/uuid.type.js +0 -16
  382. package/cjs/document/data-type/complex-type-class.js +0 -274
  383. package/cjs/document/data-type/enum-type-class.js +0 -39
  384. package/cjs/document/data-type/field-class.js +0 -67
  385. package/cjs/document/data-type/field.js +0 -25
  386. package/cjs/document/data-type/mapped-type-class.js +0 -53
  387. package/cjs/document/data-type/mixin-type-class.js +0 -38
  388. package/cjs/document/data-type/simple-type-class.js +0 -37
  389. package/cjs/document/data-type/simple-type.decorator.js +0 -20
  390. package/cjs/document/document-base.js +0 -24
  391. package/cjs/document/factory/api-document-factory.js +0 -262
  392. package/cjs/document/factory/type-document-factory.js +0 -326
  393. package/cjs/document/resource/action-decorator.js +0 -33
  394. package/cjs/document/resource/action.js +0 -34
  395. package/cjs/document/resource/collection-class.js +0 -257
  396. package/cjs/document/resource/collection-decorator.js +0 -211
  397. package/cjs/document/resource/collection.js +0 -25
  398. package/cjs/document/resource/container-class.js +0 -84
  399. package/cjs/document/resource/container-decorator.js +0 -24
  400. package/cjs/document/resource/container.js +0 -29
  401. package/cjs/document/resource/crud-operation-decorator.js +0 -28
  402. package/cjs/document/resource/crud-operation.js +0 -49
  403. package/cjs/document/resource/crud-resource.js +0 -34
  404. package/cjs/document/resource/endpoint.js +0 -59
  405. package/cjs/document/resource/enums/metadata-mode.enum.js +0 -19
  406. package/cjs/document/resource/parameter.js +0 -50
  407. package/cjs/document/resource/resource-decorator.js +0 -33
  408. package/cjs/document/resource/resource.js +0 -60
  409. package/cjs/document/resource/singleton-class.js +0 -83
  410. package/cjs/document/resource/singleton-decorator.js +0 -57
  411. package/cjs/document/resource/singleton.js +0 -25
  412. package/cjs/document/resource/storage-class.js +0 -18
  413. package/cjs/document/resource/storage-decorator.js +0 -70
  414. package/cjs/document/resource/storage.js +0 -25
  415. package/cjs/document/resource/types/operation-result.type.js +0 -45
  416. package/cjs/document/type-document.js +0 -204
  417. package/cjs/exception/wrap-exception.js +0 -43
  418. package/cjs/helpers/is-url-string.js +0 -13
  419. package/cjs/helpers/path-to-object-tree.js +0 -28
  420. package/cjs/http/opra-url-path.js +0 -261
  421. package/cjs/http/opra-url.js +0 -250
  422. package/cjs/schema/opra-schema.ns.js +0 -22
  423. package/cjs/schema/resource/collection.interface.js +0 -7
  424. package/cjs/schema/resource/container.interface.js +0 -7
  425. package/cjs/schema/resource/singleton.interface.js +0 -7
  426. package/cjs/schema/resource/storage.interface.js +0 -7
  427. package/esm/document/data-type/builtin/any.type.js +0 -10
  428. package/esm/document/data-type/builtin/approx-date.type.js +0 -18
  429. package/esm/document/data-type/builtin/approx-datetime.type.js +0 -21
  430. package/esm/document/data-type/builtin/base64.type.js +0 -13
  431. package/esm/document/data-type/builtin/bigint.type.js +0 -13
  432. package/esm/document/data-type/builtin/boolean.type.js +0 -13
  433. package/esm/document/data-type/builtin/date.type.js +0 -14
  434. package/esm/document/data-type/builtin/datetime.type.js +0 -18
  435. package/esm/document/data-type/builtin/email.type.js +0 -13
  436. package/esm/document/data-type/builtin/index.js +0 -18
  437. package/esm/document/data-type/builtin/integer.type.js +0 -13
  438. package/esm/document/data-type/builtin/null.type.js +0 -13
  439. package/esm/document/data-type/builtin/number.type.js +0 -13
  440. package/esm/document/data-type/builtin/object-id.type.js +0 -13
  441. package/esm/document/data-type/builtin/object.type.js +0 -13
  442. package/esm/document/data-type/builtin/string.type.js +0 -13
  443. package/esm/document/data-type/builtin/time.type.js +0 -20
  444. package/esm/document/data-type/builtin/url.type.js +0 -13
  445. package/esm/document/data-type/builtin/uuid.type.js +0 -13
  446. package/esm/document/data-type/complex-type-class.js +0 -270
  447. package/esm/document/data-type/enum-type-class.js +0 -35
  448. package/esm/document/data-type/field-class.js +0 -63
  449. package/esm/document/data-type/field.js +0 -21
  450. package/esm/document/data-type/mapped-type-class.js +0 -48
  451. package/esm/document/data-type/mixin-type-class.js +0 -34
  452. package/esm/document/data-type/simple-type-class.js +0 -33
  453. package/esm/document/data-type/simple-type.decorator.js +0 -15
  454. package/esm/document/document-base.js +0 -20
  455. package/esm/document/factory/api-document-factory.js +0 -258
  456. package/esm/document/factory/type-document-factory.js +0 -322
  457. package/esm/document/resource/action-decorator.js +0 -29
  458. package/esm/document/resource/action.js +0 -30
  459. package/esm/document/resource/collection-class.js +0 -253
  460. package/esm/document/resource/collection-decorator.js +0 -207
  461. package/esm/document/resource/collection.js +0 -21
  462. package/esm/document/resource/container-class.js +0 -80
  463. package/esm/document/resource/container-decorator.js +0 -20
  464. package/esm/document/resource/container.js +0 -25
  465. package/esm/document/resource/crud-operation-decorator.js +0 -24
  466. package/esm/document/resource/crud-operation.js +0 -45
  467. package/esm/document/resource/crud-resource.js +0 -30
  468. package/esm/document/resource/endpoint.js +0 -55
  469. package/esm/document/resource/enums/metadata-mode.enum.js +0 -16
  470. package/esm/document/resource/parameter.js +0 -46
  471. package/esm/document/resource/resource-decorator.js +0 -28
  472. package/esm/document/resource/resource.js +0 -56
  473. package/esm/document/resource/singleton-class.js +0 -79
  474. package/esm/document/resource/singleton-decorator.js +0 -53
  475. package/esm/document/resource/singleton.js +0 -21
  476. package/esm/document/resource/storage-class.js +0 -14
  477. package/esm/document/resource/storage-decorator.js +0 -66
  478. package/esm/document/resource/storage.js +0 -21
  479. package/esm/document/resource/types/operation-result.type.js +0 -42
  480. package/esm/document/type-document.js +0 -200
  481. package/esm/exception/wrap-exception.js +0 -39
  482. package/esm/helpers/is-url-string.js +0 -8
  483. package/esm/helpers/path-to-object-tree.js +0 -24
  484. package/esm/http/opra-url-path.js +0 -255
  485. package/esm/http/opra-url.js +0 -246
  486. package/esm/schema/opra-schema.ns.js +0 -19
  487. package/esm/schema/resource/collection.interface.js +0 -4
  488. package/esm/schema/resource/container.interface.js +0 -4
  489. package/esm/schema/resource/singleton.interface.js +0 -4
  490. package/esm/schema/resource/storage.interface.js +0 -4
  491. package/types/document/data-type/builtin/any.type.d.ts +0 -2
  492. package/types/document/data-type/builtin/approx-date.type.d.ts +0 -2
  493. package/types/document/data-type/builtin/approx-datetime.type.d.ts +0 -2
  494. package/types/document/data-type/builtin/base64.type.d.ts +0 -2
  495. package/types/document/data-type/builtin/bigint.type.d.ts +0 -2
  496. package/types/document/data-type/builtin/boolean.type.d.ts +0 -2
  497. package/types/document/data-type/builtin/date.type.d.ts +0 -2
  498. package/types/document/data-type/builtin/datetime.type.d.ts +0 -2
  499. package/types/document/data-type/builtin/email.type.d.ts +0 -2
  500. package/types/document/data-type/builtin/index.d.ts +0 -18
  501. package/types/document/data-type/builtin/integer.type.d.ts +0 -2
  502. package/types/document/data-type/builtin/null.type.d.ts +0 -2
  503. package/types/document/data-type/builtin/number.type.d.ts +0 -2
  504. package/types/document/data-type/builtin/object-id.type.d.ts +0 -2
  505. package/types/document/data-type/builtin/object.type.d.ts +0 -2
  506. package/types/document/data-type/builtin/string.type.d.ts +0 -2
  507. package/types/document/data-type/builtin/time.type.d.ts +0 -2
  508. package/types/document/data-type/builtin/url.type.d.ts +0 -2
  509. package/types/document/data-type/builtin/uuid.type.d.ts +0 -2
  510. package/types/document/data-type/complex-type-class.d.ts +0 -36
  511. package/types/document/data-type/complex-type.decorator.d.ts +0 -2
  512. package/types/document/data-type/enum-type-class.d.ts +0 -18
  513. package/types/document/data-type/field-class.d.ts +0 -31
  514. package/types/document/data-type/field-decorator.d.ts +0 -5
  515. package/types/document/data-type/field.d.ts +0 -46
  516. package/types/document/data-type/mapped-type-class.d.ts +0 -18
  517. package/types/document/data-type/mixin-type-class.d.ts +0 -12
  518. package/types/document/data-type/simple-type-class.d.ts +0 -19
  519. package/types/document/data-type/simple-type.decorator.d.ts +0 -2
  520. package/types/document/document-base.d.ts +0 -10
  521. package/types/document/factory/api-document-factory.d.ts +0 -49
  522. package/types/document/factory/type-document-factory.d.ts +0 -57
  523. package/types/document/interfaces/collection.interface.d.ts +0 -10
  524. package/types/document/interfaces/singleton.interface.d.ts +0 -7
  525. package/types/document/interfaces/storage.interface.d.ts +0 -8
  526. package/types/document/resource/action-decorator.d.ts +0 -8
  527. package/types/document/resource/action.d.ts +0 -30
  528. package/types/document/resource/collection-class.d.ts +0 -20
  529. package/types/document/resource/collection-decorator.d.ts +0 -204
  530. package/types/document/resource/collection.d.ts +0 -62
  531. package/types/document/resource/container-class.d.ts +0 -66
  532. package/types/document/resource/container-decorator.d.ts +0 -37
  533. package/types/document/resource/container.d.ts +0 -27
  534. package/types/document/resource/crud-operation-decorator.d.ts +0 -6
  535. package/types/document/resource/crud-operation.d.ts +0 -32
  536. package/types/document/resource/crud-resource.d.ts +0 -16
  537. package/types/document/resource/endpoint.d.ts +0 -32
  538. package/types/document/resource/enums/metadata-mode.enum.d.ts +0 -5
  539. package/types/document/resource/parameter.d.ts +0 -35
  540. package/types/document/resource/resource-decorator.d.ts +0 -40
  541. package/types/document/resource/resource.d.ts +0 -35
  542. package/types/document/resource/singleton-class.d.ts +0 -21
  543. package/types/document/resource/singleton-decorator.d.ts +0 -131
  544. package/types/document/resource/singleton.d.ts +0 -49
  545. package/types/document/resource/storage-class.d.ts +0 -17
  546. package/types/document/resource/storage-decorator.d.ts +0 -100
  547. package/types/document/resource/storage.d.ts +0 -39
  548. package/types/document/type-document.d.ts +0 -79
  549. package/types/exception/resource-errors/resource-conflict.error.d.ts +0 -5
  550. package/types/exception/wrap-exception.d.ts +0 -2
  551. package/types/helpers/is-url-string.d.ts +0 -2
  552. package/types/helpers/path-to-object-tree.d.ts +0 -4
  553. package/types/http/opra-url-path.d.ts +0 -55
  554. package/types/http/opra-url.d.ts +0 -66
  555. package/types/schema/document/api-document.interface.d.ts +0 -11
  556. package/types/schema/document/document-base.interface.d.ts +0 -24
  557. package/types/schema/document/type-document.interface.d.ts +0 -6
  558. package/types/schema/opra-schema.ns.d.ts +0 -19
  559. package/types/schema/resource/action.interface.d.ts +0 -6
  560. package/types/schema/resource/collection.interface.d.ts +0 -55
  561. package/types/schema/resource/container.interface.d.ts +0 -10
  562. package/types/schema/resource/endpoint.interface.d.ts +0 -13
  563. package/types/schema/resource/resource.interface.d.ts +0 -15
  564. package/types/schema/resource/singleton.interface.d.ts +0 -25
  565. package/types/schema/resource/storage.interface.d.ts +0 -61
  566. /package/cjs/{document/interfaces/collection.interface.js → schema/data-type-container.interface.js} +0 -0
  567. /package/cjs/{document/interfaces/singleton.interface.js → schema/document.interface.js} +0 -0
  568. /package/cjs/{document/interfaces/storage.interface.js → schema/http/http-media-type.interface.js} +0 -0
  569. /package/cjs/schema/{document/api-document.interface.js → http/http-multipart-field.interface.js} +0 -0
  570. /package/cjs/schema/{document/document-base.interface.js → http/http-operation-response.interface.js} +0 -0
  571. /package/cjs/schema/{document/type-document.interface.js → http/http-parameter.interface.js} +0 -0
  572. /package/cjs/schema/{resource/action.interface.js → http/http-request-body.interface.js} +0 -0
  573. /package/cjs/schema/{resource/endpoint.interface.js → http/http-status-range.interface.js} +0 -0
  574. /package/cjs/schema/{resource/resource.interface.js → types.js} +0 -0
  575. /package/esm/{document/interfaces/collection.interface.js → schema/data-type-container.interface.js} +0 -0
  576. /package/esm/{document/interfaces/singleton.interface.js → schema/document.interface.js} +0 -0
  577. /package/esm/{document/interfaces/storage.interface.js → schema/http/http-media-type.interface.js} +0 -0
  578. /package/esm/schema/{document/api-document.interface.js → http/http-multipart-field.interface.js} +0 -0
  579. /package/esm/schema/{document/document-base.interface.js → http/http-operation-response.interface.js} +0 -0
  580. /package/esm/schema/{document/type-document.interface.js → http/http-parameter.interface.js} +0 -0
  581. /package/esm/schema/{resource/action.interface.js → http/http-request-body.interface.js} +0 -0
  582. /package/esm/schema/{resource/endpoint.interface.js → http/http-status-range.interface.js} +0 -0
  583. /package/esm/schema/{resource/resource.interface.js → types.js} +0 -0
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HttpOperation = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const node_path_1 = tslib_1.__importDefault(require("node:path"));
6
+ const ts_gems_1 = require("ts-gems");
7
+ const index_js_1 = require("../../helpers/index.js");
8
+ const index_js_2 = require("../../schema/index.js");
9
+ const data_type_map_js_1 = require("../common/data-type-map.js");
10
+ const document_element_js_1 = require("../common/document-element.js");
11
+ const constants_js_1 = require("../constants.js");
12
+ const http_operation_decorator_js_1 = require("../decorators/http-operation.decorator.js");
13
+ /**
14
+ * HttpOperation
15
+ */
16
+ exports.HttpOperation = function (...args) {
17
+ // Decorator
18
+ if (!this) {
19
+ const [options] = args;
20
+ const decoratorChain = [];
21
+ return exports.HttpOperation[constants_js_1.DECORATOR].call(undefined, decoratorChain, options);
22
+ }
23
+ // Constructor
24
+ const [resource, initArgs] = args;
25
+ document_element_js_1.DocumentElement.call(this, resource);
26
+ if (!constants_js_1.CLASS_NAME_PATTERN.test(initArgs.name))
27
+ throw new TypeError(`Invalid operation name (${initArgs.name})`);
28
+ const _this = (0, ts_gems_1.asMutable)(this);
29
+ _this.parameters = [];
30
+ _this.responses = [];
31
+ _this.types = _this.node[constants_js_1.kDataTypeMap] = new data_type_map_js_1.DataTypeMap();
32
+ _this.name = initArgs.name;
33
+ _this.path = initArgs.path;
34
+ _this.method = initArgs.method || 'GET';
35
+ _this.description = initArgs.description;
36
+ _this.composition = initArgs.composition;
37
+ _this.compositionOptions = initArgs.compositionOptions ? (0, index_js_1.cloneObject)(initArgs.compositionOptions) : undefined;
38
+ };
39
+ /**
40
+ * @class HttpOperation
41
+ */
42
+ class HttpOperationClass extends document_element_js_1.DocumentElement {
43
+ findParameter(paramName, location) {
44
+ const paramNameLower = paramName.toLowerCase();
45
+ let prm;
46
+ for (prm of this.parameters) {
47
+ if (location && location !== prm.location)
48
+ continue;
49
+ if (typeof prm.name === 'string') {
50
+ prm._nameLower = prm._nameLower || prm.name.toLowerCase();
51
+ if (prm._nameLower === paramNameLower)
52
+ return prm;
53
+ }
54
+ if (prm.name instanceof RegExp && prm.name.test(paramName))
55
+ return prm;
56
+ }
57
+ }
58
+ getFullUrl() {
59
+ const out = this.owner.getFullUrl();
60
+ return out ? (this.path ? node_path_1.default.posix.join(out, this.path) : out) : this.path || '/';
61
+ }
62
+ toJSON() {
63
+ const out = (0, index_js_1.omitUndefined)({
64
+ kind: index_js_2.OpraSchema.HttpOperation.Kind,
65
+ description: this.description,
66
+ method: this.method,
67
+ composition: this.composition,
68
+ requestBody: this.requestBody?.toJSON(),
69
+ });
70
+ if (this.parameters.length) {
71
+ out.parameters = [];
72
+ for (const prm of this.parameters) {
73
+ out.parameters.push(prm.toJSON());
74
+ }
75
+ }
76
+ if (this.responses.length)
77
+ out.responses = this.responses.map(r => r.toJSON());
78
+ return out;
79
+ }
80
+ }
81
+ exports.HttpOperation.prototype = HttpOperationClass.prototype;
82
+ exports.HttpOperation[constants_js_1.DECORATOR] = http_operation_decorator_js_1.HttpOperationDecoratorFactory;
83
+ exports.HttpOperation.GET = function (options) {
84
+ return (0, http_operation_decorator_js_1.HttpOperationDecoratorFactory)([], { ...options, method: 'GET' });
85
+ };
86
+ exports.HttpOperation.DELETE = function (options) {
87
+ return (0, http_operation_decorator_js_1.HttpOperationDecoratorFactory)([], { ...options, method: 'DELETE' });
88
+ };
89
+ exports.HttpOperation.HEAD = function (options) {
90
+ return (0, http_operation_decorator_js_1.HttpOperationDecoratorFactory)([], { ...options, method: 'HEAD' });
91
+ };
92
+ exports.HttpOperation.OPTIONS = function (options) {
93
+ return (0, http_operation_decorator_js_1.HttpOperationDecoratorFactory)([], { ...options, method: 'OPTIONS' });
94
+ };
95
+ exports.HttpOperation.PATCH = function (options) {
96
+ return (0, http_operation_decorator_js_1.HttpOperationDecoratorFactory)([], { ...options, method: 'PATCH' });
97
+ };
98
+ exports.HttpOperation.POST = function (options) {
99
+ return (0, http_operation_decorator_js_1.HttpOperationDecoratorFactory)([], { ...options, method: 'POST' });
100
+ };
101
+ exports.HttpOperation.PUT = function (options) {
102
+ return (0, http_operation_decorator_js_1.HttpOperationDecoratorFactory)([], { ...options, method: 'PUT' });
103
+ };
104
+ exports.HttpOperation.SEARCH = function (options) {
105
+ return (0, http_operation_decorator_js_1.HttpOperationDecoratorFactory)([], { ...options, method: 'SEARCH' });
106
+ };
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HttpParameter = void 0;
4
+ const ts_gems_1 = require("ts-gems");
5
+ const index_js_1 = require("../../helpers/index.js");
6
+ const value_js_1 = require("../common/value.js");
7
+ const parse_regexp_util_js_1 = require("../utils/parse-regexp.util.js");
8
+ exports.HttpParameter = function (owner, initArgs) {
9
+ if (!this)
10
+ throw new TypeError('"this" should be passed to call class constructor');
11
+ value_js_1.Value.call(this, owner, initArgs);
12
+ const _this = (0, ts_gems_1.asMutable)(this);
13
+ if (initArgs.name) {
14
+ _this.name =
15
+ initArgs.name instanceof RegExp
16
+ ? initArgs.name
17
+ : initArgs.name.startsWith('/')
18
+ ? (0, parse_regexp_util_js_1.parseRegExp)(initArgs.name, {
19
+ includeFlags: 'i',
20
+ excludeFlags: 'm',
21
+ })
22
+ : initArgs.name;
23
+ }
24
+ _this.location = initArgs.location;
25
+ _this.deprecated = initArgs.deprecated;
26
+ _this.required = initArgs.required;
27
+ _this.arraySeparator = initArgs.arraySeparator;
28
+ _this.keyParam = initArgs.keyParam;
29
+ };
30
+ /**
31
+ * @class HttpParameter
32
+ */
33
+ class HttpParameterClass extends value_js_1.Value {
34
+ toJSON() {
35
+ return (0, index_js_1.omitUndefined)({
36
+ ...super.toJSON(),
37
+ name: this.name,
38
+ location: this.location,
39
+ arraySeparator: this.arraySeparator,
40
+ keyParam: this.keyParam,
41
+ required: this.required,
42
+ deprecated: this.deprecated,
43
+ });
44
+ }
45
+ }
46
+ exports.HttpParameter.prototype = HttpParameterClass.prototype;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HttpRequestBody = void 0;
4
+ const index_js_1 = require("../../helpers/index.js");
5
+ const document_element_js_1 = require("../common/document-element.js");
6
+ /**
7
+ * @class HttpRequestBody
8
+ */
9
+ class HttpRequestBody extends document_element_js_1.DocumentElement {
10
+ constructor(owner) {
11
+ super(owner);
12
+ this.owner = owner;
13
+ this.content = [];
14
+ }
15
+ toJSON() {
16
+ return (0, index_js_1.omitUndefined)({
17
+ description: this.description,
18
+ required: this.required,
19
+ maxContentSize: this.maxContentSize,
20
+ content: this.content.length ? this.content.map(x => x.toJSON()) : [],
21
+ partial: this.partial,
22
+ });
23
+ }
24
+ }
25
+ exports.HttpRequestBody = HttpRequestBody;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HttpStatusRange = void 0;
4
+ const STATUS_RANGE_PATTERN = /^([1-6]\d{2})(?:-([1-6]\d{2}))?$/;
5
+ /**
6
+ * @class HttpStatusRange
7
+ */
8
+ class HttpStatusRange {
9
+ constructor(arg0, arg1) {
10
+ this.start = 0;
11
+ this.end = 0;
12
+ if (arg0 && typeof arg0 === 'object') {
13
+ this.start = arg0.start || 0;
14
+ this.end = arg0.end || 0;
15
+ }
16
+ if (typeof arg0 === 'number') {
17
+ this.start = arg0;
18
+ this.end = arg1 || this.start;
19
+ }
20
+ if (typeof arg0 === 'string') {
21
+ const m = STATUS_RANGE_PATTERN.exec(arg0);
22
+ if (!m)
23
+ throw new TypeError(`"${arg0}" is not a valid Status Code range`);
24
+ this.start = parseInt(m[1], 10);
25
+ this.end = m[2] ? parseInt(m[2], 10) : this.start;
26
+ }
27
+ }
28
+ get distance() {
29
+ return this.end - this.start;
30
+ }
31
+ toString() {
32
+ if (this.start === this.end)
33
+ return String(this.start);
34
+ return String(this.start) + '-' + String(this.end);
35
+ }
36
+ toJSON() {
37
+ return !this.end || this.start === this.end ? this.start : { start: this.start, end: this.end };
38
+ }
39
+ }
40
+ exports.HttpStatusRange = HttpStatusRange;
@@ -1,31 +1,44 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.classes = void 0;
3
4
  const tslib_1 = require("tslib");
4
5
  require("reflect-metadata");
5
- tslib_1.__exportStar(require("./constants.js"), exports);
6
+ const DataTypeFactory_ = tslib_1.__importStar(require("./factory/data-type.factory.js"));
7
+ const HttpApiFactory_ = tslib_1.__importStar(require("./factory/http-api.factory.js"));
6
8
  tslib_1.__exportStar(require("./api-document.js"), exports);
7
- tslib_1.__exportStar(require("./type-document.js"), exports);
8
- tslib_1.__exportStar(require("./factory/type-document-factory.js"), exports);
9
- tslib_1.__exportStar(require("./factory/api-document-factory.js"), exports);
10
- tslib_1.__exportStar(require("./data-type/data-type.js"), exports);
9
+ tslib_1.__exportStar(require("./common/api-base.js"), exports);
10
+ tslib_1.__exportStar(require("./common/data-type-map.js"), exports);
11
+ tslib_1.__exportStar(require("./common/document-element.js"), exports);
12
+ tslib_1.__exportStar(require("./common/document-init-context.js"), exports);
13
+ tslib_1.__exportStar(require("./common/document-node.js"), exports);
14
+ tslib_1.__exportStar(require("./common/opra-document-error.js"), exports);
15
+ tslib_1.__exportStar(require("./constants.js"), exports);
16
+ tslib_1.__exportStar(require("./data-type/api-field.js"), exports);
11
17
  tslib_1.__exportStar(require("./data-type/complex-type.js"), exports);
12
- tslib_1.__exportStar(require("./data-type/field.js"), exports);
18
+ tslib_1.__exportStar(require("./data-type/data-type.js"), exports);
13
19
  tslib_1.__exportStar(require("./data-type/enum-type.js"), exports);
20
+ tslib_1.__exportStar(require("./data-type/extended-types/index.js"), exports);
14
21
  tslib_1.__exportStar(require("./data-type/mapped-type.js"), exports);
15
- tslib_1.__exportStar(require("./data-type/simple-type.js"), exports);
16
22
  tslib_1.__exportStar(require("./data-type/mixin-type.js"), exports);
17
- tslib_1.__exportStar(require("./resource/action.js"), exports);
18
- tslib_1.__exportStar(require("./resource/collection.js"), exports);
19
- tslib_1.__exportStar(require("./resource/container.js"), exports);
20
- tslib_1.__exportStar(require("./resource/crud-resource.js"), exports);
21
- tslib_1.__exportStar(require("./resource/endpoint.js"), exports);
22
- tslib_1.__exportStar(require("./resource/crud-operation.js"), exports);
23
- tslib_1.__exportStar(require("./resource/parameter.js"), exports);
24
- tslib_1.__exportStar(require("./resource/resource.js"), exports);
25
- tslib_1.__exportStar(require("./resource/singleton.js"), exports);
26
- tslib_1.__exportStar(require("./resource/storage.js"), exports);
27
- tslib_1.__exportStar(require("./resource/enums/metadata-mode.enum.js"), exports);
28
- tslib_1.__exportStar(require("./resource/types/operation-result.type.js"), exports);
29
- tslib_1.__exportStar(require("./interfaces/collection.interface.js"), exports);
30
- tslib_1.__exportStar(require("./interfaces/singleton.interface.js"), exports);
31
- tslib_1.__exportStar(require("./interfaces/storage.interface.js"), exports);
23
+ tslib_1.__exportStar(require("./data-type/omit-type.js"), exports);
24
+ tslib_1.__exportStar(require("./data-type/partial-type.js"), exports);
25
+ tslib_1.__exportStar(require("./data-type/pick-type.js"), exports);
26
+ tslib_1.__exportStar(require("./data-type/primitive-types/index.js"), exports);
27
+ tslib_1.__exportStar(require("./data-type/required-type.js"), exports);
28
+ tslib_1.__exportStar(require("./data-type/simple-type.js"), exports);
29
+ tslib_1.__exportStar(require("./decorators/http-operation-entity.decorator.js"), exports);
30
+ tslib_1.__exportStar(require("./factory/api-document.factory.js"), exports);
31
+ tslib_1.__exportStar(require("./http/http-api.js"), exports);
32
+ tslib_1.__exportStar(require("./http/http-controller.js"), exports);
33
+ tslib_1.__exportStar(require("./http/http-media-type.js"), exports);
34
+ tslib_1.__exportStar(require("./http/http-multipart-field.js"), exports);
35
+ tslib_1.__exportStar(require("./http/http-operation.js"), exports);
36
+ tslib_1.__exportStar(require("./http/http-operation-response.js"), exports);
37
+ tslib_1.__exportStar(require("./http/http-parameter.js"), exports);
38
+ tslib_1.__exportStar(require("./http/http-request-body.js"), exports);
39
+ tslib_1.__exportStar(require("./http/http-status-range.js"), exports);
40
+ var classes;
41
+ (function (classes) {
42
+ classes.HttpApiFactory = HttpApiFactory_.HttpApiFactory;
43
+ classes.DataTypeFactory = DataTypeFactory_.DataTypeFactory;
44
+ })(classes || (exports.classes = classes = {}));
@@ -2,6 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.colorFgMagenta = exports.colorFgYellow = exports.colorReset = exports.nodeInspectCustom = void 0;
4
4
  exports.nodeInspectCustom = Symbol.for('nodejs.util.inspect.custom');
5
- exports.colorReset = "\x1b[0m";
6
- exports.colorFgYellow = "\x1b[33m";
7
- exports.colorFgMagenta = "\x1b[35m";
5
+ exports.colorReset = '\x1b[0m';
6
+ exports.colorFgYellow = '\x1b[33m';
7
+ exports.colorFgMagenta = '\x1b[35m';
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseRegExp = void 0;
4
+ function parseRegExp(str, options) {
5
+ const i = str.lastIndexOf('/');
6
+ if (str.startsWith('/') && i) {
7
+ const s = str.substring(1, i);
8
+ let flags = str.substring(i + 1);
9
+ if (options?.includeFlags) {
10
+ for (const f of options?.includeFlags)
11
+ if (!flags.includes(f))
12
+ flags += f;
13
+ }
14
+ if (options?.excludeFlags) {
15
+ for (const f of options?.excludeFlags)
16
+ flags.replace(f, '');
17
+ }
18
+ return new RegExp(s, flags);
19
+ }
20
+ throw new TypeError(`"${str}" is not a valid RegExp string`);
21
+ }
22
+ exports.parseRegExp = parseRegExp;
@@ -2,13 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BadRequestError = void 0;
4
4
  const index_js_1 = require("../../i18n/index.js");
5
- const opra_exception_js_1 = require("../opra-exception.js");
5
+ const opra_http_error_js_1 = require("../opra-http-error.js");
6
6
  /**
7
7
  * 400 Bad Request
8
8
  * The server cannot or will not process the request due to something that is perceived to be a client error
9
9
  * (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
10
10
  */
11
- class BadRequestError extends opra_exception_js_1.OpraException {
11
+ class BadRequestError extends opra_http_error_js_1.OpraHttpError {
12
12
  constructor() {
13
13
  super(...arguments);
14
14
  this.status = 400;
@@ -17,7 +17,7 @@ class BadRequestError extends opra_exception_js_1.OpraException {
17
17
  super.init({
18
18
  message: (0, index_js_1.translate)('error:BAD_REQUEST', 'Bad request'),
19
19
  code: 'BAD_REQUEST',
20
- ...issue
20
+ ...issue,
21
21
  });
22
22
  }
23
23
  }
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConflictError = void 0;
4
4
  const index_js_1 = require("../../i18n/index.js");
5
- const opra_exception_js_1 = require("../opra-exception.js");
5
+ const opra_http_error_js_1 = require("../opra-http-error.js");
6
6
  /**
7
7
  * 409 Conflict
8
8
  * This response is sent when a request conflicts with the current state of the server.
9
9
  */
10
- class ConflictError extends opra_exception_js_1.OpraException {
10
+ class ConflictError extends opra_http_error_js_1.OpraHttpError {
11
11
  constructor() {
12
12
  super(...arguments);
13
13
  this.status = 409;
@@ -16,7 +16,7 @@ class ConflictError extends opra_exception_js_1.OpraException {
16
16
  super.init({
17
17
  message: (0, index_js_1.translate)('error:CONFLICT', 'Conflict'),
18
18
  code: 'CONFLICT',
19
- ...issue
19
+ ...issue,
20
20
  });
21
21
  }
22
22
  }
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FailedDependencyError = void 0;
4
4
  const index_js_1 = require("../../i18n/index.js");
5
- const opra_exception_js_1 = require("../opra-exception.js");
5
+ const opra_http_error_js_1 = require("../opra-http-error.js");
6
6
  /**
7
7
  * 424 Failed Dependency
8
8
  * The request failed due to failure of a previous request.
9
9
  */
10
- class FailedDependencyError extends opra_exception_js_1.OpraException {
10
+ class FailedDependencyError extends opra_http_error_js_1.OpraHttpError {
11
11
  constructor() {
12
12
  super(...arguments);
13
13
  this.status = 424;
@@ -16,7 +16,7 @@ class FailedDependencyError extends opra_exception_js_1.OpraException {
16
16
  super.init({
17
17
  message: (0, index_js_1.translate)('error:FAILED_DEPENDENCY', 'The request failed due to failure of a previous request'),
18
18
  code: 'FAILED_DEPENDENCY',
19
- ...issue
19
+ ...issue,
20
20
  });
21
21
  }
22
22
  }
@@ -3,14 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ForbiddenError = void 0;
4
4
  const index_js_1 = require("../../http/index.js");
5
5
  const index_js_2 = require("../../i18n/index.js");
6
- const opra_exception_js_1 = require("../opra-exception.js");
6
+ const opra_http_error_js_1 = require("../opra-http-error.js");
7
7
  /**
8
8
  * 403 Forbidden
9
9
  * The client does not have access rights to the content; that is, it is unauthorized,
10
10
  * so the server is refusing to give the requested resource. Unlike 401 Unauthorized,
11
11
  * the client's identity is known to the server.
12
12
  */
13
- class ForbiddenError extends opra_exception_js_1.OpraException {
13
+ class ForbiddenError extends opra_http_error_js_1.OpraHttpError {
14
14
  constructor() {
15
15
  super(...arguments);
16
16
  this.status = index_js_1.HttpStatusCode.FORBIDDEN;
@@ -19,7 +19,7 @@ class ForbiddenError extends opra_exception_js_1.OpraException {
19
19
  super.init({
20
20
  message: (0, index_js_2.translate)('error:FORBIDDEN', 'You are not authorized to perform this action'),
21
21
  code: 'FORBIDDEN',
22
- ...issue
22
+ ...issue,
23
23
  });
24
24
  }
25
25
  }
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InternalServerError = void 0;
4
4
  const index_js_1 = require("../../i18n/index.js");
5
- const opra_exception_js_1 = require("../opra-exception.js");
5
+ const opra_http_error_js_1 = require("../opra-http-error.js");
6
6
  /**
7
7
  * 500 Internal Server Error
8
8
  * The server has encountered a situation it does not know how to handle.
9
9
  */
10
- class InternalServerError extends opra_exception_js_1.OpraException {
10
+ class InternalServerError extends opra_http_error_js_1.OpraHttpError {
11
11
  constructor() {
12
12
  super(...arguments);
13
13
  this.status = 500;
@@ -17,7 +17,7 @@ class InternalServerError extends opra_exception_js_1.OpraException {
17
17
  message: (0, index_js_1.translate)('error:INTERNAL_SERVER_ERROR', 'Internal server error'),
18
18
  code: 'INTERNAL_SERVER_ERROR',
19
19
  severity: 'fatal',
20
- ...issue
20
+ ...issue,
21
21
  });
22
22
  }
23
23
  }
@@ -2,13 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MethodNotAllowedError = void 0;
4
4
  const index_js_1 = require("../../i18n/index.js");
5
- const opra_exception_js_1 = require("../opra-exception.js");
5
+ const opra_http_error_js_1 = require("../opra-http-error.js");
6
6
  /**
7
7
  * 405 Method Not Allowed
8
8
  * The request method is known by the server but is not supported by the target resource.
9
9
  * For example, an API may not allow calling DELETE to remove a resource.
10
10
  */
11
- class MethodNotAllowedError extends opra_exception_js_1.OpraException {
11
+ class MethodNotAllowedError extends opra_http_error_js_1.OpraHttpError {
12
12
  constructor() {
13
13
  super(...arguments);
14
14
  this.status = 405;
@@ -17,7 +17,7 @@ class MethodNotAllowedError extends opra_exception_js_1.OpraException {
17
17
  super.init({
18
18
  message: (0, index_js_1.translate)('error:METHOD_NOT_ALLOWED', 'Method not allowed'),
19
19
  code: 'METHOD_NOT_ALLOWED',
20
- ...issue
20
+ ...issue,
21
21
  });
22
22
  }
23
23
  }
@@ -2,13 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NotAcceptableError = void 0;
4
4
  const index_js_1 = require("../../i18n/index.js");
5
- const opra_exception_js_1 = require("../opra-exception.js");
5
+ const opra_http_error_js_1 = require("../opra-http-error.js");
6
6
  /**
7
7
  * 406 Not Acceptable
8
8
  * This response is sent when the web server, after performing server-driven content negotiation,
9
9
  * doesn't find any content that conforms to the criteria given by the user agent.
10
10
  */
11
- class NotAcceptableError extends opra_exception_js_1.OpraException {
11
+ class NotAcceptableError extends opra_http_error_js_1.OpraHttpError {
12
12
  constructor() {
13
13
  super(...arguments);
14
14
  this.status = 406;
@@ -17,7 +17,7 @@ class NotAcceptableError extends opra_exception_js_1.OpraException {
17
17
  super.init({
18
18
  message: (0, index_js_1.translate)('error:NOT_ACCEPTABLE', 'Not Acceptable'),
19
19
  code: 'NOT_ACCEPTABLE',
20
- ...issue
20
+ ...issue,
21
21
  });
22
22
  }
23
23
  }
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NotFoundError = void 0;
4
4
  const index_js_1 = require("../../i18n/index.js");
5
- const opra_exception_js_1 = require("../opra-exception.js");
5
+ const opra_http_error_js_1 = require("../opra-http-error.js");
6
6
  /**
7
7
  * 404 Not Found
8
8
  * The server can not find the requested resource. In the browser, this means the URL is not recognized.
@@ -11,7 +11,7 @@ const opra_exception_js_1 = require("../opra-exception.js");
11
11
  * from an unauthorized client. This response code is probably the most well known due to its
12
12
  * frequent occurrence on the web.
13
13
  */
14
- class NotFoundError extends opra_exception_js_1.OpraException {
14
+ class NotFoundError extends opra_http_error_js_1.OpraHttpError {
15
15
  constructor() {
16
16
  super(...arguments);
17
17
  this.status = 404;
@@ -20,7 +20,7 @@ class NotFoundError extends opra_exception_js_1.OpraException {
20
20
  super.init({
21
21
  message: (0, index_js_1.translate)('error:NOT_FOUND', 'Not found'),
22
22
  code: 'NOT_FOUND',
23
- ...issue
23
+ ...issue,
24
24
  });
25
25
  }
26
26
  }
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PermissionError = void 0;
4
4
  const index_js_1 = require("../../i18n/index.js");
5
- const forbidden_error_js_1 = require("../http-errors/forbidden.error.js");
5
+ const forbidden_error_js_1 = require("./forbidden.error.js");
6
6
  /**
7
7
  * 403 Forbidden
8
8
  * The client does not have access rights to the content; that is, it is unauthorized,
@@ -14,7 +14,7 @@ class PermissionError extends forbidden_error_js_1.ForbiddenError {
14
14
  super.init({
15
15
  message: (0, index_js_1.translate)('error:PERMISSION_ERROR', 'You dont have permission for this operation'),
16
16
  code: 'PERMISSION_ERROR',
17
- ...issue
17
+ ...issue,
18
18
  });
19
19
  }
20
20
  }
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ResourceConflictError = void 0;
4
4
  const index_js_1 = require("../../i18n/index.js");
5
- const opra_exception_js_1 = require("../opra-exception.js");
6
- class ResourceConflictError extends opra_exception_js_1.OpraException {
5
+ const opra_http_error_js_1 = require("../opra-http-error.js");
6
+ class ResourceConflictError extends opra_http_error_js_1.OpraHttpError {
7
7
  constructor(resource, fields, cause) {
8
8
  super({
9
9
  message: (0, index_js_1.translate)(`error:RESOURCE_CONFLICT`, { resource, fields }, `There is already an other {{resource}} resource with same values ({{fields}})`),
@@ -11,7 +11,7 @@ class ResourceConflictError extends opra_exception_js_1.OpraException {
11
11
  code: 'RESOURCE_CONFLICT',
12
12
  details: {
13
13
  resource,
14
- location: fields
14
+ location: fields,
15
15
  },
16
16
  }, cause);
17
17
  this.status = 409;
@@ -3,21 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ResourceNotAvailableError = void 0;
4
4
  const index_js_1 = require("../../http/index.js");
5
5
  const index_js_2 = require("../../i18n/index.js");
6
- const opra_exception_js_1 = require("../opra-exception.js");
6
+ const opra_http_error_js_1 = require("../opra-http-error.js");
7
7
  /**
8
8
  * The server cannot find the requested resource.
9
9
  * This can also mean that the endpoint is valid but the resource itself does not exist.
10
10
  */
11
- class ResourceNotAvailableError extends opra_exception_js_1.OpraException {
11
+ class ResourceNotAvailableError extends opra_http_error_js_1.OpraHttpError {
12
12
  constructor(resource, keyValue, cause) {
13
13
  super({
14
- message: (0, index_js_2.translate)(`error:RESOURCE_NOT_AVAILABLE`, `Resource "${resource}${keyValue ? '/' + keyValue : ''}" is not available or you dont have access`),
14
+ message: (0, index_js_2.translate)(`error:RESOURCE_NOT_AVAILABLE`, `Resource "${resource}${keyValue ? '/' + keyValue : ''}" is not available`),
15
15
  severity: 'error',
16
16
  code: 'RESOURCE_NOT_AVAILABLE',
17
17
  details: {
18
18
  resource,
19
- key: keyValue
20
- }
19
+ key: keyValue,
20
+ },
21
21
  }, cause, index_js_1.HttpStatusCode.UNPROCESSABLE_ENTITY);
22
22
  }
23
23
  }
@@ -2,13 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UnauthorizedError = void 0;
4
4
  const index_js_1 = require("../../i18n/index.js");
5
- const opra_exception_js_1 = require("../opra-exception.js");
5
+ const opra_http_error_js_1 = require("../opra-http-error.js");
6
6
  /**
7
7
  * 401 Unauthorized
8
8
  * Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated".
9
9
  * That is, the client must authenticate itself to get the requested response.
10
10
  */
11
- class UnauthorizedError extends opra_exception_js_1.OpraException {
11
+ class UnauthorizedError extends opra_http_error_js_1.OpraHttpError {
12
12
  constructor() {
13
13
  super(...arguments);
14
14
  this.status = 401;
@@ -17,7 +17,7 @@ class UnauthorizedError extends opra_exception_js_1.OpraException {
17
17
  super.init({
18
18
  message: (0, index_js_1.translate)('error:UNAUTHORIZED', 'You have not been authenticated to perform this action'),
19
19
  code: 'UNAUTHORIZED',
20
- ...issue
20
+ ...issue,
21
21
  });
22
22
  }
23
23
  }
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UnprocessableEntityError = void 0;
4
4
  const index_js_1 = require("../../i18n/index.js");
5
- const opra_exception_js_1 = require("../opra-exception.js");
5
+ const opra_http_error_js_1 = require("../opra-http-error.js");
6
6
  /**
7
7
  * 422 Unprocessable Entity
8
8
  * The request was well-formed but was unable to be followed due to semantic errors.
9
9
  */
10
- class UnprocessableEntityError extends opra_exception_js_1.OpraException {
10
+ class UnprocessableEntityError extends opra_http_error_js_1.OpraHttpError {
11
11
  constructor() {
12
12
  super(...arguments);
13
13
  this.status = 422;
@@ -17,7 +17,7 @@ class UnprocessableEntityError extends opra_exception_js_1.OpraException {
17
17
  message: (0, index_js_1.translate)('error:UNPROCESSABLE_ENTITY', 'Unprocessable entity'),
18
18
  severity: 'error',
19
19
  code: 'UNPROCESSABLE_ENTITY',
20
- ...issue
20
+ ...issue,
21
21
  });
22
22
  }
23
23
  }