@serenity-js/core 3.25.0 → 3.25.2

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 (268) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +1 -1
  3. package/lib/Serenity.d.ts +22 -22
  4. package/lib/Serenity.js +22 -22
  5. package/lib/adapter/OutputStream.d.ts +5 -4
  6. package/lib/adapter/OutputStream.d.ts.map +1 -1
  7. package/lib/adapter/TestRunnerAdapter.d.ts +2 -2
  8. package/lib/config/ClassDescription.d.ts +1 -1
  9. package/lib/config/SerenityConfig.d.ts +22 -20
  10. package/lib/config/SerenityConfig.d.ts.map +1 -1
  11. package/lib/config/SerenityConfig.js +22 -20
  12. package/lib/config/SerenityConfig.js.map +1 -1
  13. package/lib/errors/ErrorFactory.d.ts +2 -1
  14. package/lib/errors/ErrorFactory.d.ts.map +1 -1
  15. package/lib/errors/ErrorFactory.js +2 -1
  16. package/lib/errors/ErrorFactory.js.map +1 -1
  17. package/lib/errors/RaiseErrors.d.ts +9 -9
  18. package/lib/errors/RaiseErrors.js +9 -9
  19. package/lib/errors/diff/AnsiDiffFormatter.d.ts +1 -1
  20. package/lib/errors/diff/AnsiDiffFormatter.js +1 -1
  21. package/lib/errors/diff/DiffFormatter.d.ts +1 -1
  22. package/lib/errors/diff/NoOpDiffFormatter.d.ts +1 -1
  23. package/lib/errors/diff/NoOpDiffFormatter.js +1 -1
  24. package/lib/errors/model/AssertionError.d.ts +1 -1
  25. package/lib/errors/model/AssertionError.js +1 -1
  26. package/lib/errors/model/ConfigurationError.d.ts +1 -1
  27. package/lib/errors/model/ConfigurationError.js +1 -1
  28. package/lib/errors/model/ImplementationPendingError.d.ts +3 -3
  29. package/lib/errors/model/ImplementationPendingError.js +3 -3
  30. package/lib/errors/model/ListItemNotFoundError.d.ts +2 -2
  31. package/lib/errors/model/ListItemNotFoundError.js +2 -2
  32. package/lib/errors/model/LogicError.d.ts +2 -2
  33. package/lib/errors/model/LogicError.js +2 -2
  34. package/lib/errors/model/OperationInterruptedError.d.ts +2 -2
  35. package/lib/errors/model/OperationInterruptedError.js +2 -2
  36. package/lib/errors/model/RuntimeError.d.ts +2 -2
  37. package/lib/errors/model/RuntimeError.js +2 -2
  38. package/lib/errors/model/TestCompromisedError.d.ts +1 -1
  39. package/lib/errors/model/TestCompromisedError.js +1 -1
  40. package/lib/errors/model/TimeoutExpiredError.d.ts +2 -2
  41. package/lib/errors/model/TimeoutExpiredError.js +2 -2
  42. package/lib/errors/model/UnknownError.d.ts +1 -1
  43. package/lib/errors/model/UnknownError.js +1 -1
  44. package/lib/events/ActivityFinished.d.ts +1 -1
  45. package/lib/events/ActivityFinished.js +1 -1
  46. package/lib/events/ActivityStarts.d.ts +1 -1
  47. package/lib/events/ActivityStarts.js +1 -1
  48. package/lib/events/BusinessRuleDetected.d.ts +1 -1
  49. package/lib/events/BusinessRuleDetected.js +1 -1
  50. package/lib/events/SceneFinishes.d.ts +2 -1
  51. package/lib/events/SceneFinishes.d.ts.map +1 -1
  52. package/lib/events/SceneFinishes.js +2 -1
  53. package/lib/events/SceneFinishes.js.map +1 -1
  54. package/lib/instance.d.ts +30 -30
  55. package/lib/instance.js +30 -30
  56. package/lib/io/format.d.ts +15 -6
  57. package/lib/io/format.d.ts.map +1 -1
  58. package/lib/io/format.js +15 -6
  59. package/lib/io/format.js.map +1 -1
  60. package/lib/io/loader/ModuleLoader.d.ts +1 -1
  61. package/lib/io/loader/ModuleLoader.js +1 -1
  62. package/lib/io/reflection/ValueInspector.d.ts +1 -1
  63. package/lib/io/reflection/ValueInspector.js +2 -2
  64. package/lib/io/reflection/ValueInspector.js.map +1 -1
  65. package/lib/io/stringified.d.ts +1 -1
  66. package/lib/io/stringified.js +1 -1
  67. package/lib/io/trimmed.d.ts +1 -1
  68. package/lib/io/trimmed.js +1 -1
  69. package/lib/model/artifacts/HTTPRequestResponse.d.ts +2 -2
  70. package/lib/model/artifacts/HTTPRequestResponse.js +1 -1
  71. package/lib/screenplay/Activity.d.ts +10 -10
  72. package/lib/screenplay/Activity.js +5 -5
  73. package/lib/screenplay/Actor.d.ts +28 -28
  74. package/lib/screenplay/Actor.js +28 -28
  75. package/lib/screenplay/Answerable.d.ts +1 -1
  76. package/lib/screenplay/Answered.d.ts +2 -2
  77. package/lib/screenplay/Interaction.d.ts +17 -17
  78. package/lib/screenplay/Interaction.js +12 -12
  79. package/lib/screenplay/Optional.d.ts +1 -1
  80. package/lib/screenplay/Question.d.ts +48 -45
  81. package/lib/screenplay/Question.d.ts.map +1 -1
  82. package/lib/screenplay/Question.js +39 -36
  83. package/lib/screenplay/Question.js.map +1 -1
  84. package/lib/screenplay/RecursivelyAnswered.d.ts +2 -2
  85. package/lib/screenplay/Task.d.ts +19 -19
  86. package/lib/screenplay/Task.js +15 -15
  87. package/lib/screenplay/WithAnswerableProperties.d.ts +2 -2
  88. package/lib/screenplay/abilities/Ability.d.ts +48 -46
  89. package/lib/screenplay/abilities/Ability.d.ts.map +1 -1
  90. package/lib/screenplay/abilities/Ability.js +48 -46
  91. package/lib/screenplay/abilities/Ability.js.map +1 -1
  92. package/lib/screenplay/abilities/AbilityType.d.ts +5 -5
  93. package/lib/screenplay/abilities/AnswerQuestions.d.ts +3 -3
  94. package/lib/screenplay/abilities/AnswerQuestions.js +3 -3
  95. package/lib/screenplay/abilities/CanHaveAbilities.d.ts +4 -4
  96. package/lib/screenplay/abilities/Discardable.d.ts +8 -8
  97. package/lib/screenplay/abilities/Initialisable.d.ts +11 -11
  98. package/lib/screenplay/abilities/PerformActivities.d.ts +3 -3
  99. package/lib/screenplay/abilities/PerformActivities.js +3 -3
  100. package/lib/screenplay/abilities/UsesAbilities.d.ts +6 -6
  101. package/lib/screenplay/activities/PerformsActivities.d.ts +7 -7
  102. package/lib/screenplay/artifacts/CollectsArtifacts.d.ts +4 -5
  103. package/lib/screenplay/artifacts/CollectsArtifacts.d.ts.map +1 -1
  104. package/lib/screenplay/debugging/Debug.d.ts +7 -6
  105. package/lib/screenplay/debugging/Debug.d.ts.map +1 -1
  106. package/lib/screenplay/debugging/Debug.js +7 -6
  107. package/lib/screenplay/debugging/Debug.js.map +1 -1
  108. package/lib/screenplay/debugging/DebuggingResult.d.ts +1 -1
  109. package/lib/screenplay/debugging/Log.d.ts +7 -5
  110. package/lib/screenplay/debugging/Log.d.ts.map +1 -1
  111. package/lib/screenplay/debugging/Log.js +7 -5
  112. package/lib/screenplay/debugging/Log.js.map +1 -1
  113. package/lib/screenplay/notes/Notepad.d.ts +13 -13
  114. package/lib/screenplay/notes/Notepad.js +13 -13
  115. package/lib/screenplay/notes/NotepadAdapter.d.ts +16 -16
  116. package/lib/screenplay/notes/NotepadAdapter.js +16 -16
  117. package/lib/screenplay/notes/TakeNotes.d.ts +9 -9
  118. package/lib/screenplay/notes/TakeNotes.js +9 -9
  119. package/lib/screenplay/notes/notes.d.ts +6 -6
  120. package/lib/screenplay/notes/notes.js +6 -6
  121. package/lib/screenplay/questions/AnswersQuestions.d.ts +4 -4
  122. package/lib/screenplay/questions/ChainableMetaQuestion.d.ts +6 -6
  123. package/lib/screenplay/questions/Check.d.ts +2 -2
  124. package/lib/screenplay/questions/Check.js +2 -2
  125. package/lib/screenplay/questions/DescriptionFormattingOptions.d.ts +2 -2
  126. package/lib/screenplay/questions/Expectation.d.ts +17 -14
  127. package/lib/screenplay/questions/Expectation.d.ts.map +1 -1
  128. package/lib/screenplay/questions/Expectation.js +17 -14
  129. package/lib/screenplay/questions/Expectation.js.map +1 -1
  130. package/lib/screenplay/questions/List.d.ts +5 -5
  131. package/lib/screenplay/questions/List.js +5 -5
  132. package/lib/screenplay/questions/Masked.d.ts +4 -2
  133. package/lib/screenplay/questions/Masked.d.ts.map +1 -1
  134. package/lib/screenplay/questions/Masked.js +4 -2
  135. package/lib/screenplay/questions/Masked.js.map +1 -1
  136. package/lib/screenplay/questions/MetaQuestion.d.ts +9 -9
  137. package/lib/screenplay/questions/Unanswered.d.ts +2 -2
  138. package/lib/screenplay/questions/Unanswered.js +2 -2
  139. package/lib/screenplay/questions/expectations/ExpectationDetails.d.ts +1 -1
  140. package/lib/screenplay/questions/expectations/ExpectationDetails.js +1 -1
  141. package/lib/screenplay/questions/expectations/ExpectationMet.d.ts +1 -1
  142. package/lib/screenplay/questions/expectations/ExpectationMet.js +1 -1
  143. package/lib/screenplay/questions/expectations/ExpectationNotMet.d.ts +1 -1
  144. package/lib/screenplay/questions/expectations/ExpectationNotMet.js +1 -1
  145. package/lib/screenplay/questions/expectations/ExpectationOutcome.d.ts +2 -2
  146. package/lib/screenplay/questions/expectations/ExpectationOutcome.js +2 -2
  147. package/lib/screenplay/questions/tag-functions.d.ts +23 -21
  148. package/lib/screenplay/questions/tag-functions.d.ts.map +1 -1
  149. package/lib/screenplay/questions/tag-functions.js +5 -5
  150. package/lib/screenplay/questions/tag-functions.js.map +1 -1
  151. package/lib/screenplay/time/TellsTime.d.ts +4 -4
  152. package/lib/screenplay/time/abilities/ScheduleWork.d.ts +2 -2
  153. package/lib/screenplay/time/abilities/ScheduleWork.js +2 -2
  154. package/lib/screenplay/time/activities/Wait.d.ts +29 -27
  155. package/lib/screenplay/time/activities/Wait.d.ts.map +1 -1
  156. package/lib/screenplay/time/activities/Wait.js +29 -27
  157. package/lib/screenplay/time/activities/Wait.js.map +1 -1
  158. package/lib/screenplay/time/models/Clock.d.ts +4 -4
  159. package/lib/screenplay/time/models/Clock.js +4 -4
  160. package/lib/screenplay/time/models/Duration.d.ts +1 -1
  161. package/lib/screenplay/time/models/Duration.js +1 -1
  162. package/lib/screenplay/time/models/Timestamp.d.ts +2 -2
  163. package/lib/screenplay/time/models/Timestamp.js +2 -2
  164. package/lib/stage/Cast.d.ts +21 -21
  165. package/lib/stage/Cast.js +19 -19
  166. package/lib/stage/Extras.d.ts +1 -1
  167. package/lib/stage/Extras.js +1 -1
  168. package/lib/stage/ListensToDomainEvents.d.ts +7 -7
  169. package/lib/stage/Stage.d.ts +30 -30
  170. package/lib/stage/Stage.d.ts.map +1 -1
  171. package/lib/stage/Stage.js +30 -30
  172. package/lib/stage/Stage.js.map +1 -1
  173. package/lib/stage/StageCrewMember.d.ts +11 -11
  174. package/lib/stage/StageCrewMemberBuilder.d.ts +7 -7
  175. package/lib/stage/StageCrewMemberBuilderDependencies.d.ts +2 -2
  176. package/lib/stage/crew/artifact-archiver/ArtifactArchiver.d.ts +4 -4
  177. package/lib/stage/crew/artifact-archiver/ArtifactArchiver.js +4 -4
  178. package/lib/stage/crew/stream-reporter/StreamReporter.d.ts +7 -7
  179. package/lib/stage/crew/stream-reporter/StreamReporter.js +7 -7
  180. package/package.json +4 -4
  181. package/src/Serenity.ts +22 -22
  182. package/src/adapter/OutputStream.ts +5 -4
  183. package/src/adapter/TestRunnerAdapter.ts +2 -2
  184. package/src/config/ClassDescription.ts +1 -1
  185. package/src/config/SerenityConfig.ts +22 -20
  186. package/src/errors/ErrorFactory.ts +2 -1
  187. package/src/errors/ErrorSerialiser.ts +3 -3
  188. package/src/errors/RaiseErrors.ts +9 -9
  189. package/src/errors/diff/AnsiDiffFormatter.ts +1 -1
  190. package/src/errors/diff/DiffFormatter.ts +1 -1
  191. package/src/errors/diff/NoOpDiffFormatter.ts +1 -1
  192. package/src/errors/model/AssertionError.ts +1 -1
  193. package/src/errors/model/ConfigurationError.ts +1 -1
  194. package/src/errors/model/ImplementationPendingError.ts +3 -3
  195. package/src/errors/model/ListItemNotFoundError.ts +2 -2
  196. package/src/errors/model/LogicError.ts +2 -2
  197. package/src/errors/model/OperationInterruptedError.ts +2 -2
  198. package/src/errors/model/RuntimeError.ts +2 -2
  199. package/src/errors/model/TestCompromisedError.ts +1 -1
  200. package/src/errors/model/TimeoutExpiredError.ts +2 -2
  201. package/src/errors/model/UnknownError.ts +1 -1
  202. package/src/events/ActivityFinished.ts +1 -1
  203. package/src/events/ActivityStarts.ts +1 -1
  204. package/src/events/BusinessRuleDetected.ts +1 -1
  205. package/src/events/SceneFinishes.ts +2 -1
  206. package/src/instance.ts +30 -30
  207. package/src/io/format.ts +15 -6
  208. package/src/io/loader/ModuleLoader.ts +1 -1
  209. package/src/io/reflection/ValueInspector.ts +3 -3
  210. package/src/io/stringified.ts +1 -1
  211. package/src/io/trimmed.ts +1 -1
  212. package/src/model/artifacts/HTTPRequestResponse.ts +2 -2
  213. package/src/screenplay/Activity.ts +10 -10
  214. package/src/screenplay/Actor.ts +28 -28
  215. package/src/screenplay/Answerable.ts +1 -1
  216. package/src/screenplay/Answered.ts +2 -2
  217. package/src/screenplay/Interaction.ts +17 -17
  218. package/src/screenplay/Optional.ts +1 -1
  219. package/src/screenplay/Question.ts +48 -45
  220. package/src/screenplay/RecursivelyAnswered.ts +2 -2
  221. package/src/screenplay/Task.ts +19 -19
  222. package/src/screenplay/WithAnswerableProperties.ts +2 -2
  223. package/src/screenplay/abilities/Ability.ts +48 -46
  224. package/src/screenplay/abilities/AbilityType.ts +5 -5
  225. package/src/screenplay/abilities/AnswerQuestions.ts +3 -3
  226. package/src/screenplay/abilities/CanHaveAbilities.ts +4 -4
  227. package/src/screenplay/abilities/Discardable.ts +8 -8
  228. package/src/screenplay/abilities/Initialisable.ts +11 -11
  229. package/src/screenplay/abilities/PerformActivities.ts +3 -3
  230. package/src/screenplay/abilities/UsesAbilities.ts +6 -6
  231. package/src/screenplay/activities/PerformsActivities.ts +7 -7
  232. package/src/screenplay/artifacts/CollectsArtifacts.ts +4 -5
  233. package/src/screenplay/debugging/Debug.ts +7 -6
  234. package/src/screenplay/debugging/DebuggingResult.ts +1 -1
  235. package/src/screenplay/debugging/Log.ts +7 -5
  236. package/src/screenplay/notes/Notepad.ts +13 -13
  237. package/src/screenplay/notes/NotepadAdapter.ts +16 -16
  238. package/src/screenplay/notes/TakeNotes.ts +9 -9
  239. package/src/screenplay/notes/notes.ts +6 -6
  240. package/src/screenplay/questions/AnswersQuestions.ts +4 -4
  241. package/src/screenplay/questions/ChainableMetaQuestion.ts +6 -6
  242. package/src/screenplay/questions/Check.ts +2 -2
  243. package/src/screenplay/questions/DescriptionFormattingOptions.ts +2 -2
  244. package/src/screenplay/questions/Expectation.ts +17 -14
  245. package/src/screenplay/questions/List.ts +5 -5
  246. package/src/screenplay/questions/Masked.ts +4 -2
  247. package/src/screenplay/questions/MetaQuestion.ts +9 -9
  248. package/src/screenplay/questions/Unanswered.ts +2 -2
  249. package/src/screenplay/questions/expectations/ExpectationDetails.ts +1 -1
  250. package/src/screenplay/questions/expectations/ExpectationMet.ts +1 -1
  251. package/src/screenplay/questions/expectations/ExpectationNotMet.ts +1 -1
  252. package/src/screenplay/questions/expectations/ExpectationOutcome.ts +2 -2
  253. package/src/screenplay/questions/tag-functions.ts +23 -21
  254. package/src/screenplay/time/TellsTime.ts +4 -4
  255. package/src/screenplay/time/abilities/ScheduleWork.ts +2 -2
  256. package/src/screenplay/time/activities/Wait.ts +29 -27
  257. package/src/screenplay/time/models/Clock.ts +4 -4
  258. package/src/screenplay/time/models/Duration.ts +1 -1
  259. package/src/screenplay/time/models/Timestamp.ts +2 -2
  260. package/src/stage/Cast.ts +21 -21
  261. package/src/stage/Extras.ts +1 -1
  262. package/src/stage/ListensToDomainEvents.ts +7 -7
  263. package/src/stage/Stage.ts +30 -30
  264. package/src/stage/StageCrewMember.ts +11 -11
  265. package/src/stage/StageCrewMemberBuilder.ts +7 -7
  266. package/src/stage/StageCrewMemberBuilderDependencies.ts +2 -2
  267. package/src/stage/crew/artifact-archiver/ArtifactArchiver.ts +4 -4
  268. package/src/stage/crew/stream-reporter/StreamReporter.ts +7 -7
@@ -9,12 +9,13 @@ import type { DescriptionFormattingOptions } from './DescriptionFormattingOption
9
9
  import type { MetaQuestion } from './MetaQuestion';
10
10
 
11
11
  /**
12
- * Creates a single-line description of an {@apilink Activity} by transforming
12
+ * Creates a single-line description of an [`Activity`](https://serenity-js.org/api/core/class/Activity/) by transforming
13
13
  * a [template literal](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#Tagged_templates),
14
14
  * parameterised with [primitive data types](https://developer.mozilla.org/en-US/docs/Glossary/Primitive),
15
15
  * [complex data structures](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#objects),
16
- * or any other {@apilink Answerable|Answerables}, into a {@link QuestionAdapter|`QuestionAdapter<string>`}
17
- * that can be used with {@apilink Task.where} and {@apilink Interaction.where} methods.
16
+ * or any other [answerables](https://serenity-js.org/api/core/#Answerable),
17
+ * into a [`QuestionAdapter<string>`](https://serenity-js.org/api/core/#QuestionAdapter)
18
+ * that can be used with [`Task.where`](https://serenity-js.org/api/core/class/Task/#where) and [`Interaction.where`](https://serenity-js.org/api/core/class/Interaction/#where) methods.
18
19
  *
19
20
  * ```ts
20
21
  * const dial = (phoneNumber: Answerable<string>) =>
@@ -28,7 +29,8 @@ import type { MetaQuestion } from './MetaQuestion';
28
29
  *
29
30
  * ## Trimming the output
30
31
  *
31
- * Use {@apilink DescriptionFormattingOptions} to trim the descriptions of template parameters.
32
+ * Use [`DescriptionFormattingOptions`](http://serenity-js.org/api/core/interface/DescriptionFormattingOptions/)
33
+ * to trim the descriptions of template parameters.
32
34
  * By default, the output is displayed in full.
33
35
  *
34
36
  * ```ts
@@ -45,9 +47,9 @@ import type { MetaQuestion } from './MetaQuestion';
45
47
  *
46
48
  * ## Using with Questions
47
49
  *
48
- * When `the` is parameterised with {@apilink Question|Questions},
49
- * it retrieves their description by calling {@apilink Question.describedBy}
50
- * in the context of the {@apilink Actor} performing the {@apilink Activity}.
50
+ * When `the` is parameterised with [questions](https://serenity-js.org/api/core/class/Question/),
51
+ * it retrieves their description by calling [`Question.describedBy`](https://serenity-js.org/api/core/class/Question/#describedBy)
52
+ * in the context of the [`Actor`](https://serenity-js.org/api/core/class/Actor/) performing the [`Activity`](https://serenity-js.org/api/core/class/Activity/).
51
53
  *
52
54
  * ```ts
53
55
  * import { actorCalled, Question, Task, the } from '@serenity-js/core'
@@ -66,7 +68,7 @@ import type { MetaQuestion } from './MetaQuestion';
66
68
  * )
67
69
  * ```
68
70
  *
69
- * If you'd like the question to be described using its formatted value instead of its description, use {@apilink Question.formattedValue}.
71
+ * If you'd like the question to be described using its formatted value instead of its description, use [`Question.formattedValue`](https://serenity-js.org/api/core/class/Question/#formattedValue).
70
72
  *
71
73
  * ```ts
72
74
  * import { actorCalled, Question, Task, the } from '@serenity-js/core'
@@ -89,7 +91,7 @@ import type { MetaQuestion } from './MetaQuestion';
89
91
  *
90
92
  * When `the` is parameterised with objects that have
91
93
  * a custom [`toString()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString) method,
92
- * or {@link Answerable|Answerables} resolving to such objects, the `toString()` method is called to produce the resulting description.
94
+ * or [answerables](https://serenity-js.org/api/core/#Answerable) resolving to such objects, the `toString()` method is called to produce the resulting description.
93
95
  *
94
96
  * ```ts
95
97
  * import { actorCalled, description, Task } from '@serenity-js/core'
@@ -118,7 +120,7 @@ import type { MetaQuestion } from './MetaQuestion';
118
120
  * ## Using with objects without a custom `toString` method
119
121
  *
120
122
  * When `the` is parameterised with complex objects that don't have a custom `toString()` method,
121
- * or {@link Answerable}s resolving to such objects,
123
+ * or [`Answerable`](https://serenity-js.org/api/core/#Answerable)s resolving to such objects,
122
124
  * the resulting description will contain a JSON-like string representation of the object.
123
125
  *
124
126
  * ```ts
@@ -141,7 +143,7 @@ import type { MetaQuestion } from './MetaQuestion';
141
143
  *
142
144
  * ## Using with masked values
143
145
  *
144
- * When `the` is parameterised with {@apilink Masked} values,
146
+ * When `the` is parameterised with [masked values](https://serenity-js.org/api/core/class/Masked/),
145
147
  * the resulting description will contain a masked representation of the values.
146
148
  *
147
149
  * ```ts
@@ -158,11 +160,11 @@ import type { MetaQuestion } from './MetaQuestion';
158
160
  *
159
161
  * ## Learn more
160
162
  *
161
- * - {@apilink Answerable}
162
- * - {@apilink Question}
163
- * - {@apilink Question.describedAs}
164
- * - {@apilink QuestionAdapter}
165
- * - {@apilink Masked}
163
+ * - [`Answerable`](https://serenity-js.org/api/core/#Answerable)
164
+ * - [`Question`](https://serenity-js.org/api/core/class/Question/)
165
+ * - [`Question.describedAs`](https://serenity-js.org/api/core/class/Question/#describedAs)
166
+ * - [`QuestionAdapter`](https://serenity-js.org/api/core/#QuestionAdapter)
167
+ * - [`Masked`](https://serenity-js.org/api/core/class/Masked/)
166
168
  *
167
169
  * @group Questions
168
170
  */
@@ -216,7 +218,7 @@ export function the(...args: any[]): any {
216
218
  *
217
219
  * ## Transforming the interpolated string
218
220
  *
219
- * The mechanism presented below relies on {@apilink QuestionAdapter}.
221
+ * The mechanism presented below relies on [`QuestionAdapter`](https://serenity-js.org/api/core/#QuestionAdapter).
220
222
  *
221
223
  * ```ts
222
224
  * import { q, actorCalled } from '@serenity-js/core'
@@ -231,10 +233,10 @@ export function the(...args: any[]): any {
231
233
  *
232
234
  * ## Learn more
233
235
  *
234
- * - {@apilink Answerable}
235
- * - {@apilink Question}
236
- * - {@apilink Question.describedAs}
237
- * - {@apilink QuestionAdapter}
236
+ * - [`Answerable`](https://serenity-js.org/api/core/#Answerable)
237
+ * - [`Question`](https://serenity-js.org/api/core/class/Question/)
238
+ * - [`Question.describedAs`](https://serenity-js.org/api/core/class/Question/#describedAs)
239
+ * - [`QuestionAdapter`](https://serenity-js.org/api/core/#QuestionAdapter)
238
240
  *
239
241
  * @group Questions
240
242
  *
@@ -1,13 +1,13 @@
1
1
  import type { Timestamp } from './models';
2
2
 
3
3
  /**
4
- * Describes an {@apilink Actor} or a supporting class capable of telling
4
+ * Describes an [`Actor`](https://serenity-js.org/api/core/class/Actor/) or a supporting class capable of telling
5
5
  * the current wall clock time.
6
6
  *
7
7
  * ## Learn more
8
- * - {@apilink Actor}
9
- * - {@apilink Serenity}
10
- * - {@apilink Stage}
8
+ * - [`Actor`](https://serenity-js.org/api/core/class/Actor/)
9
+ * - [`Serenity`](https://serenity-js.org/api/core/class/Serenity/)
10
+ * - [`Stage`](https://serenity-js.org/api/core/class/Stage/)
11
11
  *
12
12
  * @group Time
13
13
  */
@@ -4,10 +4,10 @@ import type { Clock, DelayedCallback, Duration, RepeatUntilLimits} from '../mode
4
4
  import { Scheduler } from '../models';
5
5
 
6
6
  /**
7
- * An {@apilink Ability} that enables an {@apilink Actor} to schedule a callback function
7
+ * An [`Ability`](https://serenity-js.org/api/core/class/Ability/) that enables an [`Actor`](https://serenity-js.org/api/core/class/Actor/) to schedule a callback function
8
8
  * to be executed with a delay, or until some condition is met.
9
9
  *
10
- * Used internally by the {@apilink Interaction|interaction} to {@apilink Wait}.
10
+ * Used internally by the [interaction](https://serenity-js.org/api/core/class/Interaction/) to [`Wait`](https://serenity-js.org/api/core/class/Wait/).
11
11
  *
12
12
  * @experimental
13
13
  *
@@ -12,13 +12,13 @@ import { ScheduleWork } from '../abilities';
12
12
  import { Duration } from '../models';
13
13
 
14
14
  /**
15
- * `Wait` is a synchronisation statement that instructs the {@apilink Actor|actor}
16
- * to wait before proceeding with their next {@apilink Activity|activity},
17
- * either for a set {@apilink Duration|duration}, or until a given {@apilink Expectation|expectation} is met.
15
+ * `Wait` is a synchronisation statement that instructs the [actor](https://serenity-js.org/api/core/class/Actor/)
16
+ * to wait before proceeding with their next [activity](https://serenity-js.org/api/core/class/Activity/),
17
+ * either for a set [duration](https://serenity-js.org/api/core/class/Duration/), or until a given [expectation](https://serenity-js.org/api/core/class/Expectation/) is met.
18
18
  *
19
- * You can configure the timeout of the interaction to {@apilink Wait.until}:
20
- * - globally, using {@apilink SerenityConfig.interactionTimeout}
21
- * - locally, on a per-interaction basis using {@apilink Wait.upTo}
19
+ * You can configure the timeout of the interaction to [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until):
20
+ * - globally, using [`SerenityConfig.interactionTimeout`](https://serenity-js.org/api/core/class/SerenityConfig/#interactionTimeout)
21
+ * - locally, on a per-interaction basis using [`Wait.upTo`](https://serenity-js.org/api/core/class/Wait/#upTo)
22
22
  *
23
23
  * :::tip Portable waiting
24
24
  * Serenity/JS implements `Wait` from scratch, so that the behaviour is consistent no matter the integration tool you use (Playwright, WebdriverIO, Selenium, etc.)
@@ -98,7 +98,8 @@ import { Duration } from '../models';
98
98
  * );
99
99
  * ```
100
100
  *
101
- * `Wait.until` makes the {@apilink Actor} keep asking the {@apilink Question},
101
+ * `Wait.until` makes the [`Actor`](https://serenity-js.org/api/core/class/Actor/)
102
+ * keep asking the [`Question`](https://serenity-js.org/api/core/class/Question/),
102
103
  * in this case `Text.of(App.status)`, until the answer meets
103
104
  * the expectation, or a timeout expires (default: 5s).
104
105
  *
@@ -125,53 +126,53 @@ import { Duration } from '../models';
125
126
  * ```
126
127
  *
127
128
  * ## Learn more
128
- * - {@apilink SerenityConfig.interactionTimeout}
129
- * - {@apilink Duration}
130
- * - {@apilink Expectation}
129
+ * - [`SerenityConfig.interactionTimeout`](https://serenity-js.org/api/core/class/SerenityConfig/#interactionTimeout)
130
+ * - [`Duration`](https://serenity-js.org/api/core/class/Duration/)
131
+ * - [`Expectation`](https://serenity-js.org/api/core/class/Expectation/)
131
132
  *
132
133
  * @group Time
133
134
  */
134
135
  export class Wait {
135
136
 
136
137
  /**
137
- * Minimum timeout that can be used with {@apilink Wait.until},
138
+ * Minimum timeout that can be used with [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until),
138
139
  * defaults to 250 milliseconds,
139
140
  */
140
141
  static readonly minimumTimeout = Duration.ofMilliseconds(250);
141
142
 
142
143
  /**
143
- * The amount of time {@apilink Wait.until} should wait between condition checks,
144
+ * The amount of time [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until) should wait between condition checks,
144
145
  * defaults to 500ms.
145
146
  *
146
- * Use {@apilink WaitUntil.pollingEvery} to override it for a given interaction.
147
+ * Use [`WaitUntil.pollingEvery`](https://serenity-js.org/api/core/class/WaitUntil/#pollingEvery) to override it for a given interaction.
147
148
  *
148
149
  * @type {Duration}
149
150
  */
150
151
  static readonly defaultPollingInterval = Duration.ofMilliseconds(500);
151
152
 
152
153
  /**
153
- * Minimum polling interval of 50ms between condition checks, used with {@apilink Wait.until}.
154
+ * Minimum polling interval of 50ms between condition checks, used with [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until).
154
155
  */
155
156
  static readonly minimumPollingInterval = Duration.ofMilliseconds(50);
156
157
 
157
158
  /**
158
- * Instantiates a version of this {@apilink Interaction}
159
+ * Instantiates a version of this [`Interaction`](https://serenity-js.org/api/core/class/Interaction/)
159
160
  * configured to wait for a set duration.
160
161
  *
161
162
  * @param duration
162
- * A set duration the {@apilink Actor} should wait for before proceeding.
163
+ * A set duration the [`Actor`](https://serenity-js.org/api/core/class/Actor/) should wait for before proceeding.
163
164
  */
164
165
  static for(duration: Answerable<Duration>): Interaction {
165
166
  return new WaitFor(duration);
166
167
  }
167
168
 
168
169
  /**
169
- * Instantiates a version of this {@apilink Interaction}
170
+ * Instantiates a version of this [`Interaction`](https://serenity-js.org/api/core/class/Interaction/)
170
171
  * configured to wait until the answer to the question `actual` meets the `expectation`,
171
172
  * or the `timeout` expires.
172
173
  *
173
174
  * @param timeout
174
- * Custom timeout to override {@apilink SerenityConfig.interactionTimeout}
175
+ * Custom timeout to override [`SerenityConfig.interactionTimeout`](https://serenity-js.org/api/core/class/SerenityConfig/#interactionTimeout)
175
176
  */
176
177
  static upTo(timeout: Duration): { until: <Actual>(actual: Answerable<Actual>, expectation: Expectation<Actual>) => WaitUntil<Actual> } {
177
178
  return {
@@ -181,17 +182,17 @@ export class Wait {
181
182
  }
182
183
 
183
184
  /**
184
- * Instantiates a version of this {@apilink Interaction} configured to
185
- * poll every {@apilink Wait.defaultPollingInterval} for the result of the provided
185
+ * Instantiates a version of this [`Interaction`](https://serenity-js.org/api/core/class/Interaction/) configured to
186
+ * poll every [`Wait.defaultPollingInterval`](https://serenity-js.org/api/core/class/Wait/#defaultPollingInterval) for the result of the provided
186
187
  * question (`actual`) until it meets the `expectation`,
187
188
  * or the timeout expires.
188
189
  *
189
190
  * @param actual
190
- * An {@apilink Answerable} that the {@apilink Actor} will keep answering
191
- * until the answer meets the {@apilink Expectation} provided, or the timeout expires.
191
+ * An [`Answerable`](https://serenity-js.org/api/core/#Answerable) that the [`Actor`](https://serenity-js.org/api/core/class/Actor/) will keep answering
192
+ * until the answer meets the [`Expectation`](https://serenity-js.org/api/core/class/Expectation/) provided, or the timeout expires.
192
193
  *
193
194
  * @param expectation
194
- * An {@apilink Expectation} to be met before proceeding
195
+ * An [`Expectation`](https://serenity-js.org/api/core/class/Expectation/) to be met before proceeding
195
196
  */
196
197
  static until<Actual>(actual: Answerable<Actual>, expectation: Expectation<Actual>): WaitUntil<Actual> {
197
198
  return new WaitUntil(actual, expectation, Wait.defaultPollingInterval);
@@ -214,14 +215,15 @@ class WaitFor extends Interaction {
214
215
  }
215
216
 
216
217
  /**
217
- * Synchronisation statement that instructs the {@apilink Actor} to wait before proceeding until a given {@apilink Expectation} is met.
218
+ * Synchronisation statement that instructs the [`Actor`](https://serenity-js.org/api/core/class/Actor/) to wait before proceeding until a given [`Expectation`](https://serenity-js.org/api/core/class/Expectation/) is met.
218
219
  *
219
220
  * :::tip
220
- * To instantiate {@apilink Interaction|interaction} to {@apilink WaitUntil}, use the factory method {@apilink Wait.until}.
221
+ * To instantiate the [interaction](https://serenity-js.org/api/core/class/Interaction/) to [`WaitUntil`](https://serenity-js.org/api/core/class/WaitUntil/),
222
+ * use the factory method [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until).
221
223
  * :::
222
224
  *
223
225
  * ## Learn more
224
- * * {@apilink Wait.until}
226
+ * * [`Wait.until`](https://serenity-js.org/api/core/class/Wait/#until)
225
227
  *
226
228
  * @group Time
227
229
  */
@@ -243,7 +245,7 @@ export class WaitUntil<Actual> extends Interaction {
243
245
  }
244
246
 
245
247
  /**
246
- * Configure how frequently the {@apilink Actor} should check if the answer meets the expectation.
248
+ * Configure how frequently the [`Actor`](https://serenity-js.org/api/core/class/Actor/) should check if the answer meets the expectation.
247
249
  *
248
250
  * Note that the polling interval defines the delay between subsequent attempts
249
251
  * to evaluate the expected value, and doesn't include the amount of time
@@ -4,7 +4,7 @@ import { Duration } from './Duration';
4
4
  import { Timestamp } from './Timestamp';
5
5
 
6
6
  /**
7
- * A {@apilink Clock} tells the time. This abstraction allows Serenity/JS to have a single place
7
+ * A [`Clock`](https://serenity-js.org/api/core/class/Clock/) tells the time. This abstraction allows Serenity/JS to have a single place
8
8
  * in the framework responsible for telling the time, and one that can be easily mocked for internal testing.
9
9
  *
10
10
  * ```ts
@@ -12,8 +12,8 @@ import { Timestamp } from './Timestamp';
12
12
  * ```
13
13
  *
14
14
  * ## Learn more
15
- * - {@apilink Timestamp}
16
- * - {@apilink Duration}
15
+ * - [`Timestamp`](https://serenity-js.org/api/core/class/Timestamp/)
16
+ * - [`Duration`](https://serenity-js.org/api/core/class/Duration/)
17
17
  *
18
18
  * @group Time
19
19
  */
@@ -26,7 +26,7 @@ export class Clock {
26
26
 
27
27
  /**
28
28
  * Sets the clock ahead to force early resolution of promises
29
- * returned by {@apilink Clock.waitFor};
29
+ * returned by [`Clock.waitFor`](https://serenity-js.org/api/core/class/Clock/#waitFor).
30
30
  *
31
31
  * Useful for test purposes to avoid unnecessary delays.
32
32
  *
@@ -2,7 +2,7 @@ import type { JSONObject} from 'tiny-types';
2
2
  import { ensure, isGreaterThanOrEqualTo, isInteger, TinyType } from 'tiny-types';
3
3
 
4
4
  /**
5
- * Represents a duration in milliseconds between two {@apilink Timestamp|timestamps}.
5
+ * Represents a duration in milliseconds between two [timestamps](https://serenity-js.org/api/core/class/Timestamp/).
6
6
  *
7
7
  * @group Time
8
8
  */
@@ -6,10 +6,10 @@ import { Duration } from './Duration';
6
6
  /**
7
7
  * Represents a point in time.
8
8
  *
9
- * `Timestamp` makes it easier for you to work with information related to time, like {@apilink DomainEvent|domain events}.
9
+ * `Timestamp` makes it easier for you to work with information related to time, like [Serenity/JS domain events](https://serenity-js.org/api/core-events/class/DomainEvent/).
10
10
  *
11
11
  * ## Learn more
12
- * - {@apilink Duration}
12
+ * - [`Duration`](https://serenity-js.org/api/core/class/Duration/)
13
13
  * - [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date)
14
14
  *
15
15
  * @group Time
package/src/stage/Cast.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  import type { Actor } from '../screenplay';
2
2
 
3
3
  /**
4
- * Serenity/JS uses the concept of a _**cast of actors**_ to centralise the process of configuring the {@apilink Actor|actors} and assigning their {@apilink Ability|abilities}.
4
+ * Serenity/JS uses the concept of a _**cast of actors**_ to centralise the process of configuring the [actors](https://serenity-js.org/api/core/class/Actor/) and assigning their [abilities](https://serenity-js.org/api/core/class/Ability/).
5
5
  *
6
- * When you invoke {@apilink actorCalled} for the first time in a test scenario,
7
- * Serenity/JS {@apilink Actor|instantiates a new actor}
8
- * and passes it through the {@apilink Cast.prepare} method.
6
+ * When you invoke [`actorCalled`](https://serenity-js.org/api/core/function/actorCalled/) for the first time in a test scenario,
7
+ * Serenity/JS [instantiates a new actor](https://serenity-js.org/api/core/class/Actor/)
8
+ * and passes it through the [`Cast.prepare`](https://serenity-js.org/api/core/class/Cast/#prepare) method.
9
9
  * Specifying a **custom cast** gives you an opportunity to configure the actor with the abilities
10
10
  * they need before it's returned to the caller,
11
11
  * or configure the actors differently **depending on their name**.
@@ -18,7 +18,7 @@ import type { Actor } from '../screenplay';
18
18
  * ## Configuring a cast of actors for the entire test suite
19
19
  *
20
20
  * When working with relatively **simple scenarios** where all the actors should always receive the same set of abilities,
21
- * you can {@apilink configure} Serenity/JS to use a generic {@apilink Cast.where}:
21
+ * you can [`engage`](https://serenity-js.org/api/core/function/engage/) Serenity/JS to use a generic [`Cast.where`](https://serenity-js.org/api/core/class/Cast/#where):
22
22
  *
23
23
  * ```typescript
24
24
  * import { Cast, configure } from '@serenity-js/core'
@@ -32,28 +32,28 @@ import type { Actor } from '../screenplay';
32
32
  * })
33
33
  * ```
34
34
  *
35
- * If you're using Serenity/JS with one of the [supported test runners](/handbook/test-runners/),
35
+ * If you're using Serenity/JS with one of the [supported test runners](https://serenity-js.org/handbook/test-runners/),
36
36
  * you might prefer to use your test runner's native configuration mechanism
37
- * instead of invoking {@apilink configure} explicitly.
37
+ * instead of invoking [`engage`](https://serenity-js.org/api/core/function/engage/) explicitly.
38
38
  *
39
39
  * :::tip configure vs engage
40
- * Calling {@apilink configure} resets the entire Serenity/JS configuration
40
+ * Calling [`configure`](https://serenity-js.org/api/core/function/configure/) resets the entire Serenity/JS configuration
41
41
  * and should be done exactly once in your entire test suite.
42
- * If you want to retain the configuration but reset the cast, use {@apilink engage} instead.
42
+ * If you want to retain the configuration but reset the cast, use [`engage`](https://serenity-js.org/api/core/function/engage/) instead.
43
43
  * :::
44
44
  *
45
45
  * Learn more about configuring Serenity/JS with:
46
- * - [Cucumber.js](/handbook/test-runners/cucumber)
47
- * - [Jasmine](/handbook/test-runners/jasmine)
48
- * - [Mocha](/handbook/test-runners/mocha)
49
- * - [Playwright Test](/handbook/test-runners/playwright-test)
50
- * - [Protractor](/handbook/test-runners/protractor)
51
- * - [WebdriverIO](/handbook/test-runners/webdriverio)
46
+ * - [Cucumber.js](https://serenity-js.org/handbook/test-runners/cucumber)
47
+ * - [Jasmine](https://serenity-js.org/handbook/test-runners/jasmine)
48
+ * - [Mocha](https://serenity-js.org/handbook/test-runners/mocha)
49
+ * - [Playwright Test](https://serenity-js.org/handbook/test-runners/playwright-test)
50
+ * - [Protractor](https://serenity-js.org/handbook/test-runners/protractor)
51
+ * - [WebdriverIO](https://serenity-js.org/handbook/test-runners/webdriverio)
52
52
  *
53
53
  * ## Engaging a cast of actors for the specific scenario
54
54
  *
55
- * If you want to retain Serenity/JS configuration, but set a different {@apilink Cast}
56
- * for the given test scenario you should use {@apilink engage} instead of {@apilink configure}.
55
+ * If you want to retain Serenity/JS configuration, but set a different [cast](https://serenity-js.org/api/core/class/Cast/)
56
+ * for the given test scenario you should use [`engage`](https://serenity-js.org/api/core/function/engage/) instead of [`configure`](https://serenity-js.org/api/core/function/configure/).
57
57
  *
58
58
  * This approach is useful for example when your entire test suite is dedicated to interacting with the system
59
59
  * under test via its REST APIs, and you have a handful of scenarios that need a web browser.
@@ -77,10 +77,10 @@ import type { Actor } from '../screenplay';
77
77
  * ## Writing custom casts for complex scenarios
78
78
  *
79
79
  * In **complex scenarios** that involve multiple **actors with different abilities**,
80
- * you should create a custom implementation of the {@apilink Cast}.
80
+ * you should create a custom implementation of the [cast](https://serenity-js.org/api/core/class/Cast/).
81
81
  *
82
82
  * Examples of such scenarios include those where actors use separate browser instances, interact with different REST APIs,
83
- * or start with different data in their {@apilink Notepad|notepads}.
83
+ * or start with different data in their [notepads](https://serenity-js.org/api/core/class/Notepad/).
84
84
  *
85
85
  * ### Defining a custom cast of actors interacting with a Web UI
86
86
  *
@@ -164,12 +164,12 @@ export abstract class Cast {
164
164
  }
165
165
 
166
166
  /**
167
- * Configures an {@apilink Actor} instantiated when {@apilink Stage.actor} is invoked.
167
+ * Configures an [`Actor`](https://serenity-js.org/api/core/class/Actor/) instantiated when [`Stage.actor`](https://serenity-js.org/api/core/class/Stage/#actor) is invoked.
168
168
  *
169
169
  * @param actor
170
170
  *
171
171
  * #### Learn more
172
- * - {@apilink engage}
172
+ * - [`engage`](https://serenity-js.org/api/core/function/engage/)
173
173
  */
174
174
  abstract prepare(actor: Actor): Actor;
175
175
  }
@@ -2,7 +2,7 @@ import type { Actor } from '../screenplay';
2
2
  import type { Cast } from './Cast';
3
3
 
4
4
  /**
5
- * Produces no-op actors with no special {@apilink Ability}
5
+ * Produces no-op actors with no special [`Ability`](https://serenity-js.org/api/core/class/Ability/)
6
6
  */
7
7
  export class Extras implements Cast {
8
8
  prepare(actor: Actor): Actor {
@@ -1,22 +1,22 @@
1
1
  import type { DomainEvent } from '../events';
2
2
 
3
3
  /**
4
- * A {@apilink StageCrewMember} that can listen and react to {@apilink DomainEvent|DomainEvents}
4
+ * A [`StageCrewMember`](https://serenity-js.org/api/core/interface/StageCrewMember/) that can listen and react to [Serenity/JS domain events](https://serenity-js.org/api/core-events/class/DomainEvent/)
5
5
  *
6
6
  * ## Learn more
7
7
  *
8
- * - {@apilink StageCrewMember}
9
- * - {@apilink StageCrewMemberBuilder}
10
- * - {@apilink configure}
11
- * - {@apilink SerenityConfig.crew}
8
+ * - [`StageCrewMember`](https://serenity-js.org/api/core/interface/StageCrewMember/)
9
+ * - [`StageCrewMember`](https://serenity-js.org/api/core/interface/StageCrewMemberBuilder/)
10
+ * - [`engage`](https://serenity-js.org/api/core/function/engage/)
11
+ * - [`SerenityConfig.crew`](https://serenity-js.org/api/core/class/SerenityConfig/#crew)
12
12
  *
13
13
  * @group Stage
14
14
  */
15
15
  export interface ListensToDomainEvents {
16
16
 
17
17
  /**
18
- * Handles {@apilink DomainEvent} objects emitted by the {@apilink Stage}
19
- * that this {@apilink StageCrewMember} is assigned to.
18
+ * Handles [`DomainEvent`](https://serenity-js.org/api/core-events/class/DomainEvent/) objects emitted by the [`Stage`](https://serenity-js.org/api/core/class/Stage/)
19
+ * that this [`StageCrewMember`](https://serenity-js.org/api/core/interface/StageCrewMember/) is assigned to.
20
20
  *
21
21
  * @param event
22
22
  */