@tstdl/base 0.85.13 → 0.86.0-beta1

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