@tstdl/base 0.87.15 → 0.88.0-alpha2

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 (784) hide show
  1. package/api/client/client.js +111 -127
  2. package/api/client/index.js +1 -18
  3. package/api/default-error-handlers.js +18 -44
  4. package/api/index.js +14 -20
  5. package/api/response.js +99 -123
  6. package/api/server/api-controller.js +43 -71
  7. package/api/server/api-request-token.provider.js +13 -40
  8. package/api/server/error-handler.js +25 -46
  9. package/api/server/gateway.js +219 -225
  10. package/api/server/index.js +5 -22
  11. package/api/server/middlewares/allowed-methods.middleware.js +17 -40
  12. package/api/server/middlewares/catch-error.middleware.js +12 -33
  13. package/api/server/middlewares/cors.middleware.js +49 -69
  14. package/api/server/middlewares/index.js +4 -21
  15. package/api/server/middlewares/response-time.middleware.js +8 -31
  16. package/api/server/module.js +18 -42
  17. package/api/server/tokens.js +6 -31
  18. package/api/types.js +14 -40
  19. package/api/utils.js +13 -36
  20. package/application/application.js +147 -169
  21. package/application/index.js +1 -18
  22. package/authentication/authentication.api.js +89 -113
  23. package/authentication/client/api.client.js +29 -57
  24. package/authentication/client/authentication.service.js +214 -235
  25. package/authentication/client/http-client.middleware.js +16 -38
  26. package/authentication/client/index.js +5 -22
  27. package/authentication/client/module.js +22 -45
  28. package/authentication/client/tokens.js +6 -30
  29. package/authentication/errors/index.js +1 -18
  30. package/authentication/errors/secret-requirements.error.js +6 -29
  31. package/authentication/index.d.ts +1 -0
  32. package/authentication/index.js +3 -19
  33. package/authentication/models/authentication-credentials.model.js +37 -66
  34. package/authentication/models/authentication-session.model.js +51 -80
  35. package/authentication/models/index.js +6 -23
  36. package/authentication/models/init-secret-reset-data.model.js +16 -44
  37. package/authentication/models/secret-check-result.model.js +10 -36
  38. package/authentication/models/token-payload-base.model.js +31 -59
  39. package/authentication/models/token.model.js +1 -16
  40. package/authentication/server/authentication-api-request-token.provider.js +25 -52
  41. package/authentication/server/authentication-credentials.repository.js +1 -24
  42. package/authentication/server/authentication-secret-requirements.validator.js +30 -57
  43. package/authentication/server/authentication-secret-reset.handler.js +1 -24
  44. package/authentication/server/authentication-session.repository.js +1 -24
  45. package/authentication/server/authentication-subject.resolver.js +5 -24
  46. package/authentication/server/authentication-token-payload.provider.js +5 -29
  47. package/authentication/server/authentication.api-controller.js +89 -114
  48. package/authentication/server/authentication.service.js +273 -308
  49. package/authentication/server/helper.js +66 -87
  50. package/authentication/server/index.js +11 -28
  51. package/authentication/server/module.js +26 -48
  52. package/authentication/server/mongo/index.js +2 -19
  53. package/authentication/server/mongo/mongo-authentication-credentials.repository.js +54 -84
  54. package/authentication/server/mongo/mongo-authentication-session.repository.js +51 -81
  55. package/browser/browser-context-controller.js +106 -133
  56. package/browser/browser-controller.js +87 -113
  57. package/browser/browser.service.js +87 -117
  58. package/browser/document-controller.js +70 -94
  59. package/browser/element-controller.js +231 -252
  60. package/browser/frame-controller.js +24 -47
  61. package/browser/index.d.ts +1 -0
  62. package/browser/index.js +11 -27
  63. package/browser/locator-controller.js +36 -59
  64. package/browser/module.js +26 -50
  65. package/browser/page-controller.js +150 -166
  66. package/browser/pdf-options.js +73 -103
  67. package/browser/types.js +1 -16
  68. package/browser/utils.js +94 -128
  69. package/cancellation/index.js +1 -18
  70. package/cancellation/token.js +164 -184
  71. package/collections/awaitable/awaitable-list.js +99 -122
  72. package/collections/awaitable/awaitable-map.js +93 -116
  73. package/collections/awaitable/awaitable-set.js +63 -86
  74. package/collections/awaitable/index.js +3 -20
  75. package/collections/collection.js +1 -16
  76. package/collections/index.js +6 -23
  77. package/collections/keyed-set.js +53 -77
  78. package/collections/list.js +1 -16
  79. package/collections/observable/index.js +8 -25
  80. package/collections/observable/observable-array.js +95 -118
  81. package/collections/observable/observable-collection-base.js +60 -83
  82. package/collections/observable/observable-collection.js +1 -16
  83. package/collections/observable/observable-list-base.js +55 -78
  84. package/collections/observable/observable-list.js +1 -16
  85. package/collections/observable/observable-map.js +56 -79
  86. package/collections/observable/observable-set.js +75 -98
  87. package/collections/observable/observable-sorted-array-list.js +165 -188
  88. package/collections/sorted-array-list.js +156 -179
  89. package/collections/sorted-list.js +1 -16
  90. package/collections/sorted-map.js +70 -93
  91. package/container/decorators.js +1 -34
  92. package/container/index.js +3 -20
  93. package/container/interfaces.js +1 -25
  94. package/container/token.js +1 -26
  95. package/cookie/cookie.js +49 -71
  96. package/cookie/index.js +1 -18
  97. package/core.js +56 -81
  98. package/data-structures/array-dictionary.js +89 -110
  99. package/data-structures/array-list.js +107 -130
  100. package/data-structures/cache.js +41 -64
  101. package/data-structures/circular-buffer.js +200 -220
  102. package/data-structures/collection.js +86 -109
  103. package/data-structures/dictionary.js +51 -75
  104. package/data-structures/distinct-collection.js +49 -73
  105. package/data-structures/index-out-of-bounds.error.js +8 -31
  106. package/data-structures/index.d.ts +1 -0
  107. package/data-structures/index.js +17 -33
  108. package/data-structures/iterable-weak-map.js +129 -149
  109. package/data-structures/linked-list.js +368 -385
  110. package/data-structures/list.js +86 -109
  111. package/data-structures/map-dictionary.js +55 -78
  112. package/data-structures/multi-key-map.js +141 -163
  113. package/data-structures/multi-key-set.js +56 -79
  114. package/data-structures/set-collection.js +54 -77
  115. package/data-structures/sorted-array-list.js +140 -166
  116. package/data-structures/weak-ref-map.js +126 -146
  117. package/database/entity-repository.js +2 -26
  118. package/database/entity.js +1 -16
  119. package/database/id.js +8 -29
  120. package/database/index.js +6 -23
  121. package/database/module.js +9 -33
  122. package/database/mongo/classes.js +18 -43
  123. package/database/mongo/index.js +10 -27
  124. package/database/mongo/model/document.js +62 -93
  125. package/database/mongo/model/index.js +1 -18
  126. package/database/mongo/module.js +59 -79
  127. package/database/mongo/mongo-base.repository.js +259 -283
  128. package/database/mongo/mongo-bulk.js +87 -110
  129. package/database/mongo/mongo-entity-repository.js +270 -296
  130. package/database/mongo/operations.js +48 -76
  131. package/database/mongo/query-converter.js +73 -96
  132. package/database/mongo/simple-entity-repository.js +5 -28
  133. package/database/mongo/types.js +2 -25
  134. package/database/query.js +7 -36
  135. package/database/utils.js +2 -25
  136. package/decorators/index.js +1 -18
  137. package/decorators/log.js +29 -51
  138. package/disposable/async-disposer.js +118 -130
  139. package/disposable/disposable.js +9 -36
  140. package/disposable/index.js +3 -20
  141. package/disposable/using.js +15 -37
  142. package/distributed-loop/controller.js +1 -16
  143. package/distributed-loop/distributed-loop.js +77 -105
  144. package/distributed-loop/index.js +3 -20
  145. package/distributed-loop/provider.js +21 -48
  146. package/enumerable/async-enumerable.js +238 -261
  147. package/enumerable/enumerable-methods.js +1 -16
  148. package/enumerable/enumerable.js +177 -200
  149. package/enumerable/index.js +2 -19
  150. package/environment.js +25 -57
  151. package/error/api.error.js +10 -33
  152. package/error/assertion.error.js +6 -29
  153. package/error/bad-request.error.js +6 -29
  154. package/error/custom.error.js +25 -47
  155. package/error/details.error.js +8 -31
  156. package/error/forbidden.error.js +6 -29
  157. package/error/index.js +16 -33
  158. package/error/invalid-token.error.js +6 -29
  159. package/error/max-bytes-exceeded.error.js +9 -32
  160. package/error/method-not-allowed.error.js +6 -29
  161. package/error/multi.error.js +8 -31
  162. package/error/not-found.error.js +6 -29
  163. package/error/not-implemented.error.js +6 -29
  164. package/error/not-supported.error.js +11 -34
  165. package/error/timeout.error.js +6 -29
  166. package/error/unauthorized.error.js +6 -29
  167. package/error/unsupported-media-type.error.js +6 -29
  168. package/examples/api/authentication.js +49 -49
  169. package/examples/api/basic-overview.js +80 -85
  170. package/examples/api/custom-authentication.js +94 -99
  171. package/examples/api/streaming.js +90 -95
  172. package/examples/browser/basic.js +21 -22
  173. package/examples/http/client.js +15 -16
  174. package/examples/mail/basic.js +41 -42
  175. package/examples/mail/templates/hello-name.js +10 -33
  176. package/examples/pdf/basic.js +48 -49
  177. package/examples/pdf/templates/hello-name.js +35 -58
  178. package/examples/reflection/basic.js +53 -84
  179. package/examples/template/basic.js +32 -33
  180. package/examples/template/templates/hello-jsx.js +8 -32
  181. package/examples/template/templates/hello-name.js +18 -41
  182. package/function/index.js +1 -18
  183. package/function/log.js +18 -40
  184. package/http/client/adapters/index.d.ts +1 -0
  185. package/http/client/adapters/index.js +1 -0
  186. package/http/client/adapters/undici-http-client.adapter.js +92 -111
  187. package/http/client/http-client-options.js +10 -33
  188. package/http/client/http-client-request.js +149 -171
  189. package/http/client/http-client-response.js +33 -56
  190. package/http/client/http-client.adapter.js +1 -24
  191. package/http/client/http-client.js +295 -313
  192. package/http/client/index.d.ts +2 -0
  193. package/http/client/index.js +8 -23
  194. package/http/client/middleware.js +1 -16
  195. package/http/client/module.js +20 -43
  196. package/http/client/tokens.js +2 -25
  197. package/http/cookie-parser.js +19 -42
  198. package/http/http-body.js +52 -75
  199. package/http/http-form.js +14 -37
  200. package/http/http-headers.js +86 -109
  201. package/http/http-query.js +14 -37
  202. package/http/http-url-parameters.js +8 -31
  203. package/http/http-value-map.js +110 -133
  204. package/http/http.error.js +60 -82
  205. package/http/index.js +11 -28
  206. package/http/server/http-server-request.js +24 -47
  207. package/http/server/http-server-response.js +22 -45
  208. package/http/server/http-server.js +2 -25
  209. package/http/server/index.js +3 -20
  210. package/http/server/node/index.js +2 -19
  211. package/http/server/node/module.js +8 -28
  212. package/http/server/node/node-http-server.js +205 -230
  213. package/http/types.js +21 -47
  214. package/http/utils.js +92 -108
  215. package/image-service/image-service.js +59 -91
  216. package/image-service/imgproxy/imgproxy-image-service.js +88 -125
  217. package/image-service/imgproxy/index.js +1 -18
  218. package/image-service/index.js +1 -18
  219. package/import.js +2 -25
  220. package/index.js +1 -18
  221. package/injector/decorators.js +134 -112
  222. package/injector/index.js +11 -28
  223. package/injector/inject.js +104 -103
  224. package/injector/injector.js +481 -497
  225. package/injector/interfaces.js +2 -26
  226. package/injector/provider.js +22 -54
  227. package/injector/resolve-chain.js +91 -117
  228. package/injector/resolve.error.js +11 -36
  229. package/injector/symbols.js +2 -26
  230. package/injector/token.js +17 -38
  231. package/injector/type-info.js +1 -16
  232. package/injector/types.js +1 -16
  233. package/interfaces.js +1 -16
  234. package/json-path/index.js +1 -18
  235. package/json-path/json-path.js +138 -138
  236. package/key-value-store/index.js +2 -19
  237. package/key-value-store/key-value-store.provider.js +1 -24
  238. package/key-value-store/key-value.store.js +6 -29
  239. package/key-value-store/mongo/index.js +6 -23
  240. package/key-value-store/mongo/module.js +17 -35
  241. package/key-value-store/mongo/mongo-key-value-store.provider.js +21 -48
  242. package/key-value-store/mongo/mongo-key-value.model.js +1 -16
  243. package/key-value-store/mongo/mongo-key-value.repository.js +23 -52
  244. package/key-value-store/mongo/mongo-key-value.store.js +60 -89
  245. package/key-value-store/mongo/tokens.js +2 -25
  246. package/lock/index.js +2 -19
  247. package/lock/lock.js +6 -29
  248. package/lock/mongo/index.js +5 -22
  249. package/lock/mongo/lock.js +112 -135
  250. package/lock/mongo/model.js +1 -16
  251. package/lock/mongo/module.js +18 -37
  252. package/lock/mongo/mongo-lock-repository.js +57 -85
  253. package/lock/mongo/provider.js +39 -68
  254. package/lock/provider.js +2 -25
  255. package/lock/web/index.js +3 -20
  256. package/lock/web/module.js +11 -31
  257. package/lock/web/web-lock.js +81 -105
  258. package/lock/web/web-lock.provider.js +28 -57
  259. package/logger/console/index.js +1 -18
  260. package/logger/console/logger.js +55 -81
  261. package/logger/index.js +3 -20
  262. package/logger/level.js +8 -31
  263. package/logger/logger.js +38 -61
  264. package/logger/noop/index.js +1 -18
  265. package/logger/noop/logger.js +20 -42
  266. package/logger/tokens.js +2 -25
  267. package/mail/clients/index.d.ts +1 -0
  268. package/mail/clients/index.js +1 -0
  269. package/mail/clients/nodemailer.mail-client.js +64 -91
  270. package/mail/index.d.ts +2 -0
  271. package/mail/index.js +7 -22
  272. package/mail/mail.client.js +35 -63
  273. package/mail/mail.service.d.ts +1 -1
  274. package/mail/mail.service.js +74 -106
  275. package/mail/models/index.js +6 -23
  276. package/mail/models/mail-address.model.js +1 -16
  277. package/mail/models/mail-content.model.js +1 -16
  278. package/mail/models/mail-data.model.js +1 -16
  279. package/mail/models/mail-log.model.js +1 -16
  280. package/mail/models/mail-send-result.model.js +1 -16
  281. package/mail/models/mail-template.model.js +5 -28
  282. package/mail/module.d.ts +1 -1
  283. package/mail/module.js +21 -41
  284. package/mail/repositories/index.d.ts +1 -0
  285. package/mail/repositories/index.js +1 -0
  286. package/mail/repositories/mail-log.repository.d.ts +4 -0
  287. package/mail/repositories/mail-log.repository.js +3 -0
  288. package/mail/repositories/mongo/index.d.ts +1 -0
  289. package/mail/repositories/mongo/index.js +1 -0
  290. package/mail/repositories/{mongo-mail-log.repository.d.ts → mongo/mongo-mail-log.repository.d.ts} +6 -6
  291. package/mail/repositories/mongo/mongo-mail-log.repository.js +33 -0
  292. package/mail/tokens.js +2 -25
  293. package/memory/finalization.js +36 -60
  294. package/memory/index.js +2 -19
  295. package/memory/observable-finalization-registry.js +9 -32
  296. package/message-bus/broadcast-channel/broadcast-channel-message-bus-provider.js +24 -53
  297. package/message-bus/broadcast-channel/broadcast-channel-message-bus.js +47 -74
  298. package/message-bus/broadcast-channel/index.js +3 -20
  299. package/message-bus/broadcast-channel/module.js +11 -31
  300. package/message-bus/index.js +3 -20
  301. package/message-bus/local/index.js +3 -20
  302. package/message-bus/local/local-message-bus-provider.js +36 -65
  303. package/message-bus/local/local-message-bus.js +39 -66
  304. package/message-bus/local/module.js +11 -31
  305. package/message-bus/local/types.js +1 -16
  306. package/message-bus/message-bus-base.js +41 -63
  307. package/message-bus/message-bus-provider.js +1 -24
  308. package/message-bus/message-bus.js +6 -29
  309. package/migration/index.js +3 -20
  310. package/migration/migration-state-repository.js +2 -25
  311. package/migration/migration-state.js +1 -16
  312. package/migration/migrator.js +81 -108
  313. package/migration/mongo/index.js +2 -19
  314. package/migration/mongo/migration-state-repository.js +24 -53
  315. package/migration/mongo/module.js +15 -34
  316. package/module/index.js +4 -21
  317. package/module/module-base.js +37 -60
  318. package/module/module-metric-reporter.js +58 -77
  319. package/module/module.js +10 -34
  320. package/module/modules/function.module.js +11 -34
  321. package/module/modules/index.js +2 -19
  322. package/module/modules/web-server.module.js +54 -83
  323. package/module/utils.js +19 -43
  324. package/object-storage/index.js +3 -20
  325. package/object-storage/object-storage-provider.js +1 -24
  326. package/object-storage/object-storage.js +7 -30
  327. package/object-storage/object.js +7 -30
  328. package/object-storage/s3/index.js +3 -20
  329. package/object-storage/s3/s3.object-storage-provider.js +75 -100
  330. package/object-storage/s3/s3.object-storage.js +134 -160
  331. package/object-storage/s3/s3.object.js +39 -62
  332. package/openid-connect/cached-oidc-configuration.service.js +36 -65
  333. package/openid-connect/index.js +11 -28
  334. package/openid-connect/mongo-oidc-state.repository.js +40 -65
  335. package/openid-connect/oidc-configuration.service.js +39 -66
  336. package/openid-connect/oidc-state.model.js +1 -16
  337. package/openid-connect/oidc-state.repository.js +2 -25
  338. package/openid-connect/oidc.service-model.js +1 -16
  339. package/openid-connect/oidc.service.js +158 -187
  340. package/package.json +95 -5
  341. package/password/have-i-been-pwned.js +21 -39
  342. package/password/index.js +4 -21
  343. package/password/password-check-result.model.js +34 -63
  344. package/password/password-check.js +46 -76
  345. package/password/password-check.localization.js +86 -111
  346. package/pdf/index.js +1 -18
  347. package/pdf/pdf.service.js +172 -206
  348. package/polyfills.js +1 -2
  349. package/pool/index.js +1 -18
  350. package/pool/pool.js +116 -133
  351. package/process-shutdown.js +57 -81
  352. package/promise/cancelable-promise.js +23 -41
  353. package/promise/deferred-promise.js +68 -92
  354. package/promise/index.js +3 -20
  355. package/promise/lazy-promise.js +24 -47
  356. package/queue/enqueue-batch.js +18 -41
  357. package/queue/index.js +3 -20
  358. package/queue/mongo/index.js +4 -21
  359. package/queue/mongo/job.js +1 -16
  360. package/queue/mongo/mongo-job.repository.js +45 -70
  361. package/queue/mongo/queue.js +243 -265
  362. package/queue/mongo/queue.provider.js +47 -72
  363. package/queue/provider.js +1 -24
  364. package/queue/queue.js +15 -41
  365. package/random/index.js +2 -19
  366. package/random/number-generator/index.d.ts +2 -0
  367. package/random/number-generator/index.js +5 -20
  368. package/random/number-generator/mulberry32.js +34 -51
  369. package/random/number-generator/random-number-generator-function.js +1 -24
  370. package/random/number-generator/random-number-generator.js +8 -31
  371. package/random/number-generator/seeded-random-number-generator.js +5 -28
  372. package/random/number-generator/sfc32.js +41 -64
  373. package/random/number-generator/utils.d.ts +1 -0
  374. package/random/number-generator/utils.js +7 -25
  375. package/random/series.js +41 -43
  376. package/reflection/decorator-data.js +63 -80
  377. package/reflection/decorators.js +39 -69
  378. package/reflection/index.js +5 -22
  379. package/reflection/reflection-data-map.js +32 -55
  380. package/reflection/registry.js +110 -130
  381. package/reflection/types.js +1 -16
  382. package/reflection/utils.js +96 -124
  383. package/require.js +3 -26
  384. package/rpc/endpoints/index.d.ts +1 -0
  385. package/rpc/endpoints/index.js +1 -0
  386. package/rpc/endpoints/message-port.rpc-endpoint.js +29 -48
  387. package/rpc/index.js +4 -21
  388. package/rpc/model.js +7 -30
  389. package/rpc/rpc-endpoint.js +17 -40
  390. package/rpc/rpc-error.js +17 -40
  391. package/rpc/rpc.js +223 -235
  392. package/rxjs/cast.js +4 -28
  393. package/rxjs/index.js +13 -30
  394. package/rxjs/intersection-observer.js +25 -48
  395. package/rxjs/media-query.js +8 -27
  396. package/rxjs/mutation-observer.js +28 -50
  397. package/rxjs/noop.js +4 -28
  398. package/rxjs/performance-observer.js +37 -60
  399. package/rxjs/resize-observer.js +28 -50
  400. package/rxjs/retry-backoff.js +23 -47
  401. package/rxjs/slow-array.js +22 -36
  402. package/rxjs/start-with-provider.js +5 -28
  403. package/rxjs/teardown.js +21 -44
  404. package/rxjs/timing.js +26 -57
  405. package/rxjs/touch.js +11 -30
  406. package/schema/array-constraints/index.js +2 -19
  407. package/schema/array-constraints/maximum-length.js +19 -42
  408. package/schema/array-constraints/minimum-length.js +19 -42
  409. package/schema/coercers/boolean.coercer.js +25 -49
  410. package/schema/coercers/date.coercer.js +14 -38
  411. package/schema/coercers/index.js +6 -23
  412. package/schema/coercers/number.coercer.js +12 -36
  413. package/schema/coercers/regexp.coercer.js +18 -41
  414. package/schema/coercers/string.coercer.js +12 -36
  415. package/schema/coercers/uint8-array.coercer.js +20 -44
  416. package/schema/constraints/enumeration.js +27 -49
  417. package/schema/constraints/generic.js +21 -41
  418. package/schema/constraints/index.js +12 -29
  419. package/schema/constraints/integer.js +20 -44
  420. package/schema/constraints/length.js +14 -36
  421. package/schema/constraints/literal.js +22 -44
  422. package/schema/constraints/maximum-date.js +23 -46
  423. package/schema/constraints/maximum-length.js +22 -45
  424. package/schema/constraints/maximum.js +21 -44
  425. package/schema/constraints/minimum-date.js +23 -46
  426. package/schema/constraints/minimum-length.js +22 -45
  427. package/schema/constraints/minimum.js +21 -44
  428. package/schema/constraints/pattern.js +23 -46
  429. package/schema/decorators/class.js +4 -26
  430. package/schema/decorators/coerce.js +4 -26
  431. package/schema/decorators/constraint.js +6 -28
  432. package/schema/decorators/index.js +6 -23
  433. package/schema/decorators/property.js +16 -38
  434. package/schema/decorators/types.js +1 -16
  435. package/schema/decorators/utils.js +45 -73
  436. package/schema/index.js +10 -27
  437. package/schema/schema.error.js +59 -72
  438. package/schema/schema.js +256 -274
  439. package/schema/schemas/any.js +7 -30
  440. package/schema/schemas/array.js +21 -44
  441. package/schema/schemas/assign.js +23 -46
  442. package/schema/schemas/boolean.js +7 -30
  443. package/schema/schemas/constraint.js +6 -29
  444. package/schema/schemas/date.js +20 -43
  445. package/schema/schemas/defaulted.js +8 -31
  446. package/schema/schemas/enumeration.js +15 -38
  447. package/schema/schemas/index.js +26 -43
  448. package/schema/schemas/instance.js +4 -26
  449. package/schema/schemas/literal.js +15 -38
  450. package/schema/schemas/nullable.js +7 -30
  451. package/schema/schemas/number.js +25 -48
  452. package/schema/schemas/object.js +10 -34
  453. package/schema/schemas/omit.js +14 -37
  454. package/schema/schemas/one-or-many.js +13 -35
  455. package/schema/schemas/optional.js +6 -30
  456. package/schema/schemas/partial.js +16 -39
  457. package/schema/schemas/pick.js +14 -37
  458. package/schema/schemas/readable-stream.js +7 -30
  459. package/schema/schemas/record.js +9 -31
  460. package/schema/schemas/regexp.js +7 -30
  461. package/schema/schemas/string.js +36 -59
  462. package/schema/schemas/transform.js +6 -29
  463. package/schema/schemas/uint8-array.js +27 -50
  464. package/schema/schemas/union.js +11 -34
  465. package/schema/schemas/unknown.js +7 -30
  466. package/schema/transformers/generic.js +16 -39
  467. package/schema/transformers/index.js +4 -21
  468. package/schema/transformers/lowercase.js +10 -33
  469. package/schema/transformers/trim.js +10 -33
  470. package/schema/transformers/uppercase.js +10 -33
  471. package/schema/types/index.js +5 -22
  472. package/schema/types/schema-array-constraint.js +1 -24
  473. package/schema/types/schema-value-coercer.js +1 -24
  474. package/schema/types/schema-value-constraint.js +1 -24
  475. package/schema/types/schema-value-transformer.js +1 -24
  476. package/schema/types/types.js +161 -191
  477. package/schema/utils/index.js +2 -19
  478. package/schema/utils/schema.js +120 -142
  479. package/schema/utils/value-type.js +51 -74
  480. package/search-index/elastic/config.js +21 -50
  481. package/search-index/elastic/index.js +6 -23
  482. package/search-index/elastic/keyword-rewriter.js +17 -40
  483. package/search-index/elastic/model/elastic-query.js +1 -16
  484. package/search-index/elastic/model/index-mapping.js +4 -26
  485. package/search-index/elastic/model/index.js +3 -20
  486. package/search-index/elastic/model/sort.js +1 -16
  487. package/search-index/elastic/module.js +43 -68
  488. package/search-index/elastic/query-builder/boolean-query-builder.js +46 -69
  489. package/search-index/elastic/query-builder/index.js +1 -18
  490. package/search-index/elastic/query-converter.js +174 -192
  491. package/search-index/elastic/search-index.js +132 -153
  492. package/search-index/elastic/sort-converter.js +12 -34
  493. package/search-index/elastic/types.js +1 -16
  494. package/search-index/error.js +12 -35
  495. package/search-index/index.js +3 -20
  496. package/search-index/memory/index.js +1 -18
  497. package/search-index/memory/memory-search-index.js +130 -152
  498. package/search-index/search-index.js +30 -53
  499. package/search-index/search-result.js +1 -16
  500. package/serializer/handlers/binary.js +19 -47
  501. package/serializer/handlers/date.js +4 -28
  502. package/serializer/handlers/error.js +7 -31
  503. package/serializer/handlers/index.js +7 -24
  504. package/serializer/handlers/map.js +16 -40
  505. package/serializer/handlers/regex.js +7 -31
  506. package/serializer/handlers/register.js +36 -59
  507. package/serializer/handlers/set.js +13 -37
  508. package/serializer/index.js +3 -30
  509. package/serializer/serializable.js +43 -68
  510. package/serializer/serializer.js +244 -264
  511. package/serializer/types.js +6 -34
  512. package/signals/api.js +18 -46
  513. package/signals/computed-with-dependencies.js +8 -31
  514. package/signals/effect-with-dependencies.js +8 -31
  515. package/signals/implementation/api.js +25 -30
  516. package/signals/implementation/computed.js +77 -73
  517. package/signals/implementation/configure.js +18 -41
  518. package/signals/implementation/effect.js +49 -66
  519. package/signals/implementation/errors.js +5 -29
  520. package/signals/implementation/graph.js +232 -176
  521. package/signals/implementation/index.js +10 -27
  522. package/signals/implementation/signal.js +62 -76
  523. package/signals/implementation/to-observable.js +21 -38
  524. package/signals/implementation/to-signal.js +44 -60
  525. package/signals/implementation/untracked.js +15 -31
  526. package/signals/implementation/watch.js +41 -64
  527. package/signals/index.js +9 -26
  528. package/signals/lazylize.js +4 -27
  529. package/signals/pipe.js +9 -33
  530. package/signals/switch-map.js +4 -27
  531. package/signals/to-signal-2.js +38 -61
  532. package/signals/types.js +1 -16
  533. package/signals/untracked-operator.js +11 -33
  534. package/sse/index.d.ts +1 -0
  535. package/sse/index.js +3 -19
  536. package/sse/model.js +1 -16
  537. package/sse/server-sent-events-source.js +54 -76
  538. package/sse/server-sent-events.js +48 -72
  539. package/supports.js +5 -32
  540. package/templates/index.js +9 -26
  541. package/templates/module.js +27 -48
  542. package/templates/providers/file.template-provider.js +41 -82
  543. package/templates/providers/index.d.ts +2 -0
  544. package/templates/providers/index.js +2 -0
  545. package/templates/providers/memory.template-provider.js +28 -55
  546. package/templates/renderers/handlebars.template-renderer.js +85 -122
  547. package/templates/renderers/index.d.ts +4 -0
  548. package/templates/renderers/index.js +4 -0
  549. package/templates/renderers/jsx.template-renderer.js +29 -56
  550. package/templates/renderers/mjml.template-renderer.js +43 -82
  551. package/templates/renderers/string.template-renderer.js +25 -52
  552. package/templates/resolvers/file.template-resolver.js +47 -90
  553. package/templates/resolvers/index.d.ts +3 -0
  554. package/templates/resolvers/index.js +3 -0
  555. package/templates/resolvers/jsx.template-resolver.js +30 -59
  556. package/templates/resolvers/string.template-resolver.js +30 -59
  557. package/templates/template-renderer.provider.js +37 -66
  558. package/templates/template-resolver.provider.js +37 -66
  559. package/templates/template.model.js +40 -69
  560. package/templates/template.provider.js +1 -24
  561. package/templates/template.renderer.js +11 -34
  562. package/templates/template.resolver.js +1 -24
  563. package/templates/template.service.js +50 -82
  564. package/templates/tokens.js +3 -27
  565. package/templates/types/index.d.ts +1 -0
  566. package/templates/types/index.js +1 -0
  567. package/templates/types/jsx.intrinsic-elements.js +1 -16
  568. package/text/dynamic-text.model.js +40 -69
  569. package/text/index.js +3 -20
  570. package/text/localizable-text.model.js +1 -16
  571. package/text/localization.service.js +197 -229
  572. package/theme/adapters/css-adapter.js +23 -46
  573. package/theme/adapters/index.d.ts +2 -0
  574. package/theme/adapters/index.js +2 -0
  575. package/theme/adapters/tailwind-adapter.js +29 -52
  576. package/theme/index.js +1 -18
  577. package/theme/theme-service.js +109 -147
  578. package/threading/index.js +2 -19
  579. package/threading/thread-pool.js +48 -70
  580. package/threading/thread-worker.js +3 -26
  581. package/tokens.js +2 -25
  582. package/types/geo-json.js +1 -16
  583. package/types.js +2 -16
  584. package/utils/alphabet.js +12 -35
  585. package/utils/any-iterable-iterator.js +4 -27
  586. package/utils/array/array-backtracker.js +42 -65
  587. package/utils/array/array.js +76 -79
  588. package/utils/array/index.js +2 -19
  589. package/utils/async-iterable-helpers/all.js +25 -46
  590. package/utils/async-iterable-helpers/any.js +25 -46
  591. package/utils/async-iterable-helpers/assert.js +22 -43
  592. package/utils/async-iterable-helpers/batch.js +26 -46
  593. package/utils/async-iterable-helpers/buffer.js +47 -64
  594. package/utils/async-iterable-helpers/concat.js +5 -27
  595. package/utils/async-iterable-helpers/default-if-empty.js +9 -32
  596. package/utils/async-iterable-helpers/deferred.js +3 -26
  597. package/utils/async-iterable-helpers/difference.js +24 -48
  598. package/utils/async-iterable-helpers/distinct.js +23 -44
  599. package/utils/async-iterable-helpers/drain.js +4 -26
  600. package/utils/async-iterable-helpers/filter.js +23 -44
  601. package/utils/async-iterable-helpers/first-or-default.js +8 -30
  602. package/utils/async-iterable-helpers/first.js +8 -30
  603. package/utils/async-iterable-helpers/for-each.js +18 -38
  604. package/utils/async-iterable-helpers/group-single.js +3 -26
  605. package/utils/async-iterable-helpers/group-to-map.js +20 -41
  606. package/utils/async-iterable-helpers/group-to-single-map.js +23 -44
  607. package/utils/async-iterable-helpers/group.js +3 -26
  608. package/utils/async-iterable-helpers/includes.js +7 -28
  609. package/utils/async-iterable-helpers/index.js +48 -65
  610. package/utils/async-iterable-helpers/interrupt.js +19 -43
  611. package/utils/async-iterable-helpers/is-async-iterable.js +5 -29
  612. package/utils/async-iterable-helpers/last-or-default.js +13 -36
  613. package/utils/async-iterable-helpers/last.js +13 -36
  614. package/utils/async-iterable-helpers/map-many.js +19 -40
  615. package/utils/async-iterable-helpers/map.js +19 -40
  616. package/utils/async-iterable-helpers/materialize.js +21 -42
  617. package/utils/async-iterable-helpers/metadata.js +36 -54
  618. package/utils/async-iterable-helpers/multiplex.js +23 -44
  619. package/utils/async-iterable-helpers/observable-iterable.js +31 -53
  620. package/utils/async-iterable-helpers/pairwise.js +26 -44
  621. package/utils/async-iterable-helpers/parallel/feed.js +24 -45
  622. package/utils/async-iterable-helpers/parallel/filter.js +8 -31
  623. package/utils/async-iterable-helpers/parallel/for-each.js +21 -44
  624. package/utils/async-iterable-helpers/parallel/group.js +9 -32
  625. package/utils/async-iterable-helpers/parallel/index.js +7 -24
  626. package/utils/async-iterable-helpers/parallel/map.js +6 -29
  627. package/utils/async-iterable-helpers/parallel/tap.js +6 -29
  628. package/utils/async-iterable-helpers/parallel/types.js +1 -16
  629. package/utils/async-iterable-helpers/reduce.js +31 -46
  630. package/utils/async-iterable-helpers/retry.js +43 -58
  631. package/utils/async-iterable-helpers/single-or-default.js +17 -40
  632. package/utils/async-iterable-helpers/single.js +19 -42
  633. package/utils/async-iterable-helpers/skip.js +3 -26
  634. package/utils/async-iterable-helpers/sort.js +6 -29
  635. package/utils/async-iterable-helpers/take-until.js +32 -49
  636. package/utils/async-iterable-helpers/take-while.js +29 -46
  637. package/utils/async-iterable-helpers/take.js +23 -44
  638. package/utils/async-iterable-helpers/tap.js +19 -40
  639. package/utils/async-iterable-helpers/throttle.js +9 -30
  640. package/utils/async-iterable-helpers/to-array.js +10 -33
  641. package/utils/async-iterable-helpers/to-async-iterable-iterator.js +40 -59
  642. package/utils/async-iterable-helpers/to-async-iterator.js +32 -54
  643. package/utils/async-iterable-helpers/to-set.js +10 -33
  644. package/utils/async-iterable-helpers/to-sync-iterable.js +6 -27
  645. package/utils/async-iterable-helpers/types.js +1 -16
  646. package/utils/async-iterable-helpers/while.js +25 -46
  647. package/utils/async-iterator-iterable-iterator.js +41 -62
  648. package/utils/backoff.js +109 -109
  649. package/utils/base64.js +153 -140
  650. package/utils/benchmark.js +114 -107
  651. package/utils/binary-search.js +70 -87
  652. package/utils/binary.js +50 -61
  653. package/utils/clone.js +43 -64
  654. package/utils/comparison.js +76 -98
  655. package/utils/compression.js +107 -118
  656. package/utils/config-parser.js +21 -48
  657. package/utils/crc32.js +20 -42
  658. package/utils/cryptography.js +163 -121
  659. package/utils/date-time.js +102 -138
  660. package/utils/encoding.js +62 -60
  661. package/utils/enum.js +27 -53
  662. package/utils/equals.js +103 -119
  663. package/utils/event-loop.js +19 -39
  664. package/utils/factory-map.js +53 -75
  665. package/utils/feedable-async-iterable.js +47 -70
  666. package/utils/file-reader.js +15 -41
  667. package/utils/format-error.js +36 -57
  668. package/utils/format.js +32 -53
  669. package/utils/function/index.js +2 -19
  670. package/utils/function/memoize.js +38 -53
  671. package/utils/function/throttle.js +26 -48
  672. package/utils/helpers.js +93 -102
  673. package/utils/image.js +62 -88
  674. package/utils/index.js +47 -64
  675. package/utils/iterable-helpers/all.js +8 -31
  676. package/utils/iterable-helpers/any.js +8 -31
  677. package/utils/iterable-helpers/assert.js +7 -30
  678. package/utils/iterable-helpers/batch.js +11 -34
  679. package/utils/iterable-helpers/concat.js +4 -27
  680. package/utils/iterable-helpers/default-if-empty.js +9 -32
  681. package/utils/iterable-helpers/deferred.js +2 -25
  682. package/utils/iterable-helpers/difference.js +21 -45
  683. package/utils/iterable-helpers/distinct.js +9 -32
  684. package/utils/iterable-helpers/drain.js +4 -26
  685. package/utils/iterable-helpers/filter.js +7 -30
  686. package/utils/iterable-helpers/first-or-default.js +8 -30
  687. package/utils/iterable-helpers/first.js +8 -30
  688. package/utils/iterable-helpers/for-each.js +5 -28
  689. package/utils/iterable-helpers/group-single.js +3 -26
  690. package/utils/iterable-helpers/group-to-map.js +9 -32
  691. package/utils/iterable-helpers/group-to-single-map.js +10 -33
  692. package/utils/iterable-helpers/group.js +3 -26
  693. package/utils/iterable-helpers/includes.js +3 -26
  694. package/utils/iterable-helpers/index.js +39 -56
  695. package/utils/iterable-helpers/is-iterable.js +5 -29
  696. package/utils/iterable-helpers/last-or-default.js +13 -36
  697. package/utils/iterable-helpers/last.js +13 -36
  698. package/utils/iterable-helpers/map-many.js +6 -29
  699. package/utils/iterable-helpers/map.js +6 -29
  700. package/utils/iterable-helpers/materialize.js +2 -25
  701. package/utils/iterable-helpers/metadata.js +16 -38
  702. package/utils/iterable-helpers/pairwise.js +11 -33
  703. package/utils/iterable-helpers/range.js +4 -27
  704. package/utils/iterable-helpers/reduce.js +11 -33
  705. package/utils/iterable-helpers/single-or-default.js +14 -37
  706. package/utils/iterable-helpers/single.js +17 -40
  707. package/utils/iterable-helpers/skip.js +6 -29
  708. package/utils/iterable-helpers/sort.js +4 -27
  709. package/utils/iterable-helpers/take-until.js +8 -31
  710. package/utils/iterable-helpers/take-while.js +10 -33
  711. package/utils/iterable-helpers/take.js +10 -33
  712. package/utils/iterable-helpers/tap.js +6 -29
  713. package/utils/iterable-helpers/types.js +1 -16
  714. package/utils/iterable-helpers/while.js +8 -31
  715. package/utils/jwt.js +77 -100
  716. package/utils/map.js +35 -62
  717. package/utils/math.js +102 -64
  718. package/utils/merge.js +26 -45
  719. package/utils/middleware.js +36 -60
  720. package/utils/moving-metric.js +155 -188
  721. package/utils/noop.js +4 -27
  722. package/utils/object/decycle.js +57 -78
  723. package/utils/object/dereference.js +46 -44
  724. package/utils/object/forward-ref.js +59 -73
  725. package/utils/object/index.js +7 -24
  726. package/utils/object/lazy-property.js +81 -96
  727. package/utils/object/merge.js +48 -70
  728. package/utils/object/object.js +106 -136
  729. package/utils/object/property-name.js +69 -72
  730. package/utils/ordered-feedable-async-iterable.js +42 -65
  731. package/utils/patch-worker.js +69 -90
  732. package/utils/patterns.js +7 -29
  733. package/utils/periodic-reporter.js +60 -82
  734. package/utils/periodic-sampler.js +67 -91
  735. package/utils/provider-function-iterable.js +26 -48
  736. package/utils/proxy.js +17 -42
  737. package/utils/random.js +40 -50
  738. package/utils/reflection.js +13 -41
  739. package/utils/repl.js +14 -33
  740. package/utils/set.js +36 -62
  741. package/utils/singleton.js +18 -41
  742. package/utils/sort.js +53 -77
  743. package/utils/stream/finalize-stream.js +43 -62
  744. package/utils/stream/index.js +6 -23
  745. package/utils/stream/readable-stream-adapter.js +35 -57
  746. package/utils/stream/readable-stream-from-promise.js +7 -28
  747. package/utils/stream/size-limited-stream.js +12 -35
  748. package/utils/stream/stream-helper-types.js +1 -16
  749. package/utils/stream/stream-reader.js +30 -52
  750. package/utils/string/hypenate.js +2 -25
  751. package/utils/string/index.js +3 -20
  752. package/utils/string/title-case.js +6 -26
  753. package/utils/string/trim.js +9 -32
  754. package/utils/throw.js +7 -30
  755. package/utils/timer.js +70 -91
  756. package/utils/timing.js +52 -80
  757. package/utils/type-guards.js +253 -1076
  758. package/utils/type-of.js +25 -43
  759. package/utils/units.js +53 -124
  760. package/utils/url-builder.js +47 -68
  761. package/utils/value-or-provider.js +19 -44
  762. package/utils/z-base32.js +42 -63
  763. package/web-types.js +1 -16
  764. package/async-iterator-symbol.d.ts +0 -1
  765. package/async-iterator-symbol.js +0 -29
  766. package/mail/mail-log.repository.d.ts +0 -4
  767. package/mail/mail-log.repository.js +0 -26
  768. package/mail/repositories/mongo-mail-log.repository.js +0 -64
  769. package/notification/api.d.ts +0 -15
  770. package/notification/api.js +0 -56
  771. package/notification/models/index.d.ts +0 -2
  772. package/notification/models/index.js +0 -19
  773. package/notification/models/notification-channel-job.model.d.ts +0 -3
  774. package/notification/models/notification-channel-job.model.js +0 -16
  775. package/notification/models/notification.model.d.ts +0 -45
  776. package/notification/models/notification.model.js +0 -131
  777. package/notification/module.d.ts +0 -9
  778. package/notification/module.js +0 -30
  779. package/notification/notification-channel.service.d.ts +0 -5
  780. package/notification/notification-channel.service.js +0 -25
  781. package/notification/notification.repository.d.ts +0 -5
  782. package/notification/notification.repository.js +0 -25
  783. package/notification/notification.service.d.ts +0 -8
  784. package/notification/notification.service.js +0 -63
@@ -1,137 +1,117 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var registry_exports = {};
20
- __export(registry_exports, {
21
- ReflectionRegistry: () => ReflectionRegistry,
22
- reflectionRegistry: () => reflectionRegistry
23
- });
24
- module.exports = __toCommonJS(registry_exports);
25
- var import_factory_map = require("../utils/factory-map.js");
26
- var import_lazy_property = require("../utils/object/lazy-property.js");
27
- var import_reflection = require("../utils/reflection.js");
28
- var import_type_guards = require("../utils/type-guards.js");
29
- var import_decorator_data = require("./decorator-data.js");
30
- var import_reflection_data_map = require("./reflection-data-map.js");
31
- class ReflectionRegistry {
32
- metadataMap;
33
- finalizedTypesSet;
34
- constructor() {
35
- this.metadataMap = /* @__PURE__ */ new WeakMap();
36
- this.finalizedTypesSet = /* @__PURE__ */ new WeakSet();
37
- }
38
- hasType(type) {
39
- return this.metadataMap.has(type);
40
- }
41
- getMetadata(type) {
42
- const metadata = this.metadataMap.get(type);
43
- if ((0, import_type_guards.isDefined)(metadata) && !this.finalizedTypesSet.has(type)) {
44
- metadata.properties = new Map(metadata.properties);
45
- metadata.staticProperties = new Map(metadata.staticProperties);
46
- metadata.methods = new Map(metadata.methods);
47
- metadata.staticMethods = new Map(metadata.staticMethods);
48
- this.finalizedTypesSet.add(type);
1
+ import { FactoryMap } from '../utils/factory-map.js';
2
+ import { lazyObject, lazyObjectValue } from '../utils/object/lazy-property.js';
3
+ import { getDesignType, getParameterTypes, getReturnType } from '../utils/reflection.js';
4
+ import { isDefined, isUndefined } from '../utils/type-guards.js';
5
+ import { getDecoratorData } from './decorator-data.js';
6
+ import { ReflectionDataMap } from './reflection-data-map.js';
7
+ export class ReflectionRegistry {
8
+ metadataMap;
9
+ finalizedTypesSet;
10
+ constructor() {
11
+ this.metadataMap = new WeakMap();
12
+ this.finalizedTypesSet = new WeakSet();
49
13
  }
50
- return metadata;
51
- }
52
- register(target, propertyKey, descriptorOrParameterIndex) {
53
- const data = (0, import_decorator_data.getDecoratorData)(target, propertyKey, descriptorOrParameterIndex);
54
- this.registerDecoratorData(data);
55
- return data;
56
- }
57
- registerDecoratorData(data) {
58
- const metadata = this.getOrInitializeMetadata(data.constructor);
59
- if (data.type == "class") {
60
- return metadata;
61
- } else if (data.type == "property" || data.type == "accessor") {
62
- const propertyMetadata = (data.static ? metadata.staticProperties : metadata.properties).get(data.propertyKey);
63
- propertyMetadata.isAccessor = data.type == "accessor";
64
- return propertyMetadata;
65
- } else if (data.type == "method") {
66
- return (data.static ? metadata.staticMethods : metadata.methods).get(data.methodKey);
67
- } else if (data.type == "method-parameter") {
68
- return (data.static ? metadata.staticMethods : metadata.methods).get(data.methodKey);
69
- } else if (data.type == "constructor-parameter") {
70
- if ((0, import_type_guards.isUndefined)(metadata.parameters)) {
71
- throw new Error("Constructor parameters are not available. (missing decoration?)");
72
- }
73
- return metadata.parameters[data.index];
14
+ hasType(type) {
15
+ return this.metadataMap.has(type);
74
16
  }
75
- throw new Error(`Unknown DecoratorData type ${data.type}`);
76
- }
77
- /**
78
- * Unregister a type. Can be useful if you replace a class with an decorator.
79
- * However, this should not be necessary since WeakRefs are used.
80
- * @param type Type to unregister
81
- */
82
- unregister(type) {
83
- this.metadataMap.delete(type);
84
- }
85
- getOrInitializeMetadata(type) {
86
- if (this.finalizedTypesSet.has(type)) {
87
- throw new Error("Reflection data was accessed before registration was done.");
17
+ getMetadata(type) {
18
+ const metadata = this.metadataMap.get(type);
19
+ if (isDefined(metadata) && !this.finalizedTypesSet.has(type)) {
20
+ metadata.properties = new Map(metadata.properties);
21
+ metadata.staticProperties = new Map(metadata.staticProperties);
22
+ metadata.methods = new Map(metadata.methods);
23
+ metadata.staticMethods = new Map(metadata.staticMethods);
24
+ this.finalizedTypesSet.add(type);
25
+ }
26
+ return metadata;
88
27
  }
89
- if (!this.metadataMap.has(type)) {
90
- const metadata = initializeType(type);
91
- this.metadataMap.set(type, metadata);
92
- return metadata;
28
+ register(target, propertyKey, descriptorOrParameterIndex) {
29
+ const data = getDecoratorData(target, propertyKey, descriptorOrParameterIndex);
30
+ this.registerDecoratorData(data);
31
+ return data;
93
32
  }
94
- return this.metadataMap.get(type);
95
- }
96
- }
97
- function initializeType(type) {
98
- return (0, import_lazy_property.lazyObject)({
99
- metadataType: "type",
100
- constructor: (0, import_lazy_property.lazyObjectValue)(type),
101
- parent: (0, import_lazy_property.lazyObjectValue)(Reflect.getPrototypeOf(type)),
102
- parameters: {
103
- initializer() {
104
- const parametersTypes = (0, import_reflection.getParameterTypes)(type);
105
- return parametersTypes?.map((parameterType, index) => ({ metadataType: "constructor-parameter", index, type: parameterType, data: new import_reflection_data_map.ReflectionDataMap() }));
106
- }
107
- },
108
- properties: {
109
- initializer: () => new import_factory_map.FactoryMap((key) => ({ metadataType: "property", key, type: (0, import_reflection.getDesignType)(type.prototype, key), isAccessor: false, data: new import_reflection_data_map.ReflectionDataMap() }))
110
- },
111
- staticProperties: {
112
- initializer: () => new import_factory_map.FactoryMap((key) => ({ metadataType: "property", key, type: (0, import_reflection.getDesignType)(type, key), isAccessor: false, data: new import_reflection_data_map.ReflectionDataMap() }))
113
- },
114
- methods: {
115
- initializer: () => new import_factory_map.FactoryMap((key) => {
116
- const parameters = (0, import_reflection.getParameterTypes)(type.prototype, key);
117
- const returnType = (0, import_reflection.getReturnType)(type.prototype, key);
118
- if ((0, import_type_guards.isUndefined)(parameters)) {
119
- throw new Error(`Could not get parameters for method ${key.toString()} of type ${type.name}`);
33
+ registerDecoratorData(data) {
34
+ const metadata = this.getOrInitializeMetadata(data.constructor);
35
+ if (data.type == 'class') {
36
+ return metadata;
37
+ }
38
+ else if ((data.type == 'property') || (data.type == 'accessor')) {
39
+ const propertyMetadata = (data.static ? metadata.staticProperties : metadata.properties).get(data.propertyKey);
40
+ propertyMetadata.isAccessor = data.type == 'accessor';
41
+ return propertyMetadata;
120
42
  }
121
- return { metadataType: "method", parameters: parameters.map((parameter, index) => ({ metadataType: "method-parameter", index, type: parameter, data: new import_reflection_data_map.ReflectionDataMap() })), returnType, data: new import_reflection_data_map.ReflectionDataMap() };
122
- })
123
- },
124
- staticMethods: {
125
- initializer: () => new import_factory_map.FactoryMap((key) => {
126
- const parameters = (0, import_reflection.getParameterTypes)(type, key);
127
- const returnType = (0, import_reflection.getReturnType)(type, key);
128
- if ((0, import_type_guards.isUndefined)(parameters)) {
129
- throw new Error(`Could not get parameters for static method ${key.toString()} of type ${type.name}`);
43
+ else if (data.type == 'method') {
44
+ return (data.static ? metadata.staticMethods : metadata.methods).get(data.methodKey);
130
45
  }
131
- return { metadataType: "method", parameters: parameters.map((parameter, index) => ({ metadataType: "method-parameter", index, type: parameter, data: new import_reflection_data_map.ReflectionDataMap() })), returnType, data: new import_reflection_data_map.ReflectionDataMap() };
132
- })
133
- },
134
- data: { initializer: () => new import_reflection_data_map.ReflectionDataMap() }
135
- });
46
+ else if (data.type == 'method-parameter') {
47
+ return (data.static ? metadata.staticMethods : metadata.methods).get(data.methodKey);
48
+ }
49
+ else if (data.type == 'constructor-parameter') { // eslint-disable-line @typescript-eslint/no-unnecessary-condition
50
+ if (isUndefined(metadata.parameters)) {
51
+ throw new Error('Constructor parameters are not available. (missing decoration?)');
52
+ }
53
+ return metadata.parameters[data.index];
54
+ }
55
+ throw new Error(`Unknown DecoratorData type ${data.type}`);
56
+ }
57
+ /**
58
+ * Unregister a type. Can be useful if you replace a class with an decorator.
59
+ * However, this should not be necessary since WeakRefs are used.
60
+ * @param type Type to unregister
61
+ */
62
+ unregister(type) {
63
+ this.metadataMap.delete(type);
64
+ }
65
+ getOrInitializeMetadata(type) {
66
+ if (this.finalizedTypesSet.has(type)) {
67
+ throw new Error('Reflection data was accessed before registration was done.');
68
+ }
69
+ if (!this.metadataMap.has(type)) {
70
+ const metadata = initializeType(type);
71
+ this.metadataMap.set(type, metadata);
72
+ return metadata;
73
+ }
74
+ return this.metadataMap.get(type);
75
+ }
76
+ }
77
+ function initializeType(type) {
78
+ return lazyObject({
79
+ metadataType: 'type',
80
+ constructor: lazyObjectValue(type),
81
+ parent: lazyObjectValue(Reflect.getPrototypeOf(type)),
82
+ parameters: {
83
+ initializer() {
84
+ const parametersTypes = getParameterTypes(type);
85
+ return parametersTypes?.map((parameterType, index) => ({ metadataType: 'constructor-parameter', index, type: parameterType, data: new ReflectionDataMap() }));
86
+ }
87
+ },
88
+ properties: {
89
+ initializer: () => new FactoryMap((key) => ({ metadataType: 'property', key, type: getDesignType(type.prototype, key), isAccessor: false, data: new ReflectionDataMap() }))
90
+ },
91
+ staticProperties: {
92
+ initializer: () => new FactoryMap((key) => ({ metadataType: 'property', key, type: getDesignType(type, key), isAccessor: false, data: new ReflectionDataMap() }))
93
+ },
94
+ methods: {
95
+ initializer: () => new FactoryMap((key) => {
96
+ const parameters = getParameterTypes(type.prototype, key);
97
+ const returnType = getReturnType(type.prototype, key);
98
+ if (isUndefined(parameters)) {
99
+ throw new Error(`Could not get parameters for method ${key.toString()} of type ${type.name}`);
100
+ }
101
+ return { metadataType: 'method', parameters: parameters.map((parameter, index) => ({ metadataType: 'method-parameter', index, type: parameter, data: new ReflectionDataMap() })), returnType, data: new ReflectionDataMap() };
102
+ })
103
+ },
104
+ staticMethods: {
105
+ initializer: () => new FactoryMap((key) => {
106
+ const parameters = getParameterTypes(type, key);
107
+ const returnType = getReturnType(type, key);
108
+ if (isUndefined(parameters)) {
109
+ throw new Error(`Could not get parameters for static method ${key.toString()} of type ${type.name}`);
110
+ }
111
+ return { metadataType: 'method', parameters: parameters.map((parameter, index) => ({ metadataType: 'method-parameter', index, type: parameter, data: new ReflectionDataMap() })), returnType, data: new ReflectionDataMap() };
112
+ })
113
+ },
114
+ data: { initializer: () => new ReflectionDataMap() }
115
+ });
136
116
  }
137
- const reflectionRegistry = new ReflectionRegistry();
117
+ export const reflectionRegistry = new ReflectionRegistry();
@@ -1,16 +1 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __copyProps = (to, from, except, desc) => {
7
- if (from && typeof from === "object" || typeof from === "function") {
8
- for (let key of __getOwnPropNames(from))
9
- if (!__hasOwnProp.call(to, key) && key !== except)
10
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
- }
12
- return to;
13
- };
14
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
- var types_exports = {};
16
- module.exports = __toCommonJS(types_exports);
1
+ export {};
@@ -1,139 +1,111 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var utils_exports = {};
20
- __export(utils_exports, {
21
- createAccessorDecorator: () => createAccessorDecorator,
22
- createClassDecorator: () => createClassDecorator,
23
- createConstructorParameterDecorator: () => createConstructorParameterDecorator,
24
- createDecorator: () => createDecorator,
25
- createMethodDecorator: () => createMethodDecorator,
26
- createMethodParameterDecorator: () => createMethodParameterDecorator,
27
- createParameterDecorator: () => createParameterDecorator,
28
- createPropertyDecorator: () => createPropertyDecorator,
29
- createPropertyOrAccessorDecorator: () => createPropertyOrAccessorDecorator,
30
- getConstructor: () => getConstructor,
31
- getTypeInfoString: () => getTypeInfoString,
32
- printType: () => printType,
33
- wrapDecorator: () => wrapDecorator,
34
- wrapDecoratorFactory: () => wrapDecoratorFactory
35
- });
36
- module.exports = __toCommonJS(utils_exports);
37
- var import_array = require("../utils/array/array.js");
38
- var import_noop = require("../utils/noop.js");
39
- var import_type_guards = require("../utils/type-guards.js");
40
- var import_decorator_data = require("./decorator-data.js");
41
- var import_registry = require("./registry.js");
42
- function createDecorator(options, handler = import_noop.noop) {
43
- function decoratorWrapper(...args) {
44
- const data = (0, import_decorator_data.getDecoratorData)(...args);
45
- const optionsType = data.type == "constructor-parameter" ? "constructorParameter" : data.type == "method-parameter" ? "methodParameter" : data.type;
46
- const valid = options[optionsType] == true || optionsType == "methodParameter" && (options.methodParameter == true || options.parameter == true) || optionsType == "constructorParameter" && (options.constructorParameter == true || options.parameter == true);
47
- (0, import_type_guards.assert)(valid, () => `Decorator cannot be used for ${data.type}.`);
48
- const metadata = import_registry.reflectionRegistry.registerDecoratorData(data);
49
- if ((0, import_type_guards.isDefined)(options.data)) {
50
- metadata.data.setMany(options.data, options.mergeData);
1
+ import { toArray } from '../utils/array/array.js';
2
+ import { noop } from '../utils/noop.js';
3
+ import { assert, isDefined, isFunction, isSymbol } from '../utils/type-guards.js';
4
+ import { getDecoratorData } from './decorator-data.js';
5
+ import { reflectionRegistry } from './registry.js';
6
+ // eslint-disable-next-line max-lines-per-function
7
+ export function createDecorator(options, handler = noop) {
8
+ // eslint-disable-next-line max-statements, max-lines-per-function
9
+ function decoratorWrapper(...args) {
10
+ const data = getDecoratorData(...args);
11
+ const optionsType = (data.type == 'constructor-parameter') ? 'constructorParameter'
12
+ : (data.type == 'method-parameter') ? 'methodParameter'
13
+ : data.type;
14
+ const valid = (options[optionsType] == true)
15
+ || (optionsType == 'methodParameter' && ((options.methodParameter == true) || (options.parameter == true)))
16
+ || (optionsType == 'constructorParameter' && ((options.constructorParameter == true) || (options.parameter == true)));
17
+ assert(valid, () => `Decorator cannot be used for ${data.type}.`);
18
+ const metadata = reflectionRegistry.registerDecoratorData(data);
19
+ if (isDefined(options.data)) {
20
+ metadata.data.setMany(options.data, options.mergeData);
21
+ }
22
+ const result = handler(data, metadata, args);
23
+ if (isDefined(options.include)) {
24
+ for (const include of toArray(options.include)) {
25
+ include(...args); // eslint-disable-line @typescript-eslint/no-unsafe-argument
26
+ }
27
+ }
28
+ return result;
51
29
  }
52
- const result = handler(data, metadata, args);
53
- if ((0, import_type_guards.isDefined)(options.include)) {
54
- for (const include of (0, import_array.toArray)(options.include)) {
55
- include(...args);
56
- }
57
- }
58
- return result;
59
- }
60
- return decoratorWrapper;
30
+ return decoratorWrapper;
61
31
  }
62
- function createClassDecorator(options = {}) {
63
- return createDecorator({ ...options, class: true }, options.handler);
32
+ export function createClassDecorator(options = {}) {
33
+ return createDecorator({ ...options, class: true }, options.handler);
64
34
  }
65
- function createPropertyDecorator(options = {}) {
66
- return createDecorator({ ...options, property: true }, options.handler);
35
+ export function createPropertyDecorator(options = {}) {
36
+ return createDecorator({ ...options, property: true }, options.handler);
67
37
  }
68
- function createAccessorDecorator(options = {}) {
69
- return createDecorator({ ...options, accessor: true }, options.handler);
38
+ export function createAccessorDecorator(options = {}) {
39
+ return createDecorator({ ...options, accessor: true }, options.handler);
70
40
  }
71
- function createPropertyOrAccessorDecorator(options = {}) {
72
- return createDecorator({ ...options, property: true, accessor: true }, options.handler);
41
+ export function createPropertyOrAccessorDecorator(options = {}) {
42
+ return createDecorator({ ...options, property: true, accessor: true }, options.handler);
73
43
  }
74
- function createMethodDecorator(options = {}) {
75
- return createDecorator({ ...options, method: true }, options.handler);
44
+ export function createMethodDecorator(options = {}) {
45
+ return createDecorator({ ...options, method: true }, options.handler);
76
46
  }
77
- function createMethodParameterDecorator(options = {}) {
78
- return createDecorator({ ...options, methodParameter: true }, options.handler);
47
+ export function createMethodParameterDecorator(options = {}) {
48
+ return createDecorator({ ...options, methodParameter: true }, options.handler);
79
49
  }
80
- function createConstructorParameterDecorator(options = {}) {
81
- return createDecorator({ ...options, constructorParameter: true }, options.handler);
50
+ export function createConstructorParameterDecorator(options = {}) {
51
+ return createDecorator({ ...options, constructorParameter: true }, options.handler);
82
52
  }
83
- function createParameterDecorator(options = {}) {
84
- return createDecorator({ ...options, parameter: true }, options.handler);
53
+ export function createParameterDecorator(options = {}) {
54
+ return createDecorator({ ...options, parameter: true }, options.handler);
85
55
  }
86
- function wrapDecoratorFactory(decoratorFactory, options) {
87
- function wrappedDecoratorFactory(...args) {
88
- const decorator = decoratorFactory(...args);
89
- return wrapDecorator(decorator, options);
90
- }
91
- return wrappedDecoratorFactory;
56
+ export function wrapDecoratorFactory(decoratorFactory, options) {
57
+ function wrappedDecoratorFactory(...args) {
58
+ const decorator = decoratorFactory(...args);
59
+ return wrapDecorator(decorator, options);
60
+ }
61
+ return wrappedDecoratorFactory;
92
62
  }
93
- function wrapDecorator(decorator, options) {
94
- const wrappedDecorator = createDecorator({
95
- class: true,
96
- property: true,
97
- method: true,
98
- parameter: true,
99
- methodParameter: true,
100
- constructorParameter: true,
101
- ...options
102
- }, (data, metadata, args) => {
103
- options?.handler?.(data, metadata, args);
104
- return decorator(...args);
105
- });
106
- return wrappedDecorator;
63
+ export function wrapDecorator(decorator, options) {
64
+ const wrappedDecorator = createDecorator({
65
+ class: true,
66
+ property: true,
67
+ method: true,
68
+ parameter: true,
69
+ methodParameter: true,
70
+ constructorParameter: true,
71
+ ...options
72
+ }, (data, metadata, args) => {
73
+ options?.handler?.(data, metadata, args);
74
+ return decorator(...args); // eslint-disable-line @typescript-eslint/no-unsafe-argument
75
+ });
76
+ return wrappedDecorator;
107
77
  }
108
- function getConstructor(constructorOrTarget) {
109
- return (0, import_type_guards.isFunction)(constructorOrTarget) ? constructorOrTarget : constructorOrTarget.constructor;
78
+ export function getConstructor(constructorOrTarget) {
79
+ return isFunction(constructorOrTarget)
80
+ ? constructorOrTarget
81
+ : constructorOrTarget.constructor;
110
82
  }
111
- function getTypeInfoString(type) {
112
- const lines = [];
113
- const metadata = import_registry.reflectionRegistry.getMetadata(type);
114
- const constructorParameters = metadata?.parameters?.map((parameter) => parameter.type?.name ?? "<unknown>").join(", ") ?? "?";
115
- lines.push(`${type.name}(${constructorParameters})`);
116
- for (const [key, propertyMetadata] of metadata?.staticProperties ?? []) {
117
- const propertyKey = (0, import_type_guards.isSymbol)(key) ? `[${key.toString()}]` : key;
118
- lines.push(` static ${propertyKey}: ${propertyMetadata.type.name}`);
119
- }
120
- for (const [key, methodMetadata] of metadata?.staticMethods ?? []) {
121
- const propertyKey = (0, import_type_guards.isSymbol)(key) ? `[${key.toString()}]` : key;
122
- const parameters = methodMetadata.parameters.map((parameter) => parameter.type.name).join(", ");
123
- lines.push(` static ${propertyKey}(${parameters}): ${methodMetadata.returnType?.name ?? "void"}`);
124
- }
125
- for (const [key, propertyMetadata] of metadata?.properties ?? []) {
126
- const propertyKey = (0, import_type_guards.isSymbol)(key) ? `[${key.toString()}]` : key;
127
- lines.push(` ${propertyKey}: ${propertyMetadata.type.name}`);
128
- }
129
- for (const [key, methodMetadata] of metadata?.methods ?? []) {
130
- const propertyKey = (0, import_type_guards.isSymbol)(key) ? `[${key.toString()}]` : key;
131
- const parameters = methodMetadata.parameters.map((parameter) => parameter.type.name).join(", ");
132
- lines.push(` ${propertyKey}(${parameters}): ${methodMetadata.returnType?.name ?? "void"}`);
133
- }
134
- return lines.join("\n");
83
+ export function getTypeInfoString(type) {
84
+ const lines = [];
85
+ const metadata = reflectionRegistry.getMetadata(type);
86
+ const constructorParameters = metadata?.parameters?.map((parameter) => parameter.type?.name ?? '<unknown>').join(', ') ?? '?';
87
+ lines.push(`${type.name}(${constructorParameters})`);
88
+ for (const [key, propertyMetadata] of (metadata?.staticProperties ?? [])) {
89
+ const propertyKey = isSymbol(key) ? `[${key.toString()}]` : key;
90
+ lines.push(` static ${propertyKey}: ${propertyMetadata.type.name}`);
91
+ }
92
+ for (const [key, methodMetadata] of (metadata?.staticMethods ?? [])) {
93
+ const propertyKey = isSymbol(key) ? `[${key.toString()}]` : key;
94
+ const parameters = methodMetadata.parameters.map((parameter) => parameter.type.name).join(', ');
95
+ lines.push(` static ${propertyKey}(${parameters}): ${methodMetadata.returnType?.name ?? 'void'}`);
96
+ }
97
+ for (const [key, propertyMetadata] of (metadata?.properties ?? [])) {
98
+ const propertyKey = isSymbol(key) ? `[${key.toString()}]` : key;
99
+ lines.push(` ${propertyKey}: ${propertyMetadata.type.name}`);
100
+ }
101
+ for (const [key, methodMetadata] of (metadata?.methods ?? [])) {
102
+ const propertyKey = isSymbol(key) ? `[${key.toString()}]` : key;
103
+ const parameters = methodMetadata.parameters.map((parameter) => parameter.type.name).join(', ');
104
+ lines.push(` ${propertyKey}(${parameters}): ${methodMetadata.returnType?.name ?? 'void'}`);
105
+ }
106
+ return lines.join('\n');
135
107
  }
136
- function printType(type) {
137
- const text = getTypeInfoString(type);
138
- console.log(text);
108
+ export function printType(type) {
109
+ const text = getTypeInfoString(type);
110
+ console.log(text); // eslint-disable-line no-console
139
111
  }
package/require.js CHANGED
@@ -1,29 +1,6 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var require_exports = {};
20
- __export(require_exports, {
21
- dynamicRequire: () => dynamicRequire
22
- });
23
- module.exports = __toCommonJS(require_exports);
24
1
  function getRequire() {
25
- return require;
2
+ return require;
26
3
  }
27
- function dynamicRequire(id) {
28
- return getRequire()(id);
4
+ export function dynamicRequire(id) {
5
+ return getRequire()(id);
29
6
  }
@@ -0,0 +1 @@
1
+ export * from './message-port.rpc-endpoint.js';
@@ -0,0 +1 @@
1
+ export * from './message-port.rpc-endpoint.js';
@@ -1,51 +1,32 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var message_port_rpc_endpoint_exports = {};
20
- __export(message_port_rpc_endpoint_exports, {
21
- MessagePortRpcEndpoint: () => MessagePortRpcEndpoint
22
- });
23
- module.exports = __toCommonJS(message_port_rpc_endpoint_exports);
24
- var import_environment = require("../../environment.js");
25
- var import_rxjs = require("rxjs");
26
- var import_rpc_endpoint = require("../rpc-endpoint.js");
27
- class MessagePortRpcEndpoint extends import_rpc_endpoint.RpcEndpoint {
28
- source;
29
- _postMessage;
30
- supportsTransfers = true;
31
- message$;
32
- constructor(source) {
33
- super();
34
- this.source = import_environment.isBrowser && (typeof SharedWorker == "function" && source instanceof SharedWorker) ? source.port : source;
35
- this.message$ = (0, import_rxjs.fromEvent)(this.source, "message").pipe((0, import_rxjs.map)((message) => message instanceof MessageEvent ? { ...message.data, metadata: { source: message } } : message));
36
- this._postMessage = import_environment.isBrowser ? (data, transfer) => this.source.postMessage(data, { transfer }) : (data, transfer) => this.source.postMessage(data, transfer);
37
- }
38
- start() {
39
- if (this.source instanceof MessagePort) {
40
- this.source.start();
1
+ import { fromEvent, map } from 'rxjs';
2
+ import { isBrowser } from '../../environment.js';
3
+ import { RpcEndpoint } from '../rpc-endpoint.js';
4
+ export class MessagePortRpcEndpoint extends RpcEndpoint {
5
+ source;
6
+ _postMessage;
7
+ supportsTransfers = true;
8
+ message$;
9
+ constructor(source) {
10
+ super();
11
+ this.source = (isBrowser && ((typeof SharedWorker == 'function') && (source instanceof SharedWorker)))
12
+ ? source.port
13
+ : source;
14
+ this.message$ = fromEvent(this.source, 'message').pipe(map((message) => ((message instanceof MessageEvent) ? { ...message.data, metadata: { source: message } } : message)));
15
+ this._postMessage = isBrowser
16
+ ? (data, transfer) => this.source.postMessage(data, { transfer })
17
+ : (data, transfer) => this.source.postMessage(data, transfer);
41
18
  }
42
- }
43
- close() {
44
- if (this.source instanceof MessagePort) {
45
- this.source.close();
19
+ start() {
20
+ if (this.source instanceof MessagePort) {
21
+ this.source.start();
22
+ }
23
+ }
24
+ close() {
25
+ if (this.source instanceof MessagePort) {
26
+ this.source.close();
27
+ }
28
+ }
29
+ postMessage(data, transfer) {
30
+ this._postMessage(data, transfer);
46
31
  }
47
- }
48
- postMessage(data, transfer) {
49
- this._postMessage(data, transfer);
50
- }
51
32
  }