@tstdl/base 0.86.0-beta1 → 0.86.0-beta11

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 (871) hide show
  1. package/.eslintrc.json +1 -0
  2. package/_container/container.js +443 -0
  3. package/_container/decorators.d.ts +76 -0
  4. package/_container/decorators.js +110 -0
  5. package/_container/index.d.ts +10 -0
  6. package/_container/index.js +27 -0
  7. package/_container/interfaces.d.ts +16 -0
  8. package/_container/interfaces.js +26 -0
  9. package/_container/provider.js +60 -0
  10. package/_container/resolve-chain.js +105 -0
  11. package/_container/resolve.error.js +36 -0
  12. package/_container/token.d.ts +18 -0
  13. package/_container/token.js +41 -0
  14. package/_container/type-info.js +16 -0
  15. package/_container/types.js +16 -0
  16. package/_container/utils.js +44 -0
  17. package/api/client/client.d.ts +2 -2
  18. package/api/client/client.js +127 -109
  19. package/api/client/index.js +18 -1
  20. package/api/default-error-handlers.js +44 -18
  21. package/api/index.js +20 -14
  22. package/api/response.js +123 -99
  23. package/api/server/api-controller.d.ts +2 -2
  24. package/api/server/api-controller.js +71 -42
  25. package/api/server/api-request-token.provider.js +40 -12
  26. package/api/server/error-handler.js +46 -25
  27. package/api/server/gateway.d.ts +5 -6
  28. package/api/server/gateway.js +226 -207
  29. package/api/server/index.js +22 -5
  30. package/api/server/middlewares/allowed-methods.middleware.js +40 -17
  31. package/api/server/middlewares/catch-error.middleware.js +33 -12
  32. package/api/server/middlewares/cors.middleware.js +69 -49
  33. package/api/server/middlewares/index.js +21 -4
  34. package/api/server/middlewares/response-time.middleware.js +31 -8
  35. package/api/server/module.js +42 -18
  36. package/api/server/tokens.d.ts +4 -1
  37. package/api/server/tokens.js +31 -2
  38. package/api/types.js +40 -14
  39. package/api/utils.js +36 -13
  40. package/application/application.d.ts +13 -10
  41. package/application/application.js +168 -155
  42. package/application/index.js +18 -1
  43. package/async-iterator-symbol.js +28 -5
  44. package/authentication/authentication.api.js +113 -89
  45. package/authentication/client/api.client.js +57 -28
  46. package/authentication/client/authentication.service.d.ts +4 -4
  47. package/authentication/client/authentication.service.js +249 -223
  48. package/authentication/client/http-client.middleware.d.ts +3 -5
  49. package/authentication/client/http-client.middleware.js +35 -21
  50. package/authentication/client/index.js +22 -5
  51. package/authentication/client/module.d.ts +2 -1
  52. package/authentication/client/module.js +46 -15
  53. package/authentication/client/tokens.d.ts +2 -2
  54. package/authentication/client/tokens.js +30 -5
  55. package/authentication/errors/index.js +18 -1
  56. package/authentication/errors/secret-requirements.error.js +29 -6
  57. package/authentication/index.js +19 -2
  58. package/authentication/models/authentication-credentials.model.js +66 -37
  59. package/authentication/models/authentication-session.model.js +80 -51
  60. package/authentication/models/index.js +23 -6
  61. package/authentication/models/init-secret-reset-data.model.js +44 -16
  62. package/authentication/models/secret-check-result.model.js +36 -9
  63. package/authentication/models/token-payload-base.model.js +59 -31
  64. package/authentication/models/token.model.js +16 -1
  65. package/authentication/server/authentication-api-request-token.provider.js +52 -24
  66. package/authentication/server/authentication-credentials.repository.js +24 -1
  67. package/authentication/server/authentication-secret-requirements.validator.d.ts +11 -2
  68. package/authentication/server/authentication-secret-requirements.validator.js +58 -23
  69. package/authentication/server/authentication-secret-reset.handler.js +24 -1
  70. package/authentication/server/authentication-session.repository.js +24 -1
  71. package/authentication/server/authentication-subject.resolver.js +24 -5
  72. package/authentication/server/authentication-token-payload.provider.js +29 -5
  73. package/authentication/server/authentication.api-controller.js +114 -88
  74. package/authentication/server/authentication.service.d.ts +10 -3
  75. package/authentication/server/authentication.service.js +308 -264
  76. package/authentication/server/helper.js +87 -66
  77. package/authentication/server/index.js +28 -11
  78. package/authentication/server/module.d.ts +2 -1
  79. package/authentication/server/module.js +48 -25
  80. package/authentication/server/mongo/index.js +19 -2
  81. package/authentication/server/mongo/mongo-authentication-credentials.repository.d.ts +3 -3
  82. package/authentication/server/mongo/mongo-authentication-credentials.repository.js +84 -52
  83. package/authentication/server/mongo/mongo-authentication-session.repository.d.ts +3 -3
  84. package/authentication/server/mongo/mongo-authentication-session.repository.js +81 -49
  85. package/browser/browser-context-controller.d.ts +4 -4
  86. package/browser/browser-context-controller.js +106 -72
  87. package/browser/browser-controller.d.ts +12 -5
  88. package/browser/browser-controller.js +115 -74
  89. package/browser/browser.service.d.ts +12 -6
  90. package/browser/browser.service.js +117 -83
  91. package/browser/document-controller.js +81 -48
  92. package/browser/element-controller.d.ts +24 -0
  93. package/browser/element-controller.js +217 -139
  94. package/browser/frame-controller.js +50 -27
  95. package/browser/index.js +27 -10
  96. package/browser/locator-controller.js +59 -36
  97. package/browser/module.js +47 -23
  98. package/browser/page-controller.js +108 -89
  99. package/browser/pdf-options.js +103 -73
  100. package/browser/types.js +16 -1
  101. package/browser/utils.d.ts +2 -0
  102. package/browser/utils.js +116 -77
  103. package/collections/awaitable/awaitable-list.js +122 -99
  104. package/collections/awaitable/awaitable-map.js +116 -93
  105. package/collections/awaitable/awaitable-set.js +86 -63
  106. package/collections/awaitable/index.js +20 -3
  107. package/collections/collection.js +16 -1
  108. package/collections/index.js +23 -6
  109. package/collections/keyed-set.js +77 -53
  110. package/collections/list.js +16 -1
  111. package/collections/observable/index.js +25 -8
  112. package/collections/observable/observable-array.js +118 -95
  113. package/collections/observable/observable-collection-base.js +83 -60
  114. package/collections/observable/observable-collection.js +16 -1
  115. package/collections/observable/observable-list-base.js +78 -55
  116. package/collections/observable/observable-list.js +16 -1
  117. package/collections/observable/observable-map.js +79 -56
  118. package/collections/observable/observable-set.js +98 -75
  119. package/collections/observable/observable-sorted-array-list.js +188 -165
  120. package/collections/sorted-array-list.js +179 -156
  121. package/collections/sorted-list.js +16 -1
  122. package/collections/sorted-map.js +93 -70
  123. package/container/decorators.d.ts +2 -76
  124. package/container/decorators.js +34 -126
  125. package/container/index.d.ts +0 -7
  126. package/container/index.js +20 -10
  127. package/container/interfaces.d.ts +2 -16
  128. package/container/interfaces.js +25 -2
  129. package/container/token.d.ts +2 -18
  130. package/container/token.js +26 -20
  131. package/cookie/cookie.js +71 -49
  132. package/cookie/index.js +18 -1
  133. package/core.d.ts +4 -2
  134. package/core.js +82 -46
  135. package/data-structures/array-dictionary.js +110 -89
  136. package/data-structures/array-list.d.ts +1 -1
  137. package/data-structures/array-list.js +128 -105
  138. package/data-structures/cache.js +64 -41
  139. package/data-structures/circular-buffer.js +219 -195
  140. package/data-structures/collection.js +109 -86
  141. package/data-structures/dictionary.js +75 -51
  142. package/data-structures/distinct-collection.d.ts +24 -0
  143. package/data-structures/distinct-collection.js +77 -0
  144. package/data-structures/index-out-of-bounds.error.js +31 -8
  145. package/data-structures/index.d.ts +2 -1
  146. package/data-structures/index.js +33 -15
  147. package/data-structures/iterable-weak-map.js +149 -129
  148. package/data-structures/linked-list.js +385 -367
  149. package/data-structures/list.js +109 -78
  150. package/data-structures/map-dictionary.js +78 -55
  151. package/data-structures/multi-key-map.d.ts +1 -1
  152. package/data-structures/multi-key-map.js +163 -138
  153. package/data-structures/multi-key-set.d.ts +19 -0
  154. package/data-structures/multi-key-set.js +81 -0
  155. package/data-structures/{set.d.ts → set-collection.d.ts} +3 -3
  156. package/data-structures/set-collection.js +79 -0
  157. package/data-structures/sorted-array-list.d.ts +1 -1
  158. package/data-structures/sorted-array-list.js +166 -142
  159. package/data-structures/weak-ref-map.js +146 -123
  160. package/database/entity-repository.js +26 -2
  161. package/database/entity.js +16 -1
  162. package/database/id.js +29 -8
  163. package/database/index.js +23 -6
  164. package/database/module.js +33 -9
  165. package/database/mongo/classes.d.ts +5 -5
  166. package/database/mongo/classes.js +43 -13
  167. package/database/mongo/index.js +27 -10
  168. package/database/mongo/model/document.js +93 -62
  169. package/database/mongo/model/index.js +18 -1
  170. package/database/mongo/module.js +79 -51
  171. package/database/mongo/mongo-base.repository.js +283 -259
  172. package/database/mongo/mongo-bulk.js +110 -87
  173. package/database/mongo/mongo-entity-repository.d.ts +5 -5
  174. package/database/mongo/mongo-entity-repository.js +296 -270
  175. package/database/mongo/operations.js +76 -48
  176. package/database/mongo/query-converter.js +96 -73
  177. package/database/mongo/simple-entity-repository.js +28 -5
  178. package/database/mongo/types.js +25 -2
  179. package/database/query.js +36 -7
  180. package/database/utils.js +25 -2
  181. package/decorators/index.d.ts +1 -0
  182. package/decorators/index.js +18 -0
  183. package/decorators/log.d.ts +2 -0
  184. package/decorators/log.js +56 -0
  185. package/disposable/async-disposer.d.ts +4 -4
  186. package/disposable/async-disposer.js +105 -93
  187. package/disposable/disposable.js +33 -7
  188. package/disposable/index.js +20 -3
  189. package/disposable/using.js +37 -15
  190. package/distributed-loop/controller.js +16 -1
  191. package/distributed-loop/distributed-loop.d.ts +3 -3
  192. package/distributed-loop/distributed-loop.js +105 -78
  193. package/distributed-loop/index.js +20 -3
  194. package/distributed-loop/provider.js +48 -20
  195. package/enumerable/async-enumerable.js +261 -238
  196. package/enumerable/enumerable-methods.js +16 -1
  197. package/enumerable/enumerable.js +200 -177
  198. package/enumerable/index.js +19 -2
  199. package/environment.js +57 -25
  200. package/error/api.error.js +33 -10
  201. package/error/assertion.error.js +29 -6
  202. package/error/bad-request.error.js +29 -6
  203. package/error/custom.error.js +47 -25
  204. package/error/details.error.js +31 -8
  205. package/error/forbidden.error.js +29 -6
  206. package/error/index.js +33 -16
  207. package/error/invalid-token.error.js +29 -6
  208. package/error/max-bytes-exceeded.error.js +32 -9
  209. package/error/method-not-allowed.error.js +29 -6
  210. package/error/multi.error.js +31 -8
  211. package/error/not-found.error.js +29 -6
  212. package/error/not-implemented.error.js +29 -6
  213. package/error/not-supported.error.js +34 -11
  214. package/error/timeout.error.js +29 -6
  215. package/error/unauthorized.error.js +29 -6
  216. package/error/unsupported-media-type.error.js +29 -6
  217. package/examples/api/authentication.js +49 -42
  218. package/examples/api/basic-overview.js +85 -81
  219. package/examples/api/custom-authentication.js +69 -61
  220. package/examples/api/streaming.js +95 -90
  221. package/examples/browser/basic.js +21 -20
  222. package/examples/http/client.js +16 -13
  223. package/examples/mail/basic.js +42 -36
  224. package/examples/mail/templates/hello-name.js +33 -10
  225. package/examples/pdf/basic.js +49 -44
  226. package/examples/pdf/templates/hello-name.js +58 -35
  227. package/examples/reflection/basic.js +84 -52
  228. package/examples/template/basic.js +33 -30
  229. package/examples/template/templates/hello-jsx.js +32 -8
  230. package/examples/template/templates/hello-name.js +41 -18
  231. package/function/index.d.ts +1 -0
  232. package/function/index.js +18 -0
  233. package/function/log.d.ts +6 -0
  234. package/function/log.js +37 -0
  235. package/global-this.js +36 -17
  236. package/http/client/adapters/undici-http-client.adapter.js +111 -90
  237. package/http/client/http-client-options.d.ts +0 -5
  238. package/http/client/http-client-options.js +33 -14
  239. package/http/client/http-client-request.js +171 -149
  240. package/http/client/http-client-response.js +56 -33
  241. package/http/client/http-client.adapter.js +24 -1
  242. package/http/client/http-client.d.ts +5 -8
  243. package/http/client/http-client.js +325 -301
  244. package/http/client/index.js +23 -6
  245. package/http/client/middleware.d.ts +6 -0
  246. package/http/client/middleware.js +16 -0
  247. package/http/client/module.d.ts +6 -1
  248. package/http/client/module.js +42 -14
  249. package/http/client/tokens.d.ts +2 -0
  250. package/http/client/tokens.js +25 -0
  251. package/http/cookie-parser.js +42 -19
  252. package/http/http-body.js +75 -52
  253. package/http/http-form.js +37 -14
  254. package/http/http-headers.js +109 -86
  255. package/http/http-query.js +37 -14
  256. package/http/http-url-parameters.js +31 -8
  257. package/http/http-value-map.js +133 -110
  258. package/http/http.error.js +82 -60
  259. package/http/index.js +28 -11
  260. package/http/server/http-server-request.js +47 -24
  261. package/http/server/http-server-response.js +45 -22
  262. package/http/server/http-server.js +25 -2
  263. package/http/server/index.js +20 -3
  264. package/http/server/node/index.js +19 -2
  265. package/http/server/node/module.js +28 -8
  266. package/http/server/node/node-http-server.d.ts +1 -4
  267. package/http/server/node/node-http-server.js +230 -208
  268. package/http/types.js +47 -21
  269. package/http/utils.js +108 -92
  270. package/image-service/image-service.js +91 -59
  271. package/image-service/imgproxy/imgproxy-image-service.d.ts +6 -8
  272. package/image-service/imgproxy/imgproxy-image-service.js +125 -86
  273. package/image-service/imgproxy/index.js +18 -1
  274. package/image-service/index.js +18 -1
  275. package/import.js +25 -2
  276. package/index.js +18 -1
  277. package/injector/decorators.d.ts +81 -0
  278. package/injector/decorators.js +126 -0
  279. package/injector/index.d.ts +11 -0
  280. package/injector/index.js +28 -0
  281. package/injector/inject.d.ts +85 -0
  282. package/injector/inject.js +106 -0
  283. package/injector/injector.d.ts +91 -0
  284. package/injector/injector.js +497 -0
  285. package/injector/interfaces.d.ts +16 -0
  286. package/injector/interfaces.js +26 -0
  287. package/injector/provider.d.ts +49 -0
  288. package/injector/provider.js +64 -0
  289. package/injector/resolve-chain.d.ts +31 -0
  290. package/injector/resolve-chain.js +113 -0
  291. package/injector/resolve.error.d.ts +5 -0
  292. package/injector/resolve.error.js +36 -0
  293. package/injector/symbols.d.ts +2 -0
  294. package/injector/symbols.js +26 -0
  295. package/injector/token.d.ts +25 -0
  296. package/injector/token.js +41 -0
  297. package/injector/type-info.d.ts +20 -0
  298. package/injector/type-info.js +16 -0
  299. package/injector/types.d.ts +49 -0
  300. package/injector/types.js +16 -0
  301. package/interfaces.js +16 -1
  302. package/json-path/index.js +18 -1
  303. package/json-path/json-path.js +138 -138
  304. package/key-value-store/index.js +19 -2
  305. package/key-value-store/key-value-store.provider.js +24 -1
  306. package/key-value-store/key-value.store.d.ts +3 -3
  307. package/key-value-store/key-value.store.js +29 -6
  308. package/key-value-store/mongo/index.js +23 -6
  309. package/key-value-store/mongo/module.js +35 -17
  310. package/key-value-store/mongo/mongo-key-value-store.provider.js +48 -20
  311. package/key-value-store/mongo/mongo-key-value.model.js +16 -1
  312. package/key-value-store/mongo/mongo-key-value.repository.d.ts +3 -3
  313. package/key-value-store/mongo/mongo-key-value.repository.js +52 -22
  314. package/key-value-store/mongo/mongo-key-value.store.js +89 -59
  315. package/key-value-store/mongo/tokens.d.ts +1 -1
  316. package/key-value-store/mongo/tokens.js +25 -2
  317. package/lock/index.js +19 -2
  318. package/lock/lock.d.ts +3 -2
  319. package/lock/lock.js +29 -5
  320. package/lock/mongo/index.js +22 -5
  321. package/lock/mongo/lock.js +135 -111
  322. package/lock/mongo/model.js +16 -1
  323. package/lock/mongo/module.js +37 -18
  324. package/lock/mongo/mongo-lock-repository.d.ts +3 -3
  325. package/lock/mongo/mongo-lock-repository.js +85 -56
  326. package/lock/mongo/provider.js +68 -38
  327. package/lock/provider.d.ts +3 -2
  328. package/lock/provider.js +25 -1
  329. package/lock/web/index.js +20 -3
  330. package/lock/web/module.js +31 -11
  331. package/lock/web/web-lock.js +105 -80
  332. package/lock/web/web-lock.provider.js +57 -27
  333. package/logger/console/index.js +18 -1
  334. package/logger/console/logger.js +80 -53
  335. package/logger/index.js +19 -2
  336. package/logger/level.js +31 -8
  337. package/logger/logger.d.ts +3 -2
  338. package/logger/logger.js +61 -37
  339. package/logger/noop/index.js +18 -1
  340. package/logger/noop/logger.js +42 -20
  341. package/mail/clients/nodemailer.mail-client.js +91 -62
  342. package/mail/index.js +22 -5
  343. package/mail/mail-log.repository.js +25 -2
  344. package/mail/mail.client.d.ts +3 -2
  345. package/mail/mail.client.js +63 -34
  346. package/mail/mail.service.js +106 -73
  347. package/mail/models/index.js +23 -6
  348. package/mail/models/mail-address.model.js +16 -1
  349. package/mail/models/mail-content.model.js +16 -1
  350. package/mail/models/mail-data.model.js +16 -1
  351. package/mail/models/mail-log.model.js +16 -1
  352. package/mail/models/mail-send-result.model.js +16 -1
  353. package/mail/models/mail-template.model.js +28 -5
  354. package/mail/module.js +41 -21
  355. package/mail/repositories/mongo-mail-log.repository.d.ts +3 -3
  356. package/mail/repositories/mongo-mail-log.repository.js +56 -24
  357. package/mail/tokens.d.ts +1 -1
  358. package/mail/tokens.js +25 -2
  359. package/memory/finalization.js +60 -36
  360. package/memory/index.js +19 -2
  361. package/memory/observable-finalization-registry.js +32 -9
  362. package/message-bus/broadcast-channel/broadcast-channel-message-bus-provider.js +53 -23
  363. package/message-bus/broadcast-channel/broadcast-channel-message-bus.d.ts +1 -1
  364. package/message-bus/broadcast-channel/broadcast-channel-message-bus.js +74 -46
  365. package/message-bus/broadcast-channel/index.js +20 -3
  366. package/message-bus/broadcast-channel/module.js +31 -11
  367. package/message-bus/index.js +20 -3
  368. package/message-bus/local/index.js +20 -3
  369. package/message-bus/local/local-message-bus-provider.js +65 -35
  370. package/message-bus/local/local-message-bus.d.ts +1 -1
  371. package/message-bus/local/local-message-bus.js +66 -38
  372. package/message-bus/local/module.js +31 -11
  373. package/message-bus/local/types.js +16 -1
  374. package/message-bus/message-bus-base.js +63 -41
  375. package/message-bus/message-bus-provider.js +24 -1
  376. package/message-bus/message-bus.d.ts +3 -3
  377. package/message-bus/message-bus.js +29 -5
  378. package/migration/index.d.ts +1 -1
  379. package/migration/index.js +20 -3
  380. package/migration/migration-state-repository.js +25 -2
  381. package/migration/migration-state.js +16 -1
  382. package/migration/migrator.js +108 -80
  383. package/migration/mongo/index.js +19 -2
  384. package/migration/mongo/migration-state-repository.d.ts +3 -3
  385. package/migration/mongo/migration-state-repository.js +53 -23
  386. package/migration/mongo/module.js +34 -15
  387. package/module/index.js +21 -4
  388. package/module/module-base.js +60 -37
  389. package/module/module-metric-reporter.js +77 -58
  390. package/module/module.js +34 -10
  391. package/module/modules/function.module.js +34 -11
  392. package/module/modules/index.js +19 -2
  393. package/module/modules/web-server.module.d.ts +5 -10
  394. package/module/modules/web-server.module.js +81 -67
  395. package/module/utils.js +43 -19
  396. package/notification/api.js +50 -21
  397. package/notification/models/index.js +19 -2
  398. package/notification/models/notification-channel-job.model.js +16 -1
  399. package/notification/models/notification.model.js +103 -74
  400. package/notification/module.js +28 -8
  401. package/notification/notification-channel.service.js +24 -1
  402. package/notification/notification.repository.js +24 -1
  403. package/notification/notification.service.js +58 -30
  404. package/object-storage/index.js +20 -3
  405. package/object-storage/object-storage-provider.d.ts +1 -1
  406. package/object-storage/object-storage-provider.js +24 -1
  407. package/object-storage/object-storage.d.ts +3 -3
  408. package/object-storage/object-storage.js +30 -6
  409. package/object-storage/object.js +30 -7
  410. package/object-storage/s3/index.js +20 -3
  411. package/object-storage/s3/s3.object-storage-provider.d.ts +1 -6
  412. package/object-storage/s3/s3.object-storage-provider.js +100 -83
  413. package/object-storage/s3/s3.object-storage.d.ts +2 -2
  414. package/object-storage/s3/s3.object-storage.js +160 -130
  415. package/object-storage/s3/s3.object.js +62 -39
  416. package/openid-connect/cached-oidc-configuration.service.js +65 -35
  417. package/openid-connect/index.d.ts +1 -1
  418. package/openid-connect/index.js +28 -11
  419. package/openid-connect/mongo-oidc-state.repository.d.ts +3 -3
  420. package/openid-connect/mongo-oidc-state.repository.js +65 -38
  421. package/openid-connect/oidc-configuration.service.js +66 -38
  422. package/openid-connect/oidc-state.model.js +16 -1
  423. package/openid-connect/oidc-state.repository.js +25 -2
  424. package/openid-connect/oidc.service-model.js +16 -1
  425. package/openid-connect/oidc.service.js +187 -157
  426. package/package.json +16 -16
  427. package/password/have-i-been-pwned.js +39 -21
  428. package/password/index.js +21 -4
  429. package/password/password-check-result.model.js +63 -34
  430. package/password/password-check.js +76 -46
  431. package/password/password-check.localization.js +111 -86
  432. package/pdf/index.js +18 -1
  433. package/pdf/pdf.service.d.ts +3 -3
  434. package/pdf/pdf.service.js +206 -171
  435. package/pool/index.js +18 -1
  436. package/pool/pool.js +133 -116
  437. package/process-shutdown.d.ts +2 -2
  438. package/process-shutdown.js +75 -54
  439. package/promise/cancelable-promise.js +41 -23
  440. package/promise/deferred-promise.js +92 -68
  441. package/promise/index.js +20 -3
  442. package/promise/lazy-promise.js +47 -24
  443. package/queue/enqueue-batch.js +41 -18
  444. package/queue/index.js +20 -3
  445. package/queue/mongo/index.js +21 -4
  446. package/queue/mongo/job.js +16 -1
  447. package/queue/mongo/mongo-job.repository.d.ts +3 -3
  448. package/queue/mongo/mongo-job.repository.js +70 -44
  449. package/queue/mongo/queue.js +265 -242
  450. package/queue/mongo/queue.provider.d.ts +3 -3
  451. package/queue/mongo/queue.provider.js +72 -44
  452. package/queue/provider.js +24 -1
  453. package/queue/queue.d.ts +3 -3
  454. package/queue/queue.js +41 -15
  455. package/random/index.js +19 -2
  456. package/random/number-generator/index.js +20 -3
  457. package/random/number-generator/mulberry32.js +51 -34
  458. package/random/number-generator/random-number-generator-function.js +24 -1
  459. package/random/number-generator/random-number-generator.js +31 -8
  460. package/random/number-generator/seeded-random-number-generator.js +28 -5
  461. package/random/number-generator/sfc32.js +64 -41
  462. package/random/number-generator/utils.js +25 -2
  463. package/random/series.js +43 -41
  464. package/reflection/decorator-data.js +80 -63
  465. package/reflection/decorators.js +69 -39
  466. package/reflection/index.js +22 -5
  467. package/reflection/reflection-data-map.js +55 -32
  468. package/reflection/registry.d.ts +0 -1
  469. package/reflection/registry.js +130 -111
  470. package/reflection/types.js +16 -1
  471. package/reflection/utils.js +124 -96
  472. package/require.js +26 -3
  473. package/rpc/endpoints/message-port.rpc-endpoint.js +48 -29
  474. package/rpc/index.js +21 -4
  475. package/rpc/model.js +30 -7
  476. package/rpc/rpc-endpoint.js +40 -17
  477. package/rpc/rpc-error.js +40 -17
  478. package/rpc/rpc.js +235 -223
  479. package/rxjs/cast.js +28 -4
  480. package/rxjs/index.d.ts +1 -0
  481. package/rxjs/index.js +30 -12
  482. package/rxjs/intersection-observer.js +48 -25
  483. package/rxjs/media-query.js +27 -8
  484. package/rxjs/mutation-observer.js +50 -28
  485. package/rxjs/noop.js +28 -4
  486. package/rxjs/performance-observer.js +60 -37
  487. package/rxjs/resize-observer.js +50 -28
  488. package/rxjs/retry-backoff.js +47 -23
  489. package/rxjs/slow-array.js +36 -22
  490. package/rxjs/start-with-provider.d.ts +2 -0
  491. package/rxjs/start-with-provider.js +29 -0
  492. package/rxjs/teardown.js +44 -21
  493. package/rxjs/timing.js +57 -26
  494. package/rxjs/touch.js +30 -11
  495. package/schema/array-constraints/index.js +19 -2
  496. package/schema/array-constraints/maximum-length.js +42 -19
  497. package/schema/array-constraints/minimum-length.js +42 -19
  498. package/schema/coercers/boolean.coercer.js +49 -25
  499. package/schema/coercers/date.coercer.js +38 -14
  500. package/schema/coercers/index.js +23 -6
  501. package/schema/coercers/number.coercer.js +36 -12
  502. package/schema/coercers/regexp.coercer.js +41 -18
  503. package/schema/coercers/string.coercer.js +36 -12
  504. package/schema/coercers/uint8-array.coercer.js +44 -20
  505. package/schema/constraints/enumeration.js +49 -27
  506. package/schema/constraints/generic.js +41 -21
  507. package/schema/constraints/index.js +29 -12
  508. package/schema/constraints/integer.js +44 -20
  509. package/schema/constraints/length.js +36 -14
  510. package/schema/constraints/literal.js +44 -22
  511. package/schema/constraints/maximum-date.js +46 -23
  512. package/schema/constraints/maximum-length.js +45 -22
  513. package/schema/constraints/maximum.js +44 -21
  514. package/schema/constraints/minimum-date.js +46 -23
  515. package/schema/constraints/minimum-length.js +45 -22
  516. package/schema/constraints/minimum.js +44 -21
  517. package/schema/constraints/pattern.js +46 -23
  518. package/schema/decorators/class.js +26 -4
  519. package/schema/decorators/coerce.js +26 -4
  520. package/schema/decorators/constraint.js +28 -6
  521. package/schema/decorators/index.js +23 -6
  522. package/schema/decorators/property.js +38 -16
  523. package/schema/decorators/types.js +16 -1
  524. package/schema/decorators/utils.js +73 -45
  525. package/schema/index.js +27 -10
  526. package/schema/schema.error.js +72 -59
  527. package/schema/schema.js +274 -256
  528. package/schema/schemas/any.js +30 -7
  529. package/schema/schemas/array.js +44 -21
  530. package/schema/schemas/assign.js +46 -23
  531. package/schema/schemas/boolean.js +30 -7
  532. package/schema/schemas/constraint.js +29 -6
  533. package/schema/schemas/date.js +43 -20
  534. package/schema/schemas/defaulted.js +31 -8
  535. package/schema/schemas/enumeration.js +38 -15
  536. package/schema/schemas/index.js +43 -26
  537. package/schema/schemas/instance.js +26 -4
  538. package/schema/schemas/literal.js +38 -15
  539. package/schema/schemas/nullable.js +30 -7
  540. package/schema/schemas/number.js +48 -25
  541. package/schema/schemas/object.js +34 -10
  542. package/schema/schemas/omit.js +37 -14
  543. package/schema/schemas/one-or-many.js +35 -13
  544. package/schema/schemas/optional.js +30 -6
  545. package/schema/schemas/partial.js +39 -16
  546. package/schema/schemas/pick.js +37 -14
  547. package/schema/schemas/readable-stream.js +30 -7
  548. package/schema/schemas/record.js +31 -9
  549. package/schema/schemas/regexp.js +30 -7
  550. package/schema/schemas/string.js +59 -36
  551. package/schema/schemas/transform.js +29 -6
  552. package/schema/schemas/uint8-array.js +50 -27
  553. package/schema/schemas/union.js +34 -11
  554. package/schema/schemas/unknown.js +30 -7
  555. package/schema/transformers/generic.js +39 -16
  556. package/schema/transformers/index.js +21 -4
  557. package/schema/transformers/lowercase.js +33 -10
  558. package/schema/transformers/trim.js +33 -10
  559. package/schema/transformers/uppercase.js +33 -10
  560. package/schema/types/index.js +22 -5
  561. package/schema/types/schema-array-constraint.js +24 -1
  562. package/schema/types/schema-value-coercer.js +24 -1
  563. package/schema/types/schema-value-constraint.js +24 -1
  564. package/schema/types/schema-value-transformer.js +24 -1
  565. package/schema/types/types.js +191 -161
  566. package/schema/utils/index.js +19 -2
  567. package/schema/utils/schema.js +142 -120
  568. package/schema/utils/value-type.js +74 -51
  569. package/search-index/elastic/config.d.ts +3 -3
  570. package/search-index/elastic/config.js +50 -19
  571. package/search-index/elastic/index.js +23 -6
  572. package/search-index/elastic/keyword-rewriter.js +40 -17
  573. package/search-index/elastic/model/elastic-query.js +16 -1
  574. package/search-index/elastic/model/index-mapping.js +26 -4
  575. package/search-index/elastic/model/index.js +20 -3
  576. package/search-index/elastic/model/sort.js +16 -1
  577. package/search-index/elastic/module.d.ts +1 -3
  578. package/search-index/elastic/module.js +69 -40
  579. package/search-index/elastic/query-builder/boolean-query-builder.js +69 -46
  580. package/search-index/elastic/query-builder/index.js +18 -1
  581. package/search-index/elastic/query-converter.js +192 -174
  582. package/search-index/elastic/search-index.d.ts +2 -2
  583. package/search-index/elastic/search-index.js +153 -132
  584. package/search-index/elastic/sort-converter.js +34 -12
  585. package/search-index/elastic/types.js +16 -1
  586. package/search-index/error.js +35 -12
  587. package/search-index/index.js +20 -3
  588. package/search-index/memory/index.js +18 -1
  589. package/search-index/memory/memory-search-index.js +152 -130
  590. package/search-index/search-index.js +53 -30
  591. package/search-index/search-result.js +16 -1
  592. package/serializer/handlers/binary.js +47 -19
  593. package/serializer/handlers/date.js +28 -4
  594. package/serializer/handlers/error.js +31 -7
  595. package/serializer/handlers/index.js +24 -7
  596. package/serializer/handlers/map.js +40 -16
  597. package/serializer/handlers/regex.js +31 -7
  598. package/serializer/handlers/register.js +59 -36
  599. package/serializer/handlers/set.js +37 -13
  600. package/serializer/index.js +30 -3
  601. package/serializer/serializable.js +68 -43
  602. package/serializer/serializer.js +264 -244
  603. package/serializer/types.js +34 -6
  604. package/signals/api.d.ts +1 -1
  605. package/signals/api.js +48 -17
  606. package/signals/computed-with-dependencies.js +31 -8
  607. package/signals/effect-with-dependencies.js +31 -8
  608. package/signals/implementation/api.js +33 -33
  609. package/signals/implementation/computed.js +104 -125
  610. package/signals/implementation/configure.js +41 -18
  611. package/signals/implementation/effect.js +66 -48
  612. package/signals/implementation/errors.js +29 -5
  613. package/signals/implementation/graph.js +136 -164
  614. package/signals/implementation/index.js +27 -10
  615. package/signals/implementation/signal.js +101 -91
  616. package/signals/implementation/to-observable.js +38 -21
  617. package/signals/implementation/to-signal.js +60 -44
  618. package/signals/implementation/untracked.js +31 -15
  619. package/signals/implementation/watch.js +73 -58
  620. package/signals/index.d.ts +2 -0
  621. package/signals/index.js +26 -7
  622. package/signals/lazylize.d.ts +2 -0
  623. package/signals/lazylize.js +28 -0
  624. package/signals/pipe.d.ts +1 -1
  625. package/signals/pipe.js +33 -7
  626. package/signals/switch-map.js +27 -4
  627. package/signals/to-signal-2.d.ts +14 -0
  628. package/signals/to-signal-2.js +67 -0
  629. package/signals/types.js +16 -1
  630. package/signals/untracked-operator.js +33 -11
  631. package/sse/index.js +19 -2
  632. package/sse/model.js +16 -1
  633. package/sse/server-sent-events-source.js +76 -54
  634. package/sse/server-sent-events.js +72 -48
  635. package/supports.js +32 -5
  636. package/templates/index.js +26 -9
  637. package/templates/module.d.ts +2 -2
  638. package/templates/module.js +47 -40
  639. package/templates/providers/file.template-provider.d.ts +3 -3
  640. package/templates/providers/file.template-provider.js +82 -39
  641. package/templates/providers/memory.template-provider.js +55 -27
  642. package/templates/renderers/handlebars.template-renderer.js +122 -84
  643. package/templates/renderers/jsx.template-renderer.js +56 -28
  644. package/templates/renderers/mjml.template-renderer.js +82 -42
  645. package/templates/renderers/string.template-renderer.js +52 -24
  646. package/templates/resolvers/file.template-resolver.d.ts +3 -3
  647. package/templates/resolvers/file.template-resolver.js +90 -45
  648. package/templates/resolvers/jsx.template-resolver.js +59 -29
  649. package/templates/resolvers/string.template-resolver.js +59 -29
  650. package/templates/template-renderer.provider.js +66 -36
  651. package/templates/template-resolver.provider.js +66 -36
  652. package/templates/template.model.js +69 -39
  653. package/templates/template.provider.js +24 -1
  654. package/templates/template.renderer.js +34 -11
  655. package/templates/template.resolver.js +24 -1
  656. package/templates/template.service.js +82 -49
  657. package/templates/tokens.d.ts +2 -2
  658. package/templates/tokens.js +27 -3
  659. package/templates/types/jsx.intrinsic-elements.js +16 -1
  660. package/text/dynamic-text.model.js +69 -41
  661. package/text/index.js +20 -3
  662. package/text/localizable-text.model.js +16 -1
  663. package/text/localization.service.js +229 -196
  664. package/theme/adapters/css-adapter.js +46 -23
  665. package/theme/adapters/tailwind-adapter.js +52 -29
  666. package/theme/index.js +18 -1
  667. package/theme/theme-service.d.ts +1 -1
  668. package/theme/theme-service.js +147 -107
  669. package/threading/index.js +19 -2
  670. package/threading/thread-pool.js +70 -48
  671. package/threading/thread-worker.js +26 -3
  672. package/tokens.d.ts +1 -1
  673. package/tokens.js +25 -2
  674. package/types/geo-json.js +16 -1
  675. package/types.js +16 -2
  676. package/utils/alphabet.js +35 -12
  677. package/utils/any-iterable-iterator.js +27 -4
  678. package/utils/array/array-backtracker.js +65 -42
  679. package/utils/array/array.js +79 -76
  680. package/utils/array/index.js +19 -2
  681. package/utils/async-iterable-helpers/all.js +46 -25
  682. package/utils/async-iterable-helpers/any.js +46 -25
  683. package/utils/async-iterable-helpers/assert.js +43 -22
  684. package/utils/async-iterable-helpers/batch.js +46 -26
  685. package/utils/async-iterable-helpers/buffer.js +64 -47
  686. package/utils/async-iterable-helpers/concat.js +27 -5
  687. package/utils/async-iterable-helpers/default-if-empty.js +32 -9
  688. package/utils/async-iterable-helpers/deferred.js +26 -3
  689. package/utils/async-iterable-helpers/difference.js +48 -24
  690. package/utils/async-iterable-helpers/distinct.js +44 -23
  691. package/utils/async-iterable-helpers/drain.js +26 -4
  692. package/utils/async-iterable-helpers/filter.js +44 -23
  693. package/utils/async-iterable-helpers/first-or-default.js +30 -8
  694. package/utils/async-iterable-helpers/first.js +30 -8
  695. package/utils/async-iterable-helpers/for-each.js +38 -18
  696. package/utils/async-iterable-helpers/group-single.js +26 -3
  697. package/utils/async-iterable-helpers/group-to-map.js +41 -20
  698. package/utils/async-iterable-helpers/group-to-single-map.js +44 -23
  699. package/utils/async-iterable-helpers/group.js +26 -3
  700. package/utils/async-iterable-helpers/includes.js +28 -7
  701. package/utils/async-iterable-helpers/index.js +65 -48
  702. package/utils/async-iterable-helpers/interrupt.js +43 -19
  703. package/utils/async-iterable-helpers/is-async-iterable.js +29 -5
  704. package/utils/async-iterable-helpers/last-or-default.js +36 -13
  705. package/utils/async-iterable-helpers/last.js +36 -13
  706. package/utils/async-iterable-helpers/map-many.js +40 -19
  707. package/utils/async-iterable-helpers/map.js +40 -19
  708. package/utils/async-iterable-helpers/materialize.js +42 -21
  709. package/utils/async-iterable-helpers/metadata.js +58 -38
  710. package/utils/async-iterable-helpers/multiplex.js +44 -23
  711. package/utils/async-iterable-helpers/observable-iterable.js +53 -31
  712. package/utils/async-iterable-helpers/pairwise.js +44 -26
  713. package/utils/async-iterable-helpers/parallel/feed.js +45 -24
  714. package/utils/async-iterable-helpers/parallel/filter.js +31 -8
  715. package/utils/async-iterable-helpers/parallel/for-each.js +44 -21
  716. package/utils/async-iterable-helpers/parallel/group.js +32 -9
  717. package/utils/async-iterable-helpers/parallel/index.js +24 -7
  718. package/utils/async-iterable-helpers/parallel/map.js +29 -6
  719. package/utils/async-iterable-helpers/parallel/tap.js +29 -6
  720. package/utils/async-iterable-helpers/parallel/types.js +16 -1
  721. package/utils/async-iterable-helpers/reduce.js +46 -31
  722. package/utils/async-iterable-helpers/retry.js +58 -43
  723. package/utils/async-iterable-helpers/single-or-default.js +40 -17
  724. package/utils/async-iterable-helpers/single.js +42 -19
  725. package/utils/async-iterable-helpers/skip.js +26 -3
  726. package/utils/async-iterable-helpers/sort.js +29 -6
  727. package/utils/async-iterable-helpers/take-until.js +49 -32
  728. package/utils/async-iterable-helpers/take-while.js +46 -29
  729. package/utils/async-iterable-helpers/take.js +33 -10
  730. package/utils/async-iterable-helpers/tap.js +40 -19
  731. package/utils/async-iterable-helpers/throttle.js +30 -9
  732. package/utils/async-iterable-helpers/to-array.js +33 -10
  733. package/utils/async-iterable-helpers/to-async-iterable-iterator.js +59 -40
  734. package/utils/async-iterable-helpers/to-async-iterator.js +54 -32
  735. package/utils/async-iterable-helpers/to-set.js +33 -10
  736. package/utils/async-iterable-helpers/to-sync-iterable.js +27 -6
  737. package/utils/async-iterable-helpers/types.js +16 -1
  738. package/utils/async-iterable-helpers/while.js +46 -25
  739. package/utils/async-iterator-iterable-iterator.js +62 -41
  740. package/utils/backoff.js +109 -109
  741. package/utils/base64.js +140 -153
  742. package/utils/benchmark.js +107 -114
  743. package/utils/binary-search.js +87 -70
  744. package/utils/binary.js +61 -50
  745. package/utils/cancellation-token.js +140 -120
  746. package/utils/clone.js +64 -43
  747. package/utils/comparison.js +98 -76
  748. package/utils/compression.js +118 -107
  749. package/utils/config-parser.js +48 -21
  750. package/utils/crc32.js +42 -20
  751. package/utils/cryptography.js +121 -163
  752. package/utils/date-time.js +138 -102
  753. package/utils/encoding.js +60 -62
  754. package/utils/enum.js +53 -27
  755. package/utils/equals.js +119 -103
  756. package/utils/event-loop.js +39 -19
  757. package/utils/factory-map.js +75 -53
  758. package/utils/feedable-async-iterable.js +70 -47
  759. package/utils/file-reader.js +41 -15
  760. package/utils/format-error.js +57 -36
  761. package/utils/format.js +53 -32
  762. package/utils/function/index.js +19 -2
  763. package/utils/function/memoize.js +53 -38
  764. package/utils/function/throttle.js +48 -26
  765. package/utils/helpers.js +102 -93
  766. package/utils/image.js +88 -62
  767. package/utils/index.js +65 -48
  768. package/utils/iterable-helpers/all.js +31 -8
  769. package/utils/iterable-helpers/any.js +31 -8
  770. package/utils/iterable-helpers/assert.js +30 -7
  771. package/utils/iterable-helpers/batch.js +34 -11
  772. package/utils/iterable-helpers/concat.js +27 -4
  773. package/utils/iterable-helpers/default-if-empty.js +32 -9
  774. package/utils/iterable-helpers/deferred.js +25 -2
  775. package/utils/iterable-helpers/difference.js +45 -21
  776. package/utils/iterable-helpers/distinct.js +32 -9
  777. package/utils/iterable-helpers/drain.js +26 -4
  778. package/utils/iterable-helpers/filter.js +30 -7
  779. package/utils/iterable-helpers/first-or-default.js +30 -8
  780. package/utils/iterable-helpers/first.js +30 -8
  781. package/utils/iterable-helpers/for-each.js +28 -5
  782. package/utils/iterable-helpers/group-single.js +26 -3
  783. package/utils/iterable-helpers/group-to-map.js +32 -9
  784. package/utils/iterable-helpers/group-to-single-map.js +33 -10
  785. package/utils/iterable-helpers/group.js +26 -3
  786. package/utils/iterable-helpers/includes.js +26 -3
  787. package/utils/iterable-helpers/index.js +56 -39
  788. package/utils/iterable-helpers/is-iterable.js +29 -5
  789. package/utils/iterable-helpers/last-or-default.js +36 -13
  790. package/utils/iterable-helpers/last.js +36 -13
  791. package/utils/iterable-helpers/map-many.js +29 -6
  792. package/utils/iterable-helpers/map.js +29 -6
  793. package/utils/iterable-helpers/materialize.js +25 -2
  794. package/utils/iterable-helpers/metadata.js +38 -16
  795. package/utils/iterable-helpers/pairwise.js +33 -11
  796. package/utils/iterable-helpers/range.js +27 -4
  797. package/utils/iterable-helpers/reduce.js +33 -11
  798. package/utils/iterable-helpers/single-or-default.js +37 -14
  799. package/utils/iterable-helpers/single.js +40 -17
  800. package/utils/iterable-helpers/skip.js +29 -6
  801. package/utils/iterable-helpers/sort.js +27 -4
  802. package/utils/iterable-helpers/take-until.js +31 -8
  803. package/utils/iterable-helpers/take-while.js +33 -10
  804. package/utils/iterable-helpers/take.js +33 -10
  805. package/utils/iterable-helpers/tap.js +29 -6
  806. package/utils/iterable-helpers/types.js +16 -1
  807. package/utils/iterable-helpers/while.js +31 -8
  808. package/utils/jwt.js +100 -77
  809. package/utils/map.js +62 -35
  810. package/utils/math.js +64 -102
  811. package/utils/merge.js +45 -26
  812. package/utils/middleware.js +60 -36
  813. package/utils/moving-metric.js +188 -155
  814. package/utils/noop.js +27 -4
  815. package/utils/object/decycle.js +78 -57
  816. package/utils/object/dereference.js +44 -46
  817. package/utils/object/forward-ref.js +73 -57
  818. package/utils/object/index.js +24 -7
  819. package/utils/object/lazy-property.js +96 -81
  820. package/utils/object/merge.js +70 -48
  821. package/utils/object/object.js +136 -106
  822. package/utils/object/property-name.js +72 -69
  823. package/utils/ordered-feedable-async-iterable.js +65 -42
  824. package/utils/patch-worker.js +90 -69
  825. package/utils/patterns.js +29 -7
  826. package/utils/periodic-reporter.js +82 -60
  827. package/utils/periodic-sampler.js +91 -67
  828. package/utils/provider-function-iterable.js +48 -26
  829. package/utils/proxy.js +42 -17
  830. package/utils/random.js +50 -40
  831. package/utils/reflection.js +41 -13
  832. package/utils/repl.js +33 -14
  833. package/utils/set.js +62 -36
  834. package/utils/singleton.js +41 -18
  835. package/utils/sort.js +77 -53
  836. package/utils/stream/finalize-stream.js +62 -43
  837. package/utils/stream/index.js +23 -6
  838. package/utils/stream/readable-stream-adapter.js +57 -35
  839. package/utils/stream/readable-stream-from-promise.js +28 -7
  840. package/utils/stream/size-limited-stream.js +35 -12
  841. package/utils/stream/stream-helper-types.js +16 -1
  842. package/utils/stream/stream-reader.js +52 -30
  843. package/utils/string/hypenate.js +25 -2
  844. package/utils/string/index.js +20 -3
  845. package/utils/string/title-case.js +26 -6
  846. package/utils/string/trim.js +32 -9
  847. package/utils/throw.js +30 -7
  848. package/utils/timer.js +91 -70
  849. package/utils/timing.js +80 -52
  850. package/utils/type-guards.js +1076 -253
  851. package/utils/type-of.js +43 -25
  852. package/utils/units.js +124 -53
  853. package/utils/url-builder.js +68 -47
  854. package/utils/value-or-provider.js +29 -6
  855. package/utils/z-base32.js +63 -42
  856. package/web-types.js +16 -1
  857. package/container/container.js +0 -428
  858. package/container/provider.js +0 -29
  859. package/container/resolve-chain.js +0 -80
  860. package/container/resolve.error.js +0 -11
  861. package/container/type-info.js +0 -1
  862. package/container/types.js +0 -1
  863. package/container/utils.js +0 -20
  864. package/data-structures/set.js +0 -56
  865. /package/{container → _container}/container.d.ts +0 -0
  866. /package/{container → _container}/provider.d.ts +0 -0
  867. /package/{container → _container}/resolve-chain.d.ts +0 -0
  868. /package/{container → _container}/resolve.error.d.ts +0 -0
  869. /package/{container → _container}/type-info.d.ts +0 -0
  870. /package/{container → _container}/types.d.ts +0 -0
  871. /package/{container → _container}/utils.d.ts +0 -0
package/utils/encoding.js CHANGED
@@ -1,70 +1,68 @@
1
- import { AssertionError } from '../error/assertion.error.js';
2
- import { createArray } from './array/array.js';
3
- import { toUint8Array } from './binary.js';
4
- import { isUndefined } from './type-guards.js';
5
- const byteToHex = createArray(2 ** 8, (i) => i).map((value) => value.toString(16).padStart(2, '0'));
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 encoding_exports = {};
20
+ __export(encoding_exports, {
21
+ decodeHex: () => decodeHex,
22
+ decodeText: () => decodeText,
23
+ decodeTextStream: () => decodeTextStream,
24
+ encodeHex: () => encodeHex,
25
+ encodeUtf8: () => encodeUtf8,
26
+ encodeUtf8Stream: () => encodeUtf8Stream
27
+ });
28
+ module.exports = __toCommonJS(encoding_exports);
29
+ var import_assertion_error = require("../error/assertion.error.js");
30
+ var import_array = require("./array/array.js");
31
+ var import_binary = require("./binary.js");
32
+ var import_type_guards = require("./type-guards.js");
33
+ const byteToHex = (0, import_array.createArray)(2 ** 8, (i) => i).map((value) => value.toString(16).padStart(2, "0"));
6
34
  const hexToByte = new Map(byteToHex.map((hex, value) => [hex, value]));
7
- /**
8
- * encodes text to utf8
9
- * @param text text to encode
10
- * @returns utf8 encoded text
11
- */
12
- export function encodeUtf8(text) {
13
- const encoder = new TextEncoder();
14
- return encoder.encode(text);
35
+ function encodeUtf8(text) {
36
+ const encoder = new TextEncoder();
37
+ return encoder.encode(text);
15
38
  }
16
- /**
17
- * encodes text stream to utf8 bytes stream
18
- */
19
- export function encodeUtf8Stream() {
20
- return new TextEncoderStream();
39
+ function encodeUtf8Stream() {
40
+ return new TextEncoderStream();
21
41
  }
22
- /**
23
- * decodes buffer to string
24
- * @param buffer buffer to decode
25
- * @param encoding encoding, defaults to utf8
26
- * @returns decoded string
27
- */
28
- export function decodeText(buffer, encoding) {
29
- const decoder = new TextDecoder(encoding, { fatal: true });
30
- return decoder.decode(buffer);
42
+ function decodeText(buffer, encoding) {
43
+ const decoder = new TextDecoder(encoding, { fatal: true });
44
+ return decoder.decode(buffer);
31
45
  }
32
- /**
33
- * transforms binary stream to string stream
34
- * @param encoding encoding, defaults to utf8
35
- * @returns stream of decoded string
36
- */
37
- export function decodeTextStream(encoding) {
38
- return new TextDecoderStream(encoding, { fatal: true });
46
+ function decodeTextStream(encoding) {
47
+ return new TextDecoderStream(encoding, { fatal: true });
39
48
  }
40
- /**
41
- * encodes buffer to hex
42
- * @param buffer buffer to encode
43
- * @returns hex encoded string
44
- */
45
- export function encodeHex(buffer) {
46
- const bytes = toUint8Array(buffer);
47
- let result = '';
48
- // eslint-disable-next-line @typescript-eslint/prefer-for-of
49
- for (let i = 0; i < bytes.length; i++) {
50
- result += byteToHex[bytes[i]];
51
- }
52
- return result;
49
+ function encodeHex(buffer) {
50
+ const bytes = (0, import_binary.toUint8Array)(buffer);
51
+ let result = "";
52
+ for (let i = 0; i < bytes.length; i++) {
53
+ result += byteToHex[bytes[i]];
54
+ }
55
+ return result;
53
56
  }
54
- /**
55
- * decodes hex string to buffer
56
- * @param hex hex string to decode
57
- * @returns decoded buffer
58
- */
59
- export function decodeHex(hex) {
60
- const bytes = new Uint8Array(hex.length / 2);
61
- for (let i = 0; i < hex.length; i += 2) {
62
- const hexPart = hex.substring(i, i + 2);
63
- const byte = hexToByte.get(hexPart);
64
- if (isUndefined(byte)) {
65
- throw new AssertionError(`invalid hex string at position ${i}`);
66
- }
67
- bytes[i / 2] = byte;
57
+ function decodeHex(hex) {
58
+ const bytes = new Uint8Array(hex.length / 2);
59
+ for (let i = 0; i < hex.length; i += 2) {
60
+ const hexPart = hex.substring(i, i + 2);
61
+ const byte = hexToByte.get(hexPart);
62
+ if ((0, import_type_guards.isUndefined)(byte)) {
63
+ throw new import_assertion_error.AssertionError(`invalid hex string at position ${i}`);
68
64
  }
69
- return bytes;
65
+ bytes[i / 2] = byte;
66
+ }
67
+ return bytes;
70
68
  }
package/utils/enum.js CHANGED
@@ -1,34 +1,60 @@
1
- import { randomItem } from './array/array.js';
2
- import { memoizeSingle } from './function/memoize.js';
3
- import { objectEntries } from './object/object.js';
4
- import { isNumber } from './type-guards.js';
5
- const memoizedEnumEntries = memoizeSingle(_enumEntries, { weak: true });
6
- const memoizedEnumKeys = memoizeSingle(_enumKeys, { weak: true });
7
- const memoizedEnumValues = memoizeSingle(_enumValues, { weak: true });
8
- export function enumValueName(enumeration, value) {
9
- return isNumber(value) ? enumeration[value]?.toString() ?? value.toString() : value;
10
- }
11
- export function enumEntries(enumeration) {
12
- return memoizedEnumEntries(enumeration);
13
- }
14
- export function enumKeys(enumeration) {
15
- return memoizedEnumKeys(enumeration);
16
- }
17
- export function enumValues(enumeration) {
18
- return memoizedEnumValues(enumeration);
19
- }
20
- export function randomEnumValue(enumeration) {
21
- return randomItem(enumValues(enumeration));
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 enum_exports = {};
20
+ __export(enum_exports, {
21
+ enumEntries: () => enumEntries,
22
+ enumKeys: () => enumKeys,
23
+ enumValueName: () => enumValueName,
24
+ enumValues: () => enumValues,
25
+ randomEnumValue: () => randomEnumValue
26
+ });
27
+ module.exports = __toCommonJS(enum_exports);
28
+ var import_array = require("./array/array.js");
29
+ var import_memoize = require("./function/memoize.js");
30
+ var import_object = require("./object/object.js");
31
+ var import_type_guards = require("./type-guards.js");
32
+ const memoizedEnumEntries = (0, import_memoize.memoizeSingle)(_enumEntries, { weak: true });
33
+ const memoizedEnumKeys = (0, import_memoize.memoizeSingle)(_enumKeys, { weak: true });
34
+ const memoizedEnumValues = (0, import_memoize.memoizeSingle)(_enumValues, { weak: true });
35
+ function enumValueName(enumeration, value) {
36
+ return (0, import_type_guards.isNumber)(value) ? enumeration[value]?.toString() ?? value.toString() : value;
37
+ }
38
+ function enumEntries(enumeration) {
39
+ return memoizedEnumEntries(enumeration);
40
+ }
41
+ function enumKeys(enumeration) {
42
+ return memoizedEnumKeys(enumeration);
43
+ }
44
+ function enumValues(enumeration) {
45
+ return memoizedEnumValues(enumeration);
46
+ }
47
+ function randomEnumValue(enumeration) {
48
+ return (0, import_array.randomItem)(enumValues(enumeration));
22
49
  }
23
50
  function _enumEntries(enumeration) {
24
- return objectEntries(enumeration)
25
- .filter((entry) => Number.isNaN(Number(entry[0])));
51
+ return (0, import_object.objectEntries)(enumeration).filter((entry) => Number.isNaN(Number(entry[0])));
26
52
  }
27
53
  function _enumKeys(enumeration) {
28
- const entries = enumEntries(enumeration);
29
- return entries.map((entry) => entry[0]);
54
+ const entries = enumEntries(enumeration);
55
+ return entries.map((entry) => entry[0]);
30
56
  }
31
57
  function _enumValues(enumeration) {
32
- const entries = enumEntries(enumeration);
33
- return entries.map((entry) => entry[1]);
58
+ const entries = enumEntries(enumeration);
59
+ return entries.map((entry) => entry[1]);
34
60
  }
package/utils/equals.js CHANGED
@@ -1,115 +1,131 @@
1
- /* eslint-disable @typescript-eslint/ban-types */
2
- import { toArray } from './array/array.js';
3
- import { toUint8Array } from './binary.js';
4
- import { compareByValue } from './comparison.js';
5
- import { sort } from './iterable-helpers/sort.js';
6
- import { isDefined, isNotNull, isNull } from './type-guards.js';
7
- const equalsSymbol = Symbol('equals');
8
- // eslint-disable-next-line @typescript-eslint/no-redeclare, @typescript-eslint/naming-convention
9
- export const Equals = {
10
- symbol: equalsSymbol
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 });
11
9
  };
12
- export function strictEquals(a, b) {
13
- return a === b;
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 equals_exports = {};
20
+ __export(equals_exports, {
21
+ Equals: () => Equals,
22
+ arrayEquals: () => arrayEquals,
23
+ binaryEquals: () => binaryEquals,
24
+ equals: () => equals,
25
+ strictEquals: () => strictEquals
26
+ });
27
+ module.exports = __toCommonJS(equals_exports);
28
+ var import_array = require("./array/array.js");
29
+ var import_binary = require("./binary.js");
30
+ var import_comparison = require("./comparison.js");
31
+ var import_sort = require("./iterable-helpers/sort.js");
32
+ var import_type_guards = require("./type-guards.js");
33
+ const equalsSymbol = Symbol("equals");
34
+ const Equals = {
35
+ symbol: equalsSymbol
36
+ };
37
+ function strictEquals(a, b) {
38
+ return a === b;
14
39
  }
15
- export function arrayEquals(a, b, options) {
16
- const _sort = options?.sort ?? false;
17
- const comparator = options?.comparator ?? equals;
18
- if (a.length != b.length) {
19
- return false;
40
+ function arrayEquals(a, b, options) {
41
+ const _sort = options?.sort ?? false;
42
+ const comparator = options?.comparator ?? equals;
43
+ if (a.length != b.length) {
44
+ return false;
45
+ }
46
+ const c = _sort != false ? (0, import_array.toArray)((0, import_sort.sort)(a, _sort)) : a;
47
+ const d = _sort != false ? (0, import_array.toArray)((0, import_sort.sort)(b, _sort)) : b;
48
+ for (let i = 0; i < c.length; i++) {
49
+ const itemEquals = comparator(c[i], d[i]);
50
+ if (!itemEquals) {
51
+ return false;
20
52
  }
21
- const c = _sort != false ? toArray(sort(a, _sort)) : a;
22
- const d = _sort != false ? toArray(sort(b, _sort)) : b;
23
- for (let i = 0; i < c.length; i++) {
24
- const itemEquals = comparator(c[i], d[i]);
25
- if (!itemEquals) {
26
- return false;
27
- }
28
- }
29
- return true;
53
+ }
54
+ return true;
30
55
  }
31
- const allowedEqualsCoerceStringsTypes = ['string', 'number', 'boolean', 'bigint'];
32
- export function equals(a, b, options = {}, visitedNodes = new Set()) {
33
- if (a === b) {
34
- return true;
56
+ const allowedEqualsCoerceStringsTypes = ["string", "number", "boolean", "bigint"];
57
+ function equals(a, b, options = {}, visitedNodes = /* @__PURE__ */ new Set()) {
58
+ if (a === b) {
59
+ return true;
60
+ }
61
+ const aType = typeof a;
62
+ const bType = typeof b;
63
+ if (aType != bType) {
64
+ if ((0, import_type_guards.isDefined)(options.coerceStrings) && allowedEqualsCoerceStringsTypes.includes(aType) && allowedEqualsCoerceStringsTypes.includes(bType)) {
65
+ return a.toString() == b.toString();
35
66
  }
36
- const aType = typeof a;
37
- const bType = typeof b;
38
- if (aType != bType) {
39
- if (isDefined(options.coerceStrings) && allowedEqualsCoerceStringsTypes.includes(aType) && allowedEqualsCoerceStringsTypes.includes(bType)) {
40
- // eslint-disable-next-line @typescript-eslint/no-base-to-string
41
- return a.toString() == b.toString();
42
- }
67
+ return false;
68
+ }
69
+ switch (aType) {
70
+ case "function":
71
+ return options.deep == true ? a.toString() == b.toString() : false;
72
+ case "object":
73
+ if ((0, import_type_guards.isNull)(a) || (0, import_type_guards.isNull)(b)) {
43
74
  return false;
44
- }
45
- switch (aType) {
46
- case 'function':
47
- return (options.deep == true)
48
- ? a.toString() == b.toString()
49
- : false;
50
- case 'object':
51
- if (isNull(a) || isNull(b)) { // hasn't passed equals check at top, so one must be a true object
52
- return false;
53
- }
54
- if (visitedNodes.has(a)) {
55
- return true;
56
- }
57
- visitedNodes.add(a);
58
- const aPrototype = Object.getPrototypeOf(a);
59
- const bPrototype = Object.getPrototypeOf(b);
60
- if (aPrototype !== bPrototype) {
61
- return false;
62
- }
63
- if (Array.isArray(a)) {
64
- return (options.arrayDeep != false && (options.deep == true || options.arrayDeep == true))
65
- ? arrayEquals(a, b, { sort: (options.sortArray == true) ? compareByValue : undefined, comparator: (x, y) => equals(x, y, options, visitedNodes) })
66
- : a === b;
67
- }
68
- if (Equals.symbol in a) {
69
- return a[Equals.symbol](b);
70
- }
71
- if (Equals.symbol in b) {
72
- return b[Equals.symbol](a);
73
- }
74
- if ((aPrototype != Object.prototype) && isNotNull(aPrototype)) { // checking a is enough, because b must have equal prototype (checked above)
75
- throw new Error('Equals only supports literal objects, arrays, primitives and Equals interface implementations.');
76
- }
77
- if (options.deep == false) {
78
- return false;
79
- }
80
- return objectEquals(a, b, options, visitedNodes);
81
- default:
82
- return a === b;
83
- }
75
+ }
76
+ if (visitedNodes.has(a)) {
77
+ return true;
78
+ }
79
+ visitedNodes.add(a);
80
+ const aPrototype = Object.getPrototypeOf(a);
81
+ const bPrototype = Object.getPrototypeOf(b);
82
+ if (aPrototype !== bPrototype) {
83
+ return false;
84
+ }
85
+ if (Array.isArray(a)) {
86
+ return options.arrayDeep != false && (options.deep == true || options.arrayDeep == true) ? arrayEquals(a, b, { sort: options.sortArray == true ? import_comparison.compareByValue : void 0, comparator: (x, y) => equals(x, y, options, visitedNodes) }) : a === b;
87
+ }
88
+ if (Equals.symbol in a) {
89
+ return a[Equals.symbol](b);
90
+ }
91
+ if (Equals.symbol in b) {
92
+ return b[Equals.symbol](a);
93
+ }
94
+ if (aPrototype != Object.prototype && (0, import_type_guards.isNotNull)(aPrototype)) {
95
+ throw new Error("Equals only supports literal objects, arrays, primitives and Equals interface implementations.");
96
+ }
97
+ if (options.deep == false) {
98
+ return false;
99
+ }
100
+ return objectEquals(a, b, options, visitedNodes);
101
+ default:
102
+ return a === b;
103
+ }
84
104
  }
85
- // eslint-disable-next-line max-statements, max-lines-per-function
86
105
  function objectEquals(a, b, options, visitedNodes) {
87
- const aProperties = Object.getOwnPropertyNames(a);
88
- const bProperties = Object.getOwnPropertyNames(b);
89
- if (!arrayEquals(aProperties, bProperties, { sort: compareByValue })) {
90
- return false;
91
- }
92
- for (const property of aProperties) {
93
- const eq = equals(a[property], b[property], options, visitedNodes);
94
- if (!eq) {
95
- return false;
96
- }
106
+ const aProperties = Object.getOwnPropertyNames(a);
107
+ const bProperties = Object.getOwnPropertyNames(b);
108
+ if (!arrayEquals(aProperties, bProperties, { sort: import_comparison.compareByValue })) {
109
+ return false;
110
+ }
111
+ for (const property of aProperties) {
112
+ const eq = equals(a[property], b[property], options, visitedNodes);
113
+ if (!eq) {
114
+ return false;
97
115
  }
98
- return true;
116
+ }
117
+ return true;
99
118
  }
100
- /**
101
- * compares to binary types for equal content
102
- */
103
- export function binaryEquals(bufferA, bufferB) {
104
- const a = toUint8Array(bufferA, false);
105
- const b = toUint8Array(bufferB, false);
106
- if (a.length != b.length) {
107
- return false;
119
+ function binaryEquals(bufferA, bufferB) {
120
+ const a = (0, import_binary.toUint8Array)(bufferA, false);
121
+ const b = (0, import_binary.toUint8Array)(bufferB, false);
122
+ if (a.length != b.length) {
123
+ return false;
124
+ }
125
+ for (let i = 0; i < a.length; i++) {
126
+ if (a[i] != b[i]) {
127
+ return false;
108
128
  }
109
- for (let i = 0; i < a.length; i++) {
110
- if (a[i] != b[i]) {
111
- return false;
112
- }
113
- }
114
- return true;
129
+ }
130
+ return true;
115
131
  }
@@ -1,22 +1,42 @@
1
- import { formatDuration } from './format.js';
2
- import { AggregationMode, PeriodicSampler } from './periodic-sampler.js';
3
- import { Timer } from './timer.js';
4
- export async function measureEventLoopDelay() {
5
- return new Promise((resolve) => {
6
- const stopwatch = new Timer();
7
- setImmediate(() => {
8
- stopwatch.start();
9
- // inner setImmediate, to measure an full event-loop-cycle
10
- setImmediate(() => resolve(stopwatch.milliseconds));
11
- });
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 event_loop_exports = {};
20
+ __export(event_loop_exports, {
21
+ measureEventLoopDelay: () => measureEventLoopDelay,
22
+ runEventLoopWatcher: () => runEventLoopWatcher
23
+ });
24
+ module.exports = __toCommonJS(event_loop_exports);
25
+ var import_format = require("./format.js");
26
+ var import_periodic_sampler = require("./periodic-sampler.js");
27
+ var import_timer = require("./timer.js");
28
+ async function measureEventLoopDelay() {
29
+ return new Promise((resolve) => {
30
+ const stopwatch = new import_timer.Timer();
31
+ setImmediate(() => {
32
+ stopwatch.start();
33
+ setImmediate(() => resolve(stopwatch.milliseconds));
12
34
  });
35
+ });
13
36
  }
14
- export function runEventLoopWatcher(logger, cancellationToken) {
15
- const sampler = new PeriodicSampler(measureEventLoopDelay, 50);
16
- sampler
17
- .watch(0, 100, AggregationMode.ThirdQuartile)
18
- .subscribe((delay) => logger.debug(`eventloop: ${formatDuration(delay, 2)}`));
19
- sampler.start();
20
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
21
- cancellationToken.then(async () => sampler.stop());
37
+ function runEventLoopWatcher(logger, cancellationToken) {
38
+ const sampler = new import_periodic_sampler.PeriodicSampler(measureEventLoopDelay, 50);
39
+ sampler.watch(0, 100, import_periodic_sampler.AggregationMode.ThirdQuartile).subscribe((delay) => logger.debug(`eventloop: ${(0, import_format.formatDuration)(delay, 2)}`));
40
+ sampler.start();
41
+ cancellationToken.then(async () => sampler.stop());
22
42
  }
@@ -1,55 +1,77 @@
1
- /** same as {@link Map}, except that it will build the value with the provided factory on {@link get} if it doesnt exist */
2
- export class FactoryMap {
3
- factory;
4
- [Symbol.toStringTag];
5
- backingMap;
6
- get size() {
7
- return this.backingMap.size;
8
- }
9
- constructor(factory, backingMap) {
10
- this.factory = factory;
11
- this[Symbol.toStringTag] = 'FactoryMap';
12
- this.backingMap = backingMap ?? new Map();
13
- }
14
- clear() {
15
- this.backingMap.clear();
16
- }
17
- has(key) {
18
- return this.backingMap.has(key);
19
- }
20
- get(key) {
21
- const has = this.backingMap.has(key);
22
- if (has) {
23
- return this.backingMap.get(key);
24
- }
25
- const value = this.factory(key);
26
- this.backingMap.set(key, value);
27
- return value;
28
- }
29
- getWithoutBuild(key) {
30
- return this.backingMap.get(key);
31
- }
32
- set(key, value) {
33
- this.backingMap.set(key, value);
34
- return this;
35
- }
36
- delete(key) {
37
- return this.backingMap.delete(key);
38
- }
39
- forEach(callback, thisArg) {
40
- const boundCallback = callback.bind(thisArg);
41
- this.backingMap.forEach((value, key) => boundCallback(value, key, this));
42
- }
43
- *[Symbol.iterator]() {
44
- yield* this.backingMap[Symbol.iterator]();
45
- }
46
- *entries() {
47
- yield* this.backingMap.entries();
48
- }
49
- *keys() {
50
- yield* this.backingMap.keys();
51
- }
52
- *values() {
53
- yield* this.backingMap.values();
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 factory_map_exports = {};
20
+ __export(factory_map_exports, {
21
+ FactoryMap: () => FactoryMap
22
+ });
23
+ module.exports = __toCommonJS(factory_map_exports);
24
+ class FactoryMap {
25
+ factory;
26
+ [Symbol.toStringTag];
27
+ backingMap;
28
+ get size() {
29
+ return this.backingMap.size;
30
+ }
31
+ constructor(factory, backingMap) {
32
+ this.factory = factory;
33
+ this[Symbol.toStringTag] = "FactoryMap";
34
+ this.backingMap = backingMap ?? /* @__PURE__ */ new Map();
35
+ }
36
+ clear() {
37
+ this.backingMap.clear();
38
+ }
39
+ has(key) {
40
+ return this.backingMap.has(key);
41
+ }
42
+ get(key) {
43
+ const has = this.backingMap.has(key);
44
+ if (has) {
45
+ return this.backingMap.get(key);
54
46
  }
47
+ const value = this.factory(key);
48
+ this.backingMap.set(key, value);
49
+ return value;
50
+ }
51
+ getWithoutBuild(key) {
52
+ return this.backingMap.get(key);
53
+ }
54
+ set(key, value) {
55
+ this.backingMap.set(key, value);
56
+ return this;
57
+ }
58
+ delete(key) {
59
+ return this.backingMap.delete(key);
60
+ }
61
+ forEach(callback, thisArg) {
62
+ const boundCallback = callback.bind(thisArg);
63
+ this.backingMap.forEach((value, key) => boundCallback(value, key, this));
64
+ }
65
+ *[Symbol.iterator]() {
66
+ yield* this.backingMap[Symbol.iterator]();
67
+ }
68
+ *entries() {
69
+ yield* this.backingMap.entries();
70
+ }
71
+ *keys() {
72
+ yield* this.backingMap.keys();
73
+ }
74
+ *values() {
75
+ yield* this.backingMap.values();
76
+ }
55
77
  }