@tstdl/base 0.78.0-beta7 → 0.78.0-beta70

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 (550) hide show
  1. package/api/client/client.d.ts +2 -1
  2. package/api/client/client.js +38 -16
  3. package/api/client/client.js.map +1 -1
  4. package/api/response.js +3 -2
  5. package/api/response.js.map +1 -1
  6. package/api/server/api-controller.js +1 -1
  7. package/api/server/api-controller.js.map +1 -1
  8. package/api/server/gateway.d.ts +15 -3
  9. package/api/server/gateway.js +53 -37
  10. package/api/server/gateway.js.map +1 -1
  11. package/api/server/middlewares/allowed-methods.middleware.js +1 -1
  12. package/api/server/middlewares/allowed-methods.middleware.js.map +1 -1
  13. package/api/server/middlewares/cors.middleware.d.ts +6 -4
  14. package/api/server/middlewares/cors.middleware.js +30 -30
  15. package/api/server/middlewares/cors.middleware.js.map +1 -1
  16. package/api/types.d.ts +36 -14
  17. package/api/types.js +1 -2
  18. package/api/types.js.map +1 -1
  19. package/api/utils.d.ts +9 -0
  20. package/api/utils.js +15 -0
  21. package/api/utils.js.map +1 -0
  22. package/application/application.d.ts +2 -0
  23. package/application/application.js +3 -0
  24. package/application/application.js.map +1 -1
  25. package/collections/awaitable/awaitable-list.js +7 -7
  26. package/collections/awaitable/awaitable-list.js.map +1 -1
  27. package/collections/observable/observable-array.js +1 -1
  28. package/collections/observable/observable-array.js.map +1 -1
  29. package/collections/observable/observable-list-base.js +2 -2
  30. package/collections/observable/observable-list-base.js.map +1 -1
  31. package/collections/observable/observable-sorted-array-list.js +3 -3
  32. package/collections/observable/observable-sorted-array-list.js.map +1 -1
  33. package/collections/sorted-array-list.js +3 -3
  34. package/collections/sorted-array-list.js.map +1 -1
  35. package/collections/sorted-map.js +1 -1
  36. package/collections/sorted-map.js.map +1 -1
  37. package/container/container.js +19 -21
  38. package/container/container.js.map +1 -1
  39. package/container/decorators.d.ts +1 -1
  40. package/container/decorators.js.map +1 -1
  41. package/container/resolve-chain.d.ts +2 -1
  42. package/container/resolve-chain.js +6 -2
  43. package/container/resolve-chain.js.map +1 -1
  44. package/core.js +1 -1
  45. package/core.js.map +1 -1
  46. package/css/theme/theme.service.js.map +1 -1
  47. package/data-structures/index-out-of-bounds.error.d.ts +1 -1
  48. package/data-structures/index-out-of-bounds.error.js +2 -2
  49. package/data-structures/index-out-of-bounds.error.js.map +1 -1
  50. package/data-structures/iterable-weak-map.js +1 -1
  51. package/data-structures/iterable-weak-map.js.map +1 -1
  52. package/data-structures/linked-list.js.map +1 -1
  53. package/data-structures/sorted-array-list.js +2 -2
  54. package/data-structures/sorted-array-list.js.map +1 -1
  55. package/database/mongo/classes.js.map +1 -1
  56. package/database/mongo/mongo-base.repository.js +3 -3
  57. package/database/mongo/mongo-base.repository.js.map +1 -1
  58. package/database/mongo/mongo-entity-repository.js +2 -2
  59. package/database/mongo/mongo-entity-repository.js.map +1 -1
  60. package/distributed-loop/distributed-loop.js.map +1 -1
  61. package/distributed-loop/provider.js.map +1 -1
  62. package/environment.d.ts +10 -0
  63. package/environment.js +26 -0
  64. package/environment.js.map +1 -0
  65. package/error/custom.error.d.ts +7 -3
  66. package/error/custom.error.js +17 -8
  67. package/error/custom.error.js.map +1 -1
  68. package/error/index.d.ts +1 -0
  69. package/error/index.js +1 -0
  70. package/error/index.js.map +1 -1
  71. package/error/max-bytes-exceeded.error.d.ts +1 -0
  72. package/error/max-bytes-exceeded.error.js +3 -0
  73. package/error/max-bytes-exceeded.error.js.map +1 -1
  74. package/error/not-implemented.error.js +1 -1
  75. package/error/not-implemented.error.js.map +1 -1
  76. package/error/not-supported.error.d.ts +7 -0
  77. package/error/not-supported.error.js +17 -0
  78. package/error/not-supported.error.js.map +1 -0
  79. package/error/unsupported-media-type.error.js +1 -1
  80. package/error/unsupported-media-type.error.js.map +1 -1
  81. package/examples/api/basic-overview.js +17 -25
  82. package/examples/api/basic-overview.js.map +1 -1
  83. package/examples/api/streaming.d.ts +1 -0
  84. package/examples/api/streaming.js +79 -0
  85. package/examples/api/streaming.js.map +1 -0
  86. package/examples/mail/basic.js +12 -7
  87. package/examples/mail/basic.js.map +1 -1
  88. package/examples/mail/templates/hello-name.d.ts +2 -0
  89. package/examples/mail/templates/hello-name.js +11 -0
  90. package/examples/mail/templates/hello-name.js.map +1 -0
  91. package/examples/pdf/basic.js +8 -5
  92. package/examples/pdf/basic.js.map +1 -1
  93. package/examples/pdf/templates/hello-name.d.ts +1 -4
  94. package/examples/pdf/templates/hello-name.js +30 -4
  95. package/examples/pdf/templates/hello-name.js.map +1 -1
  96. package/examples/reflection/basic.js +1 -1
  97. package/examples/reflection/basic.js.map +1 -1
  98. package/examples/template/basic.d.ts +1 -0
  99. package/examples/template/basic.js +25 -0
  100. package/examples/template/basic.js.map +1 -0
  101. package/examples/template/templates/hello-name.d.ts +2 -0
  102. package/examples/template/templates/hello-name.js +23 -0
  103. package/examples/template/templates/hello-name.js.map +1 -0
  104. package/http/client/adapters/undici-http-client.adapter.d.ts +1 -2
  105. package/http/client/adapters/undici-http-client.adapter.js +10 -12
  106. package/http/client/adapters/undici-http-client.adapter.js.map +1 -1
  107. package/http/client/http-client-request.d.ts +24 -14
  108. package/http/client/http-client-request.js +4 -2
  109. package/http/client/http-client-request.js.map +1 -1
  110. package/http/client/http-client-response.d.ts +10 -12
  111. package/http/client/http-client-response.js +5 -1
  112. package/http/client/http-client-response.js.map +1 -1
  113. package/http/client/http-client.adapter.d.ts +1 -2
  114. package/http/client/http-client.adapter.js.map +1 -1
  115. package/http/client/http-client.d.ts +30 -31
  116. package/http/client/http-client.js +107 -74
  117. package/http/client/http-client.js.map +1 -1
  118. package/http/http-body.d.ts +19 -0
  119. package/http/http-body.js +52 -0
  120. package/http/http-body.js.map +1 -0
  121. package/http/http-headers.d.ts +3 -0
  122. package/http/http-headers.js +6 -0
  123. package/http/http-headers.js.map +1 -1
  124. package/http/http-value-map.js +2 -2
  125. package/http/http-value-map.js.map +1 -1
  126. package/http/http.error.d.ts +5 -2
  127. package/http/http.error.js +27 -5
  128. package/http/http.error.js.map +1 -1
  129. package/http/index.d.ts +2 -0
  130. package/http/index.js +2 -0
  131. package/http/index.js.map +1 -1
  132. package/http/server/http-server-request.d.ts +5 -10
  133. package/http/server/http-server-request.js +3 -30
  134. package/http/server/http-server-request.js.map +1 -1
  135. package/http/server/http-server-response.d.ts +4 -4
  136. package/http/server/node/node-http-server.js +2 -1
  137. package/http/server/node/node-http-server.js.map +1 -1
  138. package/http/types.d.ts +1 -11
  139. package/http/types.js +1 -2
  140. package/http/types.js.map +1 -1
  141. package/http/utils.d.ts +15 -0
  142. package/http/utils.js +113 -0
  143. package/http/utils.js.map +1 -0
  144. package/image-service/image-service.js.map +1 -1
  145. package/image-service/imgproxy/imgproxy-image-service.js.map +1 -1
  146. package/json-path/json-path.d.ts +8 -5
  147. package/json-path/json-path.js +15 -1
  148. package/json-path/json-path.js.map +1 -1
  149. package/key-value-store/mongo/mongo-key-value-store.provider.js.map +1 -1
  150. package/key-value-store/mongo/mongo-key-value.repository.js.map +1 -1
  151. package/key-value-store/mongo/mongo-key-value.store.js.map +1 -1
  152. package/lock/mongo/lock.js.map +1 -1
  153. package/lock/mongo/mongo-lock-repository.js.map +1 -1
  154. package/lock/mongo/provider.js.map +1 -1
  155. package/logger/console/logger.js +1 -1
  156. package/logger/console/logger.js.map +1 -1
  157. package/logger/logger.d.ts +2 -2
  158. package/mail/clients/nodemailer.mail-client.js.map +1 -1
  159. package/mail/index.d.ts +0 -3
  160. package/mail/index.js +0 -3
  161. package/mail/index.js.map +1 -1
  162. package/mail/mail.service.d.ts +3 -5
  163. package/mail/mail.service.js +8 -14
  164. package/mail/mail.service.js.map +1 -1
  165. package/mail/models/mail-template.model.d.ts +11 -10
  166. package/mail/models/mail-template.model.js +7 -0
  167. package/mail/models/mail-template.model.js.map +1 -1
  168. package/mail/module.d.ts +1 -5
  169. package/mail/module.js +2 -11
  170. package/mail/module.js.map +1 -1
  171. package/mail/repositories/mongo-mail-log.repository.js.map +1 -1
  172. package/mail/tokens.d.ts +0 -3
  173. package/mail/tokens.js +1 -2
  174. package/mail/tokens.js.map +1 -1
  175. package/message-bus/local/local-message-bus-provider.js.map +1 -1
  176. package/message-bus/local/local-message-bus.js.map +1 -1
  177. package/migration/migrator.js.map +1 -1
  178. package/migration/mongo/migration-state-repository.js.map +1 -1
  179. package/module/modules/web-server.module.js.map +1 -1
  180. package/object-storage/s3/s3.object-storage-provider.js.map +1 -1
  181. package/object-storage/s3/s3.object-storage.js.map +1 -1
  182. package/openid-connect/cached-oidc-configuration.service.js.map +1 -1
  183. package/openid-connect/mongo-oidc-state.repository.js.map +1 -1
  184. package/openid-connect/oidc-configuration.service.d.ts +2 -1
  185. package/openid-connect/oidc-configuration.service.js +5 -3
  186. package/openid-connect/oidc-configuration.service.js.map +1 -1
  187. package/openid-connect/oidc.service-model.d.ts +11 -3
  188. package/openid-connect/oidc.service.d.ts +6 -3
  189. package/openid-connect/oidc.service.js +72 -25
  190. package/openid-connect/oidc.service.js.map +1 -1
  191. package/package.json +12 -11
  192. package/pdf/pdf.service.d.ts +91 -12
  193. package/pdf/pdf.service.js +209 -29
  194. package/pdf/pdf.service.js.map +1 -1
  195. package/pool/pool.d.ts +6 -1
  196. package/pool/pool.js +4 -1
  197. package/pool/pool.js.map +1 -1
  198. package/promise/deferred-promise.d.ts +2 -15
  199. package/promise/deferred-promise.js +5 -10
  200. package/promise/deferred-promise.js.map +1 -1
  201. package/promise/index.d.ts +1 -0
  202. package/promise/index.js +1 -0
  203. package/promise/index.js.map +1 -1
  204. package/promise/lazy-promise.d.ts +11 -0
  205. package/promise/lazy-promise.js +31 -0
  206. package/promise/lazy-promise.js.map +1 -0
  207. package/queue/mongo/mongo-job.repository.js +1 -1
  208. package/queue/mongo/mongo-job.repository.js.map +1 -1
  209. package/queue/mongo/queue.js.map +1 -1
  210. package/queue/mongo/queue.provider.js.map +1 -1
  211. package/reflection/decorator-data.js +1 -1
  212. package/reflection/decorator-data.js.map +1 -1
  213. package/reflection/decorators.d.ts +2 -2
  214. package/reflection/decorators.js +7 -7
  215. package/reflection/decorators.js.map +1 -1
  216. package/reflection/registry.d.ts +8 -8
  217. package/reflection/registry.js +1 -1
  218. package/reflection/registry.js.map +1 -1
  219. package/reflection/types.d.ts +3 -2
  220. package/reflection/utils.d.ts +7 -2
  221. package/reflection/utils.js +38 -12
  222. package/reflection/utils.js.map +1 -1
  223. package/require.d.ts +1 -0
  224. package/require.js +9 -0
  225. package/require.js.map +1 -0
  226. package/rpc/endpoints/message-port.rpc-endpoint.d.ts +19 -0
  227. package/rpc/endpoints/message-port.rpc-endpoint.js +34 -0
  228. package/rpc/endpoints/message-port.rpc-endpoint.js.map +1 -0
  229. package/rpc/index.d.ts +4 -0
  230. package/rpc/index.js +21 -0
  231. package/rpc/index.js.map +1 -0
  232. package/rpc/model.d.ts +72 -0
  233. package/rpc/model.js +13 -0
  234. package/rpc/model.js.map +1 -0
  235. package/rpc/rpc-endpoint.d.ts +11 -0
  236. package/rpc/rpc-endpoint.js +23 -0
  237. package/rpc/rpc-endpoint.js.map +1 -0
  238. package/rpc/rpc-error.d.ts +8 -0
  239. package/rpc/rpc-error.js +26 -0
  240. package/rpc/rpc-error.js.map +1 -0
  241. package/rpc/rpc.d.ts +19 -0
  242. package/rpc/rpc.js +263 -0
  243. package/rpc/rpc.js.map +1 -0
  244. package/schema/array-constraints/maximum-length.d.ts +2 -2
  245. package/schema/array-constraints/maximum-length.js +2 -2
  246. package/schema/array-constraints/maximum-length.js.map +1 -1
  247. package/schema/array-constraints/minimum-length.d.ts +2 -2
  248. package/schema/array-constraints/minimum-length.js +2 -2
  249. package/schema/array-constraints/minimum-length.js.map +1 -1
  250. package/schema/coercers/boolean.coercer.d.ts +2 -2
  251. package/schema/coercers/boolean.coercer.js +2 -2
  252. package/schema/coercers/boolean.coercer.js.map +1 -1
  253. package/schema/coercers/date.coercer.d.ts +2 -2
  254. package/schema/coercers/date.coercer.js +2 -2
  255. package/schema/coercers/date.coercer.js.map +1 -1
  256. package/schema/coercers/number.coercer.d.ts +3 -3
  257. package/schema/coercers/number.coercer.js +2 -2
  258. package/schema/coercers/number.coercer.js.map +1 -1
  259. package/schema/coercers/regexp.coercer.d.ts +2 -2
  260. package/schema/coercers/regexp.coercer.js +2 -2
  261. package/schema/coercers/regexp.coercer.js.map +1 -1
  262. package/schema/coercers/string.coercer.d.ts +3 -3
  263. package/schema/coercers/string.coercer.js +2 -2
  264. package/schema/coercers/string.coercer.js.map +1 -1
  265. package/schema/coercers/uint8-array.coercer.js +2 -2
  266. package/schema/coercers/uint8-array.coercer.js.map +1 -1
  267. package/schema/constraints/enumeration.d.ts +5 -5
  268. package/schema/constraints/enumeration.js +6 -6
  269. package/schema/constraints/enumeration.js.map +1 -1
  270. package/schema/constraints/generic.d.ts +2 -2
  271. package/schema/constraints/generic.js +2 -2
  272. package/schema/constraints/generic.js.map +1 -1
  273. package/schema/constraints/integer.d.ts +2 -2
  274. package/schema/constraints/integer.js +2 -2
  275. package/schema/constraints/integer.js.map +1 -1
  276. package/schema/constraints/literal.d.ts +2 -2
  277. package/schema/constraints/literal.js +2 -2
  278. package/schema/constraints/literal.js.map +1 -1
  279. package/schema/constraints/maximum-date.d.ts +2 -2
  280. package/schema/constraints/maximum-date.js +2 -2
  281. package/schema/constraints/maximum-date.js.map +1 -1
  282. package/schema/constraints/maximum-length.d.ts +3 -3
  283. package/schema/constraints/maximum-length.js +2 -2
  284. package/schema/constraints/maximum-length.js.map +1 -1
  285. package/schema/constraints/maximum.d.ts +2 -2
  286. package/schema/constraints/maximum.js +2 -2
  287. package/schema/constraints/maximum.js.map +1 -1
  288. package/schema/constraints/minimum-date.d.ts +2 -2
  289. package/schema/constraints/minimum-date.js +2 -2
  290. package/schema/constraints/minimum-date.js.map +1 -1
  291. package/schema/constraints/minimum-length.d.ts +3 -3
  292. package/schema/constraints/minimum-length.js +2 -2
  293. package/schema/constraints/minimum-length.js.map +1 -1
  294. package/schema/constraints/minimum.d.ts +2 -2
  295. package/schema/constraints/minimum.js +2 -2
  296. package/schema/constraints/minimum.js.map +1 -1
  297. package/schema/constraints/pattern.d.ts +2 -2
  298. package/schema/constraints/pattern.js +2 -2
  299. package/schema/constraints/pattern.js.map +1 -1
  300. package/schema/decorators/optional.d.ts +3 -1
  301. package/schema/decorators/optional.js +2 -2
  302. package/schema/decorators/optional.js.map +1 -1
  303. package/schema/decorators/types.d.ts +3 -3
  304. package/schema/decorators/utils.d.ts +3 -2
  305. package/schema/decorators/utils.js +8 -4
  306. package/schema/decorators/utils.js.map +1 -1
  307. package/schema/schema.d.ts +4 -10
  308. package/schema/schema.error.d.ts +6 -5
  309. package/schema/schema.error.js +13 -10
  310. package/schema/schema.error.js.map +1 -1
  311. package/schema/schema.js +110 -104
  312. package/schema/schema.js.map +1 -1
  313. package/schema/schemas/array.d.ts +3 -3
  314. package/schema/schemas/array.js.map +1 -1
  315. package/schema/schemas/assign.d.ts +6 -6
  316. package/schema/schemas/assign.js +3 -1
  317. package/schema/schemas/assign.js.map +1 -1
  318. package/schema/schemas/constraint.d.ts +3 -2
  319. package/schema/schemas/constraint.js.map +1 -1
  320. package/schema/schemas/defaulted.d.ts +2 -2
  321. package/schema/schemas/defaulted.js.map +1 -1
  322. package/schema/schemas/index.d.ts +2 -1
  323. package/schema/schemas/index.js +2 -1
  324. package/schema/schemas/index.js.map +1 -1
  325. package/schema/schemas/nullable.d.ts +2 -2
  326. package/schema/schemas/nullable.js.map +1 -1
  327. package/schema/schemas/number.d.ts +1 -1
  328. package/schema/schemas/number.js.map +1 -1
  329. package/schema/schemas/omit.d.ts +4 -0
  330. package/schema/schemas/{exclude.js → omit.js} +8 -6
  331. package/schema/schemas/omit.js.map +1 -0
  332. package/schema/schemas/optional.d.ts +3 -2
  333. package/schema/schemas/optional.js.map +1 -1
  334. package/schema/schemas/partial.d.ts +4 -0
  335. package/schema/schemas/partial.js +22 -0
  336. package/schema/schemas/partial.js.map +1 -0
  337. package/schema/schemas/pick.d.ts +2 -2
  338. package/schema/schemas/pick.js +3 -1
  339. package/schema/schemas/pick.js.map +1 -1
  340. package/schema/schemas/record.d.ts +2 -2
  341. package/schema/schemas/record.js.map +1 -1
  342. package/schema/schemas/union.d.ts +4 -9
  343. package/schema/schemas/union.js.map +1 -1
  344. package/schema/types.d.ts +30 -20
  345. package/schema/types.js +21 -8
  346. package/schema/types.js.map +1 -1
  347. package/schema/utils/schema.d.ts +6 -1
  348. package/schema/utils/schema.js +60 -4
  349. package/schema/utils/schema.js.map +1 -1
  350. package/schema/utils/value-type.d.ts +5 -3
  351. package/schema/utils/value-type.js +23 -8
  352. package/schema/utils/value-type.js.map +1 -1
  353. package/search-index/elastic/config.js.map +1 -1
  354. package/search-index/elastic/model/index-mapping.d.ts +2 -1
  355. package/search-index/elastic/model/index-mapping.js.map +1 -1
  356. package/search-index/elastic/search-index.js +5 -4
  357. package/search-index/elastic/search-index.js.map +1 -1
  358. package/search-index/error.d.ts +1 -1
  359. package/search-index/error.js +2 -2
  360. package/search-index/error.js.map +1 -1
  361. package/serializer/handlers/register.d.ts +2 -2
  362. package/serializer/handlers/register.js +6 -2
  363. package/serializer/handlers/register.js.map +1 -1
  364. package/serializer/serializable.d.ts +11 -8
  365. package/serializer/serializable.js +13 -4
  366. package/serializer/serializable.js.map +1 -1
  367. package/serializer/serializer.js +21 -8
  368. package/serializer/serializer.js.map +1 -1
  369. package/serializer/types.d.ts +21 -6
  370. package/serializer/types.js +2 -1
  371. package/serializer/types.js.map +1 -1
  372. package/supports.d.ts +5 -0
  373. package/supports.js +9 -0
  374. package/supports.js.map +1 -0
  375. package/templates/index.d.ts +2 -0
  376. package/templates/index.js +2 -0
  377. package/templates/index.js.map +1 -1
  378. package/templates/module.d.ts +3 -1
  379. package/templates/module.js +31 -8
  380. package/templates/module.js.map +1 -1
  381. package/templates/providers/file.provider-template.d.ts +16 -0
  382. package/templates/providers/{file-template.provider.js → file.provider-template.js} +22 -15
  383. package/templates/providers/file.provider-template.js.map +1 -0
  384. package/templates/providers/memory.template-provider.d.ts +8 -0
  385. package/templates/providers/{memory-template.provider.base.js → memory.template-provider.js} +8 -6
  386. package/templates/providers/memory.template-provider.js.map +1 -0
  387. package/templates/renderers/handlebars.template-renderer.d.ts +38 -6
  388. package/templates/renderers/handlebars.template-renderer.js +70 -3
  389. package/templates/renderers/handlebars.template-renderer.js.map +1 -1
  390. package/templates/renderers/mjml.template-renderer.d.ts +6 -6
  391. package/templates/renderers/mjml.template-renderer.js +8 -9
  392. package/templates/renderers/mjml.template-renderer.js.map +1 -1
  393. package/templates/renderers/string.template-renderer.d.ts +8 -0
  394. package/{mail/template-providers/memory-mail-template.provider.js → templates/renderers/string.template-renderer.js} +13 -7
  395. package/templates/renderers/string.template-renderer.js.map +1 -0
  396. package/templates/resolvers/file.template-resolver.d.ts +23 -0
  397. package/templates/resolvers/file.template-resolver.js +63 -0
  398. package/templates/resolvers/file.template-resolver.js.map +1 -0
  399. package/templates/resolvers/string.template-resolver.d.ts +13 -0
  400. package/templates/resolvers/string.template-resolver.js +44 -0
  401. package/templates/resolvers/string.template-resolver.js.map +1 -0
  402. package/templates/template-renderer.provider.js +7 -19
  403. package/templates/template-renderer.provider.js.map +1 -1
  404. package/templates/template-resolver.provider.d.ts +8 -0
  405. package/templates/template-resolver.provider.js +48 -0
  406. package/templates/template-resolver.provider.js.map +1 -0
  407. package/templates/template.model.d.ts +15 -4
  408. package/templates/template.model.js +50 -0
  409. package/templates/template.model.js.map +1 -1
  410. package/templates/template.renderer.d.ts +14 -3
  411. package/templates/template.renderer.js +3 -0
  412. package/templates/template.renderer.js.map +1 -1
  413. package/templates/template.resolver.d.ts +5 -0
  414. package/templates/template.resolver.js +7 -0
  415. package/templates/template.resolver.js.map +1 -0
  416. package/templates/template.service.d.ts +10 -4
  417. package/templates/template.service.js +19 -6
  418. package/templates/template.service.js.map +1 -1
  419. package/templates/tokens.d.ts +3 -2
  420. package/templates/tokens.js +2 -1
  421. package/templates/tokens.js.map +1 -1
  422. package/threading/index.d.ts +2 -0
  423. package/threading/index.js +19 -0
  424. package/threading/index.js.map +1 -0
  425. package/threading/thread-pool.d.ts +19 -0
  426. package/threading/thread-pool.js +50 -0
  427. package/threading/thread-pool.js.map +1 -0
  428. package/threading/thread-worker.d.ts +3 -0
  429. package/threading/thread-worker.js +9 -0
  430. package/threading/thread-worker.js.map +1 -0
  431. package/types.d.ts +27 -9
  432. package/utils/alphabet.d.ts +3 -1
  433. package/utils/alphabet.js +2 -0
  434. package/utils/alphabet.js.map +1 -1
  435. package/utils/array/array.d.ts +1 -2
  436. package/utils/array/array.js.map +1 -1
  437. package/utils/base64.js +3 -2
  438. package/utils/base64.js.map +1 -1
  439. package/utils/binary.js +3 -2
  440. package/utils/binary.js.map +1 -1
  441. package/utils/clone.js +4 -0
  442. package/utils/clone.js.map +1 -1
  443. package/utils/compression.d.ts +19 -15
  444. package/utils/compression.js +43 -10
  445. package/utils/compression.js.map +1 -1
  446. package/utils/encoding.d.ts +10 -0
  447. package/utils/encoding.js +20 -4
  448. package/utils/encoding.js.map +1 -1
  449. package/utils/enum.d.ts +5 -8
  450. package/utils/enum.js +15 -13
  451. package/utils/enum.js.map +1 -1
  452. package/utils/function/memoize.js +4 -4
  453. package/utils/function/memoize.js.map +1 -1
  454. package/utils/helpers.d.ts +0 -2
  455. package/utils/helpers.js +3 -14
  456. package/utils/helpers.js.map +1 -1
  457. package/utils/image.js +2 -2
  458. package/utils/image.js.map +1 -1
  459. package/utils/index.d.ts +2 -0
  460. package/utils/index.js +2 -0
  461. package/utils/index.js.map +1 -1
  462. package/utils/object/decycle.js +10 -21
  463. package/utils/object/decycle.js.map +1 -1
  464. package/utils/object/dereference.d.ts +7 -5
  465. package/utils/object/dereference.js +4 -4
  466. package/utils/object/dereference.js.map +1 -1
  467. package/utils/object/forward-ref.js +3 -19
  468. package/utils/object/forward-ref.js.map +1 -1
  469. package/utils/object/merge.js +3 -3
  470. package/utils/object/merge.js.map +1 -1
  471. package/utils/object/object.js +3 -3
  472. package/utils/object/object.js.map +1 -1
  473. package/utils/object/property-name.d.ts +2 -2
  474. package/utils/proxy.d.ts +6 -0
  475. package/utils/proxy.js +21 -0
  476. package/utils/proxy.js.map +1 -0
  477. package/utils/stream/finalize-stream.d.ts +1 -0
  478. package/utils/stream/finalize-stream.js +38 -0
  479. package/utils/stream/finalize-stream.js.map +1 -0
  480. package/utils/stream/index.d.ts +4 -3
  481. package/utils/stream/index.js +4 -3
  482. package/utils/stream/index.js.map +1 -1
  483. package/utils/stream/readable-stream-adapter.d.ts +5 -0
  484. package/utils/stream/readable-stream-adapter.js +45 -0
  485. package/utils/stream/readable-stream-adapter.js.map +1 -0
  486. package/utils/stream/readable-stream-from-promise.d.ts +1 -0
  487. package/utils/stream/readable-stream-from-promise.js +12 -0
  488. package/utils/stream/readable-stream-from-promise.js.map +1 -0
  489. package/utils/stream/size-limited-stream.d.ts +2 -0
  490. package/utils/stream/size-limited-stream.js +18 -0
  491. package/utils/stream/size-limited-stream.js.map +1 -0
  492. package/utils/stream/stream-reader.d.ts +2 -1
  493. package/utils/stream/stream-reader.js +7 -10
  494. package/utils/stream/stream-reader.js.map +1 -1
  495. package/utils/throw.d.ts +2 -0
  496. package/utils/throw.js +15 -0
  497. package/utils/throw.js.map +1 -0
  498. package/utils/type-guards.d.ts +34 -16
  499. package/utils/type-guards.js +112 -75
  500. package/utils/type-guards.js.map +1 -1
  501. package/web-types.d.ts +28 -0
  502. package/web-types.js +3 -0
  503. package/web-types.js.map +1 -0
  504. package/http/client/adapters/got-http-client.adapter.d.ts +0 -10
  505. package/http/client/adapters/got-http-client.adapter.js +0 -141
  506. package/http/client/adapters/got-http-client.adapter.js.map +0 -1
  507. package/http/client/adapters/utils.d.ts +0 -11
  508. package/http/client/adapters/utils.js +0 -79
  509. package/http/client/adapters/utils.js.map +0 -1
  510. package/mail/mail-template-renderer.provider.d.ts +0 -8
  511. package/mail/mail-template-renderer.provider.js +0 -60
  512. package/mail/mail-template-renderer.provider.js.map +0 -1
  513. package/mail/mail-template.provider.d.ts +0 -4
  514. package/mail/mail-template.provider.js +0 -7
  515. package/mail/mail-template.provider.js.map +0 -1
  516. package/mail/mail-template.renderer.d.ts +0 -10
  517. package/mail/mail-template.renderer.js +0 -7
  518. package/mail/mail-template.renderer.js.map +0 -1
  519. package/mail/template-providers/file-mail-template.provider.d.ts +0 -24
  520. package/mail/template-providers/file-mail-template.provider.js +0 -51
  521. package/mail/template-providers/file-mail-template.provider.js.map +0 -1
  522. package/mail/template-providers/memory-mail-template.provider.d.ts +0 -6
  523. package/mail/template-providers/memory-mail-template.provider.js.map +0 -1
  524. package/mail/template-renderers/handlebars.mail-template-renderer.d.ts +0 -13
  525. package/mail/template-renderers/handlebars.mail-template-renderer.js +0 -49
  526. package/mail/template-renderers/handlebars.mail-template-renderer.js.map +0 -1
  527. package/mail/template-renderers/mjml.mail-template-renderer.d.ts +0 -14
  528. package/mail/template-renderers/mjml.mail-template-renderer.js +0 -63
  529. package/mail/template-renderers/mjml.mail-template-renderer.js.map +0 -1
  530. package/schema/schemas/exclude.d.ts +0 -4
  531. package/schema/schemas/exclude.js.map +0 -1
  532. package/templates/providers/file-template.provider.base.d.ts +0 -12
  533. package/templates/providers/file-template.provider.base.js +0 -50
  534. package/templates/providers/file-template.provider.base.js.map +0 -1
  535. package/templates/providers/file-template.provider.d.ts +0 -22
  536. package/templates/providers/file-template.provider.js.map +0 -1
  537. package/templates/providers/memory-template.provider.base.d.ts +0 -9
  538. package/templates/providers/memory-template.provider.base.js.map +0 -1
  539. package/templates/providers/memory-template.provider.d.ts +0 -4
  540. package/templates/providers/memory-template.provider.js +0 -18
  541. package/templates/providers/memory-template.provider.js.map +0 -1
  542. package/utils/stream/async-iterable-readable.d.ts +0 -13
  543. package/utils/stream/async-iterable-readable.js +0 -40
  544. package/utils/stream/async-iterable-readable.js.map +0 -1
  545. package/utils/stream/async-writable-stream.d.ts +0 -16
  546. package/utils/stream/async-writable-stream.js +0 -41
  547. package/utils/stream/async-writable-stream.js.map +0 -1
  548. package/utils/stream/typed-readable.d.ts +0 -58
  549. package/utils/stream/typed-readable.js +0 -9
  550. package/utils/stream/typed-readable.js.map +0 -1
@@ -12,20 +12,31 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.fileTemplate = exports.configureFileTemplateProvider = exports.FileTemplateProvider = exports.fileTemplateProviderConfig = void 0;
15
+ exports.configureFileTemplateProvider = exports.FileTemplateProvider = exports.fileTemplateProviderConfig = void 0;
16
16
  const container_1 = require("../../container");
17
+ const bad_request_error_1 = require("../../error/bad-request.error");
17
18
  const schema_1 = require("../../schema");
18
- const file_template_provider_base_1 = require("./file-template.provider.base");
19
+ const path = require("path");
20
+ const template_model_1 = require("../template.model");
21
+ const template_provider_1 = require("../template.provider");
19
22
  exports.fileTemplateProviderConfig = {};
20
- const fileTemplateSchema = (0, schema_1.object)({
21
- type: (0, schema_1.string)(),
22
- template: (0, schema_1.optional)((0, schema_1.string)()),
23
- templateFile: (0, schema_1.optional)((0, schema_1.string)()),
24
- options: (0, schema_1.optional)((0, schema_1.unknown)())
25
- });
26
- let FileTemplateProvider = class FileTemplateProvider extends file_template_provider_base_1.FileTemplateProviderBase {
23
+ const keyPattern = /^[\w\-/]+$/u;
24
+ let FileTemplateProvider = class FileTemplateProvider extends template_provider_1.TemplateProvider {
27
25
  constructor(basePath) {
28
- super(fileTemplateSchema, basePath, [['templateFile', 'template']]);
26
+ super();
27
+ this.basePath = path.resolve(basePath);
28
+ }
29
+ async get(key) {
30
+ if (!keyPattern.test(key)) {
31
+ throw new bad_request_error_1.BadRequestError('Illegal template key. Only a-z, A-Z, 0-9, _ and - are allowed.');
32
+ }
33
+ const filePath = path.resolve(this.basePath, `${key}.js`);
34
+ if (!filePath.startsWith(this.basePath)) {
35
+ throw new bad_request_error_1.BadRequestError(`Illegal file path. Must be inside "${this.basePath}".`);
36
+ }
37
+ const templateModule = await Promise.resolve().then(() => require(filePath));
38
+ const fileContent = templateModule.default;
39
+ return schema_1.Schema.parse(template_model_1.Template, fileContent);
29
40
  }
30
41
  };
31
42
  FileTemplateProvider = __decorate([
@@ -40,8 +51,4 @@ function configureFileTemplateProvider(config = {}) {
40
51
  exports.fileTemplateProviderConfig.basePath = config.basePath ?? exports.fileTemplateProviderConfig.basePath;
41
52
  }
42
53
  exports.configureFileTemplateProvider = configureFileTemplateProvider;
43
- function fileTemplate(template) {
44
- return template;
45
- }
46
- exports.fileTemplate = fileTemplate;
47
- //# sourceMappingURL=file-template.provider.js.map
54
+ //# sourceMappingURL=file.provider-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.provider-template.js","sourceRoot":"","sources":["../../../source/templates/providers/file.provider-template.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,+CAAwE;AACxE,qEAA4D;AAC5D,yCAAkC;AAClC,6BAA6B;AAC7B,sDAA6C;AAC7C,4DAAwD;AAQ3C,QAAA,0BAA0B,GAA+B,EAAE,CAAC;AAEzE,MAAM,UAAU,GAAG,aAAa,CAAC;AAK1B,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,oCAAgB;IAIxD,YAAyB,QAAgB;QACvC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACzB,MAAM,IAAI,mCAAe,CAAC,gEAAgE,CAAC,CAAC;SAC7F;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC;QAE1D,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACvC,MAAM,IAAI,mCAAe,CAAC,sCAAsC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;SACpF;QAED,MAAM,cAAc,GAAG,2CAAa,QAAQ,EAAyB,CAAC;QACtE,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC;QAC3C,OAAO,eAAM,CAAC,KAAK,CAAC,yBAAQ,EAAE,WAAW,CAAC,CAAC;IAC7C,CAAC;CACF,CAAA;AAzBY,oBAAoB;IAHhC,IAAA,qBAAS,EAAC;QACT,uBAAuB,EAAE,GAAG,EAAE,CAAC,kCAA0B,CAAC,QAAQ;KACnE,CAAC;IAKa,WAAA,IAAA,qBAAS,GAAE,CAAA;;GAJb,oBAAoB,CAyBhC;AAzBY,oDAAoB;AA2BjC,SAAgB,6BAA6B,CAAC,SAA8C,EAAE;IAC5F,kCAA0B,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,kCAA0B,CAAC,QAAQ,CAAC;AAC/F,CAAC;AAFD,sEAEC"}
@@ -0,0 +1,8 @@
1
+ import type { Template } from '../template.model';
2
+ import { TemplateProvider } from '../template.provider';
3
+ export declare class MemoryTemplateProvider extends TemplateProvider {
4
+ private readonly map;
5
+ constructor();
6
+ add(key: string, template: Template): void;
7
+ get(key: string): Promise<Template>;
8
+ }
@@ -9,11 +9,13 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.MemoryTemplateProviderBase = void 0;
12
+ exports.MemoryTemplateProvider = void 0;
13
13
  const container_1 = require("../../container");
14
14
  const type_guards_1 = require("../../utils/type-guards");
15
- let MemoryTemplateProviderBase = class MemoryTemplateProviderBase {
15
+ const template_provider_1 = require("../template.provider");
16
+ let MemoryTemplateProvider = class MemoryTemplateProvider extends template_provider_1.TemplateProvider {
16
17
  constructor() {
18
+ super();
17
19
  this.map = new Map();
18
20
  }
19
21
  add(key, template) {
@@ -27,9 +29,9 @@ let MemoryTemplateProviderBase = class MemoryTemplateProviderBase {
27
29
  return template;
28
30
  }
29
31
  };
30
- MemoryTemplateProviderBase = __decorate([
32
+ MemoryTemplateProvider = __decorate([
31
33
  (0, container_1.singleton)(),
32
34
  __metadata("design:paramtypes", [])
33
- ], MemoryTemplateProviderBase);
34
- exports.MemoryTemplateProviderBase = MemoryTemplateProviderBase;
35
- //# sourceMappingURL=memory-template.provider.base.js.map
35
+ ], MemoryTemplateProvider);
36
+ exports.MemoryTemplateProvider = MemoryTemplateProvider;
37
+ //# sourceMappingURL=memory.template-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.template-provider.js","sourceRoot":"","sources":["../../../source/templates/providers/memory.template-provider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAwC;AACxC,yDAAkD;AAElD,4DAAwD;AAGjD,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,oCAAgB;IAG1D;QACE,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,QAAkB;QACjC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEnC,IAAI,IAAA,yBAAW,EAAC,QAAQ,CAAC,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,iBAAiB,CAAC,CAAC;SACnD;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAA;AAtBY,sBAAsB;IADlC,IAAA,qBAAS,GAAE;;GACC,sBAAsB,CAsBlC;AAtBY,wDAAsB"}
@@ -1,11 +1,43 @@
1
- import type { Template } from '../template.model';
2
- import type { TemplateRenderResult } from '../template.renderer';
1
+ import type { ObjectLiteral, Record } from "../../types";
2
+ import * as handlebars from 'handlebars';
3
+ import { TemplateResolverProvider } from '../template-resolver.provider';
4
+ import type { TemplateField } from '../template.model';
5
+ import type { TemplateRenderObject } from '../template.renderer';
3
6
  import { TemplateRenderer } from '../template.renderer';
4
- export declare type HandlebarsTemplateOptions = {
7
+ export declare type HandlebarsTemplateHelperOptionsLocationItem = {
8
+ line: number;
9
+ column: number;
10
+ };
11
+ export declare type HandlebarsTemplateHelperOptionsLocation = {
12
+ start: HandlebarsTemplateHelperOptionsLocationItem;
13
+ end: HandlebarsTemplateHelperOptionsLocationItem;
14
+ };
15
+ export declare type HandlebarsTemplateHelperOptions = {
16
+ name: string;
17
+ location?: HandlebarsTemplateHelperOptionsLocation;
18
+ data?: Record<string>;
19
+ hash: Record<string>;
20
+ lookupProperty: (object: ObjectLiteral, propertyName: string) => unknown;
21
+ fn?: handlebars.TemplateDelegate;
22
+ inverse?: handlebars.TemplateDelegate;
23
+ };
24
+ export declare type HandlebarsTemplateHelper = (context: unknown, args: unknown[], options: HandlebarsTemplateHelperOptions) => any;
25
+ export declare type HandlebarsTemplateHelpersObject = Record<string, HandlebarsTemplateHelper>;
26
+ export declare type HandlebarsTemplatePartial = string | TemplateField<string, 'handlebars', HandlebarsRendererOptions> | handlebars.TemplateDelegate;
27
+ export declare type HandlebarsTemplatePartialsObject = Record<string, HandlebarsTemplatePartial>;
28
+ export declare type HandlebarsRendererOptions = {
5
29
  strict?: boolean;
30
+ preventIndent?: boolean;
31
+ helpers?: HandlebarsTemplateHelpersObject;
32
+ partials?: HandlebarsTemplatePartialsObject;
6
33
  };
7
- export declare type HandlebarsTemplate = Template<'handlebars', HandlebarsTemplateOptions>;
8
- export declare class HandlebarsTemplateRenderer extends TemplateRenderer<HandlebarsTemplate> {
34
+ export declare type HandlebarsTemplateRenderObject = TemplateRenderObject<'handlebars', HandlebarsRendererOptions>;
35
+ export declare class HandlebarsTemplateRenderer extends TemplateRenderer<'handlebars', HandlebarsRendererOptions> {
36
+ private readonly templateResolverProvider;
37
+ private readonly compileHandlebarsTemplate;
38
+ constructor(templateResolverProvider: TemplateResolverProvider);
9
39
  canHandleType(type: string): boolean;
10
- render(template: HandlebarsTemplate, context?: object): Promise<TemplateRenderResult>;
40
+ _render(renderObject: HandlebarsTemplateRenderObject, context?: object): Promise<string>;
41
+ private _compileHandlebarsTemplate;
42
+ private normalizePartial;
11
43
  }
@@ -5,22 +5,89 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
8
11
  Object.defineProperty(exports, "__esModule", { value: true });
9
12
  exports.HandlebarsTemplateRenderer = void 0;
10
13
  const container_1 = require("../../container");
14
+ const memoize_1 = require("../../utils/function/memoize");
15
+ const object_1 = require("../../utils/object/object");
16
+ const type_guards_1 = require("../../utils/type-guards");
11
17
  const handlebars = require("handlebars");
18
+ const template_resolver_provider_1 = require("../template-resolver.provider");
12
19
  const template_renderer_1 = require("../template.renderer");
20
+ const wrapHandlebarsTemplateHelper = (0, memoize_1.memoizeSingle)(_wrapHandlebarsTemplateHelper, { weak: true });
13
21
  let HandlebarsTemplateRenderer = class HandlebarsTemplateRenderer extends template_renderer_1.TemplateRenderer {
22
+ constructor(templateResolverProvider) {
23
+ super();
24
+ this.templateResolverProvider = templateResolverProvider;
25
+ this.compileHandlebarsTemplate = (0, memoize_1.memoizeSingle)(this._compileHandlebarsTemplate, { weak: true }); // eslint-disable-line @typescript-eslint/unbound-method
26
+ }
14
27
  canHandleType(type) {
15
28
  return type == 'handlebars';
16
29
  }
17
- async render(template, context) {
18
- const renderer = handlebars.compile(template.template, { strict: template.options?.strict ?? true });
30
+ async _render(renderObject, context) {
31
+ const renderer = await this.compileHandlebarsTemplate(renderObject);
19
32
  return renderer(context);
20
33
  }
34
+ async _compileHandlebarsTemplate(renderObject) {
35
+ const { template, options = {} } = renderObject;
36
+ const allHelpers = getAllPartialHelpersDeep(renderObject);
37
+ const renderer = handlebars.compile(template, {
38
+ strict: options.strict ?? true,
39
+ preventIndent: options.preventIndent,
40
+ knownHelpers: (0, type_guards_1.isDefined)(allHelpers) ? (0, object_1.mapObjectValues)(allHelpers, () => true) : undefined,
41
+ knownHelpersOnly: true
42
+ });
43
+ const wrappedHelpers = (0, type_guards_1.isDefined)(allHelpers) ? (0, object_1.mapObjectValues)(allHelpers, wrapHandlebarsTemplateHelper) : undefined;
44
+ const normalizedPartials = (0, type_guards_1.isDefined)(options.partials) ? await (0, object_1.mapObjectValuesAsync)(options.partials, async (partial) => this.normalizePartial(partial)) : undefined;
45
+ return (context, runtimeOptions) => renderer(context, { helpers: wrappedHelpers, partials: normalizedPartials, ...runtimeOptions });
46
+ }
47
+ async normalizePartial(partial) {
48
+ if ((0, type_guards_1.isString)(partial) || (0, type_guards_1.isFunction)(partial)) {
49
+ return partial;
50
+ }
51
+ const resolver = this.templateResolverProvider.get(partial.resolver);
52
+ return resolver.resolve(partial);
53
+ }
21
54
  };
22
55
  HandlebarsTemplateRenderer = __decorate([
23
- (0, container_1.singleton)()
56
+ (0, container_1.singleton)(),
57
+ __metadata("design:paramtypes", [template_resolver_provider_1.TemplateResolverProvider])
24
58
  ], HandlebarsTemplateRenderer);
25
59
  exports.HandlebarsTemplateRenderer = HandlebarsTemplateRenderer;
60
+ function _wrapHandlebarsTemplateHelper(helper) {
61
+ const wrapperName = `wrapped${helper.name.slice(0, 1).toUpperCase()}${helper.name.slice(1)}`;
62
+ const wrapper = {
63
+ [wrapperName](context, ...argsAndOptions) {
64
+ const args = argsAndOptions.slice(0, -1);
65
+ const options = argsAndOptions[argsAndOptions.length - 1];
66
+ return helper(context, args, options);
67
+ }
68
+ }[wrapperName];
69
+ return wrapper;
70
+ }
71
+ function getAllPartialHelpersDeep(field) {
72
+ const allHelpers = getPartialHelpersDeep(field);
73
+ const helpers = {};
74
+ if (allHelpers.length == 0) {
75
+ return undefined;
76
+ }
77
+ for (const [key, helper] of allHelpers) {
78
+ if ((0, object_1.hasOwnProperty)(helpers, key) && helpers[key] != helper) {
79
+ throw new Error(`Template and partials reference different versions of helper "${key}".`);
80
+ }
81
+ helpers[key] = helper;
82
+ }
83
+ return helpers;
84
+ }
85
+ function getPartialHelpersDeep(partial) {
86
+ if ((0, type_guards_1.isString)(partial) || (0, type_guards_1.isFunction)(partial)) {
87
+ return [];
88
+ }
89
+ const entries = Object.entries(partial.options?.helpers ?? {});
90
+ const childEntries = Object.values(partial.options?.partials ?? {}).flatMap(getPartialHelpersDeep);
91
+ return [...entries, ...childEntries];
92
+ }
26
93
  //# sourceMappingURL=handlebars.template-renderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handlebars.template-renderer.js","sourceRoot":"","sources":["../../../source/templates/renderers/handlebars.template-renderer.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+CAAwC;AACxC,yCAAyC;AAGzC,4DAAwD;AAOxD,IAAa,0BAA0B,GAAvC,MAAa,0BAA2B,SAAQ,oCAAoC;IAClF,aAAa,CAAC,IAAY;QACxB,OAAO,IAAI,IAAI,YAAY,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAA4B,EAAE,OAAgB;QACzD,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;QACrG,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;CACF,CAAA;AATY,0BAA0B;IADtC,IAAA,qBAAS,GAAE;GACC,0BAA0B,CAStC;AATY,gEAA0B"}
1
+ {"version":3,"file":"handlebars.template-renderer.js","sourceRoot":"","sources":["../../../source/templates/renderers/handlebars.template-renderer.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,15 @@
1
1
  import type { MJMLParsingOptions } from 'mjml-core';
2
2
  import { TemplateRendererProvider } from '../template-renderer.provider';
3
- import type { Template } from '../template.model';
4
- import type { TemplateRenderResult } from '../template.renderer';
3
+ import type { TemplateRenderObject, TemplateRenderResult } from '../template.renderer';
5
4
  import { TemplateRenderer } from '../template.renderer';
6
- export declare type MjmlTemplateOptions = Pick<MJMLParsingOptions, 'fonts' | 'keepComments' | 'validationLevel'> & {
5
+ export declare type MjmlRendererOptions = Pick<MJMLParsingOptions, 'fonts' | 'keepComments' | 'validationLevel'> & {
7
6
  preprocessorOptions?: any;
8
7
  };
9
- export declare type MjmlTemplate = Template<'mjml' | `mjml-${string}`, MjmlTemplateOptions>;
10
- export declare class MjmlTemplateRenderer extends TemplateRenderer<MjmlTemplate> {
8
+ export declare type MjmlRendererString = 'mjml' | `mjml-${string}`;
9
+ export declare type MjmlTemplateRenderObject = TemplateRenderObject<MjmlRendererString, MjmlRendererOptions>;
10
+ export declare class MjmlTemplateRenderer extends TemplateRenderer<MjmlRendererString, MjmlRendererOptions> {
11
11
  private readonly rendererProvider;
12
12
  constructor(rendererProvider: TemplateRendererProvider);
13
13
  canHandleType(type: string): boolean;
14
- render(template: MjmlTemplate, context?: object): Promise<TemplateRenderResult>;
14
+ _render({ renderer, template, options }: MjmlTemplateRenderObject, context?: object): Promise<TemplateRenderResult>;
15
15
  }
@@ -33,19 +33,18 @@ let MjmlTemplateRenderer = class MjmlTemplateRenderer extends template_renderer_
33
33
  const parent = type.slice(5);
34
34
  return this.rendererProvider.has(parent);
35
35
  }
36
- async render(template, context) {
37
- if (template.type.length > 4) {
38
- const parent = template.type.slice(5);
39
- const renderer = this.rendererProvider.get(parent);
40
- const result = await renderer.render({ ...template, type: parent, options: template.options?.preprocessorOptions }, context);
36
+ async _render({ renderer, template, options }, context) {
37
+ if (renderer.length > 4) {
38
+ const parent = renderer.slice(5);
39
+ const parentRenderer = this.rendererProvider.get(parent);
40
+ const result = await parentRenderer.render({ template, renderer: parent, options: options?.preprocessorOptions }, context);
41
41
  const preprocessedTemplate = {
42
- ...template,
43
- type: 'mjml',
42
+ renderer: 'mjml',
44
43
  template: result
45
44
  };
46
- return this.render(preprocessedTemplate);
45
+ return this._render(preprocessedTemplate);
47
46
  }
48
- return mjml2html(template.template).html;
47
+ return mjml2html(template).html;
49
48
  }
50
49
  };
51
50
  MjmlTemplateRenderer = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"mjml.template-renderer.js","sourceRoot":"","sources":["../../../source/templates/renderers/mjml.template-renderer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+CAAoD;AACpD,8CAA8C;AAC9C,kCAAkC;AAElC,8EAAyE;AAGzE,4DAAwD;AASxD,IAAa,oBAAoB,GAAjC,MAAa,oBAAqB,SAAQ,oCAA8B;IAGtE,YAAwD,gBAA0C;QAChG,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,IAAI,IAAI,IAAI,MAAM,EAAE;YAClB,OAAO,IAAI,CAAC;SACb;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC7B,OAAO,KAAK,CAAC;SACd;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAsB,EAAE,OAAgB;QACnD,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAEnD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,mBAAmB,EAAE,EAAE,OAAO,CAAC,CAAC;YAE7H,MAAM,oBAAoB,GAAiB;gBACzC,GAAG,QAAQ;gBACX,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,MAAM;aACjB,CAAC;YAEF,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;SAC1C;QAED,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;IAC3C,CAAC;CACF,CAAA;AAxCY,oBAAoB;IADhC,IAAA,qBAAS,GAAE;IAIG,WAAA,IAAA,sBAAU,EAAC,GAAG,EAAE,CAAC,qDAAwB,CAAC,CAAA;qCAAmB,qDAAwB;GAHvF,oBAAoB,CAwChC;AAxCY,oDAAoB"}
1
+ {"version":3,"file":"mjml.template-renderer.js","sourceRoot":"","sources":["../../../source/templates/renderers/mjml.template-renderer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+CAAoD;AACpD,8CAA8C;AAC9C,kCAAkC;AAElC,8EAAyE;AAEzE,4DAAwD;AAWjD,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,oCAAyD;IAGjG,YAAwD,gBAA0C;QAChG,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,IAAI,IAAI,IAAI,MAAM,EAAE;YAClB,OAAO,IAAI,CAAC;SACb;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC7B,OAAO,KAAK,CAAC;SACd;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAA4B,EAAE,OAAgB;QACvF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAEzD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,OAAO,CAAC,CAAC;YAE3H,MAAM,oBAAoB,GAA6B;gBACrD,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,MAAM;aACjB,CAAC;YAEF,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;SAC3C;QAED,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;IAClC,CAAC;CACF,CAAA;AAvCY,oBAAoB;IADhC,IAAA,qBAAS,GAAE;IAIG,WAAA,IAAA,sBAAU,EAAC,GAAG,EAAE,CAAC,qDAAwB,CAAC,CAAA;qCAAmB,qDAAwB;GAHvF,oBAAoB,CAuChC;AAvCY,oDAAoB"}
@@ -0,0 +1,8 @@
1
+ import type { TemplateRenderObject, TemplateRenderResult } from '../template.renderer';
2
+ import { TemplateRenderer } from '../template.renderer';
3
+ export declare type StringTemplateRenderObject = TemplateRenderObject<'string', undefined>;
4
+ export declare class StringTemplateRenderer extends TemplateRenderer<'string', undefined> {
5
+ constructor();
6
+ canHandleType(type: string): boolean;
7
+ _render({ template }: StringTemplateRenderObject, _context?: object): Promise<TemplateRenderResult>;
8
+ }
@@ -9,17 +9,23 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.MemoryMailTemplateProvider = void 0;
12
+ exports.StringTemplateRenderer = void 0;
13
13
  const container_1 = require("../../container");
14
- const memory_template_provider_base_1 = require("../../templates/providers/memory-template.provider.base");
15
- let MemoryMailTemplateProvider = class MemoryMailTemplateProvider extends memory_template_provider_base_1.MemoryTemplateProviderBase {
14
+ const template_renderer_1 = require("../template.renderer");
15
+ let StringTemplateRenderer = class StringTemplateRenderer extends template_renderer_1.TemplateRenderer {
16
16
  constructor() {
17
17
  super();
18
18
  }
19
+ canHandleType(type) {
20
+ return (type == 'string');
21
+ }
22
+ async _render({ template }, _context) {
23
+ return template;
24
+ }
19
25
  };
20
- MemoryMailTemplateProvider = __decorate([
26
+ StringTemplateRenderer = __decorate([
21
27
  (0, container_1.singleton)(),
22
28
  __metadata("design:paramtypes", [])
23
- ], MemoryMailTemplateProvider);
24
- exports.MemoryMailTemplateProvider = MemoryMailTemplateProvider;
25
- //# sourceMappingURL=memory-mail-template.provider.js.map
29
+ ], StringTemplateRenderer);
30
+ exports.StringTemplateRenderer = StringTemplateRenderer;
31
+ //# sourceMappingURL=string.template-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.template-renderer.js","sourceRoot":"","sources":["../../../source/templates/renderers/string.template-renderer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAwC;AAExC,4DAAwD;AAKjD,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,oCAAqC;IAC/E;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAA8B,EAAE,QAAiB;QACvE,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAA;AAZY,sBAAsB;IADlC,IAAA,qBAAS,GAAE;;GACC,sBAAsB,CAYlC;AAZY,wDAAsB"}
@@ -0,0 +1,23 @@
1
+ import type { Injectable } from "../../container";
2
+ import { resolveArgumentType } from "../../container";
3
+ import { TypedOmit } from "../../types";
4
+ import { TemplateField } from '../template.model';
5
+ import { TemplateRenderer, TemplateRendererOptions, TemplateRendererString } from '../template.renderer';
6
+ import { TemplateResolver } from '../template.resolver';
7
+ export declare type FileTemplateProviderConfig = {
8
+ basePath?: string;
9
+ };
10
+ export declare type FileTemplateProviderArgument = string;
11
+ export declare const fileTemplateProviderConfig: FileTemplateProviderConfig;
12
+ export declare class FileTemplateField<Renderer extends string = string, Options = any> extends TemplateField<'file', Renderer, Options> {
13
+ templateFile: string;
14
+ }
15
+ export declare class FileTemplateResolver extends TemplateResolver<FileTemplateField> implements Injectable<FileTemplateProviderArgument> {
16
+ private readonly basePath;
17
+ readonly [resolveArgumentType]: FileTemplateProviderArgument;
18
+ constructor(basePath: string);
19
+ canHandle(resolver: string): boolean;
20
+ resolve(field: FileTemplateField): Promise<string>;
21
+ }
22
+ export declare function fileTemplateField<Renderer extends TemplateRenderer>(field: TypedOmit<FileTemplateField<Renderer[TemplateRendererString], Renderer[TemplateRendererOptions]>, 'resolver'>): FileTemplateField<Renderer[TemplateRendererString], Renderer[TemplateRendererOptions]>;
23
+ export declare function configureFileTemplateResolver(config?: Partial<FileTemplateProviderConfig>): void;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.configureFileTemplateResolver = exports.fileTemplateField = exports.FileTemplateResolver = exports.FileTemplateField = exports.fileTemplateProviderConfig = void 0;
16
+ const container_1 = require("../../container");
17
+ const bad_request_error_1 = require("../../error/bad-request.error");
18
+ const schema_1 = require("../../schema");
19
+ const fs = require("fs/promises");
20
+ const path = require("path");
21
+ const template_model_1 = require("../template.model");
22
+ const template_resolver_1 = require("../template.resolver");
23
+ exports.fileTemplateProviderConfig = {};
24
+ class FileTemplateField extends template_model_1.TemplateField {
25
+ }
26
+ __decorate([
27
+ (0, schema_1.Property)(),
28
+ __metadata("design:type", String)
29
+ ], FileTemplateField.prototype, "templateFile", void 0);
30
+ exports.FileTemplateField = FileTemplateField;
31
+ let FileTemplateResolver = class FileTemplateResolver extends template_resolver_1.TemplateResolver {
32
+ constructor(basePath) {
33
+ super();
34
+ this.basePath = path.resolve(basePath);
35
+ }
36
+ canHandle(resolver) {
37
+ return (resolver == 'file');
38
+ }
39
+ async resolve(field) {
40
+ const filePath = path.resolve(this.basePath, field.templateFile);
41
+ if (!filePath.startsWith(this.basePath)) {
42
+ throw new bad_request_error_1.BadRequestError(`Illegal file path. Must be inside "${this.basePath}".`);
43
+ }
44
+ return fs.readFile(filePath, { encoding: 'utf8' });
45
+ }
46
+ };
47
+ FileTemplateResolver = __decorate([
48
+ (0, container_1.singleton)({
49
+ defaultArgumentProvider: () => exports.fileTemplateProviderConfig.basePath
50
+ }),
51
+ __param(0, (0, container_1.injectArg)()),
52
+ __metadata("design:paramtypes", [String])
53
+ ], FileTemplateResolver);
54
+ exports.FileTemplateResolver = FileTemplateResolver;
55
+ function fileTemplateField(field) {
56
+ return { resolver: 'file', ...field };
57
+ }
58
+ exports.fileTemplateField = fileTemplateField;
59
+ function configureFileTemplateResolver(config = {}) {
60
+ exports.fileTemplateProviderConfig.basePath = config.basePath ?? exports.fileTemplateProviderConfig.basePath;
61
+ }
62
+ exports.configureFileTemplateResolver = configureFileTemplateResolver;
63
+ //# sourceMappingURL=file.template-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.template-resolver.js","sourceRoot":"","sources":["../../../source/templates/resolvers/file.template-resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,+CAAwE;AACxE,qEAA4D;AAC5D,yCAAoC;AAEpC,kCAAkC;AAClC,6BAA6B;AAC7B,sDAAkD;AAElD,4DAAwD;AAQ3C,QAAA,0BAA0B,GAA+B,EAAE,CAAC;AAEzE,MAAa,iBAAmE,SAAQ,8BAAwC;CAG/H;AAFC;IAAC,IAAA,iBAAQ,GAAE;;uDACU;AAFvB,8CAGC;AAKM,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,oCAAmC;IAI3E,YAAyB,QAAgB;QACvC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,SAAS,CAAC,QAAgB;QACxB,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAwB;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAEjE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACvC,MAAM,IAAI,mCAAe,CAAC,sCAAsC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;SACpF;QAED,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;CACF,CAAA;AAvBY,oBAAoB;IAHhC,IAAA,qBAAS,EAAC;QACT,uBAAuB,EAAE,GAAG,EAAE,CAAC,kCAA0B,CAAC,QAAQ;KACnE,CAAC;IAKa,WAAA,IAAA,qBAAS,GAAE,CAAA;;GAJb,oBAAoB,CAuBhC;AAvBY,oDAAoB;AAyBjC,SAAgB,iBAAiB,CAAoC,KAAoH;IACvL,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;AACxC,CAAC;AAFD,8CAEC;AAED,SAAgB,6BAA6B,CAAC,SAA8C,EAAE;IAC5F,kCAA0B,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,kCAA0B,CAAC,QAAQ,CAAC;AAC/F,CAAC;AAFD,sEAEC"}
@@ -0,0 +1,13 @@
1
+ import type { TypedOmit } from "../../types";
2
+ import { TemplateField } from '../template.model';
3
+ import type { TemplateRenderer, TemplateRendererOptions, TemplateRendererString } from '../template.renderer';
4
+ import { TemplateResolver } from '../template.resolver';
5
+ export declare class StringTemplateField<Renderer extends string = string, Options = any> extends TemplateField<'string', Renderer, Options> {
6
+ template: string;
7
+ }
8
+ export declare class StringTemplateResolver extends TemplateResolver<StringTemplateField> {
9
+ constructor();
10
+ canHandle(resolver: string): boolean;
11
+ resolve(field: StringTemplateField): Promise<string>;
12
+ }
13
+ export declare function stringTemplateField<Renderer extends TemplateRenderer>(field: TypedOmit<StringTemplateField<Renderer[TemplateRendererString], Renderer[TemplateRendererOptions]>, 'resolver'>): StringTemplateField<Renderer[TemplateRendererString], Renderer[TemplateRendererOptions]>;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.stringTemplateField = exports.StringTemplateResolver = exports.StringTemplateField = void 0;
13
+ const container_1 = require("../../container");
14
+ const schema_1 = require("../../schema");
15
+ const template_model_1 = require("../template.model");
16
+ const template_resolver_1 = require("../template.resolver");
17
+ class StringTemplateField extends template_model_1.TemplateField {
18
+ }
19
+ __decorate([
20
+ (0, schema_1.Property)(),
21
+ __metadata("design:type", String)
22
+ ], StringTemplateField.prototype, "template", void 0);
23
+ exports.StringTemplateField = StringTemplateField;
24
+ let StringTemplateResolver = class StringTemplateResolver extends template_resolver_1.TemplateResolver {
25
+ constructor() {
26
+ super();
27
+ }
28
+ canHandle(resolver) {
29
+ return (resolver == 'string');
30
+ }
31
+ async resolve(field) {
32
+ return field.template;
33
+ }
34
+ };
35
+ StringTemplateResolver = __decorate([
36
+ (0, container_1.singleton)(),
37
+ __metadata("design:paramtypes", [])
38
+ ], StringTemplateResolver);
39
+ exports.StringTemplateResolver = StringTemplateResolver;
40
+ function stringTemplateField(field) {
41
+ return { resolver: 'string', ...field };
42
+ }
43
+ exports.stringTemplateField = stringTemplateField;
44
+ //# sourceMappingURL=string.template-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.template-resolver.js","sourceRoot":"","sources":["../../../source/templates/resolvers/string.template-resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAwC;AACxC,yCAAoC;AAEpC,sDAAkD;AAElD,4DAAwD;AAGxD,MAAa,mBAAqE,SAAQ,8BAA0C;CAGnI;AAFC;IAAC,IAAA,iBAAQ,GAAE;;qDACM;AAFnB,kDAGC;AAGM,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,oCAAqC;IAC/E;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,SAAS,CAAC,QAAgB;QACxB,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAA0B;QACtC,OAAO,KAAK,CAAC,QAAQ,CAAC;IACxB,CAAC;CACF,CAAA;AAZY,sBAAsB;IADlC,IAAA,qBAAS,GAAE;;GACC,sBAAsB,CAYlC;AAZY,wDAAsB;AAcnC,SAAgB,mBAAmB,CAAoC,KAAsH;IAC3L,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,CAAC;AAC1C,CAAC;AAFD,kDAEC"}
@@ -8,12 +8,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
- var TemplateRendererProvider_1;
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
12
14
  Object.defineProperty(exports, "__esModule", { value: true });
13
15
  exports.TemplateRendererProvider = void 0;
14
16
  const container_1 = require("../container");
15
17
  const tokens_1 = require("./tokens");
16
- let TemplateRendererProvider = TemplateRendererProvider_1 = class TemplateRendererProvider {
18
+ let TemplateRendererProvider = class TemplateRendererProvider {
17
19
  constructor(renderers) {
18
20
  this.renderers = new Set(renderers);
19
21
  }
@@ -37,23 +39,9 @@ let TemplateRendererProvider = TemplateRendererProvider_1 = class TemplateRender
37
39
  throw new Error(`No renderer for ${type} registered.`);
38
40
  }
39
41
  };
40
- TemplateRendererProvider = TemplateRendererProvider_1 = __decorate([
41
- (0, container_1.singleton)({
42
- provider: {
43
- useFactory: (_, context) => {
44
- if (context.isAsync) {
45
- return (async () => {
46
- const types = await context.resolveAsync(tokens_1.TEMPLATE_RENDERERS);
47
- const renderers = await Promise.all(types.map(async (type) => context.resolveAsync(type)));
48
- return new TemplateRendererProvider_1(renderers);
49
- })();
50
- }
51
- const types = context.resolve(tokens_1.TEMPLATE_RENDERERS);
52
- const renderers = types.map((type) => context.resolve(type));
53
- return new TemplateRendererProvider_1(renderers);
54
- }
55
- }
56
- }),
42
+ TemplateRendererProvider = __decorate([
43
+ (0, container_1.singleton)(),
44
+ __param(0, (0, container_1.inject)(tokens_1.TEMPLATE_RENDERERS)),
57
45
  __metadata("design:paramtypes", [Array])
58
46
  ], TemplateRendererProvider);
59
47
  exports.TemplateRendererProvider = TemplateRendererProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"template-renderer.provider.js","sourceRoot":"","sources":["../../source/templates/template-renderer.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,4CAAwC;AAExC,qCAA8C;AAmB9C,IAAa,wBAAwB,gCAArC,MAAa,wBAAwB;IAGnC,YAAY,SAA6B;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,QAAQ,CAAC,QAA0B;QACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,IAAY;QACd,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;YACrC,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;gBAChC,OAAO,IAAI,CAAC;aACb;SACF;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,GAAG,CAAC,IAAY;QACd,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;YACrC,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;gBAChC,OAAO,QAAQ,CAAC;aACjB;SACF;QAED,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,cAAc,CAAC,CAAC;IACzD,CAAC;CACF,CAAA;AA9BY,wBAAwB;IAjBpC,IAAA,qBAAS,EAAC;QACT,QAAQ,EAAE;YACR,UAAU,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE;gBACzB,IAAI,OAAO,CAAC,OAAO,EAAE;oBACnB,OAAO,CAAC,KAAK,IAAI,EAAE;wBACjB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,2BAAkB,CAAC,CAAC;wBAC7D,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAC3F,OAAO,IAAI,0BAAwB,CAAC,SAAS,CAAC,CAAC;oBACjD,CAAC,CAAC,EAAE,CAAC;iBACN;gBAED,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,2BAAkB,CAAC,CAAC;gBAClD,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC7D,OAAO,IAAI,0BAAwB,CAAC,SAAS,CAAC,CAAC;YACjD,CAAC;SACF;KACF,CAAC;;GACW,wBAAwB,CA8BpC;AA9BY,4DAAwB"}
1
+ {"version":3,"file":"template-renderer.provider.js","sourceRoot":"","sources":["../../source/templates/template-renderer.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAgD;AAEhD,qCAA8C;AAGvC,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAGnC,YAAwC,SAA6B;QACnE,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,QAAQ,CAAC,QAA0B;QACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,IAAY;QACd,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;YACrC,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;gBAChC,OAAO,IAAI,CAAC;aACb;SACF;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,GAAG,CAAC,IAAY;QACd,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;YACrC,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;gBAChC,OAAO,QAAQ,CAAC;aACjB;SACF;QAED,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,cAAc,CAAC,CAAC;IACzD,CAAC;CACF,CAAA;AA9BY,wBAAwB;IADpC,IAAA,qBAAS,GAAE;IAIG,WAAA,IAAA,kBAAM,EAAC,2BAAkB,CAAC,CAAA;;GAH5B,wBAAwB,CA8BpC;AA9BY,4DAAwB"}
@@ -0,0 +1,8 @@
1
+ import type { TemplateResolver } from './template.resolver';
2
+ export declare class TemplateResolverProvider {
3
+ private readonly resolvers;
4
+ constructor(resolvers: TemplateResolver[]);
5
+ register(renderer: TemplateResolver): void;
6
+ has(type: string): boolean;
7
+ get(type: string): TemplateResolver;
8
+ }