@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
@@ -1,292 +1,272 @@
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 serializer_exports = {};
20
- __export(serializer_exports, {
21
- deserialize: () => deserialize,
22
- serialize: () => serialize,
23
- stringDeserialize: () => stringDeserialize,
24
- stringSerialize: () => stringSerialize
25
- });
26
- module.exports = __toCommonJS(serializer_exports);
27
- var import_circular_buffer = require("../data-structures/circular-buffer.js");
28
- var import_sorted_array_list = require("../data-structures/sorted-array-list.js");
29
- var import_comparison = require("../utils/comparison.js");
30
- var import_forward_ref = require("../utils/object/forward-ref.js");
31
- var import_object = require("../utils/object/object.js");
32
- var import_type_guards = require("../utils/type-guards.js");
33
- var import_serializable = require("./serializable.js");
34
- var import_types = require("./types.js");
35
- function stringSerialize(value, options) {
36
- const serialized2 = serialize(value, options);
37
- return JSON.stringify(serialized2);
1
+ /* eslint-disable @typescript-eslint/no-unsafe-return, @typescript-eslint/ban-types, max-lines-per-function, max-statements, complexity */
2
+ import { CircularBuffer } from '../data-structures/circular-buffer.js';
3
+ import { SortedArrayList } from '../data-structures/sorted-array-list.js';
4
+ import { compareByValueSelection } from '../utils/comparison.js';
5
+ import { ForwardRef } from '../utils/object/forward-ref.js';
6
+ import { objectEntries } from '../utils/object/object.js';
7
+ import { isDefined, isUndefined } from '../utils/type-guards.js';
8
+ import { getSerializerByTypeName, getTypeNameByConstructor, isRawSerializable } from './serializable.js';
9
+ import { bigintNonPrimitiveType, functionNonPrimitiveType, globalSymbolNonPrimitiveType, rawNonPrimitiveType, refNonPrimitiveType, undefinedNonPrimitiveType } from './types.js';
10
+ export function stringSerialize(value, options) {
11
+ const serialized = serialize(value, options);
12
+ return JSON.stringify(serialized);
38
13
  }
39
- function stringDeserialize(serialized2, options) {
40
- const parsedStringSerialized = JSON.parse(serialized2);
41
- return deserialize(parsedStringSerialized, options);
14
+ export function stringDeserialize(serialized, options) {
15
+ const parsedStringSerialized = JSON.parse(serialized);
16
+ return deserialize(parsedStringSerialized, options);
42
17
  }
43
- function serialize(_value, options = {}, references = /* @__PURE__ */ new Map(), queue = new import_circular_buffer.CircularBuffer(), path2 = "$") {
44
- let value = _value;
45
- if ((0, import_type_guards.isDefined)(options.replacers)) {
46
- for (const replacer of options.replacers) {
47
- value = replacer(value);
18
+ export function serialize(_value, options = {}, references = new Map(), queue = new CircularBuffer(), path = '$') {
19
+ let value = _value;
20
+ if (isDefined(options.replacers)) {
21
+ for (const replacer of options.replacers) {
22
+ value = replacer(value);
23
+ }
24
+ }
25
+ const type = typeof value;
26
+ if (type == 'boolean' || type == 'number' || value === null) {
27
+ return value;
48
28
  }
49
- }
50
- const type2 = typeof value;
51
- if (type2 == "boolean" || type2 == "number" || value === null) {
52
- return value;
53
- }
54
- if (type2 == "undefined") {
55
- return { "<undefined>": null };
56
- }
57
- if (path2 == "$" && (0, import_type_guards.isDefined)(options.context)) {
58
- for (const entry of (0, import_object.objectEntries)(options.context)) {
59
- references.set(entry[1], `$['__context__']['${entry[0]}']`);
29
+ if (type == 'undefined') {
30
+ return { '<undefined>': null };
60
31
  }
61
- }
62
- const reference = references.get(value);
63
- if ((0, import_type_guards.isDefined)(reference)) {
64
- return { "<ref>": reference };
65
- }
66
- if (type2 == "string") {
67
- if (value.length > path2.length + 50) {
68
- references.set(value, path2);
32
+ if ((path == '$') && isDefined(options.context)) {
33
+ for (const entry of objectEntries(options.context)) {
34
+ references.set(entry[1], `$['__context__']['${entry[0]}']`);
35
+ }
69
36
  }
70
- return value;
71
- }
72
- if (type2 == "bigint") {
73
- const stringValue = value.toString(10);
74
- if (stringValue.length > path2.length + 50) {
75
- references.set(value, path2);
37
+ const reference = references.get(value);
38
+ if (isDefined(reference)) {
39
+ return { '<ref>': reference };
76
40
  }
77
- return { "<bigint>": stringValue };
78
- }
79
- if (type2 == "symbol") {
80
- const key = Symbol.keyFor(value);
81
- if (key === void 0) {
82
- throw new Error("only global symbols from Symbol.for(<key>) are supported");
41
+ if (type == 'string') {
42
+ if (value.length > (path.length + 50)) {
43
+ references.set(value, path);
44
+ }
45
+ return value;
83
46
  }
84
- return { "<global-symbol>": key };
85
- }
86
- if (type2 == "function") {
87
- if (options.allowUnsafe !== true) {
88
- throw new Error("functions are only allowed if allowUnsafe option is true");
47
+ if (type == 'bigint') {
48
+ const stringValue = value.toString(10);
49
+ if (stringValue.length > (path.length + 50)) {
50
+ references.set(value, path);
51
+ }
52
+ return { '<bigint>': stringValue };
89
53
  }
90
- references.set(value, path2);
91
- const source = value.toString();
92
- return { "<function>": source };
93
- }
94
- if (type2 == "object") {
95
- let result2;
96
- references.set(value, path2);
97
- const constructor2 = value.constructor;
98
- if (constructor2 == Array) {
99
- const target = [];
100
- target.length = value.length;
101
- const queueItems = value.map((innerValue, index) => () => target[index] = serialize(innerValue, options, references, queue, `${path2}[${index}]`));
102
- queue.addMany(queueItems);
103
- result2 = target;
104
- } else if (constructor2 == Object) {
105
- const target = {};
106
- const entries2 = (0, import_object.objectEntries)(value);
107
- const queueItems = entries2.map(([key, innerValue]) => () => target[key] = serialize(innerValue, options, references, queue, `${path2}['${key.toString()}']`));
108
- queue.addMany(queueItems);
109
- result2 = target;
110
- } else if ((0, import_serializable.isRawSerializable)(constructor2) || (0, import_type_guards.isDefined)(options.raws) && options.raws.includes(constructor2)) {
111
- references.set(value, path2);
112
- return { "<raw>": value };
113
- } else {
114
- const serializableType = (0, import_serializable.getTypeNameByConstructor)(constructor2);
115
- if ((0, import_type_guards.isUndefined)(serializableType)) {
116
- throw new Error(`constructor ${constructor2.name} has no serializer registered`);
117
- }
118
- const registration = (0, import_serializable.getSerializerByTypeName)(serializableType);
119
- const typeString = getTypeString(serializableType);
120
- const nonPrimitive = { [typeString]: null };
121
- queue.add(() => {
122
- const data = registration.serializer.call(value, value, options.data ?? {});
123
- nonPrimitive[typeString] = registration.serializeData != false ? serialize(data, options, references, queue, `${path2}['${typeString}']`) : data;
124
- });
125
- result2 = nonPrimitive;
54
+ if (type == 'symbol') {
55
+ const key = Symbol.keyFor(value);
56
+ if (key === undefined) {
57
+ throw new Error('only global symbols from Symbol.for(<key>) are supported');
58
+ }
59
+ return { '<global-symbol>': key };
126
60
  }
127
- if (path2 == "$") {
128
- for (const fn2 of queue.consume()) {
129
- fn2();
130
- }
61
+ if (type == 'function') {
62
+ if (options.allowUnsafe !== true) {
63
+ throw new Error('functions are only allowed if allowUnsafe option is true');
64
+ }
65
+ references.set(value, path);
66
+ const source = value.toString();
67
+ return { '<function>': source };
68
+ }
69
+ if (type == 'object') { // eslint-disable-line @typescript-eslint/no-unnecessary-condition
70
+ let result;
71
+ references.set(value, path);
72
+ const constructor = value.constructor;
73
+ if (constructor == Array) {
74
+ const target = [];
75
+ target.length = value.length;
76
+ const queueItems = value.map((innerValue, index) => () => (target[index] = serialize(innerValue, options, references, queue, `${path}[${index}]`)));
77
+ queue.addMany(queueItems);
78
+ result = target;
79
+ }
80
+ else if (constructor == Object) {
81
+ const target = {};
82
+ const entries = objectEntries(value);
83
+ const queueItems = entries.map(([key, innerValue]) => () => (target[key] = serialize(innerValue, options, references, queue, `${path}['${key.toString()}']`)));
84
+ queue.addMany(queueItems);
85
+ result = target;
86
+ }
87
+ else if (isRawSerializable(constructor) || (isDefined(options.raws) && options.raws.includes(constructor))) {
88
+ references.set(value, path);
89
+ return { '<raw>': value };
90
+ }
91
+ else {
92
+ const serializableType = getTypeNameByConstructor(constructor);
93
+ if (isUndefined(serializableType)) {
94
+ throw new Error(`constructor ${constructor.name} has no serializer registered`);
95
+ }
96
+ const registration = getSerializerByTypeName(serializableType);
97
+ const typeString = getTypeString(serializableType);
98
+ const nonPrimitive = { [typeString]: null };
99
+ queue.add(() => {
100
+ const data = registration.serializer.call(value, value, options.data ?? {});
101
+ (nonPrimitive[typeString] = (registration.serializeData != false) ? serialize(data, options, references, queue, `${path}['${typeString}']`) : data);
102
+ });
103
+ result = nonPrimitive;
104
+ }
105
+ if (path == '$') {
106
+ for (const fn of queue.consume()) {
107
+ fn();
108
+ }
109
+ }
110
+ return result;
131
111
  }
132
- return result2;
133
- }
134
- throw new Error(`Unsupported type '${type2}'.`);
112
+ throw new Error(`Unsupported type '${type}'.`);
135
113
  }
136
- function deserialize(serialized2, options) {
137
- const context2 = getDeserializeContext(serialized2, options);
138
- return _deserialize(serialized2, context2, "$", 0);
114
+ export function deserialize(serialized, options) {
115
+ const context = getDeserializeContext(serialized, options);
116
+ return _deserialize(serialized, context, '$', 0);
139
117
  }
140
118
  function _deserialize(serialized, context, path, depth) {
141
- const type = typeof serialized;
142
- if (type == "number" || type == "boolean" || serialized === null) {
143
- return serialized;
144
- }
145
- if (type == "string") {
146
- context.references.set(path, serialized);
147
- return serialized;
148
- }
149
- if (type == "undefined") {
150
- return { "<undefined>": null };
151
- }
152
- if (type == "object") {
153
- if (depth == 0 && (0, import_type_guards.isDefined)(context.options.context)) {
154
- for (const entry of (0, import_object.objectEntries)(context.options.context)) {
155
- context.references.set(`$['__context__']['${entry[0]}']`, entry[1]);
156
- }
119
+ const type = typeof serialized;
120
+ if ((type == 'number') || (type == 'boolean') || (serialized === null)) {
121
+ return serialized;
157
122
  }
158
- const entries = (0, import_object.objectEntries)(serialized);
159
- const isNonPrimitive = entries.length == 1 && entries[0][0].startsWith("<") && entries[0][0].endsWith(">");
160
- if (isNonPrimitive) {
161
- const nonPrimitiveData = entries[0][1];
162
- const nonPrimitiveType = entries[0][0].slice(1, -1);
163
- switch (nonPrimitiveType) {
164
- case import_types.undefinedNonPrimitiveType: {
165
- return void 0;
166
- }
167
- case import_types.bigintNonPrimitiveType: {
168
- const bigint = BigInt(nonPrimitiveData);
169
- context.references.set(path, bigint);
170
- return bigint;
123
+ if (type == 'string') {
124
+ context.references.set(path, serialized);
125
+ return serialized;
126
+ }
127
+ if (type == 'undefined') {
128
+ return { '<undefined>': null };
129
+ }
130
+ if (type == 'object') {
131
+ if ((depth == 0) && isDefined(context.options.context)) {
132
+ for (const entry of objectEntries(context.options.context)) {
133
+ context.references.set(`$['__context__']['${entry[0]}']`, entry[1]);
134
+ }
171
135
  }
172
- case import_types.globalSymbolNonPrimitiveType: {
173
- const symbol = Symbol.for(nonPrimitiveData);
174
- context.references.set(path, symbol);
175
- return symbol;
136
+ const entries = objectEntries(serialized);
137
+ const isNonPrimitive = (entries.length == 1) && entries[0][0].startsWith('<') && entries[0][0].endsWith('>');
138
+ if (isNonPrimitive) {
139
+ const nonPrimitiveData = entries[0][1];
140
+ const nonPrimitiveType = entries[0][0].slice(1, -1);
141
+ switch (nonPrimitiveType) {
142
+ case undefinedNonPrimitiveType: {
143
+ return undefined;
144
+ }
145
+ case bigintNonPrimitiveType: {
146
+ const bigint = BigInt(nonPrimitiveData);
147
+ context.references.set(path, bigint);
148
+ return bigint;
149
+ }
150
+ case globalSymbolNonPrimitiveType: {
151
+ const symbol = Symbol.for(nonPrimitiveData);
152
+ context.references.set(path, symbol);
153
+ return symbol;
154
+ }
155
+ case functionNonPrimitiveType: {
156
+ if (context.options.allowUnsafe !== true) {
157
+ throw new Error('functions are only allowed if allowUnsafe option is true');
158
+ }
159
+ const fn = eval(nonPrimitiveData); // eslint-disable-line no-eval
160
+ context.references.set(path, fn);
161
+ return fn;
162
+ }
163
+ case rawNonPrimitiveType: {
164
+ return nonPrimitiveData;
165
+ }
166
+ case refNonPrimitiveType: {
167
+ const dereferenced = context.references.get(nonPrimitiveData);
168
+ if (dereferenced == undefined) {
169
+ throw new Error(`reference ${nonPrimitiveData} not found`);
170
+ }
171
+ return dereferenced;
172
+ }
173
+ default: {
174
+ const registration = getSerializerByTypeName(nonPrimitiveType);
175
+ if (registration == undefined) {
176
+ throw new Error(`non-primitive type ${nonPrimitiveType} not registered`);
177
+ }
178
+ const forwardRef = ForwardRef.create();
179
+ context.references.set(path, forwardRef);
180
+ context.addToDeserializeQueue(() => {
181
+ const deserializedData = _deserialize(nonPrimitiveData, context, `${path}['<${nonPrimitiveType}>']`, depth + 1);
182
+ context.addToDeserializeQueue(() => {
183
+ const deserialized = registration.deserializer(deserializedData, context.tryAddToDerefQueue, context.options.data ?? {});
184
+ ForwardRef.setRef(forwardRef, deserialized);
185
+ }, depth);
186
+ }, depth);
187
+ if (depth == 0) {
188
+ drainQueues(context);
189
+ return ForwardRef.deref(forwardRef);
190
+ }
191
+ return forwardRef;
192
+ }
193
+ }
176
194
  }
177
- case import_types.functionNonPrimitiveType: {
178
- if (context.options.allowUnsafe !== true) {
179
- throw new Error("functions are only allowed if allowUnsafe option is true");
180
- }
181
- const fn = eval(nonPrimitiveData);
182
- context.references.set(path, fn);
183
- return fn;
195
+ let result;
196
+ const constructor = serialized.constructor;
197
+ if (constructor == Array) {
198
+ const deserializedArray = [];
199
+ deserializedArray.length = serialized.length;
200
+ context.references.set(path, deserializedArray);
201
+ const queueItems = serialized.map((innerValue, index) => () => {
202
+ const deserialized = _deserialize(innerValue, context, `${path}[${index}]`, depth + 1);
203
+ deserializedArray[index] = deserialized;
204
+ context.tryAddToDerefQueue(deserialized, (dereferenced) => (deserializedArray[index] = dereferenced));
205
+ return deserialized;
206
+ });
207
+ context.addManyToDeserializeQueue(queueItems, depth);
208
+ result = deserializedArray;
184
209
  }
185
- case import_types.rawNonPrimitiveType: {
186
- return nonPrimitiveData;
210
+ else if (constructor == Object) {
211
+ const deserializedObject = {};
212
+ context.references.set(path, deserializedObject);
213
+ const queueItems = entries.map(([key, innerValue]) => () => {
214
+ const deserialized = _deserialize(innerValue, context, `${path}['${key}']`, depth + 1);
215
+ deserializedObject[key] = deserialized;
216
+ context.tryAddToDerefQueue(deserialized, (dereferenced) => (deserializedObject[key] = dereferenced));
217
+ return deserialized;
218
+ });
219
+ context.addManyToDeserializeQueue(queueItems, depth);
220
+ result = deserializedObject;
187
221
  }
188
- case import_types.refNonPrimitiveType: {
189
- const dereferenced = context.references.get(nonPrimitiveData);
190
- if (dereferenced == void 0) {
191
- throw new Error(`reference ${nonPrimitiveData} not found`);
192
- }
193
- return dereferenced;
222
+ else {
223
+ throw new Error(`Unsupported constructor ${constructor.name}.`);
194
224
  }
195
- default: {
196
- const registration = (0, import_serializable.getSerializerByTypeName)(nonPrimitiveType);
197
- if (registration == void 0) {
198
- throw new Error(`non-primitive type ${nonPrimitiveType} not registered`);
199
- }
200
- const forwardRef = import_forward_ref.ForwardRef.create();
201
- context.references.set(path, forwardRef);
202
- context.addToDeserializeQueue(() => {
203
- const deserializedData = _deserialize(nonPrimitiveData, context, `${path}['<${nonPrimitiveType}>']`, depth + 1);
204
- context.addToDeserializeQueue(() => {
205
- const deserialized = registration.deserializer(deserializedData, context.tryAddToDerefQueue, context.options.data ?? {});
206
- import_forward_ref.ForwardRef.setRef(forwardRef, deserialized);
207
- }, depth);
208
- }, depth);
209
- if (depth == 0) {
225
+ if (depth == 0) {
210
226
  drainQueues(context);
211
- return import_forward_ref.ForwardRef.deref(forwardRef);
212
- }
213
- return forwardRef;
214
227
  }
215
- }
216
- }
217
- let result;
218
- const constructor = serialized.constructor;
219
- if (constructor == Array) {
220
- const deserializedArray = [];
221
- deserializedArray.length = serialized.length;
222
- context.references.set(path, deserializedArray);
223
- const queueItems = serialized.map((innerValue, index) => () => {
224
- const deserialized = _deserialize(innerValue, context, `${path}[${index}]`, depth + 1);
225
- deserializedArray[index] = deserialized;
226
- context.tryAddToDerefQueue(deserialized, (dereferenced) => deserializedArray[index] = dereferenced);
227
- return deserialized;
228
- });
229
- context.addManyToDeserializeQueue(queueItems, depth);
230
- result = deserializedArray;
231
- } else if (constructor == Object) {
232
- const deserializedObject = {};
233
- context.references.set(path, deserializedObject);
234
- const queueItems = entries.map(([key, innerValue]) => () => {
235
- const deserialized = _deserialize(innerValue, context, `${path}['${key}']`, depth + 1);
236
- deserializedObject[key] = deserialized;
237
- context.tryAddToDerefQueue(deserialized, (dereferenced) => deserializedObject[key] = dereferenced);
238
- return deserialized;
239
- });
240
- context.addManyToDeserializeQueue(queueItems, depth);
241
- result = deserializedObject;
242
- } else {
243
- throw new Error(`Unsupported constructor ${constructor.name}.`);
228
+ return result;
244
229
  }
245
- if (depth == 0) {
246
- drainQueues(context);
247
- }
248
- return result;
249
- }
250
- throw new Error(`Unsupported type '${type}'.`);
230
+ throw new Error(`Unsupported type '${type}'.`);
251
231
  }
252
- function getTypeString(type2) {
253
- return `<${type2}>`;
232
+ function getTypeString(type) {
233
+ return `<${type}>`;
254
234
  }
255
235
  function getDeserializeContext(serializedRoot, options) {
256
- const context2 = {
257
- serializedRoot,
258
- options: options ?? {},
259
- references: /* @__PURE__ */ new Map(),
260
- deserializeCounter: 0,
261
- deserializeQueue: new import_sorted_array_list.SortedArrayList(void 0, (0, import_comparison.compareByValueSelection)((item) => item.depth, (item) => item.counter)),
262
- derefQueue: new import_circular_buffer.CircularBuffer(),
263
- addToDeserializeQueue(fn2, depth2) {
264
- context2.deserializeQueue.add({ depth: depth2, counter: context2.deserializeCounter++, fn: fn2 });
265
- },
266
- addManyToDeserializeQueue(fns, depth2) {
267
- for (const fn2 of fns) {
268
- context2.deserializeQueue.add({ depth: depth2, counter: context2.deserializeCounter++, fn: fn2 });
269
- }
270
- },
271
- tryAddToDerefQueue(value, callback) {
272
- if (!import_forward_ref.ForwardRef.isForwardRef(value) || context2.options.doNotDereferenceForwardRefs == true) {
273
- return false;
274
- }
275
- context2.derefQueue.add(() => {
276
- const dereferenced = import_forward_ref.ForwardRef.deref(value);
277
- callback(dereferenced);
278
- });
279
- return true;
280
- }
281
- };
282
- return context2;
236
+ const context = {
237
+ serializedRoot,
238
+ options: options ?? {},
239
+ references: new Map(),
240
+ deserializeCounter: 0,
241
+ deserializeQueue: new SortedArrayList(undefined, compareByValueSelection((item) => item.depth, (item) => item.counter)),
242
+ derefQueue: new CircularBuffer(),
243
+ addToDeserializeQueue(fn, depth) {
244
+ context.deserializeQueue.add({ depth, counter: context.deserializeCounter++, fn });
245
+ },
246
+ addManyToDeserializeQueue(fns, depth) {
247
+ for (const fn of fns) {
248
+ context.deserializeQueue.add({ depth, counter: context.deserializeCounter++, fn });
249
+ }
250
+ },
251
+ tryAddToDerefQueue(value, callback) {
252
+ if (!ForwardRef.isForwardRef(value) || (context.options.doNotDereferenceForwardRefs == true)) {
253
+ return false;
254
+ }
255
+ context.derefQueue.add(() => {
256
+ const dereferenced = ForwardRef.deref(value);
257
+ callback(dereferenced);
258
+ });
259
+ return true;
260
+ }
261
+ };
262
+ return context;
283
263
  }
284
264
  function drainQueues({ deserializeQueue, derefQueue }) {
285
- while (deserializeQueue.size > 0) {
286
- const item = deserializeQueue.removeLast();
287
- item.fn();
288
- }
289
- for (const fn2 of derefQueue.consume()) {
290
- fn2();
291
- }
265
+ while (deserializeQueue.size > 0) {
266
+ const item = deserializeQueue.removeLast();
267
+ item.fn();
268
+ }
269
+ for (const fn of derefQueue.consume()) {
270
+ fn();
271
+ }
292
272
  }
@@ -1,34 +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 types_exports = {};
20
- __export(types_exports, {
21
- bigintNonPrimitiveType: () => bigintNonPrimitiveType,
22
- functionNonPrimitiveType: () => functionNonPrimitiveType,
23
- globalSymbolNonPrimitiveType: () => globalSymbolNonPrimitiveType,
24
- rawNonPrimitiveType: () => rawNonPrimitiveType,
25
- refNonPrimitiveType: () => refNonPrimitiveType,
26
- undefinedNonPrimitiveType: () => undefinedNonPrimitiveType
27
- });
28
- module.exports = __toCommonJS(types_exports);
29
- const rawNonPrimitiveType = "raw";
30
- const undefinedNonPrimitiveType = "undefined";
31
- const bigintNonPrimitiveType = "bigint";
32
- const globalSymbolNonPrimitiveType = "global-symbol";
33
- const functionNonPrimitiveType = "function";
34
- const refNonPrimitiveType = "ref";
1
+ export const rawNonPrimitiveType = 'raw';
2
+ export const undefinedNonPrimitiveType = 'undefined';
3
+ export const bigintNonPrimitiveType = 'bigint';
4
+ export const globalSymbolNonPrimitiveType = 'global-symbol';
5
+ export const functionNonPrimitiveType = 'function';
6
+ export const refNonPrimitiveType = 'ref';
package/signals/api.js CHANGED
@@ -1,49 +1,21 @@
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 api_exports = {};
20
- __export(api_exports, {
21
- computed: () => computed,
22
- configureSignals: () => configureSignals,
23
- effect: () => effect,
24
- isSignal: () => isSignal,
25
- signal: () => signal,
26
- toObservable: () => toObservable,
27
- toSignal: () => toSignal,
28
- untracked: () => untracked
29
- });
30
- module.exports = __toCommonJS(api_exports);
31
- let signal = throwSignalsNotConfigured;
32
- let computed = throwSignalsNotConfigured;
33
- let effect = throwSignalsNotConfigured;
34
- let untracked = throwSignalsNotConfigured;
35
- let isSignal = throwSignalsNotConfigured;
36
- let toSignal = throwSignalsNotConfigured;
37
- let toObservable = throwSignalsNotConfigured;
38
- function configureSignals(configuration) {
39
- signal = configuration.signal;
40
- computed = configuration.computed;
41
- effect = configuration.effect;
42
- untracked = configuration.untracked;
43
- isSignal = configuration.isSignal;
44
- toSignal = configuration.toSignal;
45
- toObservable = configuration.toObservable;
1
+ /* eslint-disable import/no-mutable-exports */
2
+ export let signal = throwSignalsNotConfigured;
3
+ export let computed = throwSignalsNotConfigured;
4
+ export let effect = throwSignalsNotConfigured;
5
+ export let untracked = throwSignalsNotConfigured;
6
+ export let isSignal = throwSignalsNotConfigured;
7
+ export let toSignal = throwSignalsNotConfigured;
8
+ export let toObservable = throwSignalsNotConfigured;
9
+ /* eslint-enable import/no-mutable-exports */
10
+ export function configureSignals(configuration) {
11
+ signal = configuration.signal;
12
+ computed = configuration.computed;
13
+ effect = configuration.effect;
14
+ untracked = configuration.untracked;
15
+ isSignal = configuration.isSignal;
16
+ toSignal = configuration.toSignal;
17
+ toObservable = configuration.toObservable;
46
18
  }
47
19
  function throwSignalsNotConfigured() {
48
- throw new Error("Signals are not configured. Use configureDefaultSignalsImplementation() for default implementation or configureSignals() for custom implementation.");
20
+ throw new Error('Signals are not configured. Use configureDefaultSignalsImplementation() for default implementation or configureSignals() for custom implementation.');
49
21
  }