@tstdl/base 0.78.0-beta5 → 0.78.0-beta52

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 (354) 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.map +1 -1
  5. package/api/server/gateway.d.ts +3 -0
  6. package/api/server/gateway.js +11 -11
  7. package/api/server/gateway.js.map +1 -1
  8. package/api/server/middlewares/cors.middleware.d.ts +6 -4
  9. package/api/server/middlewares/cors.middleware.js +30 -30
  10. package/api/server/middlewares/cors.middleware.js.map +1 -1
  11. package/api/types.d.ts +13 -2
  12. package/api/types.js +1 -2
  13. package/api/types.js.map +1 -1
  14. package/api/utils.d.ts +9 -0
  15. package/api/utils.js +15 -0
  16. package/api/utils.js.map +1 -0
  17. package/application/application.js.map +1 -1
  18. package/container/container.js.map +1 -1
  19. package/container/decorators.d.ts +1 -1
  20. package/container/decorators.js.map +1 -1
  21. package/css/theme/theme.service.js.map +1 -1
  22. package/data-structures/iterable-weak-map.js +1 -1
  23. package/data-structures/iterable-weak-map.js.map +1 -1
  24. package/data-structures/linked-list.js.map +1 -1
  25. package/data-structures/sorted-array-list.js.map +1 -1
  26. package/database/mongo/classes.js.map +1 -1
  27. package/database/mongo/mongo-entity-repository.js +2 -2
  28. package/database/mongo/mongo-entity-repository.js.map +1 -1
  29. package/distributed-loop/distributed-loop.js.map +1 -1
  30. package/distributed-loop/provider.js.map +1 -1
  31. package/error/custom.error.d.ts +2 -2
  32. package/error/custom.error.js +13 -7
  33. package/error/custom.error.js.map +1 -1
  34. package/examples/api/basic-overview.js +0 -1
  35. package/examples/api/basic-overview.js.map +1 -1
  36. package/examples/mail/basic.js +12 -7
  37. package/examples/mail/basic.js.map +1 -1
  38. package/examples/mail/templates/hello-name.d.ts +2 -0
  39. package/examples/mail/templates/hello-name.js +11 -0
  40. package/examples/mail/templates/hello-name.js.map +1 -0
  41. package/examples/pdf/basic.js +6 -3
  42. package/examples/pdf/basic.js.map +1 -1
  43. package/examples/pdf/templates/hello-name.d.ts +1 -4
  44. package/examples/pdf/templates/hello-name.js +30 -4
  45. package/examples/pdf/templates/hello-name.js.map +1 -1
  46. package/examples/reflection/basic.js +1 -1
  47. package/examples/reflection/basic.js.map +1 -1
  48. package/http/client/adapters/got-http-client.adapter.js.map +1 -1
  49. package/http/client/adapters/undici-http-client.adapter.js.map +1 -1
  50. package/http/client/adapters/utils.js +20 -8
  51. package/http/client/adapters/utils.js.map +1 -1
  52. package/http/client/http-client-request.d.ts +13 -3
  53. package/http/client/http-client-request.js +4 -0
  54. package/http/client/http-client-request.js.map +1 -1
  55. package/http/client/http-client.d.ts +0 -3
  56. package/http/client/http-client.js +31 -24
  57. package/http/client/http-client.js.map +1 -1
  58. package/http/http-headers.d.ts +2 -0
  59. package/http/http-headers.js +6 -0
  60. package/http/http-headers.js.map +1 -1
  61. package/http/server/node/node-http-server.js.map +1 -1
  62. package/image-service/image-service.js.map +1 -1
  63. package/image-service/imgproxy/imgproxy-image-service.js.map +1 -1
  64. package/key-value-store/mongo/mongo-key-value-store.provider.js.map +1 -1
  65. package/key-value-store/mongo/mongo-key-value.repository.js.map +1 -1
  66. package/key-value-store/mongo/mongo-key-value.store.js.map +1 -1
  67. package/lock/mongo/lock.js.map +1 -1
  68. package/lock/mongo/mongo-lock-repository.js.map +1 -1
  69. package/lock/mongo/provider.js.map +1 -1
  70. package/logger/console/logger.js.map +1 -1
  71. package/mail/clients/nodemailer.mail-client.js.map +1 -1
  72. package/mail/index.d.ts +0 -3
  73. package/mail/index.js +0 -3
  74. package/mail/index.js.map +1 -1
  75. package/mail/mail.service.d.ts +3 -5
  76. package/mail/mail.service.js +8 -14
  77. package/mail/mail.service.js.map +1 -1
  78. package/mail/models/mail-template.model.d.ts +11 -10
  79. package/mail/models/mail-template.model.js +7 -0
  80. package/mail/models/mail-template.model.js.map +1 -1
  81. package/mail/module.d.ts +1 -5
  82. package/mail/module.js +2 -11
  83. package/mail/module.js.map +1 -1
  84. package/mail/repositories/mongo-mail-log.repository.js.map +1 -1
  85. package/mail/tokens.d.ts +0 -3
  86. package/mail/tokens.js +1 -2
  87. package/mail/tokens.js.map +1 -1
  88. package/message-bus/local/local-message-bus-provider.js.map +1 -1
  89. package/message-bus/local/local-message-bus.js.map +1 -1
  90. package/migration/migrator.js.map +1 -1
  91. package/migration/mongo/migration-state-repository.js.map +1 -1
  92. package/module/modules/web-server.module.js.map +1 -1
  93. package/object-storage/s3/s3.object-storage-provider.js.map +1 -1
  94. package/object-storage/s3/s3.object-storage.js.map +1 -1
  95. package/openid-connect/cached-oidc-configuration.service.js.map +1 -1
  96. package/openid-connect/mongo-oidc-state.repository.js.map +1 -1
  97. package/openid-connect/oidc-configuration.service.d.ts +2 -1
  98. package/openid-connect/oidc-configuration.service.js +5 -3
  99. package/openid-connect/oidc-configuration.service.js.map +1 -1
  100. package/openid-connect/oidc.service-model.d.ts +11 -3
  101. package/openid-connect/oidc.service.d.ts +6 -3
  102. package/openid-connect/oidc.service.js +69 -23
  103. package/openid-connect/oidc.service.js.map +1 -1
  104. package/package.json +9 -10
  105. package/pdf/pdf.service.d.ts +48 -10
  106. package/pdf/pdf.service.js +123 -13
  107. package/pdf/pdf.service.js.map +1 -1
  108. package/promise/deferred-promise.d.ts +2 -15
  109. package/promise/deferred-promise.js +5 -10
  110. package/promise/deferred-promise.js.map +1 -1
  111. package/promise/index.d.ts +1 -0
  112. package/promise/index.js +1 -0
  113. package/promise/index.js.map +1 -1
  114. package/promise/lazy-promise.d.ts +11 -0
  115. package/promise/lazy-promise.js +31 -0
  116. package/promise/lazy-promise.js.map +1 -0
  117. package/queue/mongo/mongo-job.repository.js +1 -1
  118. package/queue/mongo/mongo-job.repository.js.map +1 -1
  119. package/queue/mongo/queue.js.map +1 -1
  120. package/queue/mongo/queue.provider.js.map +1 -1
  121. package/reflection/decorator-data.js +1 -1
  122. package/reflection/decorator-data.js.map +1 -1
  123. package/reflection/decorators.d.ts +2 -2
  124. package/reflection/decorators.js +7 -7
  125. package/reflection/decorators.js.map +1 -1
  126. package/reflection/registry.d.ts +8 -8
  127. package/reflection/registry.js +1 -1
  128. package/reflection/registry.js.map +1 -1
  129. package/reflection/types.d.ts +3 -2
  130. package/reflection/utils.d.ts +7 -2
  131. package/reflection/utils.js +38 -12
  132. package/reflection/utils.js.map +1 -1
  133. package/schema/array-constraints/maximum-length.d.ts +2 -2
  134. package/schema/array-constraints/maximum-length.js +3 -3
  135. package/schema/array-constraints/maximum-length.js.map +1 -1
  136. package/schema/array-constraints/minimum-length.d.ts +2 -2
  137. package/schema/array-constraints/minimum-length.js +3 -3
  138. package/schema/array-constraints/minimum-length.js.map +1 -1
  139. package/schema/coercers/boolean.coercer.d.ts +2 -2
  140. package/schema/coercers/boolean.coercer.js +2 -2
  141. package/schema/coercers/boolean.coercer.js.map +1 -1
  142. package/schema/coercers/date.coercer.d.ts +2 -2
  143. package/schema/coercers/date.coercer.js +2 -2
  144. package/schema/coercers/date.coercer.js.map +1 -1
  145. package/schema/coercers/number.coercer.d.ts +2 -2
  146. package/schema/coercers/number.coercer.js +2 -2
  147. package/schema/coercers/number.coercer.js.map +1 -1
  148. package/schema/coercers/regexp.coercer.d.ts +2 -2
  149. package/schema/coercers/regexp.coercer.js +2 -2
  150. package/schema/coercers/regexp.coercer.js.map +1 -1
  151. package/schema/coercers/string.coercer.d.ts +2 -2
  152. package/schema/coercers/string.coercer.js +2 -2
  153. package/schema/coercers/string.coercer.js.map +1 -1
  154. package/schema/coercers/uint8-array.coercer.js +2 -2
  155. package/schema/coercers/uint8-array.coercer.js.map +1 -1
  156. package/schema/constraints/enumeration.d.ts +5 -5
  157. package/schema/constraints/enumeration.js +3 -3
  158. package/schema/constraints/enumeration.js.map +1 -1
  159. package/schema/constraints/generic.d.ts +2 -2
  160. package/schema/constraints/generic.js +3 -3
  161. package/schema/constraints/generic.js.map +1 -1
  162. package/schema/constraints/integer.d.ts +2 -2
  163. package/schema/constraints/integer.js +3 -3
  164. package/schema/constraints/integer.js.map +1 -1
  165. package/schema/constraints/literal.d.ts +2 -2
  166. package/schema/constraints/literal.js +3 -3
  167. package/schema/constraints/literal.js.map +1 -1
  168. package/schema/constraints/maximum-date.d.ts +2 -2
  169. package/schema/constraints/maximum-date.js +3 -3
  170. package/schema/constraints/maximum-date.js.map +1 -1
  171. package/schema/constraints/maximum-length.d.ts +2 -2
  172. package/schema/constraints/maximum-length.js +3 -3
  173. package/schema/constraints/maximum-length.js.map +1 -1
  174. package/schema/constraints/maximum.d.ts +2 -2
  175. package/schema/constraints/maximum.js +3 -3
  176. package/schema/constraints/maximum.js.map +1 -1
  177. package/schema/constraints/minimum-date.d.ts +2 -2
  178. package/schema/constraints/minimum-date.js +3 -3
  179. package/schema/constraints/minimum-date.js.map +1 -1
  180. package/schema/constraints/minimum-length.d.ts +2 -2
  181. package/schema/constraints/minimum-length.js +3 -3
  182. package/schema/constraints/minimum-length.js.map +1 -1
  183. package/schema/constraints/minimum.d.ts +2 -2
  184. package/schema/constraints/minimum.js +3 -3
  185. package/schema/constraints/minimum.js.map +1 -1
  186. package/schema/constraints/pattern.d.ts +2 -2
  187. package/schema/constraints/pattern.js +3 -3
  188. package/schema/constraints/pattern.js.map +1 -1
  189. package/schema/decorators/optional.d.ts +3 -1
  190. package/schema/decorators/optional.js +2 -2
  191. package/schema/decorators/optional.js.map +1 -1
  192. package/schema/decorators/types.d.ts +3 -3
  193. package/schema/schema.d.ts +0 -4
  194. package/schema/schema.error.d.ts +5 -4
  195. package/schema/schema.error.js +3 -3
  196. package/schema/schema.error.js.map +1 -1
  197. package/schema/schema.js +85 -106
  198. package/schema/schema.js.map +1 -1
  199. package/schema/schemas/assign.d.ts +5 -5
  200. package/schema/schemas/assign.js.map +1 -1
  201. package/schema/schemas/exclude.d.ts +4 -1
  202. package/schema/schemas/exclude.js +6 -11
  203. package/schema/schemas/exclude.js.map +1 -1
  204. package/schema/schemas/index.d.ts +2 -0
  205. package/schema/schemas/index.js +2 -0
  206. package/schema/schemas/index.js.map +1 -1
  207. package/schema/schemas/number.d.ts +1 -1
  208. package/schema/schemas/number.js.map +1 -1
  209. package/schema/schemas/omit.d.ts +4 -0
  210. package/schema/schemas/omit.js +17 -0
  211. package/schema/schemas/omit.js.map +1 -0
  212. package/schema/schemas/union.d.ts +2 -7
  213. package/schema/schemas/union.js.map +1 -1
  214. package/schema/types.d.ts +25 -18
  215. package/schema/types.js +17 -4
  216. package/schema/types.js.map +1 -1
  217. package/schema/utils/schema.d.ts +3 -0
  218. package/schema/utils/schema.js +44 -2
  219. package/schema/utils/schema.js.map +1 -1
  220. package/schema/utils/value-type.d.ts +2 -2
  221. package/schema/utils/value-type.js +11 -1
  222. package/schema/utils/value-type.js.map +1 -1
  223. package/search-index/elastic/config.js.map +1 -1
  224. package/search-index/elastic/model/index-mapping.d.ts +2 -1
  225. package/search-index/elastic/model/index-mapping.js.map +1 -1
  226. package/search-index/elastic/search-index.js +1 -1
  227. package/search-index/elastic/search-index.js.map +1 -1
  228. package/serializer/serializable.d.ts +4 -4
  229. package/serializer/serializable.js.map +1 -1
  230. package/templates/index.d.ts +2 -0
  231. package/templates/index.js +2 -0
  232. package/templates/index.js.map +1 -1
  233. package/templates/module.d.ts +3 -1
  234. package/templates/module.js +31 -8
  235. package/templates/module.js.map +1 -1
  236. package/templates/providers/file.provider-template.d.ts +16 -0
  237. package/templates/providers/{file-template.provider.js → file.provider-template.js} +22 -15
  238. package/templates/providers/file.provider-template.js.map +1 -0
  239. package/templates/providers/memory.template-provider.d.ts +8 -0
  240. package/templates/providers/{memory-template.provider.base.js → memory.template-provider.js} +8 -6
  241. package/templates/providers/memory.template-provider.js.map +1 -0
  242. package/templates/renderers/handlebars.template-renderer.d.ts +38 -6
  243. package/templates/renderers/handlebars.template-renderer.js +70 -3
  244. package/templates/renderers/handlebars.template-renderer.js.map +1 -1
  245. package/templates/renderers/mjml.template-renderer.d.ts +6 -6
  246. package/templates/renderers/mjml.template-renderer.js +8 -9
  247. package/templates/renderers/mjml.template-renderer.js.map +1 -1
  248. package/templates/renderers/string.template-renderer.d.ts +8 -0
  249. package/{mail/template-providers/memory-mail-template.provider.js → templates/renderers/string.template-renderer.js} +13 -7
  250. package/templates/renderers/string.template-renderer.js.map +1 -0
  251. package/templates/resolvers/file.template-resolver.d.ts +23 -0
  252. package/templates/resolvers/file.template-resolver.js +63 -0
  253. package/templates/resolvers/file.template-resolver.js.map +1 -0
  254. package/templates/resolvers/string.template-resolver.d.ts +13 -0
  255. package/templates/resolvers/string.template-resolver.js +44 -0
  256. package/templates/resolvers/string.template-resolver.js.map +1 -0
  257. package/templates/template-renderer.provider.js +7 -19
  258. package/templates/template-renderer.provider.js.map +1 -1
  259. package/templates/template-resolver.provider.d.ts +8 -0
  260. package/templates/template-resolver.provider.js +48 -0
  261. package/templates/template-resolver.provider.js.map +1 -0
  262. package/templates/template.model.d.ts +15 -4
  263. package/templates/template.model.js +50 -0
  264. package/templates/template.model.js.map +1 -1
  265. package/templates/template.renderer.d.ts +14 -3
  266. package/templates/template.renderer.js +3 -0
  267. package/templates/template.renderer.js.map +1 -1
  268. package/templates/template.resolver.d.ts +5 -0
  269. package/templates/template.resolver.js +7 -0
  270. package/templates/template.resolver.js.map +1 -0
  271. package/templates/template.service.d.ts +10 -4
  272. package/templates/template.service.js +19 -6
  273. package/templates/template.service.js.map +1 -1
  274. package/templates/tokens.d.ts +3 -2
  275. package/templates/tokens.js +2 -1
  276. package/templates/tokens.js.map +1 -1
  277. package/threading/index.d.ts +1 -0
  278. package/threading/index.js +18 -0
  279. package/threading/index.js.map +1 -0
  280. package/threading/message-proxy.d.ts +66 -0
  281. package/threading/message-proxy.js +34 -0
  282. package/threading/message-proxy.js.map +1 -0
  283. package/threading/thread-pool.d.ts +4 -0
  284. package/threading/thread-pool.js +10 -0
  285. package/threading/thread-pool.js.map +1 -0
  286. package/threading/thread.d.ts +16 -0
  287. package/threading/thread.js +30 -0
  288. package/threading/thread.js.map +1 -0
  289. package/types.d.ts +20 -7
  290. package/utils/array/array.d.ts +1 -2
  291. package/utils/array/array.js.map +1 -1
  292. package/utils/clone.js +4 -0
  293. package/utils/clone.js.map +1 -1
  294. package/utils/compression.d.ts +13 -13
  295. package/utils/compression.js +10 -9
  296. package/utils/compression.js.map +1 -1
  297. package/utils/encoding.js +1 -1
  298. package/utils/encoding.js.map +1 -1
  299. package/utils/enum.d.ts +5 -8
  300. package/utils/enum.js +15 -13
  301. package/utils/enum.js.map +1 -1
  302. package/utils/function/memoize.js +4 -4
  303. package/utils/function/memoize.js.map +1 -1
  304. package/utils/helpers.d.ts +0 -2
  305. package/utils/helpers.js +1 -12
  306. package/utils/helpers.js.map +1 -1
  307. package/utils/index.d.ts +2 -0
  308. package/utils/index.js +2 -0
  309. package/utils/index.js.map +1 -1
  310. package/utils/object/forward-ref.js +3 -19
  311. package/utils/object/forward-ref.js.map +1 -1
  312. package/utils/object/property-name.d.ts +2 -2
  313. package/utils/proxy.d.ts +6 -0
  314. package/utils/proxy.js +21 -0
  315. package/utils/proxy.js.map +1 -0
  316. package/utils/throw.d.ts +2 -0
  317. package/utils/throw.js +15 -0
  318. package/utils/throw.js.map +1 -0
  319. package/utils/type-guards.d.ts +13 -1
  320. package/utils/type-guards.js +29 -5
  321. package/utils/type-guards.js.map +1 -1
  322. package/web-types.d.ts +28 -0
  323. package/web-types.js +3 -0
  324. package/web-types.js.map +1 -0
  325. package/mail/mail-template-renderer.provider.d.ts +0 -8
  326. package/mail/mail-template-renderer.provider.js +0 -60
  327. package/mail/mail-template-renderer.provider.js.map +0 -1
  328. package/mail/mail-template.provider.d.ts +0 -4
  329. package/mail/mail-template.provider.js +0 -7
  330. package/mail/mail-template.provider.js.map +0 -1
  331. package/mail/mail-template.renderer.d.ts +0 -10
  332. package/mail/mail-template.renderer.js +0 -7
  333. package/mail/mail-template.renderer.js.map +0 -1
  334. package/mail/template-providers/file-mail-template.provider.d.ts +0 -24
  335. package/mail/template-providers/file-mail-template.provider.js +0 -51
  336. package/mail/template-providers/file-mail-template.provider.js.map +0 -1
  337. package/mail/template-providers/memory-mail-template.provider.d.ts +0 -6
  338. package/mail/template-providers/memory-mail-template.provider.js.map +0 -1
  339. package/mail/template-renderers/handlebars.mail-template-renderer.d.ts +0 -13
  340. package/mail/template-renderers/handlebars.mail-template-renderer.js +0 -49
  341. package/mail/template-renderers/handlebars.mail-template-renderer.js.map +0 -1
  342. package/mail/template-renderers/mjml.mail-template-renderer.d.ts +0 -14
  343. package/mail/template-renderers/mjml.mail-template-renderer.js +0 -63
  344. package/mail/template-renderers/mjml.mail-template-renderer.js.map +0 -1
  345. package/templates/providers/file-template.provider.base.d.ts +0 -12
  346. package/templates/providers/file-template.provider.base.js +0 -50
  347. package/templates/providers/file-template.provider.base.js.map +0 -1
  348. package/templates/providers/file-template.provider.d.ts +0 -22
  349. package/templates/providers/file-template.provider.js.map +0 -1
  350. package/templates/providers/memory-template.provider.base.d.ts +0 -9
  351. package/templates/providers/memory-template.provider.base.js.map +0 -1
  352. package/templates/providers/memory-template.provider.d.ts +0 -4
  353. package/templates/providers/memory-template.provider.js +0 -18
  354. package/templates/providers/memory-template.provider.js.map +0 -1
@@ -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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.resolver.js","sourceRoot":"","sources":["../../source/templates/template.resolver.ts"],"names":[],"mappings":";;;AAEA,MAAsB,gBAAgB;CAGrC;AAHD,4CAGC"}
@@ -1,11 +1,17 @@
1
+ import type { Record } from "../types";
1
2
  import { TemplateRendererProvider } from './template-renderer.provider';
3
+ import { TemplateResolverProvider } from './template-resolver.provider';
2
4
  import type { Template } from './template.model';
3
5
  import { TemplateProvider } from './template.provider';
4
- import type { TemplateRenderResult } from './template.renderer';
6
+ export declare type TemplateServiceRenderResult<T extends Template = Template> = {
7
+ fields: Record<keyof T['fields'], string>;
8
+ options: T['options'];
9
+ };
5
10
  export declare class TemplateService {
6
11
  private readonly templateProvider;
7
12
  private readonly templateRendererProvider;
8
- constructor(templateProvider: TemplateProvider | undefined, templateRendererProvider: TemplateRendererProvider);
9
- render(key: string, templateContext?: object): Promise<TemplateRenderResult>;
10
- render<T extends Template = Template>(template: T, templateContext?: object): Promise<TemplateRenderResult>;
13
+ private readonly templateResolverProvider;
14
+ constructor(templateProvider: TemplateProvider | undefined, templateRendererProvider: TemplateRendererProvider, templateResolverProvider: TemplateResolverProvider);
15
+ render<T extends Template = Template>(key: string, templateContext?: object): Promise<TemplateServiceRenderResult<T>>;
16
+ render<T extends Template = Template>(template: T, templateContext?: object): Promise<TemplateServiceRenderResult<T>>;
11
17
  }
@@ -14,26 +14,39 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.TemplateService = void 0;
16
16
  const container_1 = require("../container");
17
- const helpers_1 = require("../utils/helpers");
17
+ const throw_1 = require("../utils/throw");
18
18
  const type_guards_1 = require("../utils/type-guards");
19
19
  const template_renderer_provider_1 = require("./template-renderer.provider");
20
+ const template_resolver_provider_1 = require("./template-resolver.provider");
20
21
  const template_provider_1 = require("./template.provider");
21
22
  let TemplateService = class TemplateService {
22
- constructor(templateProvider, templateRendererProvider) {
23
- this.templateProvider = templateProvider ?? { get: () => (0, helpers_1._throw)(new Error('No template provider provided. Cannot render template-keys.')) };
23
+ constructor(templateProvider, templateRendererProvider, templateResolverProvider) {
24
+ this.templateProvider = templateProvider ?? { get: () => (0, throw_1._throw)(new Error('No template provider provided. Cannot render template-keys.')) };
24
25
  this.templateRendererProvider = templateRendererProvider;
26
+ this.templateResolverProvider = templateResolverProvider;
25
27
  }
26
28
  async render(keyOrTemplate, templateContext) {
27
29
  const template = (0, type_guards_1.isString)(keyOrTemplate) ? await this.templateProvider.get(keyOrTemplate) : keyOrTemplate;
28
- const renderer = this.templateRendererProvider.get(template.type);
29
- return renderer.render(template, templateContext);
30
+ const result = {
31
+ fields: {},
32
+ options: template.options
33
+ };
34
+ for (const [key, field] of Object.entries(template.fields)) {
35
+ const resolver = this.templateResolverProvider.get(field.resolver);
36
+ const renderer = this.templateRendererProvider.get(field.renderer);
37
+ const templateString = await resolver.resolve(field);
38
+ const resultString = await renderer.render({ renderer: field.renderer, template: templateString, options: field.options }, templateContext);
39
+ result.fields[key] = resultString;
40
+ }
41
+ return result;
30
42
  }
31
43
  };
32
44
  TemplateService = __decorate([
33
45
  (0, container_1.singleton)(),
34
46
  __param(0, (0, container_1.optional)()),
35
47
  __param(0, (0, container_1.inject)(template_provider_1.TemplateProvider)),
36
- __metadata("design:paramtypes", [Object, template_renderer_provider_1.TemplateRendererProvider])
48
+ __metadata("design:paramtypes", [Object, template_renderer_provider_1.TemplateRendererProvider,
49
+ template_resolver_provider_1.TemplateResolverProvider])
37
50
  ], TemplateService);
38
51
  exports.TemplateService = TemplateService;
39
52
  //# sourceMappingURL=template.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template.service.js","sourceRoot":"","sources":["../../source/templates/template.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAA0D;AAC1D,8CAAyC;AACzC,sDAA+C;AAC/C,6EAAwE;AAExE,2DAAuD;AAIvD,IAAa,eAAe,GAA5B,MAAa,eAAe;IAI1B,YAAkD,gBAA8C,EAAE,wBAAkD;QAClJ,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAA,gBAAM,EAAC,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC,EAAE,CAAC;QAC5I,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;IAC3D,CAAC;IAID,KAAK,CAAC,MAAM,CAAgC,aAAyB,EAAE,eAAwB;QAC7F,MAAM,QAAQ,GAAG,IAAA,sBAAQ,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;QAC1G,MAAM,QAAQ,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClE,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACpD,CAAC;CACF,CAAA;AAhBY,eAAe;IAD3B,IAAA,qBAAS,GAAE;IAKG,WAAA,IAAA,oBAAQ,GAAE,CAAA;IAAE,WAAA,IAAA,kBAAM,EAAC,oCAAgB,CAAC,CAAA;6CAA2E,qDAAwB;GAJzI,eAAe,CAgB3B;AAhBY,0CAAe"}
1
+ {"version":3,"file":"template.service.js","sourceRoot":"","sources":["../../source/templates/template.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAA0D;AAE1D,0CAAuC;AACvC,sDAA+C;AAC/C,6EAAwE;AACxE,6EAAwE;AAExE,2DAAuD;AAQhD,IAAM,eAAe,GAArB,MAAM,eAAe;IAK1B,YACwC,gBAA8C,EACpF,wBAAkD,EAClD,wBAAkD;QAElD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAA,cAAM,EAAC,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC,EAAE,CAAC;QAC5I,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;QACzD,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;IAC3D,CAAC;IAID,KAAK,CAAC,MAAM,CAAgC,aAAyB,EAAE,eAAwB;QAC7F,MAAM,QAAQ,GAAG,IAAA,sBAAQ,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;QAE1G,MAAM,MAAM,GAAmC;YAC7C,MAAM,EAAE,EAAS;YACjB,OAAO,EAAE,QAAQ,CAAC,OAAO;SAC1B,CAAC;QAEF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEnE,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;YAE5I,MAAM,CAAC,MAAM,CAAC,GAAwB,CAAC,GAAG,YAAY,CAAC;SACxD;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AArCY,eAAe;IAD3B,IAAA,qBAAS,GAAE;IAOP,WAAA,IAAA,oBAAQ,GAAE,CAAA;IAAE,WAAA,IAAA,kBAAM,EAAC,oCAAgB,CAAC,CAAA;6CACX,qDAAwB;QACxB,qDAAwB;GARzC,eAAe,CAqC3B;AArCY,0CAAe"}
@@ -1,3 +1,4 @@
1
- import type { Type } from "../types";
2
1
  import type { TemplateRenderer } from './template.renderer';
3
- export declare const TEMPLATE_RENDERERS: import("../container").InjectionToken<Type<TemplateRenderer<import("./template.model").Template<string, any>>, any>[], any>;
2
+ import type { TemplateResolver } from './template.resolver';
3
+ export declare const TEMPLATE_RENDERERS: import("../container").InjectionToken<TemplateRenderer<string, any>[], any>;
4
+ export declare const TEMPLATE_RESOLVERS: import("../container").InjectionToken<TemplateResolver<import("./template.model").TemplateField<string, string, any>>[], any>;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TEMPLATE_RENDERERS = void 0;
3
+ exports.TEMPLATE_RESOLVERS = exports.TEMPLATE_RENDERERS = void 0;
4
4
  const container_1 = require("../container");
5
5
  exports.TEMPLATE_RENDERERS = (0, container_1.injectionToken)('TEMPLATE_RENDERERS');
6
+ exports.TEMPLATE_RESOLVERS = (0, container_1.injectionToken)('TEMPLATE_RESOLVERS');
6
7
  //# sourceMappingURL=tokens.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../source/templates/tokens.ts"],"names":[],"mappings":";;;AAAA,4CAA6C;AAIhC,QAAA,kBAAkB,GAAG,IAAA,0BAAc,EAA2B,oBAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../source/templates/tokens.ts"],"names":[],"mappings":";;;AAAA,4CAA6C;AAIhC,QAAA,kBAAkB,GAAG,IAAA,0BAAc,EAAqB,oBAAoB,CAAC,CAAC;AAC9E,QAAA,kBAAkB,GAAG,IAAA,0BAAc,EAAqB,oBAAoB,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './thread-pool';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./thread-pool"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/threading/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B"}
@@ -0,0 +1,66 @@
1
+ import type { Record } from "../types";
2
+ declare const messageProxyValue: unique symbol;
3
+ declare const revokeMessageProxy: unique symbol;
4
+ export declare type ProxyFunction<T extends (...args: any) => any, Args extends any[] = Parameters<T>, R = ReturnType<T>> = (...args: Args) => Promise<Awaited<R>>;
5
+ export declare type ProxyObject<T extends Record> = {
6
+ [P in keyof T]: T extends (...args: any) => any ? ProxyFunction<T[P]> : T[P];
7
+ };
8
+ export declare type ProxyInput = ((...args: any) => any) | Record;
9
+ export declare type ProxyValue<T extends ProxyInput> = T extends (...args: any) => any ? ProxyFunction<T> : ProxyObject<T>;
10
+ export declare type MessageProxy<T extends ProxyInput = ProxyInput> = ProxyValue<T> & {
11
+ [messageProxyValue]: T;
12
+ [revokeMessageProxy]: () => void;
13
+ };
14
+ export declare type MessageProxyMessage = {
15
+ type: 'apply';
16
+ thisArg: any;
17
+ argArray: any[];
18
+ } | {
19
+ type: 'construct';
20
+ argArray: any[];
21
+ newTarget: Function;
22
+ } | {
23
+ type: 'defineProperty';
24
+ property: string | symbol;
25
+ attributes: PropertyDescriptor;
26
+ } | {
27
+ type: 'deleteProperty';
28
+ property: string | symbol;
29
+ } | {
30
+ type: 'get';
31
+ property: string | symbol;
32
+ receiver: any;
33
+ } | {
34
+ type: 'getOwnPropertyDescriptor';
35
+ property: string | symbol;
36
+ } | {
37
+ type: 'getPrototypeOf';
38
+ } | {
39
+ type: 'has';
40
+ property: string | symbol;
41
+ } | {
42
+ type: 'isExtensible';
43
+ } | {
44
+ type: 'ownKeys';
45
+ } | {
46
+ type: 'preventExtensions';
47
+ } | {
48
+ type: 'set';
49
+ property: string | symbol;
50
+ newValue: any;
51
+ receiver: any;
52
+ } | {
53
+ type: 'setPrototypeOf';
54
+ v: object | null;
55
+ };
56
+ export declare class MessageProxyAdapter<T> {
57
+ readonly value: T;
58
+ constructor(value: T);
59
+ handleMessage(message: MessageProxyMessage): void;
60
+ }
61
+ export declare const MessageProxy: {
62
+ create<T extends ProxyInput>(_value: T): MessageProxy<T>;
63
+ isMessageProxy<T_1 extends ProxyInput = ProxyInput>(value: any): value is MessageProxy<T_1>;
64
+ revoke(threadProxy: MessageProxy): void;
65
+ };
66
+ export {};
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MessageProxy = exports.MessageProxyAdapter = void 0;
4
+ const error_1 = require("../error");
5
+ const type_guards_1 = require("../utils/type-guards");
6
+ const messageProxyValue = Symbol('MessageProxy value.');
7
+ const revokeMessageProxy = Symbol('Revoke MessageProxy.');
8
+ class MessageProxyAdapter {
9
+ constructor(value) {
10
+ this.value = value;
11
+ }
12
+ handleMessage(message) {
13
+ switch (message.type) {
14
+ case 'apply':
15
+ break;
16
+ default:
17
+ throw new error_1.NotImplementedError();
18
+ }
19
+ }
20
+ }
21
+ exports.MessageProxyAdapter = MessageProxyAdapter;
22
+ // eslint-disable-next-line @typescript-eslint/no-redeclare, @typescript-eslint/naming-convention
23
+ exports.MessageProxy = {
24
+ create(_value) {
25
+ throw new error_1.NotImplementedError();
26
+ },
27
+ isMessageProxy(value) {
28
+ return (0, type_guards_1.isDefined)(value?.[revokeMessageProxy]);
29
+ },
30
+ revoke(threadProxy) {
31
+ threadProxy[revokeMessageProxy]();
32
+ }
33
+ };
34
+ //# sourceMappingURL=message-proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-proxy.js","sourceRoot":"","sources":["../../source/threading/message-proxy.ts"],"names":[],"mappings":";;;AAAA,oCAA8C;AAE9C,sDAAgD;AAEhD,MAAM,iBAAiB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACxD,MAAM,kBAAkB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAyB1D,MAAa,mBAAmB;IAG9B,YAAY,KAAQ;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,aAAa,CAAC,OAA4B;QACxC,QAAQ,OAAO,CAAC,IAAI,EAAE;YACpB,KAAK,OAAO;gBACV,MAAM;YAER;gBACE,MAAM,IAAI,2BAAmB,EAAE,CAAC;SACnC;IACH,CAAC;CACF;AAhBD,kDAgBC;AAED,iGAAiG;AACpF,QAAA,YAAY,GAAG;IAC1B,MAAM,CAAuB,MAAS;QACpC,MAAM,IAAI,2BAAmB,EAAE,CAAC;IAClC,CAAC;IAED,cAAc,CAAoC,KAAU;QAC1D,OAAO,IAAA,uBAAS,EAAE,KAA4B,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,CAAC,WAAyB;QAC9B,WAAW,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACpC,CAAC;CACF,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare class ThreadPool {
2
+ readonly threadCount: number;
3
+ constructor(threadCount: number);
4
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ThreadPool = void 0;
4
+ class ThreadPool {
5
+ constructor(threadCount) {
6
+ this.threadCount = threadCount;
7
+ }
8
+ }
9
+ exports.ThreadPool = ThreadPool;
10
+ //# sourceMappingURL=thread-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread-pool.js","sourceRoot":"","sources":["../../source/threading/thread-pool.ts"],"names":[],"mappings":";;;AAAA,MAAa,UAAU;IAGrB,YAAY,WAAmB;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;AAND,gCAMC"}
@@ -0,0 +1,16 @@
1
+ import type { Observable } from 'rxjs';
2
+ import type { ProxyInput, ProxyValue } from './message-proxy';
3
+ export declare abstract class Thread {
4
+ private readonly url;
5
+ private readonly errorSubject;
6
+ private readonly messageSubject;
7
+ private readonly messageErrorSubject;
8
+ private worker;
9
+ readonly error$: Observable<ErrorEvent>;
10
+ readonly message$: Observable<MessageEvent>;
11
+ readonly messageError$: Observable<MessageEvent>;
12
+ constructor(url: string);
13
+ static proxy<T extends ProxyInput>(_value: T): ProxyValue<T>;
14
+ initialize(): Promise<void>;
15
+ terminate(): void;
16
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Thread = void 0;
4
+ const error_1 = require("../error");
5
+ const rxjs_1 = require("rxjs");
6
+ class Thread {
7
+ constructor(url) {
8
+ this.url = url;
9
+ this.errorSubject = new rxjs_1.Subject();
10
+ this.messageSubject = new rxjs_1.Subject();
11
+ this.messageErrorSubject = new rxjs_1.Subject();
12
+ this.error$ = this.errorSubject.asObservable();
13
+ this.message$ = this.messageSubject.asObservable();
14
+ this.messageError$ = this.messageErrorSubject.asObservable();
15
+ }
16
+ static proxy(_value) {
17
+ throw new error_1.NotImplementedError();
18
+ }
19
+ async initialize() {
20
+ this.worker = new Worker(this.url, { type: 'module' });
21
+ this.worker.addEventListener('message', (messageEvent) => this.messageSubject.next(messageEvent));
22
+ this.worker.addEventListener('messageerror', (messageEvent) => this.messageErrorSubject.next(messageEvent));
23
+ this.worker.addEventListener('error', (errorEvent) => this.errorSubject.next(errorEvent));
24
+ }
25
+ terminate() {
26
+ this.worker.terminate();
27
+ }
28
+ }
29
+ exports.Thread = Thread;
30
+ //# sourceMappingURL=thread.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread.js","sourceRoot":"","sources":["../../source/threading/thread.ts"],"names":[],"mappings":";;;AAAA,oCAA8C;AAE9C,+BAA+B;AAG/B,MAAsB,MAAM;IAY1B,YAAY,GAAW;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAEf,IAAI,CAAC,YAAY,GAAG,IAAI,cAAO,EAAE,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,IAAI,cAAO,EAAE,CAAC;QACpC,IAAI,CAAC,mBAAmB,GAAG,IAAI,cAAO,EAAE,CAAC;QAEzC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,KAAK,CAAuB,MAAS;QAC1C,MAAM,IAAI,2BAAmB,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAEvD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAClG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5G,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,SAAS;QACP,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;CACF;AAvCD,wBAuCC"}
package/types.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import type { UnionToIntersection } from 'type-fest';
2
+ export declare type ObjectLiteral = {};
1
3
  export declare type PrimitiveTypeMap = {
2
4
  'string': string;
3
5
  'number': number;
@@ -35,10 +37,22 @@ export declare type UndefinableJsonObject = {
35
37
  [key: string]: UndefinableJsonInnerNode;
36
38
  };
37
39
  export declare type UndefinableJsonArray = UndefinableJsonInnerNode[];
40
+ export declare type ArrayItem<T extends readonly any[]> = T extends readonly (infer U)[] ? U : never;
38
41
  export declare type Enumeration = EnumerationArray | EnumerationObject;
39
42
  export declare type EnumerationArray = readonly [string | number, ...(string | number)[]];
40
43
  export declare type EnumerationObject = Record<string, string | number>;
41
- export declare type EnumerationValue<T extends Enumeration = Enumeration> = T extends EnumerationArray ? T[number] : T[Extract<keyof T, string>];
44
+ export declare type EnumerationKey<T extends EnumerationObject = EnumerationObject> = Extract<keyof T, string>;
45
+ export declare type EnumerationMap<T extends EnumerationObject = EnumerationObject> = SimplifyObject<{
46
+ [P in EnumerationKey<T>]: (T[P] extends number ? (`${T[P]}` extends `${infer U extends number}` ? U : never) : `${T[P]}`) | T[P];
47
+ }>;
48
+ export declare type EnumerationValue<T extends Enumeration = Enumeration> = T extends EnumerationObject ? Simplify<EnumerationMap<T>[keyof EnumerationMap<T>]> : T extends EnumerationArray ? T[number] : never;
49
+ export declare type EnumerationEntry<T extends EnumerationObject = EnumerationObject> = {
50
+ [P in EnumerationKey<T>]: [P, EnumerationMap<T>[P]];
51
+ }[EnumerationKey<T>];
52
+ declare type EnumerationEntriesHelper<T extends EnumerationObject = EnumerationObject, Tuple = UnionToTuple<EnumerationKey<T>>> = {
53
+ [P in keyof Tuple]: [Tuple[P], Tuple[P] extends EnumerationKey<T> ? EnumerationMap<T>[Tuple[P]] : never];
54
+ };
55
+ export declare type EnumerationEntries<T extends EnumerationObject = EnumerationObject> = EnumerationEntriesHelper<T> extends (infer U)[] ? U[] : never;
42
56
  export declare type Type<T = any, Arguments extends any[] = any> = Constructor<T, Arguments> & {
43
57
  prototype: T;
44
58
  };
@@ -87,15 +101,14 @@ export declare type SimplifiedOptionalize<T extends object> = Simplify<Optionali
87
101
  /**
88
102
  * remove nested type information
89
103
  */
90
- export declare type Simplify<T> = T extends (Primitive | Function | Date | RegExp) ? T : T extends (infer AT)[] ? Simplify<AT>[] : T extends readonly (infer AT)[] ? readonly Simplify<AT>[] : {
91
- [K in keyof T]: T[K];
92
- } & {};
104
+ export declare type Simplify<T> = T extends (Primitive | Function | Date | RegExp) ? T : T extends (infer AT)[] ? Simplify<AT>[] : T extends readonly (infer AT)[] ? readonly Simplify<AT>[] : T extends Record ? SimplifyObject<T> : T;
93
105
  /**
94
106
  * remove type information on object
95
107
  */
96
108
  export declare type SimplifyObject<T extends Record> = {
97
109
  [K in keyof T]: T[K];
98
110
  } & {};
111
+ export declare type UnionToTuple<T, Tuple extends any[] = []> = UnionToIntersection<T extends any ? () => T : never> extends () => infer R ? UnionToTuple<Exclude<T, R>, [R, ...Tuple]> : Tuple;
99
112
  export declare type UndefinableObject<T extends Record> = {
100
113
  [K in keyof T]: T[K] | undefined;
101
114
  };
@@ -111,9 +124,9 @@ export declare type NonNullOrUndefinable<T> = T extends null | undefined ? never
111
124
  /**
112
125
  * makes optional properties required and removes null and undefined
113
126
  */
114
- export declare type DeepNonNullable<T extends Record> = {
115
- [P in keyof T]-?: T extends Record ? DeepNonNullable<NonNullable<T[P]>> : NonNullable<T[P]>;
116
- };
127
+ export declare type DeepNonNullable<T> = T extends Record ? {
128
+ [P in keyof T]-?: DeepNonNullable<T[P]>;
129
+ } : NonNullable<T>;
117
130
  export declare type IfAny<T, Then, Else = never> = true extends (false & T) ? Then : Else;
118
131
  export declare type IfUnknown<T, Then, Else = never> = unknown extends T ? Then : Else;
119
132
  export declare type IsAny<T> = IfAny<T, true, false>;
@@ -1,5 +1,4 @@
1
- export declare function toArray<T>(value: T | T[]): T[];
2
- export declare function toArray<T>(value: T | readonly T[]): readonly T[];
1
+ export declare function toArray<T>(value: T | T[] | readonly T[]): T[];
3
2
  /**
4
3
  * creates a new array of specified length and fills it with values from the specified value provider function
5
4
  * @param length length of the new array
@@ -1 +1 @@
1
- {"version":3,"file":"array.js","sourceRoot":"","sources":["../../../source/utils/array/array.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../../source/utils/array/array.ts"],"names":[],"mappings":"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"}
package/utils/clone.js CHANGED
@@ -3,7 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.clone = void 0;
4
4
  const object_1 = require("./object/object");
5
5
  const type_guards_1 = require("./type-guards");
6
+ const supportsStructuredClone = (typeof structuredClone == 'function');
6
7
  function clone(object, deep) {
8
+ if (supportsStructuredClone && deep) {
9
+ return structuredClone(object);
10
+ }
7
11
  if ((0, type_guards_1.isPrimitive)(object)) {
8
12
  return object;
9
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"clone.js","sourceRoot":"","sources":["../../source/utils/clone.ts"],"names":[],"mappings":";;;AAAA,4CAAgD;AAChD,+CAA4I;AAE5I,SAAgB,KAAK,CAAI,MAAS,EAAE,IAAa;IAC/C,IAAI,IAAA,yBAAW,EAAC,MAAM,CAAC,EAAE;QACvB,OAAO,MAAM,CAAC;KACf;IAED,IAAI,IAAA,oBAAM,EAAC,MAAM,CAAC,EAAE;QAClB,OAAO,IAAI,IAAI,CAAC,MAAM,CAAiB,CAAC;KACzC;IAED,IAAI,IAAA,sBAAQ,EAAC,MAAM,CAAC,EAAE;QACpB,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAiB,CAAC;KAChE;IAED,IAAI,IAAA,mBAAK,EAAC,MAAM,CAAC,EAAE;QACjB,OAAO,IAAI,GAAG,CAAC,MAAM,CAAiB,CAAC;KACxC;IAED,IAAI,IAAA,mBAAK,EAAC,MAAM,CAAC,EAAE;QACjB,OAAO,IAAI,GAAG,CAAC,MAAM,CAAiB,CAAC;KACxC;IAED,IAAI,IAAA,2BAAa,EAAC,MAAM,CAAC,EAAE;QACzB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAiB,CAAC;KACxC;IAED,IAAI,IAAA,0BAAY,EAAC,MAAM,CAAC,EAAE;QACxB,OAAO,MAAM,CAAC,KAAK,EAAkB,CAAC;KACvC;IAED,IAAI,IAAA,wBAAU,EAAC,MAAM,CAAC,EAAE;QACtB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5C,OAAO,IAAI,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAiB,CAAC;KACzF;IAED,IAAI,IAAA,qBAAO,EAAC,MAAM,CAAC,EAAE;QACnB,OAAO,IAAI;YACT,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAO,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAa;YAC5D,CAAC,CAAC,CAAC,GAAG,MAAM,CAAiB,CAAC;KACjC;IAED,IAAA,0BAAY,EAAC,MAAM,CAAC,CAAC;IAErB,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,EAAE,GAAG,MAAM,EAAO,CAAC;KAC3B;IAED,MAAM,OAAO,GAAG,IAAA,sBAAa,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAU,CAAC,CAAC;IAChG,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAiB,CAAC;AACrD,CAAC;AAhDD,sBAgDC"}
1
+ {"version":3,"file":"clone.js","sourceRoot":"","sources":["../../source/utils/clone.ts"],"names":[],"mappings":";;;AAAA,4CAAgD;AAChD,+CAA4I;AAE5I,MAAM,uBAAuB,GAAG,CAAC,OAAO,eAAe,IAAI,UAAU,CAAC,CAAC;AAEvE,SAAgB,KAAK,CAAI,MAAS,EAAE,IAAa;IAC/C,IAAI,uBAAuB,IAAI,IAAI,EAAE;QACnC,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;KAChC;IAED,IAAI,IAAA,yBAAW,EAAC,MAAM,CAAC,EAAE;QACvB,OAAO,MAAM,CAAC;KACf;IAED,IAAI,IAAA,oBAAM,EAAC,MAAM,CAAC,EAAE;QAClB,OAAO,IAAI,IAAI,CAAC,MAAM,CAAiB,CAAC;KACzC;IAED,IAAI,IAAA,sBAAQ,EAAC,MAAM,CAAC,EAAE;QACpB,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAiB,CAAC;KAChE;IAED,IAAI,IAAA,mBAAK,EAAC,MAAM,CAAC,EAAE;QACjB,OAAO,IAAI,GAAG,CAAC,MAAM,CAAiB,CAAC;KACxC;IAED,IAAI,IAAA,mBAAK,EAAC,MAAM,CAAC,EAAE;QACjB,OAAO,IAAI,GAAG,CAAC,MAAM,CAAiB,CAAC;KACxC;IAED,IAAI,IAAA,2BAAa,EAAC,MAAM,CAAC,EAAE;QACzB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAiB,CAAC;KACxC;IAED,IAAI,IAAA,0BAAY,EAAC,MAAM,CAAC,EAAE;QACxB,OAAO,MAAM,CAAC,KAAK,EAAkB,CAAC;KACvC;IAED,IAAI,IAAA,wBAAU,EAAC,MAAM,CAAC,EAAE;QACtB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5C,OAAO,IAAI,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAiB,CAAC;KACzF;IAED,IAAI,IAAA,qBAAO,EAAC,MAAM,CAAC,EAAE;QACnB,OAAO,IAAI;YACT,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAO,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAa;YAC5D,CAAC,CAAC,CAAC,GAAG,MAAM,CAAiB,CAAC;KACjC;IAED,IAAA,0BAAY,EAAC,MAAM,CAAC,CAAC;IAErB,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,EAAE,GAAG,MAAM,EAAO,CAAC;KAC3B;IAED,MAAM,OAAO,GAAG,IAAA,sBAAa,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAU,CAAC,CAAC;IAChG,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAiB,CAAC;AACrD,CAAC;AApDD,sBAoDC"}