@tstdl/base 0.78.0-beta6 → 0.78.0-beta61

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 +27 -9
  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
@@ -1,4 +1,4 @@
1
- import type { Constructor, Type } from "../types";
1
+ import type { AbstractConstructor, Record, Type, TypedOmit } from "../types";
2
2
  export declare const Serializable: {
3
3
  readonly serialize: unique symbol;
4
4
  readonly deserialize: unique symbol;
@@ -6,25 +6,28 @@ export declare const Serializable: {
6
6
  export declare type DereferenceCallback = (dereferenced: unknown) => void;
7
7
  export declare type TryDereference = (value: unknown, callback: DereferenceCallback) => boolean;
8
8
  export interface Serializable<T, Data> {
9
- [Serializable.serialize](instance: T): Data;
10
- [Serializable.deserialize](data: Data, tryDereference: TryDereference): T;
9
+ [Serializable.serialize](instance: T, context: Record): Data;
10
+ [Serializable.deserialize](data: Data, tryDereference: TryDereference, context: Record): T;
11
11
  }
12
12
  export declare type SerializableType<T, Data> = Type<Serializable<T, Data>>;
13
13
  export declare type SerializeFunction<T, Data> = Serializable<T, Data>[typeof Serializable.serialize];
14
14
  export declare type DeserializeFunction<T, Data> = Serializable<T, Data>[typeof Serializable.deserialize];
15
- declare type SerializableRegistration<T, Data> = {
15
+ declare type SerializableRegistration<T = any, Data = any> = {
16
16
  type: string;
17
- constructor: Constructor<T>;
17
+ serializeData?: boolean;
18
+ constructor: AbstractConstructor<T>;
18
19
  serializer: SerializeFunction<T, Data>;
19
20
  deserializer: DeserializeFunction<T, Data>;
20
21
  };
21
- export declare function getTypeNameByConstructor(constructor: Constructor): string | undefined;
22
- export declare function getSerializerByTypeName(typeName: string): SerializableRegistration<any, any> | undefined;
22
+ export declare function getTypeNameByConstructor(constructor: AbstractConstructor): string | undefined;
23
+ export declare function getSerializerByTypeName(typeName: string): SerializableRegistration | undefined;
24
+ export declare function registerRawSerializable(constructor: AbstractConstructor): void;
25
+ export declare function isRawSerializable(constructor: AbstractConstructor): boolean;
23
26
  export declare function serializable<T extends Serializable<any, Data>, Data>(typeName?: string): (target: SerializableType<T, Data>) => void;
24
27
  /**
25
28
  * register a serializable type for serialization
26
29
  * @param type class implementing {@link Serializable}
27
30
  */
28
31
  export declare function registerSerializable<T extends Serializable<any, Data>, Data>(type: SerializableType<T, Data>, typeName?: string): void;
29
- export declare function registerSerializer<T, Data>(constructor: Constructor<T>, typeName: string, serializer: SerializeFunction<T, Data>, deserializer: DeserializeFunction<T, Data>): void;
32
+ export declare function registerSerializer<T, Data>(constructor: AbstractConstructor<T>, typeName: string, serializer: SerializeFunction<T, Data>, deserializer: DeserializeFunction<T, Data>, options?: TypedOmit<SerializableRegistration, 'constructor' | 'deserializer' | 'serializer' | 'type'>): void;
30
33
  export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerSerializer = exports.registerSerializable = exports.serializable = exports.getSerializerByTypeName = exports.getTypeNameByConstructor = exports.Serializable = void 0;
3
+ exports.registerSerializer = exports.registerSerializable = exports.serializable = exports.isRawSerializable = exports.registerRawSerializable = exports.getSerializerByTypeName = exports.getTypeNameByConstructor = exports.Serializable = void 0;
4
4
  const type_guards_1 = require("../utils/type-guards");
5
5
  const handlers_1 = require("./handlers");
6
6
  // eslint-disable-next-line @typescript-eslint/naming-convention
@@ -10,6 +10,7 @@ exports.Serializable = {
10
10
  };
11
11
  const constructorTypeNameMap = new Map();
12
12
  const typeNameSerializerMap = new Map();
13
+ const rawSet = new Set();
13
14
  function getTypeNameByConstructor(constructor) {
14
15
  return constructorTypeNameMap.get(constructor);
15
16
  }
@@ -18,6 +19,14 @@ function getSerializerByTypeName(typeName) {
18
19
  return typeNameSerializerMap.get(typeName);
19
20
  }
20
21
  exports.getSerializerByTypeName = getSerializerByTypeName;
22
+ function registerRawSerializable(constructor) {
23
+ rawSet.add(constructor);
24
+ }
25
+ exports.registerRawSerializable = registerRawSerializable;
26
+ function isRawSerializable(constructor) {
27
+ return rawSet.has(constructor);
28
+ }
29
+ exports.isRawSerializable = isRawSerializable;
21
30
  function serializable(typeName) {
22
31
  function serializableDecorator(type) {
23
32
  registerSerializable(type, typeName);
@@ -37,17 +46,17 @@ function registerSerializable(type, typeName) {
37
46
  registerSerializer(type, typeName ?? type.name, serializer, deserializer);
38
47
  }
39
48
  exports.registerSerializable = registerSerializable;
40
- function registerSerializer(constructor, typeName, serializer, deserializer) {
49
+ function registerSerializer(constructor, typeName, serializer, deserializer, options) {
41
50
  const existingMappedType = constructorTypeNameMap.get(constructor);
42
51
  const existingMappedSerializer = typeNameSerializerMap.get(typeName);
43
52
  if ((0, type_guards_1.isDefined)(existingMappedType) || (0, type_guards_1.isDefined)(existingMappedSerializer)) {
44
53
  const ctor = existingMappedSerializer?.constructor ?? constructor;
45
54
  throw new Error(`serializer for constructor ${ctor.name} is already registered as ${existingMappedType ?? typeName}`);
46
55
  }
47
- const registration = { type: typeName, constructor, serializer, deserializer };
56
+ const registration = { ...options, type: typeName, constructor, serializer, deserializer };
48
57
  constructorTypeNameMap.set(constructor, typeName);
49
58
  typeNameSerializerMap.set(typeName, registration);
50
59
  }
51
60
  exports.registerSerializer = registerSerializer;
52
- (0, handlers_1.registerDefaultSerializers)(registerSerializer);
61
+ (0, handlers_1.registerDefaultSerializers)(registerSerializer, registerRawSerializable);
53
62
  //# sourceMappingURL=serializable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serializable.js","sourceRoot":"","sources":["../../source/serializer/serializable.ts"],"names":[],"mappings":";;;AACA,sDAA4D;AAC5D,yCAAwD;AAExD,gEAAgE;AACnD,QAAA,YAAY,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;CAInC,CAAC;AAwBF,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAuB,CAAC;AAC9D,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAA8C,CAAC;AAEpF,SAAgB,wBAAwB,CAAC,WAAwB;IAC/D,OAAO,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACjD,CAAC;AAFD,4DAEC;AAED,SAAgB,uBAAuB,CAAC,QAAgB;IACtD,OAAO,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAFD,0DAEC;AAED,SAAgB,YAAY,CAA0C,QAAiB;IACrF,SAAS,qBAAqB,CAAC,IAA+B;QAC5D,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAND,oCAMC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAA0C,IAA+B,EAAE,QAAiB;IAC9H,MAAM,EAAE,CAAC,oBAAY,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC,oBAAY,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,GAAI,IAAI,CAAC,SAAe,CAAC;IAEjH,IAAI,CAAC,IAAA,wBAAU,EAAC,UAAU,CAAC,IAAI,CAAC,IAAA,wBAAU,EAAC,YAAY,CAAC,EAAE;QACxD,MAAM,IAAI,KAAK,CAAC,sGAAsG,CAAC,CAAC;KACzH;IAED,kBAAkB,CAAC,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;AAC5E,CAAC;AARD,oDAQC;AAED,SAAgB,kBAAkB,CAAU,WAA2B,EAAE,QAAgB,EAAE,UAAsC,EAAE,YAA0C;IAC3K,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACnE,MAAM,wBAAwB,GAAG,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAErE,IAAI,IAAA,uBAAS,EAAC,kBAAkB,CAAC,IAAI,IAAA,uBAAS,EAAC,wBAAwB,CAAC,EAAE;QACxE,MAAM,IAAI,GAAG,wBAAwB,EAAE,WAAW,IAAI,WAAW,CAAC;QAClE,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,IAAI,6BAA6B,kBAAkB,IAAI,QAAQ,EAAE,CAAC,CAAC;KACvH;IAED,MAAM,YAAY,GAAsC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;IAElH,sBAAsB,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAClD,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AACpD,CAAC;AAbD,gDAaC;AAED,IAAA,qCAA0B,EAAC,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"serializable.js","sourceRoot":"","sources":["../../source/serializer/serializable.ts"],"names":[],"mappings":";;;AACA,sDAA4D;AAC5D,yCAAwD;AAExD,gEAAgE;AACnD,QAAA,YAAY,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;CAInC,CAAC;AAyBF,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAA+B,CAAC;AACtE,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAoC,CAAC;AAC1E,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;AAE9C,SAAgB,wBAAwB,CAAC,WAAgC;IACvE,OAAO,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACjD,CAAC;AAFD,4DAEC;AAED,SAAgB,uBAAuB,CAAC,QAAgB;IACtD,OAAO,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAFD,0DAEC;AAED,SAAgB,uBAAuB,CAAC,WAAgC;IACtE,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC1B,CAAC;AAFD,0DAEC;AAED,SAAgB,iBAAiB,CAAC,WAAgC;IAChE,OAAO,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACjC,CAAC;AAFD,8CAEC;AAED,SAAgB,YAAY,CAA0C,QAAiB;IACrF,SAAS,qBAAqB,CAAC,IAA+B;QAC5D,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAND,oCAMC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAA0C,IAA+B,EAAE,QAAiB;IAC9H,MAAM,EAAE,CAAC,oBAAY,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC,oBAAY,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,GAAI,IAAI,CAAC,SAAe,CAAC;IAEjH,IAAI,CAAC,IAAA,wBAAU,EAAC,UAAU,CAAC,IAAI,CAAC,IAAA,wBAAU,EAAC,YAAY,CAAC,EAAE;QACxD,MAAM,IAAI,KAAK,CAAC,sGAAsG,CAAC,CAAC;KACzH;IAED,kBAAkB,CAAC,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;AAC5E,CAAC;AARD,oDAQC;AAED,SAAgB,kBAAkB,CAAU,WAAmC,EAAE,QAAgB,EAAE,UAAsC,EAAE,YAA0C,EAAE,OAAqG;IAC1R,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACnE,MAAM,wBAAwB,GAAG,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAErE,IAAI,IAAA,uBAAS,EAAC,kBAAkB,CAAC,IAAI,IAAA,uBAAS,EAAC,wBAAwB,CAAC,EAAE;QACxE,MAAM,IAAI,GAAG,wBAAwB,EAAE,WAAW,IAAI,WAAW,CAAC;QAClE,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,IAAI,6BAA6B,kBAAkB,IAAI,QAAQ,EAAE,CAAC,CAAC;KACvH;IAED,MAAM,YAAY,GAAsC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;IAE9H,sBAAsB,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAClD,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AACpD,CAAC;AAbD,gDAaC;AAED,IAAA,qCAA0B,EAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAAC"}
@@ -20,7 +20,13 @@ function stringDeserialize(serialized, options) {
20
20
  return deserialize(parsedStringSerialized, options);
21
21
  }
22
22
  exports.stringDeserialize = stringDeserialize;
23
- function serialize(value, options = {}, references = new Map(), queue = new circular_buffer_1.CircularBuffer(), path = '$') {
23
+ function serialize(_value, options = {}, references = new Map(), queue = new circular_buffer_1.CircularBuffer(), path = '$') {
24
+ let value = _value;
25
+ if ((0, type_guards_1.isDefined)(options.replacers)) {
26
+ for (const replacer of options.replacers) {
27
+ value = replacer(value);
28
+ }
29
+ }
24
30
  const type = typeof value;
25
31
  if (type == 'boolean' || type == 'number' || value === null) {
26
32
  return value;
@@ -34,7 +40,7 @@ function serialize(value, options = {}, references = new Map(), queue = new circ
34
40
  }
35
41
  }
36
42
  const reference = references.get(value);
37
- if (reference !== undefined) {
43
+ if ((0, type_guards_1.isDefined)(reference)) {
38
44
  return { '<ref>': reference };
39
45
  }
40
46
  if (type == 'string') {
@@ -83,6 +89,10 @@ function serialize(value, options = {}, references = new Map(), queue = new circ
83
89
  queue.addMany(queueItems);
84
90
  result = target;
85
91
  }
92
+ else if ((0, serializable_1.isRawSerializable)(constructor) || ((0, type_guards_1.isDefined)(options.raws) && options.raws.includes(constructor))) {
93
+ references.set(value, path);
94
+ return { '<raw>': value };
95
+ }
86
96
  else {
87
97
  const serializableType = (0, serializable_1.getTypeNameByConstructor)(constructor);
88
98
  if ((0, type_guards_1.isUndefined)(serializableType)) {
@@ -92,8 +102,8 @@ function serialize(value, options = {}, references = new Map(), queue = new circ
92
102
  const typeString = getTypeString(serializableType);
93
103
  const nonPrimitive = { [typeString]: null };
94
104
  queue.add(() => {
95
- const data = registration.serializer.call(value, value);
96
- return (nonPrimitive[typeString] = serialize(data, options, references, queue, `${path}['${typeString}']`));
105
+ const data = registration.serializer.call(value, value, options.data ?? {});
106
+ (nonPrimitive[typeString] = (registration.serializeData != false) ? serialize(data, options, references, queue, `${path}['${typeString}']`) : data);
97
107
  });
98
108
  result = nonPrimitive;
99
109
  }
@@ -157,6 +167,9 @@ function _deserialize(serialized, context, path, depth) {
157
167
  context.references.set(path, fn);
158
168
  return fn;
159
169
  }
170
+ case types_1.rawNonPrimitiveType: {
171
+ return nonPrimitiveData;
172
+ }
160
173
  case types_1.refNonPrimitiveType: {
161
174
  const dereferenced = context.references.get(nonPrimitiveData);
162
175
  if (dereferenced == undefined) {
@@ -174,7 +187,7 @@ function _deserialize(serialized, context, path, depth) {
174
187
  context.addToDeserializeQueue(() => {
175
188
  const deserializedData = _deserialize(nonPrimitiveData, context, `${path}['<${nonPrimitiveType}>']`, depth + 1);
176
189
  context.addToDeserializeQueue(() => {
177
- const deserialized = registration.deserializer(deserializedData, context.tryAddToDerefQueue);
190
+ const deserialized = registration.deserializer(deserializedData, context.tryAddToDerefQueue, context.options.data ?? {});
178
191
  forward_ref_1.ForwardRef.setRef(forwardRef, deserialized);
179
192
  }, depth);
180
193
  }, depth);
@@ -1 +1 @@
1
- {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../source/serializer/serializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../source/serializer/serializer.ts"],"names":[],"mappings":";AAAA,0IAA0I;;;AAE1I,wEAAmE;AACnE,4EAAsE;AAEtE,oDAA6D;AAC7D,6DAAwD;AACxD,mDAAsD;AACtD,sDAA6D;AAE7D,iDAAsG;AAEtG,mCAA8K;AAsB9K,SAAgB,eAAe,CAAI,KAAQ,EAAE,OAA8B;IACzE,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAwB,CAAC;AAC3D,CAAC;AAHD,0CAGC;AAED,SAAgB,iBAAiB,CAAc,UAAkB,EAAE,OAA8B;IAC/F,MAAM,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAkB,CAAC;IACvE,OAAO,WAAW,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC;AAHD,8CAGC;AAcD,SAAgB,SAAS,CAAC,MAAW,EAAE,UAAgC,EAAE,EAAE,aAA+B,IAAI,GAAG,EAAE,EAAE,QAAmC,IAAI,gCAAc,EAAE,EAAE,OAAe,GAAG;IAC9L,IAAI,KAAK,GAAG,MAAM,CAAC;IAEnB,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAChC,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE;YACxC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;SACzB;KACF;IAED,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC;IAE1B,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;QAC3D,OAAO,KAAK,CAAC;KACd;IAED,IAAI,IAAI,IAAI,WAAW,EAAE;QACvB,OAAO,EAAE,aAAa,EAAE,IAAI,EAA2B,CAAC;KACzD;IAED,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC/C,KAAK,MAAM,KAAK,IAAI,IAAA,sBAAa,EAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAClD,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,qBAAqB,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAC7D;KACF;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAExC,IAAI,IAAA,uBAAS,EAAC,SAAS,CAAC,EAAE;QACxB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAqB,CAAC;KAClD;IAED,IAAI,IAAI,IAAI,QAAQ,EAAE;QACpB,IAAK,KAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE;YACjD,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SAC7B;QAED,OAAO,KAAK,CAAC;KACd;IAED,IAAI,IAAI,IAAI,QAAQ,EAAE;QACpB,MAAM,WAAW,GAAI,KAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEnD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE;YAC3C,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SAC7B;QAED,OAAO,EAAE,UAAU,EAAE,WAAW,EAAwB,CAAC;KAC1D;IAED,IAAI,IAAI,IAAI,QAAQ,EAAE;QACpB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,KAAe,CAAC,CAAC;QAE3C,IAAI,GAAG,KAAK,SAAS,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;SAC7E;QAED,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAA8B,CAAC;KAC/D;IAED,IAAI,IAAI,IAAI,UAAU,EAAE;QACtB,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;SAC7E;QAED,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAE5B,MAAM,MAAM,GAAI,KAAkB,CAAC,QAAQ,EAAE,CAAC;QAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,EAA0B,CAAC;KACzD;IAED,IAAI,IAAI,IAAI,QAAQ,EAAE,EAAE,kEAAkE;QACxF,IAAI,MAAsB,CAAC;QAE3B,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAE5B,MAAM,WAAW,GAAI,KAAgB,CAAC,WAA0B,CAAC;QAEjE,IAAI,WAAW,IAAI,KAAK,EAAE;YACxB,MAAM,MAAM,GAAqB,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,GAAI,KAAe,CAAC,MAAM,CAAC;YAExC,MAAM,UAAU,GAAI,KAAe,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1K,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAE1B,MAAM,GAAG,MAAwB,CAAC;SACnC;aACI,IAAI,WAAW,IAAI,MAAM,EAAE;YAC9B,MAAM,MAAM,GAAW,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,CAAC;YAErC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,EAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,IAAI,KAAK,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1K,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAE1B,MAAM,GAAG,MAAM,CAAC;SACjB;aACI,IAAI,IAAA,gCAAiB,EAAC,WAAW,CAAC,IAAI,CAAC,IAAA,uBAAS,EAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE;YAC1G,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAqB,CAAC;SAC9C;aACI;YACH,MAAM,gBAAgB,GAAG,IAAA,uCAAwB,EAAC,WAAW,CAAC,CAAC;YAE/D,IAAI,IAAA,yBAAW,EAAC,gBAAgB,CAAC,EAAE;gBACjC,MAAM,IAAI,KAAK,CAAC,eAAe,WAAW,CAAC,IAAI,+BAA+B,CAAC,CAAC;aACjF;YAED,MAAM,YAAY,GAAG,IAAA,sCAAuB,EAAC,gBAAgB,CAAC,CAAC;YAE/D,MAAM,UAAU,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;YACnD,MAAM,YAAY,GAA+B,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC;YAExE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;gBACb,MAAM,IAAI,GAAG,YAAa,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAC7E,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,YAAa,CAAC,aAAa,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACvJ,CAAC,CAAC,CAAC;YAEH,MAAM,GAAG,YAAY,CAAC;SACvB;QAED,IAAI,IAAI,IAAI,GAAG,EAAE;YACf,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE;gBAChC,EAAE,EAAE,CAAC;aACN;SACF;QAED,OAAO,MAAM,CAAC;KACf;IAED,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAc,GAAG,CAAC,CAAC;AAC1D,CAAC;AAjID,8BAiIC;AAID,SAAgB,WAAW,CAAC,UAAmB,EAAE,OAA8B;IAC7E,MAAM,OAAO,GAAG,qBAAqB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3D,OAAO,YAAY,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACnD,CAAC;AAHD,kCAGC;AAED,SAAS,YAAY,CAAC,UAAmB,EAAE,OAA2B,EAAE,IAAY,EAAE,KAAa;IACjG,MAAM,IAAI,GAAG,OAAO,UAAU,CAAC;IAE/B,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,EAAE;QACtE,OAAO,UAAU,CAAC;KACnB;IAED,IAAI,IAAI,IAAI,QAAQ,EAAE;QACpB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACzC,OAAO,UAAU,CAAC;KACnB;IAED,IAAI,IAAI,IAAI,WAAW,EAAE;QACvB,OAAO,EAAE,aAAa,EAAE,IAAI,EAA2B,CAAC;KACzD;IAED,IAAI,IAAI,IAAI,QAAQ,EAAE;QACpB,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACtD,KAAK,MAAM,KAAK,IAAI,IAAA,sBAAa,EAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC1D,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aACrE;SACF;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,UAAoB,CAAC,CAAC;QACrD,MAAM,cAAc,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAE/G,IAAI,cAAc,EAAE;YAClB,MAAM,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAErD,QAAQ,gBAAgB,EAAE;gBACxB,KAAK,iCAAyB,CAAC,CAAC;oBAC9B,OAAO,SAAS,CAAC;iBAClB;gBAED,KAAK,8BAAsB,CAAC,CAAC;oBAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,gBAAkD,CAAC,CAAC;oBAC1E,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAErC,OAAO,MAAM,CAAC;iBACf;gBAED,KAAK,oCAA4B,CAAC,CAAC;oBACjC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,gBAA+D,CAAC,CAAC;oBAC3F,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAErC,OAAO,MAAM,CAAC;iBACf;gBAED,KAAK,gCAAwB,CAAC,CAAC;oBAC7B,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,KAAK,IAAI,EAAE;wBACxC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;qBAC7E;oBAED,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAsD,CAAC,CAAC,CAAC,8BAA8B;oBACvG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAEjC,OAAO,EAAE,CAAC;iBACX;gBAED,KAAK,2BAAmB,CAAC,CAAC;oBACxB,OAAO,gBAAgB,CAAC;iBACzB;gBAED,KAAK,2BAAmB,CAAC,CAAC;oBACxB,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,gBAA4C,CAAC,CAAC;oBAE1F,IAAI,YAAY,IAAI,SAAS,EAAE;wBAC7B,MAAM,IAAI,KAAK,CAAC,aAAa,gBAA4C,YAAY,CAAC,CAAC;qBACxF;oBAED,OAAO,YAAY,CAAC;iBACrB;gBAED,OAAO,CAAC,CAAC;oBACP,MAAM,YAAY,GAAG,IAAA,sCAAuB,EAAC,gBAAgB,CAAC,CAAC;oBAE/D,IAAI,YAAY,IAAI,SAAS,EAAE;wBAC7B,MAAM,IAAI,KAAK,CAAC,sBAAsB,gBAAgB,iBAAiB,CAAC,CAAC;qBAC1E;oBAED,MAAM,UAAU,GAAG,wBAAU,CAAC,MAAM,EAAE,CAAC;oBACvC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;oBAEzC,OAAO,CAAC,qBAAqB,CAAC,GAAG,EAAE;wBACjC,MAAM,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,EAAE,OAAO,EAAE,GAAG,IAAI,MAAM,gBAAgB,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;wBAEhH,OAAO,CAAC,qBAAqB,CAAC,GAAG,EAAE;4BACjC,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;4BACzH,wBAAU,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;wBAC9C,CAAC,EAAE,KAAK,CAAC,CAAC;oBACZ,CAAC,EAAE,KAAK,CAAC,CAAC;oBAEV,IAAI,KAAK,IAAI,CAAC,EAAE;wBACd,WAAW,CAAC,OAAO,CAAC,CAAC;wBACrB,OAAO,wBAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;qBACrC;oBAED,OAAO,UAAU,CAAC;iBACnB;aACF;SACF;QAED,IAAI,MAAe,CAAC;QACpB,MAAM,WAAW,GAAI,UAAqB,CAAC,WAA0B,CAAC;QAEtE,IAAI,WAAW,IAAI,KAAK,EAAE;YACxB,MAAM,iBAAiB,GAAc,EAAE,CAAC;YACxC,iBAAiB,CAAC,MAAM,GAAI,UAAoB,CAAC,MAAM,CAAC;YACxD,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;YAEhD,MAAM,UAAU,GAAI,UAAoB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAa,EAAE,CAAC,GAAG,EAAE;gBAClF,MAAM,YAAY,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBACvF,iBAAiB,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC;gBAExC,OAAO,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;gBAEtG,OAAO,YAAY,CAAC;YACtB,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,yBAAyB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAErD,MAAM,GAAG,iBAAiB,CAAC;SAC5B;aACI,IAAI,WAAW,IAAI,MAAM,EAAE;YAC9B,MAAM,kBAAkB,GAAc,EAAE,CAAC;YACzC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;YAEjD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,EAAa,EAAE,CAAC,GAAG,EAAE;gBACpE,MAAM,YAAY,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBACvF,kBAAkB,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;gBAEvC,OAAO,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;gBAErG,OAAO,YAAY,CAAC;YACtB,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,yBAAyB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAErD,MAAM,GAAG,kBAAkB,CAAC;SAC7B;aACI;YACH,MAAM,IAAI,KAAK,CAAC,2BAA2B,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;SAChE;QAED,IAAI,KAAK,IAAI,CAAC,EAAE;YACd,WAAW,CAAC,OAAO,CAAC,CAAC;SACtB;QAED,OAAO,MAAM,CAAC;KACf;IAED,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,aAAa,CAAmB,IAAO;IAC9C,OAAO,IAAI,IAAI,GAAG,CAAC;AACrB,CAAC;AAED,SAAS,qBAAqB,CAAC,cAAuB,EAAE,OAA8B;IACpF,MAAM,OAAO,GAAuB;QAClC,cAAc;QACd,OAAO,EAAE,OAAO,IAAI,EAAE;QACtB,UAAU,EAAE,IAAI,GAAG,EAAE;QACrB,kBAAkB,EAAE,CAAC;QACrB,gBAAgB,EAAE,IAAI,mCAAe,CAAuB,SAAS,EAAE,IAAA,oCAAuB,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7I,UAAU,EAAE,IAAI,gCAAc,EAAE;QAChC,qBAAqB,CAAC,EAAa,EAAE,KAAa;YAChD,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,kBAAkB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,yBAAyB,CAAC,GAAgB,EAAE,KAAa;YACvD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE;gBACpB,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,kBAAkB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;aACpF;QACH,CAAC;QACD,kBAAkB,CAAC,KAAc,EAAE,QAA6B;YAC9D,IAAI,CAAC,wBAAU,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,2BAA2B,IAAI,IAAI,CAAC,EAAE;gBAC5F,OAAO,KAAK,CAAC;aACd;YAED,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE;gBAC1B,MAAM,YAAY,GAAG,wBAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC7C,QAAQ,CAAC,YAAY,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,gBAAgB,EAAE,UAAU,EAAsB;IACvE,OAAO,gBAAgB,CAAC,IAAI,GAAG,CAAC,EAAE;QAChC,MAAM,IAAI,GAAG,gBAAgB,CAAC,UAAU,EAAE,CAAC;QAC3C,IAAI,CAAC,EAAE,EAAE,CAAC;KACX;IAED,KAAK,MAAM,EAAE,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE;QACrC,EAAE,EAAE,CAAC;KACN;AACH,CAAC"}
@@ -1,9 +1,11 @@
1
- import type { JsonPrimitive, Nested, StringMap } from "../types";
1
+ import type { AbstractConstructor, JsonPrimitive, Nested, Record, StringMap } from "../types";
2
2
  declare const serializedSymbol: unique symbol;
3
3
  declare const stringSerializedSymbol: unique symbol;
4
4
  declare const decycledSymbol: unique symbol;
5
+ export declare type SerializationReplacer = (value: any) => any;
5
6
  export declare type TypeField<T extends string> = `<${T}>`;
6
7
  export declare type NonPrimitive<TypeName extends string = string, Data = unknown> = Record<TypeField<TypeName>, Data>;
8
+ export declare type RawNonPrimitive = NonPrimitive<typeof rawNonPrimitiveType, any>;
7
9
  export declare type UndefinedNonPrimitive = NonPrimitive<typeof undefinedNonPrimitiveType, null>;
8
10
  export declare type BigintNonPrimitive = NonPrimitive<typeof bigintNonPrimitiveType, string>;
9
11
  export declare type GlobalSymbolNonPrimitive = NonPrimitive<typeof globalSymbolNonPrimitiveType, string>;
@@ -24,24 +26,37 @@ export declare type SerializationOptions = {
24
26
  /**
25
27
  * !!! DANGEROUS !!!
26
28
  *
27
- * enable de/serialization of stuff like functions
29
+ * Enable de/serialization of stuff like functions
28
30
  *
29
- * remote code execution possible, source must be trusted!
31
+ * Remote code execution possible, source must be trusted!
30
32
  * @default false
31
33
  */
32
34
  allowUnsafe?: boolean;
33
35
  /**
34
- * context for references. Can be used to reduce serialized size, if data is available at deserialization and to be able to reference abitrary data which is not serializable like non-global symbols
36
+ * Every replacer is called with every value and the value is replaced with its return value.
37
+ */
38
+ replacers?: SerializationReplacer[];
39
+ /**
40
+ * Constructors to not serialze (keep raw)
41
+ */
42
+ raws?: AbstractConstructor[];
43
+ /**
44
+ * Context for references. Can be used to reduce serialized size, if data is available at deserialization and to be able to reference abitrary data which is not serializable like non-global symbols
35
45
  *
36
- * only first level of object is referenced. For example for `{ foo: { bar: 'baz' } }` there will be one context entry having { bar: 'baz' }
46
+ * Only first level of object is referenced. For example for `{ foo: { bar: 'baz' } }` there will be one context entry having { bar: 'baz' }
37
47
  */
38
48
  context?: StringMap<object | Function | string | symbol | bigint>;
39
49
  /**
40
- * disables dereferencing of ForwardRefs. Only useful for debugging (when implementing custom serializers) and curiosity
50
+ * Disables dereferencing of ForwardRefs. Only useful for debugging (when implementing custom serializers) and curiosity
41
51
  * @default false
42
52
  */
43
53
  doNotDereferenceForwardRefs?: boolean;
54
+ /**
55
+ * Data to be used on de/serialization handlers
56
+ */
57
+ data?: Record;
44
58
  };
59
+ export declare const rawNonPrimitiveType = "raw";
45
60
  export declare const undefinedNonPrimitiveType = "undefined";
46
61
  export declare const bigintNonPrimitiveType = "bigint";
47
62
  export declare const globalSymbolNonPrimitiveType = "global-symbol";
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.refNonPrimitiveType = exports.functionNonPrimitiveType = exports.globalSymbolNonPrimitiveType = exports.bigintNonPrimitiveType = exports.undefinedNonPrimitiveType = void 0;
3
+ exports.refNonPrimitiveType = exports.functionNonPrimitiveType = exports.globalSymbolNonPrimitiveType = exports.bigintNonPrimitiveType = exports.undefinedNonPrimitiveType = exports.rawNonPrimitiveType = void 0;
4
+ exports.rawNonPrimitiveType = 'raw';
4
5
  exports.undefinedNonPrimitiveType = 'undefined';
5
6
  exports.bigintNonPrimitiveType = 'bigint';
6
7
  exports.globalSymbolNonPrimitiveType = 'global-symbol';
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../source/serializer/types.ts"],"names":[],"mappings":";;;AA4Ca,QAAA,yBAAyB,GAAG,WAAW,CAAC;AACxC,QAAA,sBAAsB,GAAG,QAAQ,CAAC;AAClC,QAAA,4BAA4B,GAAG,eAAe,CAAC;AAC/C,QAAA,wBAAwB,GAAG,UAAU,CAAC;AACtC,QAAA,mBAAmB,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../source/serializer/types.ts"],"names":[],"mappings":";;;AA8Da,QAAA,mBAAmB,GAAG,KAAK,CAAC;AAC5B,QAAA,yBAAyB,GAAG,WAAW,CAAC;AACxC,QAAA,sBAAsB,GAAG,QAAQ,CAAC;AAClC,QAAA,4BAA4B,GAAG,eAAe,CAAC;AAC/C,QAAA,wBAAwB,GAAG,UAAU,CAAC;AACtC,QAAA,mBAAmB,GAAG,KAAK,CAAC"}
@@ -1,7 +1,9 @@
1
1
  export * from './module';
2
2
  export * from './template-renderer.provider';
3
+ export * from './template-resolver.provider';
3
4
  export * from './template.model';
4
5
  export * from './template.provider';
5
6
  export * from './template.renderer';
7
+ export * from './template.resolver';
6
8
  export * from './template.service';
7
9
  export * from './tokens';
@@ -16,9 +16,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./module"), exports);
18
18
  __exportStar(require("./template-renderer.provider"), exports);
19
+ __exportStar(require("./template-resolver.provider"), exports);
19
20
  __exportStar(require("./template.model"), exports);
20
21
  __exportStar(require("./template.provider"), exports);
21
22
  __exportStar(require("./template.renderer"), exports);
23
+ __exportStar(require("./template.resolver"), exports);
22
24
  __exportStar(require("./template.service"), exports);
23
25
  __exportStar(require("./tokens"), exports);
24
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/templates/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,+DAA6C;AAC7C,mDAAiC;AACjC,sDAAoC;AACpC,sDAAoC;AACpC,qDAAmC;AACnC,2CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/templates/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,+DAA6C;AAC7C,+DAA6C;AAC7C,mDAAiC;AACjC,sDAAoC;AACpC,sDAAoC;AACpC,sDAAoC;AACpC,qDAAmC;AACnC,2CAAyB"}
@@ -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
  }