@tstdl/base 0.87.15 → 0.88.0-alpha2

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