@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
@@ -1,255 +1,234 @@
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 element_controller_exports = {};
20
- __export(element_controller_exports, {
21
- ElementController: () => ElementController
22
- });
23
- module.exports = __toCommonJS(element_controller_exports);
24
- var import_type_guards = require("../utils/type-guards.js");
25
- var import_value_or_provider = require("../utils/value-or-provider.js");
26
- var import_utils = require("./utils.js");
27
- const requiresLocatorBasedController = "Requires a locator based controller";
28
- class ElementController {
29
- locatorOrHandle;
30
- options;
31
- constructor(locatorOrHandle, options = {}) {
32
- this.locatorOrHandle = locatorOrHandle;
33
- this.options = options;
34
- }
35
- async getAll() {
36
- if (!(0, import_utils.isLocator)(this.locatorOrHandle)) {
37
- throw new Error("getAll only works with Locator");
38
- }
39
- const locators = await this.locatorOrHandle.all();
40
- return locators.map((locator) => new ElementController(locator));
41
- }
42
- async getAllHandles() {
43
- if (!(0, import_utils.isLocator)(this.locatorOrHandle)) {
44
- throw new Error("getAllHandles only works with Locator");
45
- }
46
- const handles = await this.locatorOrHandle.elementHandles();
47
- return handles.map((handle) => new ElementController(handle));
48
- }
49
- /**
50
- * Get an controller with elements contained in this and the provided controller.
51
- * Requires locator based controller
52
- * @param elementController
53
- */
54
- and(elementController) {
55
- (0, import_utils.assertLocator)(this.locatorOrHandle, requiresLocatorBasedController);
56
- (0, import_utils.assertLocator)(elementController.locatorOrHandle, requiresLocatorBasedController);
57
- const locator = this.locatorOrHandle.and(elementController.locatorOrHandle);
58
- return new ElementController(locator, this.options);
59
- }
60
- /**
61
- * Get an controller with elements contained in this and the provided controller.
62
- * Requires locator based controller
63
- * @param elementController
64
- */
65
- or(elementController) {
66
- (0, import_utils.assertLocator)(this.locatorOrHandle, requiresLocatorBasedController);
67
- (0, import_utils.assertLocator)(elementController.locatorOrHandle, requiresLocatorBasedController);
68
- const locator = this.locatorOrHandle.or(elementController.locatorOrHandle);
69
- return new ElementController(locator, this.options);
70
- }
71
- /**
72
- * Filter out elements with by provided filter.
73
- * Requires locator based controller.
74
- */
75
- filter(filter) {
76
- (0, import_utils.assertLocator)(this.locatorOrHandle, requiresLocatorBasedController);
77
- const locator = this.locatorOrHandle.filter(convertFilter(filter));
78
- return new ElementController(locator, this.options);
79
- }
80
- /**
81
- * Locate elements in subtree with provided selector/controller and filter.
82
- * Requires locator based controller.
83
- */
84
- locate(selectorOrController, filter) {
85
- (0, import_utils.assertLocator)(this.locatorOrHandle, requiresLocatorBasedController);
86
- const selector = (0, import_type_guards.isString)(selectorOrController) ? selectorOrController : (0, import_utils.assertLocatorPass)(selectorOrController.locatorOrHandle, requiresLocatorBasedController);
87
- const convertedFilter = (0, import_type_guards.isDefined)(filter) ? convertFilter(filter) : void 0;
88
- const locator = this.locatorOrHandle.locator(selector, convertedFilter);
89
- return new ElementController(locator, this.options);
90
- }
91
- first() {
92
- (0, import_utils.assertLocator)(this.locatorOrHandle, requiresLocatorBasedController);
93
- const locator = this.locatorOrHandle.first();
94
- return new ElementController(locator, this.options);
95
- }
96
- last() {
97
- (0, import_utils.assertLocator)(this.locatorOrHandle, requiresLocatorBasedController);
98
- const locator = this.locatorOrHandle.last();
99
- return new ElementController(locator, this.options);
100
- }
101
- nth(index) {
102
- (0, import_utils.assertLocator)(this.locatorOrHandle, requiresLocatorBasedController);
103
- const locator = this.locatorOrHandle.nth(index);
104
- return new ElementController(locator, this.options);
105
- }
106
- async evaluate(fn, argument) {
107
- if ((0, import_utils.isLocator)(this.locatorOrHandle)) {
108
- return this.locatorOrHandle.evaluate(fn, argument);
109
- }
110
- return this.locatorOrHandle.evaluate(fn, argument);
111
- }
112
- /**
113
- * Wait for element state
114
- * @param state some states may only be usable for either locator or handle
115
- * @param options options
116
- */
117
- async waitFor(state = "visible", options) {
118
- if ((0, import_utils.isLocator)(this.locatorOrHandle)) {
119
- return this.locatorOrHandle.waitFor({ state, ...options });
120
- }
121
- return this.locatorOrHandle.waitForElementState(state, options);
122
- }
123
- async boundingBox(options) {
124
- return this.locatorOrHandle.boundingBox({ timeout: options?.timeout ?? 1e3 });
125
- }
126
- async scrollIntoViewIfNeeded(options) {
127
- await this.locatorOrHandle.scrollIntoViewIfNeeded({ timeout: options?.timeout ?? 1e3 });
128
- }
129
- /**
130
- * Counts matching elements for locator based or returns 1 for handle based.
131
- */
132
- async count() {
133
- return (0, import_utils.isLocator)(this.locatorOrHandle) ? this.locatorOrHandle.count() : 1;
134
- }
135
- /**
136
- * Check if element exists
137
- * @param options.state which state is required in order to be deemed existing
138
- * @param options.timeout how long to wait for the element before being deemed not existing (default: 250ms)
139
- */
140
- async exists(options) {
141
- try {
142
- await this.waitFor(options?.state ?? "visible", { timeout: options?.timeout ?? 1e3 });
143
- return true;
144
- } catch (error) {
145
- if (error instanceof Error && error.message.includes("violation")) {
146
- throw error;
147
- }
148
- return false;
149
- }
150
- }
151
- async isVisible() {
152
- return this.locatorOrHandle.isVisible();
153
- }
154
- async isHidden() {
155
- return this.locatorOrHandle.isHidden();
156
- }
157
- async isEnabled() {
158
- return this.locatorOrHandle.isEnabled();
159
- }
160
- async isDisabled() {
161
- return this.locatorOrHandle.isDisabled();
162
- }
163
- async isChecked() {
164
- return this.locatorOrHandle.isChecked();
165
- }
166
- async isEditable() {
167
- return this.locatorOrHandle.isEditable();
168
- }
169
- async clear(options) {
170
- (0, import_utils.assertLocator)(this.locatorOrHandle, requiresLocatorBasedController);
171
- await (0, import_utils.prepareAction)(options);
172
- await this.locatorOrHandle.clear(options);
173
- }
174
- async fill(text, options) {
175
- await (0, import_utils.prepareAction)(options);
176
- await this.locatorOrHandle.fill(text, options);
177
- }
178
- async type(text, options) {
179
- await (0, import_utils.prepareAction)(options);
180
- if ((0, import_type_guards.isUndefined)(this.options.typeDelay)) {
181
- await this.locatorOrHandle.type(text, options);
182
- } else {
183
- for (const char of text) {
184
- await this.locatorOrHandle.type(char, options);
185
- await (0, import_utils.delay)(options?.typeDelay ?? this.options.typeDelay);
186
- }
187
- }
188
- }
189
- async press(key, options) {
190
- await (0, import_utils.prepareAction)(options);
191
- await this.locatorOrHandle.press(key, options);
192
- }
193
- async check(options) {
194
- await (0, import_utils.prepareAction)(options);
195
- await this.locatorOrHandle.check(options);
196
- }
197
- async uncheck(options) {
198
- await (0, import_utils.prepareAction)(options);
199
- await this.locatorOrHandle.uncheck(options);
200
- }
201
- async setChecked(checked, options) {
202
- await (0, import_utils.prepareAction)(options);
203
- await this.locatorOrHandle.setChecked(checked, options);
204
- }
205
- async selectOption(option, options) {
206
- await (0, import_utils.prepareAction)(options);
207
- const selectedOptions = await this.locatorOrHandle.selectOption(option, options);
208
- return selectedOptions;
209
- }
210
- async setInputFiles(files, options) {
211
- await (0, import_utils.prepareAction)(options);
212
- await this.locatorOrHandle.setInputFiles(files, options);
213
- }
214
- async click(options) {
215
- await (0, import_utils.prepareAction)(options);
216
- await this.locatorOrHandle.click({
217
- ...options,
218
- delay: (0, import_value_or_provider.resolveValueOrProvider)(options?.clickDelay)
219
- });
220
- }
221
- async dblclick(options) {
222
- await (0, import_utils.prepareAction)(options);
223
- await this.locatorOrHandle.dblclick({
224
- ...options,
225
- delay: (0, import_value_or_provider.resolveValueOrProvider)(options?.clickDelay)
226
- });
227
- }
228
- async hover(options) {
229
- await (0, import_utils.prepareAction)(options);
230
- await this.locatorOrHandle.hover(options);
231
- }
232
- async focus(options) {
233
- await (0, import_utils.prepareAction)(options);
234
- await this.locatorOrHandle.focus(options);
235
- }
236
- async tap(options) {
237
- await (0, import_utils.prepareAction)(options);
238
- await this.locatorOrHandle.tap(options);
239
- }
240
- async selectText(options) {
241
- await (0, import_utils.prepareAction)(options);
242
- await this.locatorOrHandle.selectText(options);
243
- }
244
- async inputValue(options) {
245
- return this.locatorOrHandle.inputValue(options);
246
- }
1
+ import { isDefined, isString, isUndefined } from '../utils/type-guards.js';
2
+ import { resolveValueOrProvider } from '../utils/value-or-provider.js';
3
+ import { assertLocator, assertLocatorPass, delay, isLocator, prepareAction } from './utils.js';
4
+ const requiresLocatorBasedController = 'Requires a locator based controller';
5
+ export class ElementController {
6
+ locatorOrHandle;
7
+ options;
8
+ constructor(locatorOrHandle, options = {}) {
9
+ this.locatorOrHandle = locatorOrHandle;
10
+ this.options = options;
11
+ }
12
+ async getAll() {
13
+ if (!isLocator(this.locatorOrHandle)) {
14
+ throw new Error('getAll only works with Locator');
15
+ }
16
+ const locators = await this.locatorOrHandle.all();
17
+ return locators.map((locator) => new ElementController(locator));
18
+ }
19
+ async getAllHandles() {
20
+ if (!isLocator(this.locatorOrHandle)) {
21
+ throw new Error('getAllHandles only works with Locator');
22
+ }
23
+ const handles = await this.locatorOrHandle.elementHandles();
24
+ return handles.map((handle) => new ElementController(handle));
25
+ }
26
+ /**
27
+ * Get an controller with elements contained in this and the provided controller.
28
+ * Requires locator based controller
29
+ * @param elementController
30
+ */
31
+ and(elementController) {
32
+ assertLocator(this.locatorOrHandle, requiresLocatorBasedController);
33
+ assertLocator(elementController.locatorOrHandle, requiresLocatorBasedController);
34
+ const locator = this.locatorOrHandle.and(elementController.locatorOrHandle);
35
+ return new ElementController(locator, this.options);
36
+ }
37
+ /**
38
+ * Get an controller with elements contained in this and the provided controller.
39
+ * Requires locator based controller
40
+ * @param elementController
41
+ */
42
+ or(elementController) {
43
+ assertLocator(this.locatorOrHandle, requiresLocatorBasedController);
44
+ assertLocator(elementController.locatorOrHandle, requiresLocatorBasedController);
45
+ const locator = this.locatorOrHandle.or(elementController.locatorOrHandle);
46
+ return new ElementController(locator, this.options);
47
+ }
48
+ /**
49
+ * Filter out elements with by provided filter.
50
+ * Requires locator based controller.
51
+ */
52
+ filter(filter) {
53
+ assertLocator(this.locatorOrHandle, requiresLocatorBasedController);
54
+ const locator = this.locatorOrHandle.filter(convertFilter(filter));
55
+ return new ElementController(locator, this.options);
56
+ }
57
+ /**
58
+ * Locate elements in subtree with provided selector/controller and filter.
59
+ * Requires locator based controller.
60
+ */
61
+ locate(selectorOrController, filter) {
62
+ assertLocator(this.locatorOrHandle, requiresLocatorBasedController);
63
+ const selector = isString(selectorOrController) ? selectorOrController : assertLocatorPass(selectorOrController.locatorOrHandle, requiresLocatorBasedController);
64
+ const convertedFilter = isDefined(filter) ? convertFilter(filter) : undefined;
65
+ const locator = this.locatorOrHandle.locator(selector, convertedFilter);
66
+ return new ElementController(locator, this.options);
67
+ }
68
+ first() {
69
+ assertLocator(this.locatorOrHandle, requiresLocatorBasedController);
70
+ const locator = this.locatorOrHandle.first();
71
+ return new ElementController(locator, this.options);
72
+ }
73
+ last() {
74
+ assertLocator(this.locatorOrHandle, requiresLocatorBasedController);
75
+ const locator = this.locatorOrHandle.last();
76
+ return new ElementController(locator, this.options);
77
+ }
78
+ nth(index) {
79
+ assertLocator(this.locatorOrHandle, requiresLocatorBasedController);
80
+ const locator = this.locatorOrHandle.nth(index);
81
+ return new ElementController(locator, this.options);
82
+ }
83
+ async evaluate(fn, argument) {
84
+ if (isLocator(this.locatorOrHandle)) {
85
+ return this.locatorOrHandle.evaluate(fn, argument);
86
+ }
87
+ return this.locatorOrHandle.evaluate(fn, argument);
88
+ }
89
+ /**
90
+ * Wait for element state
91
+ * @param state some states may only be usable for either locator or handle
92
+ * @param options options
93
+ */
94
+ async waitFor(state = 'visible', options) {
95
+ if (isLocator(this.locatorOrHandle)) {
96
+ return this.locatorOrHandle.waitFor({ state: state, ...options });
97
+ }
98
+ return this.locatorOrHandle.waitForElementState(state, options);
99
+ }
100
+ async boundingBox(options) {
101
+ return this.locatorOrHandle.boundingBox({ timeout: options?.timeout ?? 1000 });
102
+ }
103
+ async scrollIntoViewIfNeeded(options) {
104
+ await this.locatorOrHandle.scrollIntoViewIfNeeded({ timeout: options?.timeout ?? 1000 });
105
+ }
106
+ /**
107
+ * Counts matching elements for locator based or returns 1 for handle based.
108
+ */
109
+ async count() {
110
+ return isLocator(this.locatorOrHandle) ? this.locatorOrHandle.count() : 1;
111
+ }
112
+ /**
113
+ * Check if element exists
114
+ * @param options.state which state is required in order to be deemed existing
115
+ * @param options.timeout how long to wait for the element before being deemed not existing (default: 250ms)
116
+ */
117
+ async exists(options) {
118
+ try {
119
+ await this.waitFor(options?.state ?? 'visible', { timeout: options?.timeout ?? 1000 });
120
+ return true;
121
+ }
122
+ catch (error) {
123
+ if ((error instanceof Error) && error.message.includes('violation')) {
124
+ throw error;
125
+ }
126
+ return false;
127
+ }
128
+ }
129
+ async isVisible() {
130
+ return this.locatorOrHandle.isVisible();
131
+ }
132
+ async isHidden() {
133
+ return this.locatorOrHandle.isHidden();
134
+ }
135
+ async isEnabled() {
136
+ return this.locatorOrHandle.isEnabled();
137
+ }
138
+ async isDisabled() {
139
+ return this.locatorOrHandle.isDisabled();
140
+ }
141
+ async isChecked() {
142
+ return this.locatorOrHandle.isChecked();
143
+ }
144
+ async isEditable() {
145
+ return this.locatorOrHandle.isEditable();
146
+ }
147
+ async clear(options) {
148
+ assertLocator(this.locatorOrHandle, requiresLocatorBasedController);
149
+ await prepareAction(options);
150
+ await this.locatorOrHandle.clear(options);
151
+ }
152
+ async fill(text, options) {
153
+ await prepareAction(options);
154
+ await this.locatorOrHandle.fill(text, options);
155
+ }
156
+ async type(text, options) {
157
+ await prepareAction(options);
158
+ if (isUndefined(this.options.typeDelay)) {
159
+ await this.locatorOrHandle.type(text, options);
160
+ }
161
+ else {
162
+ for (const char of text) {
163
+ await this.locatorOrHandle.type(char, options);
164
+ await delay(options?.typeDelay ?? this.options.typeDelay);
165
+ }
166
+ }
167
+ }
168
+ async press(key, options) {
169
+ await prepareAction(options);
170
+ await this.locatorOrHandle.press(key, options);
171
+ }
172
+ async check(options) {
173
+ await prepareAction(options);
174
+ await this.locatorOrHandle.check(options);
175
+ }
176
+ async uncheck(options) {
177
+ await prepareAction(options);
178
+ await this.locatorOrHandle.uncheck(options);
179
+ }
180
+ async setChecked(checked, options) {
181
+ await prepareAction(options);
182
+ await this.locatorOrHandle.setChecked(checked, options);
183
+ }
184
+ async selectOption(option, options) {
185
+ await prepareAction(options);
186
+ const selectedOptions = await this.locatorOrHandle.selectOption(option, options);
187
+ return selectedOptions;
188
+ }
189
+ async setInputFiles(files, options) {
190
+ await prepareAction(options);
191
+ await this.locatorOrHandle.setInputFiles(files, options);
192
+ }
193
+ async click(options) {
194
+ await prepareAction(options);
195
+ await this.locatorOrHandle.click({
196
+ ...options,
197
+ delay: resolveValueOrProvider(options?.clickDelay)
198
+ });
199
+ }
200
+ async dblclick(options) {
201
+ await prepareAction(options);
202
+ await this.locatorOrHandle.dblclick({
203
+ ...options,
204
+ delay: resolveValueOrProvider(options?.clickDelay)
205
+ });
206
+ }
207
+ async hover(options) {
208
+ await prepareAction(options);
209
+ await this.locatorOrHandle.hover(options);
210
+ }
211
+ async focus(options) {
212
+ await prepareAction(options);
213
+ await this.locatorOrHandle.focus(options);
214
+ }
215
+ async tap(options) {
216
+ await prepareAction(options);
217
+ await this.locatorOrHandle.tap(options);
218
+ }
219
+ async selectText(options) {
220
+ await prepareAction(options);
221
+ await this.locatorOrHandle.selectText(options);
222
+ }
223
+ async inputValue(options) {
224
+ return this.locatorOrHandle.inputValue(options);
225
+ }
247
226
  }
248
227
  function convertFilter(filter) {
249
- return {
250
- has: (0, import_type_guards.isDefined)(filter.has) ? (0, import_utils.assertLocatorPass)(filter.has.locatorOrHandle, requiresLocatorBasedController) : void 0,
251
- hasNot: (0, import_type_guards.isDefined)(filter.hasNot) ? (0, import_utils.assertLocatorPass)(filter.hasNot.locatorOrHandle, requiresLocatorBasedController) : void 0,
252
- hasText: filter.hasText,
253
- hasNotText: filter.hasNotText
254
- };
228
+ return {
229
+ has: isDefined(filter.has) ? assertLocatorPass(filter.has.locatorOrHandle, requiresLocatorBasedController) : undefined,
230
+ hasNot: isDefined(filter.hasNot) ? assertLocatorPass(filter.hasNot.locatorOrHandle, requiresLocatorBasedController) : undefined,
231
+ hasText: filter.hasText,
232
+ hasNotText: filter.hasNotText
233
+ };
255
234
  }
@@ -1,49 +1,26 @@
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 frame_controller_exports = {};
20
- __export(frame_controller_exports, {
21
- FrameController: () => FrameController
22
- });
23
- module.exports = __toCommonJS(frame_controller_exports);
24
- var import_type_guards = require("../utils/type-guards.js");
25
- var import_document_controller = require("./document-controller.js");
26
- class FrameController extends import_document_controller.DocumentController {
27
- /** @deprecated should be avoided */
28
- frame;
29
- options;
30
- constructor(frame, context, options) {
31
- super(frame, context, options);
32
- this.options = options;
33
- }
34
- /** Get the page containing this frame */
35
- getPage(options) {
36
- return this.context.getControllerByPage(this.frame.page(), options);
37
- }
38
- /**
39
- * @param frameSelector frame name, url or url predicate
40
- * @returns
41
- */
42
- getFrame(frameSelector, options) {
43
- const frame = this.frame.page().frame(frameSelector);
44
- if ((0, import_type_guards.isNull)(frame)) {
45
- throw new Error("Frame not found.");
1
+ import { isNull } from '../utils/type-guards.js';
2
+ import { DocumentController } from './document-controller.js';
3
+ export class FrameController extends DocumentController {
4
+ /** @deprecated should be avoided */
5
+ frame;
6
+ options;
7
+ constructor(frame, context, options) {
8
+ super(frame, context, options);
9
+ this.options = options;
10
+ }
11
+ /** Get the page containing this frame */
12
+ getPage(options) {
13
+ return this.context.getControllerByPage(this.frame.page(), options);
14
+ }
15
+ /**
16
+ * @param frameSelector frame name, url or url predicate
17
+ * @returns
18
+ */
19
+ getFrame(frameSelector, options) {
20
+ const frame = this.frame.page().frame(frameSelector);
21
+ if (isNull(frame)) {
22
+ throw new Error('Frame not found.');
23
+ }
24
+ return this.getControllerByFrame(frame, { ...this.options, ...options });
46
25
  }
47
- return this.getControllerByFrame(frame, { ...this.options, ...options });
48
- }
49
26
  }
@@ -7,4 +7,5 @@ export * from './frame-controller.js';
7
7
  export * from './locator-controller.js';
8
8
  export * from './module.js';
9
9
  export * from './page-controller.js';
10
+ export * from './pdf-options.js';
10
11
  export * from './types.js';
package/browser/index.js CHANGED
@@ -1,27 +1,11 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __copyProps = (to, from, except, desc) => {
7
- if (from && typeof from === "object" || typeof from === "function") {
8
- for (let key of __getOwnPropNames(from))
9
- if (!__hasOwnProp.call(to, key) && key !== except)
10
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
- }
12
- return to;
13
- };
14
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
- var browser_exports = {};
17
- module.exports = __toCommonJS(browser_exports);
18
- __reExport(browser_exports, require("./browser-context-controller.js"), module.exports);
19
- __reExport(browser_exports, require("./browser-controller.js"), module.exports);
20
- __reExport(browser_exports, require("./browser.service.js"), module.exports);
21
- __reExport(browser_exports, require("./document-controller.js"), module.exports);
22
- __reExport(browser_exports, require("./element-controller.js"), module.exports);
23
- __reExport(browser_exports, require("./frame-controller.js"), module.exports);
24
- __reExport(browser_exports, require("./locator-controller.js"), module.exports);
25
- __reExport(browser_exports, require("./module.js"), module.exports);
26
- __reExport(browser_exports, require("./page-controller.js"), module.exports);
27
- __reExport(browser_exports, require("./types.js"), module.exports);
1
+ export * from './browser-context-controller.js';
2
+ export * from './browser-controller.js';
3
+ export * from './browser.service.js';
4
+ export * from './document-controller.js';
5
+ export * from './element-controller.js';
6
+ export * from './frame-controller.js';
7
+ export * from './locator-controller.js';
8
+ export * from './module.js';
9
+ export * from './page-controller.js';
10
+ export * from './pdf-options.js';
11
+ export * from './types.js';