@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
@@ -17,7 +17,7 @@ export class OpraURL {
17
17
  hostname: '',
18
18
  port: '',
19
19
  hash: '',
20
- password: ''
20
+ password: '',
21
21
  };
22
22
  this[kSearchParams] = new URLSearchParams();
23
23
  this[kPath] = new OpraURLPath();
@@ -37,19 +37,22 @@ export class OpraURL {
37
37
  if (this[kContext].address == null) {
38
38
  let address = '';
39
39
  if (this[kContext].hostname) {
40
- address += (this[kContext].protocol || 'http:') + '//' +
41
- (this[kContext].username || this[kContext].password
42
- ? ((this[kContext].username ? encodeURIComponent(this[kContext].username) : '') +
43
- (this[kContext].password ? ':' + encodeURIComponent(this[kContext].password) : '') + '@')
44
- : '') + this.host;
40
+ address +=
41
+ (this[kContext].protocol || 'http:') +
42
+ '//' +
43
+ (this[kContext].username || this[kContext].password
44
+ ? (this[kContext].username ? encodeURIComponent(this[kContext].username) : '') +
45
+ (this[kContext].password ? ':' + encodeURIComponent(this[kContext].password) : '') +
46
+ '@'
47
+ : '') +
48
+ this.host;
45
49
  }
46
- this[kContext].address = address +
47
- (this.pathname !== '/' ? this.pathname : '');
50
+ this[kContext].address = address + (this.pathname !== '/' ? this.pathname : '');
48
51
  }
49
52
  return this[kContext].address;
50
53
  }
51
54
  get host() {
52
- return this.hostname ? (this.hostname + (this.port ? ':' + this.port : '')) : '';
55
+ return this.hostname ? this.hostname + (this.port ? ':' + this.port : '') : '';
53
56
  }
54
57
  set host(v) {
55
58
  if (v) {
@@ -57,7 +60,7 @@ export class OpraURL {
57
60
  if (!m)
58
61
  throw Object.assign(new TypeError('Invalid host'), {
59
62
  host: v,
60
- code: 'ERR_INVALID_URL'
63
+ code: 'ERR_INVALID_URL',
61
64
  });
62
65
  this.hostname = m[1];
63
66
  this.port = m[2] || '';
@@ -75,7 +78,7 @@ export class OpraURL {
75
78
  if (!hostnameRegEx.test(v))
76
79
  throw Object.assign(new TypeError('Invalid hostname'), {
77
80
  hostname: v,
78
- code: 'ERR_INVALID_URL'
81
+ code: 'ERR_INVALID_URL',
79
82
  });
80
83
  this[kContext].hostname = v;
81
84
  }
@@ -103,7 +106,7 @@ export class OpraURL {
103
106
  if (isNaN(v) || v < 1 || v > 65535 || v % 1 > 0)
104
107
  throw Object.assign(new TypeError(`Invalid port number (${value})`), {
105
108
  hostname: v,
106
- code: 'ERR_INVALID_URL'
109
+ code: 'ERR_INVALID_URL',
107
110
  });
108
111
  this[kContext].port = String(v);
109
112
  }
@@ -119,7 +122,7 @@ export class OpraURL {
119
122
  if (!schemeRegEx.test(v))
120
123
  throw Object.assign(new TypeError('Invalid protocol'), {
121
124
  protocol: v,
122
- code: 'ERR_INVALID_URL'
125
+ code: 'ERR_INVALID_URL',
123
126
  });
124
127
  this[kContext].protocol = v + (v.endsWith(':') ? '' : ':');
125
128
  }
@@ -135,7 +138,7 @@ export class OpraURL {
135
138
  this.invalidate();
136
139
  }
137
140
  get origin() {
138
- return this.hostname ? (this.protocol + '//' + this.hostname) : '';
141
+ return this.hostname ? this.protocol + '//' + this.hostname : '';
139
142
  }
140
143
  get path() {
141
144
  return this[kPath];
@@ -196,7 +199,7 @@ export class OpraURL {
196
199
  if (!m)
197
200
  throw Object.assign(new TypeError('Invalid URL'), {
198
201
  input,
199
- code: 'ERR_INVALID_URL'
202
+ code: 'ERR_INVALID_URL',
200
203
  });
201
204
  this.protocol = m[1];
202
205
  const isAbsolute = !!m[2];
package/esm/i18n/i18n.js CHANGED
@@ -75,9 +75,9 @@ export class I18n extends BaseI18n {
75
75
  keys.push(token2);
76
76
  }
77
77
  const k = keys.length > 1 ? '$t(' + keys.join(',') + ')' : keys[0];
78
- s += (fallback
78
+ s += fallback
79
79
  ? this.t(k, fallback, { ...options, ...opts })
80
- : this.t(k, { ...options, ...opts }));
80
+ : this.t(k, { ...options, ...opts });
81
81
  continue;
82
82
  }
83
83
  s += token;
@@ -96,9 +96,13 @@ export class I18n extends BaseI18n {
96
96
  if (typeof input === 'object') {
97
97
  if (Buffer.isBuffer(input))
98
98
  return input;
99
- if (Buffer.isBuffer(input) || input instanceof Symbol ||
100
- input instanceof RegExp || input instanceof Map || input instanceof Set ||
101
- input instanceof WeakMap || input instanceof WeakSet)
99
+ if (Buffer.isBuffer(input) ||
100
+ input instanceof Symbol ||
101
+ input instanceof RegExp ||
102
+ input instanceof Map ||
103
+ input instanceof Set ||
104
+ input instanceof WeakMap ||
105
+ input instanceof WeakSet)
102
106
  return input;
103
107
  const out = {};
104
108
  objectStack.set(input, out);
@@ -3,9 +3,9 @@ const bracketRegEx = /(\))/g;
3
3
  export function translate(key, arg0, arg1) {
4
4
  const options = arg0 && typeof arg0 === 'object' ? arg0 : undefined;
5
5
  const fallback = typeof arg0 === 'string' ? arg0 : arg1;
6
- return '$t(' +
6
+ return ('$t(' +
7
7
  key +
8
8
  (options ? ',' + JSON.stringify(options) : '') +
9
9
  (fallback ? '?' + escapeString(fallback).replace(bracketRegEx, '\\$1') : '') +
10
- ')';
10
+ ')');
11
11
  }
package/esm/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  export * from './types.js';
2
2
  export * from './document/index.js';
3
3
  export * from './exception/index.js';
4
- export * from './filter/index.js'; // todo review
4
+ export * from './filter/index.js';
5
5
  export * from './helpers/index.js';
6
6
  export * from './http/index.js';
7
7
  export * from './i18n/index.js';
@@ -0,0 +1,8 @@
1
+ /**
2
+ *
3
+ * @namespace HttpController
4
+ */
5
+ export var HttpController;
6
+ (function (HttpController) {
7
+ HttpController.Kind = 'HttpController';
8
+ })(HttpController || (HttpController = {}));
@@ -0,0 +1,4 @@
1
+ export var HttpOperation;
2
+ (function (HttpOperation) {
3
+ HttpOperation.Kind = 'HttpOperation';
4
+ })(HttpOperation || (HttpOperation = {}));
@@ -1,2 +1,27 @@
1
- import * as OpraSchema from './opra-schema.ns.js';
2
- export { OpraSchema };
1
+ import * as constants_ from './constants.js';
2
+ import * as complexType_ from './data-type/complex-type.interface.js';
3
+ import * as enumType_ from './data-type/enum-type.interface.js';
4
+ import * as mappedType_ from './data-type/mapped-type.interface.js';
5
+ import * as mixinType_ from './data-type/mixin-type.interface.js';
6
+ import * as simpleType_ from './data-type/simple-type.interface.js';
7
+ import * as controller_ from './http/http-controller.interface.js';
8
+ import * as operation_ from './http/http-operation.interface.js';
9
+ import * as typeGuards_ from './type-guards.js';
10
+ export var OpraSchema;
11
+ (function (OpraSchema) {
12
+ OpraSchema.SpecVersion = constants_.SpecVersion;
13
+ OpraSchema.ComplexType = complexType_.ComplexType;
14
+ OpraSchema.EnumType = enumType_.EnumType;
15
+ OpraSchema.MappedType = mappedType_.MappedType;
16
+ OpraSchema.MixinType = mixinType_.MixinType;
17
+ OpraSchema.SimpleType = simpleType_.SimpleType;
18
+ OpraSchema.HttpController = controller_.HttpController;
19
+ OpraSchema.HttpOperation = operation_.HttpOperation;
20
+ OpraSchema.isComplexType = typeGuards_.isComplexType;
21
+ OpraSchema.isDataType = typeGuards_.isDataType;
22
+ OpraSchema.isSimpleType = typeGuards_.isSimpleType;
23
+ OpraSchema.isMixinType = typeGuards_.isMixinType;
24
+ OpraSchema.isMappedType = typeGuards_.isMappedType;
25
+ OpraSchema.isEnumType = typeGuards_.isEnumType;
26
+ OpraSchema.isHttpController = typeGuards_.isHttpController;
27
+ })(OpraSchema || (OpraSchema = {}));
@@ -3,17 +3,15 @@ import { EnumType } from './data-type/enum-type.interface.js';
3
3
  import { MappedType } from './data-type/mapped-type.interface.js';
4
4
  import { MixinType } from './data-type/mixin-type.interface.js';
5
5
  import { SimpleType } from './data-type/simple-type.interface.js';
6
- import { Collection } from './resource/collection.interface.js';
7
- import { Container } from './resource/container.interface.js';
8
- import { Singleton } from './resource/singleton.interface.js';
9
- import { Storage } from './resource/storage.interface.js';
6
+ import { HttpController } from './http/http-controller.interface.js';
10
7
  export function isDataType(obj) {
11
- return obj && typeof obj === 'object' &&
8
+ return (obj &&
9
+ typeof obj === 'object' &&
12
10
  (obj.kind === ComplexType.Kind ||
13
11
  obj.kind === EnumType.Kind ||
14
12
  obj.kind === MappedType.Kind ||
15
13
  obj.kind === SimpleType.Kind ||
16
- obj.kind === MixinType.Kind);
14
+ obj.kind === MixinType.Kind));
17
15
  }
18
16
  export function isComplexType(obj) {
19
17
  return obj && typeof obj === 'object' && obj.kind === ComplexType.Kind;
@@ -30,22 +28,6 @@ export function isMappedType(obj) {
30
28
  export function isEnumType(obj) {
31
29
  return obj && typeof obj === 'object' && obj.kind === EnumType.Kind;
32
30
  }
33
- export function isResource(obj) {
34
- return obj && typeof obj === 'object' &&
35
- (obj.kind === Container.Kind ||
36
- obj.kind === Collection.Kind ||
37
- obj.kind === Singleton.Kind ||
38
- obj.kind === Storage.Kind);
39
- }
40
- export function isCollection(obj) {
41
- return obj && typeof obj === 'object' && obj.kind === Collection.Kind;
42
- }
43
- export function isSingleton(obj) {
44
- return obj && typeof obj === 'object' && obj.kind === Singleton.Kind;
45
- }
46
- export function isStorage(obj) {
47
- return obj && typeof obj === 'object' && obj.kind === Storage.Kind;
48
- }
49
- export function isContainer(obj) {
50
- return obj && typeof obj === 'object' && obj.kind === Container.Kind;
31
+ export function isHttpController(obj) {
32
+ return obj && typeof obj === 'object' && obj.kind === HttpController.Kind;
51
33
  }
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opra/common",
3
- "version": "0.33.13",
3
+ "version": "1.0.0-alpha.1",
4
4
  "description": "Opra common package",
5
5
  "author": "Panates",
6
6
  "license": "MIT",
@@ -24,6 +24,7 @@
24
24
  "postbuild": "cp package.json ../../LICENSE ../../build/common && cp ../../package.cjs.json ../../build/common/cjs/package.json",
25
25
  "lint": "eslint . --max-warnings=0",
26
26
  "check": "madge --circular src/**",
27
+ "format": "prettier . --write --log-level=warn",
27
28
  "test": "jest",
28
29
  "cover": "jest --collect-coverage",
29
30
  "clean": "npm run clean:src && npm run clean:test && npm run clean:dist && npm run clean:cover",
@@ -34,29 +35,29 @@
34
35
  "antlr4": "java -jar ./tools/antlr4-4.12.1-SNAPSHOT-complete.jar -Dlanguage=TypeScript ./src/filter/antlr/OpraFilter.g4 -visitor"
35
36
  },
36
37
  "dependencies": {
37
- "@browsery/antlr4": "^0.9.0",
38
- "@browsery/highland": "^0.6.0",
39
- "@browsery/http-parser": "^0.4.0",
40
- "@browsery/i18next": "^0.7.2",
41
- "fast-tokenizer": "^1.2.2",
38
+ "@browsery/antlr4": "^4.13.1",
39
+ "@browsery/highland": "^2.13.5",
40
+ "@browsery/http-parser": "^0.5.8",
41
+ "@browsery/i18next": "^23.8.2",
42
+ "fast-tokenizer": "^1.3.0",
42
43
  "lodash.omit": "^4.5.0",
43
44
  "putil-isplainobject": "^1.1.5",
44
45
  "putil-merge": "^3.12.1",
45
46
  "putil-promisify": "^1.10.1",
46
47
  "putil-varhelpers": "^1.6.5",
47
- "reflect-metadata": "^0.1.14",
48
+ "reflect-metadata": "^0.2.2",
48
49
  "uid": "^2.0.1",
49
- "valgen": "^5.2.0"
50
+ "valgen": "^5.4.1"
50
51
  },
51
52
  "devDependencies": {
52
53
  "@browsery/fs": "^0.4.0",
53
- "@browsery/stream": "^0.6.0",
54
- "@browsery/util": "^0.4.0",
54
+ "@browsery/stream": "^4.3.0",
55
+ "@browsery/util": "^0.12.5",
55
56
  "@types/encodeurl": "^1.0.2",
56
57
  "@types/lodash.omit": "^4.5.9",
57
- "@types/validator": "^13.11.8",
58
+ "@types/validator": "^13.11.10",
58
59
  "path-browserify": "^1.0.1",
59
- "ts-gems": "^3.1.1"
60
+ "ts-gems": "^3.4.0"
60
61
  },
61
62
  "engines": {
62
63
  "node": ">=16.0",
@@ -76,4 +77,4 @@
76
77
  "opra",
77
78
  "common"
78
79
  ]
79
- }
80
+ }
@@ -1,58 +1,38 @@
1
+ import { Type } from 'ts-gems';
2
+ import { ResponsiveMap } from '../helpers/index.js';
1
3
  import { OpraSchema } from '../schema/index.js';
2
- import type { Collection } from './resource/collection.js';
3
- import { Container } from './resource/container.js';
4
- import type { Resource } from './resource/resource.js';
5
- import type { Singleton } from './resource/singleton.js';
6
- import type { Storage } from './resource/storage.js';
7
- import { TypeDocument } from './type-document.js';
8
- export declare class ApiDocument extends TypeDocument {
9
- root: Container;
10
- /**
11
- * Returns Resource instance by path. Returns undefined if not found
12
- */
13
- getResource(path: string): Resource;
14
- getResource(path: string, silent: false): Resource;
15
- getResource(path: string, silent: true): Resource | undefined;
16
- /**
17
- * Returns Collection resource instance by path
18
- * Returns undefined if not found
19
- * Throws error if resource is not a Collection
20
- */
21
- getContainer(path: string): Container;
22
- getContainer(path: string, silent: false): Container;
23
- getContainer(path: string, silent: true): Container | undefined;
24
- getContainer(path: string, silent?: boolean): Container | undefined;
25
- /**
26
- * Returns Collection resource instance by path
27
- * Returns undefined if not found
28
- * Throws error if resource is not a Collection
29
- */
30
- getCollection(path: string): Collection;
31
- getCollection(path: string, silent: false): Collection;
32
- getCollection(path: string, silent: true): Collection | undefined;
33
- getCollection(path: string, silent?: boolean): Collection | undefined;
34
- /**
35
- * Returns Singleton resource instance by path
36
- * Returns undefined if not found
37
- * Throws error if resource is not a Collection
38
- */
39
- getSingleton(path: string): Singleton;
40
- getSingleton(path: string, silent: false): Singleton;
41
- getSingleton(path: string, silent: true): Singleton | undefined;
42
- getSingleton(path: string, silent?: boolean): Singleton | undefined;
4
+ import { DataTypeMap } from './common/data-type-map.js';
5
+ import { DocumentElement } from './common/document-element.js';
6
+ import { kTypeNSMap } from './constants.js';
7
+ import { DataType } from './data-type/data-type.js';
8
+ import type { EnumType } from './data-type/enum-type.js';
9
+ import type { HttpApi } from './http/http-api.js';
10
+ export declare namespace ApiDocument {
11
+ interface ExportOptions {
12
+ references?: 'inline' | 'relative-url' | 'external-url';
13
+ }
14
+ }
15
+ /**
16
+ *
17
+ * @class ApiDocument
18
+ */
19
+ export declare class ApiDocument extends DocumentElement {
20
+ protected [kTypeNSMap]: WeakMap<DataType, string>;
21
+ url?: string;
22
+ info: OpraSchema.DocumentInfo;
23
+ references: ResponsiveMap<ApiDocument>;
24
+ types: DataTypeMap;
25
+ api?: HttpApi;
26
+ constructor();
43
27
  /**
44
- * Returns Storage resource instance by path
45
- * Returns undefined if not found
46
- * Throws error if resource is not a Collection
28
+ * Returns NS of datatype. Returns undefined if not found
29
+ * @param nameOrCtor
47
30
  */
48
- getStorage(path: string): Storage;
49
- getStorage(path: string, silent: false): Storage;
50
- getStorage(path: string, silent: true): Storage | undefined;
51
- getStorage(path: string, silent?: boolean): Storage | undefined;
31
+ getDataTypeNs(nameOrCtor: string | Type | Function | EnumType.EnumArray | EnumType.EnumObject | DataType): string | undefined;
32
+ toJSON(): OpraSchema.ApiDocument;
52
33
  /**
53
34
  * Export as Opra schema definition object
54
35
  */
55
- exportSchema(options?: {
56
- webSafe?: boolean;
57
- }): OpraSchema.ApiDocument;
36
+ export(options?: ApiDocument.ExportOptions): OpraSchema.ApiDocument;
37
+ protected _findDataType(nameOrCtor: string | Type | Function | EnumType.EnumArray | EnumType.EnumObject, visitedRefs?: WeakMap<ApiDocument, boolean>): DataType | undefined;
58
38
  }
@@ -0,0 +1,17 @@
1
+ import { OpraSchema } from '../../schema/index.js';
2
+ import type { ApiDocument } from '../api-document';
3
+ import { DocumentElement } from './document-element.js';
4
+ import type { DocumentInitContext } from './document-init-context';
5
+ export declare namespace ApiBase {
6
+ interface InitArguments extends Pick<OpraSchema.Api, 'description' | 'name'> {
7
+ }
8
+ }
9
+ export declare abstract class ApiBase extends DocumentElement {
10
+ readonly owner: ApiDocument | ApiBase;
11
+ abstract readonly protocol: OpraSchema.Protocol;
12
+ name: string;
13
+ description?: string;
14
+ protected constructor(owner: ApiDocument | ApiBase);
15
+ toJSON(): OpraSchema.Api;
16
+ protected _initialize(init: ApiBase.InitArguments, context: DocumentInitContext): Promise<void>;
17
+ }
@@ -0,0 +1,23 @@
1
+ import { Type } from 'ts-gems';
2
+ import { ResponsiveMap } from '../../helpers/index.js';
3
+ import { DataType } from '../data-type/data-type.js';
4
+ declare const kMap: unique symbol;
5
+ declare const kCtorMap: unique symbol;
6
+ /**
7
+ * @class DataTypeMap
8
+ */
9
+ export declare class DataTypeMap {
10
+ protected [kMap]: ResponsiveMap<DataType>;
11
+ protected [kCtorMap]: WeakMap<object | Function | Type<any>, string>;
12
+ get size(): number;
13
+ forEach(callbackFn: (value: DataType, key: string, map: ReadonlyMap<string, DataType>) => void, thisArg?: any): void;
14
+ get(nameOrCtor: string | Type | Function | object): DataType | undefined;
15
+ set(name: string, dataType: DataType): void;
16
+ has(nameOrCtor: string | Type | Function | object | DataType): boolean;
17
+ keys(): IterableIterator<string>;
18
+ values(): IterableIterator<DataType>;
19
+ entries(): IterableIterator<[string, DataType]>;
20
+ sort(compareFn?: (a: string, b: string) => number): this;
21
+ [Symbol.iterator](): IterableIterator<[string, DataType]>;
22
+ }
23
+ export {};
@@ -0,0 +1,23 @@
1
+ import { DocumentNode } from './document-node.js';
2
+ interface DocumentElementConstructor {
3
+ new (owner?: DocumentElement): DocumentElement;
4
+ prototype: DocumentElement;
5
+ }
6
+ /**
7
+ * @class DocumentElement
8
+ */
9
+ export interface DocumentElement extends DocumentElementClass {
10
+ }
11
+ /**
12
+ *
13
+ * @constructor DocumentElement
14
+ */
15
+ export declare const DocumentElement: DocumentElementConstructor;
16
+ /**
17
+ * @class DocumentElement
18
+ */
19
+ declare abstract class DocumentElementClass {
20
+ readonly owner?: DocumentElement;
21
+ readonly node: DocumentNode;
22
+ }
23
+ export {};
@@ -0,0 +1,17 @@
1
+ import { OpraDocumentError } from './opra-document-error.js';
2
+ export declare namespace DocumentInitContext {
3
+ interface Options {
4
+ maxErrors?: number;
5
+ }
6
+ }
7
+ export declare class DocumentInitContext {
8
+ path: string;
9
+ error: OpraDocumentError;
10
+ maxErrors: number;
11
+ showErrorDetails: boolean;
12
+ constructor(options?: DocumentInitContext.Options);
13
+ addError(error: Error | OpraDocumentError.ErrorDetail | string): void;
14
+ enter(path: string, fn: () => any): any;
15
+ enterAsync(path: string, fn: () => any): Promise<any>;
16
+ extend<T>(args: T): this & T;
17
+ }
@@ -0,0 +1,65 @@
1
+ import { Type } from 'ts-gems';
2
+ import type { ApiDocument } from '../api-document.js';
3
+ import { kDataTypeMap } from '../constants.js';
4
+ import type { ComplexType } from '../data-type/complex-type';
5
+ import type { DataType } from '../data-type/data-type';
6
+ import type { EnumType } from '../data-type/enum-type';
7
+ import type { MappedType } from '../data-type/mapped-type';
8
+ import type { MixinType } from '../data-type/mixin-type';
9
+ import type { SimpleType } from '../data-type/simple-type';
10
+ import type { DataTypeMap } from './data-type-map.js';
11
+ import type { DocumentElement } from './document-element';
12
+ /**
13
+ * @class DocumentNode
14
+ */
15
+ export declare class DocumentNode {
16
+ protected [kDataTypeMap]?: DataTypeMap;
17
+ protected _document?: ApiDocument;
18
+ readonly parent?: DocumentNode;
19
+ readonly element: DocumentElement;
20
+ constructor(element: DocumentElement, parent?: DocumentNode);
21
+ getDocument(): ApiDocument;
22
+ hasDataType(nameOrCtor: string | Type | Function | object | any[]): boolean;
23
+ findDataType(nameOrCtor: string | Type | Function | object | any[]): DataType | undefined;
24
+ /**
25
+ * Returns DataType instance by name or Constructor. Returns undefined if not found
26
+ * @param nameOrCtor
27
+ */
28
+ getDataType(nameOrCtor: string | Type | Function | object | any[]): DataType;
29
+ getDataTypeNameWithNs(dataType: DataType): string | undefined;
30
+ /**
31
+ * Returns ComplexType instance by name or Constructor.
32
+ * Returns undefined if not found
33
+ * Throws error if data type is not a ComplexType
34
+ * @param nameOrCtor
35
+ */
36
+ getComplexType(nameOrCtor: string | Type | Function): ComplexType;
37
+ /**
38
+ * Returns SimpleType instance by name or Constructor.
39
+ * Returns undefined if not found
40
+ * Throws error if data type is not a SimpleType
41
+ * @param nameOrCtor
42
+ */
43
+ getSimpleType(nameOrCtor: string | Type): SimpleType;
44
+ /**
45
+ * Returns EnumType instance by name or Constructor.
46
+ * Returns undefined if not found
47
+ * Throws error if data type is not a EnumType
48
+ * @param nameOrCtor
49
+ */
50
+ getEnumType(nameOrCtor: string | object | any[]): EnumType;
51
+ /**
52
+ * Returns EnumType instance by name or Constructor.
53
+ * Returns undefined if not found
54
+ * Throws error if data type is not a MappedType
55
+ * @param nameOrCtor
56
+ */
57
+ getMappedType(nameOrCtor: string | object | any[]): MappedType;
58
+ /**
59
+ * Returns EnumType instance by name or Constructor.
60
+ * Returns undefined if not found
61
+ * Throws error if data type is not a MixinType
62
+ * @param nameOrCtor
63
+ */
64
+ getMixinType(nameOrCtor: string | object | any[]): MixinType;
65
+ }
@@ -0,0 +1,12 @@
1
+ import { OpraException } from '../../exception/opra-exception.js';
2
+ export declare namespace OpraDocumentError {
3
+ interface ErrorDetail {
4
+ message: string;
5
+ path: string;
6
+ }
7
+ }
8
+ export declare class OpraDocumentError extends OpraException {
9
+ details: OpraDocumentError.ErrorDetail[];
10
+ constructor();
11
+ add(detail: OpraDocumentError.ErrorDetail): this;
12
+ }
@@ -0,0 +1,48 @@
1
+ import { Combine, StrictOmit, TypeThunkAsync } from 'ts-gems';
2
+ import type { OpraSchema } from '../../schema/index.js';
3
+ import { DataType } from '../data-type/data-type.js';
4
+ import type { EnumType } from '../data-type/enum-type.js';
5
+ import { DocumentElement } from './document-element.js';
6
+ /**
7
+ * @namespace Value
8
+ */
9
+ export declare namespace Value {
10
+ interface Metadata extends StrictOmit<OpraSchema.Value, 'type'> {
11
+ type?: string | TypeThunkAsync | EnumType.EnumObject | EnumType.EnumArray | object;
12
+ }
13
+ interface Options extends Partial<StrictOmit<Metadata, 'type'>> {
14
+ type?: string | TypeThunkAsync | object;
15
+ }
16
+ interface InitArguments extends Combine<{
17
+ type?: DataType;
18
+ }, Metadata> {
19
+ }
20
+ }
21
+ /**
22
+ * Type definition for Value
23
+ * @class Value
24
+ */
25
+ interface ValueStatic {
26
+ new (owner: DocumentElement, args: Value.InitArguments): Value;
27
+ prototype: Value;
28
+ }
29
+ /**
30
+ * Type definition of Value prototype
31
+ * @interface Value
32
+ */
33
+ export interface Value extends ValueClass {
34
+ }
35
+ export declare const Value: ValueStatic;
36
+ /**
37
+ * @class Value
38
+ */
39
+ declare class ValueClass extends DocumentElement {
40
+ readonly owner: DocumentElement;
41
+ readonly name: string | RegExp;
42
+ type?: DataType;
43
+ description?: string;
44
+ examples?: any[] | Record<string, any>;
45
+ isArray?: boolean;
46
+ toJSON(): OpraSchema.Value;
47
+ }
48
+ export {};
@@ -1,6 +1,12 @@
1
1
  export declare const DATATYPE_METADATA: unique symbol;
2
- export declare const RESOURCE_METADATA: unique symbol;
2
+ export declare const HTTP_CONTROLLER_METADATA: unique symbol;
3
+ export declare const DECODER: unique symbol;
4
+ export declare const ENCODER: unique symbol;
3
5
  export declare const DECORATOR: unique symbol;
6
+ export declare const BUILTIN: unique symbol;
4
7
  export declare const NAMESPACE_PATTERN: RegExp;
5
- export declare const TYPENAME_PATTERN: RegExp;
6
- export declare const SORT_FIELD_PATTERN: RegExp;
8
+ export declare const CLASS_NAME_PATTERN: RegExp;
9
+ export declare const EXTRACT_TYPENAME_PATTERN: RegExp;
10
+ export declare const kDataTypeMap: unique symbol;
11
+ export declare const kCtorMap: unique symbol;
12
+ export declare const kTypeNSMap: unique symbol;