@opra/common 0.13.0 → 0.15.0

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 (476) hide show
  1. package/cjs/document/api-document.js +211 -0
  2. package/cjs/document/constants.js +6 -0
  3. package/cjs/document/data-type/api-field.js +82 -0
  4. package/cjs/document/data-type/builtin/any.type.js +14 -0
  5. package/cjs/document/data-type/builtin/base64.type.js +38 -0
  6. package/cjs/document/data-type/builtin/bigint.type.js +33 -0
  7. package/cjs/document/data-type/builtin/boolean.type.js +28 -0
  8. package/cjs/document/data-type/builtin/date.type.js +18 -0
  9. package/cjs/document/data-type/builtin/guid.type.js +35 -0
  10. package/cjs/document/data-type/builtin/index.js +13 -0
  11. package/cjs/document/data-type/builtin/integer.type.js +28 -0
  12. package/cjs/document/data-type/builtin/number.type.js +33 -0
  13. package/cjs/document/data-type/builtin/object.type.js +20 -0
  14. package/cjs/document/data-type/builtin/string.type.js +24 -0
  15. package/cjs/document/data-type/builtin/time.type.js +32 -0
  16. package/cjs/document/data-type/builtin/timestamp.type.js +29 -0
  17. package/cjs/document/data-type/complex-type.js +154 -0
  18. package/cjs/document/data-type/data-type.js +46 -0
  19. package/cjs/document/data-type/enum-type.js +62 -0
  20. package/cjs/document/data-type/mapped-type.js +96 -0
  21. package/cjs/document/data-type/simple-type.js +61 -0
  22. package/cjs/document/data-type/union-type.js +81 -0
  23. package/cjs/document/factory/add-references.js +20 -0
  24. package/cjs/document/factory/create-document.js +81 -0
  25. package/cjs/document/factory/factory.js +62 -0
  26. package/cjs/document/factory/import-resource-class.js +53 -0
  27. package/cjs/document/factory/import-type-class.js +130 -0
  28. package/cjs/document/factory/index.js +4 -0
  29. package/cjs/document/factory/process-resources.js +55 -0
  30. package/cjs/document/factory/process-types.js +191 -0
  31. package/cjs/document/index.js +17 -0
  32. package/cjs/document/resource/collection.js +185 -0
  33. package/cjs/document/resource/resource.js +38 -0
  34. package/cjs/document/resource/singleton.js +91 -0
  35. package/cjs/exception/opra-exception.js +2 -0
  36. package/cjs/exception/resource-errors/resource-not-found.error.js +4 -0
  37. package/cjs/filter/parse.js +3 -1
  38. package/cjs/helpers/function-utils.js +25 -0
  39. package/cjs/helpers/get-stack-filename.js +24 -0
  40. package/cjs/helpers/index.js +7 -0
  41. package/cjs/{utils → helpers}/is-url.js +2 -2
  42. package/cjs/{schema/utils/clone-object.util.js → helpers/object-utils.js} +13 -1
  43. package/cjs/{utils/path-to-tree.js → helpers/path-to-object-tree.js} +9 -9
  44. package/cjs/helpers/responsive-map.js +62 -14
  45. package/cjs/{utils → helpers}/type-guards.js +12 -5
  46. package/cjs/http/{param-codec → codecs}/boolean-codec.js +1 -2
  47. package/cjs/http/{param-codec → codecs}/date-codec.js +1 -4
  48. package/cjs/http/{param-codec → codecs}/filter-codec.js +1 -2
  49. package/cjs/http/{param-codec → codecs}/number-codec.js +1 -3
  50. package/cjs/http/{param-codec → codecs}/string-codec.js +1 -3
  51. package/cjs/http/enums/http-headers-codes.enum.js +13 -4
  52. package/cjs/http/enums/http-status-messages.js +68 -0
  53. package/cjs/http/http-headers.js +138 -124
  54. package/cjs/http/http-message.host.js +251 -0
  55. package/cjs/http/http-params.js +78 -45
  56. package/cjs/http/http-request-message.js +152 -0
  57. package/cjs/http/http-response-message.js +238 -0
  58. package/cjs/http/index.js +8 -11
  59. package/cjs/http/multipart/batch-multipart.js +169 -153
  60. package/cjs/http/multipart/http-request-content.js +16 -11
  61. package/cjs/http/multipart/http-response-content.js +13 -10
  62. package/cjs/http/multipart/index.js +1 -3
  63. package/cjs/i18n/i18n.js +1 -1
  64. package/cjs/index.js +6 -5
  65. package/cjs/schema/constants.js +2 -9
  66. package/cjs/schema/data-type/complex-type.interface.js +7 -0
  67. package/cjs/schema/data-type/enum-type.interface.js +7 -0
  68. package/cjs/schema/data-type/mapped-type.interface.js +7 -0
  69. package/cjs/schema/data-type/simple-type.interface.js +7 -0
  70. package/cjs/schema/data-type/union-type.interface.js +7 -0
  71. package/cjs/schema/index.js +42 -26
  72. package/cjs/schema/resource/collection.interface.js +7 -0
  73. package/cjs/schema/resource/container.interface.js +7 -0
  74. package/cjs/schema/resource/resource.interface.js +2 -0
  75. package/cjs/schema/resource/singleton.interface.js +7 -0
  76. package/cjs/schema/type-guards.js +59 -0
  77. package/cjs/types.js +2 -0
  78. package/cjs/url/index.js +2 -2
  79. package/cjs/url/opra-url-path-component.js +2 -2
  80. package/cjs/url/opra-url-path.js +7 -4
  81. package/cjs/url/opra-url.js +84 -115
  82. package/cjs/url/utils/{path-utils.js → decode-path-component.js} +1 -46
  83. package/cjs/url/utils/encode-path-component.js +27 -0
  84. package/cjs/utils/path-utils.js +24 -0
  85. package/esm/document/api-document.d.ts +102 -0
  86. package/esm/document/api-document.js +207 -0
  87. package/esm/document/constants.d.ts +3 -0
  88. package/esm/document/constants.js +3 -0
  89. package/esm/document/data-type/api-field.d.ts +41 -0
  90. package/esm/document/data-type/api-field.js +79 -0
  91. package/esm/document/data-type/builtin/any.type.d.ts +2 -0
  92. package/esm/document/data-type/builtin/any.type.js +11 -0
  93. package/esm/document/data-type/builtin/base64.type.d.ts +6 -0
  94. package/esm/document/data-type/builtin/base64.type.js +35 -0
  95. package/esm/document/data-type/builtin/bigint.type.d.ts +6 -0
  96. package/esm/document/data-type/builtin/bigint.type.js +30 -0
  97. package/esm/document/data-type/builtin/boolean.type.d.ts +5 -0
  98. package/esm/document/data-type/builtin/boolean.type.js +25 -0
  99. package/esm/document/data-type/builtin/date.type.d.ts +4 -0
  100. package/esm/document/data-type/builtin/date.type.js +15 -0
  101. package/esm/document/data-type/builtin/guid.type.d.ts +7 -0
  102. package/esm/document/data-type/builtin/guid.type.js +32 -0
  103. package/esm/document/data-type/builtin/index.d.ts +10 -0
  104. package/esm/document/data-type/builtin/index.js +10 -0
  105. package/esm/document/data-type/builtin/integer.type.d.ts +6 -0
  106. package/esm/document/data-type/builtin/integer.type.js +25 -0
  107. package/esm/document/data-type/builtin/number.type.d.ts +6 -0
  108. package/esm/document/data-type/builtin/number.type.js +30 -0
  109. package/esm/document/data-type/builtin/object.type.d.ts +3 -0
  110. package/esm/document/data-type/builtin/object.type.js +17 -0
  111. package/esm/document/data-type/builtin/string.type.d.ts +5 -0
  112. package/esm/document/data-type/builtin/string.type.js +21 -0
  113. package/esm/document/data-type/builtin/time.type.d.ts +7 -0
  114. package/esm/document/data-type/builtin/time.type.js +29 -0
  115. package/esm/document/data-type/builtin/timestamp.type.d.ts +5 -0
  116. package/esm/document/data-type/builtin/timestamp.type.js +26 -0
  117. package/esm/document/data-type/complex-type.d.ts +50 -0
  118. package/esm/document/data-type/complex-type.js +150 -0
  119. package/esm/document/data-type/data-type.d.ts +33 -0
  120. package/esm/document/data-type/data-type.js +43 -0
  121. package/esm/document/data-type/enum-type.d.ts +32 -0
  122. package/esm/document/data-type/enum-type.js +58 -0
  123. package/esm/document/data-type/mapped-type.d.ts +53 -0
  124. package/esm/document/data-type/mapped-type.js +91 -0
  125. package/esm/document/data-type/simple-type.d.ts +33 -0
  126. package/esm/document/data-type/simple-type.js +57 -0
  127. package/esm/document/data-type/union-type.d.ts +42 -0
  128. package/esm/document/data-type/union-type.js +78 -0
  129. package/esm/document/factory/add-references.d.ts +4 -0
  130. package/esm/document/factory/add-references.js +16 -0
  131. package/esm/document/factory/create-document.d.ts +12 -0
  132. package/esm/document/factory/create-document.js +75 -0
  133. package/esm/document/factory/factory.d.ts +61 -0
  134. package/esm/document/factory/factory.js +58 -0
  135. package/esm/document/factory/import-resource-class.d.ts +9 -0
  136. package/esm/document/factory/import-resource-class.js +47 -0
  137. package/esm/document/factory/import-type-class.d.ts +17 -0
  138. package/esm/document/factory/import-type-class.js +120 -0
  139. package/esm/document/factory/index.d.ts +1 -0
  140. package/esm/document/factory/index.js +1 -0
  141. package/esm/document/factory/process-resources.d.ts +7 -0
  142. package/esm/document/factory/process-resources.js +49 -0
  143. package/esm/document/factory/process-types.d.ts +6 -0
  144. package/esm/document/factory/process-types.js +185 -0
  145. package/esm/document/index.d.ts +14 -0
  146. package/esm/document/index.js +14 -0
  147. package/esm/document/resource/collection.d.ts +67 -0
  148. package/esm/document/resource/collection.js +181 -0
  149. package/esm/document/resource/resource.d.ts +29 -0
  150. package/esm/document/resource/resource.js +35 -0
  151. package/esm/document/resource/singleton.d.ts +49 -0
  152. package/esm/document/resource/singleton.js +87 -0
  153. package/esm/exception/opra-exception.js +2 -0
  154. package/esm/exception/resource-errors/resource-not-found.error.d.ts +4 -0
  155. package/esm/exception/resource-errors/resource-not-found.error.js +4 -0
  156. package/esm/filter/parse.js +3 -1
  157. package/esm/helpers/function-utils.d.ts +4 -0
  158. package/esm/helpers/function-utils.js +19 -0
  159. package/esm/helpers/get-stack-filename.d.ts +1 -0
  160. package/esm/helpers/get-stack-filename.js +20 -0
  161. package/esm/helpers/index.d.ts +7 -0
  162. package/esm/helpers/index.js +7 -0
  163. package/esm/helpers/is-url.d.ts +1 -0
  164. package/esm/helpers/is-url.js +4 -0
  165. package/esm/{schema/utils/clone-object.util.d.ts → helpers/object-utils.d.ts} +1 -0
  166. package/esm/{schema/utils/clone-object.util.js → helpers/object-utils.js} +11 -0
  167. package/esm/helpers/path-to-object-tree.d.ts +4 -0
  168. package/esm/{utils/path-to-tree.js → helpers/path-to-object-tree.js} +7 -7
  169. package/esm/helpers/responsive-map.d.ts +15 -13
  170. package/esm/helpers/responsive-map.js +62 -14
  171. package/esm/{utils → helpers}/type-guards.d.ts +3 -1
  172. package/esm/{utils → helpers}/type-guards.js +9 -3
  173. package/esm/http/codecs/boolean-codec.d.ts +5 -0
  174. package/esm/http/{param-codec → codecs}/boolean-codec.js +1 -2
  175. package/esm/http/{param-codec → codecs}/date-codec.d.ts +2 -2
  176. package/esm/http/{param-codec → codecs}/date-codec.js +1 -4
  177. package/esm/http/{param-codec → codecs}/filter-codec.d.ts +2 -2
  178. package/esm/http/{param-codec → codecs}/filter-codec.js +1 -2
  179. package/esm/http/codecs/integer-codec.d.ts +11 -0
  180. package/esm/http/codecs/number-codec.d.ts +14 -0
  181. package/esm/http/{param-codec → codecs}/number-codec.js +1 -3
  182. package/esm/http/codecs/string-codec.d.ts +16 -0
  183. package/esm/http/{param-codec → codecs}/string-codec.js +1 -3
  184. package/esm/http/enums/http-headers-codes.enum.d.ts +13 -4
  185. package/esm/http/enums/http-headers-codes.enum.js +13 -4
  186. package/esm/http/enums/http-status-messages.d.ts +65 -0
  187. package/esm/http/enums/http-status-messages.js +65 -0
  188. package/esm/http/http-headers.d.ts +50 -34
  189. package/esm/http/http-headers.js +137 -123
  190. package/esm/http/http-message.host.d.ts +122 -0
  191. package/esm/http/http-message.host.js +246 -0
  192. package/esm/http/http-params.d.ts +43 -29
  193. package/esm/http/http-params.js +75 -43
  194. package/esm/http/http-request-message.d.ts +213 -0
  195. package/esm/http/http-request-message.js +148 -0
  196. package/esm/http/http-response-message.d.ts +318 -0
  197. package/esm/http/http-response-message.js +233 -0
  198. package/esm/http/index.d.ts +8 -11
  199. package/esm/http/index.js +8 -11
  200. package/esm/http/interfaces/cookie-options.interface.d.ts +4 -0
  201. package/esm/http/multipart/batch-multipart.d.ts +0 -31
  202. package/esm/http/multipart/batch-multipart.js +170 -149
  203. package/esm/http/multipart/http-request-content.d.ts +0 -8
  204. package/esm/http/multipart/http-request-content.js +17 -8
  205. package/esm/http/multipart/http-response-content.d.ts +0 -7
  206. package/esm/http/multipart/http-response-content.js +14 -7
  207. package/esm/http/multipart/index.d.ts +0 -1
  208. package/esm/http/multipart/index.js +2 -1
  209. package/esm/i18n/i18n.js +1 -1
  210. package/esm/index.d.ts +6 -5
  211. package/esm/index.js +6 -5
  212. package/esm/schema/constants.d.ts +2 -8
  213. package/esm/schema/constants.js +1 -8
  214. package/esm/schema/data-type/complex-type.interface.d.ts +16 -0
  215. package/esm/schema/data-type/complex-type.interface.js +4 -0
  216. package/esm/schema/data-type/data-type.interface.d.ts +14 -0
  217. package/esm/schema/data-type/enum-type.interface.d.ts +15 -0
  218. package/esm/schema/data-type/enum-type.interface.js +4 -0
  219. package/esm/schema/data-type/field.interface.d.ts +21 -0
  220. package/esm/schema/data-type/mapped-type.interface.d.ts +11 -0
  221. package/esm/schema/data-type/mapped-type.interface.js +4 -0
  222. package/esm/schema/data-type/simple-type.interface.d.ts +18 -0
  223. package/esm/schema/data-type/simple-type.interface.js +4 -0
  224. package/esm/schema/data-type/union-type.interface.d.ts +10 -0
  225. package/esm/schema/data-type/union-type.interface.js +4 -0
  226. package/esm/schema/document.interface.d.ts +34 -0
  227. package/esm/schema/index.d.ts +51 -25
  228. package/esm/schema/index.js +41 -25
  229. package/esm/schema/resource/collection.interface.d.ts +33 -0
  230. package/esm/schema/resource/collection.interface.js +4 -0
  231. package/esm/schema/resource/container.interface.d.ts +9 -0
  232. package/esm/schema/resource/container.interface.js +4 -0
  233. package/esm/schema/resource/endpoint.interface.d.ts +29 -0
  234. package/esm/schema/resource/resource.interface.d.ts +12 -0
  235. package/esm/schema/resource/resource.interface.js +1 -0
  236. package/esm/schema/resource/singleton.interface.d.ts +22 -0
  237. package/esm/schema/resource/singleton.interface.js +4 -0
  238. package/esm/schema/type-guards.d.ts +20 -0
  239. package/esm/schema/type-guards.js +46 -0
  240. package/esm/{schema/types.d.ts → types.d.ts} +0 -3
  241. package/esm/types.js +1 -0
  242. package/esm/url/index.d.ts +2 -2
  243. package/esm/url/index.js +2 -2
  244. package/esm/url/opra-url-path-component.js +1 -1
  245. package/esm/url/opra-url-path.js +6 -3
  246. package/esm/url/opra-url.d.ts +8 -27
  247. package/esm/url/opra-url.js +83 -114
  248. package/esm/url/utils/decode-path-component.d.ts +5 -0
  249. package/esm/url/utils/{path-utils.js → decode-path-component.js} +0 -41
  250. package/esm/url/utils/encode-path-component.d.ts +1 -0
  251. package/esm/url/utils/encode-path-component.js +22 -0
  252. package/esm/utils/path-utils.d.ts +2 -0
  253. package/esm/utils/path-utils.js +19 -0
  254. package/package.json +21 -6
  255. package/cjs/constants.js +0 -1
  256. package/cjs/http/http-param-codec.js +0 -6
  257. package/cjs/http/http-request-node.js +0 -105
  258. package/cjs/http/http-request.js +0 -89
  259. package/cjs/http/http-response.js +0 -23
  260. package/cjs/http/utils/encodeURIParam.js +0 -21
  261. package/cjs/http/utils/normalize-headers.js +0 -28
  262. package/cjs/schema/decorators/opr-collection-resource.decorator.js +0 -24
  263. package/cjs/schema/decorators/opr-complex-type.decorator.js +0 -28
  264. package/cjs/schema/decorators/opr-field.decorator.js +0 -29
  265. package/cjs/schema/decorators/opr-resolver.decorator.js +0 -81
  266. package/cjs/schema/decorators/opr-simple-type.decorator.js +0 -19
  267. package/cjs/schema/decorators/opr-singleton-resource.decorator.js +0 -24
  268. package/cjs/schema/implementation/data-type/builtin/any.type.js +0 -9
  269. package/cjs/schema/implementation/data-type/builtin/base64-binary.type.js +0 -15
  270. package/cjs/schema/implementation/data-type/builtin/bigint.type.js +0 -15
  271. package/cjs/schema/implementation/data-type/builtin/boolean.type.js +0 -15
  272. package/cjs/schema/implementation/data-type/builtin/date-string.type.js +0 -15
  273. package/cjs/schema/implementation/data-type/builtin/date.type.js +0 -15
  274. package/cjs/schema/implementation/data-type/builtin/guid.type.js +0 -15
  275. package/cjs/schema/implementation/data-type/builtin/integer.type.js +0 -15
  276. package/cjs/schema/implementation/data-type/builtin/number.type.js +0 -15
  277. package/cjs/schema/implementation/data-type/builtin/object.type.js +0 -15
  278. package/cjs/schema/implementation/data-type/builtin/string.type.js +0 -15
  279. package/cjs/schema/implementation/data-type/builtin-data-types.js +0 -37
  280. package/cjs/schema/implementation/data-type/complex-type.js +0 -110
  281. package/cjs/schema/implementation/data-type/data-type.js +0 -37
  282. package/cjs/schema/implementation/data-type/simple-type.js +0 -21
  283. package/cjs/schema/implementation/data-type/union-type.js +0 -24
  284. package/cjs/schema/implementation/document-builder.js +0 -140
  285. package/cjs/schema/implementation/opra-document.js +0 -183
  286. package/cjs/schema/implementation/query/collection-count-query.js +0 -17
  287. package/cjs/schema/implementation/query/collection-create-query.js +0 -23
  288. package/cjs/schema/implementation/query/collection-delete-many-query.js +0 -17
  289. package/cjs/schema/implementation/query/collection-delete-query.js +0 -25
  290. package/cjs/schema/implementation/query/collection-get-query.js +0 -32
  291. package/cjs/schema/implementation/query/collection-search-query.js +0 -45
  292. package/cjs/schema/implementation/query/collection-update-many-query.js +0 -18
  293. package/cjs/schema/implementation/query/collection-update-query.js +0 -33
  294. package/cjs/schema/implementation/query/field-get-query.js +0 -34
  295. package/cjs/schema/implementation/query/index.js +0 -22
  296. package/cjs/schema/implementation/query/singleton-get-query.js +0 -22
  297. package/cjs/schema/implementation/resource/collection-resource-info.js +0 -72
  298. package/cjs/schema/implementation/resource/container-resource-info.js +0 -30
  299. package/cjs/schema/implementation/resource/resource-info.js +0 -35
  300. package/cjs/schema/implementation/resource/singleton-resource-info.js +0 -44
  301. package/cjs/schema/implementation/schema-builder/extract-resource-metadata.util.js +0 -84
  302. package/cjs/schema/implementation/schema-builder/extract-type-metadata.util.js +0 -94
  303. package/cjs/schema/opra-schema.definition.js +0 -49
  304. package/cjs/schema/type-helpers/extend-type.helper.js +0 -65
  305. package/cjs/schema/type-helpers/mixin-type.helper.js +0 -46
  306. package/cjs/schema/utils/class.utils.js +0 -8
  307. package/cjs/schema/utils/normalize-field-array.util.js +0 -44
  308. package/cjs/schema/utils/path-to-tree.util.js +0 -26
  309. package/cjs/url/formats/boolean-format.js +0 -25
  310. package/cjs/url/formats/date-format.js +0 -44
  311. package/cjs/url/formats/filter-format.js +0 -18
  312. package/cjs/url/formats/format.js +0 -6
  313. package/cjs/url/formats/integer-format.js +0 -19
  314. package/cjs/url/formats/number-format.js +0 -26
  315. package/cjs/url/formats/string-format.js +0 -25
  316. package/cjs/url/opra-url-search-params.js +0 -28
  317. package/cjs/utils/index.js +0 -6
  318. package/esm/constants.d.ts +0 -0
  319. package/esm/constants.js +0 -1
  320. package/esm/http/http-param-codec.d.ts +0 -4
  321. package/esm/http/http-param-codec.js +0 -2
  322. package/esm/http/http-request-node.d.ts +0 -34
  323. package/esm/http/http-request-node.js +0 -101
  324. package/esm/http/http-request.d.ts +0 -76
  325. package/esm/http/http-request.js +0 -85
  326. package/esm/http/http-response.d.ts +0 -41
  327. package/esm/http/http-response.js +0 -19
  328. package/esm/http/param-codec/boolean-codec.d.ts +0 -5
  329. package/esm/http/param-codec/integer-codec.d.ts +0 -9
  330. package/esm/http/param-codec/number-codec.d.ts +0 -12
  331. package/esm/http/param-codec/string-codec.d.ts +0 -14
  332. package/esm/http/utils/encodeURIParam.d.ts +0 -1
  333. package/esm/http/utils/encodeURIParam.js +0 -17
  334. package/esm/http/utils/normalize-headers.d.ts +0 -1
  335. package/esm/http/utils/normalize-headers.js +0 -24
  336. package/esm/schema/decorators/opr-collection-resource.decorator.d.ts +0 -8
  337. package/esm/schema/decorators/opr-collection-resource.decorator.js +0 -19
  338. package/esm/schema/decorators/opr-complex-type.decorator.d.ts +0 -6
  339. package/esm/schema/decorators/opr-complex-type.decorator.js +0 -23
  340. package/esm/schema/decorators/opr-field.decorator.d.ts +0 -3
  341. package/esm/schema/decorators/opr-field.decorator.js +0 -24
  342. package/esm/schema/decorators/opr-resolver.decorator.d.ts +0 -8
  343. package/esm/schema/decorators/opr-resolver.decorator.js +0 -71
  344. package/esm/schema/decorators/opr-simple-type.decorator.d.ts +0 -6
  345. package/esm/schema/decorators/opr-simple-type.decorator.js +0 -14
  346. package/esm/schema/decorators/opr-singleton-resource.decorator.d.ts +0 -8
  347. package/esm/schema/decorators/opr-singleton-resource.decorator.js +0 -19
  348. package/esm/schema/implementation/data-type/builtin/any.type.d.ts +0 -2
  349. package/esm/schema/implementation/data-type/builtin/any.type.js +0 -6
  350. package/esm/schema/implementation/data-type/builtin/base64-binary.type.d.ts +0 -2
  351. package/esm/schema/implementation/data-type/builtin/base64-binary.type.js +0 -12
  352. package/esm/schema/implementation/data-type/builtin/bigint.type.d.ts +0 -2
  353. package/esm/schema/implementation/data-type/builtin/bigint.type.js +0 -12
  354. package/esm/schema/implementation/data-type/builtin/boolean.type.d.ts +0 -2
  355. package/esm/schema/implementation/data-type/builtin/boolean.type.js +0 -12
  356. package/esm/schema/implementation/data-type/builtin/date-string.type.d.ts +0 -2
  357. package/esm/schema/implementation/data-type/builtin/date-string.type.js +0 -12
  358. package/esm/schema/implementation/data-type/builtin/date.type.d.ts +0 -2
  359. package/esm/schema/implementation/data-type/builtin/date.type.js +0 -12
  360. package/esm/schema/implementation/data-type/builtin/guid.type.d.ts +0 -2
  361. package/esm/schema/implementation/data-type/builtin/guid.type.js +0 -12
  362. package/esm/schema/implementation/data-type/builtin/integer.type.d.ts +0 -2
  363. package/esm/schema/implementation/data-type/builtin/integer.type.js +0 -12
  364. package/esm/schema/implementation/data-type/builtin/number.type.d.ts +0 -2
  365. package/esm/schema/implementation/data-type/builtin/number.type.js +0 -12
  366. package/esm/schema/implementation/data-type/builtin/object.type.d.ts +0 -2
  367. package/esm/schema/implementation/data-type/builtin/object.type.js +0 -12
  368. package/esm/schema/implementation/data-type/builtin/string.type.d.ts +0 -2
  369. package/esm/schema/implementation/data-type/builtin/string.type.js +0 -12
  370. package/esm/schema/implementation/data-type/builtin-data-types.d.ts +0 -4
  371. package/esm/schema/implementation/data-type/builtin-data-types.js +0 -34
  372. package/esm/schema/implementation/data-type/complex-type.d.ts +0 -29
  373. package/esm/schema/implementation/data-type/complex-type.js +0 -106
  374. package/esm/schema/implementation/data-type/data-type.d.ts +0 -17
  375. package/esm/schema/implementation/data-type/data-type.js +0 -33
  376. package/esm/schema/implementation/data-type/simple-type.d.ts +0 -12
  377. package/esm/schema/implementation/data-type/simple-type.js +0 -17
  378. package/esm/schema/implementation/data-type/union-type.d.ts +0 -16
  379. package/esm/schema/implementation/data-type/union-type.js +0 -19
  380. package/esm/schema/implementation/document-builder.d.ts +0 -16
  381. package/esm/schema/implementation/document-builder.js +0 -135
  382. package/esm/schema/implementation/opra-document.d.ts +0 -44
  383. package/esm/schema/implementation/opra-document.js +0 -178
  384. package/esm/schema/implementation/query/collection-count-query.d.ts +0 -14
  385. package/esm/schema/implementation/query/collection-count-query.js +0 -13
  386. package/esm/schema/implementation/query/collection-create-query.d.ts +0 -18
  387. package/esm/schema/implementation/query/collection-create-query.js +0 -19
  388. package/esm/schema/implementation/query/collection-delete-many-query.d.ts +0 -14
  389. package/esm/schema/implementation/query/collection-delete-many-query.js +0 -13
  390. package/esm/schema/implementation/query/collection-delete-query.d.ts +0 -10
  391. package/esm/schema/implementation/query/collection-delete-query.js +0 -21
  392. package/esm/schema/implementation/query/collection-get-query.d.ts +0 -21
  393. package/esm/schema/implementation/query/collection-get-query.js +0 -28
  394. package/esm/schema/implementation/query/collection-search-query.d.ts +0 -30
  395. package/esm/schema/implementation/query/collection-search-query.js +0 -41
  396. package/esm/schema/implementation/query/collection-update-many-query.d.ts +0 -15
  397. package/esm/schema/implementation/query/collection-update-many-query.js +0 -14
  398. package/esm/schema/implementation/query/collection-update-query.d.ts +0 -19
  399. package/esm/schema/implementation/query/collection-update-query.js +0 -29
  400. package/esm/schema/implementation/query/field-get-query.d.ts +0 -30
  401. package/esm/schema/implementation/query/field-get-query.js +0 -30
  402. package/esm/schema/implementation/query/index.d.ts +0 -27
  403. package/esm/schema/implementation/query/index.js +0 -17
  404. package/esm/schema/implementation/query/singleton-get-query.d.ts +0 -20
  405. package/esm/schema/implementation/query/singleton-get-query.js +0 -18
  406. package/esm/schema/implementation/resource/collection-resource-info.d.ts +0 -22
  407. package/esm/schema/implementation/resource/collection-resource-info.js +0 -68
  408. package/esm/schema/implementation/resource/container-resource-info.d.ts +0 -13
  409. package/esm/schema/implementation/resource/container-resource-info.js +0 -26
  410. package/esm/schema/implementation/resource/resource-info.d.ts +0 -17
  411. package/esm/schema/implementation/resource/resource-info.js +0 -31
  412. package/esm/schema/implementation/resource/singleton-resource-info.d.ts +0 -15
  413. package/esm/schema/implementation/resource/singleton-resource-info.js +0 -40
  414. package/esm/schema/implementation/schema-builder/extract-resource-metadata.util.d.ts +0 -3
  415. package/esm/schema/implementation/schema-builder/extract-resource-metadata.util.js +0 -80
  416. package/esm/schema/implementation/schema-builder/extract-type-metadata.util.d.ts +0 -4
  417. package/esm/schema/implementation/schema-builder/extract-type-metadata.util.js +0 -90
  418. package/esm/schema/interfaces/child-field-query.interface.d.ts +0 -4
  419. package/esm/schema/interfaces/data-type.metadata.d.ts +0 -18
  420. package/esm/schema/interfaces/resource-container.interface.d.ts +0 -8
  421. package/esm/schema/interfaces/resource.metadata.d.ts +0 -18
  422. package/esm/schema/opra-schema.definition.d.ts +0 -178
  423. package/esm/schema/opra-schema.definition.js +0 -46
  424. package/esm/schema/type-helpers/extend-type.helper.d.ts +0 -3
  425. package/esm/schema/type-helpers/extend-type.helper.js +0 -60
  426. package/esm/schema/type-helpers/mixin-type.helper.d.ts +0 -2
  427. package/esm/schema/type-helpers/mixin-type.helper.js +0 -42
  428. package/esm/schema/utils/class.utils.d.ts +0 -2
  429. package/esm/schema/utils/class.utils.js +0 -4
  430. package/esm/schema/utils/normalize-field-array.util.d.ts +0 -3
  431. package/esm/schema/utils/normalize-field-array.util.js +0 -40
  432. package/esm/schema/utils/path-to-tree.util.d.ts +0 -4
  433. package/esm/schema/utils/path-to-tree.util.js +0 -22
  434. package/esm/url/formats/boolean-format.d.ts +0 -5
  435. package/esm/url/formats/boolean-format.js +0 -21
  436. package/esm/url/formats/date-format.d.ts +0 -16
  437. package/esm/url/formats/date-format.js +0 -40
  438. package/esm/url/formats/filter-format.d.ts +0 -6
  439. package/esm/url/formats/filter-format.js +0 -14
  440. package/esm/url/formats/format.d.ts +0 -4
  441. package/esm/url/formats/format.js +0 -2
  442. package/esm/url/formats/integer-format.d.ts +0 -9
  443. package/esm/url/formats/integer-format.js +0 -15
  444. package/esm/url/formats/number-format.d.ts +0 -12
  445. package/esm/url/formats/number-format.js +0 -22
  446. package/esm/url/formats/string-format.d.ts +0 -14
  447. package/esm/url/formats/string-format.js +0 -21
  448. package/esm/url/opra-url-search-params.d.ts +0 -5
  449. package/esm/url/opra-url-search-params.js +0 -24
  450. package/esm/url/utils/path-utils.d.ts +0 -8
  451. package/esm/utils/index.d.ts +0 -3
  452. package/esm/utils/index.js +0 -3
  453. package/esm/utils/is-url.d.ts +0 -1
  454. package/esm/utils/is-url.js +0 -4
  455. package/esm/utils/path-to-tree.d.ts +0 -4
  456. /package/cjs/{schema → document}/utils/inspect.util.js +0 -0
  457. /package/cjs/{schema → document}/utils/string-compare.util.js +0 -0
  458. /package/cjs/{schema/type-helpers/mixin.utils.js → helpers/mixin-utils.js} +0 -0
  459. /package/cjs/http/{param-codec → codecs}/integer-codec.js +0 -0
  460. /package/cjs/{schema/interfaces/child-field-query.interface.js → http/interfaces/cookie-options.interface.js} +0 -0
  461. /package/cjs/schema/{interfaces/data-type.metadata.js → data-type/data-type.interface.js} +0 -0
  462. /package/cjs/schema/{interfaces/resource-container.interface.js → data-type/field.interface.js} +0 -0
  463. /package/cjs/schema/{interfaces/resource.metadata.js → document.interface.js} +0 -0
  464. /package/cjs/schema/{types.js → resource/endpoint.interface.js} +0 -0
  465. /package/esm/{schema → document}/utils/inspect.util.d.ts +0 -0
  466. /package/esm/{schema → document}/utils/inspect.util.js +0 -0
  467. /package/esm/{schema → document}/utils/string-compare.util.d.ts +0 -0
  468. /package/esm/{schema → document}/utils/string-compare.util.js +0 -0
  469. /package/esm/{schema/type-helpers/mixin.utils.d.ts → helpers/mixin-utils.d.ts} +0 -0
  470. /package/esm/{schema/type-helpers/mixin.utils.js → helpers/mixin-utils.js} +0 -0
  471. /package/esm/http/{param-codec → codecs}/integer-codec.js +0 -0
  472. /package/esm/{schema/interfaces/child-field-query.interface.js → http/interfaces/cookie-options.interface.js} +0 -0
  473. /package/esm/schema/{interfaces/data-type.metadata.js → data-type/data-type.interface.js} +0 -0
  474. /package/esm/schema/{interfaces/resource-container.interface.js → data-type/field.interface.js} +0 -0
  475. /package/esm/schema/{interfaces/resource.metadata.js → document.interface.js} +0 -0
  476. /package/esm/schema/{types.js → resource/endpoint.interface.js} +0 -0
@@ -1,15 +0,0 @@
1
- import { OpraSchema } from '../../opra-schema.definition.js';
2
- import { ComplexType } from '../data-type/complex-type.js';
3
- import type { OpraDocument } from '../opra-document.js';
4
- import { ResourceInfo } from './resource-info.js';
5
- export declare class SingletonResourceInfo extends ResourceInfo {
6
- readonly metadata: OpraSchema.SingletonResource;
7
- readonly dataType: ComplexType;
8
- constructor(document: OpraDocument, name: string, dataType: ComplexType, metadata: OpraSchema.SingletonResource);
9
- get create(): OpraSchema.CreateMethodResolver | undefined;
10
- get delete(): OpraSchema.MethodResolver | undefined;
11
- get get(): OpraSchema.GetMethodResolver | undefined;
12
- get update(): OpraSchema.UpdateMethodResolver | undefined;
13
- getHandlerNames(): string[];
14
- getSchema(jsonOnly?: boolean): OpraSchema.SingletonResource;
15
- }
@@ -1,40 +0,0 @@
1
- import { singletonMethods } from '../../constants.js';
2
- import { ComplexType } from '../data-type/complex-type.js';
3
- import { ResourceInfo } from './resource-info.js';
4
- export class SingletonResourceInfo extends ResourceInfo {
5
- constructor(document, name, dataType, metadata) {
6
- // noinspection SuspiciousTypeOfGuard
7
- if (!(dataType instanceof ComplexType))
8
- throw new TypeError(`You should provide a ComplexType as "dataType" argument`);
9
- super(document, name, metadata);
10
- this.dataType = dataType;
11
- }
12
- get create() {
13
- return this.metadata.create;
14
- }
15
- get delete() {
16
- return this.metadata.delete;
17
- }
18
- get get() {
19
- return this.metadata.get;
20
- }
21
- get update() {
22
- return this.metadata.update;
23
- }
24
- getHandlerNames() {
25
- const out = [];
26
- singletonMethods.forEach(m => {
27
- if (this.metadata[m])
28
- out.push(m);
29
- });
30
- return out;
31
- }
32
- getSchema(jsonOnly) {
33
- const out = super.getSchema(jsonOnly);
34
- for (const k of singletonMethods) {
35
- if (typeof out[k] === 'object' && !Object.keys(out[k]).length)
36
- out[k] = true;
37
- }
38
- return out;
39
- }
40
- }
@@ -1,3 +0,0 @@
1
- import { OpraSchema } from '../../opra-schema.definition.js';
2
- import { Named } from '../../types.js';
3
- export declare function extractResourceSchema(instance: object): Promise<Named<OpraSchema.Resource>>;
@@ -1,80 +0,0 @@
1
- import { collectionMethods, IGNORE_RESOLVER_METHOD, RESOLVER_METADATA, RESOURCE_METADATA, singletonMethods } from '../../constants.js';
2
- import { OpraSchema } from '../../opra-schema.definition.js';
3
- import { cloneObject } from '../../utils/clone-object.util.js';
4
- export async function extractResourceSchema(instance) {
5
- const proto = Object.getPrototypeOf(instance);
6
- const ctor = proto.constructor;
7
- const metadata = Reflect.getMetadata(RESOURCE_METADATA, ctor);
8
- if (!metadata)
9
- throw new TypeError(`Class "${ctor.name}" doesn't have "Resource" metadata information`);
10
- const schema = cloneObject(metadata);
11
- schema.instance = instance;
12
- schema.name = metadata.name || ctor.name.replace(/(Resource|Controller)$/, '');
13
- if (OpraSchema.isCollectionResource(metadata))
14
- return await processCollectionResource(schema);
15
- if (OpraSchema.isSingletonResource(metadata))
16
- return await processSingletonResource(schema);
17
- throw new TypeError(`Invalid Resource metadata`);
18
- }
19
- async function processCollectionResource(schema) {
20
- const instance = schema.instance;
21
- const proto = Object.getPrototypeOf(schema.instance);
22
- let methodMetadata;
23
- let fn;
24
- const locateFn = (inst, methodName) => {
25
- fn = inst[methodName];
26
- methodMetadata = Reflect.getMetadata(RESOLVER_METADATA, inst, methodName);
27
- if (fn == null) {
28
- if (methodMetadata) {
29
- inst = Object.getPrototypeOf(inst);
30
- fn = inst[methodName];
31
- }
32
- }
33
- };
34
- for (const methodName of collectionMethods) {
35
- locateFn(instance, methodName);
36
- if (typeof fn !== 'function')
37
- continue;
38
- const info = schema[methodName] = {
39
- ...methodMetadata
40
- };
41
- if (!Reflect.hasMetadata(IGNORE_RESOLVER_METHOD, proto.constructor, methodName)) {
42
- info.handler = fn.bind(instance);
43
- fn = instance['pre_' + methodName];
44
- if (typeof fn === 'function')
45
- schema['pre_' + methodName] = fn.bind(instance);
46
- }
47
- }
48
- return schema;
49
- }
50
- async function processSingletonResource(schema) {
51
- const instance = schema.instance;
52
- const proto = Object.getPrototypeOf(schema.instance);
53
- let methodMetadata;
54
- let fn;
55
- const locateFn = (inst, methodName) => {
56
- fn = inst[methodName];
57
- methodMetadata = Reflect.getMetadata(RESOLVER_METADATA, inst, methodName);
58
- if (fn == null) {
59
- if (methodMetadata) {
60
- inst = Object.getPrototypeOf(inst);
61
- fn = inst[methodName];
62
- }
63
- }
64
- };
65
- for (const methodName of singletonMethods) {
66
- locateFn(instance, methodName);
67
- if (typeof fn !== 'function')
68
- continue;
69
- const info = schema[methodName] = {
70
- ...methodMetadata
71
- };
72
- if (!Reflect.hasMetadata(IGNORE_RESOLVER_METHOD, proto.constructor, methodName)) {
73
- info.handler = fn.bind(instance);
74
- fn = instance['pre_' + methodName];
75
- if (typeof fn === 'function')
76
- schema['pre_' + methodName] = fn.bind(instance);
77
- }
78
- }
79
- return schema;
80
- }
@@ -1,4 +0,0 @@
1
- import { Type } from 'ts-gems';
2
- import { OpraSchema } from '../../opra-schema.definition.js';
3
- import { Named } from '../../types.js';
4
- export declare function extractDataTypeSchema(ctor: Type | Function): Promise<Named<OpraSchema.DataType>>;
@@ -1,90 +0,0 @@
1
- import { COMPLEXTYPE_FIELDS, DATATYPE_METADATA, MAPPED_TYPE_METADATA } from '../../constants.js';
2
- import { OpraSchema } from '../../opra-schema.definition.js';
3
- import { cloneObject } from '../../utils/clone-object.util.js';
4
- import { primitiveClasses } from '../data-type/builtin-data-types.js';
5
- const optionalsSymbol = Symbol.for('opra.optional-lib.sqb-connect');
6
- export async function extractDataTypeSchema(ctor) {
7
- const metadata = Reflect.getMetadata(DATATYPE_METADATA, ctor);
8
- if (!metadata)
9
- throw new TypeError(`Class "${ctor}" doesn't have "DataType" metadata information`);
10
- if (OpraSchema.isComplexType(metadata))
11
- return await extractComplexTypeSchema(ctor, metadata);
12
- if (OpraSchema.isSimpleType(metadata))
13
- return await extractSimpleTypeSchema(ctor, metadata);
14
- throw new TypeError(`Invalid DataType metadata`);
15
- }
16
- async function extractSimpleTypeSchema(ctor, metadata) {
17
- const out = cloneObject(metadata);
18
- out.ctor = ctor;
19
- return out;
20
- }
21
- async function extractComplexTypeSchema(ctor, metadata) {
22
- const out = cloneObject(metadata);
23
- out.ctor = ctor;
24
- const mappedTypeMetadata = Reflect.getMetadata(MAPPED_TYPE_METADATA, ctor);
25
- if (mappedTypeMetadata) {
26
- out.extends = [...mappedTypeMetadata.map(x => cloneObject(x))];
27
- }
28
- const fields = Reflect.getMetadata(COMPLEXTYPE_FIELDS, ctor);
29
- if (fields) {
30
- out.fields = cloneObject(fields);
31
- for (const [fieldName, field] of Object.entries(out.fields)) {
32
- if (typeof field.type === 'function') {
33
- const type = primitiveClasses.get(field.type);
34
- if (type)
35
- field.type = type;
36
- }
37
- const SqbConnect = globalThis[optionalsSymbol]?.SqbConnect;
38
- let sqbField;
39
- if (SqbConnect) {
40
- const { EntityMetadata, isAssociationField } = SqbConnect;
41
- const meta = EntityMetadata.get(ctor);
42
- sqbField = meta && EntityMetadata.getField(meta, fieldName);
43
- if (sqbField) {
44
- if (field.type === Function || field.type === 'object' ||
45
- field.type === Object || field.type === 'any') {
46
- field.type = 'any';
47
- if (isAssociationField(sqbField)) {
48
- if (!sqbField.association.returnsMany())
49
- delete field.isArray;
50
- const trg = await sqbField.association.resolveTarget();
51
- if (trg) {
52
- field.type = trg.ctor;
53
- }
54
- }
55
- }
56
- if (sqbField.exclusive && field.exclusive === undefined)
57
- field.exclusive = sqbField.exclusive;
58
- }
59
- }
60
- if (sqbField && sqbField.kind === 'column') {
61
- const DataType = SqbConnect.DataType;
62
- if (field.type === 'number' || field.type === Number) {
63
- switch (sqbField.dataType) {
64
- case DataType.INTEGER:
65
- case DataType.SMALLINT:
66
- field.type = 'integer';
67
- break;
68
- case DataType.BIGINT:
69
- field.type = 'bigint';
70
- break;
71
- }
72
- }
73
- else if (field.type === 'string' || field.type === String) {
74
- switch (sqbField.dataType) {
75
- case DataType.GUID:
76
- field.type = 'guid';
77
- break;
78
- }
79
- }
80
- if (sqbField.notNull && field.required === undefined)
81
- field.required = sqbField.notNull;
82
- if (sqbField.exclusive && field.exclusive === undefined)
83
- field.exclusive = sqbField.exclusive;
84
- if (sqbField.default !== undefined && field.default === undefined)
85
- field.default = sqbField.default;
86
- }
87
- }
88
- }
89
- return out;
90
- }
@@ -1,4 +0,0 @@
1
- import type { FieldGetQueryOptions } from '../implementation/query/index.js';
2
- export interface IChildFieldQuery {
3
- child?: FieldGetQueryOptions;
4
- }
@@ -1,18 +0,0 @@
1
- import { StrictOmit, Type } from 'ts-gems';
2
- import { OpraSchema } from '../opra-schema.definition.js';
3
- import { TypeThunkAsync } from '../types.js';
4
- export type SimpleTypeMetadata = OpraSchema.SimpleType & {
5
- name: string;
6
- };
7
- export type ComplexTypeMetadata = StrictOmit<OpraSchema.ComplexType, 'fields' | 'extends'> & {
8
- name: string;
9
- extends?: ComplexTypeExtendingMetadata[];
10
- fields?: Record<string, FieldMetadata>;
11
- };
12
- export type FieldMetadata = StrictOmit<OpraSchema.Field, 'type'> & {
13
- type?: string | TypeThunkAsync | (string | TypeThunkAsync)[];
14
- };
15
- type ComplexTypeExtendingMetadata = StrictOmit<OpraSchema.ComplexTypeExtendingInfo, 'type'> & {
16
- type: string | Type;
17
- };
18
- export {};
@@ -1,8 +0,0 @@
1
- import { CollectionResourceInfo } from '../implementation/resource/collection-resource-info.js';
2
- import { ResourceInfo } from '../implementation/resource/resource-info.js';
3
- import { SingletonResourceInfo } from '../implementation/resource/singleton-resource-info.js';
4
- export interface IResourceContainer {
5
- getResource<T extends ResourceInfo>(name: string): T;
6
- getCollectionResource(name: string): CollectionResourceInfo;
7
- getSingletonResource(name: string): SingletonResourceInfo;
8
- }
@@ -1,18 +0,0 @@
1
- import { PartialSome, StrictOmit } from 'ts-gems';
2
- import { OpraSchema } from '../opra-schema.definition.js';
3
- import { TypeThunkAsync } from '../types.js';
4
- export type CollectionResourceMetadata = PartialSome<StrictOmit<OpraSchema.CollectionResource, 'type'>, 'keyFields'> & {
5
- type: TypeThunkAsync | string;
6
- name: string;
7
- };
8
- export type SingletonResourceMetadata = StrictOmit<OpraSchema.SingletonResource, 'type'> & {
9
- type: TypeThunkAsync | string;
10
- name: string;
11
- };
12
- export type ICreateResolverMetadata = StrictOmit<OpraSchema.CreateMethodResolver, 'handler'>;
13
- export type IDeleteResolverMetadata = StrictOmit<OpraSchema.DeleteMethodResolver, 'handler'>;
14
- export type IDeleteManyResolverMetadata = StrictOmit<OpraSchema.DeleteManyMethodResolver, 'handler'>;
15
- export type IGetResolverMetadata = StrictOmit<OpraSchema.GetMethodResolver, 'handler'>;
16
- export type IUpdateResolverMetadata = StrictOmit<OpraSchema.UpdateMethodResolver, 'handler'>;
17
- export type IUpdateManyResolverMetadata = StrictOmit<OpraSchema.UpdateManyMethodResolver, 'handler'>;
18
- export type ISearchResolverMetadata = StrictOmit<OpraSchema.SearchMethodResolver, 'handler'>;
@@ -1,178 +0,0 @@
1
- import { Type } from 'ts-gems';
2
- import { ComparisonOperator } from '../filter/index.js';
3
- export declare namespace OpraSchema {
4
- /**
5
- * *** === Constants === ***
6
- */
7
- export const Version = "1.0";
8
- /**
9
- * *** === Type definitions === ***
10
- */
11
- export type Extensible<T = any> = {
12
- [key: `$${string}`]: T;
13
- };
14
- export type ResourceKind = 'ContainerResource' | 'CollectionResource' | 'SingletonResource';
15
- export type DataTypeKind = 'SimpleType' | 'ComplexType' | 'UnionType';
16
- export type SingletonMethod = 'get' | 'create' | 'update' | 'delete';
17
- export type CollectionMethod = SingletonMethod | 'search' | 'count' | 'updateMany' | 'deleteMany';
18
- /**
19
- * *** === Document related === ***
20
- */
21
- export interface Document {
22
- version: string;
23
- info: DocumentInfo;
24
- references?: Record<string, Reference>;
25
- types?: Record<string, DataType>;
26
- resources?: Record<string, Resource>;
27
- servers?: ServerInfo[];
28
- }
29
- export type ServerInfo = Extensible & {
30
- url: string;
31
- description?: string;
32
- };
33
- export type Reference = Extensible & {
34
- url?: string;
35
- document?: Document;
36
- };
37
- export type DocumentInfo = Extensible & {
38
- title: string;
39
- version: string;
40
- description?: string;
41
- termsOfService?: string;
42
- contact?: ContactPerson[];
43
- license?: LicenseInfo;
44
- };
45
- export type ContactPerson = Extensible & {
46
- name?: string;
47
- email?: string;
48
- url?: string;
49
- };
50
- export type LicenseInfo = Extensible & {
51
- name: string;
52
- url?: string;
53
- content?: string;
54
- };
55
- /**
56
- * *** === Data Type related === ***
57
- */
58
- export type DataType = ComplexType | SimpleType | UnionType;
59
- export type BaseDataType = {
60
- kind: DataTypeKind;
61
- description?: string;
62
- ctor?: Type;
63
- parse?: (v: any) => any;
64
- serialize?: (v: any) => any;
65
- };
66
- export interface SimpleType extends BaseDataType {
67
- kind: 'SimpleType';
68
- }
69
- export interface UnionType extends BaseDataType {
70
- kind: 'UnionType';
71
- types: DataType[];
72
- }
73
- export interface ComplexType extends BaseDataType {
74
- kind: 'ComplexType';
75
- description?: string;
76
- abstract?: boolean;
77
- extends?: ComplexTypeExtendingInfo[];
78
- fields?: Record<string, Field>;
79
- additionalFields?: boolean | string | Pick<Field, 'type' | 'format' | 'isArray' | 'enum'>;
80
- }
81
- export interface ComplexTypeExtendingInfo {
82
- type: string;
83
- pick?: string[];
84
- omit?: string[];
85
- }
86
- export type Field = Extensible & {
87
- type: string;
88
- description?: string;
89
- required?: boolean;
90
- isArray?: boolean;
91
- format?: string;
92
- default?: any;
93
- fixed?: string | number;
94
- enum?: string | string[] | Record<string, string>;
95
- enumName?: string;
96
- examples?: any[] | Record<string, any>;
97
- deprecated?: boolean | string;
98
- /**
99
- * If true, this property will not be included in results by default.
100
- * The client side should include the property name in the "include" query parameter.
101
- */
102
- exclusive?: boolean;
103
- };
104
- /**
105
- * *** === Resource related === ***
106
- */
107
- export type Resource = ContainerResource | CollectionResource | SingletonResource;
108
- export interface BaseResource {
109
- kind: ResourceKind;
110
- description?: string;
111
- instance?: {};
112
- }
113
- export interface CollectionResource extends BaseResource {
114
- kind: 'CollectionResource';
115
- type: string;
116
- keyFields: string | string[];
117
- create?: CreateMethodResolver;
118
- count?: CountMethodResolver;
119
- delete?: DeleteMethodResolver;
120
- deleteMany?: DeleteManyMethodResolver;
121
- get?: GetMethodResolver;
122
- update?: UpdateMethodResolver;
123
- updateMany?: UpdateManyMethodResolver;
124
- search?: SearchMethodResolver;
125
- }
126
- export interface SingletonResource extends BaseResource {
127
- kind: 'SingletonResource';
128
- type: string;
129
- create?: CreateMethodResolver;
130
- get?: GetMethodResolver;
131
- update?: UpdateMethodResolver;
132
- delete?: DeleteMethodResolver;
133
- }
134
- export interface ContainerResource extends BaseResource {
135
- kind: 'ContainerResource';
136
- resources: Resource[];
137
- }
138
- export type MethodResolver = {
139
- handler?: Function;
140
- };
141
- type MethodResolverInputOptions = {
142
- inputPick?: string[];
143
- inputOmit?: string[];
144
- };
145
- type MethodResolverOutputOptions = {
146
- outputPick?: string[];
147
- outputOmit?: string[];
148
- };
149
- type MethodResolverFilterOptions = {
150
- filters?: {
151
- field: string;
152
- operators?: ComparisonOperator[];
153
- }[];
154
- };
155
- export type CreateMethodResolver = MethodResolver & MethodResolverInputOptions & MethodResolverOutputOptions;
156
- export type CountMethodResolver = MethodResolver & {};
157
- export type DeleteMethodResolver = MethodResolver & {};
158
- export type DeleteManyMethodResolver = MethodResolver & MethodResolverFilterOptions;
159
- export type GetMethodResolver = MethodResolver & MethodResolverOutputOptions;
160
- export type UpdateMethodResolver = MethodResolver & MethodResolverInputOptions & MethodResolverOutputOptions;
161
- export type UpdateManyMethodResolver = MethodResolver & MethodResolverFilterOptions;
162
- export type SearchMethodResolver = MethodResolver & MethodResolverOutputOptions & {
163
- sortFields?: string[];
164
- defaultSort?: string[];
165
- } & MethodResolverFilterOptions;
166
- /**
167
- * *** === Type Guards === ***
168
- */
169
- export function isDataType(obj: any): obj is DataType;
170
- export function isComplexType(obj: any): obj is ComplexType;
171
- export function isSimpleType(obj: any): obj is SimpleType;
172
- export function isUnionTypee(obj: any): obj is UnionType;
173
- export function isResource(obj: any): obj is Resource;
174
- export function isCollectionResource(obj: any): obj is CollectionResource;
175
- export function isSingletonResource(obj: any): obj is SingletonResource;
176
- export function isContainerResource(obj: any): obj is ContainerResource;
177
- export {};
178
- }
@@ -1,46 +0,0 @@
1
- export var OpraSchema;
2
- (function (OpraSchema) {
3
- /**
4
- * *** === Constants === ***
5
- */
6
- OpraSchema.Version = '1.0';
7
- /**
8
- * *** === Type Guards === ***
9
- */
10
- function isDataType(obj) {
11
- return obj && typeof obj === 'object' &&
12
- (obj.kind === 'ComplexType' || obj.kind === 'SimpleType' || obj.kind === 'UnionType');
13
- }
14
- OpraSchema.isDataType = isDataType;
15
- function isComplexType(obj) {
16
- return obj && typeof obj === 'object' && obj.kind === 'ComplexType';
17
- }
18
- OpraSchema.isComplexType = isComplexType;
19
- function isSimpleType(obj) {
20
- return obj && typeof obj === 'object' && obj.kind === 'SimpleType';
21
- }
22
- OpraSchema.isSimpleType = isSimpleType;
23
- function isUnionTypee(obj) {
24
- return obj && typeof obj === 'object' && obj.kind === 'UnionType';
25
- }
26
- OpraSchema.isUnionTypee = isUnionTypee;
27
- function isResource(obj) {
28
- return obj && typeof obj === 'object' &&
29
- obj.kind === 'ContainerResource' ||
30
- obj.kind === 'CollectionResource' ||
31
- obj.kind === 'SingletonResource';
32
- }
33
- OpraSchema.isResource = isResource;
34
- function isCollectionResource(obj) {
35
- return obj && typeof obj === 'object' && obj.kind === 'CollectionResource';
36
- }
37
- OpraSchema.isCollectionResource = isCollectionResource;
38
- function isSingletonResource(obj) {
39
- return obj && typeof obj === 'object' && obj.kind === 'SingletonResource';
40
- }
41
- OpraSchema.isSingletonResource = isSingletonResource;
42
- function isContainerResource(obj) {
43
- return obj && typeof obj === 'object' && obj.kind === 'ContainerResource';
44
- }
45
- OpraSchema.isContainerResource = isContainerResource;
46
- })(OpraSchema || (OpraSchema = {}));
@@ -1,3 +0,0 @@
1
- import { Class } from 'ts-gems';
2
- export declare function PickType<T extends any[], I1, S1, K extends keyof I1>(classRef: Class<T, I1, S1>, keys: readonly K[]): Class<T, Pick<I1, K>> & Omit<Pick<S1, keyof typeof classRef>, 'prototype' | 'constructor'>;
3
- export declare function OmitType<T extends any[], I1, S1, K extends keyof I1>(classRef: Class<T, I1, S1>, keys: readonly K[]): Class<T, Omit<I1, K>> & Omit<Pick<S1, keyof typeof classRef>, 'prototype' | 'constructor'>;
@@ -1,60 +0,0 @@
1
- import { DATATYPE_METADATA, MAPPED_TYPE_METADATA } from '../constants.js';
2
- import { applyMixins, inheritPropertyInitializers } from './mixin.utils.js';
3
- const optionalsSymbol = Symbol.for('opra.optional-lib.sqb-connect');
4
- export function PickType(classRef, keys) {
5
- return ExtendType(classRef, classRef, { pickKeys: keys });
6
- }
7
- export function OmitType(classRef, keys) {
8
- return ExtendType(classRef, classRef, { omitKeys: keys });
9
- }
10
- function ExtendType(classRef, orgClassRef, options) {
11
- const pickKeys = options.pickKeys && options.pickKeys.map(x => String(x).toLowerCase());
12
- const omitKeys = options.omitKeys && options.omitKeys.map(x => String(x).toLowerCase());
13
- const isInheritedPredicate = (propertyName) => {
14
- if (omitKeys && omitKeys.includes(propertyName.toLowerCase()))
15
- return false;
16
- if (pickKeys)
17
- return pickKeys.includes(propertyName.toLowerCase());
18
- return true;
19
- };
20
- // const isRequiredPredicate = (propertyName: string): boolean | undefined => {
21
- // if (options.requiredKeys && options.requiredKeys.includes(propertyName as RequiredKey))
22
- // return true;
23
- // if (options.partialKeys && options.partialKeys.includes(propertyName as PartialKey))
24
- // return false;
25
- // return;
26
- // };
27
- class MappedClass {
28
- constructor() {
29
- inheritPropertyInitializers(this, classRef, isInheritedPredicate);
30
- }
31
- }
32
- applyMixins(MappedClass, classRef);
33
- const mappedTypeMetadata = [];
34
- const m = Reflect.getOwnMetadata(DATATYPE_METADATA, classRef);
35
- if (m) {
36
- if (!(m.kind === 'ComplexType'))
37
- throw new TypeError(`Class "${classRef}" is not a ComplexType`);
38
- const meta = {
39
- type: classRef
40
- };
41
- if (options.pickKeys)
42
- meta.pick = options.pickKeys;
43
- if (options.omitKeys)
44
- meta.omit = options.omitKeys;
45
- mappedTypeMetadata.push(meta);
46
- }
47
- else
48
- throw new TypeError(`Class "${classRef}" doesn't have datatype metadata information`);
49
- const SqbConnect = globalThis[optionalsSymbol]?.SqbConnect;
50
- if (SqbConnect) {
51
- const { Entity, EntityMetadata } = SqbConnect;
52
- const srcMeta = Entity.getMetadata(classRef);
53
- if (srcMeta) {
54
- const trgMeta = EntityMetadata.define(MappedClass);
55
- EntityMetadata.mixin(trgMeta, srcMeta, k => isInheritedPredicate(k));
56
- }
57
- }
58
- Reflect.defineMetadata(MAPPED_TYPE_METADATA, mappedTypeMetadata, MappedClass);
59
- return MappedClass;
60
- }
@@ -1,2 +0,0 @@
1
- import { Class } from 'ts-gems';
2
- export declare function MixinType<A1 extends any[], I1, S1, A2 extends any[], I2, S2, A3 extends any[], I3, S3, A4 extends any[], I4, S4>(c1: Class<A1, I1, S1>, c2: Class<A2, I2, S2>, c3?: Class<A3, I3, S3>, c4?: Class<A4, I4, S4>): Class<any[], I1 & I2 & I3 & I4, S1 & S2 & S3 & S4>;
@@ -1,42 +0,0 @@
1
- import { DATATYPE_METADATA, MAPPED_TYPE_METADATA } from '../constants.js';
2
- import { applyMixins, inheritPropertyInitializers } from './mixin.utils.js';
3
- const optionalsSymbol = Symbol.for('opra.optional-lib.sqb-connect');
4
- export function MixinType(c1, c2, c3, c4) {
5
- const clasRefs = [...arguments].filter(x => !!x);
6
- if (!clasRefs.length)
7
- throw new TypeError('You must provide base classeses');
8
- if (clasRefs.length === 1)
9
- return clasRefs[0];
10
- class MappedClass {
11
- constructor() {
12
- for (const c of clasRefs)
13
- inheritPropertyInitializers(this, c);
14
- }
15
- }
16
- const mappedTypeMetadata = [];
17
- for (const c of clasRefs) {
18
- const m = Reflect.getOwnMetadata(DATATYPE_METADATA, c);
19
- if (m) {
20
- if (!(m.kind === 'ComplexType'))
21
- throw new TypeError(`Class "${c}" is not a ComplexType`);
22
- mappedTypeMetadata.push({
23
- type: c
24
- });
25
- }
26
- else if (Reflect.hasMetadata(MAPPED_TYPE_METADATA, c)) {
27
- const mtm = Reflect.getMetadata(MAPPED_TYPE_METADATA, c);
28
- if (mtm)
29
- mappedTypeMetadata.push(...mtm);
30
- }
31
- else
32
- throw new TypeError(`Class "${c}" doesn't have datatype metadata information`);
33
- applyMixins(MappedClass, c);
34
- }
35
- const SqbConnect = globalThis[optionalsSymbol]?.SqbConnect;
36
- if (SqbConnect) {
37
- const { Entity } = SqbConnect;
38
- Entity.mixin(MappedClass, ...clasRefs);
39
- }
40
- Reflect.defineMetadata(MAPPED_TYPE_METADATA, mappedTypeMetadata, MappedClass);
41
- return MappedClass;
42
- }
@@ -1,2 +0,0 @@
1
- import { Type } from 'ts-gems';
2
- export declare function isConstructor(obj: any): obj is Type;
@@ -1,4 +0,0 @@
1
- export function isConstructor(obj) {
2
- return typeof obj === 'function' &&
3
- !!(obj.prototype && obj.prototype.constructor);
4
- }
@@ -1,3 +0,0 @@
1
- import { ComplexType } from '../implementation/data-type/complex-type.js';
2
- import type { OpraDocument } from '../implementation/opra-document.js';
3
- export declare function normalizeFieldArray(document: OpraDocument, dataType: ComplexType | undefined, fields: string[], parentPath?: string): string[];