@tstdl/base 0.78.0-beta9 → 0.78.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (612) 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 +4 -3
  5. package/api/response.js.map +1 -1
  6. package/api/server/api-controller.d.ts +3 -1
  7. package/api/server/api-controller.js +7 -2
  8. package/api/server/api-controller.js.map +1 -1
  9. package/api/server/gateway.d.ts +15 -3
  10. package/api/server/gateway.js +53 -37
  11. package/api/server/gateway.js.map +1 -1
  12. package/api/server/middlewares/allowed-methods.middleware.js +1 -1
  13. package/api/server/middlewares/allowed-methods.middleware.js.map +1 -1
  14. package/api/server/middlewares/cors.middleware.d.ts +6 -4
  15. package/api/server/middlewares/cors.middleware.js +30 -30
  16. package/api/server/middlewares/cors.middleware.js.map +1 -1
  17. package/api/types.d.ts +36 -14
  18. package/api/types.js +1 -2
  19. package/api/types.js.map +1 -1
  20. package/api/utils.d.ts +9 -0
  21. package/api/utils.js +15 -0
  22. package/api/utils.js.map +1 -0
  23. package/application/application.d.ts +17 -4
  24. package/application/application.js +97 -48
  25. package/application/application.js.map +1 -1
  26. package/collections/awaitable/awaitable-list.js +10 -11
  27. package/collections/awaitable/awaitable-list.js.map +1 -1
  28. package/collections/observable/observable-array.js +1 -1
  29. package/collections/observable/observable-array.js.map +1 -1
  30. package/collections/observable/observable-collection-base.js +12 -14
  31. package/collections/observable/observable-collection-base.js.map +1 -1
  32. package/collections/observable/observable-list-base.js +6 -8
  33. package/collections/observable/observable-list-base.js.map +1 -1
  34. package/collections/observable/observable-sorted-array-list.js +3 -3
  35. package/collections/observable/observable-sorted-array-list.js.map +1 -1
  36. package/collections/sorted-array-list.js +3 -3
  37. package/collections/sorted-array-list.js.map +1 -1
  38. package/collections/sorted-map.js +1 -1
  39. package/collections/sorted-map.js.map +1 -1
  40. package/container/container.js +19 -21
  41. package/container/container.js.map +1 -1
  42. package/container/decorators.d.ts +1 -1
  43. package/container/decorators.js.map +1 -1
  44. package/container/resolve-chain.d.ts +2 -1
  45. package/container/resolve-chain.js +6 -2
  46. package/container/resolve-chain.js.map +1 -1
  47. package/core.js +4 -3
  48. package/core.js.map +1 -1
  49. package/css/theme/theme.service.js.map +1 -1
  50. package/data-structures/circular-buffer.js +5 -6
  51. package/data-structures/circular-buffer.js.map +1 -1
  52. package/data-structures/collection.js +4 -5
  53. package/data-structures/collection.js.map +1 -1
  54. package/data-structures/index-out-of-bounds.error.d.ts +1 -1
  55. package/data-structures/index-out-of-bounds.error.js +2 -2
  56. package/data-structures/index-out-of-bounds.error.js.map +1 -1
  57. package/data-structures/index.d.ts +1 -0
  58. package/data-structures/index.js +1 -0
  59. package/data-structures/index.js.map +1 -1
  60. package/data-structures/iterable-weak-map.js +1 -1
  61. package/data-structures/iterable-weak-map.js.map +1 -1
  62. package/data-structures/linked-list.js.map +1 -1
  63. package/data-structures/map.d.ts +20 -0
  64. package/data-structures/map.js +65 -0
  65. package/data-structures/map.js.map +1 -0
  66. package/data-structures/sorted-array-list.js +2 -2
  67. package/data-structures/sorted-array-list.js.map +1 -1
  68. package/database/mongo/classes.js.map +1 -1
  69. package/database/mongo/mongo-base.repository.d.ts +1 -0
  70. package/database/mongo/mongo-base.repository.js +6 -3
  71. package/database/mongo/mongo-base.repository.js.map +1 -1
  72. package/database/mongo/mongo-entity-repository.js +18 -25
  73. package/database/mongo/mongo-entity-repository.js.map +1 -1
  74. package/distributed-loop/distributed-loop.js.map +1 -1
  75. package/distributed-loop/provider.js.map +1 -1
  76. package/environment.d.ts +10 -0
  77. package/environment.js +26 -0
  78. package/environment.js.map +1 -0
  79. package/error/custom.error.d.ts +7 -3
  80. package/error/custom.error.js +17 -8
  81. package/error/custom.error.js.map +1 -1
  82. package/error/index.d.ts +1 -0
  83. package/error/index.js +1 -0
  84. package/error/index.js.map +1 -1
  85. package/error/max-bytes-exceeded.error.d.ts +1 -0
  86. package/error/max-bytes-exceeded.error.js +3 -0
  87. package/error/max-bytes-exceeded.error.js.map +1 -1
  88. package/error/not-implemented.error.js +1 -1
  89. package/error/not-implemented.error.js.map +1 -1
  90. package/error/not-supported.error.d.ts +7 -0
  91. package/error/not-supported.error.js +17 -0
  92. package/error/not-supported.error.js.map +1 -0
  93. package/error/unsupported-media-type.error.js +1 -1
  94. package/error/unsupported-media-type.error.js.map +1 -1
  95. package/examples/api/basic-overview.js +17 -25
  96. package/examples/api/basic-overview.js.map +1 -1
  97. package/examples/api/streaming.d.ts +1 -0
  98. package/examples/api/streaming.js +79 -0
  99. package/examples/api/streaming.js.map +1 -0
  100. package/examples/mail/basic.js +12 -7
  101. package/examples/mail/basic.js.map +1 -1
  102. package/examples/mail/templates/hello-name.d.ts +2 -0
  103. package/examples/mail/templates/hello-name.js +11 -0
  104. package/examples/mail/templates/hello-name.js.map +1 -0
  105. package/examples/pdf/basic.js +9 -6
  106. package/examples/pdf/basic.js.map +1 -1
  107. package/examples/pdf/templates/hello-name.d.ts +1 -4
  108. package/examples/pdf/templates/hello-name.js +30 -4
  109. package/examples/pdf/templates/hello-name.js.map +1 -1
  110. package/examples/reflection/basic.js +1 -1
  111. package/examples/reflection/basic.js.map +1 -1
  112. package/examples/template/basic.d.ts +1 -0
  113. package/examples/template/basic.js +25 -0
  114. package/examples/template/basic.js.map +1 -0
  115. package/examples/template/templates/hello-name.d.ts +2 -0
  116. package/examples/template/templates/hello-name.js +23 -0
  117. package/examples/template/templates/hello-name.js.map +1 -0
  118. package/http/client/adapters/undici-http-client.adapter.d.ts +1 -2
  119. package/http/client/adapters/undici-http-client.adapter.js +11 -12
  120. package/http/client/adapters/undici-http-client.adapter.js.map +1 -1
  121. package/http/client/http-client-request.d.ts +24 -14
  122. package/http/client/http-client-request.js +4 -2
  123. package/http/client/http-client-request.js.map +1 -1
  124. package/http/client/http-client-response.d.ts +10 -12
  125. package/http/client/http-client-response.js +5 -1
  126. package/http/client/http-client-response.js.map +1 -1
  127. package/http/client/http-client.adapter.d.ts +1 -2
  128. package/http/client/http-client.adapter.js.map +1 -1
  129. package/http/client/http-client.d.ts +30 -31
  130. package/http/client/http-client.js +107 -74
  131. package/http/client/http-client.js.map +1 -1
  132. package/http/http-body.d.ts +19 -0
  133. package/http/http-body.js +52 -0
  134. package/http/http-body.js.map +1 -0
  135. package/http/http-headers.d.ts +3 -0
  136. package/http/http-headers.js +6 -0
  137. package/http/http-headers.js.map +1 -1
  138. package/http/http-value-map.js +2 -2
  139. package/http/http-value-map.js.map +1 -1
  140. package/http/http.error.d.ts +5 -2
  141. package/http/http.error.js +27 -5
  142. package/http/http.error.js.map +1 -1
  143. package/http/index.d.ts +2 -0
  144. package/http/index.js +2 -0
  145. package/http/index.js.map +1 -1
  146. package/http/server/http-server-request.d.ts +5 -10
  147. package/http/server/http-server-request.js +3 -30
  148. package/http/server/http-server-request.js.map +1 -1
  149. package/http/server/http-server-response.d.ts +4 -4
  150. package/http/server/node/node-http-server.js +6 -5
  151. package/http/server/node/node-http-server.js.map +1 -1
  152. package/http/types.d.ts +1 -11
  153. package/http/types.js +1 -2
  154. package/http/types.js.map +1 -1
  155. package/http/utils.d.ts +15 -0
  156. package/http/utils.js +113 -0
  157. package/http/utils.js.map +1 -0
  158. package/image-service/image-service.js.map +1 -1
  159. package/image-service/imgproxy/imgproxy-image-service.js.map +1 -1
  160. package/json-path/json-path.d.ts +8 -5
  161. package/json-path/json-path.js +15 -1
  162. package/json-path/json-path.js.map +1 -1
  163. package/key-value-store/mongo/mongo-key-value-store.provider.js.map +1 -1
  164. package/key-value-store/mongo/mongo-key-value.repository.js.map +1 -1
  165. package/key-value-store/mongo/mongo-key-value.store.js.map +1 -1
  166. package/lock/mongo/lock.js.map +1 -1
  167. package/lock/mongo/mongo-lock-repository.js.map +1 -1
  168. package/lock/mongo/provider.js.map +1 -1
  169. package/logger/console/logger.js +1 -1
  170. package/logger/console/logger.js.map +1 -1
  171. package/logger/logger.d.ts +2 -2
  172. package/mail/clients/nodemailer.mail-client.js.map +1 -1
  173. package/mail/index.d.ts +0 -3
  174. package/mail/index.js +0 -3
  175. package/mail/index.js.map +1 -1
  176. package/mail/mail.service.d.ts +3 -5
  177. package/mail/mail.service.js +8 -14
  178. package/mail/mail.service.js.map +1 -1
  179. package/mail/models/mail-template.model.d.ts +11 -10
  180. package/mail/models/mail-template.model.js +7 -0
  181. package/mail/models/mail-template.model.js.map +1 -1
  182. package/mail/module.d.ts +1 -5
  183. package/mail/module.js +2 -11
  184. package/mail/module.js.map +1 -1
  185. package/mail/repositories/mongo-mail-log.repository.js.map +1 -1
  186. package/mail/tokens.d.ts +0 -3
  187. package/mail/tokens.js +1 -2
  188. package/mail/tokens.js.map +1 -1
  189. package/message-bus/local/local-message-bus-provider.js.map +1 -1
  190. package/message-bus/local/local-message-bus.js.map +1 -1
  191. package/message-bus/message-bus-base.js +1 -2
  192. package/message-bus/message-bus-base.js.map +1 -1
  193. package/migration/migrator.js.map +1 -1
  194. package/migration/mongo/migration-state-repository.js.map +1 -1
  195. package/module/modules/web-server.module.js.map +1 -1
  196. package/object-storage/s3/s3.object-storage-provider.js.map +1 -1
  197. package/object-storage/s3/s3.object-storage.js.map +1 -1
  198. package/openid-connect/cached-oidc-configuration.service.js.map +1 -1
  199. package/openid-connect/mongo-oidc-state.repository.js.map +1 -1
  200. package/openid-connect/oidc-configuration.service.d.ts +2 -1
  201. package/openid-connect/oidc-configuration.service.js +5 -3
  202. package/openid-connect/oidc-configuration.service.js.map +1 -1
  203. package/openid-connect/oidc.service-model.d.ts +11 -3
  204. package/openid-connect/oidc.service.d.ts +6 -3
  205. package/openid-connect/oidc.service.js +72 -25
  206. package/openid-connect/oidc.service.js.map +1 -1
  207. package/package.json +13 -12
  208. package/pdf/pdf.service.d.ts +92 -12
  209. package/pdf/pdf.service.js +234 -34
  210. package/pdf/pdf.service.js.map +1 -1
  211. package/pool/pool.d.ts +23 -4
  212. package/pool/pool.js +76 -40
  213. package/pool/pool.js.map +1 -1
  214. package/promise/deferred-promise.d.ts +2 -15
  215. package/promise/deferred-promise.js +5 -10
  216. package/promise/deferred-promise.js.map +1 -1
  217. package/promise/index.d.ts +1 -0
  218. package/promise/index.js +1 -0
  219. package/promise/index.js.map +1 -1
  220. package/promise/lazy-promise.d.ts +11 -0
  221. package/promise/lazy-promise.js +31 -0
  222. package/promise/lazy-promise.js.map +1 -0
  223. package/queue/mongo/mongo-job.repository.js +1 -1
  224. package/queue/mongo/mongo-job.repository.js.map +1 -1
  225. package/queue/mongo/queue.js.map +1 -1
  226. package/queue/mongo/queue.provider.js.map +1 -1
  227. package/reflection/decorator-data.js +1 -1
  228. package/reflection/decorator-data.js.map +1 -1
  229. package/reflection/decorators.d.ts +2 -2
  230. package/reflection/decorators.js +7 -7
  231. package/reflection/decorators.js.map +1 -1
  232. package/reflection/registry.d.ts +8 -8
  233. package/reflection/registry.js +1 -1
  234. package/reflection/registry.js.map +1 -1
  235. package/reflection/types.d.ts +3 -2
  236. package/reflection/utils.d.ts +7 -2
  237. package/reflection/utils.js +38 -12
  238. package/reflection/utils.js.map +1 -1
  239. package/require.d.ts +1 -0
  240. package/require.js +9 -0
  241. package/require.js.map +1 -0
  242. package/rpc/endpoints/message-port.rpc-endpoint.d.ts +19 -0
  243. package/rpc/endpoints/message-port.rpc-endpoint.js +34 -0
  244. package/rpc/endpoints/message-port.rpc-endpoint.js.map +1 -0
  245. package/rpc/index.d.ts +4 -0
  246. package/rpc/index.js +21 -0
  247. package/rpc/index.js.map +1 -0
  248. package/rpc/model.d.ts +72 -0
  249. package/rpc/model.js +13 -0
  250. package/rpc/model.js.map +1 -0
  251. package/rpc/rpc-endpoint.d.ts +11 -0
  252. package/rpc/rpc-endpoint.js +23 -0
  253. package/rpc/rpc-endpoint.js.map +1 -0
  254. package/rpc/rpc-error.d.ts +8 -0
  255. package/rpc/rpc-error.js +26 -0
  256. package/rpc/rpc-error.js.map +1 -0
  257. package/rpc/rpc.d.ts +19 -0
  258. package/rpc/rpc.js +263 -0
  259. package/rpc/rpc.js.map +1 -0
  260. package/rxjs/retry-backoff.js +4 -5
  261. package/rxjs/retry-backoff.js.map +1 -1
  262. package/schema/array-constraints/maximum-length.d.ts +2 -2
  263. package/schema/array-constraints/maximum-length.js +2 -2
  264. package/schema/array-constraints/maximum-length.js.map +1 -1
  265. package/schema/array-constraints/minimum-length.d.ts +2 -2
  266. package/schema/array-constraints/minimum-length.js +2 -2
  267. package/schema/array-constraints/minimum-length.js.map +1 -1
  268. package/schema/coercers/boolean.coercer.d.ts +2 -2
  269. package/schema/coercers/boolean.coercer.js +2 -2
  270. package/schema/coercers/boolean.coercer.js.map +1 -1
  271. package/schema/coercers/date.coercer.d.ts +2 -2
  272. package/schema/coercers/date.coercer.js +2 -2
  273. package/schema/coercers/date.coercer.js.map +1 -1
  274. package/schema/coercers/number.coercer.d.ts +3 -3
  275. package/schema/coercers/number.coercer.js +2 -2
  276. package/schema/coercers/number.coercer.js.map +1 -1
  277. package/schema/coercers/regexp.coercer.d.ts +2 -2
  278. package/schema/coercers/regexp.coercer.js +2 -2
  279. package/schema/coercers/regexp.coercer.js.map +1 -1
  280. package/schema/coercers/string.coercer.d.ts +3 -3
  281. package/schema/coercers/string.coercer.js +2 -2
  282. package/schema/coercers/string.coercer.js.map +1 -1
  283. package/schema/coercers/uint8-array.coercer.js +2 -2
  284. package/schema/coercers/uint8-array.coercer.js.map +1 -1
  285. package/schema/constraints/enumeration.d.ts +5 -5
  286. package/schema/constraints/enumeration.js +6 -6
  287. package/schema/constraints/enumeration.js.map +1 -1
  288. package/schema/constraints/generic.d.ts +2 -2
  289. package/schema/constraints/generic.js +2 -2
  290. package/schema/constraints/generic.js.map +1 -1
  291. package/schema/constraints/integer.d.ts +2 -2
  292. package/schema/constraints/integer.js +2 -2
  293. package/schema/constraints/integer.js.map +1 -1
  294. package/schema/constraints/literal.d.ts +2 -2
  295. package/schema/constraints/literal.js +2 -2
  296. package/schema/constraints/literal.js.map +1 -1
  297. package/schema/constraints/maximum-date.d.ts +2 -2
  298. package/schema/constraints/maximum-date.js +2 -2
  299. package/schema/constraints/maximum-date.js.map +1 -1
  300. package/schema/constraints/maximum-length.d.ts +3 -3
  301. package/schema/constraints/maximum-length.js +2 -2
  302. package/schema/constraints/maximum-length.js.map +1 -1
  303. package/schema/constraints/maximum.d.ts +2 -2
  304. package/schema/constraints/maximum.js +2 -2
  305. package/schema/constraints/maximum.js.map +1 -1
  306. package/schema/constraints/minimum-date.d.ts +2 -2
  307. package/schema/constraints/minimum-date.js +2 -2
  308. package/schema/constraints/minimum-date.js.map +1 -1
  309. package/schema/constraints/minimum-length.d.ts +3 -3
  310. package/schema/constraints/minimum-length.js +2 -2
  311. package/schema/constraints/minimum-length.js.map +1 -1
  312. package/schema/constraints/minimum.d.ts +2 -2
  313. package/schema/constraints/minimum.js +2 -2
  314. package/schema/constraints/minimum.js.map +1 -1
  315. package/schema/constraints/pattern.d.ts +2 -2
  316. package/schema/constraints/pattern.js +2 -2
  317. package/schema/constraints/pattern.js.map +1 -1
  318. package/schema/decorators/array.d.ts +2 -2
  319. package/schema/decorators/array.js.map +1 -1
  320. package/schema/decorators/defaulted.d.ts +2 -2
  321. package/schema/decorators/defaulted.js.map +1 -1
  322. package/schema/decorators/index.d.ts +1 -0
  323. package/schema/decorators/index.js +1 -0
  324. package/schema/decorators/index.js.map +1 -1
  325. package/schema/decorators/one-or-many.d.ts +6 -0
  326. package/schema/decorators/one-or-many.js +12 -0
  327. package/schema/decorators/one-or-many.js.map +1 -0
  328. package/schema/decorators/optional.d.ts +3 -1
  329. package/schema/decorators/optional.js +2 -2
  330. package/schema/decorators/optional.js.map +1 -1
  331. package/schema/decorators/types.d.ts +3 -3
  332. package/schema/decorators/utils.d.ts +3 -2
  333. package/schema/decorators/utils.js +8 -4
  334. package/schema/decorators/utils.js.map +1 -1
  335. package/schema/schema.d.ts +4 -10
  336. package/schema/schema.error.d.ts +6 -5
  337. package/schema/schema.error.js +13 -10
  338. package/schema/schema.error.js.map +1 -1
  339. package/schema/schema.js +113 -104
  340. package/schema/schema.js.map +1 -1
  341. package/schema/schemas/array.d.ts +3 -3
  342. package/schema/schemas/array.js +1 -1
  343. package/schema/schemas/array.js.map +1 -1
  344. package/schema/schemas/assign.d.ts +6 -6
  345. package/schema/schemas/assign.js +3 -1
  346. package/schema/schemas/assign.js.map +1 -1
  347. package/schema/schemas/constraint.d.ts +3 -2
  348. package/schema/schemas/constraint.js.map +1 -1
  349. package/schema/schemas/defaulted.d.ts +2 -2
  350. package/schema/schemas/defaulted.js.map +1 -1
  351. package/schema/schemas/enumeration.js +1 -1
  352. package/schema/schemas/enumeration.js.map +1 -1
  353. package/schema/schemas/index.d.ts +3 -1
  354. package/schema/schemas/index.js +3 -1
  355. package/schema/schemas/index.js.map +1 -1
  356. package/schema/schemas/nullable.d.ts +2 -2
  357. package/schema/schemas/nullable.js.map +1 -1
  358. package/schema/schemas/number.d.ts +1 -1
  359. package/schema/schemas/number.js +0 -3
  360. package/schema/schemas/number.js.map +1 -1
  361. package/schema/schemas/omit.d.ts +4 -0
  362. package/schema/schemas/{exclude.js → omit.js} +8 -6
  363. package/schema/schemas/omit.js.map +1 -0
  364. package/schema/schemas/one-or-many.d.ts +10 -0
  365. package/schema/schemas/one-or-many.js +12 -0
  366. package/schema/schemas/one-or-many.js.map +1 -0
  367. package/schema/schemas/optional.d.ts +3 -2
  368. package/schema/schemas/optional.js.map +1 -1
  369. package/schema/schemas/partial.d.ts +4 -0
  370. package/schema/schemas/partial.js +22 -0
  371. package/schema/schemas/partial.js.map +1 -0
  372. package/schema/schemas/pick.d.ts +2 -2
  373. package/schema/schemas/pick.js +3 -1
  374. package/schema/schemas/pick.js.map +1 -1
  375. package/schema/schemas/record.d.ts +2 -2
  376. package/schema/schemas/record.js.map +1 -1
  377. package/schema/schemas/union.d.ts +4 -9
  378. package/schema/schemas/union.js.map +1 -1
  379. package/schema/types.d.ts +30 -20
  380. package/schema/types.js +22 -8
  381. package/schema/types.js.map +1 -1
  382. package/schema/utils/schema.d.ts +6 -1
  383. package/schema/utils/schema.js +60 -7
  384. package/schema/utils/schema.js.map +1 -1
  385. package/schema/utils/value-type.d.ts +5 -3
  386. package/schema/utils/value-type.js +22 -7
  387. package/schema/utils/value-type.js.map +1 -1
  388. package/search-index/elastic/config.js.map +1 -1
  389. package/search-index/elastic/model/index-mapping.d.ts +2 -1
  390. package/search-index/elastic/model/index-mapping.js.map +1 -1
  391. package/search-index/elastic/module.js +15 -1
  392. package/search-index/elastic/module.js.map +1 -1
  393. package/search-index/elastic/search-index.js +5 -4
  394. package/search-index/elastic/search-index.js.map +1 -1
  395. package/search-index/error.d.ts +1 -1
  396. package/search-index/error.js +2 -2
  397. package/search-index/error.js.map +1 -1
  398. package/serializer/handlers/register.d.ts +2 -2
  399. package/serializer/handlers/register.js +6 -2
  400. package/serializer/handlers/register.js.map +1 -1
  401. package/serializer/serializable.d.ts +11 -8
  402. package/serializer/serializable.js +13 -4
  403. package/serializer/serializable.js.map +1 -1
  404. package/serializer/serializer.js +21 -8
  405. package/serializer/serializer.js.map +1 -1
  406. package/serializer/types.d.ts +21 -6
  407. package/serializer/types.js +2 -1
  408. package/serializer/types.js.map +1 -1
  409. package/supports.d.ts +5 -0
  410. package/supports.js +9 -0
  411. package/supports.js.map +1 -0
  412. package/templates/index.d.ts +2 -0
  413. package/templates/index.js +2 -0
  414. package/templates/index.js.map +1 -1
  415. package/templates/module.d.ts +3 -1
  416. package/templates/module.js +31 -8
  417. package/templates/module.js.map +1 -1
  418. package/templates/providers/file.provider-template.d.ts +16 -0
  419. package/templates/providers/{file-template.provider.js → file.provider-template.js} +22 -15
  420. package/templates/providers/file.provider-template.js.map +1 -0
  421. package/templates/providers/memory.template-provider.d.ts +8 -0
  422. package/templates/providers/{memory-template.provider.base.js → memory.template-provider.js} +8 -6
  423. package/templates/providers/memory.template-provider.js.map +1 -0
  424. package/templates/renderers/handlebars.template-renderer.d.ts +38 -6
  425. package/templates/renderers/handlebars.template-renderer.js +70 -3
  426. package/templates/renderers/handlebars.template-renderer.js.map +1 -1
  427. package/templates/renderers/mjml.template-renderer.d.ts +6 -6
  428. package/templates/renderers/mjml.template-renderer.js +8 -9
  429. package/templates/renderers/mjml.template-renderer.js.map +1 -1
  430. package/templates/renderers/string.template-renderer.d.ts +8 -0
  431. package/{mail/template-providers/memory-mail-template.provider.js → templates/renderers/string.template-renderer.js} +13 -7
  432. package/templates/renderers/string.template-renderer.js.map +1 -0
  433. package/templates/resolvers/file.template-resolver.d.ts +23 -0
  434. package/templates/resolvers/file.template-resolver.js +63 -0
  435. package/templates/resolvers/file.template-resolver.js.map +1 -0
  436. package/templates/resolvers/string.template-resolver.d.ts +13 -0
  437. package/templates/resolvers/string.template-resolver.js +44 -0
  438. package/templates/resolvers/string.template-resolver.js.map +1 -0
  439. package/templates/template-renderer.provider.js +7 -19
  440. package/templates/template-renderer.provider.js.map +1 -1
  441. package/templates/template-resolver.provider.d.ts +8 -0
  442. package/templates/template-resolver.provider.js +48 -0
  443. package/templates/template-resolver.provider.js.map +1 -0
  444. package/templates/template.model.d.ts +15 -4
  445. package/templates/template.model.js +50 -0
  446. package/templates/template.model.js.map +1 -1
  447. package/templates/template.renderer.d.ts +14 -3
  448. package/templates/template.renderer.js +3 -0
  449. package/templates/template.renderer.js.map +1 -1
  450. package/templates/template.resolver.d.ts +5 -0
  451. package/templates/template.resolver.js +7 -0
  452. package/templates/template.resolver.js.map +1 -0
  453. package/templates/template.service.d.ts +10 -4
  454. package/templates/template.service.js +19 -6
  455. package/templates/template.service.js.map +1 -1
  456. package/templates/tokens.d.ts +3 -2
  457. package/templates/tokens.js +2 -1
  458. package/templates/tokens.js.map +1 -1
  459. package/threading/index.d.ts +2 -0
  460. package/{rxjs/compat → threading}/index.js +2 -1
  461. package/threading/index.js.map +1 -0
  462. package/threading/thread-pool.d.ts +20 -0
  463. package/threading/thread-pool.js +50 -0
  464. package/threading/thread-pool.js.map +1 -0
  465. package/threading/thread-worker.d.ts +3 -0
  466. package/threading/thread-worker.js +9 -0
  467. package/threading/thread-worker.js.map +1 -0
  468. package/types.d.ts +27 -9
  469. package/utils/alphabet.d.ts +3 -1
  470. package/utils/alphabet.js +2 -0
  471. package/utils/alphabet.js.map +1 -1
  472. package/utils/array/array.d.ts +1 -2
  473. package/utils/array/array.js.map +1 -1
  474. package/utils/async-iterable-helpers/observable-iterable.js +1 -2
  475. package/utils/async-iterable-helpers/observable-iterable.js.map +1 -1
  476. package/utils/async-iterable-helpers/take-until.js +2 -3
  477. package/utils/async-iterable-helpers/take-until.js.map +1 -1
  478. package/utils/base64.js +3 -2
  479. package/utils/base64.js.map +1 -1
  480. package/utils/binary.js +3 -2
  481. package/utils/binary.js.map +1 -1
  482. package/utils/cancellation-token.d.ts +28 -28
  483. package/utils/cancellation-token.js +14 -14
  484. package/utils/cancellation-token.js.map +1 -1
  485. package/utils/clone.js +4 -0
  486. package/utils/clone.js.map +1 -1
  487. package/utils/compression.d.ts +19 -15
  488. package/utils/compression.js +43 -10
  489. package/utils/compression.js.map +1 -1
  490. package/utils/encoding.d.ts +10 -0
  491. package/utils/encoding.js +20 -4
  492. package/utils/encoding.js.map +1 -1
  493. package/utils/enum.d.ts +5 -8
  494. package/utils/enum.js +15 -13
  495. package/utils/enum.js.map +1 -1
  496. package/utils/feedable-async-iterable.js +1 -2
  497. package/utils/feedable-async-iterable.js.map +1 -1
  498. package/utils/function/memoize.js +4 -4
  499. package/utils/function/memoize.js.map +1 -1
  500. package/utils/helpers.d.ts +0 -2
  501. package/utils/helpers.js +3 -14
  502. package/utils/helpers.js.map +1 -1
  503. package/utils/image.js +7 -8
  504. package/utils/image.js.map +1 -1
  505. package/utils/index.d.ts +2 -0
  506. package/utils/index.js +2 -0
  507. package/utils/index.js.map +1 -1
  508. package/utils/math.d.ts +37 -10
  509. package/utils/math.js +57 -12
  510. package/utils/math.js.map +1 -1
  511. package/utils/object/decycle.js +10 -21
  512. package/utils/object/decycle.js.map +1 -1
  513. package/utils/object/dereference.d.ts +7 -5
  514. package/utils/object/dereference.js +4 -4
  515. package/utils/object/dereference.js.map +1 -1
  516. package/utils/object/forward-ref.js +3 -19
  517. package/utils/object/forward-ref.js.map +1 -1
  518. package/utils/object/merge.js +3 -3
  519. package/utils/object/merge.js.map +1 -1
  520. package/utils/object/object.js +3 -3
  521. package/utils/object/object.js.map +1 -1
  522. package/utils/object/property-name.d.ts +2 -2
  523. package/utils/patch-worker.js +1 -2
  524. package/utils/patch-worker.js.map +1 -1
  525. package/utils/periodic-sampler.js +2 -2
  526. package/utils/periodic-sampler.js.map +1 -1
  527. package/utils/proxy.d.ts +6 -0
  528. package/utils/proxy.js +21 -0
  529. package/utils/proxy.js.map +1 -0
  530. package/utils/stream/finalize-stream.d.ts +1 -0
  531. package/utils/stream/finalize-stream.js +38 -0
  532. package/utils/stream/finalize-stream.js.map +1 -0
  533. package/utils/stream/index.d.ts +4 -3
  534. package/utils/stream/index.js +4 -3
  535. package/utils/stream/index.js.map +1 -1
  536. package/utils/stream/readable-stream-adapter.d.ts +5 -0
  537. package/utils/stream/readable-stream-adapter.js +45 -0
  538. package/utils/stream/readable-stream-adapter.js.map +1 -0
  539. package/utils/stream/readable-stream-from-promise.d.ts +1 -0
  540. package/utils/stream/readable-stream-from-promise.js +12 -0
  541. package/utils/stream/readable-stream-from-promise.js.map +1 -0
  542. package/utils/stream/size-limited-stream.d.ts +2 -0
  543. package/utils/stream/size-limited-stream.js +18 -0
  544. package/utils/stream/size-limited-stream.js.map +1 -0
  545. package/utils/stream/stream-reader.d.ts +2 -1
  546. package/utils/stream/stream-reader.js +7 -10
  547. package/utils/stream/stream-reader.js.map +1 -1
  548. package/utils/throw.d.ts +2 -0
  549. package/utils/throw.js +15 -0
  550. package/utils/throw.js.map +1 -0
  551. package/utils/timer.js +2 -2
  552. package/utils/timer.js.map +1 -1
  553. package/utils/timing.js +2 -2
  554. package/utils/timing.js.map +1 -1
  555. package/utils/type-guards.d.ts +34 -16
  556. package/utils/type-guards.js +112 -75
  557. package/utils/type-guards.js.map +1 -1
  558. package/web-types.d.ts +28 -0
  559. package/web-types.js +3 -0
  560. package/web-types.js.map +1 -0
  561. package/http/client/adapters/got-http-client.adapter.d.ts +0 -10
  562. package/http/client/adapters/got-http-client.adapter.js +0 -141
  563. package/http/client/adapters/got-http-client.adapter.js.map +0 -1
  564. package/http/client/adapters/utils.d.ts +0 -11
  565. package/http/client/adapters/utils.js +0 -79
  566. package/http/client/adapters/utils.js.map +0 -1
  567. package/mail/mail-template-renderer.provider.d.ts +0 -8
  568. package/mail/mail-template-renderer.provider.js +0 -60
  569. package/mail/mail-template-renderer.provider.js.map +0 -1
  570. package/mail/mail-template.provider.d.ts +0 -4
  571. package/mail/mail-template.provider.js +0 -7
  572. package/mail/mail-template.provider.js.map +0 -1
  573. package/mail/mail-template.renderer.d.ts +0 -10
  574. package/mail/mail-template.renderer.js +0 -7
  575. package/mail/mail-template.renderer.js.map +0 -1
  576. package/mail/template-providers/file-mail-template.provider.d.ts +0 -24
  577. package/mail/template-providers/file-mail-template.provider.js +0 -51
  578. package/mail/template-providers/file-mail-template.provider.js.map +0 -1
  579. package/mail/template-providers/memory-mail-template.provider.d.ts +0 -6
  580. package/mail/template-providers/memory-mail-template.provider.js.map +0 -1
  581. package/mail/template-renderers/handlebars.mail-template-renderer.d.ts +0 -13
  582. package/mail/template-renderers/handlebars.mail-template-renderer.js +0 -49
  583. package/mail/template-renderers/handlebars.mail-template-renderer.js.map +0 -1
  584. package/mail/template-renderers/mjml.mail-template-renderer.d.ts +0 -14
  585. package/mail/template-renderers/mjml.mail-template-renderer.js +0 -63
  586. package/mail/template-renderers/mjml.mail-template-renderer.js.map +0 -1
  587. package/rxjs/compat/first-value-from.d.ts +0 -2
  588. package/rxjs/compat/first-value-from.js +0 -9
  589. package/rxjs/compat/first-value-from.js.map +0 -1
  590. package/rxjs/compat/index.d.ts +0 -1
  591. package/rxjs/compat/index.js.map +0 -1
  592. package/schema/schemas/exclude.d.ts +0 -4
  593. package/schema/schemas/exclude.js.map +0 -1
  594. package/templates/providers/file-template.provider.base.d.ts +0 -12
  595. package/templates/providers/file-template.provider.base.js +0 -50
  596. package/templates/providers/file-template.provider.base.js.map +0 -1
  597. package/templates/providers/file-template.provider.d.ts +0 -22
  598. package/templates/providers/file-template.provider.js.map +0 -1
  599. package/templates/providers/memory-template.provider.base.d.ts +0 -9
  600. package/templates/providers/memory-template.provider.base.js.map +0 -1
  601. package/templates/providers/memory-template.provider.d.ts +0 -4
  602. package/templates/providers/memory-template.provider.js +0 -18
  603. package/templates/providers/memory-template.provider.js.map +0 -1
  604. package/utils/stream/async-iterable-readable.d.ts +0 -13
  605. package/utils/stream/async-iterable-readable.js +0 -40
  606. package/utils/stream/async-iterable-readable.js.map +0 -1
  607. package/utils/stream/async-writable-stream.d.ts +0 -16
  608. package/utils/stream/async-writable-stream.js +0 -41
  609. package/utils/stream/async-writable-stream.js.map +0 -1
  610. package/utils/stream/typed-readable.d.ts +0 -58
  611. package/utils/stream/typed-readable.js +0 -9
  612. package/utils/stream/typed-readable.js.map +0 -1
@@ -1,12 +1,14 @@
1
1
  import type { Type } from "../types";
2
2
  import { TemplateProvider } from './template.provider';
3
3
  import type { TemplateRenderer } from './template.renderer';
4
+ import type { TemplateResolver } from './template.resolver';
4
5
  export declare type TemplateModuleConfig = {
5
6
  templateProvider: Type<TemplateProvider>;
7
+ templateResolvers: Type<TemplateResolver>[];
6
8
  templateRenderers: Type<TemplateRenderer>[];
7
9
  };
8
10
  export declare const templateModuleConfig: TemplateModuleConfig;
9
11
  /**
10
12
  * configure mail module
11
13
  */
12
- export declare function configureTemplates({ templateProvider, templateRenderers }?: Partial<TemplateModuleConfig>): void;
14
+ export declare function configureTemplates({ templateProvider, templateResolvers, templateRenderers }?: Partial<TemplateModuleConfig>): void;
@@ -2,24 +2,47 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.configureTemplates = exports.templateModuleConfig = void 0;
4
4
  const container_1 = require("../container");
5
- const type_guards_1 = require("../utils/type-guards");
5
+ const string_template_renderer_1 = require("./renderers/string.template-renderer");
6
+ const string_template_resolver_1 = require("./resolvers/string.template-resolver");
6
7
  const template_provider_1 = require("./template.provider");
7
8
  const tokens_1 = require("./tokens");
8
9
  exports.templateModuleConfig = {
9
10
  templateProvider: (0, container_1.stubClass)(template_provider_1.TemplateProvider),
10
- templateRenderers: []
11
+ templateResolvers: [string_template_resolver_1.StringTemplateResolver],
12
+ templateRenderers: [string_template_renderer_1.StringTemplateRenderer]
11
13
  };
12
- container_1.container.registerSingleton(template_provider_1.TemplateProvider, { useToken: exports.templateModuleConfig.templateProvider });
14
+ container_1.container.registerSingleton(template_provider_1.TemplateProvider, { useTokenProvider: () => exports.templateModuleConfig.templateProvider });
15
+ container_1.container.registerSingleton(tokens_1.TEMPLATE_RESOLVERS, {
16
+ useFactory: (_, context) => {
17
+ if (context.isAsync) {
18
+ return (async () => {
19
+ const resolves = exports.templateModuleConfig.templateResolvers.map(async (type) => context.resolveAsync(type));
20
+ return Promise.all(resolves);
21
+ })();
22
+ }
23
+ const resolves = exports.templateModuleConfig.templateResolvers.map((type) => context.resolve(type));
24
+ return resolves.map((type) => context.resolve(type));
25
+ }
26
+ });
27
+ container_1.container.registerSingleton(tokens_1.TEMPLATE_RENDERERS, {
28
+ useFactory: (_, context) => {
29
+ if (context.isAsync) {
30
+ return (async () => {
31
+ const resolves = exports.templateModuleConfig.templateRenderers.map(async (type) => context.resolveAsync(type));
32
+ return Promise.all(resolves);
33
+ })();
34
+ }
35
+ const resolves = exports.templateModuleConfig.templateRenderers.map((type) => context.resolve(type));
36
+ return resolves.map((type) => context.resolve(type));
37
+ }
38
+ });
13
39
  /**
14
40
  * configure mail module
15
41
  */
16
- function configureTemplates({ templateProvider, templateRenderers } = {}) {
42
+ function configureTemplates({ templateProvider, templateResolvers, templateRenderers } = {}) {
17
43
  exports.templateModuleConfig.templateProvider = templateProvider ?? exports.templateModuleConfig.templateProvider;
44
+ exports.templateModuleConfig.templateResolvers = [...new Set([...exports.templateModuleConfig.templateResolvers, ...(templateResolvers ?? [])])];
18
45
  exports.templateModuleConfig.templateRenderers = [...new Set([...exports.templateModuleConfig.templateRenderers, ...(templateRenderers ?? [])])];
19
- if ((0, type_guards_1.isDefined)(templateProvider)) {
20
- container_1.container.registerSingleton(template_provider_1.TemplateProvider, { useToken: templateProvider });
21
- }
22
- container_1.container.registerSingleton(tokens_1.TEMPLATE_RENDERERS, { useValue: exports.templateModuleConfig.templateRenderers });
23
46
  }
24
47
  exports.configureTemplates = configureTemplates;
25
48
  //# sourceMappingURL=module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../source/templates/module.ts"],"names":[],"mappings":";;;AAAA,4CAAmD;AAEnD,sDAAgD;AAChD,2DAAuD;AAEvD,qCAA8C;AAOjC,QAAA,oBAAoB,GAAyB;IACxD,gBAAgB,EAAE,IAAA,qBAAS,EAAC,oCAAgB,CAAC;IAC7C,iBAAiB,EAAE,EAAE;CACtB,CAAC;AAEF,qBAAS,CAAC,iBAAiB,CAAC,oCAAgB,EAAE,EAAE,QAAQ,EAAE,4BAAoB,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAEnG;;GAEG;AACH,SAAgB,kBAAkB,CAAC,EAAE,gBAAgB,EAAE,iBAAiB,KAAoC,EAAE;IAC5G,4BAAoB,CAAC,gBAAgB,GAAG,gBAAgB,IAAI,4BAAoB,CAAC,gBAAgB,CAAC;IAClG,4BAAoB,CAAC,iBAAiB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,4BAAoB,CAAC,iBAAiB,EAAE,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjI,IAAI,IAAA,uBAAS,EAAC,gBAAgB,CAAC,EAAE;QAC/B,qBAAS,CAAC,iBAAiB,CAAC,oCAAgB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC;KAC/E;IAED,qBAAS,CAAC,iBAAiB,CAAC,2BAAkB,EAAE,EAAE,QAAQ,EAAE,4BAAoB,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxG,CAAC;AATD,gDASC"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../source/templates/module.ts"],"names":[],"mappings":";;;AAAA,4CAAmD;AAEnD,mFAA8E;AAC9E,mFAA8E;AAC9E,2DAAuD;AAGvD,qCAAkE;AAQrD,QAAA,oBAAoB,GAAyB;IACxD,gBAAgB,EAAE,IAAA,qBAAS,EAAC,oCAAgB,CAAC;IAC7C,iBAAiB,EAAE,CAAC,iDAAsB,CAAC;IAC3C,iBAAiB,EAAE,CAAC,iDAAsB,CAAC;CAC5C,CAAC;AAEF,qBAAS,CAAC,iBAAiB,CAAC,oCAAgB,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,4BAAoB,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAEjH,qBAAS,CAAC,iBAAiB,CAAC,2BAAkB,EAAE;IAC9C,UAAU,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE;QACzB,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,OAAO,CAAC,KAAK,IAAI,EAAE;gBACjB,MAAM,QAAQ,GAAG,4BAAoB,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxG,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC,CAAC,EAAE,CAAC;SACN;QAED,MAAM,QAAQ,GAAG,4BAAoB,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7F,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;CACF,CAAC,CAAC;AAEH,qBAAS,CAAC,iBAAiB,CAAC,2BAAkB,EAAE;IAC9C,UAAU,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE;QACzB,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,OAAO,CAAC,KAAK,IAAI,EAAE;gBACjB,MAAM,QAAQ,GAAG,4BAAoB,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxG,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC,CAAC,EAAE,CAAC;SACN;QAED,MAAM,QAAQ,GAAG,4BAAoB,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7F,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;CACF,CAAC,CAAC;AAEH;;GAEG;AACH,SAAgB,kBAAkB,CAAC,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,KAAoC,EAAE;IAC/H,4BAAoB,CAAC,gBAAgB,GAAG,gBAAgB,IAAI,4BAAoB,CAAC,gBAAgB,CAAC;IAClG,4BAAoB,CAAC,iBAAiB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,4BAAoB,CAAC,iBAAiB,EAAE,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACjI,4BAAoB,CAAC,iBAAiB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,4BAAoB,CAAC,iBAAiB,EAAE,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACnI,CAAC;AAJD,gDAIC"}
@@ -0,0 +1,16 @@
1
+ import type { Injectable } from "../../container";
2
+ import { resolveArgumentType } from "../../container";
3
+ import { Template } from '../template.model';
4
+ import { TemplateProvider } from '../template.provider';
5
+ export declare type FileTemplateProviderConfig = {
6
+ basePath?: string;
7
+ };
8
+ export declare type FileTemplateProviderArgument = string;
9
+ export declare const fileTemplateProviderConfig: FileTemplateProviderConfig;
10
+ export declare class FileTemplateProvider extends TemplateProvider implements Injectable<FileTemplateProviderArgument> {
11
+ private readonly basePath;
12
+ readonly [resolveArgumentType]: FileTemplateProviderArgument;
13
+ constructor(basePath: string);
14
+ get(key: string): Promise<Template>;
15
+ }
16
+ export declare function configureFileTemplateProvider(config?: Partial<FileTemplateProviderConfig>): void;
@@ -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