@opra/common 0.33.13 → 1.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (582) hide show
  1. package/browser.js +4657 -3899
  2. package/cjs/document/api-document.js +112 -23
  3. package/cjs/document/common/api-base.js +27 -0
  4. package/cjs/document/common/data-type-map.js +66 -0
  5. package/cjs/document/common/document-element.js +31 -0
  6. package/cjs/document/common/document-init-context.js +69 -0
  7. package/cjs/document/common/document-node.js +124 -0
  8. package/cjs/document/common/opra-document-error.js +15 -0
  9. package/cjs/document/common/value.js +33 -0
  10. package/cjs/document/constants.js +13 -7
  11. package/cjs/document/data-type/api-field.js +64 -0
  12. package/cjs/document/data-type/complex-type-base.js +183 -0
  13. package/cjs/document/data-type/complex-type.js +89 -13
  14. package/cjs/document/data-type/data-type.js +32 -25
  15. package/cjs/document/data-type/decorators/api-field-decorator.js +26 -0
  16. package/cjs/document/data-type/decorators/complex-type.decorator.js +33 -0
  17. package/cjs/document/data-type/decorators/simple-type.decorator.js +67 -0
  18. package/cjs/document/data-type/enum-type.js +92 -36
  19. package/cjs/document/data-type/{builtin → extended-types}/base64.type.js +11 -2
  20. package/cjs/document/data-type/extended-types/date-string.type.js +44 -0
  21. package/cjs/document/data-type/extended-types/date-time-string.type.js +47 -0
  22. package/cjs/document/data-type/extended-types/date-time.type.js +58 -0
  23. package/cjs/document/data-type/extended-types/date.type.js +55 -0
  24. package/cjs/document/data-type/extended-types/email.type.js +80 -0
  25. package/cjs/document/data-type/extended-types/field-path.type.js +53 -0
  26. package/cjs/document/data-type/extended-types/filter.type.js +74 -0
  27. package/cjs/document/data-type/extended-types/index.js +16 -0
  28. package/cjs/document/data-type/{builtin → extended-types}/object-id.type.js +11 -2
  29. package/cjs/document/data-type/extended-types/operation-result.type.js +56 -0
  30. package/cjs/document/data-type/extended-types/time.type.js +47 -0
  31. package/cjs/document/data-type/{builtin → extended-types}/url.type.js +12 -3
  32. package/cjs/document/data-type/extended-types/uuid.type.js +30 -0
  33. package/cjs/document/data-type/mapped-type.js +77 -61
  34. package/cjs/document/data-type/mixin-type.js +78 -23
  35. package/cjs/document/data-type/omit-type.js +11 -0
  36. package/cjs/document/data-type/partial-type.js +13 -0
  37. package/cjs/document/data-type/pick-type.js +11 -0
  38. package/cjs/document/data-type/primitive-types/any.type.js +25 -0
  39. package/cjs/document/data-type/primitive-types/bigint.type.js +30 -0
  40. package/cjs/document/data-type/{builtin → primitive-types}/boolean.type.js +11 -2
  41. package/cjs/document/data-type/primitive-types/index.js +11 -0
  42. package/cjs/document/data-type/primitive-types/integer.type.js +30 -0
  43. package/cjs/document/data-type/{builtin → primitive-types}/null.type.js +11 -2
  44. package/cjs/document/data-type/primitive-types/number.type.js +40 -0
  45. package/cjs/document/data-type/{builtin → primitive-types}/object.type.js +7 -1
  46. package/cjs/document/data-type/primitive-types/string.type.js +58 -0
  47. package/cjs/document/data-type/required-type.js +13 -0
  48. package/cjs/document/data-type/simple-type.js +93 -14
  49. package/cjs/document/data-type/utils/create-mapped-class.js +54 -0
  50. package/cjs/document/data-type/utils/get-is-inherited-predicate-fn.js +15 -0
  51. package/cjs/document/{data-type/field-decorator.js → decorators/api-field-decorator.js} +7 -7
  52. package/cjs/document/{data-type → decorators}/complex-type.decorator.js +11 -1
  53. package/cjs/document/decorators/http-controller.decorator.js +117 -0
  54. package/cjs/document/decorators/http-operation-entity.decorator.js +462 -0
  55. package/cjs/document/decorators/http-operation.decorator.js +183 -0
  56. package/cjs/document/decorators/simple-type.decorator.js +67 -0
  57. package/cjs/document/factory/api-document.factory.js +178 -0
  58. package/cjs/document/factory/data-type.factory.js +498 -0
  59. package/cjs/document/factory/http-api.factory.js +315 -0
  60. package/cjs/document/http/decorators/http-controller.decorator.js +117 -0
  61. package/cjs/document/http/decorators/http-operation-entity.decorator.js +461 -0
  62. package/cjs/document/http/decorators/http-operation.decorator.js +183 -0
  63. package/cjs/document/http/http-api.js +40 -0
  64. package/cjs/document/http/http-controller.js +145 -0
  65. package/cjs/document/http/http-media-type.js +68 -0
  66. package/cjs/document/http/http-multipart-field.js +33 -0
  67. package/cjs/document/http/http-operation-response.js +42 -0
  68. package/cjs/document/http/http-operation.js +93 -0
  69. package/cjs/document/http/http-parameter.js +44 -0
  70. package/cjs/document/http/http-request-body.js +25 -0
  71. package/cjs/document/http/http-status-range.js +41 -0
  72. package/cjs/document/index.js +35 -22
  73. package/cjs/document/utils/inspect.util.js +3 -3
  74. package/cjs/document/utils/parse-regexp.util.js +22 -0
  75. package/cjs/exception/http-errors/bad-request.error.js +3 -3
  76. package/cjs/exception/http-errors/conflict.error.js +3 -3
  77. package/cjs/exception/http-errors/failed-dependency.error.js +3 -3
  78. package/cjs/exception/http-errors/forbidden.error.js +3 -3
  79. package/cjs/exception/http-errors/internal-server.error.js +3 -3
  80. package/cjs/exception/http-errors/method-not-allowed.error.js +3 -3
  81. package/cjs/exception/http-errors/not-acceptable.error.js +3 -3
  82. package/cjs/exception/http-errors/not-found.error.js +3 -3
  83. package/cjs/exception/{resource-errors → http-errors}/permission.error.js +2 -2
  84. package/cjs/exception/{resource-errors → http-errors}/resource-conflict.error.js +3 -3
  85. package/cjs/exception/{resource-errors → http-errors}/resource-not.available.error.js +5 -5
  86. package/cjs/exception/http-errors/unauthorized.error.js +3 -3
  87. package/cjs/exception/http-errors/unprocessable-entity.error.js +3 -3
  88. package/cjs/exception/index.js +4 -4
  89. package/cjs/exception/issue-severity.enum.js +1 -1
  90. package/cjs/exception/opra-exception.js +5 -16
  91. package/cjs/exception/opra-http-error.js +25 -0
  92. package/cjs/filter/antlr/OpraFilterLexer.js +259 -193
  93. package/cjs/filter/antlr/OpraFilterParser.js +137 -84
  94. package/cjs/filter/ast/expressions/arithmetic-expression.js +1 -1
  95. package/cjs/filter/ast/expressions/logical-expression.js +1 -3
  96. package/cjs/filter/ast/terms/number-literal.js +1 -3
  97. package/cjs/filter/ast/terms/time-literal.js +6 -4
  98. package/cjs/filter/build.js +1 -3
  99. package/cjs/filter/filter-rules.js +93 -0
  100. package/cjs/filter/filter-tree-visitor.js +4 -7
  101. package/cjs/filter/parse.js +2 -2
  102. package/cjs/filter/utils.js +1 -3
  103. package/cjs/helpers/function-utils.js +2 -11
  104. package/cjs/helpers/get-stack-filename.js +28 -4
  105. package/cjs/helpers/index.js +2 -2
  106. package/cjs/helpers/is-url-string.js +1 -2
  107. package/cjs/helpers/mixin-utils.js +5 -8
  108. package/cjs/helpers/monkey-patches.js +12 -0
  109. package/cjs/helpers/object-utils.js +4 -5
  110. package/cjs/helpers/parse-fields-projection.js +67 -0
  111. package/cjs/helpers/responsive-map.js +93 -117
  112. package/cjs/helpers/type-guards.js +22 -29
  113. package/cjs/http/enums/http-status-messages.js +63 -63
  114. package/cjs/http/enums/mime-types.enum.js +17 -0
  115. package/cjs/http/index.js +1 -2
  116. package/cjs/http/opra-url-path.js +14 -9
  117. package/cjs/http/opra-url.js +18 -15
  118. package/cjs/i18n/i18n.js +9 -5
  119. package/cjs/i18n/translate.js +2 -2
  120. package/cjs/index.js +1 -1
  121. package/cjs/schema/http/http-controller.interface.js +11 -0
  122. package/cjs/schema/http/http-operation.interface.js +7 -0
  123. package/cjs/schema/index.js +27 -2
  124. package/cjs/schema/type-guards.js +8 -30
  125. package/cjs/schema/value.interface.js +2 -0
  126. package/esm/document/api-document.js +112 -23
  127. package/esm/document/common/api-base.js +23 -0
  128. package/esm/document/common/data-type-map.js +62 -0
  129. package/esm/document/common/document-element.js +28 -0
  130. package/esm/document/common/document-init-context.js +65 -0
  131. package/esm/document/common/document-node.js +120 -0
  132. package/esm/document/common/opra-document-error.js +11 -0
  133. package/esm/document/common/value.js +30 -0
  134. package/esm/document/constants.js +12 -6
  135. package/esm/document/data-type/api-field.js +61 -0
  136. package/esm/document/data-type/complex-type-base.js +180 -0
  137. package/esm/document/data-type/complex-type.js +88 -11
  138. package/esm/document/data-type/data-type.js +32 -24
  139. package/esm/document/data-type/decorators/api-field-decorator.js +22 -0
  140. package/esm/document/data-type/decorators/complex-type.decorator.js +28 -0
  141. package/esm/document/data-type/decorators/simple-type.decorator.js +61 -0
  142. package/esm/document/data-type/enum-type.js +93 -36
  143. package/esm/document/data-type/extended-types/base64.type.js +22 -0
  144. package/esm/document/data-type/extended-types/date-string.type.js +41 -0
  145. package/esm/document/data-type/extended-types/date-time-string.type.js +44 -0
  146. package/esm/document/data-type/extended-types/date-time.type.js +55 -0
  147. package/esm/document/data-type/extended-types/date.type.js +52 -0
  148. package/esm/document/data-type/extended-types/email.type.js +77 -0
  149. package/esm/document/data-type/extended-types/field-path.type.js +50 -0
  150. package/esm/document/data-type/extended-types/filter.type.js +71 -0
  151. package/esm/document/data-type/extended-types/index.js +13 -0
  152. package/esm/document/data-type/extended-types/object-id.type.js +22 -0
  153. package/esm/document/{resource/types → data-type/extended-types}/operation-result.type.js +25 -14
  154. package/esm/document/data-type/extended-types/time.type.js +44 -0
  155. package/esm/document/data-type/extended-types/url.type.js +22 -0
  156. package/esm/document/data-type/extended-types/uuid.type.js +27 -0
  157. package/esm/document/data-type/mapped-type.js +76 -56
  158. package/esm/document/data-type/mixin-type.js +80 -24
  159. package/esm/document/data-type/omit-type.js +7 -0
  160. package/esm/document/data-type/partial-type.js +9 -0
  161. package/esm/document/data-type/pick-type.js +7 -0
  162. package/esm/document/data-type/primitive-types/any.type.js +22 -0
  163. package/esm/document/data-type/primitive-types/bigint.type.js +27 -0
  164. package/esm/document/data-type/primitive-types/boolean.type.js +22 -0
  165. package/esm/document/data-type/primitive-types/index.js +8 -0
  166. package/esm/document/data-type/primitive-types/integer.type.js +27 -0
  167. package/esm/document/data-type/{builtin → primitive-types}/null.type.js +11 -2
  168. package/esm/document/data-type/primitive-types/number.type.js +37 -0
  169. package/esm/document/data-type/{builtin → primitive-types}/object.type.js +7 -1
  170. package/esm/document/data-type/primitive-types/string.type.js +55 -0
  171. package/esm/document/data-type/required-type.js +9 -0
  172. package/esm/document/data-type/simple-type.js +92 -12
  173. package/esm/document/data-type/utils/create-mapped-class.js +50 -0
  174. package/esm/document/data-type/utils/get-is-inherited-predicate-fn.js +11 -0
  175. package/esm/document/{data-type/field-decorator.js → decorators/api-field-decorator.js} +5 -5
  176. package/esm/document/{data-type → decorators}/complex-type.decorator.js +12 -2
  177. package/esm/document/decorators/http-controller.decorator.js +112 -0
  178. package/esm/document/decorators/http-operation-entity.decorator.js +460 -0
  179. package/esm/document/decorators/http-operation.decorator.js +178 -0
  180. package/esm/document/decorators/simple-type.decorator.js +61 -0
  181. package/esm/document/factory/api-document.factory.js +174 -0
  182. package/esm/document/factory/data-type.factory.js +494 -0
  183. package/esm/document/factory/http-api.factory.js +311 -0
  184. package/esm/document/http/decorators/http-controller.decorator.js +112 -0
  185. package/esm/document/http/decorators/http-operation-entity.decorator.js +459 -0
  186. package/esm/document/http/decorators/http-operation.decorator.js +178 -0
  187. package/esm/document/http/http-api.js +36 -0
  188. package/esm/document/http/http-controller.js +142 -0
  189. package/esm/document/http/http-media-type.js +65 -0
  190. package/esm/document/http/http-multipart-field.js +29 -0
  191. package/esm/document/http/http-operation-response.js +38 -0
  192. package/esm/document/http/http-operation.js +90 -0
  193. package/esm/document/http/http-parameter.js +41 -0
  194. package/esm/document/http/http-request-body.js +21 -0
  195. package/esm/document/http/http-status-range.js +37 -0
  196. package/esm/document/index.js +34 -22
  197. package/esm/document/utils/inspect.util.js +3 -3
  198. package/esm/document/utils/parse-regexp.util.js +18 -0
  199. package/esm/exception/http-errors/bad-request.error.js +3 -3
  200. package/esm/exception/http-errors/conflict.error.js +3 -3
  201. package/esm/exception/http-errors/failed-dependency.error.js +3 -3
  202. package/esm/exception/http-errors/forbidden.error.js +3 -3
  203. package/esm/exception/http-errors/internal-server.error.js +3 -3
  204. package/esm/exception/http-errors/method-not-allowed.error.js +3 -3
  205. package/esm/exception/http-errors/not-acceptable.error.js +3 -3
  206. package/esm/exception/http-errors/not-found.error.js +3 -3
  207. package/esm/exception/{resource-errors → http-errors}/permission.error.js +2 -2
  208. package/esm/exception/{resource-errors → http-errors}/resource-conflict.error.js +3 -3
  209. package/esm/exception/{resource-errors → http-errors}/resource-not.available.error.js +5 -5
  210. package/esm/exception/http-errors/unauthorized.error.js +3 -3
  211. package/esm/exception/http-errors/unprocessable-entity.error.js +3 -3
  212. package/esm/exception/index.js +4 -4
  213. package/esm/exception/issue-severity.enum.js +1 -1
  214. package/esm/exception/opra-exception.js +5 -16
  215. package/esm/exception/opra-http-error.js +21 -0
  216. package/esm/filter/antlr/OpraFilterLexer.js +260 -194
  217. package/esm/filter/antlr/OpraFilterListener.js +1 -1
  218. package/esm/filter/antlr/OpraFilterParser.js +138 -85
  219. package/esm/filter/ast/expressions/arithmetic-expression.js +1 -1
  220. package/esm/filter/ast/expressions/logical-expression.js +1 -3
  221. package/esm/filter/ast/terms/number-literal.js +1 -3
  222. package/esm/filter/ast/terms/time-literal.js +6 -4
  223. package/esm/filter/build.js +2 -4
  224. package/esm/filter/filter-rules.js +89 -0
  225. package/esm/filter/filter-tree-visitor.js +4 -6
  226. package/esm/filter/parse.js +2 -2
  227. package/esm/filter/utils.js +1 -3
  228. package/esm/helpers/function-utils.js +1 -9
  229. package/esm/helpers/get-stack-filename.js +26 -3
  230. package/esm/helpers/index.js +2 -2
  231. package/esm/helpers/is-url-string.js +1 -2
  232. package/esm/helpers/mixin-utils.js +5 -8
  233. package/esm/helpers/monkey-patches.js +12 -0
  234. package/esm/helpers/object-utils.js +4 -5
  235. package/esm/helpers/parse-fields-projection.js +61 -0
  236. package/esm/helpers/responsive-map.js +93 -117
  237. package/esm/helpers/type-guards.js +22 -29
  238. package/esm/http/enums/http-status-messages.js +63 -63
  239. package/esm/http/enums/mime-types.enum.js +14 -0
  240. package/esm/http/index.js +1 -2
  241. package/esm/http/opra-url-path.js +14 -9
  242. package/esm/http/opra-url.js +18 -15
  243. package/esm/i18n/i18n.js +9 -5
  244. package/esm/i18n/translate.js +2 -2
  245. package/esm/index.js +1 -1
  246. package/esm/schema/http/http-controller.interface.js +8 -0
  247. package/esm/schema/http/http-operation.interface.js +4 -0
  248. package/esm/schema/index.js +27 -2
  249. package/esm/schema/type-guards.js +6 -24
  250. package/esm/schema/value.interface.js +1 -0
  251. package/package.json +14 -13
  252. package/types/document/api-document.d.ts +31 -51
  253. package/types/document/common/api-base.d.ts +17 -0
  254. package/types/document/common/data-type-map.d.ts +23 -0
  255. package/types/document/common/document-element.d.ts +23 -0
  256. package/types/document/common/document-init-context.d.ts +17 -0
  257. package/types/document/common/document-node.d.ts +65 -0
  258. package/types/document/common/opra-document-error.d.ts +12 -0
  259. package/types/document/common/value.d.ts +48 -0
  260. package/types/document/constants.d.ts +9 -3
  261. package/types/document/data-type/api-field.d.ts +65 -0
  262. package/types/document/data-type/complex-type-base.d.ts +80 -0
  263. package/types/document/data-type/complex-type.d.ts +61 -35
  264. package/types/document/data-type/data-type.d.ts +49 -46
  265. package/types/document/data-type/decorators/api-field-decorator.d.ts +5 -0
  266. package/types/document/data-type/decorators/complex-type.decorator.d.ts +2 -0
  267. package/types/document/data-type/decorators/simple-type.decorator.d.ts +20 -0
  268. package/types/document/data-type/enum-type.d.ts +59 -23
  269. package/types/document/data-type/extended-types/base64.type.d.ts +7 -0
  270. package/types/document/data-type/extended-types/date-string.type.d.ts +9 -0
  271. package/types/document/data-type/extended-types/date-time-string.type.d.ts +9 -0
  272. package/types/document/data-type/extended-types/date-time.type.d.ts +9 -0
  273. package/types/document/data-type/extended-types/date.type.d.ts +9 -0
  274. package/types/document/data-type/extended-types/email.type.d.ts +16 -0
  275. package/types/document/data-type/extended-types/field-path.type.d.ts +15 -0
  276. package/types/document/data-type/extended-types/filter.type.d.ts +16 -0
  277. package/types/document/data-type/extended-types/index.d.ts +13 -0
  278. package/types/document/data-type/extended-types/object-id.type.d.ts +7 -0
  279. package/types/document/{resource/types → data-type/extended-types}/operation-result.type.d.ts +7 -6
  280. package/types/document/data-type/extended-types/time.type.d.ts +9 -0
  281. package/types/document/data-type/extended-types/url.type.d.ts +7 -0
  282. package/types/document/data-type/extended-types/uuid.type.d.ts +8 -0
  283. package/types/document/data-type/mapped-type.d.ts +55 -44
  284. package/types/document/data-type/mixin-type.d.ts +65 -26
  285. package/types/document/data-type/omit-type.d.ts +15 -0
  286. package/types/document/data-type/partial-type.d.ts +28 -0
  287. package/types/document/data-type/pick-type.d.ts +16 -0
  288. package/types/document/data-type/primitive-types/any.type.d.ts +7 -0
  289. package/types/document/data-type/primitive-types/bigint.type.d.ts +8 -0
  290. package/types/document/data-type/primitive-types/boolean.type.d.ts +7 -0
  291. package/types/document/data-type/primitive-types/index.d.ts +8 -0
  292. package/types/document/data-type/primitive-types/integer.type.d.ts +8 -0
  293. package/types/document/data-type/primitive-types/null.type.d.ts +7 -0
  294. package/types/document/data-type/primitive-types/number.type.d.ts +9 -0
  295. package/types/document/data-type/primitive-types/object.type.d.ts +3 -0
  296. package/types/document/data-type/primitive-types/string.type.d.ts +11 -0
  297. package/types/document/data-type/required-type.d.ts +22 -0
  298. package/types/document/data-type/simple-type.d.ts +63 -24
  299. package/types/document/data-type/utils/create-mapped-class.d.ts +3 -0
  300. package/types/document/data-type/utils/get-is-inherited-predicate-fn.d.ts +1 -0
  301. package/types/document/decorators/api-field-decorator.d.ts +5 -0
  302. package/types/document/decorators/complex-type.decorator.d.ts +2 -0
  303. package/types/document/decorators/http-controller.decorator.d.ts +14 -0
  304. package/types/document/decorators/http-operation-entity.decorator.d.ts +100 -0
  305. package/types/document/decorators/http-operation.decorator.d.ts +30 -0
  306. package/types/document/decorators/simple-type.decorator.d.ts +20 -0
  307. package/types/document/factory/api-document.factory.d.ts +35 -0
  308. package/types/document/factory/data-type.factory.d.ts +103 -0
  309. package/types/document/factory/http-api.factory.d.ts +60 -0
  310. package/types/document/http/decorators/http-controller.decorator.d.ts +14 -0
  311. package/types/document/http/decorators/http-operation-entity.decorator.d.ts +100 -0
  312. package/types/document/http/decorators/http-operation.decorator.d.ts +30 -0
  313. package/types/document/http/http-api.d.ts +23 -0
  314. package/types/document/http/http-controller.d.ts +92 -0
  315. package/types/document/http/http-media-type.d.ts +59 -0
  316. package/types/document/http/http-multipart-field.d.ts +26 -0
  317. package/types/document/http/http-operation-response.d.ts +36 -0
  318. package/types/document/http/http-operation.d.ts +84 -0
  319. package/types/document/http/http-parameter.d.ts +50 -0
  320. package/types/document/http/http-request-body.d.ts +31 -0
  321. package/types/document/http/http-status-range.d.ts +14 -0
  322. package/types/document/index.d.ts +33 -22
  323. package/types/document/utils/parse-regexp.util.d.ts +4 -0
  324. package/types/exception/http-errors/bad-request.error.d.ts +2 -2
  325. package/types/exception/http-errors/conflict.error.d.ts +2 -2
  326. package/types/exception/http-errors/failed-dependency.error.d.ts +2 -2
  327. package/types/exception/http-errors/forbidden.error.d.ts +2 -2
  328. package/types/exception/http-errors/internal-server.error.d.ts +2 -2
  329. package/types/exception/http-errors/method-not-allowed.error.d.ts +2 -2
  330. package/types/exception/http-errors/not-acceptable.error.d.ts +2 -2
  331. package/types/exception/http-errors/not-found.error.d.ts +2 -2
  332. package/types/exception/{resource-errors → http-errors}/permission.error.d.ts +1 -1
  333. package/types/exception/http-errors/resource-conflict.error.d.ts +5 -0
  334. package/types/exception/{resource-errors → http-errors}/resource-not.available.error.d.ts +2 -2
  335. package/types/exception/http-errors/unauthorized.error.d.ts +2 -2
  336. package/types/exception/http-errors/unprocessable-entity.error.d.ts +2 -2
  337. package/types/exception/index.d.ts +4 -4
  338. package/types/exception/opra-exception.d.ts +1 -5
  339. package/types/exception/opra-http-error.d.ts +13 -0
  340. package/types/filter/antlr/OpraFilterLexer.d.ts +1 -1
  341. package/types/filter/antlr/OpraFilterListener.d.ts +2 -2
  342. package/types/filter/antlr/OpraFilterParser.d.ts +2 -2
  343. package/types/filter/antlr/OpraFilterVisitor.d.ts +1 -1
  344. package/types/filter/ast/terms/qualified-identifier.d.ts +1 -1
  345. package/types/filter/filter-rules.d.ts +24 -0
  346. package/types/filter/filter-tree-visitor.d.ts +1 -3
  347. package/types/helpers/function-utils.d.ts +2 -4
  348. package/types/helpers/get-stack-filename.d.ts +1 -0
  349. package/types/helpers/index.d.ts +2 -2
  350. package/types/helpers/monkey-patches.d.ts +0 -0
  351. package/types/helpers/parse-fields-projection.d.ts +11 -0
  352. package/types/helpers/responsive-map.d.ts +8 -4
  353. package/types/helpers/type-guards.d.ts +2 -2
  354. package/types/http/enums/http-status-messages.d.ts +63 -63
  355. package/types/http/enums/mime-types.enum.d.ts +12 -0
  356. package/types/http/index.d.ts +1 -2
  357. package/types/i18n/i18n.d.ts +2 -1
  358. package/types/schema/data-type/complex-type.interface.d.ts +3 -3
  359. package/types/schema/data-type/data-type.interface.d.ts +6 -0
  360. package/types/schema/data-type/enum-type.interface.d.ts +3 -4
  361. package/types/schema/data-type/field.interface.d.ts +2 -10
  362. package/types/schema/data-type/mapped-type.interface.d.ts +7 -3
  363. package/types/schema/data-type/mixin-type.interface.d.ts +2 -2
  364. package/types/schema/data-type/simple-type.interface.d.ts +35 -7
  365. package/types/schema/data-type-container.interface.d.ts +7 -0
  366. package/types/schema/document.interface.d.ts +55 -0
  367. package/types/schema/http/http-controller.interface.d.ts +24 -0
  368. package/types/schema/http/http-media-type.interface.d.ts +65 -0
  369. package/types/schema/http/http-multipart-field.interface.d.ts +7 -0
  370. package/types/schema/http/http-operation-response.interface.d.ts +24 -0
  371. package/types/schema/http/http-operation.interface.d.ts +23 -0
  372. package/types/schema/http/http-parameter.interface.d.ts +28 -0
  373. package/types/schema/http/http-request-body.interface.d.ts +29 -0
  374. package/types/schema/http/http-status-range.interface.d.ts +4 -0
  375. package/types/schema/index.d.ts +61 -2
  376. package/types/schema/type-guards.d.ts +2 -10
  377. package/types/schema/types.d.ts +3 -0
  378. package/types/schema/value.interface.d.ts +23 -0
  379. package/types/types.d.ts +1 -14
  380. package/cjs/document/data-type/builtin/any.type.js +0 -13
  381. package/cjs/document/data-type/builtin/approx-date.type.js +0 -21
  382. package/cjs/document/data-type/builtin/approx-datetime.type.js +0 -24
  383. package/cjs/document/data-type/builtin/bigint.type.js +0 -16
  384. package/cjs/document/data-type/builtin/date.type.js +0 -17
  385. package/cjs/document/data-type/builtin/datetime.type.js +0 -21
  386. package/cjs/document/data-type/builtin/email.type.js +0 -16
  387. package/cjs/document/data-type/builtin/index.js +0 -21
  388. package/cjs/document/data-type/builtin/integer.type.js +0 -16
  389. package/cjs/document/data-type/builtin/number.type.js +0 -16
  390. package/cjs/document/data-type/builtin/string.type.js +0 -16
  391. package/cjs/document/data-type/builtin/time.type.js +0 -23
  392. package/cjs/document/data-type/builtin/uuid.type.js +0 -16
  393. package/cjs/document/data-type/complex-type-class.js +0 -274
  394. package/cjs/document/data-type/enum-type-class.js +0 -39
  395. package/cjs/document/data-type/field-class.js +0 -67
  396. package/cjs/document/data-type/field.js +0 -25
  397. package/cjs/document/data-type/mapped-type-class.js +0 -53
  398. package/cjs/document/data-type/mixin-type-class.js +0 -38
  399. package/cjs/document/data-type/simple-type-class.js +0 -37
  400. package/cjs/document/data-type/simple-type.decorator.js +0 -20
  401. package/cjs/document/document-base.js +0 -24
  402. package/cjs/document/factory/api-document-factory.js +0 -262
  403. package/cjs/document/factory/type-document-factory.js +0 -326
  404. package/cjs/document/resource/action-decorator.js +0 -33
  405. package/cjs/document/resource/action.js +0 -34
  406. package/cjs/document/resource/collection-class.js +0 -257
  407. package/cjs/document/resource/collection-decorator.js +0 -211
  408. package/cjs/document/resource/collection.js +0 -25
  409. package/cjs/document/resource/container-class.js +0 -84
  410. package/cjs/document/resource/container-decorator.js +0 -24
  411. package/cjs/document/resource/container.js +0 -29
  412. package/cjs/document/resource/crud-operation-decorator.js +0 -28
  413. package/cjs/document/resource/crud-operation.js +0 -49
  414. package/cjs/document/resource/crud-resource.js +0 -34
  415. package/cjs/document/resource/endpoint.js +0 -59
  416. package/cjs/document/resource/enums/metadata-mode.enum.js +0 -19
  417. package/cjs/document/resource/parameter.js +0 -50
  418. package/cjs/document/resource/resource-decorator.js +0 -33
  419. package/cjs/document/resource/resource.js +0 -60
  420. package/cjs/document/resource/singleton-class.js +0 -83
  421. package/cjs/document/resource/singleton-decorator.js +0 -57
  422. package/cjs/document/resource/singleton.js +0 -25
  423. package/cjs/document/resource/storage-class.js +0 -18
  424. package/cjs/document/resource/storage-decorator.js +0 -70
  425. package/cjs/document/resource/storage.js +0 -25
  426. package/cjs/document/resource/types/operation-result.type.js +0 -45
  427. package/cjs/document/type-document.js +0 -204
  428. package/cjs/exception/wrap-exception.js +0 -43
  429. package/cjs/helpers/path-to-object-tree.js +0 -28
  430. package/cjs/schema/opra-schema.ns.js +0 -22
  431. package/cjs/schema/resource/collection.interface.js +0 -7
  432. package/cjs/schema/resource/container.interface.js +0 -7
  433. package/cjs/schema/resource/singleton.interface.js +0 -7
  434. package/cjs/schema/resource/storage.interface.js +0 -7
  435. package/esm/document/data-type/builtin/any.type.js +0 -10
  436. package/esm/document/data-type/builtin/approx-date.type.js +0 -18
  437. package/esm/document/data-type/builtin/approx-datetime.type.js +0 -21
  438. package/esm/document/data-type/builtin/base64.type.js +0 -13
  439. package/esm/document/data-type/builtin/bigint.type.js +0 -13
  440. package/esm/document/data-type/builtin/boolean.type.js +0 -13
  441. package/esm/document/data-type/builtin/date.type.js +0 -14
  442. package/esm/document/data-type/builtin/datetime.type.js +0 -18
  443. package/esm/document/data-type/builtin/email.type.js +0 -13
  444. package/esm/document/data-type/builtin/index.js +0 -18
  445. package/esm/document/data-type/builtin/integer.type.js +0 -13
  446. package/esm/document/data-type/builtin/number.type.js +0 -13
  447. package/esm/document/data-type/builtin/object-id.type.js +0 -13
  448. package/esm/document/data-type/builtin/string.type.js +0 -13
  449. package/esm/document/data-type/builtin/time.type.js +0 -20
  450. package/esm/document/data-type/builtin/url.type.js +0 -13
  451. package/esm/document/data-type/builtin/uuid.type.js +0 -13
  452. package/esm/document/data-type/complex-type-class.js +0 -270
  453. package/esm/document/data-type/enum-type-class.js +0 -35
  454. package/esm/document/data-type/field-class.js +0 -63
  455. package/esm/document/data-type/field.js +0 -21
  456. package/esm/document/data-type/mapped-type-class.js +0 -48
  457. package/esm/document/data-type/mixin-type-class.js +0 -34
  458. package/esm/document/data-type/simple-type-class.js +0 -33
  459. package/esm/document/data-type/simple-type.decorator.js +0 -15
  460. package/esm/document/document-base.js +0 -20
  461. package/esm/document/factory/api-document-factory.js +0 -258
  462. package/esm/document/factory/type-document-factory.js +0 -322
  463. package/esm/document/resource/action-decorator.js +0 -29
  464. package/esm/document/resource/action.js +0 -30
  465. package/esm/document/resource/collection-class.js +0 -253
  466. package/esm/document/resource/collection-decorator.js +0 -207
  467. package/esm/document/resource/collection.js +0 -21
  468. package/esm/document/resource/container-class.js +0 -80
  469. package/esm/document/resource/container-decorator.js +0 -20
  470. package/esm/document/resource/container.js +0 -25
  471. package/esm/document/resource/crud-operation-decorator.js +0 -24
  472. package/esm/document/resource/crud-operation.js +0 -45
  473. package/esm/document/resource/crud-resource.js +0 -30
  474. package/esm/document/resource/endpoint.js +0 -55
  475. package/esm/document/resource/enums/metadata-mode.enum.js +0 -16
  476. package/esm/document/resource/parameter.js +0 -46
  477. package/esm/document/resource/resource-decorator.js +0 -28
  478. package/esm/document/resource/resource.js +0 -56
  479. package/esm/document/resource/singleton-class.js +0 -79
  480. package/esm/document/resource/singleton-decorator.js +0 -53
  481. package/esm/document/resource/singleton.js +0 -21
  482. package/esm/document/resource/storage-class.js +0 -14
  483. package/esm/document/resource/storage-decorator.js +0 -66
  484. package/esm/document/resource/storage.js +0 -21
  485. package/esm/document/type-document.js +0 -200
  486. package/esm/exception/wrap-exception.js +0 -39
  487. package/esm/helpers/path-to-object-tree.js +0 -24
  488. package/esm/schema/opra-schema.ns.js +0 -19
  489. package/esm/schema/resource/collection.interface.js +0 -4
  490. package/esm/schema/resource/container.interface.js +0 -4
  491. package/esm/schema/resource/singleton.interface.js +0 -4
  492. package/esm/schema/resource/storage.interface.js +0 -4
  493. package/types/document/data-type/builtin/any.type.d.ts +0 -2
  494. package/types/document/data-type/builtin/approx-date.type.d.ts +0 -2
  495. package/types/document/data-type/builtin/approx-datetime.type.d.ts +0 -2
  496. package/types/document/data-type/builtin/base64.type.d.ts +0 -2
  497. package/types/document/data-type/builtin/bigint.type.d.ts +0 -2
  498. package/types/document/data-type/builtin/boolean.type.d.ts +0 -2
  499. package/types/document/data-type/builtin/date.type.d.ts +0 -2
  500. package/types/document/data-type/builtin/datetime.type.d.ts +0 -2
  501. package/types/document/data-type/builtin/email.type.d.ts +0 -2
  502. package/types/document/data-type/builtin/index.d.ts +0 -18
  503. package/types/document/data-type/builtin/integer.type.d.ts +0 -2
  504. package/types/document/data-type/builtin/null.type.d.ts +0 -2
  505. package/types/document/data-type/builtin/number.type.d.ts +0 -2
  506. package/types/document/data-type/builtin/object-id.type.d.ts +0 -2
  507. package/types/document/data-type/builtin/object.type.d.ts +0 -2
  508. package/types/document/data-type/builtin/string.type.d.ts +0 -2
  509. package/types/document/data-type/builtin/time.type.d.ts +0 -2
  510. package/types/document/data-type/builtin/url.type.d.ts +0 -2
  511. package/types/document/data-type/builtin/uuid.type.d.ts +0 -2
  512. package/types/document/data-type/complex-type-class.d.ts +0 -36
  513. package/types/document/data-type/complex-type.decorator.d.ts +0 -2
  514. package/types/document/data-type/enum-type-class.d.ts +0 -18
  515. package/types/document/data-type/field-class.d.ts +0 -31
  516. package/types/document/data-type/field-decorator.d.ts +0 -5
  517. package/types/document/data-type/field.d.ts +0 -46
  518. package/types/document/data-type/mapped-type-class.d.ts +0 -18
  519. package/types/document/data-type/mixin-type-class.d.ts +0 -12
  520. package/types/document/data-type/simple-type-class.d.ts +0 -19
  521. package/types/document/data-type/simple-type.decorator.d.ts +0 -2
  522. package/types/document/document-base.d.ts +0 -10
  523. package/types/document/factory/api-document-factory.d.ts +0 -49
  524. package/types/document/factory/type-document-factory.d.ts +0 -57
  525. package/types/document/interfaces/collection.interface.d.ts +0 -10
  526. package/types/document/interfaces/singleton.interface.d.ts +0 -7
  527. package/types/document/interfaces/storage.interface.d.ts +0 -8
  528. package/types/document/resource/action-decorator.d.ts +0 -8
  529. package/types/document/resource/action.d.ts +0 -30
  530. package/types/document/resource/collection-class.d.ts +0 -20
  531. package/types/document/resource/collection-decorator.d.ts +0 -204
  532. package/types/document/resource/collection.d.ts +0 -62
  533. package/types/document/resource/container-class.d.ts +0 -66
  534. package/types/document/resource/container-decorator.d.ts +0 -37
  535. package/types/document/resource/container.d.ts +0 -27
  536. package/types/document/resource/crud-operation-decorator.d.ts +0 -6
  537. package/types/document/resource/crud-operation.d.ts +0 -32
  538. package/types/document/resource/crud-resource.d.ts +0 -16
  539. package/types/document/resource/endpoint.d.ts +0 -32
  540. package/types/document/resource/enums/metadata-mode.enum.d.ts +0 -5
  541. package/types/document/resource/parameter.d.ts +0 -35
  542. package/types/document/resource/resource-decorator.d.ts +0 -40
  543. package/types/document/resource/resource.d.ts +0 -35
  544. package/types/document/resource/singleton-class.d.ts +0 -21
  545. package/types/document/resource/singleton-decorator.d.ts +0 -131
  546. package/types/document/resource/singleton.d.ts +0 -49
  547. package/types/document/resource/storage-class.d.ts +0 -17
  548. package/types/document/resource/storage-decorator.d.ts +0 -100
  549. package/types/document/resource/storage.d.ts +0 -39
  550. package/types/document/type-document.d.ts +0 -79
  551. package/types/exception/resource-errors/resource-conflict.error.d.ts +0 -5
  552. package/types/exception/wrap-exception.d.ts +0 -2
  553. package/types/helpers/path-to-object-tree.d.ts +0 -4
  554. package/types/schema/document/api-document.interface.d.ts +0 -11
  555. package/types/schema/document/document-base.interface.d.ts +0 -24
  556. package/types/schema/document/type-document.interface.d.ts +0 -6
  557. package/types/schema/opra-schema.ns.d.ts +0 -19
  558. package/types/schema/resource/action.interface.d.ts +0 -6
  559. package/types/schema/resource/collection.interface.d.ts +0 -55
  560. package/types/schema/resource/container.interface.d.ts +0 -10
  561. package/types/schema/resource/endpoint.interface.d.ts +0 -13
  562. package/types/schema/resource/resource.interface.d.ts +0 -15
  563. package/types/schema/resource/singleton.interface.d.ts +0 -25
  564. package/types/schema/resource/storage.interface.d.ts +0 -61
  565. /package/cjs/{document/interfaces/collection.interface.js → schema/data-type-container.interface.js} +0 -0
  566. /package/cjs/{document/interfaces/singleton.interface.js → schema/document.interface.js} +0 -0
  567. /package/cjs/{document/interfaces/storage.interface.js → schema/http/http-media-type.interface.js} +0 -0
  568. /package/cjs/schema/{document/api-document.interface.js → http/http-multipart-field.interface.js} +0 -0
  569. /package/cjs/schema/{document/document-base.interface.js → http/http-operation-response.interface.js} +0 -0
  570. /package/cjs/schema/{document/type-document.interface.js → http/http-parameter.interface.js} +0 -0
  571. /package/cjs/schema/{resource/action.interface.js → http/http-request-body.interface.js} +0 -0
  572. /package/cjs/schema/{resource/endpoint.interface.js → http/http-status-range.interface.js} +0 -0
  573. /package/cjs/schema/{resource/resource.interface.js → types.js} +0 -0
  574. /package/esm/{document/interfaces/collection.interface.js → schema/data-type-container.interface.js} +0 -0
  575. /package/esm/{document/interfaces/singleton.interface.js → schema/document.interface.js} +0 -0
  576. /package/esm/{document/interfaces/storage.interface.js → schema/http/http-media-type.interface.js} +0 -0
  577. /package/esm/schema/{document/api-document.interface.js → http/http-multipart-field.interface.js} +0 -0
  578. /package/esm/schema/{document/document-base.interface.js → http/http-operation-response.interface.js} +0 -0
  579. /package/esm/schema/{document/type-document.interface.js → http/http-parameter.interface.js} +0 -0
  580. /package/esm/schema/{resource/action.interface.js → http/http-request-body.interface.js} +0 -0
  581. /package/esm/schema/{resource/endpoint.interface.js → http/http-status-range.interface.js} +0 -0
  582. /package/esm/schema/{resource/resource.interface.js → types.js} +0 -0
@@ -3,20 +3,24 @@ export interface ResponsiveMapOptions {
3
3
  caseSensitive?: boolean;
4
4
  }
5
5
  export type ResponsiveMapInit<V> = ResponsiveMap<V> | Map<string, V> | Record<any, V>;
6
+ declare const kEntries: unique symbol;
6
7
  declare const kKeyMap: unique symbol;
7
- declare const kKeyOrder: unique symbol;
8
8
  declare const kWellKnownKeys: unique symbol;
9
9
  declare const kOptions: unique symbol;
10
+ declare const kSize: unique symbol;
10
11
  /**
11
12
  * A Map implementation that supports case-insensitivity and ordered keys
12
13
  */
13
- export declare class ResponsiveMap<V> extends Map<string, V> {
14
+ export declare class ResponsiveMap<V> implements Map<string, V> {
15
+ private [kSize];
16
+ private [kEntries];
14
17
  private [kKeyMap];
15
- private [kKeyOrder];
16
18
  private [kWellKnownKeys];
17
19
  private [kOptions];
18
20
  constructor(init?: ResponsiveMapInit<V> | null, options?: ResponsiveMapOptions);
21
+ get size(): number;
19
22
  clear(): void;
23
+ forEach(callbackfn: (value: V, key: string, map: Map<string, V>) => void, thisArg?: any): void;
20
24
  get(key: string): V | undefined;
21
25
  has(key: string): boolean;
22
26
  set(key: string, value: V): this;
@@ -26,9 +30,9 @@ export declare class ResponsiveMap<V> extends Map<string, V> {
26
30
  entries(): IterableIterator<[string, V]>;
27
31
  delete(key: string): boolean;
28
32
  sort(compareFn?: (a: string, b: string) => number): this;
29
- getProxy(handler?: ProxyHandler<Record<string, V>>): Record<string, V>;
30
33
  toObject(): Record<string, V>;
31
34
  [Symbol.iterator](): IterableIterator<[string, V]>;
35
+ get [Symbol.toStringTag](): string;
32
36
  protected _getOriginalKey(key: string): string;
33
37
  protected _getStoringKey(key: string): string;
34
38
  }
@@ -1,9 +1,9 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference lib="dom" />
3
- import { Readable } from 'stream';
3
+ import { Readable, Stream } from 'stream';
4
4
  import { Type } from 'ts-gems';
5
5
  export declare function isConstructor(fn: any): fn is Type;
6
- export declare function isStream(stream: any): boolean;
6
+ export declare function isStream(x: any): x is Stream;
7
7
  export declare function isReadable(x: any): x is Readable;
8
8
  export declare function isWritable(x: any): x is Readable;
9
9
  export declare function isReadableStream(x: any): x is ReadableStream;
@@ -1,65 +1,65 @@
1
1
  export declare const HttpStatusMessages: {
2
- "100": string;
3
- "101": string;
4
- "102": string;
5
- "103": string;
6
- "200": string;
7
- "201": string;
8
- "202": string;
9
- "203": string;
10
- "204": string;
11
- "205": string;
12
- "206": string;
13
- "207": string;
14
- "208": string;
15
- "226": string;
16
- "300": string;
17
- "301": string;
18
- "302": string;
19
- "303": string;
20
- "304": string;
21
- "305": string;
22
- "307": string;
23
- "308": string;
24
- "400": string;
25
- "401": string;
26
- "402": string;
27
- "403": string;
28
- "404": string;
29
- "405": string;
30
- "406": string;
31
- "407": string;
32
- "408": string;
33
- "409": string;
34
- "410": string;
35
- "411": string;
36
- "412": string;
37
- "413": string;
38
- "414": string;
39
- "415": string;
40
- "416": string;
41
- "417": string;
42
- "418": string;
43
- "421": string;
44
- "422": string;
45
- "423": string;
46
- "424": string;
47
- "425": string;
48
- "426": string;
49
- "428": string;
50
- "429": string;
51
- "431": string;
52
- "451": string;
53
- "500": string;
54
- "501": string;
55
- "502": string;
56
- "503": string;
57
- "504": string;
58
- "505": string;
59
- "506": string;
60
- "507": string;
61
- "508": string;
62
- "509": string;
63
- "510": string;
64
- "511": string;
2
+ '100': string;
3
+ '101': string;
4
+ '102': string;
5
+ '103': string;
6
+ '200': string;
7
+ '201': string;
8
+ '202': string;
9
+ '203': string;
10
+ '204': string;
11
+ '205': string;
12
+ '206': string;
13
+ '207': string;
14
+ '208': string;
15
+ '226': string;
16
+ '300': string;
17
+ '301': string;
18
+ '302': string;
19
+ '303': string;
20
+ '304': string;
21
+ '305': string;
22
+ '307': string;
23
+ '308': string;
24
+ '400': string;
25
+ '401': string;
26
+ '402': string;
27
+ '403': string;
28
+ '404': string;
29
+ '405': string;
30
+ '406': string;
31
+ '407': string;
32
+ '408': string;
33
+ '409': string;
34
+ '410': string;
35
+ '411': string;
36
+ '412': string;
37
+ '413': string;
38
+ '414': string;
39
+ '415': string;
40
+ '416': string;
41
+ '417': string;
42
+ '418': string;
43
+ '421': string;
44
+ '422': string;
45
+ '423': string;
46
+ '424': string;
47
+ '425': string;
48
+ '426': string;
49
+ '428': string;
50
+ '429': string;
51
+ '431': string;
52
+ '451': string;
53
+ '500': string;
54
+ '501': string;
55
+ '502': string;
56
+ '503': string;
57
+ '504': string;
58
+ '505': string;
59
+ '506': string;
60
+ '507': string;
61
+ '508': string;
62
+ '509': string;
63
+ '510': string;
64
+ '511': string;
65
65
  };
@@ -0,0 +1,12 @@
1
+ /**
2
+ * https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#successful_responses
3
+ */
4
+ export declare enum MimeTypes {
5
+ json = "application/json",
6
+ opra_response_json = "application/opra.response+json",
7
+ xml = "application/XML",
8
+ text = "text/plain",
9
+ html = "text/html",
10
+ markdown = "text/markdown",
11
+ binary = "binary/octet-stream"
12
+ }
@@ -1,5 +1,4 @@
1
- export * from './opra-url.js';
2
- export * from './opra-url-path.js';
3
1
  export * from './enums/http-headers-codes.enum.js';
4
2
  export * from './enums/http-status-codes.enum.js';
5
3
  export * from './enums/http-status-messages.js';
4
+ export * from './enums/mime-types.enum.js';
@@ -1,7 +1,8 @@
1
1
  import { Type } from 'ts-gems';
2
2
  import { FallbackLng, Formatter as I18nextFormatter, i18n, InitOptions as I18nextInitOptions, Resource as I18nextResource, TFunction as I18nextTFunction, TOptions } from '@browsery/i18next';
3
3
  import * as I18next from '@browsery/i18next';
4
- export type BaseI18n = Type<I18next.i18n>;
4
+ export interface BaseI18n extends Type<I18next.i18n> {
5
+ }
5
6
  export declare const BaseI18n: BaseI18n;
6
7
  export type DeepTranslateOptions = TOptions & {
7
8
  ignore?: (input: any, inst: i18n) => boolean;
@@ -5,11 +5,11 @@ import type { MappedType } from './mapped-type.interface.js';
5
5
  import type { MixinType } from './mixin-type.interface.js';
6
6
  export interface ComplexType extends StrictOmit<DataTypeBase, 'kind'> {
7
7
  kind: ComplexType.Kind;
8
- ctor?: Type;
9
8
  base?: DataType.Name | ComplexType | MixinType | MappedType;
10
- abstract?: boolean;
9
+ ctor?: Type;
11
10
  fields?: Record<Field.Name, Field | DataType.Name>;
12
- additionalFields?: boolean | 'error' | string | DataType;
11
+ additionalFields?: boolean | string | DataType | ['error'] | ['error', string];
12
+ keyField?: Field.Name;
13
13
  }
14
14
  export declare namespace ComplexType {
15
15
  const Kind = "ComplexType";
@@ -11,4 +11,10 @@ export declare namespace DataType {
11
11
  export interface DataTypeBase {
12
12
  kind: DataType.Kind;
13
13
  description?: string;
14
+ examples?: DataTypeExample[];
15
+ abstract?: boolean;
16
+ }
17
+ export interface DataTypeExample {
18
+ description?: string;
19
+ value?: any;
14
20
  }
@@ -2,15 +2,14 @@ import { StrictOmit } from 'ts-gems';
2
2
  import type { DataType, DataTypeBase } from './data-type.interface.js';
3
3
  export interface EnumType extends StrictOmit<DataTypeBase, 'kind'> {
4
4
  kind: EnumType.Kind;
5
- base?: DataType.Name | EnumType;
6
- values: Record<EnumType.Value, EnumType.ValueInfo>;
5
+ base?: DataType.Name;
6
+ attributes: Record<string | number, EnumType.ValueInfo>;
7
7
  }
8
8
  export declare namespace EnumType {
9
9
  const Kind = "EnumType";
10
10
  type Kind = typeof Kind;
11
- type Value = string | number;
12
11
  interface ValueInfo {
13
- key?: string;
12
+ alias?: string;
14
13
  description?: string;
15
14
  }
16
15
  }
@@ -4,7 +4,7 @@ export declare namespace Field {
4
4
  type QualifiedName = string;
5
5
  }
6
6
  export type Field = {
7
- type: DataType.Name | DataType;
7
+ type?: DataType.Name | DataType;
8
8
  /**
9
9
  * Defines the description of the field
10
10
  */
@@ -20,7 +20,7 @@ export type Field = {
20
20
  /**
21
21
  * Indicates the fixed value of the field. The value of the field can not be any other value.
22
22
  */
23
- fixed?: string | number | boolean;
23
+ fixed?: any;
24
24
  /**
25
25
  * Indicates if field value required in create operation
26
26
  */
@@ -50,12 +50,4 @@ export type Field = {
50
50
  * Indicates if the field is deprecated and can be removed in the next
51
51
  */
52
52
  deprecated?: boolean | string;
53
- /**
54
- * Defines RegExp pattern for the field. A String type is required for this option
55
- */
56
- pattern?: string;
57
- /**
58
- * Indicates if partial update enabled for this field
59
- */
60
- partialUpdate?: boolean;
61
53
  };
@@ -1,11 +1,15 @@
1
1
  import { StrictOmit } from 'ts-gems';
2
- import { ComplexType } from './complex-type.interface.js';
3
- import { Field } from './field.interface.js';
4
- export interface MappedType extends StrictOmit<ComplexType, 'kind'> {
2
+ import type { ComplexType } from './complex-type.interface';
3
+ import type { DataType, DataTypeBase } from './data-type.interface';
4
+ import type { Field } from './field.interface.js';
5
+ import type { MixinType } from './mixin-type.interface.js';
6
+ export interface MappedType extends StrictOmit<DataTypeBase, 'kind'> {
5
7
  kind: MappedType.Kind;
8
+ base: DataType.Name | ComplexType | MixinType | MappedType;
6
9
  omit?: Field.Name[];
7
10
  pick?: Field.Name[];
8
11
  partial?: Field.Name[] | boolean;
12
+ required?: Field.Name[] | boolean;
9
13
  }
10
14
  export declare namespace MappedType {
11
15
  const Kind = "MappedType";
@@ -1,8 +1,8 @@
1
1
  import { StrictOmit } from 'ts-gems';
2
2
  import type { ComplexType } from './complex-type.interface.js';
3
- import type { DataType } from './data-type.interface.js';
3
+ import type { DataType, DataTypeBase } from './data-type.interface.js';
4
4
  import type { MappedType } from './mapped-type.interface.js';
5
- export interface MixinType extends StrictOmit<ComplexType, 'kind'> {
5
+ export interface MixinType extends StrictOmit<DataTypeBase, 'kind'> {
6
6
  kind: MixinType.Kind;
7
7
  types: (DataType.Name | ComplexType | MixinType | MappedType)[];
8
8
  }
@@ -1,14 +1,42 @@
1
- import { StrictOmit } from 'ts-gems';
2
- import { Validator } from 'valgen';
3
- import type { DataTypeBase } from './data-type.interface.js';
4
- import { DataType } from './data-type.interface.js';
1
+ import type { StrictOmit } from 'ts-gems';
2
+ import type { DataType, DataTypeBase } from './data-type.interface.js';
3
+ /**
4
+ *
5
+ * @interface SimpleType
6
+ */
5
7
  export interface SimpleType extends StrictOmit<DataTypeBase, 'kind'> {
6
8
  kind: SimpleType.Kind;
7
- base?: DataType.Name | SimpleType;
8
- decoder?: Validator;
9
- encoder?: Validator;
9
+ base?: DataType.Name;
10
+ attributes?: Record<string, Attribute>;
11
+ properties?: Record<string, any>;
10
12
  }
11
13
  export declare namespace SimpleType {
12
14
  const Kind = "SimpleType";
13
15
  type Kind = 'SimpleType';
14
16
  }
17
+ /**
18
+ *
19
+ * @interface Attribute
20
+ */
21
+ export interface Attribute {
22
+ /**
23
+ * Data format of the attribute
24
+ */
25
+ format?: string;
26
+ /**
27
+ * Defines the description of the attribute
28
+ */
29
+ description?: string;
30
+ /**
31
+ * Defines the description of the attribute
32
+ */
33
+ default?: any;
34
+ /**
35
+ * Indicates if the attribute is sealed or not. A sealed attribute cannot be extended/modified through inheritance.
36
+ */
37
+ sealed?: boolean;
38
+ /**
39
+ * Indicates if the attribute is deprecated and can be removed in the next
40
+ */
41
+ deprecated?: boolean | string;
42
+ }
@@ -0,0 +1,7 @@
1
+ import type { DataType } from './data-type/data-type.interface';
2
+ /**
3
+ * @interface DataTypeContainer
4
+ */
5
+ export interface DataTypeContainer {
6
+ types?: Record<DataType.Name, DataType>;
7
+ }
@@ -0,0 +1,55 @@
1
+ import type { SpecVersion } from './constants.js';
2
+ import type { DataTypeContainer } from './data-type-container.interface.js';
3
+ import type { HttpController } from './http/http-controller.interface';
4
+ export type Protocol = 'http' | 'ws' | 'rpc';
5
+ /**
6
+ * @interface Document
7
+ */
8
+ export interface Document extends DataTypeContainer {
9
+ spec: SpecVersion;
10
+ url?: string;
11
+ info?: DocumentInfo;
12
+ references?: Record<string, string | Document>;
13
+ api?: HttpApi;
14
+ }
15
+ /**
16
+ * @interface DocumentInfo
17
+ */
18
+ export interface DocumentInfo {
19
+ title?: string;
20
+ version?: string;
21
+ description?: string;
22
+ termsOfService?: string;
23
+ contact?: ContactPerson[];
24
+ license?: LicenseInfo;
25
+ }
26
+ /**
27
+ * @interface ContactPerson
28
+ */
29
+ export interface ContactPerson {
30
+ name?: string;
31
+ email?: string;
32
+ url?: string;
33
+ }
34
+ /**
35
+ * @interface LicenseInfo
36
+ */
37
+ export interface LicenseInfo {
38
+ name: string;
39
+ url?: string;
40
+ content?: string;
41
+ }
42
+ export interface Api extends DataTypeContainer {
43
+ protocol: Protocol;
44
+ /**
45
+ * Name of the api. Should be a computer friendly name
46
+ */
47
+ name: string;
48
+ description?: string;
49
+ }
50
+ export interface HttpApi extends Api {
51
+ protocol: 'http';
52
+ description?: string;
53
+ url?: string;
54
+ controllers: Record<string, HttpController>;
55
+ }
@@ -0,0 +1,24 @@
1
+ import type { DataTypeContainer } from '../data-type-container.interface.js';
2
+ import type { HttpOperation } from './http-operation.interface';
3
+ import type { HttpParameter } from './http-parameter.interface';
4
+ /**
5
+ *
6
+ * @interface HttpController
7
+ */
8
+ export interface HttpController extends DataTypeContainer {
9
+ kind: HttpController.Kind;
10
+ description?: string;
11
+ path?: string;
12
+ operations?: Record<string, HttpOperation>;
13
+ controllers?: Record<string, HttpController>;
14
+ parameters?: HttpParameter[];
15
+ }
16
+ /**
17
+ *
18
+ * @namespace HttpController
19
+ */
20
+ export declare namespace HttpController {
21
+ type Name = string;
22
+ const Kind = "HttpController";
23
+ type Kind = 'HttpController';
24
+ }
@@ -0,0 +1,65 @@
1
+ import type { DataType } from '../data-type/data-type.interface';
2
+ import type { HttpMultipartField } from './http-multipart-field.interface.js';
3
+ /**
4
+ *
5
+ * @interface HttpMediaType
6
+ */
7
+ export interface HttpMediaType {
8
+ /**
9
+ * A brief description.
10
+ * [CommonMark](https://commonmark.org/) syntax MAY be used for rich text representation
11
+ */
12
+ description?: string;
13
+ /**
14
+ * Media type (MIME) or [range of media types](https://datatracker.ietf.org/doc/html/rfc7231#section-5.3.2)
15
+ */
16
+ contentType?: string | string[];
17
+ /**
18
+ * Determines encoding of the content.
19
+ */
20
+ contentEncoding?: string;
21
+ /**
22
+ * DataType to be used for decoding.
23
+ */
24
+ type?: DataType.Name | DataType;
25
+ /**
26
+ * Determines if content is array
27
+ */
28
+ isArray?: boolean;
29
+ /**
30
+ * Example of the content data. The `example` field is mutually exclusive of the `examples` field.
31
+ */
32
+ example?: string;
33
+ /**
34
+ * Examples of the content data. The `examples` field is mutually exclusive of the `example` field.
35
+ */
36
+ examples?: Record<string, string>;
37
+ /**
38
+ * Content info for each field for multipart contents
39
+ */
40
+ multipartFields?: HttpMultipartField[];
41
+ /**
42
+ * Determines maximum number of multipart fields
43
+ */
44
+ maxFields?: number;
45
+ /**
46
+ * Determines maximum size of each multipart field
47
+ */
48
+ maxFieldsSize?: number;
49
+ /**
50
+ * Determines maximum number of multipart files
51
+ */
52
+ maxFiles?: number;
53
+ /**
54
+ * Determines maximum size of each multipart file
55
+ */
56
+ maxFileSize?: number;
57
+ /**
58
+ * Determines maximum size of all multipart files
59
+ */
60
+ maxTotalFileSize?: number;
61
+ /**
62
+ * Determines minimum size of each multipart file
63
+ */
64
+ minFileSize?: number;
65
+ }
@@ -0,0 +1,7 @@
1
+ import type { HttpMultipartFieldType } from '../types.js';
2
+ import type { HttpMediaType } from './http-media-type.interface.js';
3
+ export interface HttpMultipartField extends HttpMediaType {
4
+ fieldName: string | RegExp;
5
+ fieldType: HttpMultipartFieldType;
6
+ required?: boolean;
7
+ }
@@ -0,0 +1,24 @@
1
+ import type { HttpMediaType } from './http-media-type.interface.js';
2
+ import type { HttpParameter } from './http-parameter.interface';
3
+ import type { HttpStatusRange } from './http-status-range.interface';
4
+ /**
5
+ *
6
+ * @interface HttpOperationResponse
7
+ */
8
+ export interface HttpOperationResponse extends HttpMediaType {
9
+ /**
10
+ * Http status code or code range.
11
+ * @example 200
12
+ * @example [401,402,403]
13
+ * @example {start: 400, end: 403}
14
+ */
15
+ statusCode: number | HttpStatusRange | (number | HttpStatusRange)[];
16
+ /**
17
+ * Returned parameters for this response. etc. headers or cookies
18
+ */
19
+ parameters?: HttpParameter[];
20
+ /**
21
+ * Determines if the response object is partial
22
+ */
23
+ partial?: boolean | 'deep';
24
+ }
@@ -0,0 +1,23 @@
1
+ import type { DataTypeContainer } from '../data-type-container.interface';
2
+ import type { HttpMethod } from '../types.js';
3
+ import type { HttpOperationResponse } from './http-operation-response.interface';
4
+ import type { HttpParameter } from './http-parameter.interface';
5
+ import type { HttpRequestBody } from './http-request-body.interface';
6
+ /**
7
+ * @interface HttpOperation
8
+ */
9
+ export interface HttpOperation extends DataTypeContainer {
10
+ kind: HttpOperation.Kind;
11
+ method: HttpMethod;
12
+ description?: string;
13
+ path?: string;
14
+ parameters?: HttpParameter[];
15
+ responses?: HttpOperationResponse[];
16
+ requestBody?: HttpRequestBody;
17
+ composition?: string;
18
+ compositionOptions?: Record<string, any>;
19
+ }
20
+ export declare namespace HttpOperation {
21
+ const Kind = "HttpOperation";
22
+ type Kind = 'HttpOperation';
23
+ }
@@ -0,0 +1,28 @@
1
+ import { HttpParameterLocation } from '../types.js';
2
+ import type { Value } from '../value.interface';
3
+ /**
4
+ *
5
+ * @interface HttpParameter
6
+ */
7
+ export interface HttpParameter extends Value {
8
+ /**
9
+ * Defines the location of the parameter
10
+ */
11
+ location: HttpParameterLocation;
12
+ /**
13
+ * Name of the parameter. RegExp pattern can be used matching parameter name
14
+ */
15
+ name: string | RegExp;
16
+ /**
17
+ * Defines array separator
18
+ */
19
+ arraySeparator?: string;
20
+ /**
21
+ * Indicates if parameter value required
22
+ */
23
+ required?: boolean;
24
+ /**
25
+ * Indicates if the parameter is deprecated and can be removed in the next
26
+ */
27
+ deprecated?: boolean | string;
28
+ }
@@ -0,0 +1,29 @@
1
+ import type { HttpMediaType } from './http-media-type.interface.js';
2
+ /**
3
+ *
4
+ * @interface HttpRequestBody
5
+ */
6
+ export interface HttpRequestBody {
7
+ /**
8
+ * A brief description.
9
+ * [CommonMark](https://commonmark.org/) syntax MAY be used for rich text representation
10
+ */
11
+ description?: string;
12
+ /**
13
+ * Alternatives of media types
14
+ */
15
+ content: HttpMediaType[];
16
+ /**
17
+ * Determines if the request body is required.
18
+ * Default `true` for POST and PATCH operations, `false` for other methods
19
+ */
20
+ required?: boolean;
21
+ /**
22
+ * Maximum accepted content size in bytes.
23
+ */
24
+ maxContentSize?: number;
25
+ /**
26
+ * Determines if the request body object is partial
27
+ */
28
+ partial?: boolean | 'deep';
29
+ }
@@ -0,0 +1,4 @@
1
+ export interface HttpStatusRange {
2
+ start: number;
3
+ end: number;
4
+ }