@tstdl/base 0.78.0-beta4 → 0.78.0-beta42

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 (388) hide show
  1. package/api/client/client.d.ts +2 -1
  2. package/api/client/client.js +6 -13
  3. package/api/client/client.js.map +1 -1
  4. package/api/response.js.map +1 -1
  5. package/api/server/gateway.js +7 -5
  6. package/api/server/gateway.js.map +1 -1
  7. package/api/types.d.ts +22 -9
  8. package/api/types.js +1 -2
  9. package/api/types.js.map +1 -1
  10. package/api/utils.d.ts +9 -0
  11. package/api/utils.js +15 -0
  12. package/api/utils.js.map +1 -0
  13. package/application/application.js.map +1 -1
  14. package/container/container.js.map +1 -1
  15. package/container/decorators.d.ts +1 -1
  16. package/container/decorators.js.map +1 -1
  17. package/css/theme/theme.service.js.map +1 -1
  18. package/data-structures/iterable-weak-map.js +1 -1
  19. package/data-structures/iterable-weak-map.js.map +1 -1
  20. package/data-structures/linked-list.js.map +1 -1
  21. package/data-structures/sorted-array-list.js.map +1 -1
  22. package/database/mongo/classes.js.map +1 -1
  23. package/database/mongo/mongo-entity-repository.js +2 -2
  24. package/database/mongo/mongo-entity-repository.js.map +1 -1
  25. package/distributed-loop/distributed-loop.js.map +1 -1
  26. package/distributed-loop/provider.js.map +1 -1
  27. package/enumerable/async-enumerable.d.ts +2 -1
  28. package/enumerable/async-enumerable.js +3 -0
  29. package/enumerable/async-enumerable.js.map +1 -1
  30. package/enumerable/enumerable-methods.d.ts +1 -0
  31. package/enumerable/enumerable.d.ts +1 -0
  32. package/enumerable/enumerable.js +12 -18
  33. package/enumerable/enumerable.js.map +1 -1
  34. package/error/custom.error.d.ts +1 -1
  35. package/error/custom.error.js +8 -6
  36. package/error/custom.error.js.map +1 -1
  37. package/examples/api/basic-overview.js +0 -1
  38. package/examples/api/basic-overview.js.map +1 -1
  39. package/examples/mail/basic.js +12 -7
  40. package/examples/mail/basic.js.map +1 -1
  41. package/examples/mail/templates/hello-name.d.ts +2 -0
  42. package/examples/mail/templates/hello-name.js +11 -0
  43. package/examples/mail/templates/hello-name.js.map +1 -0
  44. package/examples/pdf/basic.js +6 -3
  45. package/examples/pdf/basic.js.map +1 -1
  46. package/examples/pdf/templates/hello-name.d.ts +1 -4
  47. package/examples/pdf/templates/hello-name.js +16 -4
  48. package/examples/pdf/templates/hello-name.js.map +1 -1
  49. package/examples/reflection/basic.js +1 -1
  50. package/examples/reflection/basic.js.map +1 -1
  51. package/http/client/adapters/got-http-client.adapter.js.map +1 -1
  52. package/http/client/adapters/undici-http-client.adapter.js.map +1 -1
  53. package/http/client/adapters/utils.js +20 -8
  54. package/http/client/adapters/utils.js.map +1 -1
  55. package/http/client/http-client-request.d.ts +13 -3
  56. package/http/client/http-client-request.js +4 -0
  57. package/http/client/http-client-request.js.map +1 -1
  58. package/http/client/http-client.d.ts +0 -3
  59. package/http/client/http-client.js +31 -24
  60. package/http/client/http-client.js.map +1 -1
  61. package/http/http-headers.d.ts +2 -0
  62. package/http/http-headers.js +6 -0
  63. package/http/http-headers.js.map +1 -1
  64. package/http/server/node/node-http-server.js.map +1 -1
  65. package/image-service/image-service.js.map +1 -1
  66. package/image-service/imgproxy/imgproxy-image-service.js.map +1 -1
  67. package/key-value-store/mongo/mongo-key-value-store.provider.js.map +1 -1
  68. package/key-value-store/mongo/mongo-key-value.repository.js.map +1 -1
  69. package/key-value-store/mongo/mongo-key-value.store.js.map +1 -1
  70. package/lock/mongo/lock.js.map +1 -1
  71. package/lock/mongo/mongo-lock-repository.js.map +1 -1
  72. package/lock/mongo/provider.js.map +1 -1
  73. package/logger/console/logger.js.map +1 -1
  74. package/mail/clients/nodemailer.mail-client.js.map +1 -1
  75. package/mail/index.d.ts +0 -3
  76. package/mail/index.js +0 -3
  77. package/mail/index.js.map +1 -1
  78. package/mail/mail.service.d.ts +3 -5
  79. package/mail/mail.service.js +8 -14
  80. package/mail/mail.service.js.map +1 -1
  81. package/mail/models/mail-template.model.d.ts +11 -10
  82. package/mail/models/mail-template.model.js +7 -0
  83. package/mail/models/mail-template.model.js.map +1 -1
  84. package/mail/module.d.ts +1 -5
  85. package/mail/module.js +2 -11
  86. package/mail/module.js.map +1 -1
  87. package/mail/repositories/mongo-mail-log.repository.js.map +1 -1
  88. package/mail/tokens.d.ts +0 -3
  89. package/mail/tokens.js +1 -2
  90. package/mail/tokens.js.map +1 -1
  91. package/message-bus/local/local-message-bus-provider.js.map +1 -1
  92. package/message-bus/local/local-message-bus.js.map +1 -1
  93. package/migration/migrator.js.map +1 -1
  94. package/migration/mongo/migration-state-repository.js.map +1 -1
  95. package/module/modules/web-server.module.js.map +1 -1
  96. package/object-storage/s3/s3.object-storage-provider.js.map +1 -1
  97. package/object-storage/s3/s3.object-storage.js.map +1 -1
  98. package/openid-connect/cached-oidc-configuration.service.js.map +1 -1
  99. package/openid-connect/mongo-oidc-state.repository.js.map +1 -1
  100. package/openid-connect/oidc-configuration.service.d.ts +2 -1
  101. package/openid-connect/oidc-configuration.service.js +5 -3
  102. package/openid-connect/oidc-configuration.service.js.map +1 -1
  103. package/openid-connect/oidc.service-model.d.ts +11 -3
  104. package/openid-connect/oidc.service.d.ts +6 -3
  105. package/openid-connect/oidc.service.js +69 -23
  106. package/openid-connect/oidc.service.js.map +1 -1
  107. package/package.json +7 -8
  108. package/pdf/pdf.service.d.ts +48 -10
  109. package/pdf/pdf.service.js +114 -4
  110. package/pdf/pdf.service.js.map +1 -1
  111. package/promise/deferred-promise.d.ts +2 -15
  112. package/promise/deferred-promise.js +5 -10
  113. package/promise/deferred-promise.js.map +1 -1
  114. package/promise/index.d.ts +1 -0
  115. package/promise/index.js +1 -0
  116. package/promise/index.js.map +1 -1
  117. package/promise/lazy-promise.d.ts +11 -0
  118. package/promise/lazy-promise.js +31 -0
  119. package/promise/lazy-promise.js.map +1 -0
  120. package/queue/mongo/mongo-job.repository.js +1 -1
  121. package/queue/mongo/mongo-job.repository.js.map +1 -1
  122. package/queue/mongo/queue.js.map +1 -1
  123. package/queue/mongo/queue.provider.js.map +1 -1
  124. package/reflection/decorator-data.js +1 -1
  125. package/reflection/decorator-data.js.map +1 -1
  126. package/reflection/decorators.d.ts +2 -2
  127. package/reflection/decorators.js +7 -7
  128. package/reflection/decorators.js.map +1 -1
  129. package/reflection/registry.d.ts +8 -8
  130. package/reflection/registry.js +1 -1
  131. package/reflection/registry.js.map +1 -1
  132. package/reflection/types.d.ts +3 -2
  133. package/reflection/utils.d.ts +7 -2
  134. package/reflection/utils.js +38 -12
  135. package/reflection/utils.js.map +1 -1
  136. package/schema/array-constraints/maximum-length.js +2 -2
  137. package/schema/array-constraints/maximum-length.js.map +1 -1
  138. package/schema/array-constraints/minimum-length.js +2 -2
  139. package/schema/array-constraints/minimum-length.js.map +1 -1
  140. package/schema/coercers/default-value.coercer.d.ts +1 -1
  141. package/schema/coercers/default-value.coercer.js +1 -1
  142. package/schema/coercers/default-value.coercer.js.map +1 -1
  143. package/schema/coercers/uint8-array.coercer.js +4 -3
  144. package/schema/coercers/uint8-array.coercer.js.map +1 -1
  145. package/schema/constraints/enumeration.js +2 -2
  146. package/schema/constraints/enumeration.js.map +1 -1
  147. package/schema/constraints/generic.js +2 -2
  148. package/schema/constraints/generic.js.map +1 -1
  149. package/schema/constraints/integer.js +3 -3
  150. package/schema/constraints/integer.js.map +1 -1
  151. package/schema/constraints/literal.js +2 -2
  152. package/schema/constraints/literal.js.map +1 -1
  153. package/schema/constraints/maximum-date.js +3 -3
  154. package/schema/constraints/maximum-date.js.map +1 -1
  155. package/schema/constraints/maximum-length.js +2 -2
  156. package/schema/constraints/maximum-length.js.map +1 -1
  157. package/schema/constraints/maximum.js +3 -3
  158. package/schema/constraints/maximum.js.map +1 -1
  159. package/schema/constraints/minimum-date.js +3 -3
  160. package/schema/constraints/minimum-date.js.map +1 -1
  161. package/schema/constraints/minimum-length.js +2 -2
  162. package/schema/constraints/minimum-length.js.map +1 -1
  163. package/schema/constraints/minimum.js +3 -3
  164. package/schema/constraints/minimum.js.map +1 -1
  165. package/schema/constraints/pattern.js +3 -3
  166. package/schema/constraints/pattern.js.map +1 -1
  167. package/schema/decorators/array.d.ts +2 -2
  168. package/schema/decorators/array.js +1 -1
  169. package/schema/decorators/array.js.map +1 -1
  170. package/schema/decorators/defaulted.d.ts +2 -2
  171. package/schema/decorators/defaulted.js +1 -1
  172. package/schema/decorators/defaulted.js.map +1 -1
  173. package/schema/decorators/optional.d.ts +3 -1
  174. package/schema/decorators/optional.js +2 -2
  175. package/schema/decorators/optional.js.map +1 -1
  176. package/schema/decorators/property.d.ts +1 -1
  177. package/schema/decorators/property.js +3 -1
  178. package/schema/decorators/property.js.map +1 -1
  179. package/schema/decorators/types.d.ts +4 -4
  180. package/schema/decorators/utils.d.ts +3 -2
  181. package/schema/decorators/utils.js +4 -8
  182. package/schema/decorators/utils.js.map +1 -1
  183. package/schema/schema.d.ts +8 -10
  184. package/schema/schema.error.d.ts +1 -0
  185. package/schema/schema.error.js +1 -1
  186. package/schema/schema.error.js.map +1 -1
  187. package/schema/schema.js +131 -164
  188. package/schema/schema.js.map +1 -1
  189. package/schema/schemas/any.d.ts +2 -2
  190. package/schema/schemas/any.js +2 -2
  191. package/schema/schemas/any.js.map +1 -1
  192. package/schema/schemas/array.d.ts +2 -1
  193. package/schema/schemas/array.js +1 -1
  194. package/schema/schemas/array.js.map +1 -1
  195. package/schema/schemas/assign.d.ts +5 -5
  196. package/schema/schemas/boolean.js +2 -2
  197. package/schema/schemas/boolean.js.map +1 -1
  198. package/schema/schemas/date.js +2 -2
  199. package/schema/schemas/date.js.map +1 -1
  200. package/schema/schemas/defaulted.d.ts +3 -2
  201. package/schema/schemas/defaulted.js.map +1 -1
  202. package/schema/schemas/enumeration.js +2 -2
  203. package/schema/schemas/enumeration.js.map +1 -1
  204. package/schema/schemas/exclude.d.ts +4 -1
  205. package/schema/schemas/exclude.js +6 -11
  206. package/schema/schemas/exclude.js.map +1 -1
  207. package/schema/schemas/index.d.ts +2 -0
  208. package/schema/schemas/index.js +2 -0
  209. package/schema/schemas/index.js.map +1 -1
  210. package/schema/schemas/instance.d.ts +2 -2
  211. package/schema/schemas/instance.js +1 -1
  212. package/schema/schemas/instance.js.map +1 -1
  213. package/schema/schemas/literal.js +2 -2
  214. package/schema/schemas/literal.js.map +1 -1
  215. package/schema/schemas/nullable.d.ts +3 -2
  216. package/schema/schemas/nullable.js.map +1 -1
  217. package/schema/schemas/number.d.ts +1 -1
  218. package/schema/schemas/number.js +2 -2
  219. package/schema/schemas/number.js.map +1 -1
  220. package/schema/schemas/object.d.ts +2 -3
  221. package/schema/schemas/object.js.map +1 -1
  222. package/schema/schemas/omit.d.ts +4 -0
  223. package/schema/schemas/omit.js +17 -0
  224. package/schema/schemas/omit.js.map +1 -0
  225. package/schema/schemas/readable-stream.d.ts +2 -2
  226. package/schema/schemas/readable-stream.js +2 -2
  227. package/schema/schemas/readable-stream.js.map +1 -1
  228. package/schema/schemas/record.d.ts +3 -2
  229. package/schema/schemas/record.js.map +1 -1
  230. package/schema/schemas/regexp.js +2 -2
  231. package/schema/schemas/regexp.js.map +1 -1
  232. package/schema/schemas/string.js +2 -2
  233. package/schema/schemas/string.js.map +1 -1
  234. package/schema/schemas/transform.d.ts +3 -2
  235. package/schema/schemas/transform.js.map +1 -1
  236. package/schema/schemas/uint8-array.d.ts +2 -3
  237. package/schema/schemas/uint8-array.js +3 -3
  238. package/schema/schemas/uint8-array.js.map +1 -1
  239. package/schema/schemas/union.d.ts +9 -8
  240. package/schema/schemas/union.js +1 -1
  241. package/schema/schemas/union.js.map +1 -1
  242. package/schema/schemas/unknown.d.ts +2 -2
  243. package/schema/schemas/unknown.js +2 -2
  244. package/schema/schemas/unknown.js.map +1 -1
  245. package/schema/transformers/generic.d.ts +4 -4
  246. package/schema/transformers/generic.js.map +1 -1
  247. package/schema/transformers/lowercase.js +1 -1
  248. package/schema/transformers/lowercase.js.map +1 -1
  249. package/schema/transformers/trim.js +1 -1
  250. package/schema/transformers/trim.js.map +1 -1
  251. package/schema/transformers/uppercase.js +1 -1
  252. package/schema/transformers/uppercase.js.map +1 -1
  253. package/schema/types.d.ts +53 -39
  254. package/schema/types.js +49 -34
  255. package/schema/types.js.map +1 -1
  256. package/schema/utils/schema.d.ts +13 -5
  257. package/schema/utils/schema.js +86 -26
  258. package/schema/utils/schema.js.map +1 -1
  259. package/schema/utils/value-type.d.ts +3 -1
  260. package/schema/utils/value-type.js +32 -2
  261. package/schema/utils/value-type.js.map +1 -1
  262. package/search-index/elastic/config.js.map +1 -1
  263. package/search-index/elastic/model/index-mapping.d.ts +2 -1
  264. package/search-index/elastic/model/index-mapping.js.map +1 -1
  265. package/search-index/elastic/search-index.js +1 -1
  266. package/search-index/elastic/search-index.js.map +1 -1
  267. package/serializer/serializable.d.ts +4 -4
  268. package/serializer/serializable.js.map +1 -1
  269. package/templates/index.d.ts +2 -0
  270. package/templates/index.js +2 -0
  271. package/templates/index.js.map +1 -1
  272. package/templates/module.d.ts +3 -1
  273. package/templates/module.js +31 -8
  274. package/templates/module.js.map +1 -1
  275. package/templates/providers/file.provider-template.d.ts +16 -0
  276. package/templates/providers/{file-template.provider.js → file.provider-template.js} +22 -15
  277. package/templates/providers/file.provider-template.js.map +1 -0
  278. package/templates/providers/memory.template-provider.d.ts +8 -0
  279. package/templates/providers/{memory-template.provider.base.js → memory.template-provider.js} +8 -6
  280. package/templates/providers/memory.template-provider.js.map +1 -0
  281. package/templates/renderers/handlebars.template-renderer.d.ts +38 -6
  282. package/templates/renderers/handlebars.template-renderer.js +47 -3
  283. package/templates/renderers/handlebars.template-renderer.js.map +1 -1
  284. package/templates/renderers/mjml.template-renderer.d.ts +6 -6
  285. package/templates/renderers/mjml.template-renderer.js +8 -9
  286. package/templates/renderers/mjml.template-renderer.js.map +1 -1
  287. package/templates/renderers/string.template-renderer.d.ts +8 -0
  288. package/{mail/template-providers/memory-mail-template.provider.js → templates/renderers/string.template-renderer.js} +13 -7
  289. package/templates/renderers/string.template-renderer.js.map +1 -0
  290. package/templates/resolvers/file.template-resolver.d.ts +23 -0
  291. package/templates/resolvers/file.template-resolver.js +63 -0
  292. package/templates/resolvers/file.template-resolver.js.map +1 -0
  293. package/templates/resolvers/string.template-resolver.d.ts +13 -0
  294. package/templates/resolvers/string.template-resolver.js +44 -0
  295. package/templates/resolvers/string.template-resolver.js.map +1 -0
  296. package/templates/template-renderer.provider.js +7 -19
  297. package/templates/template-renderer.provider.js.map +1 -1
  298. package/templates/template-resolver.provider.d.ts +8 -0
  299. package/templates/template-resolver.provider.js +48 -0
  300. package/templates/template-resolver.provider.js.map +1 -0
  301. package/templates/template.model.d.ts +14 -4
  302. package/templates/template.model.js +42 -0
  303. package/templates/template.model.js.map +1 -1
  304. package/templates/template.renderer.d.ts +14 -3
  305. package/templates/template.renderer.js +3 -0
  306. package/templates/template.renderer.js.map +1 -1
  307. package/templates/template.resolver.d.ts +5 -0
  308. package/templates/template.resolver.js +7 -0
  309. package/templates/template.resolver.js.map +1 -0
  310. package/templates/template.service.d.ts +10 -4
  311. package/templates/template.service.js +19 -6
  312. package/templates/template.service.js.map +1 -1
  313. package/templates/tokens.d.ts +3 -2
  314. package/templates/tokens.js +2 -1
  315. package/templates/tokens.js.map +1 -1
  316. package/types.d.ts +6 -4
  317. package/utils/array/array.d.ts +1 -2
  318. package/utils/array/array.js.map +1 -1
  319. package/utils/async-iterable-helpers/includes.d.ts +2 -0
  320. package/utils/async-iterable-helpers/includes.js +13 -0
  321. package/utils/async-iterable-helpers/includes.js.map +1 -0
  322. package/utils/async-iterable-helpers/index.d.ts +1 -0
  323. package/utils/async-iterable-helpers/index.js +1 -0
  324. package/utils/async-iterable-helpers/index.js.map +1 -1
  325. package/utils/clone.js +4 -0
  326. package/utils/clone.js.map +1 -1
  327. package/utils/compression.d.ts +13 -13
  328. package/utils/compression.js +10 -9
  329. package/utils/compression.js.map +1 -1
  330. package/utils/encoding.js +1 -1
  331. package/utils/encoding.js.map +1 -1
  332. package/utils/enum.js +3 -3
  333. package/utils/enum.js.map +1 -1
  334. package/utils/function/memoize.d.ts +1 -0
  335. package/utils/function/memoize.js +7 -4
  336. package/utils/function/memoize.js.map +1 -1
  337. package/utils/helpers.d.ts +0 -2
  338. package/utils/helpers.js +1 -12
  339. package/utils/helpers.js.map +1 -1
  340. package/utils/index.d.ts +1 -0
  341. package/utils/index.js +1 -0
  342. package/utils/index.js.map +1 -1
  343. package/utils/iterable-helpers/includes.d.ts +1 -0
  344. package/utils/iterable-helpers/includes.js +9 -0
  345. package/utils/iterable-helpers/includes.js.map +1 -0
  346. package/utils/iterable-helpers/index.d.ts +1 -0
  347. package/utils/iterable-helpers/index.js +1 -0
  348. package/utils/iterable-helpers/index.js.map +1 -1
  349. package/utils/object/property-name.d.ts +2 -2
  350. package/utils/throw.d.ts +2 -0
  351. package/utils/throw.js +15 -0
  352. package/utils/throw.js.map +1 -0
  353. package/utils/type-guards.d.ts +13 -1
  354. package/utils/type-guards.js +29 -5
  355. package/utils/type-guards.js.map +1 -1
  356. package/web-types.d.ts +28 -0
  357. package/web-types.js +3 -0
  358. package/web-types.js.map +1 -0
  359. package/mail/mail-template-renderer.provider.d.ts +0 -8
  360. package/mail/mail-template-renderer.provider.js +0 -60
  361. package/mail/mail-template-renderer.provider.js.map +0 -1
  362. package/mail/mail-template.provider.d.ts +0 -4
  363. package/mail/mail-template.provider.js +0 -7
  364. package/mail/mail-template.provider.js.map +0 -1
  365. package/mail/mail-template.renderer.d.ts +0 -10
  366. package/mail/mail-template.renderer.js +0 -7
  367. package/mail/mail-template.renderer.js.map +0 -1
  368. package/mail/template-providers/file-mail-template.provider.d.ts +0 -24
  369. package/mail/template-providers/file-mail-template.provider.js +0 -51
  370. package/mail/template-providers/file-mail-template.provider.js.map +0 -1
  371. package/mail/template-providers/memory-mail-template.provider.d.ts +0 -6
  372. package/mail/template-providers/memory-mail-template.provider.js.map +0 -1
  373. package/mail/template-renderers/handlebars.mail-template-renderer.d.ts +0 -13
  374. package/mail/template-renderers/handlebars.mail-template-renderer.js +0 -49
  375. package/mail/template-renderers/handlebars.mail-template-renderer.js.map +0 -1
  376. package/mail/template-renderers/mjml.mail-template-renderer.d.ts +0 -14
  377. package/mail/template-renderers/mjml.mail-template-renderer.js +0 -63
  378. package/mail/template-renderers/mjml.mail-template-renderer.js.map +0 -1
  379. package/templates/providers/file-template.provider.base.d.ts +0 -12
  380. package/templates/providers/file-template.provider.base.js +0 -50
  381. package/templates/providers/file-template.provider.base.js.map +0 -1
  382. package/templates/providers/file-template.provider.d.ts +0 -22
  383. package/templates/providers/file-template.provider.js.map +0 -1
  384. package/templates/providers/memory-template.provider.base.d.ts +0 -9
  385. package/templates/providers/memory-template.provider.base.js.map +0 -1
  386. package/templates/providers/memory-template.provider.d.ts +0 -4
  387. package/templates/providers/memory-template.provider.js +0 -18
  388. package/templates/providers/memory-template.provider.js.map +0 -1
package/schema/types.d.ts CHANGED
@@ -1,33 +1,40 @@
1
1
  import type { JsonPath } from "../json-path/json-path";
2
2
  import type { AbstractConstructor, OneOrMany, Record, Type, TypedOmit } from "../types";
3
- import type { Schema, SchemaTestable } from './schema';
3
+ import type { NormalizedSchema, Schema, SchemaTestable } from './schema';
4
4
  import type { SchemaError } from './schema.error';
5
5
  declare const schemaOutputTypeSymbol: unique symbol;
6
- export declare type SchemaFactoryFunction<T extends Record, O = T> = (data: T) => NormalizeValueType<O>;
7
- export declare type SchemaFactory<T extends Record, O = T> = {
6
+ export declare type SchemaFactoryFunction<T, O = T> = (data: T) => NormalizeValueType<O>;
7
+ export declare type SchemaFactory<T, O = T> = {
8
8
  type: Type<T>;
9
9
  builder?: undefined;
10
10
  } | {
11
11
  type?: undefined;
12
12
  builder: SchemaFactoryFunction<T, O>;
13
13
  };
14
- export declare type ObjectSchemaProperties<T extends Record> = {
15
- [K in keyof T]-?: OneOrMany<ValueType<T[K]>>;
14
+ export declare type ObjectSchemaProperties<T> = {
15
+ [K in keyof T]-?: OneOrMany<Schema<any, T[K]>>;
16
16
  };
17
17
  export declare type NormalizedObjectSchemaProperties<T> = {
18
- [K in keyof T]: Schema<T[K]>;
18
+ [K in keyof T]-?: Schema<any, T[K]>;
19
19
  };
20
- export declare type SchemaOutput<T extends SchemaTestable> = T extends ObjectSchema<any, infer O> ? O : T extends ValueSchema<any, infer O> ? O : T extends TypeSchema ? InstanceType<T> : never;
21
- export declare type ObjectSchema<T extends Record = any, O extends Record = T> = {
20
+ export declare type SchemaOutput<T extends Schema> = T extends ObjectSchema<any, infer O> ? O : T extends ValueSchema<any, infer O> ? O : T extends TypeSchema<infer O> ? O : never;
21
+ export declare type ObjectSchema<T = any, O = T> = {
22
22
  [schemaOutputTypeSymbol]?: O;
23
+ sourceType?: ValueType;
23
24
  factory?: SchemaFactory<T, O>;
24
25
  properties: ObjectSchemaProperties<T>;
25
26
  mask?: boolean;
26
- allowUnknownProperties?: OneOrMany<ValueType>;
27
+ allowUnknownProperties?: OneOrMany<SchemaTestable>;
28
+ };
29
+ export declare type TypeSchema<T = any> = {
30
+ type: ValueType<T>;
31
+ };
32
+ export declare type NormalizedTypeSchema<T = any> = {
33
+ foo: ResolvedValueType<T>;
27
34
  };
28
- export declare type TypeSchema<T = any, O = T> = AbstractConstructor<T & O>;
29
35
  export declare type ValueSchema<T = unknown, O = T> = {
30
- type: OneOrMany<ValueType<T, O>>;
36
+ [schemaOutputTypeSymbol]?: O;
37
+ schema: OneOrMany<SchemaTestable<T, O>>;
31
38
  array?: boolean;
32
39
  optional?: boolean;
33
40
  nullable?: boolean;
@@ -39,7 +46,7 @@ export declare type ValueSchema<T = unknown, O = T> = {
39
46
  arrayConstraints?: OneOrMany<SchemaArrayConstraint>;
40
47
  valueConstraints?: OneOrMany<SchemaValueConstraint>;
41
48
  };
42
- export declare type NormalizedObjectSchema<T extends Record = any, O extends Record = T> = {
49
+ export declare type NormalizedObjectSchema<T = any, O = T> = {
43
50
  [schemaOutputTypeSymbol]?: O;
44
51
  factory?: SchemaFactory<T, O>;
45
52
  properties: NormalizedObjectSchemaProperties<T>;
@@ -48,7 +55,7 @@ export declare type NormalizedObjectSchema<T extends Record = any, O extends Rec
48
55
  };
49
56
  export declare type NormalizedValueSchema<T = any, O = T> = {
50
57
  [schemaOutputTypeSymbol]?: O;
51
- type: Set<ResolvedValueType<T, O>>;
58
+ schema: Set<Schema<T, O>>;
52
59
  array: boolean;
53
60
  optional: boolean;
54
61
  nullable: boolean;
@@ -59,25 +66,25 @@ export declare type NormalizedValueSchema<T = any, O = T> = {
59
66
  valueConstraints: readonly SchemaValueConstraint[];
60
67
  };
61
68
  export declare type SchemaContext = {
62
- schema: NormalizedValueSchema;
69
+ schema: NormalizedSchema;
63
70
  options: SchemaTestOptions;
64
71
  };
65
72
  export declare type ConstraintContext = SchemaContext;
66
73
  export declare type TransformerContext = SchemaContext;
67
74
  export declare type CoercerContext = SchemaContext;
68
- export declare type NormalizeValueType<T> = T extends String ? string : T extends Number ? number : T extends Boolean ? boolean : T extends BigInt ? bigint : T extends Symbol ? symbol : T extends 'undefined' ? undefined : T extends 'null' ? null : T;
69
- export declare type NormalizeToValueType<T> = T extends string ? typeof String : T extends number ? typeof Number : T extends boolean ? typeof Boolean : T extends bigint ? typeof BigInt : T extends symbol ? typeof Symbol : T extends undefined ? 'undefined' : T extends null ? 'null' : never;
70
- export declare type ValueType<T = any, O = T> = Schema<T, O> | TypeSchema<T, O> | NormalizeToValueType<T> | DeferredValueType<T, O> | 'undefined' | 'null' | 'any';
71
- export declare type DeferredValueType<T = unknown, O = T> = {
72
- deferred: () => ValueType<T, O>;
73
- };
74
- export declare type ResolvedValueType<T = unknown, O = T> = Exclude<ValueType<T, O>, DeferredValueType>;
75
- export declare type ValueTypeOutput<T extends ValueType | DeferredValueType> = T extends (ValueType<infer _, infer O> | DeferredValueType<infer _, infer O>) ? NormalizeValueType<O> : never;
75
+ export declare type NormalizeValueType<T> = T extends String ? string : T extends Number ? number : T extends Boolean ? boolean : T extends BigInt ? bigint : T extends Symbol ? symbol : T extends 'undefined' ? undefined : T extends 'null' ? null : T extends 'any' ? any : T;
76
+ export declare type NormalizeToValueType<T> = T extends string | String ? typeof String : T extends number ? typeof Number : T extends boolean ? typeof Boolean : T extends bigint ? typeof BigInt : T extends symbol ? typeof Symbol : T extends undefined ? 'undefined' : T extends null ? 'null' : T extends any ? 'any' : never;
77
+ export declare type ValueType<T = any> = AbstractConstructor<T> | NormalizeToValueType<T> | DeferredValueType<T>;
78
+ export declare type DeferredValueType<T = unknown> = {
79
+ deferred: () => ValueType<T>;
80
+ };
81
+ export declare type ResolvedValueType<T = unknown> = Exclude<ValueType<T>, DeferredValueType>;
82
+ export declare type ValueTypeOutput<T extends ValueType> = T extends ValueType<infer U> ? NormalizeValueType<U> : never;
76
83
  export declare type Coercible = {
77
84
  coerce?: boolean;
78
85
  };
79
- export declare const primitiveValueTypes: ValueType[];
80
- export declare const primitiveValueTypesSet: Set<ValueType<any, any>>;
86
+ export declare const primitiveConstructors: ValueType[];
87
+ export declare const primitiveConstructorSet: Set<ValueType<any>>;
81
88
  export declare abstract class SchemaArrayConstraint {
82
89
  abstract validate(value: readonly unknown[], path: JsonPath, context: ConstraintContext): ConstraintResult;
83
90
  }
@@ -88,7 +95,7 @@ export declare abstract class SchemaValueConstraint {
88
95
  abstract validate(value: unknown, path: JsonPath, context: ConstraintContext): ConstraintResult;
89
96
  }
90
97
  export declare abstract class SchemaValueTransformer<T = any, O = T, TransformOutput = O> {
91
- abstract readonly sourceType: OneOrMany<ValueType<T, O>>;
98
+ abstract readonly sourceType: OneOrMany<ValueType<T>>;
92
99
  abstract readonly targetType: ValueType<TransformOutput>;
93
100
  abstract transform(value: O, path: JsonPath, context: TransformerContext): TransformResult<TransformOutput>;
94
101
  }
@@ -110,19 +117,19 @@ export declare type SchemaTestOptions = {
110
117
  mask?: boolean;
111
118
  };
112
119
  export declare type SchemaTestResult<T> = {
113
- success: true;
120
+ valid: true;
114
121
  value: T;
115
122
  error?: undefined;
116
123
  } | {
117
- success: false;
124
+ valid: false;
118
125
  value?: undefined;
119
126
  error: SchemaError;
120
127
  };
121
128
  export declare type ConstraintResult = {
122
- success: true;
129
+ valid: true;
123
130
  error?: undefined;
124
131
  } | {
125
- success: false;
132
+ valid: false;
126
133
  error: SchemaError;
127
134
  };
128
135
  export declare type CoerceResult = {
@@ -143,14 +150,21 @@ export declare type TransformResult<T> = {
143
150
  value?: undefined;
144
151
  error: SchemaError;
145
152
  };
146
- export declare function objectSchema<T, O = T>(schema: ObjectSchema<T, O>): ObjectSchema<T, O>;
147
- export declare function valueSchema<T, O = T>(type: ValueSchema<T, O>['type'], options?: TypedOmit<ValueSchema<T, O>, 'type'>): ValueSchema<T, O>;
148
- export declare function isSchema<T, O>(value: ValueType<T, O>): value is Schema<T, O>;
149
- export declare function isObjectSchema<T extends Record, O extends Record>(value: ValueType<T, O>): value is ObjectSchema<T, O>;
150
- export declare function isValueSchema<T, O>(value: ValueType<T, O>): value is ValueSchema<T, O>;
151
- export declare function isDeferredValueType<T, O>(value: ValueType<T, O>): value is DeferredValueType<T, O>;
152
- export declare function deferrableValueTypesToValueTypes<T, O>(valueTypes: OneOrMany<ValueType<T, O>>): OneOrMany<ResolvedValueType<T, O>>;
153
- export declare function deferrableValueTypeToResolvedValueTypes<T, O>(valueType: ValueType<T, O>): ResolvedValueType<T, O>;
154
- export declare function valueTypeToSchema<T, O>(valueType: ValueType<T, O>): Schema<T, O>;
155
- export declare function valueTypesToSchema<T, O>(valueType: OneOrMany<ValueType<T, O>>): Schema<T, O>;
153
+ export declare function objectSchemaProperties<T extends Record>(properties: ObjectSchemaProperties<T>): ObjectSchemaProperties<T>;
154
+ export declare function objectSchema<T extends Record, O extends Record = T>(schema: ObjectSchema<T, O>): ObjectSchema<T, O>;
155
+ export declare function valueSchema<T, O = T>(schema: OneOrMany<Schema<T, O>>, options?: TypedOmit<ValueSchema<T, O>, 'schema'>): ValueSchema<T, O>;
156
+ export declare function typeSchema<T>(type: ValueType<T>): TypeSchema<NormalizeValueType<T>>;
157
+ export declare function isSchema<T, O>(value: any): value is Schema<T, O>;
158
+ export declare function isObjectSchema<T extends Record, O extends Record>(schema: Schema<T, O>): schema is ObjectSchema<T, O>;
159
+ export declare function isObjectSchema<T extends Record, O extends Record>(schema: any): schema is ObjectSchema<T, O>;
160
+ export declare function isValueSchema<T, O>(schema: Schema<T, O>): schema is ValueSchema<T, O>;
161
+ export declare function isValueSchema<T, O>(schema: any): schema is ValueSchema<T, O>;
162
+ export declare function isTypeSchema<T, O>(schema: Schema<T, O>): schema is TypeSchema<O>;
163
+ export declare function isTypeSchema<T, O>(schema: any): schema is TypeSchema<O>;
164
+ export declare function isDeferredValueType<T>(value: ValueType<T>): value is DeferredValueType<T>;
165
+ export declare function isDeferredValueType(value: any): value is DeferredValueType;
166
+ export declare function resolveValueTypes<T>(valueTypes: OneOrMany<ValueType<T>>): OneOrMany<ResolvedValueType<T>>;
167
+ export declare function resolveValueType<T>(valueType: ValueType<T>): ResolvedValueType<T>;
168
+ export declare function valueTypesOrSchemasToSchemas<T, O>(valueTypesOrSchemas: OneOrMany<ValueType<O> | Schema<T, O>>): OneOrMany<Schema<T, O>>;
169
+ export declare function valueTypeOrSchemaToSchema<T, O>(valueTypeOrSchema: ValueType<O> | Schema<T, O>): Schema<T, O>;
156
170
  export {};
package/schema/types.js CHANGED
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  /* eslint-disable @typescript-eslint/ban-types */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.valueTypesToSchema = exports.valueTypeToSchema = exports.deferrableValueTypeToResolvedValueTypes = exports.deferrableValueTypesToValueTypes = exports.isDeferredValueType = exports.isValueSchema = exports.isObjectSchema = exports.isSchema = exports.valueSchema = exports.objectSchema = exports.SchemaValueCoercer = exports.SchemaValueTransformer = exports.SchemaValueConstraint = exports.SchemaArrayConstraint = exports.primitiveValueTypesSet = exports.primitiveValueTypes = void 0;
4
+ exports.valueTypeOrSchemaToSchema = exports.valueTypesOrSchemasToSchemas = exports.resolveValueType = exports.resolveValueTypes = exports.isDeferredValueType = exports.isTypeSchema = exports.isValueSchema = exports.isObjectSchema = exports.isSchema = exports.typeSchema = exports.valueSchema = exports.objectSchema = exports.objectSchemaProperties = exports.SchemaValueCoercer = exports.SchemaValueTransformer = exports.SchemaValueConstraint = exports.SchemaArrayConstraint = exports.primitiveConstructorSet = exports.primitiveConstructors = void 0;
5
+ const object_1 = require("../utils/object/object");
5
6
  const type_guards_1 = require("../utils/type-guards");
6
- exports.primitiveValueTypes = [String, Number, Boolean, BigInt, Symbol, Function, 'undefined', 'null'];
7
- exports.primitiveValueTypesSet = new Set(exports.primitiveValueTypes);
7
+ exports.primitiveConstructors = [String, Number, Boolean, Symbol, BigInt, Function, 'undefined', 'null'];
8
+ exports.primitiveConstructorSet = new Set(exports.primitiveConstructors);
8
9
  class SchemaArrayConstraint {
9
10
  }
10
11
  exports.SchemaArrayConstraint = SchemaArrayConstraint;
@@ -17,61 +18,75 @@ exports.SchemaValueTransformer = SchemaValueTransformer;
17
18
  class SchemaValueCoercer {
18
19
  }
19
20
  exports.SchemaValueCoercer = SchemaValueCoercer;
21
+ function objectSchemaProperties(properties) {
22
+ return (0, object_1.filterObject)(properties, type_guards_1.isDefined);
23
+ }
24
+ exports.objectSchemaProperties = objectSchemaProperties;
20
25
  function objectSchema(schema) {
21
- return schema;
26
+ return (0, object_1.filterObject)(schema, type_guards_1.isDefined);
22
27
  }
23
28
  exports.objectSchema = objectSchema;
24
- function valueSchema(type, options) {
25
- return { type, ...options };
29
+ function valueSchema(schema, options) {
30
+ return (0, object_1.filterObject)({ schema, ...options }, type_guards_1.isDefined);
26
31
  }
27
32
  exports.valueSchema = valueSchema;
33
+ function typeSchema(type) {
34
+ return { type };
35
+ }
36
+ exports.typeSchema = typeSchema;
28
37
  function isSchema(value) {
29
- return isObjectSchema(value) || isValueSchema(value);
38
+ return isObjectSchema(value) || isValueSchema(value) || isTypeSchema(value);
30
39
  }
31
40
  exports.isSchema = isSchema;
32
- function isObjectSchema(value) {
33
- return (0, type_guards_1.isObject)(value?.properties);
41
+ function isObjectSchema(schema) {
42
+ return (0, type_guards_1.isObject)(schema?.properties);
34
43
  }
35
44
  exports.isObjectSchema = isObjectSchema;
36
- function isValueSchema(value) {
37
- return (0, type_guards_1.isObject)(value) && (0, type_guards_1.isDefined)(value?.type);
45
+ function isValueSchema(schema) {
46
+ return (0, type_guards_1.isObject)(schema) && (0, type_guards_1.isDefined)(schema?.schema);
38
47
  }
39
48
  exports.isValueSchema = isValueSchema;
49
+ function isTypeSchema(schema) {
50
+ if (!(0, type_guards_1.isObject)(schema)) {
51
+ return false;
52
+ }
53
+ const type = schema.type;
54
+ return (0, type_guards_1.isObject)(schema)
55
+ && ((0, type_guards_1.isFunction)(type)
56
+ || (type == 'undefined')
57
+ || (type == 'null')
58
+ || (type == 'any'));
59
+ }
60
+ exports.isTypeSchema = isTypeSchema;
40
61
  function isDeferredValueType(value) {
41
62
  return (0, type_guards_1.isObject)(value) && (0, type_guards_1.isFunction)(value.deferred);
42
63
  }
43
64
  exports.isDeferredValueType = isDeferredValueType;
44
- function deferrableValueTypesToValueTypes(valueTypes) {
65
+ function resolveValueTypes(valueTypes) {
45
66
  if ((0, type_guards_1.isArray)(valueTypes)) {
46
- return valueTypes.flatMap((valueType) => deferrableValueTypesToValueTypes(valueType));
67
+ return valueTypes.flatMap((valueType) => resolveValueTypes(valueType));
47
68
  }
48
- return deferrableValueTypeToResolvedValueTypes(valueTypes);
69
+ return resolveValueType(valueTypes);
49
70
  }
50
- exports.deferrableValueTypesToValueTypes = deferrableValueTypesToValueTypes;
51
- function deferrableValueTypeToResolvedValueTypes(valueType) {
71
+ exports.resolveValueTypes = resolveValueTypes;
72
+ function resolveValueType(valueType) {
52
73
  return isDeferredValueType(valueType)
53
- ? deferrableValueTypeToResolvedValueTypes(valueType.deferred())
74
+ ? resolveValueType(valueType.deferred())
54
75
  : valueType;
55
76
  }
56
- exports.deferrableValueTypeToResolvedValueTypes = deferrableValueTypeToResolvedValueTypes;
57
- function valueTypeToSchema(valueType) {
58
- if ((0, type_guards_1.isFunction)(valueType) || (0, type_guards_1.isString)(valueType)) {
59
- return valueSchema(valueType);
60
- }
61
- if (isDeferredValueType(valueType)) {
62
- return valueTypeToSchema(valueType.deferred());
77
+ exports.resolveValueType = resolveValueType;
78
+ function valueTypesOrSchemasToSchemas(valueTypesOrSchemas) {
79
+ if ((0, type_guards_1.isArray)(valueTypesOrSchemas)) {
80
+ return valueTypesOrSchemas.map(valueTypeOrSchemaToSchema);
63
81
  }
64
- return valueType;
82
+ return valueTypeOrSchemaToSchema(valueTypesOrSchemas);
65
83
  }
66
- exports.valueTypeToSchema = valueTypeToSchema;
67
- function valueTypesToSchema(valueType) {
68
- if ((0, type_guards_1.isFunction)(valueType) || (0, type_guards_1.isArray)(valueType) || (0, type_guards_1.isString)(valueType)) {
69
- return valueSchema(valueType);
70
- }
71
- if (isDeferredValueType(valueType)) {
72
- return valueTypeToSchema(valueType);
84
+ exports.valueTypesOrSchemasToSchemas = valueTypesOrSchemasToSchemas;
85
+ function valueTypeOrSchemaToSchema(valueTypeOrSchema) {
86
+ if (isSchema(valueTypeOrSchema)) {
87
+ return valueTypeOrSchema;
73
88
  }
74
- return valueType;
89
+ return typeSchema(valueTypeOrSchema);
75
90
  }
76
- exports.valueTypesToSchema = valueTypesToSchema;
91
+ exports.valueTypeOrSchemaToSchema = valueTypeOrSchemaToSchema;
77
92
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../source/schema/types.ts"],"names":[],"mappings":";AAAA,iDAAiD;;;AAIjD,sDAAyF;AA0G5E,QAAA,mBAAmB,GAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AAC5G,QAAA,sBAAsB,GAAG,IAAI,GAAG,CAAC,2BAAmB,CAAC,CAAC;AAEnE,MAAsB,qBAAqB;CAE1C;AAFD,sDAEC;AAID,MAAsB,qBAAqB;CAK1C;AALD,sDAKC;AAED,MAAsB,sBAAsB;CAK3C;AALD,wDAKC;AAED,MAAsB,kBAAkB;CAKvC;AALD,gDAKC;AAgCD,SAAgB,YAAY,CAAW,MAA0B;IAC/D,OAAO,MAAM,CAAC;AAChB,CAAC;AAFD,oCAEC;AAED,SAAgB,WAAW,CAAW,IAA+B,EAAE,OAA8C;IACnH,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AAC9B,CAAC;AAFD,kCAEC;AAED,SAAgB,QAAQ,CAAO,KAAsB;IACnD,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAFD,4BAEC;AAED,SAAgB,cAAc,CAAqC,KAAsB;IACvF,OAAO,IAAA,sBAAQ,EAAE,KAA2C,EAAE,UAAU,CAAC,CAAC;AAC5E,CAAC;AAFD,wCAEC;AAED,SAAgB,aAAa,CAAO,KAAsB;IACxD,OAAO,IAAA,sBAAQ,EAAC,KAAK,CAAC,IAAI,IAAA,uBAAS,EAAE,KAA0C,EAAE,IAAI,CAAC,CAAC;AACzF,CAAC;AAFD,sCAEC;AAED,SAAgB,mBAAmB,CAAO,KAAsB;IAC9D,OAAO,IAAA,sBAAQ,EAAC,KAAK,CAAC,IAAI,IAAA,wBAAU,EAAE,KAA2B,CAAC,QAAQ,CAAC,CAAC;AAC9E,CAAC;AAFD,kDAEC;AAED,SAAgB,gCAAgC,CAAO,UAAsC;IAC3F,IAAI,IAAA,qBAAO,EAAC,UAAU,CAAC,EAAE;QACvB,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC,CAAC;KACvF;IAED,OAAO,uCAAuC,CAAC,UAAU,CAAC,CAAC;AAC7D,CAAC;AAND,4EAMC;AAED,SAAgB,uCAAuC,CAAO,SAA0B;IACtF,OAAO,mBAAmB,CAAC,SAAS,CAAC;QACnC,CAAC,CAAC,uCAAuC,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC/D,CAAC,CAAC,SAAoC,CAAC;AAC3C,CAAC;AAJD,0FAIC;AAED,SAAgB,iBAAiB,CAAO,SAA0B;IAChE,IAAI,IAAA,wBAAU,EAAC,SAAS,CAAC,IAAI,IAAA,sBAAQ,EAAC,SAAS,CAAC,EAAE;QAChD,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;KAC/B;IAED,IAAI,mBAAmB,CAAC,SAAS,CAAC,EAAE;QAClC,OAAO,iBAAiB,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;KAChD;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAVD,8CAUC;AAED,SAAgB,kBAAkB,CAAO,SAAqC;IAC5E,IAAI,IAAA,wBAAU,EAAC,SAAS,CAAC,IAAI,IAAA,qBAAO,EAAC,SAAS,CAAC,IAAI,IAAA,sBAAQ,EAAC,SAAS,CAAC,EAAE;QACtE,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;KAC/B;IAED,IAAI,mBAAmB,CAAC,SAAS,CAAC,EAAE;QAClC,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC;KACrC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAVD,gDAUC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../source/schema/types.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,16 @@
1
- import type { NormalizedObjectSchema, NormalizedValueSchema, ObjectSchema, ValueSchema } from '../types';
2
- export declare const normalizeSchema: typeof _normalizeObjectSchema;
1
+ import type { AbstractConstructor } from "../../types";
2
+ import type { NormalizedSchema, Schema } from '../schema';
3
+ import type { NormalizedObjectSchema, NormalizedTypeSchema, NormalizedValueSchema, ObjectSchema, TypeSchema, ValueSchema } from '../types';
4
+ export declare const normalizeSchema: typeof _normalizeSchema;
5
+ export declare const normalizeObjectSchema: typeof _normalizeObjectSchema;
3
6
  export declare const normalizeValueSchema: typeof _normalizeValueSchema;
7
+ export declare const normalizeTypeSchema: typeof _normalizeTypeSchema;
4
8
  export declare const getArrayItemSchema: typeof _getArrayItemSchema;
5
- export declare function _normalizeObjectSchema<T, O>(objectSchema: ObjectSchema<T, O>): NormalizedObjectSchema<T, O>;
6
- export declare function _normalizeValueSchema<T, O>(valueSchema: ValueSchema<T, O>): NormalizedValueSchema<T, O>;
7
- declare function _getArrayItemSchema<T, O>(valueSchema: ValueSchema<T, O>): ValueSchema<T, O>;
9
+ export declare const getSchemaFromReflection: typeof _getObjectSchemaFromReflection;
10
+ declare function _normalizeSchema<T, O>(schema: Schema<T, O>): NormalizedSchema<T, O>;
11
+ declare function _normalizeObjectSchema<T, O>(schema: ObjectSchema<T, O>): NormalizedObjectSchema<T, O>;
12
+ declare function _normalizeValueSchema<T, O>(schema: ValueSchema<T, O>): NormalizedValueSchema<T, O>;
13
+ declare function _normalizeTypeSchema<T>(schema: TypeSchema<T>): NormalizedTypeSchema<T>;
14
+ declare function _getArrayItemSchema<T, O>(schema: ValueSchema<T, O>): ValueSchema<T, O>;
15
+ declare function _getObjectSchemaFromReflection<T>(type: AbstractConstructor<T>): ObjectSchema<T> | null;
8
16
  export {};
@@ -1,37 +1,53 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports._normalizeValueSchema = exports._normalizeObjectSchema = exports.getArrayItemSchema = exports.normalizeValueSchema = exports.normalizeSchema = void 0;
3
+ exports.getSchemaFromReflection = exports.getArrayItemSchema = exports.normalizeTypeSchema = exports.normalizeValueSchema = exports.normalizeObjectSchema = exports.normalizeSchema = void 0;
4
+ const registry_1 = require("../../reflection/registry");
4
5
  const array_1 = require("../../utils/array/array");
5
6
  const memoize_1 = require("../../utils/function/memoize");
6
7
  const object_1 = require("../../utils/object/object");
8
+ const type_guards_1 = require("../../utils/type-guards");
9
+ const assign_1 = require("../schemas/assign");
7
10
  const types_1 = require("../types");
8
- exports.normalizeSchema = (0, memoize_1.memoizeSingle)(_normalizeObjectSchema, { weak: true });
11
+ exports.normalizeSchema = (0, memoize_1.memoizeSingle)(_normalizeSchema, { weak: true });
12
+ exports.normalizeObjectSchema = (0, memoize_1.memoizeSingle)(_normalizeObjectSchema, { weak: true });
9
13
  exports.normalizeValueSchema = (0, memoize_1.memoizeSingle)(_normalizeValueSchema, { weak: true });
14
+ exports.normalizeTypeSchema = (0, memoize_1.memoizeSingle)(_normalizeTypeSchema, { weak: true });
10
15
  exports.getArrayItemSchema = (0, memoize_1.memoizeSingle)(_getArrayItemSchema, { weak: true });
11
- function _normalizeObjectSchema(objectSchema) {
12
- const normalizedObjectSchema = {
13
- factory: objectSchema.factory,
14
- properties: (0, object_1.mapObjectValues)(objectSchema.properties, types_1.valueTypesToSchema),
15
- mask: objectSchema.mask,
16
- allowUnknownProperties: new Set((0, array_1.toArray)(objectSchema.allowUnknownProperties ?? []).map(types_1.valueTypesToSchema))
16
+ exports.getSchemaFromReflection = (0, memoize_1.memoizeSingle)(_getObjectSchemaFromReflection, { weak: true });
17
+ function _normalizeSchema(schema) {
18
+ if ((0, types_1.isObjectSchema)(schema)) {
19
+ return (0, exports.normalizeObjectSchema)(schema);
20
+ }
21
+ if ((0, types_1.isValueSchema)(schema)) {
22
+ return (0, exports.normalizeValueSchema)(schema);
23
+ }
24
+ if ((0, types_1.isTypeSchema)(schema)) {
25
+ return (0, exports.normalizeTypeSchema)(schema);
26
+ }
27
+ throw new Error('Unsupported schema.');
28
+ }
29
+ function _normalizeObjectSchema(schema) {
30
+ const normalizedSchema = {
31
+ factory: schema.factory,
32
+ properties: (0, object_1.mapObjectValues)(schema.properties, (propertyValueType) => ((0, type_guards_1.isArray)(propertyValueType) ? (0, types_1.valueSchema)(propertyValueType) : propertyValueType)),
33
+ mask: schema.mask,
34
+ allowUnknownProperties: new Set((0, array_1.toArray)(schema.allowUnknownProperties ?? []).map(types_1.valueTypeOrSchemaToSchema))
17
35
  };
18
- return normalizedObjectSchema;
36
+ return normalizedSchema;
19
37
  }
20
- exports._normalizeObjectSchema = _normalizeObjectSchema;
21
- function _normalizeValueSchema(valueSchema) {
22
- const valueTypes = (0, array_1.toArray)((0, types_1.deferrableValueTypesToValueTypes)(valueSchema.type));
38
+ function _normalizeValueSchema(schema) {
23
39
  const normalizedValueSchema = {
24
- type: new Set(valueTypes),
25
- array: valueSchema.array ?? false,
26
- optional: valueSchema.optional ?? false,
27
- nullable: valueSchema.nullable ?? false,
28
- coerce: valueSchema.coerce ?? false,
40
+ schema: new Set((0, array_1.toArray)(schema.schema).map(types_1.valueTypeOrSchemaToSchema)),
41
+ array: schema.array ?? false,
42
+ optional: schema.optional ?? false,
43
+ nullable: schema.nullable ?? false,
44
+ coerce: schema.coerce ?? false,
29
45
  coercers: new Map(),
30
- transformers: (0, array_1.toArray)(valueSchema.transformers ?? []),
31
- arrayConstraints: (0, array_1.toArray)(valueSchema.arrayConstraints ?? []),
32
- valueConstraints: (0, array_1.toArray)(valueSchema.valueConstraints ?? [])
46
+ transformers: (0, array_1.toArray)(schema.transformers ?? []),
47
+ arrayConstraints: (0, array_1.toArray)(schema.arrayConstraints ?? []),
48
+ valueConstraints: (0, array_1.toArray)(schema.valueConstraints ?? [])
33
49
  };
34
- for (const coercer of (0, array_1.toArray)(valueSchema.coercers ?? [])) {
50
+ for (const coercer of (0, array_1.toArray)(schema.coercers ?? [])) {
35
51
  for (const sourceType of (0, array_1.toArray)(coercer.sourceType)) {
36
52
  if (!normalizedValueSchema.coercers.has(sourceType)) {
37
53
  normalizedValueSchema.coercers.set(sourceType, []);
@@ -41,16 +57,60 @@ function _normalizeValueSchema(valueSchema) {
41
57
  }
42
58
  return normalizedValueSchema;
43
59
  }
44
- exports._normalizeValueSchema = _normalizeValueSchema;
45
- function _getArrayItemSchema(valueSchema) {
60
+ function _normalizeTypeSchema(schema) {
61
+ const normalizedSchema = {
62
+ foo: (0, types_1.resolveValueType)(schema.type)
63
+ };
64
+ return normalizedSchema;
65
+ }
66
+ function _getArrayItemSchema(schema) {
46
67
  const itemSchema = {
47
- type: valueSchema.type,
68
+ schema: schema.schema,
48
69
  array: false,
49
70
  optional: false,
50
71
  nullable: false,
51
- transformers: valueSchema.transformers,
52
- valueConstraints: valueSchema.valueConstraints
72
+ transformers: schema.transformers,
73
+ valueConstraints: schema.valueConstraints
53
74
  };
54
75
  return itemSchema;
55
76
  }
77
+ function _getObjectSchemaFromReflection(type) {
78
+ const metadata = registry_1.reflectionRegistry.getMetadata(type);
79
+ if (!metadata.registered) {
80
+ return null;
81
+ }
82
+ const typeData = metadata.data.tryGet('schema');
83
+ const properties = {};
84
+ for (const [key, propertyMetadata] of metadata.properties) {
85
+ const reflectionData = propertyMetadata.data.tryGet('schema');
86
+ const itemType = reflectionData?.schema;
87
+ const array = (reflectionData?.array == true) ? true : undefined;
88
+ if (array && ((0, type_guards_1.isUndefined)(itemType) || ((0, type_guards_1.isArray)(itemType) && (itemType.length == 0)))) {
89
+ throw new Error(`Item type missing on type ${type.name} at property "${String(key)}"`);
90
+ }
91
+ properties[key] = (0, types_1.valueSchema)((0, types_1.valueTypesOrSchemasToSchemas)(itemType ?? propertyMetadata.type), {
92
+ array,
93
+ optional: reflectionData?.optional,
94
+ nullable: reflectionData?.nullable,
95
+ coerce: reflectionData?.coerce,
96
+ coercers: reflectionData?.coercers,
97
+ transformers: reflectionData?.transformers,
98
+ arrayConstraints: reflectionData?.arrayConstraints,
99
+ valueConstraints: reflectionData?.valueConstraints
100
+ });
101
+ }
102
+ const schema = (0, types_1.objectSchema)({
103
+ sourceType: type,
104
+ factory: (0, type_guards_1.isDefined)(typeData?.factory) ? { builder: typeData.factory } : { type: type },
105
+ properties,
106
+ mask: typeData?.mask,
107
+ allowUnknownProperties: ((0, type_guards_1.isUndefined)(typeData?.allowUnknownProperties) || ((0, type_guards_1.isArray)(typeData?.allowUnknownProperties) && (typeData?.allowUnknownProperties.length == 0))) ? undefined : typeData?.allowUnknownProperties
108
+ });
109
+ const prototype = Reflect.getPrototypeOf(type);
110
+ if ((0, type_guards_1.isNotNull)(prototype) && registry_1.reflectionRegistry.hasType(prototype)) {
111
+ const parentSchema = (0, exports.getSchemaFromReflection)(prototype);
112
+ return (0, assign_1.assign)(parentSchema, schema);
113
+ }
114
+ return schema;
115
+ }
56
116
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../source/schema/utils/schema.ts"],"names":[],"mappings":";;;AAAA,mDAA8C;AAC9C,0DAAyD;AACzD,sDAAwD;AAExD,oCAAgF;AAEnE,QAAA,eAAe,GAAG,IAAA,uBAAa,EAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACxE,QAAA,oBAAoB,GAAG,IAAA,uBAAa,EAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5E,QAAA,kBAAkB,GAAG,IAAA,uBAAa,EAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAErF,SAAgB,sBAAsB,CAAO,YAAgC;IAC3E,MAAM,sBAAsB,GAAiC;QAC3D,OAAO,EAAE,YAAY,CAAC,OAAO;QAC7B,UAAU,EAAE,IAAA,wBAAe,EAAC,YAAY,CAAC,UAAU,EAAE,0BAAkB,CAAmD;QAC1H,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,sBAAsB,EAAE,IAAI,GAAG,CAAC,IAAA,eAAO,EAAC,YAAY,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,0BAAkB,CAAC,CAAC;KAC5G,CAAC;IAEF,OAAO,sBAAsB,CAAC;AAChC,CAAC;AATD,wDASC;AAED,SAAgB,qBAAqB,CAAO,WAA8B;IACxE,MAAM,UAAU,GAAG,IAAA,eAAO,EAAC,IAAA,wCAAgC,EAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAE/E,MAAM,qBAAqB,GAAgC;QACzD,IAAI,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC;QACzB,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,KAAK;QACjC,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAAI,KAAK;QACvC,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAAI,KAAK;QACvC,MAAM,EAAE,WAAW,CAAC,MAAM,IAAI,KAAK;QACnC,QAAQ,EAAE,IAAI,GAAG,EAAE;QACnB,YAAY,EAAE,IAAA,eAAO,EAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC;QACrD,gBAAgB,EAAE,IAAA,eAAO,EAAC,WAAW,CAAC,gBAAgB,IAAI,EAAE,CAAC;QAC7D,gBAAgB,EAAE,IAAA,eAAO,EAAC,WAAW,CAAC,gBAAgB,IAAI,EAAE,CAAC;KAC9D,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,IAAA,eAAO,EAAC,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE;QACzD,KAAK,MAAM,UAAU,IAAI,IAAA,eAAO,EAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACpD,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;gBACnD,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;aACpD;YAED,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC/D;KACF;IAED,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AA1BD,sDA0BC;AAED,SAAS,mBAAmB,CAAO,WAA8B;IAC/D,MAAM,UAAU,GAAsB;QACpC,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,WAAW,CAAC,YAAY;QACtC,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;KAC/C,CAAC;IAEF,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../source/schema/utils/schema.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import type { SchemaTestable } from '../schema';
1
2
  import type { ResolvedValueType, ValueType } from '../types';
2
- export declare function getValueType(value: unknown): ResolvedValueType;
3
+ export declare function getValueType(value: unknown): ResolvedValueType<any>;
3
4
  export declare function getValueTypeName(valueType: ValueType): string;
5
+ export declare function getSchemaTypeNames(schema: SchemaTestable): string[];
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getValueTypeName = exports.getValueType = void 0;
3
+ exports.getSchemaTypeNames = exports.getValueTypeName = exports.getValueType = void 0;
4
+ const array_1 = require("../../utils/array/array");
4
5
  const type_guards_1 = require("../../utils/type-guards");
6
+ const types_1 = require("../types");
5
7
  function getValueType(value) {
6
8
  if ((0, type_guards_1.isUndefined)(value)) {
7
9
  return 'undefined';
@@ -13,7 +15,35 @@ function getValueType(value) {
13
15
  }
14
16
  exports.getValueType = getValueType;
15
17
  function getValueTypeName(valueType) {
16
- return (0, type_guards_1.isString)(valueType) ? valueType : (0, type_guards_1.isFunction)(valueType) ? valueType.name : 'object';
18
+ const resolvedValueType = (0, types_1.resolveValueType)(valueType);
19
+ return (0, type_guards_1.isString)(resolvedValueType)
20
+ ? resolvedValueType
21
+ : resolvedValueType.name;
17
22
  }
18
23
  exports.getValueTypeName = getValueTypeName;
24
+ function getSchemaTypeNames(schema) {
25
+ if ((0, types_1.isTypeSchema)(schema)) {
26
+ const name = getValueTypeName(schema.type);
27
+ return [name];
28
+ }
29
+ if ((0, type_guards_1.isFunction)(schema)) {
30
+ const name = getValueTypeName(schema);
31
+ return [name];
32
+ }
33
+ if ((0, type_guards_1.isString)(schema)) {
34
+ return [schema];
35
+ }
36
+ if ((0, types_1.isObjectSchema)(schema)) {
37
+ const name = getValueTypeName(schema.sourceType ?? Object);
38
+ return [name];
39
+ }
40
+ if ((0, types_1.isValueSchema)(schema)) {
41
+ return [...new Set((0, array_1.toArray)(schema.schema).flatMap(getSchemaTypeNames))];
42
+ }
43
+ if ((0, types_1.isDeferredValueType)(schema)) {
44
+ return getSchemaTypeNames((0, types_1.resolveValueType)(schema));
45
+ }
46
+ throw new Error('Unsupported schema');
47
+ }
48
+ exports.getSchemaTypeNames = getSchemaTypeNames;
19
49
  //# sourceMappingURL=value-type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"value-type.js","sourceRoot":"","sources":["../../../source/schema/utils/value-type.ts"],"names":[],"mappings":";;;AACA,yDAAgF;AAGhF,SAAgB,YAAY,CAAC,KAAc;IACzC,IAAI,IAAA,yBAAW,EAAC,KAAK,CAAC,EAAE;QACtB,OAAO,WAAW,CAAC;KACpB;IAED,IAAI,IAAA,oBAAM,EAAC,KAAK,CAAC,EAAE;QACjB,OAAO,MAAM,CAAC;KACf;IAED,OAAQ,KAAgB,CAAC,WAAmB,CAAC;AAC/C,CAAC;AAVD,oCAUC;AAED,SAAgB,gBAAgB,CAAC,SAAoB;IACnD,OAAO,IAAA,sBAAQ,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,wBAAU,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC7F,CAAC;AAFD,4CAEC"}
1
+ {"version":3,"file":"value-type.js","sourceRoot":"","sources":["../../../source/schema/utils/value-type.ts"],"names":[],"mappings":";;;AACA,mDAA8C;AAC9C,yDAAgF;AAGhF,oCAA8G;AAE9G,SAAgB,YAAY,CAAC,KAAc;IACzC,IAAI,IAAA,yBAAW,EAAC,KAAK,CAAC,EAAE;QACtB,OAAO,WAAW,CAAC;KACpB;IAED,IAAI,IAAA,oBAAM,EAAC,KAAK,CAAC,EAAE;QACjB,OAAO,MAAM,CAAC;KACf;IAED,OAAQ,KAAgB,CAAC,WAAkC,CAAC;AAC9D,CAAC;AAVD,oCAUC;AAED,SAAgB,gBAAgB,CAAC,SAAoB;IACnD,MAAM,iBAAiB,GAAG,IAAA,wBAAgB,EAAC,SAAS,CAAC,CAAC;IAEtD,OAAO,IAAA,sBAAQ,EAAC,iBAAiB,CAAC;QAChC,CAAC,CAAC,iBAAiB;QACnB,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC7B,CAAC;AAND,4CAMC;AAED,SAAgB,kBAAkB,CAAC,MAAsB;IACvD,IAAI,IAAA,oBAAY,EAAC,MAAM,CAAC,EAAE;QACxB,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC;KACf;IAED,IAAI,IAAA,wBAAU,EAAC,MAAM,CAAC,EAAE;QACtB,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC;KACf;IAED,IAAI,IAAA,sBAAQ,EAAC,MAAM,CAAC,EAAE;QACpB,OAAO,CAAC,MAAM,CAAC,CAAC;KACjB;IAED,IAAI,IAAA,sBAAc,EAAC,MAAM,CAAC,EAAE;QAC1B,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC;KACf;IAED,IAAI,IAAA,qBAAa,EAAC,MAAM,CAAC,EAAE;QACzB,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,IAAA,eAAO,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;KACzE;IAED,IAAI,IAAA,2BAAmB,EAAC,MAAM,CAAC,EAAE;QAC/B,OAAO,kBAAkB,CAAC,IAAA,wBAAgB,EAAC,MAAM,CAAC,CAAC,CAAC;KACrD;IAED,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;AACxC,CAAC;AA7BD,gDA6BC"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../source/search-index/elastic/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,+CAAyE;AAEzE,yDAA+C;AAK/C,IAAsB,wBAAwB,GAA9C,MAAsB,wBAAwB;IAI5C,YAAyB,iBAAuD;QAC9E,IAAI,CAAC,SAAS,GAAG,IAAA,sBAAQ,EAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC;IACjG,CAAC;CACF,CAAA;AAPqB,wBAAwB;IAD7C,IAAA,sBAAU,GAAE;IAKE,WAAA,IAAA,qBAAS,GAAE,CAAA;;GAJJ,wBAAwB,CAO7C;AAPqB,4DAAwB"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../source/search-index/elastic/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,+CAAyE;AAEzE,yDAA+C;AAKxC,IAAe,wBAAwB,GAAvC,MAAe,wBAAwB;IAI5C,YAAyB,iBAAuD;QAC9E,IAAI,CAAC,SAAS,GAAG,IAAA,sBAAQ,EAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC;IACjG,CAAC;CACF,CAAA;AAPqB,wBAAwB;IAD7C,IAAA,sBAAU,GAAE;IAKE,WAAA,IAAA,qBAAS,GAAE,CAAA;;GAJJ,wBAAwB,CAO7C;AAPqB,4DAAwB"}
@@ -1,6 +1,6 @@
1
1
  import type { Entity } from "../../../database";
2
2
  import type { DeepFlatten, StringMap, TypedOmit } from "../../../types";
3
- import type { MappingBooleanProperty, MappingDateProperty, MappingGeoPointProperty, MappingKeywordProperty, MappingNestedProperty, MappingNumberProperty, MappingObjectProperty, MappingPropertyBase, MappingTextProperty, MappingTypeMapping } from '@elastic/elasticsearch/lib/api/types';
3
+ import type { MappingBooleanProperty, MappingByteNumberProperty, MappingDateProperty, MappingDoubleNumberProperty, MappingFloatNumberProperty, MappingGeoPointProperty, MappingHalfFloatNumberProperty, MappingIntegerNumberProperty, MappingKeywordProperty, MappingLongNumberProperty, MappingNestedProperty, MappingObjectProperty, MappingPropertyBase, MappingScaledFloatNumberProperty, MappingShortNumberProperty, MappingTextProperty, MappingTypeMapping, MappingUnsignedLongNumberProperty } from '@elastic/elasticsearch/lib/api/types';
4
4
  export declare type ElasticIndexMapping<T extends Entity = Entity> = TypedOmit<MappingTypeMapping, 'properties'> & ElasticNestedIndexMapping<TypedOmit<T, 'id'>>;
5
5
  export declare type ElasticNestedIndexMapping<T> = {
6
6
  properties: {
@@ -12,6 +12,7 @@ declare type ElasticIndexMappingItemBase = {
12
12
  index?: boolean;
13
13
  fields?: StringMap<ElasticIndexMappingItem>;
14
14
  };
15
+ export declare type MappingNumberProperty = MappingByteNumberProperty | MappingDoubleNumberProperty | MappingFloatNumberProperty | MappingHalfFloatNumberProperty | MappingIntegerNumberProperty | MappingLongNumberProperty | MappingShortNumberProperty | MappingScaledFloatNumberProperty | MappingUnsignedLongNumberProperty;
15
16
  export declare type ElasticKeywordIndexMappingItem = ElasticIndexMappingItemBase & StrippedBaseType<MappingKeywordProperty>;
16
17
  export declare type ElasticTextIndexMappingItem = ElasticIndexMappingItemBase & StrippedBaseType<MappingTextProperty>;
17
18
  export declare type ElasticNumberIndexMappingItem = ElasticIndexMappingItemBase & StrippedBaseType<MappingNumberProperty>;
@@ -1 +1 @@
1
- {"version":3,"file":"index-mapping.js","sourceRoot":"","sources":["../../../../source/search-index/elastic/model/index-mapping.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAIzD,uDAAoD;AA0CpD,SAAgB,0BAA0B,CAAmB,QAAkC;IAC7F,OAAO,IAAA,oBAAY,EAAC,QAAQ,CAAC,CAAC;AAChC,CAAC;AAFD,gEAEC"}
1
+ {"version":3,"file":"index-mapping.js","sourceRoot":"","sources":["../../../../source/search-index/elastic/model/index-mapping.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAIzD,uDAAoD;AAqDpD,SAAgB,0BAA0B,CAAmB,QAAkC;IAC7F,OAAO,IAAA,oBAAY,EAAC,QAAQ,CAAC,CAAC;AAChC,CAAC;AAFD,gEAEC"}
@@ -138,6 +138,6 @@ function deserializeCursor(cursor) {
138
138
  }
139
139
  function convertError(error, raw) {
140
140
  const cause = ((0, type_guards_1.isDefined)(error.caused_by)) ? convertError(error.caused_by) : undefined;
141
- return new search_index_1.SearchIndexError(error.type, error.reason, { raw, cause });
141
+ return new search_index_1.SearchIndexError(error.type, error.reason ?? 'No error message provided.', { raw, cause });
142
142
  }
143
143
  //# sourceMappingURL=search-index.js.map