@tstdl/base 0.87.13 → 0.88.0-alpha1

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