@opra/common 0.33.13 → 1.0.0-alpha.2

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 (567) 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/enum-type.js +92 -36
  16. package/cjs/document/data-type/{builtin → extended-types}/base64.type.js +11 -2
  17. package/cjs/document/data-type/extended-types/date-string.type.js +44 -0
  18. package/cjs/document/data-type/extended-types/date-time-string.type.js +47 -0
  19. package/cjs/document/data-type/extended-types/date-time.type.js +58 -0
  20. package/cjs/document/data-type/extended-types/date.type.js +55 -0
  21. package/cjs/document/data-type/extended-types/email.type.js +80 -0
  22. package/cjs/document/data-type/extended-types/field-path.type.js +53 -0
  23. package/cjs/document/data-type/extended-types/filter.type.js +74 -0
  24. package/cjs/document/data-type/extended-types/index.js +16 -0
  25. package/cjs/document/data-type/{builtin → extended-types}/object-id.type.js +11 -2
  26. package/cjs/document/data-type/extended-types/operation-result.type.js +56 -0
  27. package/cjs/document/data-type/extended-types/time.type.js +47 -0
  28. package/cjs/document/data-type/{builtin → extended-types}/url.type.js +12 -3
  29. package/cjs/document/data-type/extended-types/uuid.type.js +30 -0
  30. package/cjs/document/data-type/mapped-type.js +77 -61
  31. package/cjs/document/data-type/mixin-type.js +78 -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 +25 -0
  36. package/cjs/document/data-type/primitive-types/bigint.type.js +30 -0
  37. package/cjs/document/data-type/{builtin → primitive-types}/boolean.type.js +11 -2
  38. package/cjs/document/data-type/primitive-types/index.js +11 -0
  39. package/cjs/document/data-type/primitive-types/integer.type.js +30 -0
  40. package/cjs/document/data-type/{builtin → primitive-types}/null.type.js +11 -2
  41. package/cjs/document/data-type/primitive-types/number.type.js +40 -0
  42. package/cjs/document/data-type/{builtin → primitive-types}/object.type.js +7 -1
  43. package/cjs/document/data-type/primitive-types/string.type.js +58 -0
  44. package/cjs/document/data-type/required-type.js +13 -0
  45. package/cjs/document/data-type/simple-type.js +93 -14
  46. package/cjs/document/data-type/utils/create-mapped-class.js +54 -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 +117 -0
  51. package/cjs/document/decorators/http-operation-entity.decorator.js +462 -0
  52. package/cjs/document/decorators/http-operation.decorator.js +183 -0
  53. package/cjs/document/decorators/simple-type.decorator.js +67 -0
  54. package/cjs/document/factory/api-document.factory.js +178 -0
  55. package/cjs/document/factory/data-type.factory.js +498 -0
  56. package/cjs/document/factory/http-api.factory.js +315 -0
  57. package/cjs/document/http/http-api.js +40 -0
  58. package/cjs/document/http/http-controller.js +145 -0
  59. package/cjs/document/http/http-media-type.js +68 -0
  60. package/cjs/document/http/http-multipart-field.js +33 -0
  61. package/cjs/document/http/http-operation-response.js +42 -0
  62. package/cjs/document/http/http-operation.js +93 -0
  63. package/cjs/document/http/http-parameter.js +44 -0
  64. package/cjs/document/http/http-request-body.js +25 -0
  65. package/cjs/document/http/http-status-range.js +41 -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 +4 -4
  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 +137 -84
  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/terms/number-literal.js +1 -3
  91. package/cjs/filter/ast/terms/time-literal.js +6 -4
  92. package/cjs/filter/build.js +1 -3
  93. package/cjs/filter/filter-rules.js +93 -0
  94. package/cjs/filter/filter-tree-visitor.js +4 -7
  95. package/cjs/filter/parse.js +2 -2
  96. package/cjs/filter/utils.js +1 -3
  97. package/cjs/helpers/function-utils.js +2 -11
  98. package/cjs/helpers/get-stack-filename.js +28 -4
  99. package/cjs/helpers/index.js +2 -2
  100. package/cjs/helpers/mixin-utils.js +5 -8
  101. package/cjs/helpers/monkey-patches.js +12 -0
  102. package/cjs/helpers/object-utils.js +4 -5
  103. package/cjs/helpers/parse-fields-projection.js +67 -0
  104. package/cjs/helpers/responsive-map.js +93 -117
  105. package/cjs/helpers/type-guards.js +22 -29
  106. package/cjs/http/enums/http-status-messages.js +63 -63
  107. package/cjs/http/enums/mime-types.enum.js +17 -0
  108. package/cjs/http/index.js +1 -2
  109. package/cjs/i18n/i18n.js +9 -5
  110. package/cjs/i18n/translate.js +2 -2
  111. package/cjs/index.js +1 -1
  112. package/cjs/schema/http/http-controller.interface.js +11 -0
  113. package/cjs/schema/http/http-operation.interface.js +7 -0
  114. package/cjs/schema/index.js +27 -2
  115. package/cjs/schema/type-guards.js +8 -30
  116. package/cjs/schema/value.interface.js +2 -0
  117. package/esm/document/api-document.js +112 -23
  118. package/esm/document/common/api-base.js +23 -0
  119. package/esm/document/common/data-type-map.js +62 -0
  120. package/esm/document/common/document-element.js +28 -0
  121. package/esm/document/common/document-init-context.js +65 -0
  122. package/esm/document/common/document-node.js +120 -0
  123. package/esm/document/common/opra-document-error.js +11 -0
  124. package/esm/document/common/value.js +30 -0
  125. package/esm/document/constants.js +12 -6
  126. package/esm/document/data-type/api-field.js +61 -0
  127. package/esm/document/data-type/complex-type-base.js +180 -0
  128. package/esm/document/data-type/complex-type.js +88 -11
  129. package/esm/document/data-type/data-type.js +32 -24
  130. package/esm/document/data-type/enum-type.js +93 -36
  131. package/esm/document/data-type/extended-types/base64.type.js +22 -0
  132. package/esm/document/data-type/extended-types/date-string.type.js +41 -0
  133. package/esm/document/data-type/extended-types/date-time-string.type.js +44 -0
  134. package/esm/document/data-type/extended-types/date-time.type.js +55 -0
  135. package/esm/document/data-type/extended-types/date.type.js +52 -0
  136. package/esm/document/data-type/extended-types/email.type.js +77 -0
  137. package/esm/document/data-type/extended-types/field-path.type.js +50 -0
  138. package/esm/document/data-type/extended-types/filter.type.js +71 -0
  139. package/esm/document/data-type/extended-types/index.js +13 -0
  140. package/esm/document/data-type/extended-types/object-id.type.js +22 -0
  141. package/esm/document/{resource/types → data-type/extended-types}/operation-result.type.js +25 -14
  142. package/esm/document/data-type/extended-types/time.type.js +44 -0
  143. package/esm/document/data-type/extended-types/url.type.js +22 -0
  144. package/esm/document/data-type/extended-types/uuid.type.js +27 -0
  145. package/esm/document/data-type/mapped-type.js +76 -56
  146. package/esm/document/data-type/mixin-type.js +80 -24
  147. package/esm/document/data-type/omit-type.js +7 -0
  148. package/esm/document/data-type/partial-type.js +9 -0
  149. package/esm/document/data-type/pick-type.js +7 -0
  150. package/esm/document/data-type/primitive-types/any.type.js +22 -0
  151. package/esm/document/data-type/primitive-types/bigint.type.js +27 -0
  152. package/esm/document/data-type/primitive-types/boolean.type.js +22 -0
  153. package/esm/document/data-type/primitive-types/index.js +8 -0
  154. package/esm/document/data-type/primitive-types/integer.type.js +27 -0
  155. package/esm/document/data-type/{builtin → primitive-types}/null.type.js +11 -2
  156. package/esm/document/data-type/primitive-types/number.type.js +37 -0
  157. package/esm/document/data-type/{builtin → primitive-types}/object.type.js +7 -1
  158. package/esm/document/data-type/primitive-types/string.type.js +55 -0
  159. package/esm/document/data-type/required-type.js +9 -0
  160. package/esm/document/data-type/simple-type.js +92 -12
  161. package/esm/document/data-type/utils/create-mapped-class.js +50 -0
  162. package/esm/document/data-type/utils/get-is-inherited-predicate-fn.js +11 -0
  163. package/esm/document/{data-type/field-decorator.js → decorators/api-field-decorator.js} +5 -5
  164. package/esm/document/{data-type → decorators}/complex-type.decorator.js +12 -2
  165. package/esm/document/decorators/http-controller.decorator.js +112 -0
  166. package/esm/document/decorators/http-operation-entity.decorator.js +460 -0
  167. package/esm/document/decorators/http-operation.decorator.js +178 -0
  168. package/esm/document/decorators/simple-type.decorator.js +61 -0
  169. package/esm/document/factory/api-document.factory.js +174 -0
  170. package/esm/document/factory/data-type.factory.js +494 -0
  171. package/esm/document/factory/http-api.factory.js +311 -0
  172. package/esm/document/http/http-api.js +36 -0
  173. package/esm/document/http/http-controller.js +142 -0
  174. package/esm/document/http/http-media-type.js +65 -0
  175. package/esm/document/http/http-multipart-field.js +29 -0
  176. package/esm/document/http/http-operation-response.js +38 -0
  177. package/esm/document/http/http-operation.js +90 -0
  178. package/esm/document/http/http-parameter.js +41 -0
  179. package/esm/document/http/http-request-body.js +21 -0
  180. package/esm/document/http/http-status-range.js +37 -0
  181. package/esm/document/index.js +34 -22
  182. package/esm/document/utils/inspect.util.js +3 -3
  183. package/esm/document/utils/parse-regexp.util.js +18 -0
  184. package/esm/exception/http-errors/bad-request.error.js +3 -3
  185. package/esm/exception/http-errors/conflict.error.js +3 -3
  186. package/esm/exception/http-errors/failed-dependency.error.js +3 -3
  187. package/esm/exception/http-errors/forbidden.error.js +3 -3
  188. package/esm/exception/http-errors/internal-server.error.js +3 -3
  189. package/esm/exception/http-errors/method-not-allowed.error.js +3 -3
  190. package/esm/exception/http-errors/not-acceptable.error.js +3 -3
  191. package/esm/exception/http-errors/not-found.error.js +3 -3
  192. package/esm/exception/{resource-errors → http-errors}/permission.error.js +2 -2
  193. package/esm/exception/{resource-errors → http-errors}/resource-conflict.error.js +3 -3
  194. package/esm/exception/{resource-errors → http-errors}/resource-not.available.error.js +5 -5
  195. package/esm/exception/http-errors/unauthorized.error.js +3 -3
  196. package/esm/exception/http-errors/unprocessable-entity.error.js +3 -3
  197. package/esm/exception/index.js +4 -4
  198. package/esm/exception/issue-severity.enum.js +1 -1
  199. package/esm/exception/opra-exception.js +5 -16
  200. package/esm/exception/opra-http-error.js +21 -0
  201. package/esm/filter/antlr/OpraFilterLexer.js +260 -194
  202. package/esm/filter/antlr/OpraFilterListener.js +1 -1
  203. package/esm/filter/antlr/OpraFilterParser.js +138 -85
  204. package/esm/filter/ast/expressions/arithmetic-expression.js +1 -1
  205. package/esm/filter/ast/expressions/logical-expression.js +1 -3
  206. package/esm/filter/ast/terms/number-literal.js +1 -3
  207. package/esm/filter/ast/terms/time-literal.js +6 -4
  208. package/esm/filter/build.js +2 -4
  209. package/esm/filter/filter-rules.js +89 -0
  210. package/esm/filter/filter-tree-visitor.js +4 -6
  211. package/esm/filter/parse.js +2 -2
  212. package/esm/filter/utils.js +1 -3
  213. package/esm/helpers/function-utils.js +1 -9
  214. package/esm/helpers/get-stack-filename.js +26 -3
  215. package/esm/helpers/index.js +2 -2
  216. package/esm/helpers/mixin-utils.js +5 -8
  217. package/esm/helpers/monkey-patches.js +12 -0
  218. package/esm/helpers/object-utils.js +4 -5
  219. package/esm/helpers/parse-fields-projection.js +61 -0
  220. package/esm/helpers/responsive-map.js +93 -117
  221. package/esm/helpers/type-guards.js +22 -29
  222. package/esm/http/enums/http-status-messages.js +63 -63
  223. package/esm/http/enums/mime-types.enum.js +14 -0
  224. package/esm/http/index.js +1 -2
  225. package/esm/i18n/i18n.js +9 -5
  226. package/esm/i18n/translate.js +2 -2
  227. package/esm/index.js +1 -1
  228. package/esm/schema/http/http-controller.interface.js +8 -0
  229. package/esm/schema/http/http-operation.interface.js +4 -0
  230. package/esm/schema/index.js +27 -2
  231. package/esm/schema/type-guards.js +6 -24
  232. package/esm/schema/value.interface.js +1 -0
  233. package/package.json +14 -13
  234. package/types/document/api-document.d.ts +31 -51
  235. package/types/document/common/api-base.d.ts +17 -0
  236. package/types/document/common/data-type-map.d.ts +23 -0
  237. package/types/document/common/document-element.d.ts +23 -0
  238. package/types/document/common/document-init-context.d.ts +17 -0
  239. package/types/document/common/document-node.d.ts +65 -0
  240. package/types/document/common/opra-document-error.d.ts +12 -0
  241. package/types/document/common/value.d.ts +48 -0
  242. package/types/document/constants.d.ts +9 -3
  243. package/types/document/data-type/api-field.d.ts +65 -0
  244. package/types/document/data-type/complex-type-base.d.ts +80 -0
  245. package/types/document/data-type/complex-type.d.ts +61 -35
  246. package/types/document/data-type/data-type.d.ts +49 -46
  247. package/types/document/data-type/enum-type.d.ts +59 -23
  248. package/types/document/data-type/extended-types/base64.type.d.ts +7 -0
  249. package/types/document/data-type/extended-types/date-string.type.d.ts +9 -0
  250. package/types/document/data-type/extended-types/date-time-string.type.d.ts +9 -0
  251. package/types/document/data-type/extended-types/date-time.type.d.ts +9 -0
  252. package/types/document/data-type/extended-types/date.type.d.ts +9 -0
  253. package/types/document/data-type/extended-types/email.type.d.ts +16 -0
  254. package/types/document/data-type/extended-types/field-path.type.d.ts +15 -0
  255. package/types/document/data-type/extended-types/filter.type.d.ts +16 -0
  256. package/types/document/data-type/extended-types/index.d.ts +13 -0
  257. package/types/document/data-type/extended-types/object-id.type.d.ts +7 -0
  258. package/types/document/{resource/types → data-type/extended-types}/operation-result.type.d.ts +7 -6
  259. package/types/document/data-type/extended-types/time.type.d.ts +9 -0
  260. package/types/document/data-type/extended-types/url.type.d.ts +7 -0
  261. package/types/document/data-type/extended-types/uuid.type.d.ts +8 -0
  262. package/types/document/data-type/mapped-type.d.ts +55 -44
  263. package/types/document/data-type/mixin-type.d.ts +65 -26
  264. package/types/document/data-type/omit-type.d.ts +15 -0
  265. package/types/document/data-type/partial-type.d.ts +28 -0
  266. package/types/document/data-type/pick-type.d.ts +16 -0
  267. package/types/document/data-type/primitive-types/any.type.d.ts +7 -0
  268. package/types/document/data-type/primitive-types/bigint.type.d.ts +8 -0
  269. package/types/document/data-type/primitive-types/boolean.type.d.ts +7 -0
  270. package/types/document/data-type/primitive-types/index.d.ts +8 -0
  271. package/types/document/data-type/primitive-types/integer.type.d.ts +8 -0
  272. package/types/document/data-type/primitive-types/null.type.d.ts +7 -0
  273. package/types/document/data-type/primitive-types/number.type.d.ts +9 -0
  274. package/types/document/data-type/primitive-types/object.type.d.ts +3 -0
  275. package/types/document/data-type/primitive-types/string.type.d.ts +11 -0
  276. package/types/document/data-type/required-type.d.ts +22 -0
  277. package/types/document/data-type/simple-type.d.ts +63 -24
  278. package/types/document/data-type/utils/create-mapped-class.d.ts +3 -0
  279. package/types/document/data-type/utils/get-is-inherited-predicate-fn.d.ts +1 -0
  280. package/types/document/decorators/api-field-decorator.d.ts +5 -0
  281. package/types/document/decorators/complex-type.decorator.d.ts +2 -0
  282. package/types/document/decorators/http-controller.decorator.d.ts +14 -0
  283. package/types/document/decorators/http-operation-entity.decorator.d.ts +100 -0
  284. package/types/document/decorators/http-operation.decorator.d.ts +30 -0
  285. package/types/document/decorators/simple-type.decorator.d.ts +20 -0
  286. package/types/document/factory/api-document.factory.d.ts +35 -0
  287. package/types/document/factory/data-type.factory.d.ts +103 -0
  288. package/types/document/factory/http-api.factory.d.ts +60 -0
  289. package/types/document/http/http-api.d.ts +23 -0
  290. package/types/document/http/http-controller.d.ts +92 -0
  291. package/types/document/http/http-media-type.d.ts +59 -0
  292. package/types/document/http/http-multipart-field.d.ts +26 -0
  293. package/types/document/http/http-operation-response.d.ts +36 -0
  294. package/types/document/http/http-operation.d.ts +84 -0
  295. package/types/document/http/http-parameter.d.ts +50 -0
  296. package/types/document/http/http-request-body.d.ts +31 -0
  297. package/types/document/http/http-status-range.d.ts +14 -0
  298. package/types/document/index.d.ts +33 -22
  299. package/types/document/utils/parse-regexp.util.d.ts +4 -0
  300. package/types/exception/http-errors/bad-request.error.d.ts +2 -2
  301. package/types/exception/http-errors/conflict.error.d.ts +2 -2
  302. package/types/exception/http-errors/failed-dependency.error.d.ts +2 -2
  303. package/types/exception/http-errors/forbidden.error.d.ts +2 -2
  304. package/types/exception/http-errors/internal-server.error.d.ts +2 -2
  305. package/types/exception/http-errors/method-not-allowed.error.d.ts +2 -2
  306. package/types/exception/http-errors/not-acceptable.error.d.ts +2 -2
  307. package/types/exception/http-errors/not-found.error.d.ts +2 -2
  308. package/types/exception/{resource-errors → http-errors}/permission.error.d.ts +1 -1
  309. package/types/exception/http-errors/resource-conflict.error.d.ts +5 -0
  310. package/types/exception/{resource-errors → http-errors}/resource-not.available.error.d.ts +2 -2
  311. package/types/exception/http-errors/unauthorized.error.d.ts +2 -2
  312. package/types/exception/http-errors/unprocessable-entity.error.d.ts +2 -2
  313. package/types/exception/index.d.ts +4 -4
  314. package/types/exception/opra-exception.d.ts +1 -5
  315. package/types/exception/opra-http-error.d.ts +13 -0
  316. package/types/filter/antlr/OpraFilterLexer.d.ts +1 -1
  317. package/types/filter/antlr/OpraFilterListener.d.ts +2 -2
  318. package/types/filter/antlr/OpraFilterParser.d.ts +2 -2
  319. package/types/filter/antlr/OpraFilterVisitor.d.ts +1 -1
  320. package/types/filter/ast/terms/qualified-identifier.d.ts +1 -1
  321. package/types/filter/filter-rules.d.ts +24 -0
  322. package/types/filter/filter-tree-visitor.d.ts +1 -3
  323. package/types/helpers/function-utils.d.ts +2 -4
  324. package/types/helpers/get-stack-filename.d.ts +1 -0
  325. package/types/helpers/index.d.ts +2 -2
  326. package/types/helpers/monkey-patches.d.ts +0 -0
  327. package/types/helpers/parse-fields-projection.d.ts +11 -0
  328. package/types/helpers/responsive-map.d.ts +8 -4
  329. package/types/helpers/type-guards.d.ts +2 -2
  330. package/types/http/enums/http-status-messages.d.ts +63 -63
  331. package/types/http/enums/mime-types.enum.d.ts +12 -0
  332. package/types/http/index.d.ts +1 -2
  333. package/types/i18n/i18n.d.ts +2 -1
  334. package/types/schema/data-type/complex-type.interface.d.ts +3 -3
  335. package/types/schema/data-type/data-type.interface.d.ts +6 -0
  336. package/types/schema/data-type/enum-type.interface.d.ts +3 -4
  337. package/types/schema/data-type/field.interface.d.ts +2 -10
  338. package/types/schema/data-type/mapped-type.interface.d.ts +7 -3
  339. package/types/schema/data-type/mixin-type.interface.d.ts +2 -2
  340. package/types/schema/data-type/simple-type.interface.d.ts +35 -7
  341. package/types/schema/data-type-container.interface.d.ts +7 -0
  342. package/types/schema/document.interface.d.ts +55 -0
  343. package/types/schema/http/http-controller.interface.d.ts +24 -0
  344. package/types/schema/http/http-media-type.interface.d.ts +65 -0
  345. package/types/schema/http/http-multipart-field.interface.d.ts +7 -0
  346. package/types/schema/http/http-operation-response.interface.d.ts +24 -0
  347. package/types/schema/http/http-operation.interface.d.ts +23 -0
  348. package/types/schema/http/http-parameter.interface.d.ts +28 -0
  349. package/types/schema/http/http-request-body.interface.d.ts +29 -0
  350. package/types/schema/http/http-status-range.interface.d.ts +4 -0
  351. package/types/schema/index.d.ts +61 -2
  352. package/types/schema/type-guards.d.ts +2 -10
  353. package/types/schema/types.d.ts +3 -0
  354. package/types/schema/value.interface.d.ts +23 -0
  355. package/types/types.d.ts +1 -14
  356. package/cjs/document/data-type/builtin/any.type.js +0 -13
  357. package/cjs/document/data-type/builtin/approx-date.type.js +0 -21
  358. package/cjs/document/data-type/builtin/approx-datetime.type.js +0 -24
  359. package/cjs/document/data-type/builtin/bigint.type.js +0 -16
  360. package/cjs/document/data-type/builtin/date.type.js +0 -17
  361. package/cjs/document/data-type/builtin/datetime.type.js +0 -21
  362. package/cjs/document/data-type/builtin/email.type.js +0 -16
  363. package/cjs/document/data-type/builtin/index.js +0 -21
  364. package/cjs/document/data-type/builtin/integer.type.js +0 -16
  365. package/cjs/document/data-type/builtin/number.type.js +0 -16
  366. package/cjs/document/data-type/builtin/string.type.js +0 -16
  367. package/cjs/document/data-type/builtin/time.type.js +0 -23
  368. package/cjs/document/data-type/builtin/uuid.type.js +0 -16
  369. package/cjs/document/data-type/complex-type-class.js +0 -274
  370. package/cjs/document/data-type/enum-type-class.js +0 -39
  371. package/cjs/document/data-type/field-class.js +0 -67
  372. package/cjs/document/data-type/field.js +0 -25
  373. package/cjs/document/data-type/mapped-type-class.js +0 -53
  374. package/cjs/document/data-type/mixin-type-class.js +0 -38
  375. package/cjs/document/data-type/simple-type-class.js +0 -37
  376. package/cjs/document/data-type/simple-type.decorator.js +0 -20
  377. package/cjs/document/document-base.js +0 -24
  378. package/cjs/document/factory/api-document-factory.js +0 -262
  379. package/cjs/document/factory/type-document-factory.js +0 -326
  380. package/cjs/document/resource/action-decorator.js +0 -33
  381. package/cjs/document/resource/action.js +0 -34
  382. package/cjs/document/resource/collection-class.js +0 -257
  383. package/cjs/document/resource/collection-decorator.js +0 -211
  384. package/cjs/document/resource/collection.js +0 -25
  385. package/cjs/document/resource/container-class.js +0 -84
  386. package/cjs/document/resource/container-decorator.js +0 -24
  387. package/cjs/document/resource/container.js +0 -29
  388. package/cjs/document/resource/crud-operation-decorator.js +0 -28
  389. package/cjs/document/resource/crud-operation.js +0 -49
  390. package/cjs/document/resource/crud-resource.js +0 -34
  391. package/cjs/document/resource/endpoint.js +0 -59
  392. package/cjs/document/resource/enums/metadata-mode.enum.js +0 -19
  393. package/cjs/document/resource/parameter.js +0 -50
  394. package/cjs/document/resource/resource-decorator.js +0 -33
  395. package/cjs/document/resource/resource.js +0 -60
  396. package/cjs/document/resource/singleton-class.js +0 -83
  397. package/cjs/document/resource/singleton-decorator.js +0 -57
  398. package/cjs/document/resource/singleton.js +0 -25
  399. package/cjs/document/resource/storage-class.js +0 -18
  400. package/cjs/document/resource/storage-decorator.js +0 -70
  401. package/cjs/document/resource/storage.js +0 -25
  402. package/cjs/document/resource/types/operation-result.type.js +0 -45
  403. package/cjs/document/type-document.js +0 -204
  404. package/cjs/exception/wrap-exception.js +0 -43
  405. package/cjs/helpers/is-url-string.js +0 -13
  406. package/cjs/helpers/path-to-object-tree.js +0 -28
  407. package/cjs/http/opra-url-path.js +0 -261
  408. package/cjs/http/opra-url.js +0 -250
  409. package/cjs/schema/opra-schema.ns.js +0 -22
  410. package/cjs/schema/resource/collection.interface.js +0 -7
  411. package/cjs/schema/resource/container.interface.js +0 -7
  412. package/cjs/schema/resource/singleton.interface.js +0 -7
  413. package/cjs/schema/resource/storage.interface.js +0 -7
  414. package/esm/document/data-type/builtin/any.type.js +0 -10
  415. package/esm/document/data-type/builtin/approx-date.type.js +0 -18
  416. package/esm/document/data-type/builtin/approx-datetime.type.js +0 -21
  417. package/esm/document/data-type/builtin/base64.type.js +0 -13
  418. package/esm/document/data-type/builtin/bigint.type.js +0 -13
  419. package/esm/document/data-type/builtin/boolean.type.js +0 -13
  420. package/esm/document/data-type/builtin/date.type.js +0 -14
  421. package/esm/document/data-type/builtin/datetime.type.js +0 -18
  422. package/esm/document/data-type/builtin/email.type.js +0 -13
  423. package/esm/document/data-type/builtin/index.js +0 -18
  424. package/esm/document/data-type/builtin/integer.type.js +0 -13
  425. package/esm/document/data-type/builtin/number.type.js +0 -13
  426. package/esm/document/data-type/builtin/object-id.type.js +0 -13
  427. package/esm/document/data-type/builtin/string.type.js +0 -13
  428. package/esm/document/data-type/builtin/time.type.js +0 -20
  429. package/esm/document/data-type/builtin/url.type.js +0 -13
  430. package/esm/document/data-type/builtin/uuid.type.js +0 -13
  431. package/esm/document/data-type/complex-type-class.js +0 -270
  432. package/esm/document/data-type/enum-type-class.js +0 -35
  433. package/esm/document/data-type/field-class.js +0 -63
  434. package/esm/document/data-type/field.js +0 -21
  435. package/esm/document/data-type/mapped-type-class.js +0 -48
  436. package/esm/document/data-type/mixin-type-class.js +0 -34
  437. package/esm/document/data-type/simple-type-class.js +0 -33
  438. package/esm/document/data-type/simple-type.decorator.js +0 -15
  439. package/esm/document/document-base.js +0 -20
  440. package/esm/document/factory/api-document-factory.js +0 -258
  441. package/esm/document/factory/type-document-factory.js +0 -322
  442. package/esm/document/resource/action-decorator.js +0 -29
  443. package/esm/document/resource/action.js +0 -30
  444. package/esm/document/resource/collection-class.js +0 -253
  445. package/esm/document/resource/collection-decorator.js +0 -207
  446. package/esm/document/resource/collection.js +0 -21
  447. package/esm/document/resource/container-class.js +0 -80
  448. package/esm/document/resource/container-decorator.js +0 -20
  449. package/esm/document/resource/container.js +0 -25
  450. package/esm/document/resource/crud-operation-decorator.js +0 -24
  451. package/esm/document/resource/crud-operation.js +0 -45
  452. package/esm/document/resource/crud-resource.js +0 -30
  453. package/esm/document/resource/endpoint.js +0 -55
  454. package/esm/document/resource/enums/metadata-mode.enum.js +0 -16
  455. package/esm/document/resource/parameter.js +0 -46
  456. package/esm/document/resource/resource-decorator.js +0 -28
  457. package/esm/document/resource/resource.js +0 -56
  458. package/esm/document/resource/singleton-class.js +0 -79
  459. package/esm/document/resource/singleton-decorator.js +0 -53
  460. package/esm/document/resource/singleton.js +0 -21
  461. package/esm/document/resource/storage-class.js +0 -14
  462. package/esm/document/resource/storage-decorator.js +0 -66
  463. package/esm/document/resource/storage.js +0 -21
  464. package/esm/document/type-document.js +0 -200
  465. package/esm/exception/wrap-exception.js +0 -39
  466. package/esm/helpers/is-url-string.js +0 -8
  467. package/esm/helpers/path-to-object-tree.js +0 -24
  468. package/esm/http/opra-url-path.js +0 -255
  469. package/esm/http/opra-url.js +0 -246
  470. package/esm/schema/opra-schema.ns.js +0 -19
  471. package/esm/schema/resource/collection.interface.js +0 -4
  472. package/esm/schema/resource/container.interface.js +0 -4
  473. package/esm/schema/resource/singleton.interface.js +0 -4
  474. package/esm/schema/resource/storage.interface.js +0 -4
  475. package/types/document/data-type/builtin/any.type.d.ts +0 -2
  476. package/types/document/data-type/builtin/approx-date.type.d.ts +0 -2
  477. package/types/document/data-type/builtin/approx-datetime.type.d.ts +0 -2
  478. package/types/document/data-type/builtin/base64.type.d.ts +0 -2
  479. package/types/document/data-type/builtin/bigint.type.d.ts +0 -2
  480. package/types/document/data-type/builtin/boolean.type.d.ts +0 -2
  481. package/types/document/data-type/builtin/date.type.d.ts +0 -2
  482. package/types/document/data-type/builtin/datetime.type.d.ts +0 -2
  483. package/types/document/data-type/builtin/email.type.d.ts +0 -2
  484. package/types/document/data-type/builtin/index.d.ts +0 -18
  485. package/types/document/data-type/builtin/integer.type.d.ts +0 -2
  486. package/types/document/data-type/builtin/null.type.d.ts +0 -2
  487. package/types/document/data-type/builtin/number.type.d.ts +0 -2
  488. package/types/document/data-type/builtin/object-id.type.d.ts +0 -2
  489. package/types/document/data-type/builtin/object.type.d.ts +0 -2
  490. package/types/document/data-type/builtin/string.type.d.ts +0 -2
  491. package/types/document/data-type/builtin/time.type.d.ts +0 -2
  492. package/types/document/data-type/builtin/url.type.d.ts +0 -2
  493. package/types/document/data-type/builtin/uuid.type.d.ts +0 -2
  494. package/types/document/data-type/complex-type-class.d.ts +0 -36
  495. package/types/document/data-type/complex-type.decorator.d.ts +0 -2
  496. package/types/document/data-type/enum-type-class.d.ts +0 -18
  497. package/types/document/data-type/field-class.d.ts +0 -31
  498. package/types/document/data-type/field-decorator.d.ts +0 -5
  499. package/types/document/data-type/field.d.ts +0 -46
  500. package/types/document/data-type/mapped-type-class.d.ts +0 -18
  501. package/types/document/data-type/mixin-type-class.d.ts +0 -12
  502. package/types/document/data-type/simple-type-class.d.ts +0 -19
  503. package/types/document/data-type/simple-type.decorator.d.ts +0 -2
  504. package/types/document/document-base.d.ts +0 -10
  505. package/types/document/factory/api-document-factory.d.ts +0 -49
  506. package/types/document/factory/type-document-factory.d.ts +0 -57
  507. package/types/document/interfaces/collection.interface.d.ts +0 -10
  508. package/types/document/interfaces/singleton.interface.d.ts +0 -7
  509. package/types/document/interfaces/storage.interface.d.ts +0 -8
  510. package/types/document/resource/action-decorator.d.ts +0 -8
  511. package/types/document/resource/action.d.ts +0 -30
  512. package/types/document/resource/collection-class.d.ts +0 -20
  513. package/types/document/resource/collection-decorator.d.ts +0 -204
  514. package/types/document/resource/collection.d.ts +0 -62
  515. package/types/document/resource/container-class.d.ts +0 -66
  516. package/types/document/resource/container-decorator.d.ts +0 -37
  517. package/types/document/resource/container.d.ts +0 -27
  518. package/types/document/resource/crud-operation-decorator.d.ts +0 -6
  519. package/types/document/resource/crud-operation.d.ts +0 -32
  520. package/types/document/resource/crud-resource.d.ts +0 -16
  521. package/types/document/resource/endpoint.d.ts +0 -32
  522. package/types/document/resource/enums/metadata-mode.enum.d.ts +0 -5
  523. package/types/document/resource/parameter.d.ts +0 -35
  524. package/types/document/resource/resource-decorator.d.ts +0 -40
  525. package/types/document/resource/resource.d.ts +0 -35
  526. package/types/document/resource/singleton-class.d.ts +0 -21
  527. package/types/document/resource/singleton-decorator.d.ts +0 -131
  528. package/types/document/resource/singleton.d.ts +0 -49
  529. package/types/document/resource/storage-class.d.ts +0 -17
  530. package/types/document/resource/storage-decorator.d.ts +0 -100
  531. package/types/document/resource/storage.d.ts +0 -39
  532. package/types/document/type-document.d.ts +0 -79
  533. package/types/exception/resource-errors/resource-conflict.error.d.ts +0 -5
  534. package/types/exception/wrap-exception.d.ts +0 -2
  535. package/types/helpers/is-url-string.d.ts +0 -2
  536. package/types/helpers/path-to-object-tree.d.ts +0 -4
  537. package/types/http/opra-url-path.d.ts +0 -55
  538. package/types/http/opra-url.d.ts +0 -66
  539. package/types/schema/document/api-document.interface.d.ts +0 -11
  540. package/types/schema/document/document-base.interface.d.ts +0 -24
  541. package/types/schema/document/type-document.interface.d.ts +0 -6
  542. package/types/schema/opra-schema.ns.d.ts +0 -19
  543. package/types/schema/resource/action.interface.d.ts +0 -6
  544. package/types/schema/resource/collection.interface.d.ts +0 -55
  545. package/types/schema/resource/container.interface.d.ts +0 -10
  546. package/types/schema/resource/endpoint.interface.d.ts +0 -13
  547. package/types/schema/resource/resource.interface.d.ts +0 -15
  548. package/types/schema/resource/singleton.interface.d.ts +0 -25
  549. package/types/schema/resource/storage.interface.d.ts +0 -61
  550. /package/cjs/{document/interfaces/collection.interface.js → schema/data-type-container.interface.js} +0 -0
  551. /package/cjs/{document/interfaces/singleton.interface.js → schema/document.interface.js} +0 -0
  552. /package/cjs/{document/interfaces/storage.interface.js → schema/http/http-media-type.interface.js} +0 -0
  553. /package/cjs/schema/{document/api-document.interface.js → http/http-multipart-field.interface.js} +0 -0
  554. /package/cjs/schema/{document/document-base.interface.js → http/http-operation-response.interface.js} +0 -0
  555. /package/cjs/schema/{document/type-document.interface.js → http/http-parameter.interface.js} +0 -0
  556. /package/cjs/schema/{resource/action.interface.js → http/http-request-body.interface.js} +0 -0
  557. /package/cjs/schema/{resource/endpoint.interface.js → http/http-status-range.interface.js} +0 -0
  558. /package/cjs/schema/{resource/resource.interface.js → types.js} +0 -0
  559. /package/esm/{document/interfaces/collection.interface.js → schema/data-type-container.interface.js} +0 -0
  560. /package/esm/{document/interfaces/singleton.interface.js → schema/document.interface.js} +0 -0
  561. /package/esm/{document/interfaces/storage.interface.js → schema/http/http-media-type.interface.js} +0 -0
  562. /package/esm/schema/{document/api-document.interface.js → http/http-multipart-field.interface.js} +0 -0
  563. /package/esm/schema/{document/document-base.interface.js → http/http-operation-response.interface.js} +0 -0
  564. /package/esm/schema/{document/type-document.interface.js → http/http-parameter.interface.js} +0 -0
  565. /package/esm/schema/{resource/action.interface.js → http/http-request-body.interface.js} +0 -0
  566. /package/esm/schema/{resource/endpoint.interface.js → http/http-status-range.interface.js} +0 -0
  567. /package/esm/schema/{resource/resource.interface.js → types.js} +0 -0
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HttpOperation = void 0;
4
+ const ts_gems_1 = require("ts-gems");
5
+ const index_js_1 = require("../../helpers/index.js");
6
+ const index_js_2 = require("../../schema/index.js");
7
+ const data_type_map_js_1 = require("../common/data-type-map.js");
8
+ const document_element_js_1 = require("../common/document-element.js");
9
+ const constants_js_1 = require("../constants.js");
10
+ const http_operation_decorator_js_1 = require("../decorators/http-operation.decorator.js");
11
+ /**
12
+ * HttpOperation
13
+ */
14
+ exports.HttpOperation = function (...args) {
15
+ // Decorator
16
+ if (!this) {
17
+ const [options] = args;
18
+ const decoratorChain = [];
19
+ return exports.HttpOperation[constants_js_1.DECORATOR].call(undefined, decoratorChain, options);
20
+ }
21
+ // Constructor
22
+ const [resource, initArgs] = args;
23
+ document_element_js_1.DocumentElement.call(this, resource);
24
+ if (!constants_js_1.CLASS_NAME_PATTERN.test(initArgs.name))
25
+ throw new TypeError(`Invalid operation name (${initArgs.name})`);
26
+ const _this = (0, ts_gems_1.asMutable)(this);
27
+ _this.parameters = [];
28
+ _this.responses = [];
29
+ _this.types = _this.node[constants_js_1.kDataTypeMap] = new data_type_map_js_1.DataTypeMap();
30
+ _this.name = initArgs.name;
31
+ _this.path = initArgs.path;
32
+ _this.method = initArgs.method || 'GET';
33
+ _this.description = initArgs.description;
34
+ _this.composition = initArgs.composition;
35
+ _this.compositionOptions = initArgs.compositionOptions ? (0, index_js_1.cloneObject)(initArgs.compositionOptions) : undefined;
36
+ };
37
+ /**
38
+ * @class HttpOperation
39
+ */
40
+ class HttpOperationClass extends document_element_js_1.DocumentElement {
41
+ findParameter(paramName, location) {
42
+ paramName = paramName.toLowerCase();
43
+ for (const prm of this.parameters) {
44
+ if ((!location || location === prm.location) &&
45
+ ((prm.name instanceof RegExp && prm.name.test(paramName)) || prm.name === paramName))
46
+ return prm;
47
+ }
48
+ }
49
+ toJSON() {
50
+ const out = (0, index_js_1.omitUndefined)({
51
+ kind: index_js_2.OpraSchema.HttpOperation.Kind,
52
+ description: this.description,
53
+ method: this.method,
54
+ composition: this.composition,
55
+ requestBody: this.requestBody?.toJSON(),
56
+ });
57
+ if (this.parameters.length) {
58
+ out.parameters = [];
59
+ for (const prm of this.parameters) {
60
+ out.parameters.push(prm.toJSON());
61
+ }
62
+ }
63
+ if (this.responses.length)
64
+ out.responses = this.responses.map(r => r.toJSON());
65
+ return out;
66
+ }
67
+ }
68
+ exports.HttpOperation.prototype = HttpOperationClass.prototype;
69
+ exports.HttpOperation[constants_js_1.DECORATOR] = http_operation_decorator_js_1.HttpOperationDecoratorFactory;
70
+ exports.HttpOperation.GET = function (options) {
71
+ return (0, http_operation_decorator_js_1.HttpOperationDecoratorFactory)([], { ...options, method: 'GET' });
72
+ };
73
+ exports.HttpOperation.DELETE = function (options) {
74
+ return (0, http_operation_decorator_js_1.HttpOperationDecoratorFactory)([], { ...options, method: 'DELETE' });
75
+ };
76
+ exports.HttpOperation.HEAD = function (options) {
77
+ return (0, http_operation_decorator_js_1.HttpOperationDecoratorFactory)([], { ...options, method: 'HEAD' });
78
+ };
79
+ exports.HttpOperation.OPTIONS = function (options) {
80
+ return (0, http_operation_decorator_js_1.HttpOperationDecoratorFactory)([], { ...options, method: 'OPTIONS' });
81
+ };
82
+ exports.HttpOperation.PATCH = function (options) {
83
+ return (0, http_operation_decorator_js_1.HttpOperationDecoratorFactory)([], { ...options, method: 'PATCH' });
84
+ };
85
+ exports.HttpOperation.POST = function (options) {
86
+ return (0, http_operation_decorator_js_1.HttpOperationDecoratorFactory)([], { ...options, method: 'POST' });
87
+ };
88
+ exports.HttpOperation.PUT = function (options) {
89
+ return (0, http_operation_decorator_js_1.HttpOperationDecoratorFactory)([], { ...options, method: 'PUT' });
90
+ };
91
+ exports.HttpOperation.SEARCH = function (options) {
92
+ return (0, http_operation_decorator_js_1.HttpOperationDecoratorFactory)([], { ...options, method: 'SEARCH' });
93
+ };
@@ -0,0 +1,44 @@
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
+ };
29
+ /**
30
+ * @class HttpParameter
31
+ */
32
+ class HttpParameterClass extends value_js_1.Value {
33
+ toJSON() {
34
+ return (0, index_js_1.omitUndefined)({
35
+ ...super.toJSON(),
36
+ name: this.name,
37
+ location: this.location,
38
+ arraySeparator: this.arraySeparator,
39
+ required: this.required,
40
+ deprecated: this.deprecated,
41
+ });
42
+ }
43
+ }
44
+ 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,41 @@
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
+ else
35
+ return String(this.start) + '-' + String(this.end);
36
+ }
37
+ toJSON() {
38
+ return !this.end || this.start === this.end ? this.start : { start: this.start, end: this.end };
39
+ }
40
+ }
41
+ 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("./constants.js"), exports);
10
+ tslib_1.__exportStar(require("./common/api-base.js"), exports);
11
+ tslib_1.__exportStar(require("./common/data-type-map.js"), exports);
12
+ tslib_1.__exportStar(require("./common/document-element.js"), exports);
13
+ tslib_1.__exportStar(require("./common/document-init-context.js"), exports);
14
+ tslib_1.__exportStar(require("./common/document-node.js"), exports);
15
+ tslib_1.__exportStar(require("./common/opra-document-error.js"), exports);
11
16
  tslib_1.__exportStar(require("./data-type/complex-type.js"), exports);
12
- tslib_1.__exportStar(require("./data-type/field.js"), exports);
17
+ tslib_1.__exportStar(require("./data-type/data-type.js"), exports);
13
18
  tslib_1.__exportStar(require("./data-type/enum-type.js"), exports);
19
+ tslib_1.__exportStar(require("./data-type/api-field.js"), exports);
14
20
  tslib_1.__exportStar(require("./data-type/mapped-type.js"), exports);
15
- tslib_1.__exportStar(require("./data-type/simple-type.js"), exports);
16
21
  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);
22
+ tslib_1.__exportStar(require("./data-type/omit-type.js"), exports);
23
+ tslib_1.__exportStar(require("./data-type/partial-type.js"), exports);
24
+ tslib_1.__exportStar(require("./data-type/pick-type.js"), exports);
25
+ tslib_1.__exportStar(require("./data-type/required-type.js"), exports);
26
+ tslib_1.__exportStar(require("./data-type/simple-type.js"), exports);
27
+ tslib_1.__exportStar(require("./data-type/primitive-types/index.js"), exports);
28
+ tslib_1.__exportStar(require("./data-type/extended-types/index.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-media-type.js"), exports);
33
+ tslib_1.__exportStar(require("./http/http-multipart-field.js"), exports);
34
+ tslib_1.__exportStar(require("./http/http-operation.js"), exports);
35
+ tslib_1.__exportStar(require("./http/http-operation-response.js"), exports);
36
+ tslib_1.__exportStar(require("./http/http-parameter.js"), exports);
37
+ tslib_1.__exportStar(require("./http/http-request-body.js"), exports);
38
+ tslib_1.__exportStar(require("./http/http-controller.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
  }