@opra/common 0.33.13 → 1.0.0-alpha.1

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