@opra/common 0.33.12 → 1.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (588) hide show
  1. package/browser.js +4657 -3896
  2. package/cjs/document/api-document.js +112 -23
  3. package/cjs/document/common/api-base.js +27 -0
  4. package/cjs/document/common/data-type-map.js +66 -0
  5. package/cjs/document/common/document-element.js +31 -0
  6. package/cjs/document/common/document-init-context.js +69 -0
  7. package/cjs/document/common/document-node.js +124 -0
  8. package/cjs/document/common/opra-document-error.js +15 -0
  9. package/cjs/document/common/value.js +33 -0
  10. package/cjs/document/constants.js +13 -7
  11. package/cjs/document/data-type/api-field.js +64 -0
  12. package/cjs/document/data-type/complex-type-base.js +183 -0
  13. package/cjs/document/data-type/complex-type.js +89 -13
  14. package/cjs/document/data-type/data-type.js +32 -25
  15. package/cjs/document/data-type/decorators/api-field-decorator.js +26 -0
  16. package/cjs/document/data-type/decorators/complex-type.decorator.js +33 -0
  17. package/cjs/document/data-type/decorators/simple-type.decorator.js +67 -0
  18. package/cjs/document/data-type/enum-type.js +92 -36
  19. package/cjs/document/data-type/{builtin → extended-types}/base64.type.js +11 -2
  20. package/cjs/document/data-type/extended-types/date-string.type.js +44 -0
  21. package/cjs/document/data-type/extended-types/date-time-string.type.js +47 -0
  22. package/cjs/document/data-type/extended-types/date-time.type.js +58 -0
  23. package/cjs/document/data-type/extended-types/date.type.js +55 -0
  24. package/cjs/document/data-type/extended-types/email.type.js +80 -0
  25. package/cjs/document/data-type/extended-types/field-path.type.js +53 -0
  26. package/cjs/document/data-type/extended-types/filter.type.js +74 -0
  27. package/cjs/document/data-type/extended-types/index.js +16 -0
  28. package/cjs/document/data-type/{builtin → extended-types}/object-id.type.js +11 -2
  29. package/cjs/document/data-type/extended-types/operation-result.type.js +56 -0
  30. package/cjs/document/data-type/extended-types/time.type.js +47 -0
  31. package/cjs/document/data-type/{builtin → extended-types}/url.type.js +12 -3
  32. package/cjs/document/data-type/extended-types/uuid.type.js +30 -0
  33. package/cjs/document/data-type/mapped-type.js +77 -61
  34. package/cjs/document/data-type/mixin-type.js +78 -23
  35. package/cjs/document/data-type/omit-type.js +11 -0
  36. package/cjs/document/data-type/partial-type.js +13 -0
  37. package/cjs/document/data-type/pick-type.js +11 -0
  38. package/cjs/document/data-type/primitive-types/any.type.js +25 -0
  39. package/cjs/document/data-type/primitive-types/bigint.type.js +30 -0
  40. package/cjs/document/data-type/{builtin → primitive-types}/boolean.type.js +11 -2
  41. package/cjs/document/data-type/primitive-types/index.js +11 -0
  42. package/cjs/document/data-type/primitive-types/integer.type.js +30 -0
  43. package/cjs/document/data-type/{builtin → primitive-types}/null.type.js +11 -2
  44. package/cjs/document/data-type/primitive-types/number.type.js +40 -0
  45. package/cjs/document/data-type/{builtin → primitive-types}/object.type.js +7 -1
  46. package/cjs/document/data-type/primitive-types/string.type.js +58 -0
  47. package/cjs/document/data-type/required-type.js +13 -0
  48. package/cjs/document/data-type/simple-type.js +93 -14
  49. package/cjs/document/data-type/utils/create-mapped-class.js +54 -0
  50. package/cjs/document/data-type/utils/get-is-inherited-predicate-fn.js +15 -0
  51. package/cjs/document/{data-type/field-decorator.js → decorators/api-field-decorator.js} +7 -7
  52. package/cjs/document/{data-type → decorators}/complex-type.decorator.js +11 -1
  53. package/cjs/document/decorators/http-controller.decorator.js +117 -0
  54. package/cjs/document/decorators/http-operation-entity.decorator.js +462 -0
  55. package/cjs/document/decorators/http-operation.decorator.js +183 -0
  56. package/cjs/document/decorators/simple-type.decorator.js +67 -0
  57. package/cjs/document/factory/api-document.factory.js +178 -0
  58. package/cjs/document/factory/data-type.factory.js +498 -0
  59. package/cjs/document/factory/http-api.factory.js +315 -0
  60. package/cjs/document/http/decorators/http-controller.decorator.js +117 -0
  61. package/cjs/document/http/decorators/http-operation-entity.decorator.js +461 -0
  62. package/cjs/document/http/decorators/http-operation.decorator.js +183 -0
  63. package/cjs/document/http/http-api.js +40 -0
  64. package/cjs/document/http/http-controller.js +145 -0
  65. package/cjs/document/http/http-media-type.js +68 -0
  66. package/cjs/document/http/http-multipart-field.js +33 -0
  67. package/cjs/document/http/http-operation-response.js +42 -0
  68. package/cjs/document/http/http-operation.js +93 -0
  69. package/cjs/document/http/http-parameter.js +44 -0
  70. package/cjs/document/http/http-request-body.js +25 -0
  71. package/cjs/document/http/http-status-range.js +41 -0
  72. package/cjs/document/index.js +35 -22
  73. package/cjs/document/utils/inspect.util.js +3 -3
  74. package/cjs/document/utils/parse-regexp.util.js +22 -0
  75. package/cjs/exception/http-errors/bad-request.error.js +3 -3
  76. package/cjs/exception/http-errors/conflict.error.js +3 -3
  77. package/cjs/exception/http-errors/failed-dependency.error.js +3 -3
  78. package/cjs/exception/http-errors/forbidden.error.js +3 -3
  79. package/cjs/exception/http-errors/internal-server.error.js +3 -3
  80. package/cjs/exception/http-errors/method-not-allowed.error.js +3 -3
  81. package/cjs/exception/http-errors/not-acceptable.error.js +3 -3
  82. package/cjs/exception/http-errors/not-found.error.js +3 -3
  83. package/cjs/exception/{resource-errors → http-errors}/permission.error.js +2 -2
  84. package/cjs/exception/{resource-errors → http-errors}/resource-conflict.error.js +3 -3
  85. package/cjs/exception/{resource-errors → http-errors}/resource-not.available.error.js +5 -5
  86. package/cjs/exception/http-errors/unauthorized.error.js +3 -3
  87. package/cjs/exception/http-errors/unprocessable-entity.error.js +3 -3
  88. package/cjs/exception/index.js +4 -4
  89. package/cjs/exception/issue-severity.enum.js +1 -1
  90. package/cjs/exception/opra-exception.js +5 -16
  91. package/cjs/exception/opra-http-error.js +25 -0
  92. package/cjs/filter/antlr/OpraFilterLexer.js +259 -193
  93. package/cjs/filter/antlr/OpraFilterParser.js +137 -84
  94. package/cjs/filter/ast/expressions/arithmetic-expression.js +1 -1
  95. package/cjs/filter/ast/expressions/logical-expression.js +1 -3
  96. package/cjs/filter/ast/terms/number-literal.js +1 -3
  97. package/cjs/filter/ast/terms/time-literal.js +6 -4
  98. package/cjs/filter/build.js +1 -3
  99. package/cjs/filter/filter-rules.js +93 -0
  100. package/cjs/filter/filter-tree-visitor.js +4 -7
  101. package/cjs/filter/parse.js +2 -2
  102. package/cjs/filter/utils.js +1 -3
  103. package/cjs/helpers/function-utils.js +2 -11
  104. package/cjs/helpers/get-stack-filename.js +28 -4
  105. package/cjs/helpers/index.js +2 -2
  106. package/cjs/helpers/is-url-string.js +1 -2
  107. package/cjs/helpers/mixin-utils.js +5 -8
  108. package/cjs/helpers/monkey-patches.js +12 -0
  109. package/cjs/helpers/object-utils.js +4 -5
  110. package/cjs/helpers/parse-fields-projection.js +67 -0
  111. package/cjs/helpers/responsive-map.js +93 -117
  112. package/cjs/helpers/type-guards.js +22 -29
  113. package/cjs/http/enums/http-status-messages.js +63 -63
  114. package/cjs/http/enums/mime-types.enum.js +17 -0
  115. package/cjs/http/index.js +1 -2
  116. package/cjs/http/opra-url-path.js +14 -9
  117. package/cjs/http/opra-url.js +18 -15
  118. package/cjs/i18n/i18n.js +9 -5
  119. package/cjs/i18n/translate.js +2 -2
  120. package/cjs/index.js +1 -1
  121. package/cjs/schema/http/http-controller.interface.js +11 -0
  122. package/cjs/schema/http/http-operation.interface.js +7 -0
  123. package/cjs/schema/index.js +27 -2
  124. package/cjs/schema/type-guards.js +8 -30
  125. package/cjs/schema/value.interface.js +2 -0
  126. package/esm/document/api-document.js +112 -23
  127. package/esm/document/common/api-base.js +23 -0
  128. package/esm/document/common/data-type-map.js +62 -0
  129. package/esm/document/common/document-element.js +28 -0
  130. package/esm/document/common/document-init-context.js +65 -0
  131. package/esm/document/common/document-node.js +120 -0
  132. package/esm/document/common/opra-document-error.js +11 -0
  133. package/esm/document/common/value.js +30 -0
  134. package/esm/document/constants.js +12 -6
  135. package/esm/document/data-type/api-field.js +61 -0
  136. package/esm/document/data-type/complex-type-base.js +180 -0
  137. package/esm/document/data-type/complex-type.js +88 -11
  138. package/esm/document/data-type/data-type.js +32 -24
  139. package/esm/document/data-type/decorators/api-field-decorator.js +22 -0
  140. package/esm/document/data-type/decorators/complex-type.decorator.js +28 -0
  141. package/esm/document/data-type/decorators/simple-type.decorator.js +61 -0
  142. package/esm/document/data-type/enum-type.js +93 -36
  143. package/esm/document/data-type/extended-types/base64.type.js +22 -0
  144. package/esm/document/data-type/extended-types/date-string.type.js +41 -0
  145. package/esm/document/data-type/extended-types/date-time-string.type.js +44 -0
  146. package/esm/document/data-type/extended-types/date-time.type.js +55 -0
  147. package/esm/document/data-type/extended-types/date.type.js +52 -0
  148. package/esm/document/data-type/extended-types/email.type.js +77 -0
  149. package/esm/document/data-type/extended-types/field-path.type.js +50 -0
  150. package/esm/document/data-type/extended-types/filter.type.js +71 -0
  151. package/esm/document/data-type/extended-types/index.js +13 -0
  152. package/esm/document/data-type/extended-types/object-id.type.js +22 -0
  153. package/esm/document/{resource/types → data-type/extended-types}/operation-result.type.js +25 -14
  154. package/esm/document/data-type/extended-types/time.type.js +44 -0
  155. package/esm/document/data-type/extended-types/url.type.js +22 -0
  156. package/esm/document/data-type/extended-types/uuid.type.js +27 -0
  157. package/esm/document/data-type/mapped-type.js +76 -56
  158. package/esm/document/data-type/mixin-type.js +80 -24
  159. package/esm/document/data-type/omit-type.js +7 -0
  160. package/esm/document/data-type/partial-type.js +9 -0
  161. package/esm/document/data-type/pick-type.js +7 -0
  162. package/esm/document/data-type/primitive-types/any.type.js +22 -0
  163. package/esm/document/data-type/primitive-types/bigint.type.js +27 -0
  164. package/esm/document/data-type/primitive-types/boolean.type.js +22 -0
  165. package/esm/document/data-type/primitive-types/index.js +8 -0
  166. package/esm/document/data-type/primitive-types/integer.type.js +27 -0
  167. package/esm/document/data-type/{builtin → primitive-types}/null.type.js +11 -2
  168. package/esm/document/data-type/primitive-types/number.type.js +37 -0
  169. package/esm/document/data-type/{builtin → primitive-types}/object.type.js +7 -1
  170. package/esm/document/data-type/primitive-types/string.type.js +55 -0
  171. package/esm/document/data-type/required-type.js +9 -0
  172. package/esm/document/data-type/simple-type.js +92 -12
  173. package/esm/document/data-type/utils/create-mapped-class.js +50 -0
  174. package/esm/document/data-type/utils/get-is-inherited-predicate-fn.js +11 -0
  175. package/esm/document/{data-type/field-decorator.js → decorators/api-field-decorator.js} +5 -5
  176. package/esm/document/{data-type → decorators}/complex-type.decorator.js +12 -2
  177. package/esm/document/decorators/http-controller.decorator.js +112 -0
  178. package/esm/document/decorators/http-operation-entity.decorator.js +460 -0
  179. package/esm/document/decorators/http-operation.decorator.js +178 -0
  180. package/esm/document/decorators/simple-type.decorator.js +61 -0
  181. package/esm/document/factory/api-document.factory.js +174 -0
  182. package/esm/document/factory/data-type.factory.js +494 -0
  183. package/esm/document/factory/http-api.factory.js +311 -0
  184. package/esm/document/http/decorators/http-controller.decorator.js +112 -0
  185. package/esm/document/http/decorators/http-operation-entity.decorator.js +459 -0
  186. package/esm/document/http/decorators/http-operation.decorator.js +178 -0
  187. package/esm/document/http/http-api.js +36 -0
  188. package/esm/document/http/http-controller.js +142 -0
  189. package/esm/document/http/http-media-type.js +65 -0
  190. package/esm/document/http/http-multipart-field.js +29 -0
  191. package/esm/document/http/http-operation-response.js +38 -0
  192. package/esm/document/http/http-operation.js +90 -0
  193. package/esm/document/http/http-parameter.js +41 -0
  194. package/esm/document/http/http-request-body.js +21 -0
  195. package/esm/document/http/http-status-range.js +37 -0
  196. package/esm/document/index.js +34 -22
  197. package/esm/document/utils/inspect.util.js +3 -3
  198. package/esm/document/utils/parse-regexp.util.js +18 -0
  199. package/esm/exception/http-errors/bad-request.error.js +3 -3
  200. package/esm/exception/http-errors/conflict.error.js +3 -3
  201. package/esm/exception/http-errors/failed-dependency.error.js +3 -3
  202. package/esm/exception/http-errors/forbidden.error.js +3 -3
  203. package/esm/exception/http-errors/internal-server.error.js +3 -3
  204. package/esm/exception/http-errors/method-not-allowed.error.js +3 -3
  205. package/esm/exception/http-errors/not-acceptable.error.js +3 -3
  206. package/esm/exception/http-errors/not-found.error.js +3 -3
  207. package/esm/exception/{resource-errors → http-errors}/permission.error.js +2 -2
  208. package/esm/exception/{resource-errors → http-errors}/resource-conflict.error.js +3 -3
  209. package/esm/exception/{resource-errors → http-errors}/resource-not.available.error.js +5 -5
  210. package/esm/exception/http-errors/unauthorized.error.js +3 -3
  211. package/esm/exception/http-errors/unprocessable-entity.error.js +3 -3
  212. package/esm/exception/index.js +4 -4
  213. package/esm/exception/issue-severity.enum.js +1 -1
  214. package/esm/exception/opra-exception.js +5 -16
  215. package/esm/exception/opra-http-error.js +21 -0
  216. package/esm/filter/antlr/OpraFilterLexer.js +260 -194
  217. package/esm/filter/antlr/OpraFilterListener.js +1 -1
  218. package/esm/filter/antlr/OpraFilterParser.js +138 -85
  219. package/esm/filter/ast/expressions/arithmetic-expression.js +1 -1
  220. package/esm/filter/ast/expressions/logical-expression.js +1 -3
  221. package/esm/filter/ast/terms/number-literal.js +1 -3
  222. package/esm/filter/ast/terms/time-literal.js +6 -4
  223. package/esm/filter/build.js +2 -4
  224. package/esm/filter/filter-rules.js +89 -0
  225. package/esm/filter/filter-tree-visitor.js +4 -6
  226. package/esm/filter/parse.js +2 -2
  227. package/esm/filter/utils.js +1 -3
  228. package/esm/helpers/function-utils.js +1 -9
  229. package/esm/helpers/get-stack-filename.js +26 -3
  230. package/esm/helpers/index.js +2 -2
  231. package/esm/helpers/is-url-string.js +1 -2
  232. package/esm/helpers/mixin-utils.js +5 -8
  233. package/esm/helpers/monkey-patches.js +12 -0
  234. package/esm/helpers/object-utils.js +4 -5
  235. package/esm/helpers/parse-fields-projection.js +61 -0
  236. package/esm/helpers/responsive-map.js +93 -117
  237. package/esm/helpers/type-guards.js +22 -29
  238. package/esm/http/enums/http-status-messages.js +63 -63
  239. package/esm/http/enums/mime-types.enum.js +14 -0
  240. package/esm/http/index.js +1 -2
  241. package/esm/http/opra-url-path.js +14 -9
  242. package/esm/http/opra-url.js +18 -15
  243. package/esm/i18n/i18n.js +9 -5
  244. package/esm/i18n/translate.js +2 -2
  245. package/esm/index.js +1 -1
  246. package/esm/schema/http/http-controller.interface.js +8 -0
  247. package/esm/schema/http/http-operation.interface.js +4 -0
  248. package/esm/schema/index.js +27 -2
  249. package/esm/schema/type-guards.js +6 -24
  250. package/esm/schema/value.interface.js +1 -0
  251. package/package.json +13 -12
  252. package/types/document/api-document.d.ts +31 -51
  253. package/types/document/common/api-base.d.ts +17 -0
  254. package/types/document/common/data-type-map.d.ts +23 -0
  255. package/types/document/common/document-element.d.ts +23 -0
  256. package/types/document/common/document-init-context.d.ts +17 -0
  257. package/types/document/common/document-node.d.ts +65 -0
  258. package/types/document/common/opra-document-error.d.ts +12 -0
  259. package/types/document/common/value.d.ts +48 -0
  260. package/types/document/constants.d.ts +9 -3
  261. package/types/document/data-type/api-field.d.ts +65 -0
  262. package/types/document/data-type/complex-type-base.d.ts +80 -0
  263. package/types/document/data-type/complex-type.d.ts +61 -35
  264. package/types/document/data-type/data-type.d.ts +49 -46
  265. package/types/document/data-type/decorators/api-field-decorator.d.ts +5 -0
  266. package/types/document/data-type/decorators/complex-type.decorator.d.ts +2 -0
  267. package/types/document/data-type/decorators/simple-type.decorator.d.ts +20 -0
  268. package/types/document/data-type/enum-type.d.ts +59 -23
  269. package/types/document/data-type/extended-types/base64.type.d.ts +7 -0
  270. package/types/document/data-type/extended-types/date-string.type.d.ts +9 -0
  271. package/types/document/data-type/extended-types/date-time-string.type.d.ts +9 -0
  272. package/types/document/data-type/extended-types/date-time.type.d.ts +9 -0
  273. package/types/document/data-type/extended-types/date.type.d.ts +9 -0
  274. package/types/document/data-type/extended-types/email.type.d.ts +16 -0
  275. package/types/document/data-type/extended-types/field-path.type.d.ts +15 -0
  276. package/types/document/data-type/extended-types/filter.type.d.ts +16 -0
  277. package/types/document/data-type/extended-types/index.d.ts +13 -0
  278. package/types/document/data-type/extended-types/object-id.type.d.ts +7 -0
  279. package/types/document/{resource/types → data-type/extended-types}/operation-result.type.d.ts +7 -6
  280. package/types/document/data-type/extended-types/time.type.d.ts +9 -0
  281. package/types/document/data-type/extended-types/url.type.d.ts +7 -0
  282. package/types/document/data-type/extended-types/uuid.type.d.ts +8 -0
  283. package/types/document/data-type/mapped-type.d.ts +55 -44
  284. package/types/document/data-type/mixin-type.d.ts +65 -26
  285. package/types/document/data-type/omit-type.d.ts +15 -0
  286. package/types/document/data-type/partial-type.d.ts +28 -0
  287. package/types/document/data-type/pick-type.d.ts +16 -0
  288. package/types/document/data-type/primitive-types/any.type.d.ts +7 -0
  289. package/types/document/data-type/primitive-types/bigint.type.d.ts +8 -0
  290. package/types/document/data-type/primitive-types/boolean.type.d.ts +7 -0
  291. package/types/document/data-type/primitive-types/index.d.ts +8 -0
  292. package/types/document/data-type/primitive-types/integer.type.d.ts +8 -0
  293. package/types/document/data-type/primitive-types/null.type.d.ts +7 -0
  294. package/types/document/data-type/primitive-types/number.type.d.ts +9 -0
  295. package/types/document/data-type/primitive-types/object.type.d.ts +3 -0
  296. package/types/document/data-type/primitive-types/string.type.d.ts +11 -0
  297. package/types/document/data-type/required-type.d.ts +22 -0
  298. package/types/document/data-type/simple-type.d.ts +63 -24
  299. package/types/document/data-type/utils/create-mapped-class.d.ts +3 -0
  300. package/types/document/data-type/utils/get-is-inherited-predicate-fn.d.ts +1 -0
  301. package/types/document/decorators/api-field-decorator.d.ts +5 -0
  302. package/types/document/decorators/complex-type.decorator.d.ts +2 -0
  303. package/types/document/decorators/http-controller.decorator.d.ts +14 -0
  304. package/types/document/decorators/http-operation-entity.decorator.d.ts +100 -0
  305. package/types/document/decorators/http-operation.decorator.d.ts +30 -0
  306. package/types/document/decorators/simple-type.decorator.d.ts +20 -0
  307. package/types/document/factory/api-document.factory.d.ts +35 -0
  308. package/types/document/factory/data-type.factory.d.ts +103 -0
  309. package/types/document/factory/http-api.factory.d.ts +60 -0
  310. package/types/document/http/decorators/http-controller.decorator.d.ts +14 -0
  311. package/types/document/http/decorators/http-operation-entity.decorator.d.ts +100 -0
  312. package/types/document/http/decorators/http-operation.decorator.d.ts +30 -0
  313. package/types/document/http/http-api.d.ts +23 -0
  314. package/types/document/http/http-controller.d.ts +92 -0
  315. package/types/document/http/http-media-type.d.ts +59 -0
  316. package/types/document/http/http-multipart-field.d.ts +26 -0
  317. package/types/document/http/http-operation-response.d.ts +36 -0
  318. package/types/document/http/http-operation.d.ts +84 -0
  319. package/types/document/http/http-parameter.d.ts +50 -0
  320. package/types/document/http/http-request-body.d.ts +31 -0
  321. package/types/document/http/http-status-range.d.ts +14 -0
  322. package/types/document/index.d.ts +33 -22
  323. package/types/document/utils/parse-regexp.util.d.ts +4 -0
  324. package/types/exception/http-errors/bad-request.error.d.ts +2 -2
  325. package/types/exception/http-errors/conflict.error.d.ts +2 -2
  326. package/types/exception/http-errors/failed-dependency.error.d.ts +2 -2
  327. package/types/exception/http-errors/forbidden.error.d.ts +2 -2
  328. package/types/exception/http-errors/internal-server.error.d.ts +2 -2
  329. package/types/exception/http-errors/method-not-allowed.error.d.ts +2 -2
  330. package/types/exception/http-errors/not-acceptable.error.d.ts +2 -2
  331. package/types/exception/http-errors/not-found.error.d.ts +2 -2
  332. package/types/exception/{resource-errors → http-errors}/permission.error.d.ts +1 -1
  333. package/types/exception/http-errors/resource-conflict.error.d.ts +5 -0
  334. package/types/exception/{resource-errors → http-errors}/resource-not.available.error.d.ts +2 -2
  335. package/types/exception/http-errors/unauthorized.error.d.ts +2 -2
  336. package/types/exception/http-errors/unprocessable-entity.error.d.ts +2 -2
  337. package/types/exception/index.d.ts +4 -4
  338. package/types/exception/opra-exception.d.ts +1 -5
  339. package/types/exception/opra-http-error.d.ts +13 -0
  340. package/types/filter/antlr/OpraFilterLexer.d.ts +1 -1
  341. package/types/filter/antlr/OpraFilterListener.d.ts +2 -2
  342. package/types/filter/antlr/OpraFilterParser.d.ts +2 -2
  343. package/types/filter/antlr/OpraFilterVisitor.d.ts +1 -1
  344. package/types/filter/ast/terms/qualified-identifier.d.ts +1 -1
  345. package/types/filter/filter-rules.d.ts +24 -0
  346. package/types/filter/filter-tree-visitor.d.ts +1 -3
  347. package/types/helpers/function-utils.d.ts +2 -4
  348. package/types/helpers/get-stack-filename.d.ts +1 -0
  349. package/types/helpers/index.d.ts +2 -2
  350. package/types/helpers/monkey-patches.d.ts +0 -0
  351. package/types/helpers/parse-fields-projection.d.ts +11 -0
  352. package/types/helpers/responsive-map.d.ts +8 -4
  353. package/types/helpers/type-guards.d.ts +2 -2
  354. package/types/http/enums/http-status-messages.d.ts +63 -63
  355. package/types/http/enums/mime-types.enum.d.ts +12 -0
  356. package/types/http/index.d.ts +1 -2
  357. package/types/i18n/i18n.d.ts +2 -1
  358. package/types/schema/data-type/complex-type.interface.d.ts +3 -3
  359. package/types/schema/data-type/data-type.interface.d.ts +6 -0
  360. package/types/schema/data-type/enum-type.interface.d.ts +3 -4
  361. package/types/schema/data-type/field.interface.d.ts +2 -10
  362. package/types/schema/data-type/mapped-type.interface.d.ts +7 -3
  363. package/types/schema/data-type/mixin-type.interface.d.ts +2 -2
  364. package/types/schema/data-type/simple-type.interface.d.ts +35 -7
  365. package/types/schema/data-type-container.interface.d.ts +7 -0
  366. package/types/schema/document.interface.d.ts +55 -0
  367. package/types/schema/http/http-controller.interface.d.ts +24 -0
  368. package/types/schema/http/http-media-type.interface.d.ts +65 -0
  369. package/types/schema/http/http-multipart-field.interface.d.ts +7 -0
  370. package/types/schema/http/http-operation-response.interface.d.ts +24 -0
  371. package/types/schema/http/http-operation.interface.d.ts +23 -0
  372. package/types/schema/http/http-parameter.interface.d.ts +28 -0
  373. package/types/schema/http/http-request-body.interface.d.ts +29 -0
  374. package/types/schema/http/http-status-range.interface.d.ts +4 -0
  375. package/types/schema/index.d.ts +61 -2
  376. package/types/schema/type-guards.d.ts +2 -10
  377. package/types/schema/types.d.ts +3 -0
  378. package/types/schema/value.interface.d.ts +23 -0
  379. package/types/types.d.ts +1 -14
  380. package/cjs/document/data-type/builtin/any.type.js +0 -13
  381. package/cjs/document/data-type/builtin/approx-date.type.js +0 -21
  382. package/cjs/document/data-type/builtin/approx-datetime.type.js +0 -24
  383. package/cjs/document/data-type/builtin/bigint.type.js +0 -16
  384. package/cjs/document/data-type/builtin/date.type.js +0 -17
  385. package/cjs/document/data-type/builtin/datetime.type.js +0 -21
  386. package/cjs/document/data-type/builtin/email.type.js +0 -16
  387. package/cjs/document/data-type/builtin/index.js +0 -21
  388. package/cjs/document/data-type/builtin/integer.type.js +0 -16
  389. package/cjs/document/data-type/builtin/number.type.js +0 -16
  390. package/cjs/document/data-type/builtin/string.type.js +0 -16
  391. package/cjs/document/data-type/builtin/time.type.js +0 -23
  392. package/cjs/document/data-type/builtin/uuid.type.js +0 -16
  393. package/cjs/document/data-type/complex-type-class.js +0 -274
  394. package/cjs/document/data-type/enum-type-class.js +0 -39
  395. package/cjs/document/data-type/field-class.js +0 -67
  396. package/cjs/document/data-type/field.js +0 -25
  397. package/cjs/document/data-type/mapped-type-class.js +0 -53
  398. package/cjs/document/data-type/mixin-type-class.js +0 -38
  399. package/cjs/document/data-type/simple-type-class.js +0 -37
  400. package/cjs/document/data-type/simple-type.decorator.js +0 -20
  401. package/cjs/document/document-base.js +0 -24
  402. package/cjs/document/factory/api-document-factory.js +0 -262
  403. package/cjs/document/factory/type-document-factory.js +0 -326
  404. package/cjs/document/resource/action-decorator.js +0 -33
  405. package/cjs/document/resource/action.js +0 -34
  406. package/cjs/document/resource/collection-class.js +0 -257
  407. package/cjs/document/resource/collection-decorator.js +0 -211
  408. package/cjs/document/resource/collection.js +0 -25
  409. package/cjs/document/resource/container-class.js +0 -84
  410. package/cjs/document/resource/container-decorator.js +0 -24
  411. package/cjs/document/resource/container.js +0 -29
  412. package/cjs/document/resource/crud-operation-decorator.js +0 -28
  413. package/cjs/document/resource/crud-operation.js +0 -45
  414. package/cjs/document/resource/crud-resource.js +0 -34
  415. package/cjs/document/resource/endpoint.js +0 -59
  416. package/cjs/document/resource/enums/metadata-mode.enum.js +0 -19
  417. package/cjs/document/resource/parameter.js +0 -50
  418. package/cjs/document/resource/resource-decorator.js +0 -33
  419. package/cjs/document/resource/resource.js +0 -60
  420. package/cjs/document/resource/singleton-class.js +0 -83
  421. package/cjs/document/resource/singleton-decorator.js +0 -57
  422. package/cjs/document/resource/singleton.js +0 -25
  423. package/cjs/document/resource/storage-class.js +0 -18
  424. package/cjs/document/resource/storage-decorator.js +0 -70
  425. package/cjs/document/resource/storage.js +0 -25
  426. package/cjs/document/resource/types/operation-result.type.js +0 -45
  427. package/cjs/document/type-document.js +0 -204
  428. package/cjs/exception/resource-errors/resource-not-found.error.js +0 -24
  429. package/cjs/exception/resource-errors/resource-not.available.js +0 -24
  430. package/cjs/exception/wrap-exception.js +0 -43
  431. package/cjs/helpers/path-to-object-tree.js +0 -28
  432. package/cjs/schema/opra-schema.ns.js +0 -22
  433. package/cjs/schema/resource/collection.interface.js +0 -7
  434. package/cjs/schema/resource/container.interface.js +0 -7
  435. package/cjs/schema/resource/singleton.interface.js +0 -7
  436. package/cjs/schema/resource/storage.interface.js +0 -7
  437. package/esm/document/data-type/builtin/any.type.js +0 -10
  438. package/esm/document/data-type/builtin/approx-date.type.js +0 -18
  439. package/esm/document/data-type/builtin/approx-datetime.type.js +0 -21
  440. package/esm/document/data-type/builtin/base64.type.js +0 -13
  441. package/esm/document/data-type/builtin/bigint.type.js +0 -13
  442. package/esm/document/data-type/builtin/boolean.type.js +0 -13
  443. package/esm/document/data-type/builtin/date.type.js +0 -14
  444. package/esm/document/data-type/builtin/datetime.type.js +0 -18
  445. package/esm/document/data-type/builtin/email.type.js +0 -13
  446. package/esm/document/data-type/builtin/index.js +0 -18
  447. package/esm/document/data-type/builtin/integer.type.js +0 -13
  448. package/esm/document/data-type/builtin/number.type.js +0 -13
  449. package/esm/document/data-type/builtin/object-id.type.js +0 -13
  450. package/esm/document/data-type/builtin/string.type.js +0 -13
  451. package/esm/document/data-type/builtin/time.type.js +0 -20
  452. package/esm/document/data-type/builtin/url.type.js +0 -13
  453. package/esm/document/data-type/builtin/uuid.type.js +0 -13
  454. package/esm/document/data-type/complex-type-class.js +0 -270
  455. package/esm/document/data-type/enum-type-class.js +0 -35
  456. package/esm/document/data-type/field-class.js +0 -63
  457. package/esm/document/data-type/field.js +0 -21
  458. package/esm/document/data-type/mapped-type-class.js +0 -48
  459. package/esm/document/data-type/mixin-type-class.js +0 -34
  460. package/esm/document/data-type/simple-type-class.js +0 -33
  461. package/esm/document/data-type/simple-type.decorator.js +0 -15
  462. package/esm/document/document-base.js +0 -20
  463. package/esm/document/factory/api-document-factory.js +0 -258
  464. package/esm/document/factory/type-document-factory.js +0 -322
  465. package/esm/document/resource/action-decorator.js +0 -29
  466. package/esm/document/resource/action.js +0 -30
  467. package/esm/document/resource/collection-class.js +0 -253
  468. package/esm/document/resource/collection-decorator.js +0 -207
  469. package/esm/document/resource/collection.js +0 -21
  470. package/esm/document/resource/container-class.js +0 -80
  471. package/esm/document/resource/container-decorator.js +0 -20
  472. package/esm/document/resource/container.js +0 -25
  473. package/esm/document/resource/crud-operation-decorator.js +0 -24
  474. package/esm/document/resource/crud-operation.js +0 -41
  475. package/esm/document/resource/crud-resource.js +0 -30
  476. package/esm/document/resource/endpoint.js +0 -55
  477. package/esm/document/resource/enums/metadata-mode.enum.js +0 -16
  478. package/esm/document/resource/parameter.js +0 -46
  479. package/esm/document/resource/resource-decorator.js +0 -28
  480. package/esm/document/resource/resource.js +0 -56
  481. package/esm/document/resource/singleton-class.js +0 -79
  482. package/esm/document/resource/singleton-decorator.js +0 -53
  483. package/esm/document/resource/singleton.js +0 -21
  484. package/esm/document/resource/storage-class.js +0 -14
  485. package/esm/document/resource/storage-decorator.js +0 -66
  486. package/esm/document/resource/storage.js +0 -21
  487. package/esm/document/type-document.js +0 -200
  488. package/esm/exception/resource-errors/resource-not-found.error.js +0 -20
  489. package/esm/exception/resource-errors/resource-not.available.js +0 -20
  490. package/esm/exception/wrap-exception.js +0 -39
  491. package/esm/helpers/path-to-object-tree.js +0 -24
  492. package/esm/schema/opra-schema.ns.js +0 -19
  493. package/esm/schema/resource/collection.interface.js +0 -4
  494. package/esm/schema/resource/container.interface.js +0 -4
  495. package/esm/schema/resource/singleton.interface.js +0 -4
  496. package/esm/schema/resource/storage.interface.js +0 -4
  497. package/types/document/data-type/builtin/any.type.d.ts +0 -2
  498. package/types/document/data-type/builtin/approx-date.type.d.ts +0 -2
  499. package/types/document/data-type/builtin/approx-datetime.type.d.ts +0 -2
  500. package/types/document/data-type/builtin/base64.type.d.ts +0 -2
  501. package/types/document/data-type/builtin/bigint.type.d.ts +0 -2
  502. package/types/document/data-type/builtin/boolean.type.d.ts +0 -2
  503. package/types/document/data-type/builtin/date.type.d.ts +0 -2
  504. package/types/document/data-type/builtin/datetime.type.d.ts +0 -2
  505. package/types/document/data-type/builtin/email.type.d.ts +0 -2
  506. package/types/document/data-type/builtin/index.d.ts +0 -18
  507. package/types/document/data-type/builtin/integer.type.d.ts +0 -2
  508. package/types/document/data-type/builtin/null.type.d.ts +0 -2
  509. package/types/document/data-type/builtin/number.type.d.ts +0 -2
  510. package/types/document/data-type/builtin/object-id.type.d.ts +0 -2
  511. package/types/document/data-type/builtin/object.type.d.ts +0 -2
  512. package/types/document/data-type/builtin/string.type.d.ts +0 -2
  513. package/types/document/data-type/builtin/time.type.d.ts +0 -2
  514. package/types/document/data-type/builtin/url.type.d.ts +0 -2
  515. package/types/document/data-type/builtin/uuid.type.d.ts +0 -2
  516. package/types/document/data-type/complex-type-class.d.ts +0 -36
  517. package/types/document/data-type/complex-type.decorator.d.ts +0 -2
  518. package/types/document/data-type/enum-type-class.d.ts +0 -18
  519. package/types/document/data-type/field-class.d.ts +0 -31
  520. package/types/document/data-type/field-decorator.d.ts +0 -5
  521. package/types/document/data-type/field.d.ts +0 -46
  522. package/types/document/data-type/mapped-type-class.d.ts +0 -18
  523. package/types/document/data-type/mixin-type-class.d.ts +0 -12
  524. package/types/document/data-type/simple-type-class.d.ts +0 -19
  525. package/types/document/data-type/simple-type.decorator.d.ts +0 -2
  526. package/types/document/document-base.d.ts +0 -10
  527. package/types/document/factory/api-document-factory.d.ts +0 -49
  528. package/types/document/factory/type-document-factory.d.ts +0 -57
  529. package/types/document/interfaces/collection.interface.d.ts +0 -10
  530. package/types/document/interfaces/singleton.interface.d.ts +0 -7
  531. package/types/document/interfaces/storage.interface.d.ts +0 -8
  532. package/types/document/resource/action-decorator.d.ts +0 -8
  533. package/types/document/resource/action.d.ts +0 -30
  534. package/types/document/resource/collection-class.d.ts +0 -20
  535. package/types/document/resource/collection-decorator.d.ts +0 -204
  536. package/types/document/resource/collection.d.ts +0 -62
  537. package/types/document/resource/container-class.d.ts +0 -66
  538. package/types/document/resource/container-decorator.d.ts +0 -37
  539. package/types/document/resource/container.d.ts +0 -27
  540. package/types/document/resource/crud-operation-decorator.d.ts +0 -6
  541. package/types/document/resource/crud-operation.d.ts +0 -32
  542. package/types/document/resource/crud-resource.d.ts +0 -16
  543. package/types/document/resource/endpoint.d.ts +0 -32
  544. package/types/document/resource/enums/metadata-mode.enum.d.ts +0 -5
  545. package/types/document/resource/parameter.d.ts +0 -35
  546. package/types/document/resource/resource-decorator.d.ts +0 -40
  547. package/types/document/resource/resource.d.ts +0 -35
  548. package/types/document/resource/singleton-class.d.ts +0 -21
  549. package/types/document/resource/singleton-decorator.d.ts +0 -131
  550. package/types/document/resource/singleton.d.ts +0 -49
  551. package/types/document/resource/storage-class.d.ts +0 -17
  552. package/types/document/resource/storage-decorator.d.ts +0 -100
  553. package/types/document/resource/storage.d.ts +0 -39
  554. package/types/document/type-document.d.ts +0 -79
  555. package/types/exception/resource-errors/resource-conflict.error.d.ts +0 -5
  556. package/types/exception/resource-errors/resource-not-found.error.d.ts +0 -8
  557. package/types/exception/resource-errors/resource-not.available.d.ts +0 -8
  558. package/types/exception/wrap-exception.d.ts +0 -2
  559. package/types/helpers/path-to-object-tree.d.ts +0 -4
  560. package/types/schema/document/api-document.interface.d.ts +0 -11
  561. package/types/schema/document/document-base.interface.d.ts +0 -24
  562. package/types/schema/document/type-document.interface.d.ts +0 -6
  563. package/types/schema/opra-schema.ns.d.ts +0 -19
  564. package/types/schema/resource/action.interface.d.ts +0 -6
  565. package/types/schema/resource/collection.interface.d.ts +0 -55
  566. package/types/schema/resource/container.interface.d.ts +0 -10
  567. package/types/schema/resource/endpoint.interface.d.ts +0 -13
  568. package/types/schema/resource/resource.interface.d.ts +0 -15
  569. package/types/schema/resource/singleton.interface.d.ts +0 -25
  570. package/types/schema/resource/storage.interface.d.ts +0 -61
  571. /package/cjs/{document/interfaces/collection.interface.js → schema/data-type-container.interface.js} +0 -0
  572. /package/cjs/{document/interfaces/singleton.interface.js → schema/document.interface.js} +0 -0
  573. /package/cjs/{document/interfaces/storage.interface.js → schema/http/http-media-type.interface.js} +0 -0
  574. /package/cjs/schema/{document/api-document.interface.js → http/http-multipart-field.interface.js} +0 -0
  575. /package/cjs/schema/{document/document-base.interface.js → http/http-operation-response.interface.js} +0 -0
  576. /package/cjs/schema/{document/type-document.interface.js → http/http-parameter.interface.js} +0 -0
  577. /package/cjs/schema/{resource/action.interface.js → http/http-request-body.interface.js} +0 -0
  578. /package/cjs/schema/{resource/endpoint.interface.js → http/http-status-range.interface.js} +0 -0
  579. /package/cjs/schema/{resource/resource.interface.js → types.js} +0 -0
  580. /package/esm/{document/interfaces/collection.interface.js → schema/data-type-container.interface.js} +0 -0
  581. /package/esm/{document/interfaces/singleton.interface.js → schema/document.interface.js} +0 -0
  582. /package/esm/{document/interfaces/storage.interface.js → schema/http/http-media-type.interface.js} +0 -0
  583. /package/esm/schema/{document/api-document.interface.js → http/http-multipart-field.interface.js} +0 -0
  584. /package/esm/schema/{document/document-base.interface.js → http/http-operation-response.interface.js} +0 -0
  585. /package/esm/schema/{document/type-document.interface.js → http/http-parameter.interface.js} +0 -0
  586. /package/esm/schema/{resource/action.interface.js → http/http-request-body.interface.js} +0 -0
  587. /package/esm/schema/{resource/endpoint.interface.js → http/http-status-range.interface.js} +0 -0
  588. /package/esm/schema/{resource/resource.interface.js → types.js} +0 -0
@@ -1,10 +0,0 @@
1
- import { OpraSchema } from '../schema/index.js';
2
- export declare class DocumentBase {
3
- url?: string;
4
- info: OpraSchema.DocumentInfo;
5
- constructor();
6
- /**
7
- * Export as OPRA schema definition object
8
- */
9
- exportSchema(): OpraSchema.DocumentBase;
10
- }
@@ -1,49 +0,0 @@
1
- import { StrictOmit, Type } from 'ts-gems';
2
- import { ResponsiveMap } from '../../helpers/index.js';
3
- import { OpraSchema } from '../../schema/index.js';
4
- import { ThunkAsync } from '../../types.js';
5
- import { ApiDocument } from '../api-document.js';
6
- import { Collection } from '../resource/collection.js';
7
- import { Container } from '../resource/container.js';
8
- import { Resource } from '../resource/resource.js';
9
- import { Singleton } from '../resource/singleton.js';
10
- import { Storage } from '../resource/storage.js';
11
- import { TypeDocumentFactory } from './type-document-factory.js';
12
- export declare namespace ApiDocumentFactory {
13
- interface RootInit extends StrictOmit<OpraSchema.Container, 'kind' | 'resources'> {
14
- resources?: ThunkAsync<Type | object>[] | Record<OpraSchema.Resource.Name, OpraSchema.Resource>;
15
- }
16
- interface InitArguments extends TypeDocumentFactory.InitArguments {
17
- root?: RootInit;
18
- }
19
- type ResourceInitializer = (Collection.InitArguments & {
20
- kind: OpraSchema.Collection.Kind;
21
- }) | (Singleton.InitArguments & {
22
- kind: OpraSchema.Singleton.Kind;
23
- }) | (Storage.InitArguments & {
24
- kind: OpraSchema.Storage.Kind;
25
- }) | (StrictOmit<Container.InitArguments, 'resources'> & {
26
- kind: OpraSchema.Container.Kind;
27
- resources?: ResourceInitializer[];
28
- });
29
- }
30
- /**
31
- * @class ApiDocumentFactory
32
- */
33
- export declare class ApiDocumentFactory extends TypeDocumentFactory {
34
- protected document: ApiDocument;
35
- protected resourceQueue: ResponsiveMap<any>;
36
- /**
37
- * Creates ApiDocument instance from given schema object
38
- * @param init
39
- */
40
- static createDocument(init: ApiDocumentFactory.InitArguments): Promise<ApiDocument>;
41
- /**
42
- * Downloads schema from the given URL and creates the document instance * @param url
43
- */
44
- static createDocumentFromUrl(url: string): Promise<ApiDocument>;
45
- protected initDocument(init: ApiDocumentFactory.InitArguments): Promise<ApiDocument>;
46
- protected importResourceSchema(name: string, schema: OpraSchema.Resource): Promise<ApiDocumentFactory.ResourceInitializer>;
47
- protected importResourceInstance(thunk: ThunkAsync<Type | object>): Promise<ApiDocumentFactory.ResourceInitializer>;
48
- protected createResource(container: Container, initArguments: ApiDocumentFactory.ResourceInitializer): Promise<Resource>;
49
- }
@@ -1,57 +0,0 @@
1
- import { PartialSome, StrictOmit, Type } from 'ts-gems';
2
- import { ResponsiveMap } from '../../helpers/index.js';
3
- import { OpraSchema } from '../../schema/index.js';
4
- import { ThunkAsync } from '../../types.js';
5
- import { ComplexType } from '../data-type/complex-type.js';
6
- import { DataType } from '../data-type/data-type.js';
7
- import { EnumType } from '../data-type/enum-type.js';
8
- import { MappedType } from '../data-type/mapped-type.js';
9
- import { MixinType } from '../data-type/mixin-type.js';
10
- import { SimpleType } from '../data-type/simple-type.js';
11
- import { TypeDocument } from '../type-document.js';
12
- type ReferenceUnion = string | OpraSchema.TypeDocument | TypeDocument;
13
- export declare namespace TypeDocumentFactory {
14
- interface InitArguments extends PartialSome<StrictOmit<OpraSchema.TypeDocument, 'references' | 'types'>, 'version'> {
15
- references?: Record<string, ReferenceUnion | Promise<ReferenceUnion>>;
16
- types?: ThunkAsync<Type | EnumType.EnumObject | EnumType.EnumArray>[] | Record<string, OpraSchema.DataType>;
17
- noBuiltinTypes?: boolean;
18
- }
19
- type DataTypeInitializer = (ComplexType.InitArguments & {
20
- kind: OpraSchema.ComplexType.Kind;
21
- }) | (SimpleType.InitArguments & {
22
- kind: OpraSchema.SimpleType.Kind;
23
- }) | (MixinType.InitArguments & {
24
- kind: OpraSchema.MixinType.Kind;
25
- }) | (MappedType.InitArguments & {
26
- kind: OpraSchema.MappedType.Kind;
27
- }) | (EnumType.InitArguments & {
28
- kind: OpraSchema.EnumType.Kind;
29
- });
30
- }
31
- /**
32
- * @class TypeDocumentFactory
33
- */
34
- export declare class TypeDocumentFactory {
35
- static designTypeMap: Map<Function | Type<any>, string>;
36
- protected document: TypeDocument;
37
- protected typeQueue: ResponsiveMap<any>;
38
- protected circularRefs: Map<any, any>;
39
- protected curPath: string[];
40
- protected cache: Map<any, any>;
41
- /**
42
- * Creates ApiDocument instance from given schema object
43
- */
44
- static createDocument(init: TypeDocumentFactory.InitArguments): Promise<TypeDocument>;
45
- /**
46
- * Downloads schema from the given URL and creates the document instance * @param url
47
- */
48
- static createDocumentFromUrl(url: string): Promise<TypeDocument>;
49
- protected initDocument(init: TypeDocumentFactory.InitArguments): Promise<TypeDocument>;
50
- initDocumentFromUrl(url: string): Promise<TypeDocument>;
51
- protected createBuiltinTypeDocument(): Promise<TypeDocument>;
52
- protected addReferences(references: Record<string, ReferenceUnion | Promise<ReferenceUnion>>): Promise<void>;
53
- protected importDataType(thunk: ThunkAsync<string | Type | EnumType.EnumObject | EnumType.EnumArray | OpraSchema.DataType>): Promise<DataType>;
54
- protected prepareDataTypeInitArguments(schema: TypeDocumentFactory.DataTypeInitializer | OpraSchema.DataType, ctor?: Type): Promise<TypeDocumentFactory.DataTypeInitializer | undefined>;
55
- protected createDataTypeInstance(kind: OpraSchema.DataType.Kind, name?: string): DataType;
56
- }
57
- export {};
@@ -1,10 +0,0 @@
1
- import { PartialDTO } from '../../types.js';
2
- export interface ICollection<T> {
3
- create?(...args: any[]): Promise<PartialDTO<T>>;
4
- delete?(...args: any[]): Promise<number> | undefined;
5
- deleteMany?(...args: any[]): Promise<number> | undefined;
6
- findMany?(...args: any[]): Promise<PartialDTO<T>[] | undefined>;
7
- get?(...args: any[]): Promise<PartialDTO<T> | undefined>;
8
- update?(...args: any[]): Promise<PartialDTO<T> | undefined>;
9
- updateMany?(...args: any[]): Promise<number> | undefined;
10
- }
@@ -1,7 +0,0 @@
1
- import { PartialDTO } from '../../types.js';
2
- export interface ISingleton<T> {
3
- create?(...args: any[]): Promise<PartialDTO<T>>;
4
- delete?(...args: any[]): Promise<number> | undefined;
5
- get?(...args: any[]): Promise<PartialDTO<T> | undefined>;
6
- update?(...args: any[]): Promise<PartialDTO<T> | undefined>;
7
- }
@@ -1,8 +0,0 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- import { Readable } from 'stream';
4
- export interface IStorage {
5
- delete?(...args: any[]): Promise<number | undefined>;
6
- get?(...args: any[]): Promise<Buffer | Readable | undefined>;
7
- post?(...args: any[]): Promise<void>;
8
- }
@@ -1,8 +0,0 @@
1
- import { Type } from 'ts-gems';
2
- import { TypeThunkAsync } from '../../types.js';
3
- import { ResourceDecorator } from './resource-decorator.js';
4
- export type ActionDecorator = ((target: Object, propertyKey: string) => void) & {
5
- Parameter(name: string, optionsOrType?: ResourceDecorator.ParameterOptions | string | Type): ActionDecorator;
6
- Returns(t: TypeThunkAsync | string): ActionDecorator;
7
- };
8
- export declare function createActionDecorator<T extends ActionDecorator, M extends ResourceDecorator.ActionMetadata>(options: any, bannedProperties: string[] | readonly string[], list: ((operationMeta: M) => void)[]): T;
@@ -1,30 +0,0 @@
1
- import { StrictOmit } from 'ts-gems';
2
- import { Validator } from 'valgen';
3
- import { OpraSchema } from '../../schema/index.js';
4
- import { DataType } from '../data-type/data-type.js';
5
- import { Endpoint } from './endpoint.js';
6
- import type { Resource } from './resource';
7
- import type { ResourceDecorator } from './resource-decorator.js';
8
- /**
9
- *
10
- * @class Action
11
- */
12
- export declare class Action extends Endpoint {
13
- readonly resource: Resource;
14
- readonly name: string;
15
- readonly kind = "action";
16
- returnType?: DataType;
17
- returnMime?: string;
18
- encodeReturning: Validator;
19
- constructor(resource: Resource, name: string, init: Action.InitArguments);
20
- exportSchema(options?: {
21
- webSafe?: boolean;
22
- }): OpraSchema.Endpoint;
23
- }
24
- export declare namespace Action {
25
- interface InitArguments extends StrictOmit<ResourceDecorator.ActionMetadata, 'parameters' | 'returnType'> {
26
- parameters: Record<string, Endpoint.ParameterInit>;
27
- returnType?: DataType;
28
- returnMime?: string;
29
- }
30
- }
@@ -1,20 +0,0 @@
1
- import { OpraFilter } from '../../filter/index.js';
2
- import { OpraSchema } from '../../schema/index.js';
3
- import type { ApiDocument } from '../api-document.js';
4
- import { ComplexType } from '../data-type/complex-type.js';
5
- import type { Collection } from './collection.js';
6
- import type { Container } from './container.js';
7
- import { CrudResource } from './crud-resource.js';
8
- export declare class CollectionClass extends CrudResource {
9
- readonly kind: OpraSchema.Resource.Kind;
10
- readonly type: ComplexType;
11
- readonly primaryKey: string[];
12
- constructor(parent: ApiDocument | Container, init: Collection.InitArguments);
13
- exportSchema(options?: {
14
- webSafe?: boolean;
15
- }): OpraSchema.Collection;
16
- parseKeyValue(value: any): any;
17
- normalizeFieldNames(fields: string | string[], allowSortSigns?: boolean): string[] | undefined;
18
- normalizeSortFields(fields: string | string[]): string[] | undefined;
19
- normalizeFilter(filter: string | OpraFilter.Expression): OpraFilter.Expression | undefined;
20
- }
@@ -1,204 +0,0 @@
1
- import { Combine, StrictOmit, Type } from 'ts-gems';
2
- import type { OpraFilter } from '../../filter/index.js';
3
- import { Field } from '../../schema/data-type/field.interface.js';
4
- import { OpraSchema } from '../../schema/index.js';
5
- import { TypeThunkAsync } from '../../types.js';
6
- import { EnumType } from '../data-type/enum-type.js';
7
- import { ActionDecorator } from './action-decorator.js';
8
- import type { Collection } from './collection.js';
9
- import { ResourceDecorator } from './resource-decorator.js';
10
- type ErrorMessage<T, Error> = [T] extends [never] ? Error : T;
11
- declare const operationProperties: readonly ["create", "delete", "deleteMany", "get", "findMany", "update", "updateMany"];
12
- type OperationProperties = typeof operationProperties[number];
13
- export declare function CollectionDecorator(type: Type | string, options?: Collection.DecoratorOptions): ClassDecorator;
14
- export interface CollectionDecorator extends StrictOmit<ResourceDecorator, 'Action'> {
15
- <T>(type: Type<T> | string, options?: Collection.DecoratorOptions<T>): ClassDecorator;
16
- Action: (options?: CollectionDecorator.Action.Options) => (<T, K extends keyof T>(target: T, propertyKey: ErrorMessage<Exclude<K, OperationProperties>, `'${string & K}' property is reserved for operation endpoints and can not be used for actions`>) => void) & ActionDecorator;
17
- Create: typeof CollectionDecorator.Create;
18
- Delete: typeof CollectionDecorator.Delete;
19
- DeleteMany: typeof CollectionDecorator.DeleteMany;
20
- Get: typeof CollectionDecorator.Get;
21
- FindMany: typeof CollectionDecorator.FindMany;
22
- Update: typeof CollectionDecorator.Update;
23
- UpdateMany: typeof CollectionDecorator.UpdateMany;
24
- }
25
- /**
26
- * @namespace CollectionDecorator
27
- */
28
- export declare namespace CollectionDecorator {
29
- interface Metadata extends StrictOmit<OpraSchema.Collection, 'kind' | 'type' | 'operations' | 'actions'> {
30
- kind: OpraSchema.Collection.Kind;
31
- name: string;
32
- type: TypeThunkAsync | string;
33
- actions?: Record<string, ResourceDecorator.OperationMetadata>;
34
- operations?: {
35
- create: Create.Metadata;
36
- delete: Delete.Metadata;
37
- deleteMany: DeleteMany.Metadata;
38
- get: Get.Metadata;
39
- findMany: FindMany.Metadata;
40
- update: Update.Metadata;
41
- updateMany: UpdateMany.Metadata;
42
- };
43
- }
44
- interface FieldDecoratorOptions extends Partial<StrictOmit<OpraSchema.Field, 'type'>> {
45
- type?: string | OpraSchema.DataType | TypeThunkAsync;
46
- enum?: EnumType.EnumObject | EnumType.EnumArray;
47
- }
48
- /**
49
- * @namespace Action
50
- */
51
- namespace Action {
52
- interface Metadata extends ResourceDecorator.ActionMetadata {
53
- }
54
- interface Options extends ResourceDecorator.ActionOptions {
55
- }
56
- }
57
- /**
58
- * @namespace Create
59
- */
60
- namespace Create {
61
- interface Metadata extends Combine<ResourceDecorator.OperationMetadata, OpraSchema.Collection.Operations.Create> {
62
- }
63
- interface Options extends Combine<ResourceDecorator.OperationOptions, Partial<OpraSchema.Collection.Operations.Create>> {
64
- }
65
- }
66
- /**
67
- * @namespace Delete
68
- */
69
- namespace Delete {
70
- interface Metadata extends Combine<ResourceDecorator.OperationMetadata, OpraSchema.Collection.Operations.Delete> {
71
- }
72
- interface Options extends Combine<ResourceDecorator.OperationOptions, Partial<OpraSchema.Collection.Operations.Delete>> {
73
- }
74
- }
75
- /**
76
- * @namespace DeleteMany
77
- */
78
- namespace DeleteMany {
79
- interface Metadata extends Combine<ResourceDecorator.OperationMetadata, OpraSchema.Collection.Operations.DeleteMany> {
80
- }
81
- interface Options extends Combine<ResourceDecorator.OperationOptions, Partial<OpraSchema.Collection.Operations.DeleteMany>> {
82
- }
83
- }
84
- /**
85
- * @namespace FindMany
86
- */
87
- namespace FindMany {
88
- interface Metadata extends Combine<ResourceDecorator.OperationMetadata, OpraSchema.Collection.Operations.FindMany> {
89
- }
90
- interface Options extends Combine<ResourceDecorator.OperationOptions, Partial<OpraSchema.Collection.Operations.FindMany>> {
91
- }
92
- }
93
- /**
94
- * @namespace Get
95
- */
96
- namespace Get {
97
- interface Metadata extends Combine<ResourceDecorator.OperationMetadata, OpraSchema.Collection.Operations.Get> {
98
- }
99
- interface Options extends Combine<ResourceDecorator.OperationOptions, Partial<OpraSchema.Collection.Operations.Get>> {
100
- }
101
- }
102
- /**
103
- * @namespace Update
104
- */
105
- namespace Update {
106
- interface Metadata extends Combine<ResourceDecorator.OperationMetadata, OpraSchema.Collection.Operations.Update> {
107
- }
108
- interface Options extends Combine<ResourceDecorator.OperationOptions, Partial<OpraSchema.Collection.Operations.Update>> {
109
- }
110
- }
111
- /**
112
- * @namespace UpdateMany
113
- */
114
- namespace UpdateMany {
115
- interface Metadata extends Combine<ResourceDecorator.OperationMetadata, OpraSchema.Collection.Operations.UpdateMany> {
116
- }
117
- interface Options extends Combine<ResourceDecorator.OperationOptions, Partial<OpraSchema.Collection.Operations.UpdateMany>> {
118
- }
119
- }
120
- }
121
- export declare namespace CollectionDecorator {
122
- /**
123
- * Action PropertyDecorator
124
- */
125
- function Action(options: ResourceDecorator.OperationOptions): ActionDecorator;
126
- /**
127
- * Create PropertyDecorator
128
- */
129
- type CreateDecorator = ((target: Object, propertyKey: 'create') => void) & {
130
- Parameter: (name: string, optionsOrType?: ResourceDecorator.ParameterOptions | string | Type) => CreateDecorator;
131
- InputMaxContentSize: (sizeInBytes: number) => CreateDecorator;
132
- InputPickFields: (...fields: Field.QualifiedName[]) => CreateDecorator;
133
- InputOmitFields: (...fields: Field.QualifiedName[]) => CreateDecorator;
134
- InputOverwriteFields: (fields: Record<string, FieldDecoratorOptions>) => CreateDecorator;
135
- OutputPickFields: (...fields: Field.QualifiedName[]) => CreateDecorator;
136
- OutputOmitFields: (...fields: Field.QualifiedName[]) => CreateDecorator;
137
- OutputOverwriteFields: (fields: Record<string, FieldDecoratorOptions>) => CreateDecorator;
138
- };
139
- function Create(options?: Create.Options): CreateDecorator;
140
- /**
141
- * Delete PropertyDecorator
142
- */
143
- type DeleteDecorator = ((target: Object, propertyKey: 'delete') => void) & {
144
- Parameter: (name: string, optionsOrType?: ResourceDecorator.ParameterOptions | string | Type) => DeleteDecorator;
145
- };
146
- function Delete(options?: Delete.Options): DeleteDecorator;
147
- /**
148
- * DeleteMany PropertyDecorator
149
- */
150
- type DeleteManyDecorator = ((target: Object, propertyKey: 'deleteMany') => void) & {
151
- Parameter: (name: string, optionsOrType?: ResourceDecorator.ParameterOptions | string | Type) => DeleteManyDecorator;
152
- Filter: (field: Field.QualifiedName, operators?: OpraFilter.ComparisonOperator[] | string, notes?: string) => DeleteManyDecorator;
153
- };
154
- function DeleteMany(options?: DeleteMany.Options): DeleteManyDecorator;
155
- /**
156
- * Get PropertyDecorator
157
- */
158
- type GetDecorator = ((target: Object, propertyKey: 'get') => void) & {
159
- Parameter: (name: string, optionsOrType?: ResourceDecorator.ParameterOptions | string | Type) => GetDecorator;
160
- OutputPickFields: (...fields: Field.QualifiedName[]) => GetDecorator;
161
- OutputOmitFields: (...fields: Field.QualifiedName[]) => GetDecorator;
162
- OutputOverwriteFields: (fields: Record<string, FieldDecoratorOptions>) => GetDecorator;
163
- };
164
- function Get(options?: Get.Options): GetDecorator;
165
- /**
166
- * FindMany PropertyDecorator
167
- */
168
- type FindManyDecorator = ((target: Object, propertyKey: 'findMany') => void) & {
169
- Parameter: (name: string, optionsOrType?: ResourceDecorator.ParameterOptions | string | Type) => FindManyDecorator;
170
- SortFields: (...fields: Field.QualifiedName[]) => FindManyDecorator;
171
- DefaultSort: (...fields: Field.QualifiedName[]) => FindManyDecorator;
172
- Filter: (field: Field.QualifiedName, operators?: OpraFilter.ComparisonOperator[] | string, notes?: string) => FindManyDecorator;
173
- OutputPickFields: (...fields: Field.QualifiedName[]) => FindManyDecorator;
174
- OutputOmitFields: (...fields: Field.QualifiedName[]) => FindManyDecorator;
175
- OutputOverwriteFields: (fields: Record<string, FieldDecoratorOptions>) => FindManyDecorator;
176
- };
177
- function FindMany(options?: FindMany.Options): FindManyDecorator;
178
- }
179
- export declare namespace CollectionDecorator {
180
- type UpdateDecorator = ((target: Object, propertyKey: 'update') => void) & {
181
- Parameter: (name: string, optionsOrType?: ResourceDecorator.ParameterOptions | string | Type) => UpdateDecorator;
182
- InputMaxContentSize: (sizeInBytes: number) => UpdateDecorator;
183
- InputPickFields: (...fields: Field.QualifiedName[]) => UpdateDecorator;
184
- InputOmitFields: (...fields: Field.QualifiedName[]) => UpdateDecorator;
185
- InputOverwriteFields: (fields: Record<string, FieldDecoratorOptions>) => UpdateDecorator;
186
- OutputPickFields: (...fields: Field.QualifiedName[]) => UpdateDecorator;
187
- OutputOmitFields: (...fields: Field.QualifiedName[]) => UpdateDecorator;
188
- OutputOverwriteFields: (fields: Record<string, FieldDecoratorOptions>) => UpdateDecorator;
189
- };
190
- function Update(options?: Update.Options): UpdateDecorator;
191
- }
192
- export declare namespace CollectionDecorator {
193
- type UpdateManyDecorator = ((target: Object, propertyKey: 'updateMany') => void) & {
194
- Parameter: (name: string, optionsOrType?: ResourceDecorator.ParameterOptions | string | Type) => UpdateManyDecorator;
195
- InputMaxContentSize: (sizeInBytes: number) => UpdateManyDecorator;
196
- InputPickFields: (...fields: Field.QualifiedName[]) => UpdateManyDecorator;
197
- InputOmitFields: (...fields: Field.QualifiedName[]) => UpdateManyDecorator;
198
- InputOverwriteFields: (fields: Record<string, FieldDecoratorOptions>) => UpdateManyDecorator;
199
- Filter: (field: Field.QualifiedName, operators?: OpraFilter.ComparisonOperator[] | string, notes?: string) => UpdateManyDecorator;
200
- };
201
- function UpdateMany(options?: UpdateMany.Options): UpdateManyDecorator;
202
- function UpdateMany(description?: string): UpdateManyDecorator;
203
- }
204
- export {};
@@ -1,62 +0,0 @@
1
- import { Combine, StrictOmit } from 'ts-gems';
2
- import type { ApiDocument } from '../api-document.js';
3
- import { ComplexType } from '../data-type/complex-type.js';
4
- import { CollectionClass } from './collection-class.js';
5
- import { CollectionDecorator } from './collection-decorator.js';
6
- import type { Container } from './container.js';
7
- import { Resource } from './resource.js';
8
- export interface Collection extends CollectionClass {
9
- }
10
- export interface CollectionConstructor extends CollectionDecorator {
11
- prototype: CollectionClass;
12
- new (parent: ApiDocument | Container, init: Collection.InitArguments): CollectionClass;
13
- }
14
- /**
15
- * @class Collection
16
- * @decorator Collection
17
- */
18
- export declare const Collection: CollectionConstructor;
19
- /**
20
- * @namespace Collection
21
- */
22
- export declare namespace Collection {
23
- interface InitArguments extends StrictOmit<Combine<Resource.InitArguments, CollectionDecorator.Metadata>, 'kind' | 'type'> {
24
- name: string;
25
- type: ComplexType;
26
- }
27
- interface DecoratorOptions<T = any> extends Partial<StrictOmit<CollectionDecorator.Metadata, 'kind' | 'operations' | 'actions' | 'primaryKey'>> {
28
- primaryKey?: keyof T | (keyof T)[];
29
- }
30
- interface Action {
31
- }
32
- namespace Action {
33
- }
34
- interface Create {
35
- }
36
- namespace Create {
37
- }
38
- interface Delete {
39
- }
40
- namespace Delete {
41
- }
42
- interface DeleteMany {
43
- }
44
- namespace DeleteMany {
45
- }
46
- interface FindMany {
47
- }
48
- namespace FindMany {
49
- }
50
- interface Get {
51
- }
52
- namespace Get {
53
- }
54
- interface Update {
55
- }
56
- namespace Update {
57
- }
58
- interface UpdateMany {
59
- }
60
- namespace UpdateMany {
61
- }
62
- }
@@ -1,66 +0,0 @@
1
- import { ResponsiveMap } from '../../helpers/index.js';
2
- import { OpraSchema } from '../../schema/index.js';
3
- import type { ApiDocument } from '../api-document.js';
4
- import type { Collection } from './collection.js';
5
- import type { Container } from './container.js';
6
- import { Resource } from './resource.js';
7
- import { Singleton } from './singleton.js';
8
- import { Storage } from './storage.js';
9
- export declare class ContainerClass extends Resource {
10
- readonly kind: OpraSchema.Resource.Kind;
11
- readonly resources: ResponsiveMap<Resource>;
12
- readonly parent?: Container;
13
- constructor(owner: ApiDocument | Container, init: Container.InitArguments);
14
- exportSchema(options?: {
15
- webSafe?: boolean;
16
- }): OpraSchema.Container;
17
- /**
18
- * Returns Resource instance by path. Returns undefined if not found
19
- * @param path
20
- * @param silent
21
- */
22
- getResource(path: string, silent: boolean): Resource | undefined;
23
- getResource(path: string, silent: true): Resource | undefined;
24
- /**
25
- * Returns Resource instance by path. Throws error if not found
26
- * @param path
27
- */
28
- getResource(path: string): Resource;
29
- getResource(path: string, silent: false): Resource;
30
- /**
31
- * Returns Collection resource instance by path
32
- * Returns undefined if not found
33
- * Throws error if resource is not a Collection
34
- */
35
- getContainer(path: string): Container;
36
- getContainer(path: string, silent: false): Container;
37
- getContainer(path: string, silent: true): Container | undefined;
38
- getContainer(path: string, silent?: boolean): Container | undefined;
39
- /**
40
- * Returns Collection resource instance by path
41
- * Returns undefined if not found
42
- * Throws error if resource is not a Collection
43
- */
44
- getCollection(path: string): Collection;
45
- getCollection(path: string, silent: false): Collection;
46
- getCollection(path: string, silent: true): Collection | undefined;
47
- getCollection(path: string, silent?: boolean): Collection | undefined;
48
- /**
49
- * Returns Singleton resource instance by path
50
- * Returns undefined if not found
51
- * Throws error if resource is not a Collection
52
- */
53
- getSingleton(path: string): Singleton;
54
- getSingleton(path: string, silent: false): Singleton;
55
- getSingleton(path: string, silent: true): Singleton | undefined;
56
- getSingleton(path: string, silent?: boolean): Singleton | undefined;
57
- /**
58
- * Returns Storage resource instance by path
59
- * Returns undefined if not found
60
- * Throws error if resource is not a Collection
61
- */
62
- getStorage(path: string): Storage;
63
- getStorage(path: string, silent: false): Storage;
64
- getStorage(path: string, silent: true): Storage | undefined;
65
- getStorage(path: string, silent?: boolean): Storage | undefined;
66
- }
@@ -1,37 +0,0 @@
1
- import { StrictOmit, Type } from 'ts-gems';
2
- import { OpraSchema } from '../../schema/index.js';
3
- import { ActionDecorator } from './action-decorator.js';
4
- import { CollectionDecorator } from './collection-decorator.js';
5
- import type { Container } from './container.js';
6
- import { ResourceDecorator } from './resource-decorator.js';
7
- export declare function ContainerDecorator(options?: Container.DecoratorOptions): ClassDecorator;
8
- export interface ContainerDecorator extends StrictOmit<ResourceDecorator, 'Action'> {
9
- (options?: Container.DecoratorOptions): ClassDecorator;
10
- Action: (options?: CollectionDecorator.Action.Options) => ActionDecorator;
11
- }
12
- /**
13
- * @namespace CollectionDecorator
14
- */
15
- export declare namespace ContainerDecorator {
16
- interface Metadata extends StrictOmit<OpraSchema.Container, 'kind' | 'actions' | 'resources'> {
17
- kind: OpraSchema.Container.Kind;
18
- name: string;
19
- actions?: Record<string, ResourceDecorator.OperationMetadata>;
20
- resources?: Type[];
21
- }
22
- /**
23
- * @namespace Action
24
- */
25
- namespace Action {
26
- interface Metadata extends ResourceDecorator.OperationMetadata {
27
- }
28
- interface Options extends ResourceDecorator.OperationOptions {
29
- }
30
- }
31
- }
32
- export declare namespace ContainerDecorator {
33
- /**
34
- * Action PropertyDecorator
35
- */
36
- function Action(options: ResourceDecorator.OperationOptions): ActionDecorator;
37
- }
@@ -1,27 +0,0 @@
1
- import { Combine, StrictOmit } from 'ts-gems';
2
- import type { ApiDocument } from '../api-document.js';
3
- import { ContainerClass } from './container-class.js';
4
- import { ContainerDecorator } from './container-decorator.js';
5
- import type { Resource } from './resource.js';
6
- export interface Container extends ContainerClass {
7
- }
8
- export interface ContainerConstructor extends ContainerDecorator {
9
- prototype: ContainerClass;
10
- new (parent: ApiDocument | Container, init: Container.InitArguments): ContainerClass;
11
- }
12
- /**
13
- * @class Container
14
- * @decorator Container
15
- */
16
- export declare const Container: ContainerConstructor;
17
- export declare namespace Container {
18
- interface InitArguments extends StrictOmit<Combine<Resource.InitArguments, ContainerDecorator.Metadata>, 'kind' | 'resources'> {
19
- resources?: Resource[];
20
- }
21
- interface DecoratorOptions extends Partial<StrictOmit<ContainerDecorator.Metadata, 'kind' | 'actions'>> {
22
- }
23
- interface Action {
24
- }
25
- namespace Action {
26
- }
27
- }
@@ -1,6 +0,0 @@
1
- import { Type } from 'ts-gems';
2
- import { ResourceDecorator } from './resource-decorator.js';
3
- export type CrudOperationDecorator = ((target: Object, propertyKey: any) => void) & {
4
- Parameter: (name: string, optionsOrType?: ResourceDecorator.ParameterOptions | string | Type) => CrudOperationDecorator;
5
- };
6
- export declare function createOperationDecorator<T extends CrudOperationDecorator, M extends ResourceDecorator.OperationMetadata>(operation: string, init: any, list: ((operationMeta: M, target: Object, propertyKey: string) => void)[]): T;
@@ -1,32 +0,0 @@
1
- import { StrictOmit } from 'ts-gems';
2
- import { Validator } from 'valgen';
3
- import { OpraSchema } from '../../schema/index.js';
4
- import { DataType } from '../data-type/data-type.js';
5
- import { ApiField } from '../data-type/field.js';
6
- import { Endpoint } from './endpoint.js';
7
- import type { Resource } from './resource';
8
- import type { ResourceDecorator } from './resource-decorator.js';
9
- /**
10
- *
11
- * @class CrudOperation
12
- */
13
- export declare class CrudOperation extends Endpoint {
14
- readonly resource: Resource;
15
- readonly name: string;
16
- readonly kind = "operation";
17
- decodeInput: Validator;
18
- returnType: DataType;
19
- encodeReturning: Validator;
20
- inputOverwriteFields?: Record<string, ApiField.InitArguments>;
21
- outputOverwriteFields?: Record<string, ApiField.InitArguments>;
22
- constructor(resource: Resource, name: string, init: CrudOperation.InitArguments);
23
- exportSchema(options?: {
24
- webSafe?: boolean;
25
- }): OpraSchema.Endpoint<any> & Record<string, any>;
26
- }
27
- export declare namespace CrudOperation {
28
- interface InitArguments extends StrictOmit<ResourceDecorator.OperationMetadata, 'parameters'> {
29
- parameters: Record<string, Endpoint.ParameterInit>;
30
- returnType?: DataType;
31
- }
32
- }