@tstdl/base 0.87.13 → 0.88.0-alpha1

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