@tstdl/base 0.85.13 → 0.86.0-beta1

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