@tstdl/base 0.78.0-beta6 → 0.78.0-beta60

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 (449) hide show
  1. package/api/client/client.d.ts +2 -1
  2. package/api/client/client.js +7 -14
  3. package/api/client/client.js.map +1 -1
  4. package/api/response.js +1 -0
  5. package/api/response.js.map +1 -1
  6. package/api/server/gateway.d.ts +10 -3
  7. package/api/server/gateway.js +16 -14
  8. package/api/server/gateway.js.map +1 -1
  9. package/api/server/middlewares/cors.middleware.d.ts +6 -4
  10. package/api/server/middlewares/cors.middleware.js +30 -30
  11. package/api/server/middlewares/cors.middleware.js.map +1 -1
  12. package/api/types.d.ts +13 -2
  13. package/api/types.js +1 -2
  14. package/api/types.js.map +1 -1
  15. package/api/utils.d.ts +9 -0
  16. package/api/utils.js +15 -0
  17. package/api/utils.js.map +1 -0
  18. package/application/application.js.map +1 -1
  19. package/container/container.js.map +1 -1
  20. package/container/decorators.d.ts +1 -1
  21. package/container/decorators.js.map +1 -1
  22. package/css/theme/theme.service.js.map +1 -1
  23. package/data-structures/index-out-of-bounds.error.d.ts +1 -1
  24. package/data-structures/index-out-of-bounds.error.js +2 -2
  25. package/data-structures/index-out-of-bounds.error.js.map +1 -1
  26. package/data-structures/iterable-weak-map.js +1 -1
  27. package/data-structures/iterable-weak-map.js.map +1 -1
  28. package/data-structures/linked-list.js.map +1 -1
  29. package/data-structures/sorted-array-list.js +2 -2
  30. package/data-structures/sorted-array-list.js.map +1 -1
  31. package/database/mongo/classes.js.map +1 -1
  32. package/database/mongo/mongo-base.repository.js +3 -3
  33. package/database/mongo/mongo-base.repository.js.map +1 -1
  34. package/database/mongo/mongo-entity-repository.js +2 -2
  35. package/database/mongo/mongo-entity-repository.js.map +1 -1
  36. package/distributed-loop/distributed-loop.js.map +1 -1
  37. package/distributed-loop/provider.js.map +1 -1
  38. package/environment.d.ts +10 -0
  39. package/environment.js +26 -0
  40. package/environment.js.map +1 -0
  41. package/error/custom.error.d.ts +7 -3
  42. package/error/custom.error.js +17 -8
  43. package/error/custom.error.js.map +1 -1
  44. package/error/index.d.ts +1 -0
  45. package/error/index.js +1 -0
  46. package/error/index.js.map +1 -1
  47. package/error/not-implemented.error.js +1 -1
  48. package/error/not-implemented.error.js.map +1 -1
  49. package/error/not-supported.error.d.ts +7 -0
  50. package/error/not-supported.error.js +17 -0
  51. package/error/not-supported.error.js.map +1 -0
  52. package/examples/api/basic-overview.js +0 -1
  53. package/examples/api/basic-overview.js.map +1 -1
  54. package/examples/mail/basic.js +12 -7
  55. package/examples/mail/basic.js.map +1 -1
  56. package/examples/mail/templates/hello-name.d.ts +2 -0
  57. package/examples/mail/templates/hello-name.js +11 -0
  58. package/examples/mail/templates/hello-name.js.map +1 -0
  59. package/examples/pdf/basic.js +8 -5
  60. package/examples/pdf/basic.js.map +1 -1
  61. package/examples/pdf/templates/hello-name.d.ts +1 -4
  62. package/examples/pdf/templates/hello-name.js +30 -4
  63. package/examples/pdf/templates/hello-name.js.map +1 -1
  64. package/examples/reflection/basic.js +1 -1
  65. package/examples/reflection/basic.js.map +1 -1
  66. package/examples/template/basic.d.ts +1 -0
  67. package/examples/template/basic.js +25 -0
  68. package/examples/template/basic.js.map +1 -0
  69. package/examples/template/templates/hello-name.d.ts +2 -0
  70. package/examples/template/templates/hello-name.js +23 -0
  71. package/examples/template/templates/hello-name.js.map +1 -0
  72. package/http/client/adapters/got-http-client.adapter.js.map +1 -1
  73. package/http/client/adapters/undici-http-client.adapter.js.map +1 -1
  74. package/http/client/adapters/utils.d.ts +2 -0
  75. package/http/client/adapters/utils.js +27 -11
  76. package/http/client/adapters/utils.js.map +1 -1
  77. package/http/client/http-client-request.d.ts +13 -3
  78. package/http/client/http-client-request.js +4 -0
  79. package/http/client/http-client-request.js.map +1 -1
  80. package/http/client/http-client-response.d.ts +0 -1
  81. package/http/client/http-client-response.js.map +1 -1
  82. package/http/client/http-client.d.ts +0 -3
  83. package/http/client/http-client.js +31 -24
  84. package/http/client/http-client.js.map +1 -1
  85. package/http/http-headers.d.ts +2 -0
  86. package/http/http-headers.js +6 -0
  87. package/http/http-headers.js.map +1 -1
  88. package/http/http-value-map.js +2 -2
  89. package/http/http-value-map.js.map +1 -1
  90. package/http/http.error.d.ts +1 -1
  91. package/http/http.error.js +23 -4
  92. package/http/http.error.js.map +1 -1
  93. package/http/server/node/node-http-server.js.map +1 -1
  94. package/image-service/image-service.js.map +1 -1
  95. package/image-service/imgproxy/imgproxy-image-service.js.map +1 -1
  96. package/json-path/json-path.d.ts +6 -5
  97. package/json-path/json-path.js +7 -0
  98. package/json-path/json-path.js.map +1 -1
  99. package/key-value-store/mongo/mongo-key-value-store.provider.js.map +1 -1
  100. package/key-value-store/mongo/mongo-key-value.repository.js.map +1 -1
  101. package/key-value-store/mongo/mongo-key-value.store.js.map +1 -1
  102. package/lock/mongo/lock.js.map +1 -1
  103. package/lock/mongo/mongo-lock-repository.js.map +1 -1
  104. package/lock/mongo/provider.js.map +1 -1
  105. package/logger/console/logger.js.map +1 -1
  106. package/mail/clients/nodemailer.mail-client.js.map +1 -1
  107. package/mail/index.d.ts +0 -3
  108. package/mail/index.js +0 -3
  109. package/mail/index.js.map +1 -1
  110. package/mail/mail.service.d.ts +3 -5
  111. package/mail/mail.service.js +8 -14
  112. package/mail/mail.service.js.map +1 -1
  113. package/mail/models/mail-template.model.d.ts +11 -10
  114. package/mail/models/mail-template.model.js +7 -0
  115. package/mail/models/mail-template.model.js.map +1 -1
  116. package/mail/module.d.ts +1 -5
  117. package/mail/module.js +2 -11
  118. package/mail/module.js.map +1 -1
  119. package/mail/repositories/mongo-mail-log.repository.js.map +1 -1
  120. package/mail/tokens.d.ts +0 -3
  121. package/mail/tokens.js +1 -2
  122. package/mail/tokens.js.map +1 -1
  123. package/message-bus/local/local-message-bus-provider.js.map +1 -1
  124. package/message-bus/local/local-message-bus.js.map +1 -1
  125. package/migration/migrator.js.map +1 -1
  126. package/migration/mongo/migration-state-repository.js.map +1 -1
  127. package/module/modules/web-server.module.js.map +1 -1
  128. package/object-storage/s3/s3.object-storage-provider.js.map +1 -1
  129. package/object-storage/s3/s3.object-storage.js.map +1 -1
  130. package/openid-connect/cached-oidc-configuration.service.js.map +1 -1
  131. package/openid-connect/mongo-oidc-state.repository.js.map +1 -1
  132. package/openid-connect/oidc-configuration.service.d.ts +2 -1
  133. package/openid-connect/oidc-configuration.service.js +5 -3
  134. package/openid-connect/oidc-configuration.service.js.map +1 -1
  135. package/openid-connect/oidc.service-model.d.ts +11 -3
  136. package/openid-connect/oidc.service.d.ts +6 -3
  137. package/openid-connect/oidc.service.js +72 -25
  138. package/openid-connect/oidc.service.js.map +1 -1
  139. package/orm/decorators.d.ts +0 -0
  140. package/orm/decorators.js +2 -0
  141. package/orm/decorators.js.map +1 -0
  142. package/orm/mongo/mongo-repository.d.ts +2 -0
  143. package/orm/mongo/mongo-repository.js +7 -0
  144. package/orm/mongo/mongo-repository.js.map +1 -0
  145. package/orm/sql/sql-repository.d.ts +6 -0
  146. package/orm/sql/sql-repository.js +14 -0
  147. package/orm/sql/sql-repository.js.map +1 -0
  148. package/orm/test.d.ts +1 -0
  149. package/{templates/providers/memory-template.provider.js → orm/test.js} +13 -9
  150. package/orm/test.js.map +1 -0
  151. package/orm/types.d.ts +20 -0
  152. package/orm/types.js +55 -0
  153. package/orm/types.js.map +1 -0
  154. package/package.json +11 -10
  155. package/pdf/pdf.service.d.ts +48 -10
  156. package/pdf/pdf.service.js +123 -13
  157. package/pdf/pdf.service.js.map +1 -1
  158. package/pool/pool.d.ts +6 -1
  159. package/pool/pool.js +4 -1
  160. package/pool/pool.js.map +1 -1
  161. package/promise/deferred-promise.d.ts +2 -15
  162. package/promise/deferred-promise.js +5 -10
  163. package/promise/deferred-promise.js.map +1 -1
  164. package/promise/index.d.ts +1 -0
  165. package/promise/index.js +1 -0
  166. package/promise/index.js.map +1 -1
  167. package/promise/lazy-promise.d.ts +11 -0
  168. package/promise/lazy-promise.js +31 -0
  169. package/promise/lazy-promise.js.map +1 -0
  170. package/queue/mongo/mongo-job.repository.js +1 -1
  171. package/queue/mongo/mongo-job.repository.js.map +1 -1
  172. package/queue/mongo/queue.js.map +1 -1
  173. package/queue/mongo/queue.provider.js.map +1 -1
  174. package/reflection/decorator-data.js +1 -1
  175. package/reflection/decorator-data.js.map +1 -1
  176. package/reflection/decorators.d.ts +2 -2
  177. package/reflection/decorators.js +7 -7
  178. package/reflection/decorators.js.map +1 -1
  179. package/reflection/registry.d.ts +8 -8
  180. package/reflection/registry.js +1 -1
  181. package/reflection/registry.js.map +1 -1
  182. package/reflection/types.d.ts +3 -2
  183. package/reflection/utils.d.ts +7 -2
  184. package/reflection/utils.js +38 -12
  185. package/reflection/utils.js.map +1 -1
  186. package/require.d.ts +1 -0
  187. package/require.js +9 -0
  188. package/require.js.map +1 -0
  189. package/rpc/endpoints/message-port.rpc-endpoint.d.ts +19 -0
  190. package/rpc/endpoints/message-port.rpc-endpoint.js +34 -0
  191. package/rpc/endpoints/message-port.rpc-endpoint.js.map +1 -0
  192. package/rpc/index.d.ts +4 -0
  193. package/rpc/index.js +21 -0
  194. package/rpc/index.js.map +1 -0
  195. package/rpc/model.d.ts +72 -0
  196. package/rpc/model.js +13 -0
  197. package/rpc/model.js.map +1 -0
  198. package/rpc/rpc-endpoint.d.ts +11 -0
  199. package/rpc/rpc-endpoint.js +23 -0
  200. package/rpc/rpc-endpoint.js.map +1 -0
  201. package/rpc/rpc-error.d.ts +8 -0
  202. package/rpc/rpc-error.js +26 -0
  203. package/rpc/rpc-error.js.map +1 -0
  204. package/rpc/rpc.d.ts +19 -0
  205. package/rpc/rpc.js +263 -0
  206. package/rpc/rpc.js.map +1 -0
  207. package/schema/array-constraints/maximum-length.d.ts +2 -2
  208. package/schema/array-constraints/maximum-length.js +3 -3
  209. package/schema/array-constraints/maximum-length.js.map +1 -1
  210. package/schema/array-constraints/minimum-length.d.ts +2 -2
  211. package/schema/array-constraints/minimum-length.js +3 -3
  212. package/schema/array-constraints/minimum-length.js.map +1 -1
  213. package/schema/coercers/boolean.coercer.d.ts +2 -2
  214. package/schema/coercers/boolean.coercer.js +2 -2
  215. package/schema/coercers/boolean.coercer.js.map +1 -1
  216. package/schema/coercers/date.coercer.d.ts +2 -2
  217. package/schema/coercers/date.coercer.js +2 -2
  218. package/schema/coercers/date.coercer.js.map +1 -1
  219. package/schema/coercers/number.coercer.d.ts +2 -2
  220. package/schema/coercers/number.coercer.js +2 -2
  221. package/schema/coercers/number.coercer.js.map +1 -1
  222. package/schema/coercers/regexp.coercer.d.ts +2 -2
  223. package/schema/coercers/regexp.coercer.js +2 -2
  224. package/schema/coercers/regexp.coercer.js.map +1 -1
  225. package/schema/coercers/string.coercer.d.ts +3 -3
  226. package/schema/coercers/string.coercer.js +2 -2
  227. package/schema/coercers/string.coercer.js.map +1 -1
  228. package/schema/coercers/uint8-array.coercer.js +3 -3
  229. package/schema/coercers/uint8-array.coercer.js.map +1 -1
  230. package/schema/constraints/enumeration.d.ts +5 -5
  231. package/schema/constraints/enumeration.js +3 -3
  232. package/schema/constraints/enumeration.js.map +1 -1
  233. package/schema/constraints/generic.d.ts +2 -2
  234. package/schema/constraints/generic.js +3 -3
  235. package/schema/constraints/generic.js.map +1 -1
  236. package/schema/constraints/integer.d.ts +2 -2
  237. package/schema/constraints/integer.js +3 -3
  238. package/schema/constraints/integer.js.map +1 -1
  239. package/schema/constraints/literal.d.ts +2 -2
  240. package/schema/constraints/literal.js +3 -3
  241. package/schema/constraints/literal.js.map +1 -1
  242. package/schema/constraints/maximum-date.d.ts +2 -2
  243. package/schema/constraints/maximum-date.js +3 -3
  244. package/schema/constraints/maximum-date.js.map +1 -1
  245. package/schema/constraints/maximum-length.d.ts +2 -2
  246. package/schema/constraints/maximum-length.js +3 -3
  247. package/schema/constraints/maximum-length.js.map +1 -1
  248. package/schema/constraints/maximum.d.ts +2 -2
  249. package/schema/constraints/maximum.js +3 -3
  250. package/schema/constraints/maximum.js.map +1 -1
  251. package/schema/constraints/minimum-date.d.ts +2 -2
  252. package/schema/constraints/minimum-date.js +3 -3
  253. package/schema/constraints/minimum-date.js.map +1 -1
  254. package/schema/constraints/minimum-length.d.ts +2 -2
  255. package/schema/constraints/minimum-length.js +3 -3
  256. package/schema/constraints/minimum-length.js.map +1 -1
  257. package/schema/constraints/minimum.d.ts +2 -2
  258. package/schema/constraints/minimum.js +3 -3
  259. package/schema/constraints/minimum.js.map +1 -1
  260. package/schema/constraints/pattern.d.ts +2 -2
  261. package/schema/constraints/pattern.js +3 -3
  262. package/schema/constraints/pattern.js.map +1 -1
  263. package/schema/decorators/optional.d.ts +3 -1
  264. package/schema/decorators/optional.js +2 -2
  265. package/schema/decorators/optional.js.map +1 -1
  266. package/schema/decorators/types.d.ts +3 -3
  267. package/schema/decorators/utils.d.ts +3 -2
  268. package/schema/decorators/utils.js +8 -4
  269. package/schema/decorators/utils.js.map +1 -1
  270. package/schema/schema.d.ts +4 -10
  271. package/schema/schema.error.d.ts +5 -4
  272. package/schema/schema.error.js +3 -3
  273. package/schema/schema.error.js.map +1 -1
  274. package/schema/schema.js +129 -123
  275. package/schema/schema.js.map +1 -1
  276. package/schema/schemas/assign.d.ts +5 -5
  277. package/schema/schemas/assign.js.map +1 -1
  278. package/schema/schemas/exclude.d.ts +4 -1
  279. package/schema/schemas/exclude.js +6 -11
  280. package/schema/schemas/exclude.js.map +1 -1
  281. package/schema/schemas/index.d.ts +1 -0
  282. package/schema/schemas/index.js +1 -0
  283. package/schema/schemas/index.js.map +1 -1
  284. package/schema/schemas/number.d.ts +1 -1
  285. package/schema/schemas/number.js.map +1 -1
  286. package/schema/schemas/omit.d.ts +4 -0
  287. package/schema/schemas/omit.js +17 -0
  288. package/schema/schemas/omit.js.map +1 -0
  289. package/schema/schemas/union.d.ts +2 -7
  290. package/schema/schemas/union.js.map +1 -1
  291. package/schema/types.d.ts +33 -23
  292. package/schema/types.js +21 -8
  293. package/schema/types.js.map +1 -1
  294. package/schema/utils/schema.d.ts +3 -0
  295. package/schema/utils/schema.js +46 -4
  296. package/schema/utils/schema.js.map +1 -1
  297. package/schema/utils/value-type.d.ts +4 -2
  298. package/schema/utils/value-type.js +23 -8
  299. package/schema/utils/value-type.js.map +1 -1
  300. package/search-index/elastic/config.js.map +1 -1
  301. package/search-index/elastic/model/index-mapping.d.ts +2 -1
  302. package/search-index/elastic/model/index-mapping.js.map +1 -1
  303. package/search-index/elastic/search-index.js +5 -4
  304. package/search-index/elastic/search-index.js.map +1 -1
  305. package/search-index/error.d.ts +1 -1
  306. package/search-index/error.js +2 -2
  307. package/search-index/error.js.map +1 -1
  308. package/serializer/handlers/register.d.ts +2 -2
  309. package/serializer/handlers/register.js +4 -1
  310. package/serializer/handlers/register.js.map +1 -1
  311. package/serializer/serializable.d.ts +11 -8
  312. package/serializer/serializable.js +13 -4
  313. package/serializer/serializable.js.map +1 -1
  314. package/serializer/serializer.js +18 -5
  315. package/serializer/serializer.js.map +1 -1
  316. package/serializer/types.d.ts +21 -6
  317. package/serializer/types.js +2 -1
  318. package/serializer/types.js.map +1 -1
  319. package/templates/index.d.ts +2 -0
  320. package/templates/index.js +2 -0
  321. package/templates/index.js.map +1 -1
  322. package/templates/module.d.ts +3 -1
  323. package/templates/module.js +31 -8
  324. package/templates/module.js.map +1 -1
  325. package/templates/providers/file.provider-template.d.ts +16 -0
  326. package/templates/providers/{file-template.provider.js → file.provider-template.js} +22 -15
  327. package/templates/providers/file.provider-template.js.map +1 -0
  328. package/templates/providers/memory.template-provider.d.ts +8 -0
  329. package/templates/providers/{memory-template.provider.base.js → memory.template-provider.js} +8 -6
  330. package/templates/providers/memory.template-provider.js.map +1 -0
  331. package/templates/renderers/handlebars.template-renderer.d.ts +38 -6
  332. package/templates/renderers/handlebars.template-renderer.js +70 -3
  333. package/templates/renderers/handlebars.template-renderer.js.map +1 -1
  334. package/templates/renderers/mjml.template-renderer.d.ts +6 -6
  335. package/templates/renderers/mjml.template-renderer.js +8 -9
  336. package/templates/renderers/mjml.template-renderer.js.map +1 -1
  337. package/templates/renderers/string.template-renderer.d.ts +8 -0
  338. package/{mail/template-providers/memory-mail-template.provider.js → templates/renderers/string.template-renderer.js} +13 -7
  339. package/templates/renderers/string.template-renderer.js.map +1 -0
  340. package/templates/resolvers/file.template-resolver.d.ts +23 -0
  341. package/templates/resolvers/file.template-resolver.js +63 -0
  342. package/templates/resolvers/file.template-resolver.js.map +1 -0
  343. package/templates/resolvers/string.template-resolver.d.ts +13 -0
  344. package/templates/resolvers/string.template-resolver.js +44 -0
  345. package/templates/resolvers/string.template-resolver.js.map +1 -0
  346. package/templates/template-renderer.provider.js +7 -19
  347. package/templates/template-renderer.provider.js.map +1 -1
  348. package/templates/template-resolver.provider.d.ts +8 -0
  349. package/templates/template-resolver.provider.js +48 -0
  350. package/templates/template-resolver.provider.js.map +1 -0
  351. package/templates/template.model.d.ts +15 -4
  352. package/templates/template.model.js +50 -0
  353. package/templates/template.model.js.map +1 -1
  354. package/templates/template.renderer.d.ts +14 -3
  355. package/templates/template.renderer.js +3 -0
  356. package/templates/template.renderer.js.map +1 -1
  357. package/templates/template.resolver.d.ts +5 -0
  358. package/templates/template.resolver.js +7 -0
  359. package/templates/template.resolver.js.map +1 -0
  360. package/templates/template.service.d.ts +10 -4
  361. package/templates/template.service.js +19 -6
  362. package/templates/template.service.js.map +1 -1
  363. package/templates/tokens.d.ts +3 -2
  364. package/templates/tokens.js +2 -1
  365. package/templates/tokens.js.map +1 -1
  366. package/threading/index.d.ts +2 -0
  367. package/threading/index.js +19 -0
  368. package/threading/index.js.map +1 -0
  369. package/threading/thread-pool.d.ts +19 -0
  370. package/threading/thread-pool.js +50 -0
  371. package/threading/thread-pool.js.map +1 -0
  372. package/threading/thread-worker.d.ts +3 -0
  373. package/threading/thread-worker.js +9 -0
  374. package/threading/thread-worker.js.map +1 -0
  375. package/types.d.ts +20 -7
  376. package/utils/alphabet.d.ts +3 -1
  377. package/utils/alphabet.js +2 -0
  378. package/utils/alphabet.js.map +1 -1
  379. package/utils/array/array.d.ts +1 -2
  380. package/utils/array/array.js.map +1 -1
  381. package/utils/clone.js +4 -0
  382. package/utils/clone.js.map +1 -1
  383. package/utils/compression.d.ts +13 -13
  384. package/utils/compression.js +10 -9
  385. package/utils/compression.js.map +1 -1
  386. package/utils/encoding.js +3 -3
  387. package/utils/encoding.js.map +1 -1
  388. package/utils/enum.d.ts +5 -8
  389. package/utils/enum.js +15 -13
  390. package/utils/enum.js.map +1 -1
  391. package/utils/function/memoize.js +4 -4
  392. package/utils/function/memoize.js.map +1 -1
  393. package/utils/helpers.d.ts +0 -2
  394. package/utils/helpers.js +1 -12
  395. package/utils/helpers.js.map +1 -1
  396. package/utils/image.js +2 -2
  397. package/utils/image.js.map +1 -1
  398. package/utils/index.d.ts +2 -0
  399. package/utils/index.js +2 -0
  400. package/utils/index.js.map +1 -1
  401. package/utils/object/dereference.d.ts +7 -5
  402. package/utils/object/dereference.js +4 -4
  403. package/utils/object/dereference.js.map +1 -1
  404. package/utils/object/forward-ref.js +3 -19
  405. package/utils/object/forward-ref.js.map +1 -1
  406. package/utils/object/property-name.d.ts +2 -2
  407. package/utils/proxy.d.ts +6 -0
  408. package/utils/proxy.js +21 -0
  409. package/utils/proxy.js.map +1 -0
  410. package/utils/stream/stream-reader.js +6 -5
  411. package/utils/stream/stream-reader.js.map +1 -1
  412. package/utils/throw.d.ts +2 -0
  413. package/utils/throw.js +15 -0
  414. package/utils/throw.js.map +1 -0
  415. package/utils/type-guards.d.ts +15 -3
  416. package/utils/type-guards.js +29 -5
  417. package/utils/type-guards.js.map +1 -1
  418. package/web-types.d.ts +28 -0
  419. package/web-types.js +3 -0
  420. package/web-types.js.map +1 -0
  421. package/mail/mail-template-renderer.provider.d.ts +0 -8
  422. package/mail/mail-template-renderer.provider.js +0 -60
  423. package/mail/mail-template-renderer.provider.js.map +0 -1
  424. package/mail/mail-template.provider.d.ts +0 -4
  425. package/mail/mail-template.provider.js +0 -7
  426. package/mail/mail-template.provider.js.map +0 -1
  427. package/mail/mail-template.renderer.d.ts +0 -10
  428. package/mail/mail-template.renderer.js +0 -7
  429. package/mail/mail-template.renderer.js.map +0 -1
  430. package/mail/template-providers/file-mail-template.provider.d.ts +0 -24
  431. package/mail/template-providers/file-mail-template.provider.js +0 -51
  432. package/mail/template-providers/file-mail-template.provider.js.map +0 -1
  433. package/mail/template-providers/memory-mail-template.provider.d.ts +0 -6
  434. package/mail/template-providers/memory-mail-template.provider.js.map +0 -1
  435. package/mail/template-renderers/handlebars.mail-template-renderer.d.ts +0 -13
  436. package/mail/template-renderers/handlebars.mail-template-renderer.js +0 -49
  437. package/mail/template-renderers/handlebars.mail-template-renderer.js.map +0 -1
  438. package/mail/template-renderers/mjml.mail-template-renderer.d.ts +0 -14
  439. package/mail/template-renderers/mjml.mail-template-renderer.js +0 -63
  440. package/mail/template-renderers/mjml.mail-template-renderer.js.map +0 -1
  441. package/templates/providers/file-template.provider.base.d.ts +0 -12
  442. package/templates/providers/file-template.provider.base.js +0 -50
  443. package/templates/providers/file-template.provider.base.js.map +0 -1
  444. package/templates/providers/file-template.provider.d.ts +0 -22
  445. package/templates/providers/file-template.provider.js.map +0 -1
  446. package/templates/providers/memory-template.provider.base.d.ts +0 -9
  447. package/templates/providers/memory-template.provider.base.js.map +0 -1
  448. package/templates/providers/memory-template.provider.d.ts +0 -4
  449. package/templates/providers/memory-template.provider.js.map +0 -1
@@ -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
+ }
@@ -0,0 +1,48 @@
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.TemplateResolverProvider = void 0;
16
+ const container_1 = require("../container");
17
+ const tokens_1 = require("./tokens");
18
+ let TemplateResolverProvider = class TemplateResolverProvider {
19
+ constructor(resolvers) {
20
+ this.resolvers = new Set(resolvers);
21
+ }
22
+ register(renderer) {
23
+ this.resolvers.add(renderer);
24
+ }
25
+ has(type) {
26
+ for (const renderer of this.resolvers) {
27
+ if (renderer.canHandle(type)) {
28
+ return true;
29
+ }
30
+ }
31
+ return false;
32
+ }
33
+ get(type) {
34
+ for (const renderer of this.resolvers) {
35
+ if (renderer.canHandle(type)) {
36
+ return renderer;
37
+ }
38
+ }
39
+ throw new Error(`No resolver for ${type} registered.`);
40
+ }
41
+ };
42
+ TemplateResolverProvider = __decorate([
43
+ (0, container_1.singleton)(),
44
+ __param(0, (0, container_1.inject)(tokens_1.TEMPLATE_RESOLVERS)),
45
+ __metadata("design:paramtypes", [Array])
46
+ ], TemplateResolverProvider);
47
+ exports.TemplateResolverProvider = TemplateResolverProvider;
48
+ //# sourceMappingURL=template-resolver.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-resolver.provider.js","sourceRoot":"","sources":["../../source/templates/template-resolver.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,SAAS,CAAC,IAAI,CAAC,EAAE;gBAC5B,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,SAAS,CAAC,IAAI,CAAC,EAAE;gBAC5B,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"}
@@ -1,5 +1,16 @@
1
- export declare type Template<Type extends string = string, Options = any> = {
2
- type: Type;
3
- template: string;
1
+ import type { PickBy, Record, SimplifyObject } from "../types";
2
+ export declare class TemplateField<Resolver extends string = string, Renderer extends string = string, Options = any> {
3
+ resolver: Resolver;
4
+ renderer: Renderer;
4
5
  options?: Options;
5
- };
6
+ }
7
+ export declare type TemplateFields<Fields extends Record<string, boolean>, Resolver extends string = string, Renderer extends string = string, Options = any> = SimplifyObject<{
8
+ [P in keyof PickBy<Fields, true>]: TemplateField<Resolver, Renderer, Options>;
9
+ } & {
10
+ [P in keyof PickBy<Fields, false>]?: TemplateField<Resolver, Renderer, Options>;
11
+ }>;
12
+ export declare abstract class Template<Fields extends Record<string, boolean> = Record<string, boolean>, TemplateOptions = any> {
13
+ fields: TemplateFields<Fields>;
14
+ options?: TemplateOptions;
15
+ }
16
+ export declare function simpleTemplate(template: TemplateField): Template;
@@ -1,3 +1,53 @@
1
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
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.simpleTemplate = exports.Template = exports.TemplateField = void 0;
13
+ const schema_1 = require("../schema");
14
+ let TemplateField = class TemplateField {
15
+ };
16
+ __decorate([
17
+ (0, schema_1.Property)(),
18
+ __metadata("design:type", String)
19
+ ], TemplateField.prototype, "resolver", void 0);
20
+ __decorate([
21
+ (0, schema_1.Property)(),
22
+ __metadata("design:type", String)
23
+ ], TemplateField.prototype, "renderer", void 0);
24
+ __decorate([
25
+ (0, schema_1.Any)(),
26
+ (0, schema_1.Optional)(),
27
+ __metadata("design:type", Object)
28
+ ], TemplateField.prototype, "options", void 0);
29
+ TemplateField = __decorate([
30
+ (0, schema_1.Type)({ allowUnknownProperties: (0, schema_1.any)() })
31
+ ], TemplateField);
32
+ exports.TemplateField = TemplateField;
33
+ class Template {
34
+ }
35
+ __decorate([
36
+ (0, schema_1.Property)({ schema: (0, schema_1.object)({}, { allowUnknownProperties: TemplateField }) }),
37
+ __metadata("design:type", Object)
38
+ ], Template.prototype, "fields", void 0);
39
+ __decorate([
40
+ (0, schema_1.Any)(),
41
+ (0, schema_1.Optional)(),
42
+ __metadata("design:type", Object)
43
+ ], Template.prototype, "options", void 0);
44
+ exports.Template = Template;
45
+ function simpleTemplate(template) {
46
+ return {
47
+ fields: {
48
+ template
49
+ }
50
+ };
51
+ }
52
+ exports.simpleTemplate = simpleTemplate;
3
53
  //# sourceMappingURL=template.model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template.model.js","sourceRoot":"","sources":["../../source/templates/template.model.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"template.model.js","sourceRoot":"","sources":["../../source/templates/template.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAAsE;AAI/D,IAAM,aAAa,GAAnB,MAAM,aAAa;CAUzB,CAAA;AATC;IAAC,IAAA,iBAAQ,GAAE;;+CACQ;AAEnB;IAAC,IAAA,iBAAQ,GAAE;;+CACQ;AAEnB;IAAC,IAAA,YAAG,GAAE;IACL,IAAA,iBAAQ,GAAE;;8CACO;AATP,aAAa;IADzB,IAAA,aAAI,EAAC,EAAE,sBAAsB,EAAE,IAAA,YAAG,GAAE,EAAE,CAAC;GAC3B,aAAa,CAUzB;AAVY,sCAAa;AAiB1B,MAAsB,QAAQ;CAO7B;AANC;IAAC,IAAA,iBAAQ,EAAC,EAAE,MAAM,EAAE,IAAA,eAAM,EAAC,EAAE,EAAE,EAAE,sBAAsB,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;;wCAC7C;AAE/B;IAAC,IAAA,YAAG,GAAE;IACL,IAAA,iBAAQ,GAAE;;yCACe;AAN5B,4BAOC;AAED,SAAgB,cAAc,CAAC,QAAuB;IACpD,OAAO;QACL,MAAM,EAAE;YACN,QAAQ;SACT;KACF,CAAC;AACJ,CAAC;AAND,wCAMC"}
@@ -1,6 +1,17 @@
1
- import type { Template } from './template.model';
2
1
  export declare type TemplateRenderResult = string;
3
- export declare abstract class TemplateRenderer<T extends Template = Template> {
2
+ export declare type TemplateRenderObject<Renderer extends string = string, Options = any> = {
3
+ renderer: Renderer;
4
+ template: string;
5
+ options?: Options;
6
+ };
7
+ export declare type TemplateRendererString = typeof templateRendererString;
8
+ export declare type TemplateRendererOptions = typeof templateRendererOptions;
9
+ export declare const templateRendererString: unique symbol;
10
+ export declare const templateRendererOptions: unique symbol;
11
+ export declare abstract class TemplateRenderer<Renderer extends string = string, Options = any> {
12
+ readonly [templateRendererString]: Renderer;
13
+ readonly [templateRendererOptions]: Options;
14
+ render(template: TemplateRenderObject<Renderer, Options>, context?: object): Promise<TemplateRenderResult>;
4
15
  abstract canHandleType(type: string): boolean;
5
- abstract render(template: T, context?: object): Promise<TemplateRenderResult>;
16
+ protected abstract _render(renderObject: TemplateRenderObject<Renderer, Options>, context?: object): TemplateRenderResult | Promise<TemplateRenderResult>;
6
17
  }
@@ -2,6 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TemplateRenderer = void 0;
4
4
  class TemplateRenderer {
5
+ async render(template, context) {
6
+ return this._render(template, context);
7
+ }
5
8
  }
6
9
  exports.TemplateRenderer = TemplateRenderer;
7
10
  //# sourceMappingURL=template.renderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template.renderer.js","sourceRoot":"","sources":["../../source/templates/template.renderer.ts"],"names":[],"mappings":";;;AAIA,MAAsB,gBAAgB;CAIrC;AAJD,4CAIC"}
1
+ {"version":3,"file":"template.renderer.js","sourceRoot":"","sources":["../../source/templates/template.renderer.ts"],"names":[],"mappings":";;;AAcA,MAAsB,gBAAgB;IAIpC,KAAK,CAAC,MAAM,CAAC,QAAiD,EAAE,OAAgB;QAC9E,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;CAKF;AAXD,4CAWC"}
@@ -0,0 +1,5 @@
1
+ import type { TemplateField } from './template.model';
2
+ export declare abstract class TemplateResolver<T extends TemplateField = TemplateField> {
3
+ abstract canHandle(resolver: string): boolean;
4
+ abstract resolve(field: T): Promise<string>;
5
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TemplateResolver = void 0;
4
+ class TemplateResolver {
5
+ }
6
+ exports.TemplateResolver = TemplateResolver;
7
+ //# sourceMappingURL=template.resolver.js.map