@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,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
- }
@@ -1,100 +0,0 @@
1
- import { Combine, StrictOmit, Type } from 'ts-gems';
2
- import { OpraSchema } from '../../schema/index.js';
3
- import { TypeThunkAsync } from '../../types.js';
4
- import { ActionDecorator } from './action-decorator.js';
5
- import { ResourceDecorator } from './resource-decorator.js';
6
- import type { Storage } from './storage.js';
7
- type ErrorMessage<T, Error> = [T] extends [never] ? Error : T;
8
- declare const operationProperties: readonly ["delete", "get", "post"];
9
- type OperationProperties = typeof operationProperties[number];
10
- export declare function StorageDecorator(options?: Storage.DecoratorOptions): ClassDecorator;
11
- export interface StorageDecorator extends StrictOmit<ResourceDecorator, 'Action'> {
12
- (options?: Storage.DecoratorOptions): ClassDecorator;
13
- Action: (options?: StorageDecorator.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;
14
- Delete: typeof StorageDecorator.Delete;
15
- Get: typeof StorageDecorator.Get;
16
- Post: typeof StorageDecorator.Post;
17
- }
18
- /**
19
- * @namespace CollectionDecorator
20
- */
21
- export declare namespace StorageDecorator {
22
- interface Metadata extends StrictOmit<OpraSchema.Storage, 'kind' | 'operations' | 'actions'> {
23
- kind: OpraSchema.Storage.Kind;
24
- name: string;
25
- actions?: Record<string, ResourceDecorator.OperationMetadata>;
26
- operations?: {
27
- get: Get.Metadata;
28
- delete: Delete.Metadata;
29
- post: Post.Metadata;
30
- };
31
- }
32
- /**
33
- * @namespace Action
34
- */
35
- namespace Action {
36
- interface Metadata extends ResourceDecorator.OperationMetadata {
37
- }
38
- interface Options extends ResourceDecorator.OperationOptions {
39
- }
40
- }
41
- /**
42
- * @namespace Get
43
- */
44
- namespace Get {
45
- interface Metadata extends Combine<ResourceDecorator.OperationMetadata, OpraSchema.Storage.Operations.Get> {
46
- }
47
- interface Options extends Combine<ResourceDecorator.OperationOptions, Partial<OpraSchema.Storage.Operations.Get>> {
48
- }
49
- }
50
- /**
51
- * @namespace Delete
52
- */
53
- namespace Delete {
54
- interface Metadata extends Combine<ResourceDecorator.OperationMetadata, OpraSchema.Storage.Operations.Delete> {
55
- }
56
- interface Options extends Combine<ResourceDecorator.OperationOptions, Partial<OpraSchema.Storage.Operations.Delete>> {
57
- }
58
- }
59
- /**
60
- * @namespace Post
61
- */
62
- namespace Post {
63
- interface Metadata extends Combine<ResourceDecorator.OperationMetadata, OpraSchema.Storage.Operations.Post> {
64
- }
65
- interface Options extends Combine<ResourceDecorator.OperationOptions, Partial<OpraSchema.Storage.Operations.Post>> {
66
- }
67
- }
68
- }
69
- export declare namespace StorageDecorator {
70
- /**
71
- * Action PropertyDecorator
72
- */
73
- function Action(options: ResourceDecorator.OperationOptions): ActionDecorator;
74
- type DeleteDecorator = ((target: Object, propertyKey: 'delete') => void) & {
75
- Parameter: (name: string, optionsOrType?: ResourceDecorator.ParameterOptions | string | Type) => DeleteDecorator;
76
- };
77
- function Delete(options?: Delete.Options): DeleteDecorator;
78
- /**
79
- * Get PropertyDecorator
80
- */
81
- type GetDecorator = ((target: Object, propertyKey: 'get') => void) & {
82
- Parameter: (name: string, optionsOrType?: ResourceDecorator.ParameterOptions | string | Type) => GetDecorator;
83
- };
84
- function Get(options?: Get.Options): GetDecorator;
85
- /**
86
- * Post PropertyDecorator
87
- */
88
- type PostDecorator = ((target: Object, propertyKey: 'post') => void) & {
89
- Parameter(name: string, optionsOrType?: ResourceDecorator.ParameterOptions | string | Type): PostDecorator;
90
- MaxFields(amount: number): PostDecorator;
91
- MaxFieldSize(sizeInBytes: number): PostDecorator;
92
- MaxFiles(amount: number): PostDecorator;
93
- MaxFileSize(sizeInBytes: number): PostDecorator;
94
- MaxTotalFileSize(sizeInBytes: number): PostDecorator;
95
- MinFileSize(sizeInBytes: number): PostDecorator;
96
- Returns(t: TypeThunkAsync | string): PostDecorator;
97
- };
98
- function Post(options?: Post.Options): PostDecorator;
99
- }
100
- export {};
@@ -1,39 +0,0 @@
1
- import { Combine, StrictOmit } from 'ts-gems';
2
- import type { ApiDocument } from '../api-document.js';
3
- import type { Container } from './container.js';
4
- import type { Resource } from './resource.js';
5
- import { StorageClass } from './storage-class.js';
6
- import { StorageDecorator } from './storage-decorator.js';
7
- export interface Storage extends StorageClass {
8
- }
9
- export interface StorageConstructor extends StorageDecorator {
10
- prototype: StorageClass;
11
- new (parent: ApiDocument | Container, init: Storage.InitArguments): StorageClass;
12
- }
13
- /**
14
- * @class Storage
15
- * @decorator Storage
16
- */
17
- export declare const Storage: StorageConstructor;
18
- export declare namespace Storage {
19
- interface InitArguments extends StrictOmit<Combine<Resource.InitArguments, StorageDecorator.Metadata>, 'kind'> {
20
- }
21
- interface DecoratorOptions extends Partial<StrictOmit<StorageDecorator.Metadata, 'kind' | 'operations' | 'actions'>> {
22
- }
23
- interface Action {
24
- }
25
- namespace Action {
26
- }
27
- interface Delete {
28
- }
29
- namespace Delete {
30
- }
31
- interface Get {
32
- }
33
- namespace Get {
34
- }
35
- interface Post {
36
- }
37
- namespace Post {
38
- }
39
- }
@@ -1,79 +0,0 @@
1
- import { Type } from 'ts-gems';
2
- import { ResponsiveMap } from '../helpers/index.js';
3
- import { OpraSchema } from '../schema/index.js';
4
- import { ComplexType } from './data-type/complex-type.js';
5
- import { DataType } from './data-type/data-type.js';
6
- import { EnumType } from './data-type/enum-type.js';
7
- import { SimpleType } from './data-type/simple-type.js';
8
- import { DocumentBase } from './document-base.js';
9
- export declare class TypeDocument extends DocumentBase {
10
- protected _designCtorMap: Map<Function | Type<any>, string>;
11
- protected _typeIndex: Map<string | object | Type<any>, DataType>;
12
- protected _typeNsMap: Map<DataType, string>;
13
- references: ResponsiveMap<TypeDocument>;
14
- types: ResponsiveMap<DataType>;
15
- constructor();
16
- /**
17
- * Returns DataType instance by name or Constructor. Returns undefined if not found
18
- * @param nameOrCtor
19
- * @param silent
20
- */
21
- getDataType(nameOrCtor: any, silent: true): DataType | undefined;
22
- /**
23
- * Returns DataType instance by name or Constructor. Throws error if not found
24
- * @param nameOrCtor
25
- */
26
- getDataType(nameOrCtor: any): DataType;
27
- /**
28
- * Returns NS of datatype. Returns undefined if not found
29
- * @param nameOrCtor
30
- * @param silent
31
- */
32
- getDataTypeNs(nameOrCtor: any, silent: true): string | undefined;
33
- /**
34
- * Returns NS of datatype. Throws error if not found
35
- * @param nameOrCtor
36
- */
37
- getDataTypeNs(nameOrCtor: any): string;
38
- /**
39
- * Returns ComplexType instance by name or Constructor.
40
- * Returns undefined if not found
41
- * Throws error if data type is not a ComplexType
42
- * @param nameOrCtor
43
- * @param silent
44
- */
45
- getComplexType(nameOrCtor: string | Type, silent: true): ComplexType | undefined;
46
- /**
47
- * Returns ComplexType instance by name or Constructor.
48
- * Throws error undefined if not found or data type is not a ComplexType
49
- * @param nameOrCtor
50
- */
51
- getComplexType(nameOrCtor: string | Type): ComplexType;
52
- /**
53
- * Returns SimpleType instance by name or Constructor.
54
- * Returns undefined if not found
55
- * Throws error if data type is not a SimpleType
56
- * @param nameOrCtor
57
- * @param silent
58
- */
59
- getSimpleType(nameOrCtor: string | Type, silent: true): SimpleType | undefined;
60
- /**
61
- Returns SimpleType instance by name or Constructor.
62
- Throws error undefined if not found or data type is not a SimpleType
63
- * @param nameOrCtor
64
- */
65
- getSimpleType(nameOrCtor: string | Type): SimpleType;
66
- /**
67
- Returns SimpleType instance by name or Constructor.
68
- Throws error undefined if not found or data type is not a SimpleType
69
- * @param nameOrCtor
70
- */
71
- getEnumType(nameOrCtor: string | EnumType.EnumObject | EnumType.EnumArray): EnumType;
72
- /**
73
- * Export as Opra schema definition object
74
- */
75
- exportSchema(options?: {
76
- webSafe?: boolean;
77
- }): OpraSchema.TypeDocument;
78
- invalidate(): void;
79
- }
@@ -1,5 +0,0 @@
1
- import { OpraException } from '../opra-exception.js';
2
- export declare class ResourceConflictError extends OpraException {
3
- status: number;
4
- constructor(resource: string, fields: string | string[], cause?: Error);
5
- }
@@ -1,8 +0,0 @@
1
- import { OpraException } from '../opra-exception.js';
2
- /**
3
- * The server cannot find the requested resource.
4
- * This can also mean that the endpoint is valid but the resource itself does not exist.
5
- */
6
- export declare class ResourceNotFoundError extends OpraException {
7
- constructor(resource: string, keyValue?: any, cause?: Error);
8
- }
@@ -1,8 +0,0 @@
1
- import { OpraException } from '../opra-exception.js';
2
- /**
3
- * The server cannot find the requested resource.
4
- * This can also mean that the endpoint is valid but the resource itself does not exist.
5
- */
6
- export declare class ResourceNotAvailable extends OpraException {
7
- constructor(resource: string, keyValue?: any, cause?: Error);
8
- }
@@ -1,2 +0,0 @@
1
- import { OpraException } from './opra-exception.js';
2
- export declare function wrapException(error: any): OpraException;
@@ -1,4 +0,0 @@
1
- export interface ObjectTree {
2
- [key: string]: boolean | ObjectTree;
3
- }
4
- export declare function pathToObjectTree(arr: string[], lowerCaseKeys?: boolean): ObjectTree | undefined;
@@ -1,11 +0,0 @@
1
- import { StrictOmit } from 'ts-gems';
2
- import type { Container } from '../resource/container.interface';
3
- import { TypeDocument } from './type-document.interface.js';
4
- export interface ApiDocument extends TypeDocument {
5
- servers?: ServerInfo[];
6
- root?: StrictOmit<Container, 'kind'>;
7
- }
8
- export type ServerInfo = {
9
- url: string;
10
- description?: string;
11
- };