@opra/common 0.33.13 → 1.0.0-alpha.10

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