@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
package/rpc/rpc.js CHANGED
@@ -1,271 +1,259 @@
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 rpc_exports = {};
20
- __export(rpc_exports, {
21
- Rpc: () => Rpc
22
- });
23
- module.exports = __toCommonJS(rpc_exports);
24
- var import_not_implemented_error = require("../error/not-implemented.error.js");
25
- var import_serializer = require("../serializer/index.js");
26
- var import_object = require("../utils/object/object.js");
27
- var import_proxy = require("../utils/proxy.js");
28
- var import_random = require("../utils/random.js");
29
- var import_throw = require("../utils/throw.js");
30
- var import_type_guards = require("../utils/type-guards.js");
31
- var import_rxjs = require("rxjs");
32
- var import_message_port_rpc_endpoint = require("./endpoints/message-port.rpc-endpoint.js");
33
- var import_model = require("./model.js");
34
- var import_rpc_endpoint = require("./rpc-endpoint.js");
35
- var import_rpc_error = require("./rpc-error.js");
36
- const markedTransfers = /* @__PURE__ */ new WeakMap();
37
- const serializationTargets = /* @__PURE__ */ new WeakMap();
38
- const proxyTargets = /* @__PURE__ */ new WeakSet();
1
+ /* eslint-disable @typescript-eslint/no-unsafe-return */
2
+ /* eslint-disable @typescript-eslint/no-unsafe-argument */
3
+ import { NotImplementedError } from '../error/not-implemented.error.js';
4
+ import { deserialize, registerSerializer, serialize } from '../serializer/index.js';
5
+ import { hasOwnProperty } from '../utils/object/object.js';
6
+ import { reflectMethods } from '../utils/proxy.js';
7
+ import { getRandomString } from '../utils/random.js';
8
+ import { _throw } from '../utils/throw.js';
9
+ import { assert, isDefined } from '../utils/type-guards.js';
10
+ import { filter, Subject, takeUntil } from 'rxjs';
11
+ import { MessagePortRpcEndpoint } from './endpoints/message-port.rpc-endpoint.js';
12
+ import { createRpcMessage } from './model.js';
13
+ import { RpcEndpoint } from './rpc-endpoint.js';
14
+ import { RpcError, RpcRemoteError } from './rpc-error.js';
15
+ const markedTransfers = new WeakMap();
16
+ const serializationTargets = new WeakMap();
17
+ const proxyTargets = new WeakSet();
39
18
  const proxyFinalizationRegistry = new FinalizationRegistry(async (data) => {
40
- const message = (0, import_model.createRpcMessage)("release-proxy", { proxyId: data.id });
41
- await data.endpoint.postMessage(message);
19
+ const message = createRpcMessage('release-proxy', { proxyId: data.id });
20
+ await data.endpoint.postMessage(message);
42
21
  });
43
- const Rpc = {
44
- async connect(endpointOrSource, name = "default") {
45
- const endpoint = endpointOrSource instanceof import_rpc_endpoint.RpcEndpoint ? endpointOrSource : new import_message_port_rpc_endpoint.MessagePortRpcEndpoint(endpointOrSource);
46
- endpoint.start();
47
- const connectMessage = (0, import_model.createRpcMessage)("connect", { name });
48
- const response = await endpoint.request(connectMessage);
49
- (0, import_type_guards.assert)(response.type == "proxy", "Rpc connect must result in proxy.");
50
- return parseRpcMessageValue(response, endpoint);
51
- },
52
- expose(object, endpointOrSource, name = "default") {
53
- const endpoint = endpointOrSource instanceof import_rpc_endpoint.RpcEndpoint ? endpointOrSource : new import_message_port_rpc_endpoint.MessagePortRpcEndpoint(endpointOrSource);
54
- endpoint.start();
55
- exposeConnectable(object, endpoint, name);
56
- },
57
- /**
58
- * mark object for proxy forward
59
- * @param object object to forward as proxy
60
- * @param root if object is a child of the actual passed value (to function calls, returns or whatever), this must be set to to mark the parent for serialization (required for children proxies)
61
- * @returns
62
- */
63
- proxy(object, root) {
64
- proxyTargets.add(object);
65
- if ((0, import_type_guards.isDefined)(root)) {
66
- Rpc.serialize(root);
67
- }
68
- return object;
69
- },
70
- transfer(object, transfer) {
71
- markedTransfers.set(object, transfer);
72
- return object;
73
- },
74
- serialize(object, options) {
75
- serializationTargets.set(object, options);
76
- return object;
77
- },
78
- isProxied(object) {
79
- return proxyTargets.has(object);
80
- }
81
- };
82
- function createProxy(endpoint, id, path = []) {
83
- class RpcProxy2 {
84
- }
85
- let proxy;
86
- const handlers = {
87
- apply(_target, _this, args) {
88
- const postMessageData = getPostMessageDataFromArray(args, endpoint);
89
- const message = (0, import_model.createRpcMessage)("apply", { proxyId: id, path, args: postMessageData.value });
90
- return endpoint.request(message, postMessageData.transfer).then((responseValue) => parseRpcMessageValue(responseValue, endpoint));
22
+ // eslint-disable-next-line @typescript-eslint/no-redeclare, @typescript-eslint/naming-convention
23
+ export const Rpc = {
24
+ async connect(endpointOrSource, name = 'default') {
25
+ const endpoint = (endpointOrSource instanceof RpcEndpoint) ? endpointOrSource : new MessagePortRpcEndpoint(endpointOrSource);
26
+ endpoint.start();
27
+ const connectMessage = createRpcMessage('connect', { name });
28
+ const response = await endpoint.request(connectMessage);
29
+ assert(response.type == 'proxy', 'Rpc connect must result in proxy.');
30
+ return parseRpcMessageValue(response, endpoint);
91
31
  },
92
- construct(_target, args) {
93
- const postMessageData = getPostMessageDataFromArray(args, endpoint);
94
- const message = (0, import_model.createRpcMessage)("construct", { proxyId: id, path, args: postMessageData.value });
95
- return endpoint.request(message, postMessageData.transfer).then((responseValue) => parseRpcMessageValue(responseValue, endpoint));
32
+ expose(object, endpointOrSource, name = 'default') {
33
+ const endpoint = (endpointOrSource instanceof RpcEndpoint) ? endpointOrSource : new MessagePortRpcEndpoint(endpointOrSource);
34
+ endpoint.start();
35
+ exposeConnectable(object, endpoint, name);
96
36
  },
97
- get(_target, property) {
98
- if (property == "then") {
99
- if (path.length == 0) {
100
- return { then: () => proxy };
37
+ /**
38
+ * mark object for proxy forward
39
+ * @param object object to forward as proxy
40
+ * @param root if object is a child of the actual passed value (to function calls, returns or whatever), this must be set to to mark the parent for serialization (required for children proxies)
41
+ * @returns
42
+ */
43
+ proxy(object, root) {
44
+ proxyTargets.add(object);
45
+ if (isDefined(root)) {
46
+ Rpc.serialize(root);
101
47
  }
102
- const message = (0, import_model.createRpcMessage)("get", { proxyId: id, path });
103
- const resultValue = endpoint.request(message).then((responseValue) => parseRpcMessageValue(responseValue, endpoint));
104
- return resultValue.then.bind(resultValue);
105
- }
106
- return createProxy(endpoint, id, [...path, property]);
48
+ return object;
49
+ },
50
+ transfer(object, transfer) {
51
+ markedTransfers.set(object, transfer);
52
+ return object;
107
53
  },
108
- set(_target, property, value) {
109
- const postMessageData = getPostMessageData(value, endpoint);
110
- const message = (0, import_model.createRpcMessage)("set", { proxyId: id, path: [...path, property], value: postMessageData.value });
111
- return endpoint.request(message, postMessageData.transfer).then((responseValue) => parseRpcMessageValue(responseValue, endpoint));
54
+ serialize(object, options) {
55
+ serializationTargets.set(object, options);
56
+ return object;
112
57
  },
113
- getPrototypeOf() {
114
- return null;
58
+ isProxied(object) {
59
+ return proxyTargets.has(object);
115
60
  }
116
- };
117
- for (const method of import_proxy.reflectMethods) {
118
- if (!(0, import_object.hasOwnProperty)(handlers, method)) {
119
- handlers[method] = () => {
120
- throw new Error(`${method} not supported on rpc proxies.`);
121
- };
61
+ };
62
+ function createProxy(endpoint, id, path = []) {
63
+ class RpcProxy {
122
64
  }
123
- }
124
- proxy = new Proxy(RpcProxy2, handlers);
125
- proxyFinalizationRegistry.register(proxy, { id, endpoint });
126
- return proxy;
127
- }
128
- function exposeConnectable(object, endpoint, name) {
129
- endpoint.message$.pipe((0, import_rxjs.filter)((message) => message.type == "connect"), (0, import_rxjs.filter)((message) => message.name == name)).subscribe(async (message) => {
130
- try {
131
- const [proxy, transfer] = createProxyValue(object, endpoint);
132
- await endpoint.respond(message.id, proxy, transfer);
133
- } catch (error) {
134
- await endpoint.respond(message.id, { type: "throw", error });
65
+ // eslint-disable-next-line prefer-const
66
+ let proxy;
67
+ const handlers = {
68
+ apply(_target, _this, args) {
69
+ const postMessageData = getPostMessageDataFromArray(args, endpoint);
70
+ const message = createRpcMessage('apply', { proxyId: id, path, args: postMessageData.value });
71
+ return endpoint.request(message, postMessageData.transfer).then((responseValue) => parseRpcMessageValue(responseValue, endpoint));
72
+ },
73
+ construct(_target, args) {
74
+ const postMessageData = getPostMessageDataFromArray(args, endpoint);
75
+ const message = createRpcMessage('construct', { proxyId: id, path, args: postMessageData.value });
76
+ return endpoint.request(message, postMessageData.transfer).then((responseValue) => parseRpcMessageValue(responseValue, endpoint));
77
+ },
78
+ get(_target, property) {
79
+ if (property == 'then') {
80
+ if (path.length == 0) {
81
+ return { then: () => proxy };
82
+ }
83
+ const message = createRpcMessage('get', { proxyId: id, path });
84
+ const resultValue = endpoint.request(message).then((responseValue) => parseRpcMessageValue(responseValue, endpoint));
85
+ return resultValue.then.bind(resultValue);
86
+ }
87
+ return createProxy(endpoint, id, [...path, property]);
88
+ },
89
+ set(_target, property, value) {
90
+ const postMessageData = getPostMessageData(value, endpoint);
91
+ const message = createRpcMessage('set', { proxyId: id, path: [...path, property], value: postMessageData.value });
92
+ return endpoint.request(message, postMessageData.transfer).then((responseValue) => parseRpcMessageValue(responseValue, endpoint));
93
+ },
94
+ getPrototypeOf() {
95
+ return null;
96
+ }
97
+ };
98
+ for (const method of reflectMethods) {
99
+ if (!hasOwnProperty(handlers, method)) {
100
+ handlers[method] = () => {
101
+ throw new Error(`${method} not supported on rpc proxies.`);
102
+ };
103
+ }
135
104
  }
136
- });
105
+ proxy = new Proxy(RpcProxy, handlers);
106
+ proxyFinalizationRegistry.register(proxy, { id, endpoint });
107
+ return proxy;
137
108
  }
138
- function exposeObject(object, endpoint, proxyId) {
139
- const abortSubject = new import_rxjs.Subject();
140
- endpoint.message$.pipe((0, import_rxjs.takeUntil)(abortSubject), (0, import_rxjs.filter)((message) => message.proxyId == proxyId)).subscribe(async (message) => {
141
- try {
142
- switch (message.type) {
143
- case "get": {
144
- const { value } = deref(object, message.path);
145
- const postMessageData = getPostMessageData(await value, endpoint);
146
- await endpoint.respond(message.id, postMessageData.value, postMessageData.transfer);
147
- break;
148
- }
149
- case "set": {
150
- const { value } = deref(object, message.path, true);
151
- const result = Reflect.set(value, message.path[message.path.length - 1], parseRpcMessageValue(message.value, endpoint));
152
- const postMessageData = getPostMessageData(result, endpoint);
153
- await endpoint.respond(message.id, postMessageData.value, postMessageData.transfer);
154
- break;
109
+ function exposeConnectable(object, endpoint, name) {
110
+ endpoint.message$
111
+ .pipe(filter((message) => message.type == 'connect'), filter((message) => message.name == name))
112
+ .subscribe(async (message) => {
113
+ try {
114
+ const [proxy, transfer] = createProxyValue(object, endpoint);
115
+ await endpoint.respond(message.id, proxy, transfer);
155
116
  }
156
- case "apply": {
157
- const { parent, value } = deref(object, message.path);
158
- const result = await Reflect.apply(value, parent, parseRpcMessageValues(message.args, endpoint));
159
- const postMessageData = getPostMessageData(result, endpoint);
160
- await endpoint.respond(message.id, postMessageData.value, postMessageData.transfer);
161
- break;
117
+ catch (error) {
118
+ await endpoint.respond(message.id, { type: 'throw', error });
162
119
  }
163
- case "construct": {
164
- const { value } = deref(object, message.path);
165
- const result = Reflect.construct(value, parseRpcMessageValues(message.args, endpoint));
166
- const [proxy, transfer] = createProxyValue(result, endpoint);
167
- await endpoint.respond(message.id, proxy, transfer);
168
- break;
120
+ });
121
+ }
122
+ function exposeObject(object, endpoint, proxyId) {
123
+ const abortSubject = new Subject();
124
+ endpoint.message$
125
+ .pipe(takeUntil(abortSubject), filter((message) => (message.proxyId == proxyId)))
126
+ .subscribe(async (message) => {
127
+ try {
128
+ switch (message.type) {
129
+ case 'get': {
130
+ const { value } = deref(object, message.path);
131
+ const postMessageData = getPostMessageData(await value, endpoint);
132
+ await endpoint.respond(message.id, postMessageData.value, postMessageData.transfer);
133
+ break;
134
+ }
135
+ case 'set': {
136
+ const { value } = deref(object, message.path, true);
137
+ const result = Reflect.set(value, message.path[message.path.length - 1], parseRpcMessageValue(message.value, endpoint));
138
+ const postMessageData = getPostMessageData(result, endpoint);
139
+ await endpoint.respond(message.id, postMessageData.value, postMessageData.transfer);
140
+ break;
141
+ }
142
+ case 'apply': {
143
+ const { parent, value } = deref(object, message.path);
144
+ const result = await Reflect.apply(value, parent, parseRpcMessageValues(message.args, endpoint));
145
+ const postMessageData = getPostMessageData(result, endpoint);
146
+ await endpoint.respond(message.id, postMessageData.value, postMessageData.transfer);
147
+ break;
148
+ }
149
+ case 'construct': {
150
+ const { value } = deref(object, message.path);
151
+ const result = Reflect.construct(value, parseRpcMessageValues(message.args, endpoint));
152
+ const [proxy, transfer] = createProxyValue(result, endpoint);
153
+ await endpoint.respond(message.id, proxy, transfer);
154
+ break;
155
+ }
156
+ case 'release-proxy': {
157
+ abortSubject.next();
158
+ break;
159
+ }
160
+ case 'response':
161
+ case 'connect':
162
+ // we do not handle these here
163
+ break;
164
+ default:
165
+ throw new NotImplementedError(`Unsupported message type ${message.type}`);
166
+ }
169
167
  }
170
- case "release-proxy": {
171
- abortSubject.next();
172
- break;
168
+ catch (error) {
169
+ await endpoint.respond(message.id, { type: 'throw', error });
173
170
  }
174
- case "response":
175
- case "connect":
176
- break;
177
- default:
178
- throw new import_not_implemented_error.NotImplementedError(`Unsupported message type ${message.type}`);
179
- }
180
- } catch (error) {
181
- await endpoint.respond(message.id, { type: "throw", error });
182
- }
183
- });
171
+ });
184
172
  }
185
173
  function getPostMessageDataFromArray(values, endpoint) {
186
- const mappedValues = values.map((value) => getRpcMessageValue(value, endpoint));
187
- const transfer = values.flatMap((value) => markedTransfers.get(value) ?? []);
188
- const messageValues = mappedValues.map((mappedValue) => mappedValue[0]);
189
- const additionalTransfers = mappedValues.flatMap((mappedValue) => mappedValue[1]);
190
- return { value: messageValues, transfer: [...transfer, ...additionalTransfers] };
174
+ const mappedValues = values.map((value) => getRpcMessageValue(value, endpoint));
175
+ const transfer = values.flatMap((value) => markedTransfers.get(value) ?? []);
176
+ const messageValues = mappedValues.map((mappedValue) => mappedValue[0]);
177
+ const additionalTransfers = mappedValues.flatMap((mappedValue) => mappedValue[1]);
178
+ return { value: messageValues, transfer: [...transfer, ...additionalTransfers] };
191
179
  }
192
180
  function getPostMessageData(value, endpoint) {
193
- const [messageValue, additionalTransfers] = getRpcMessageValue(value, endpoint);
194
- const transfer = markedTransfers.get(value) ?? [];
195
- return { value: messageValue, transfer: [...transfer, ...additionalTransfers] };
181
+ const [messageValue, additionalTransfers] = getRpcMessageValue(value, endpoint);
182
+ const transfer = markedTransfers.get(value) ?? [];
183
+ return { value: messageValue, transfer: [...transfer, ...additionalTransfers] };
196
184
  }
197
185
  function getRpcMessageValue(value, endpoint) {
198
- if (proxyTargets.has(value)) {
199
- return createProxyValue(value, endpoint);
200
- }
201
- if (serializationTargets.has(value)) {
202
- const options = serializationTargets.get(value);
203
- const transfer = [];
204
- const replacer = getRpcProxySerializationReplacer(endpoint, transfer);
205
- const serialized = (0, import_serializer.serialize)(value, { ...options, replacers: [replacer, ...options?.replacers ?? []] });
206
- return [{ type: "serialized", value: serialized, options }, transfer];
207
- }
208
- return [{ type: "raw", value }, []];
186
+ if (proxyTargets.has(value)) {
187
+ return createProxyValue(value, endpoint);
188
+ }
189
+ if (serializationTargets.has(value)) {
190
+ const options = serializationTargets.get(value);
191
+ const transfer = [];
192
+ const replacer = getRpcProxySerializationReplacer(endpoint, transfer);
193
+ const serialized = serialize(value, { ...options, replacers: [replacer, ...options?.replacers ?? []] });
194
+ return [{ type: 'serialized', value: serialized, options }, transfer];
195
+ }
196
+ return [{ type: 'raw', value }, []];
209
197
  }
210
198
  function createProxyValue(value, endpoint) {
211
- const id = (0, import_random.getRandomString)(24);
212
- if (endpoint.supportsTransfers) {
213
- const { port1, port2 } = new MessageChannel();
214
- const newEndpoint = new import_message_port_rpc_endpoint.MessagePortRpcEndpoint(port1);
215
- newEndpoint.start();
216
- exposeObject(value, newEndpoint, id);
217
- return [{ type: "proxy", id, port: port2 }, [port2]];
218
- }
219
- exposeObject(value, endpoint, id);
220
- return [{ type: "proxy", id }, []];
199
+ const id = getRandomString(24);
200
+ if (endpoint.supportsTransfers) {
201
+ const { port1, port2 } = new MessageChannel();
202
+ const newEndpoint = new MessagePortRpcEndpoint(port1);
203
+ newEndpoint.start();
204
+ exposeObject(value, newEndpoint, id);
205
+ return [{ type: 'proxy', id, port: port2 }, [port2]];
206
+ }
207
+ exposeObject(value, endpoint, id);
208
+ return [{ type: 'proxy', id }, []];
221
209
  }
222
210
  function parseRpcMessageValues(values, endpoint) {
223
- return values.map((value) => parseRpcMessageValue(value, endpoint));
211
+ return values.map((value) => parseRpcMessageValue(value, endpoint));
224
212
  }
225
213
  function parseRpcMessageValue(value, endpoint) {
226
- switch (value.type) {
227
- case "raw": {
228
- return value.value;
229
- }
230
- case "serialized": {
231
- return (0, import_serializer.deserialize)(value.value, { ...value.options, data: { ...value.options?.data, rpcEndpoint: endpoint } });
232
- }
233
- case "throw": {
234
- const remoteError = new import_rpc_error.RpcRemoteError(value.error);
235
- throw new import_rpc_error.RpcError("Received error from remote.", remoteError);
236
- }
237
- case "proxy": {
238
- const proxyEndpoint = (0, import_type_guards.isDefined)(value.port) ? new import_message_port_rpc_endpoint.MessagePortRpcEndpoint(value.port) : endpoint;
239
- proxyEndpoint.start();
240
- return createProxy(proxyEndpoint, value.id);
214
+ switch (value.type) {
215
+ case 'raw': {
216
+ return value.value;
217
+ }
218
+ case 'serialized': {
219
+ return deserialize(value.value, { ...value.options, data: { ...value.options?.data, rpcEndpoint: endpoint } });
220
+ }
221
+ case 'throw': {
222
+ const remoteError = new RpcRemoteError(value.error);
223
+ throw new RpcError('Received error from remote.', remoteError);
224
+ }
225
+ case 'proxy': {
226
+ const proxyEndpoint = (isDefined(value.port)) ? new MessagePortRpcEndpoint(value.port) : endpoint;
227
+ proxyEndpoint.start();
228
+ return createProxy(proxyEndpoint, value.id);
229
+ }
230
+ default:
231
+ throw new Error(`Type ${value.type} not supported`);
241
232
  }
242
- default:
243
- throw new Error(`Type ${value.type} not supported`);
244
- }
245
233
  }
246
234
  function deref(object, path, skipLast = false) {
247
- let parent;
248
- let value = object;
249
- const end = skipLast ? path.length - 1 : path.length;
250
- for (let i = 0; i < end; i++) {
251
- const segment = path[i];
252
- const newValue = value[segment];
253
- parent = value;
254
- value = newValue;
255
- }
256
- return { parent, value };
235
+ let parent;
236
+ let value = object;
237
+ const end = skipLast ? path.length - 1 : path.length;
238
+ for (let i = 0; i < end; i++) {
239
+ const segment = path[i];
240
+ const newValue = value[segment];
241
+ parent = value;
242
+ value = newValue;
243
+ }
244
+ return { parent, value };
257
245
  }
258
246
  class RpcProxy {
259
247
  }
260
- (0, import_serializer.registerSerializer)(RpcProxy, "RpcProxy", () => (0, import_throw._throw)(new Error("Not supported.")), (data, _, { rpcEndpoint }) => parseRpcMessageValue({ type: "proxy", ...data }, rpcEndpoint));
248
+ registerSerializer(RpcProxy, 'RpcProxy', () => _throw(new Error('Not supported.')), (data, _, { rpcEndpoint }) => parseRpcMessageValue({ type: 'proxy', ...data }, rpcEndpoint));
261
249
  function getRpcProxySerializationReplacer(endpoint, transfer) {
262
- function rpcProxySerializationReplacer(value) {
263
- if (!proxyTargets.has(value)) {
264
- return value;
250
+ function rpcProxySerializationReplacer(value) {
251
+ if (!proxyTargets.has(value)) {
252
+ return value;
253
+ }
254
+ const [proxy, proxyTransfer] = createProxyValue(value, endpoint);
255
+ transfer.push(...proxyTransfer);
256
+ return { '<RpcProxy>': { id: proxy.id, port: proxy.port } };
265
257
  }
266
- const [proxy, proxyTransfer] = createProxyValue(value, endpoint);
267
- transfer.push(...proxyTransfer);
268
- return { "<RpcProxy>": { id: proxy.id, port: proxy.port } };
269
- }
270
- return rpcProxySerializationReplacer;
258
+ return rpcProxySerializationReplacer;
271
259
  }
package/rxjs/cast.js CHANGED
@@ -1,30 +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 cast_exports = {};
20
- __export(cast_exports, {
21
- cast: () => cast,
22
- forceCast: () => forceCast
23
- });
24
- module.exports = __toCommonJS(cast_exports);
25
- function cast() {
26
- return (source) => source;
1
+ export function cast() {
2
+ return (source) => source;
27
3
  }
28
- function forceCast() {
29
- return (source) => source;
4
+ export function forceCast() {
5
+ return (source) => source;
30
6
  }
package/rxjs/index.js CHANGED
@@ -1,30 +1,13 @@
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 __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
- var rxjs_exports = {};
17
- module.exports = __toCommonJS(rxjs_exports);
18
- __reExport(rxjs_exports, require("./cast.js"), module.exports);
19
- __reExport(rxjs_exports, require("./intersection-observer.js"), module.exports);
20
- __reExport(rxjs_exports, require("./media-query.js"), module.exports);
21
- __reExport(rxjs_exports, require("./mutation-observer.js"), module.exports);
22
- __reExport(rxjs_exports, require("./noop.js"), module.exports);
23
- __reExport(rxjs_exports, require("./performance-observer.js"), module.exports);
24
- __reExport(rxjs_exports, require("./resize-observer.js"), module.exports);
25
- __reExport(rxjs_exports, require("./retry-backoff.js"), module.exports);
26
- __reExport(rxjs_exports, require("./slow-array.js"), module.exports);
27
- __reExport(rxjs_exports, require("./start-with-provider.js"), module.exports);
28
- __reExport(rxjs_exports, require("./teardown.js"), module.exports);
29
- __reExport(rxjs_exports, require("./timing.js"), module.exports);
30
- __reExport(rxjs_exports, require("./touch.js"), module.exports);
1
+ export * from './cast.js';
2
+ export * from './intersection-observer.js';
3
+ export * from './media-query.js';
4
+ export * from './mutation-observer.js';
5
+ export * from './noop.js';
6
+ export * from './performance-observer.js';
7
+ export * from './resize-observer.js';
8
+ export * from './retry-backoff.js';
9
+ export * from './slow-array.js';
10
+ export * from './start-with-provider.js';
11
+ export * from './teardown.js';
12
+ export * from './timing.js';
13
+ export * from './touch.js';