@serenity-js/core 3.25.4 → 3.26.0

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 (95) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/lib/events/actor/ActorEntersStage.d.ts +17 -0
  3. package/lib/events/actor/ActorEntersStage.d.ts.map +1 -0
  4. package/lib/events/actor/ActorEntersStage.js +29 -0
  5. package/lib/events/actor/ActorEntersStage.js.map +1 -0
  6. package/lib/events/actor/ActorStageExitAttempted.d.ts +19 -0
  7. package/lib/events/actor/ActorStageExitAttempted.d.ts.map +1 -0
  8. package/lib/events/actor/ActorStageExitAttempted.js +29 -0
  9. package/lib/events/actor/ActorStageExitAttempted.js.map +1 -0
  10. package/lib/events/actor/ActorStageExitCompleted.d.ts +20 -0
  11. package/lib/events/actor/ActorStageExitCompleted.d.ts.map +1 -0
  12. package/lib/events/actor/ActorStageExitCompleted.js +30 -0
  13. package/lib/events/actor/ActorStageExitCompleted.js.map +1 -0
  14. package/lib/events/actor/ActorStageExitFailed.d.ts +17 -0
  15. package/lib/events/actor/ActorStageExitFailed.d.ts.map +1 -0
  16. package/lib/events/actor/ActorStageExitFailed.js +25 -0
  17. package/lib/events/actor/ActorStageExitFailed.js.map +1 -0
  18. package/lib/events/actor/ActorStageExitStarts.d.ts +20 -0
  19. package/lib/events/actor/ActorStageExitStarts.d.ts.map +1 -0
  20. package/lib/events/actor/ActorStageExitStarts.js +32 -0
  21. package/lib/events/actor/ActorStageExitStarts.js.map +1 -0
  22. package/lib/events/actor/index.d.ts +6 -0
  23. package/lib/events/actor/index.d.ts.map +1 -0
  24. package/lib/events/actor/index.js +22 -0
  25. package/lib/events/actor/index.js.map +1 -0
  26. package/lib/events/index.d.ts +1 -0
  27. package/lib/events/index.d.ts.map +1 -1
  28. package/lib/events/index.js +1 -0
  29. package/lib/events/index.js.map +1 -1
  30. package/lib/screenplay/Actor.d.ts +8 -1
  31. package/lib/screenplay/Actor.d.ts.map +1 -1
  32. package/lib/screenplay/Actor.js +14 -10
  33. package/lib/screenplay/Actor.js.map +1 -1
  34. package/lib/screenplay/SerialisedActor.d.ts +9 -0
  35. package/lib/screenplay/SerialisedActor.d.ts.map +1 -0
  36. package/lib/screenplay/SerialisedActor.js +3 -0
  37. package/lib/screenplay/SerialisedActor.js.map +1 -0
  38. package/lib/screenplay/abilities/Ability.d.ts +39 -0
  39. package/lib/screenplay/abilities/Ability.d.ts.map +1 -1
  40. package/lib/screenplay/abilities/Ability.js +65 -0
  41. package/lib/screenplay/abilities/Ability.js.map +1 -1
  42. package/lib/screenplay/abilities/AbilityType.d.ts +5 -1
  43. package/lib/screenplay/abilities/AbilityType.d.ts.map +1 -1
  44. package/lib/screenplay/abilities/SerialisedAbility.d.ts +10 -0
  45. package/lib/screenplay/abilities/SerialisedAbility.d.ts.map +1 -0
  46. package/lib/screenplay/abilities/SerialisedAbility.js +3 -0
  47. package/lib/screenplay/abilities/SerialisedAbility.js.map +1 -0
  48. package/lib/screenplay/abilities/index.d.ts +1 -0
  49. package/lib/screenplay/abilities/index.d.ts.map +1 -1
  50. package/lib/screenplay/abilities/index.js +1 -0
  51. package/lib/screenplay/abilities/index.js.map +1 -1
  52. package/lib/screenplay/index.d.ts +1 -0
  53. package/lib/screenplay/index.d.ts.map +1 -1
  54. package/lib/screenplay/index.js +1 -0
  55. package/lib/screenplay/index.js.map +1 -1
  56. package/lib/screenplay/notes/TakeNotes.d.ts +2 -1
  57. package/lib/screenplay/notes/TakeNotes.d.ts.map +1 -1
  58. package/lib/screenplay/notes/TakeNotes.js +8 -0
  59. package/lib/screenplay/notes/TakeNotes.js.map +1 -1
  60. package/lib/screenplay/time/abilities/ScheduleWork.d.ts +2 -1
  61. package/lib/screenplay/time/abilities/ScheduleWork.d.ts.map +1 -1
  62. package/lib/screenplay/time/abilities/ScheduleWork.js +8 -0
  63. package/lib/screenplay/time/abilities/ScheduleWork.js.map +1 -1
  64. package/lib/screenplay/time/models/Clock.d.ts +2 -0
  65. package/lib/screenplay/time/models/Clock.d.ts.map +1 -1
  66. package/lib/screenplay/time/models/Clock.js +5 -0
  67. package/lib/screenplay/time/models/Clock.js.map +1 -1
  68. package/lib/screenplay/time/models/Scheduler.d.ts +2 -0
  69. package/lib/screenplay/time/models/Scheduler.d.ts.map +1 -1
  70. package/lib/screenplay/time/models/Scheduler.js +6 -0
  71. package/lib/screenplay/time/models/Scheduler.js.map +1 -1
  72. package/lib/stage/Stage.d.ts +6 -7
  73. package/lib/stage/Stage.d.ts.map +1 -1
  74. package/lib/stage/Stage.js +15 -5
  75. package/lib/stage/Stage.js.map +1 -1
  76. package/package.json +5 -5
  77. package/src/events/actor/ActorEntersStage.ts +32 -0
  78. package/src/events/actor/ActorStageExitAttempted.ts +34 -0
  79. package/src/events/actor/ActorStageExitCompleted.ts +34 -0
  80. package/src/events/actor/ActorStageExitFailed.ts +27 -0
  81. package/src/events/actor/ActorStageExitStarts.ts +35 -0
  82. package/src/events/actor/index.ts +5 -0
  83. package/src/events/index.ts +1 -0
  84. package/src/screenplay/Actor.ts +19 -28
  85. package/src/screenplay/SerialisedActor.ts +9 -0
  86. package/src/screenplay/abilities/Ability.ts +73 -0
  87. package/src/screenplay/abilities/AbilityType.ts +8 -1
  88. package/src/screenplay/abilities/SerialisedAbility.ts +10 -0
  89. package/src/screenplay/abilities/index.ts +1 -0
  90. package/src/screenplay/index.ts +1 -0
  91. package/src/screenplay/notes/TakeNotes.ts +10 -1
  92. package/src/screenplay/time/abilities/ScheduleWork.ts +11 -2
  93. package/src/screenplay/time/models/Clock.ts +7 -1
  94. package/src/screenplay/time/models/Scheduler.ts +9 -0
  95. package/src/stage/Stage.ts +50 -25
@@ -400,6 +400,71 @@ class Ability {
400
400
  static as(actor) {
401
401
  return actor.abilityTo(this);
402
402
  }
403
+ /**
404
+ * Returns a JSON representation of the ability and its current state, if available.
405
+ * The purpose of this method is to enable reporting the state of the ability in a human-readable format,
406
+ * rather than to serialise and deserialise the ability itself.
407
+ */
408
+ toJSON() {
409
+ const abilityClass = this.constructor.name;
410
+ const abilityType = this.abilityType().name;
411
+ if (abilityClass !== abilityType) {
412
+ return {
413
+ class: abilityClass,
414
+ type: abilityType,
415
+ };
416
+ }
417
+ return {
418
+ type: abilityType,
419
+ };
420
+ }
421
+ /**
422
+ * Returns the most abstract type of this Ability class,
423
+ * specifically the first class in the inheritance hierarchy that directly extends the `Ability` class.
424
+ *
425
+ * ```ts
426
+ * import { Ability } from '@serenity-js/core';
427
+ *
428
+ * class MyAbility extends Ability {}
429
+ * class MySpecialisedAbility extends MyAbility {}
430
+ *
431
+ * MyAbility.abilityType(); // returns MyAbility
432
+ * MySpecialisedAbility.abilityType(); // returns MyAbility
433
+ * ```
434
+ */
435
+ static abilityType() {
436
+ return Ability.abilityTypeOf(this);
437
+ }
438
+ /**
439
+ * Returns the most abstract type of this Ability instance,
440
+ * specifically the first class in the inheritance hierarchy that directly extends the `Ability` class.
441
+ *
442
+ * ```ts
443
+ * import { Ability } from '@serenity-js/core';
444
+ *
445
+ * class MyAbility extends Ability {}
446
+ * class MySpecialisedAbility extends MyAbility {}
447
+ *
448
+ * new MyAbility().abilityType(); // returns MyAbility
449
+ * new MySpecialisedAbility().abilityType(); // returns MyAbility
450
+ * ```
451
+ */
452
+ abilityType() {
453
+ return Ability.abilityTypeOf(this.constructor);
454
+ }
455
+ static abilityTypeOf(abilityType) {
456
+ const abilityTypes = Ability.ancestorTypes(abilityType);
457
+ return [
458
+ ...abilityTypes,
459
+ abilityType
460
+ ][0];
461
+ }
462
+ static ancestorTypes(abilityType, ancestors = []) {
463
+ const parentType = Object.getPrototypeOf(abilityType);
464
+ return !parentType || parentType === Ability
465
+ ? ancestors
466
+ : this.ancestorTypes(parentType, [parentType, ...ancestors]);
467
+ }
403
468
  }
404
469
  exports.Ability = Ability;
405
470
  //# sourceMappingURL=Ability.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Ability.js","sourceRoot":"","sources":["../../../src/screenplay/abilities/Ability.ts"],"names":[],"mappings":";;;AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqWG;AACH,MAAsB,OAAO;IAEzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,MAAM,CAAC,EAAE,CAEL,KAAoB;QAEpB,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAM,CAAC;IACtC,CAAC;CACJ;AA7CD,0BA6CC"}
1
+ {"version":3,"file":"Ability.js","sourceRoot":"","sources":["../../../src/screenplay/abilities/Ability.ts"],"names":[],"mappings":";;;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqWG;AACH,MAAsB,OAAO;IAEzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,MAAM,CAAC,EAAE,CAEL,KAAoB;QAEpB,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAM,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,MAAM;QACF,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC;QAE5C,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;YAC/B,OAAO;gBACH,KAAK,EAAE,YAAY;gBACnB,IAAI,EAAE,WAAW;aACpB,CAAC;QACN,CAAC;QACD,OAAO;YACH,IAAI,EAAE,WAAW;SACpB,CAAA;IACL,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,WAAW;QACd,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,WAAW;QACP,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,WAAmC,CAAC,CAAC;IAC3E,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,WAAiC;QAC1D,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACxD,OAAO;YACH,GAAG,YAAY;YACf,WAAW;SACd,CAAC,CAAC,CAAC,CAAC;IACT,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,WAAiC,EAAE,YAAyC,EAAE;QACvG,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAEtD,OAAO,CAAE,UAAU,IAAI,UAAU,KAAK,OAAO;YACzC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAE,UAAU,EAAE,GAAG,SAAS,CAAE,CAAC,CAAC;IACvE,CAAC;CACJ;AArHD,0BAqHC"}
@@ -1,4 +1,5 @@
1
1
  import type { Ability } from './Ability';
2
+ import type { UsesAbilities } from './UsesAbilities';
2
3
  /**
3
4
  * An interface describing the static access method that every [`Ability`](https://serenity-js.org/api/core/class/Ability/) class
4
5
  * needs to provide in order to be accessible from within the [interactions](https://serenity-js.org/api/core/class/Interaction/).
@@ -41,5 +42,8 @@ import type { Ability } from './Ability';
41
42
  *
42
43
  * @group Abilities
43
44
  */
44
- export type AbilityType<A extends Ability> = (abstract new (...args: any[]) => A);
45
+ export type AbilityType<A extends Ability> = (abstract new (...args: any[]) => A) & {
46
+ as<S extends Ability>(this: AbilityType<S>, actor: UsesAbilities): S;
47
+ abilityType(): AbilityType<Ability>;
48
+ };
45
49
  //# sourceMappingURL=AbilityType.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbilityType.d.ts","sourceRoot":"","sources":["../../../src/screenplay/abilities/AbilityType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,OAAO,IACrC,CAAC,QAAQ,MAAM,GAAI,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"AbilityType.d.ts","sourceRoot":"","sources":["../../../src/screenplay/abilities/AbilityType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,OAAO,IACrC,CAAC,QAAQ,MAAM,GAAI,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,GAAG;IACpC,EAAE,CAAC,CAAC,SAAS,OAAO,EAChB,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,aAAa,GACrB,CAAC,CAAC;IACL,WAAW,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;CACtC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { JSONValue } from 'tiny-types';
2
+ /**
3
+ * @group Abilities
4
+ */
5
+ export interface SerialisedAbility {
6
+ type: string;
7
+ class?: string;
8
+ options?: JSONValue;
9
+ }
10
+ //# sourceMappingURL=SerialisedAbility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SerialisedAbility.d.ts","sourceRoot":"","sources":["../../../src/screenplay/abilities/SerialisedAbility.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,SAAS,CAAC;CACvB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=SerialisedAbility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SerialisedAbility.js","sourceRoot":"","sources":["../../../src/screenplay/abilities/SerialisedAbility.ts"],"names":[],"mappings":""}
@@ -5,5 +5,6 @@ export * from './CanHaveAbilities';
5
5
  export * from './Discardable';
6
6
  export * from './Initialisable';
7
7
  export * from './PerformActivities';
8
+ export * from './SerialisedAbility';
8
9
  export * from './UsesAbilities';
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/screenplay/abilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/screenplay/abilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC"}
@@ -21,5 +21,6 @@ __exportStar(require("./CanHaveAbilities"), exports);
21
21
  __exportStar(require("./Discardable"), exports);
22
22
  __exportStar(require("./Initialisable"), exports);
23
23
  __exportStar(require("./PerformActivities"), exports);
24
+ __exportStar(require("./SerialisedAbility"), exports);
24
25
  __exportStar(require("./UsesAbilities"), exports);
25
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/screenplay/abilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,gDAA8B;AAC9B,oDAAkC;AAClC,qDAAmC;AACnC,gDAA8B;AAC9B,kDAAgC;AAChC,sDAAoC;AACpC,kDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/screenplay/abilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,gDAA8B;AAC9B,oDAAkC;AAClC,qDAAmC;AACnC,gDAA8B;AAC9B,kDAAgC;AAChC,sDAAoC;AACpC,sDAAoC;AACpC,kDAAgC"}
@@ -12,6 +12,7 @@ export * from './Optional';
12
12
  export * from './Question';
13
13
  export * from './questions';
14
14
  export * from './RecursivelyAnswered';
15
+ export * from './SerialisedActor';
15
16
  export * from './Task';
16
17
  export * from './time';
17
18
  export * from './WithAnswerableProperties';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/screenplay/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/screenplay/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,4BAA4B,CAAC"}
@@ -28,6 +28,7 @@ __exportStar(require("./Optional"), exports);
28
28
  __exportStar(require("./Question"), exports);
29
29
  __exportStar(require("./questions"), exports);
30
30
  __exportStar(require("./RecursivelyAnswered"), exports);
31
+ __exportStar(require("./SerialisedActor"), exports);
31
32
  __exportStar(require("./Task"), exports);
32
33
  __exportStar(require("./time"), exports);
33
34
  __exportStar(require("./WithAnswerableProperties"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/screenplay/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,+CAA6B;AAC7B,6CAA2B;AAC3B,0CAAwB;AACxB,+CAA6B;AAC7B,6CAA2B;AAC3B,8CAA4B,CAAI,0CAA0C;AAC1E,8CAA4B;AAC5B,gDAA8B;AAC9B,0CAAwB;AACxB,6CAA2B;AAC3B,6CAA2B;AAC3B,8CAA4B;AAC5B,wDAAsC;AACtC,yCAAuB;AACvB,yCAAuB;AACvB,6DAA2C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/screenplay/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,+CAA6B;AAC7B,6CAA2B;AAC3B,0CAAwB;AACxB,+CAA6B;AAC7B,6CAA2B;AAC3B,8CAA4B,CAAI,0CAA0C;AAC1E,8CAA4B;AAC5B,gDAA8B;AAC9B,0CAAwB;AACxB,6CAA2B;AAC3B,6CAA2B;AAC3B,8CAA4B;AAC5B,wDAAsC;AACtC,oDAAkC;AAClC,yCAAuB;AACvB,yCAAuB;AACvB,6DAA2C"}
@@ -1,4 +1,4 @@
1
- import { Ability } from '../abilities';
1
+ import { Ability, type SerialisedAbility } from '../abilities';
2
2
  import { Notepad } from './Notepad';
3
3
  /**
4
4
  * An [`Ability`](https://serenity-js.org/api/core/class/Ability/) that enables an [`Actor`](https://serenity-js.org/api/core/class/Actor/) to remember information
@@ -245,5 +245,6 @@ export declare class TakeNotes<Notes_Type extends Record<any, any>> extends Abil
245
245
  * @param notepad
246
246
  */
247
247
  constructor(notepad: Notepad<Notes_Type>);
248
+ toJSON(): SerialisedAbility;
248
249
  }
249
250
  //# sourceMappingURL=TakeNotes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TakeNotes.d.ts","sourceRoot":"","sources":["../../../src/screenplay/notes/TakeNotes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmOG;AACH,qBAAa,SAAS,CAAC,UAAU,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAE,SAAQ,OAAO;aAsB3C,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC;IApBxD;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC;IAItE;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAI3E;;OAEG;gBACyB,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC;CAG3D"}
1
+ {"version":3,"file":"TakeNotes.d.ts","sourceRoot":"","sources":["../../../src/screenplay/notes/TakeNotes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmOG;AACH,qBAAa,SAAS,CAAC,UAAU,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAE,SAAQ,OAAO;aAsB3C,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC;IApBxD;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC;IAItE;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAI3E;;OAEG;gBACyB,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC;IAIxD,MAAM,IAAI,iBAAiB;CAQ9B"}
@@ -255,6 +255,14 @@ class TakeNotes extends abilities_1.Ability {
255
255
  super();
256
256
  this.notepad = notepad;
257
257
  }
258
+ toJSON() {
259
+ return {
260
+ ...super.toJSON(),
261
+ options: {
262
+ notepad: this.notepad.toJSON(),
263
+ }
264
+ };
265
+ }
258
266
  }
259
267
  exports.TakeNotes = TakeNotes;
260
268
  //# sourceMappingURL=TakeNotes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TakeNotes.js","sourceRoot":"","sources":["../../../src/screenplay/notes/TakeNotes.ts"],"names":[],"mappings":";;;AAAA,4CAAuC;AACvC,uCAAoC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmOG;AACH,MAAa,SAA+C,SAAQ,mBAAO;IAsB3C;IApB5B;;OAEG;IACH,MAAM,CAAC,mBAAmB;QACtB,OAAO,SAAS,CAAC,KAAK,CAAI,iBAAO,CAAC,KAAK,EAAK,CAAC,CAAC;IAClD,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAA6B,OAAmB;QACxD,OAAO,IAAI,SAAS,CAAI,OAAO,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,YAA4B,OAA4B;QACpD,KAAK,EAAE,CAAC;QADgB,YAAO,GAAP,OAAO,CAAqB;IAExD,CAAC;CACJ;AAzBD,8BAyBC"}
1
+ {"version":3,"file":"TakeNotes.js","sourceRoot":"","sources":["../../../src/screenplay/notes/TakeNotes.ts"],"names":[],"mappings":";;;AAAA,4CAA+D;AAC/D,uCAAoC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmOG;AACH,MAAa,SAA+C,SAAQ,mBAAO;IAsB3C;IApB5B;;OAEG;IACH,MAAM,CAAC,mBAAmB;QACtB,OAAO,SAAS,CAAC,KAAK,CAAI,iBAAO,CAAC,KAAK,EAAK,CAAC,CAAC;IAClD,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAA6B,OAAmB;QACxD,OAAO,IAAI,SAAS,CAAI,OAAO,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,YAA4B,OAA4B;QACpD,KAAK,EAAE,CAAC;QADgB,YAAO,GAAP,OAAO,CAAqB;IAExD,CAAC;IAED,MAAM;QACF,OAAO;YACH,GAAG,KAAK,CAAC,MAAM,EAAE;YACjB,OAAO,EAAE;gBACL,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;aACjC;SACJ,CAAC;IACN,CAAC;CACJ;AAlCD,8BAkCC"}
@@ -1,4 +1,4 @@
1
- import type { Discardable } from '../../abilities';
1
+ import type { Discardable, SerialisedAbility } from '../../abilities';
2
2
  import { Ability } from '../../abilities';
3
3
  import type { Clock, DelayedCallback, Duration, RepeatUntilLimits } from '../models';
4
4
  /**
@@ -21,5 +21,6 @@ export declare class ScheduleWork extends Ability implements Discardable {
21
21
  repeatUntil<Result>(callback: DelayedCallback<Result>, limits?: RepeatUntilLimits<Result>): Promise<Result>;
22
22
  waitFor(delay: Duration): Promise<void>;
23
23
  discard(): void;
24
+ toJSON(): SerialisedAbility;
24
25
  }
25
26
  //# sourceMappingURL=ScheduleWork.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScheduleWork.d.ts","sourceRoot":"","sources":["../../../../src/screenplay/time/abilities/ScheduleWork.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAGpF;;;;;;;;;GASG;AACH,qBAAa,YAAa,SAAQ,OAAQ,YAAW,WAAW;IAE5D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAE1B,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,QAAQ;IAKtD;;;OAGG;IACH,WAAW,CAAC,MAAM,EACd,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,EACjC,MAAM,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,GACnC,OAAO,CAAC,MAAM,CAAC;IAIlB,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,OAAO,IAAI,IAAI;CAGlB"}
1
+ {"version":3,"file":"ScheduleWork.d.ts","sourceRoot":"","sources":["../../../../src/screenplay/time/abilities/ScheduleWork.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAGrF;;;;;;;;;GASG;AACH,qBAAa,YAAa,SAAQ,OAAQ,YAAW,WAAW;IAE5D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAE1B,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,QAAQ;IAKtD;;;OAGG;IACH,WAAW,CAAC,MAAM,EACd,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,EACjC,MAAM,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,GACnC,OAAO,CAAC,MAAM,CAAC;IAIlB,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,OAAO,IAAI,IAAI;IAIN,MAAM,IAAI,iBAAiB;CAQvC"}
@@ -32,6 +32,14 @@ class ScheduleWork extends abilities_1.Ability {
32
32
  discard() {
33
33
  this.scheduler.stop();
34
34
  }
35
+ toJSON() {
36
+ return {
37
+ ...super.toJSON(),
38
+ options: {
39
+ scheduler: this.scheduler.toJSON(),
40
+ },
41
+ };
42
+ }
35
43
  }
36
44
  exports.ScheduleWork = ScheduleWork;
37
45
  //# sourceMappingURL=ScheduleWork.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScheduleWork.js","sourceRoot":"","sources":["../../../../src/screenplay/time/abilities/ScheduleWork.ts"],"names":[],"mappings":";;;AACA,+CAA0C;AAE1C,sCAAsC;AAEtC;;;;;;;;;GASG;AACH,MAAa,YAAa,SAAQ,mBAAO;IAEpB,SAAS,CAAY;IAEtC,YAAY,KAAY,EAAE,kBAA4B;QAClD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAS,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACH,WAAW,CACP,QAAiC,EACjC,MAAkC;QAElC,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,CAAC,KAAe;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,OAAO;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;CACJ;AA3BD,oCA2BC"}
1
+ {"version":3,"file":"ScheduleWork.js","sourceRoot":"","sources":["../../../../src/screenplay/time/abilities/ScheduleWork.ts"],"names":[],"mappings":";;;AACA,+CAA0C;AAE1C,sCAAsC;AAEtC;;;;;;;;;GASG;AACH,MAAa,YAAa,SAAQ,mBAAO;IAEpB,SAAS,CAAY;IAEtC,YAAY,KAAY,EAAE,kBAA4B;QAClD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAS,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACH,WAAW,CACP,QAAiC,EACjC,MAAkC;QAElC,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,CAAC,KAAe;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,OAAO;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAEQ,MAAM;QACX,OAAO;YACH,GAAG,KAAK,CAAC,MAAM,EAAE;YACjB,OAAO,EAAE;gBACL,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;aACrC;SACJ,CAAC;IACN,CAAC;CACJ;AApCD,oCAoCC"}
@@ -1,3 +1,4 @@
1
+ import { type JSONObject } from 'tiny-types';
1
2
  import { Duration } from './Duration';
2
3
  import { Timestamp } from './Timestamp';
3
4
  /**
@@ -19,6 +20,7 @@ export declare class Clock {
19
20
  private static resolution;
20
21
  private timeAdjustment;
21
22
  constructor(checkTime?: () => Date);
23
+ toJSON(): JSONObject;
22
24
  /**
23
25
  * Sets the clock ahead to force early resolution of promises
24
26
  * returned by [`Clock.waitFor`](https://serenity-js.org/api/core/class/Clock/#waitFor).
@@ -1 +1 @@
1
- {"version":3,"file":"Clock.d.ts","sourceRoot":"","sources":["../../../../src/screenplay/time/models/Clock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;;;;;;;;;GAaG;AACH,qBAAa,KAAK;IAIF,OAAO,CAAC,QAAQ,CAAC,SAAS;IAHtC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAyC;IAClE,OAAO,CAAC,cAAc,CAAwC;gBAEjC,SAAS,GAAE,MAAM,IAAuB;IAGrE;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIlC;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B;;OAEG;IACH,GAAG,IAAI,SAAS;IAIhB;;;;OAIG;IACG,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAcnD"}
1
+ {"version":3,"file":"Clock.d.ts","sourceRoot":"","sources":["../../../../src/screenplay/time/models/Clock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;;;;;;;;;GAaG;AACH,qBAAa,KAAK;IAIF,OAAO,CAAC,QAAQ,CAAC,SAAS;IAHtC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAyC;IAClE,OAAO,CAAC,cAAc,CAAwC;gBAEjC,SAAS,GAAE,MAAM,IAAuB;IAGrE,MAAM,IAAI,UAAU;IAMpB;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIlC;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B;;OAEG;IACH,GAAG,IAAI,SAAS;IAIhB;;;;OAIG;IACG,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAcnD"}
@@ -25,6 +25,11 @@ class Clock {
25
25
  constructor(checkTime = () => new Date()) {
26
26
  this.checkTime = checkTime;
27
27
  }
28
+ toJSON() {
29
+ return {
30
+ timeAdjustment: this.timeAdjustment.toJSON(),
31
+ };
32
+ }
28
33
  /**
29
34
  * Sets the clock ahead to force early resolution of promises
30
35
  * returned by [`Clock.waitFor`](https://serenity-js.org/api/core/class/Clock/#waitFor).
@@ -1 +1 @@
1
- {"version":3,"file":"Clock.js","sourceRoot":"","sources":["../../../../src/screenplay/time/models/Clock.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAE/C,yCAAsC;AACtC,2CAAwC;AAExC;;;;;;;;;;;;;GAaG;AACH,MAAa,KAAK;IAIe;IAHrB,MAAM,CAAC,UAAU,GAAa,mBAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC1D,cAAc,GAAa,mBAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAE9D,YAA6B,YAAwB,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;QAAxC,cAAS,GAAT,SAAS,CAA+B;IACrE,CAAC;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAkB;QACvB,IAAI,CAAC,cAAc,GAAG,IAAA,mBAAM,EAAC,UAAU,EAAE,QAAQ,EAAE,IAAA,sBAAS,GAAE,CAAC,CAAC;IACpE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI;QACN,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED;;OAEG;IACH,GAAG;QACC,OAAO,IAAI,qBAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACrE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,QAAkB;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEzC,IAAI,KAAqB,CAAC;QAE1B,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAC/B,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;gBACrB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;oBACpC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACrB,OAAO,OAAO,EAAE,CAAC;gBACrB,CAAC;YACL,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;;AArDL,sBAsDC"}
1
+ {"version":3,"file":"Clock.js","sourceRoot":"","sources":["../../../../src/screenplay/time/models/Clock.ts"],"names":[],"mappings":";;;AAAA,2CAAgE;AAEhE,yCAAsC;AACtC,2CAAwC;AAExC;;;;;;;;;;;;;GAaG;AACH,MAAa,KAAK;IAIe;IAHrB,MAAM,CAAC,UAAU,GAAa,mBAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC1D,cAAc,GAAa,mBAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAE9D,YAA6B,YAAwB,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;QAAxC,cAAS,GAAT,SAAS,CAA+B;IACrE,CAAC;IAED,MAAM;QACF,OAAO;YACH,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;SAC/C,CAAC;IACN,CAAC;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAkB;QACvB,IAAI,CAAC,cAAc,GAAG,IAAA,mBAAM,EAAC,UAAU,EAAE,QAAQ,EAAE,IAAA,sBAAS,GAAE,CAAC,CAAC;IACpE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI;QACN,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED;;OAEG;IACH,GAAG;QACC,OAAO,IAAI,qBAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACrE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,QAAkB;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEzC,IAAI,KAAqB,CAAC;QAE1B,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAC/B,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;gBACrB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;oBACpC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACrB,OAAO,OAAO,EAAE,CAAC;gBACrB,CAAC;YACL,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;;AA3DL,sBA4DC"}
@@ -1,3 +1,4 @@
1
+ import type { JSONObject } from 'tiny-types';
1
2
  import type { Clock } from './Clock';
2
3
  import type { DelayedCallback } from './DelayedCallback';
3
4
  import { Duration } from './Duration';
@@ -15,6 +16,7 @@ export declare class Scheduler {
15
16
  * The maximum amount of time to give to a callback to complete before throwing an error
16
17
  */
17
18
  constructor(clock: Clock, interactionTimeout: Duration);
19
+ toJSON(): JSONObject;
18
20
  /**
19
21
  * Schedules a callback function to be invoked after a delay
20
22
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Scheduler.d.ts","sourceRoot":"","sources":["../../../../src/screenplay/time/models/Scheduler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D;;GAEG;AACH,qBAAa,SAAS;IAUd,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IATvC,OAAO,CAAC,mBAAmB,CAA0C;IAErE;;;;OAIG;gBAEkB,KAAK,EAAE,KAAK,EACZ,kBAAkB,EAAE,QAAQ;IAIjD;;;;;OAKG;IACH,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAWlF;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAavC;;;;;OAKG;IACG,WAAW,CAAC,MAAM,EACpB,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,EACjC,MAAM,GAAE,iBAAiB,CAAC,MAAM,CAAM,GACvC,OAAO,CAAC,MAAM,CAAC;IA0BlB,IAAI,IAAI,IAAI;CAKf"}
1
+ {"version":3,"file":"Scheduler.d.ts","sourceRoot":"","sources":["../../../../src/screenplay/time/models/Scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D;;GAEG;AACH,qBAAa,SAAS;IAUd,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IATvC,OAAO,CAAC,mBAAmB,CAA0C;IAErE;;;;OAIG;gBAEkB,KAAK,EAAE,KAAK,EACZ,kBAAkB,EAAE,QAAQ;IAIjD,MAAM,IAAI,UAAU;IAOpB;;;;;OAKG;IACH,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAWlF;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAavC;;;;;OAKG;IACG,WAAW,CAAC,MAAM,EACpB,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,EACjC,MAAM,GAAE,iBAAiB,CAAC,MAAM,CAAM,GACvC,OAAO,CAAC,MAAM,CAAC;IA0BlB,IAAI,IAAI,IAAI;CAKf"}
@@ -19,6 +19,12 @@ class Scheduler {
19
19
  this.clock = clock;
20
20
  this.interactionTimeout = interactionTimeout;
21
21
  }
22
+ toJSON() {
23
+ return {
24
+ clock: this.clock.toJSON(),
25
+ interactionTimeout: this.interactionTimeout.toJSON(),
26
+ };
27
+ }
22
28
  /**
23
29
  * Schedules a callback function to be invoked after a delay
24
30
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Scheduler.js","sourceRoot":"","sources":["../../../../src/screenplay/time/models/Scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Scheduler.js","sourceRoot":"","sources":["../../../../src/screenplay/time/models/Scheduler.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,7 @@
1
- import type { ErrorFactory, ErrorOptions, RuntimeError } from '../errors';
2
- import type { DomainEvent, EmitsDomainEvents } from '../events';
3
- import type { ActivityDetails } from '../model';
4
- import { CorrelationId } from '../model';
5
- import type { Clock, Duration, Timestamp } from '../screenplay';
6
- import { Actor } from '../screenplay';
1
+ import { type ErrorFactory, type ErrorOptions, type RuntimeError } from '../errors';
2
+ import { type DomainEvent, type EmitsDomainEvents } from '../events';
3
+ import { type ActivityDetails, CorrelationId } from '../model';
4
+ import { Actor, type Clock, type Duration, type Timestamp } from '../screenplay';
7
5
  import type { ListensToDomainEvents } from '../stage';
8
6
  import type { Cast } from './Cast';
9
7
  import type { StageManager } from './StageManager';
@@ -29,7 +27,7 @@ export declare class Stage implements EmitsDomainEvents {
29
27
  private errors;
30
28
  private readonly clock;
31
29
  private readonly interactionTimeout;
32
- private static readonly unknownSceneId;
30
+ static readonly unknownSceneId: CorrelationId;
33
31
  /**
34
32
  * Actors instantiated after the scene has started,
35
33
  * who will be dismissed when the scene finishes.
@@ -155,6 +153,7 @@ export declare class Stage implements EmitsDomainEvents {
155
153
  waitForNextCue(): Promise<void>;
156
154
  createError<RE extends RuntimeError>(errorType: new (...args: any[]) => RE, options: ErrorOptions): RE;
157
155
  private instantiatedActorCalled;
156
+ private notifyOfStageExit;
158
157
  private dismiss;
159
158
  private typeOf;
160
159
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Stage.d.ts","sourceRoot":"","sources":["../../src/stage/Stage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE1E,OAAO,KAAK,EACR,WAAW,EACX,iBAAiB,EAAC,MAAM,WAAW,CAAC;AASxC,OAAO,KAAK,EAAE,eAAe,EAAC,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAqB,MAAM,UAAU,CAAC;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,KAAM,YAAW,iBAAiB;IAmCvC,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IArCvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAA+B;IAErE;;;OAGG;IACH,OAAO,CAAC,kBAAkB,CAAgD;IAE1E;;;OAGG;IACH,OAAO,CAAC,iBAAiB,CAAgD;IAEzE,OAAO,CAAC,aAAa,CAA8C;IAEnE;;OAEG;IACH,OAAO,CAAC,mBAAmB,CAAoB;IAE/C,OAAO,CAAC,eAAe,CAA8D;IAErF,OAAO,CAAC,YAAY,CAAuC;IAE3D;;;;;;OAMG;gBAES,IAAI,EAAE,IAAI,EACD,OAAO,EAAE,YAAY,EAC9B,MAAM,EAAE,YAAY,EACX,KAAK,EAAE,KAAK,EACZ,kBAAkB,EAAE,QAAQ;IASjD;;;;OAIG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAInC;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IA8B1B;;;;;;OAMG;IACH,sBAAsB,IAAI,KAAK;IAQ/B;;OAEG;IACH,iBAAiB,IAAI,OAAO;IAI5B;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;IAM1B;;;;;OAKG;IACH,MAAM,CAAC,GAAG,SAAS,EAAE,qBAAqB,EAAE,GAAG,IAAI;IAInD;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI;IAM7C,OAAO,CAAC,cAAc;IAkBtB;;;OAGG;IACH,WAAW,IAAI,SAAS;IAIxB;;;;;;;;;OASG;IACH,gBAAgB,IAAI,aAAa;IAOjC;;;;;OAKG;IACH,cAAc,IAAI,aAAa;IAI/B;;;;;;;;;OASG;IACH,mBAAmB,CAAC,eAAe,EAAE,eAAe,GAAG,aAAa;IASpE;;;;;OAKG;IACH,iBAAiB,IAAI,aAAa;IAQlC;;;;;;;OAOG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,SAAS,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,EAAE;IAOtG,OAAO,CAAC,uBAAuB;YAMjB,OAAO;IAuCrB,OAAO,CAAC,MAAM;CAKjB"}
1
+ {"version":3,"file":"Stage.d.ts","sourceRoot":"","sources":["../../src/stage/Stage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,YAAY,EAAE,KAAK,YAAY,EAA0B,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAChI,OAAO,EAMH,KAAK,WAAW,EAChB,KAAK,iBAAiB,EAIzB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,KAAK,eAAe,EAAE,aAAa,EAAQ,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,QAAQ,EAAgB,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,KAAM,YAAW,iBAAiB;IAmCvC,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IArCvC,gBAAuB,cAAc,gBAA+B;IAEpE;;;OAGG;IACH,OAAO,CAAC,kBAAkB,CAAgD;IAE1E;;;OAGG;IACH,OAAO,CAAC,iBAAiB,CAAgD;IAEzE,OAAO,CAAC,aAAa,CAA8C;IAEnE;;OAEG;IACH,OAAO,CAAC,mBAAmB,CAAoB;IAE/C,OAAO,CAAC,eAAe,CAA8D;IAErF,OAAO,CAAC,YAAY,CAAuC;IAE3D;;;;;;OAMG;gBAES,IAAI,EAAE,IAAI,EACD,OAAO,EAAE,YAAY,EAC9B,MAAM,EAAE,YAAY,EACX,KAAK,EAAE,KAAK,EACZ,kBAAkB,EAAE,QAAQ;IASjD;;;;OAIG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAInC;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IA2C1B;;;;;;OAMG;IACH,sBAAsB,IAAI,KAAK;IAQ/B;;OAEG;IACH,iBAAiB,IAAI,OAAO;IAI5B;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;IAM1B;;;;;OAKG;IACH,MAAM,CAAC,GAAG,SAAS,EAAE,qBAAqB,EAAE,GAAG,IAAI;IAInD;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI;IAM7C,OAAO,CAAC,cAAc;IAsBtB;;;OAGG;IACH,WAAW,IAAI,SAAS;IAIxB;;;;;;;;;OASG;IACH,gBAAgB,IAAI,aAAa;IAOjC;;;;;OAKG;IACH,cAAc,IAAI,aAAa;IAI/B;;;;;;;;;OASG;IACH,mBAAmB,CAAC,eAAe,EAAE,eAAe,GAAG,aAAa;IASpE;;;;;OAKG;IACH,iBAAiB,IAAI,aAAa;IAQlC;;;;;;;OAOG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,SAAS,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,EAAE;IAOtG,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,iBAAiB;YAUX,OAAO;IAuCrB,OAAO,CAAC,MAAM;CAKjB"}
@@ -89,8 +89,6 @@ class Stage {
89
89
  new screenplay_1.ScheduleWork(this.clock, this.interactionTimeout)
90
90
  ]);
91
91
  actor = this.cast.prepare(newActor);
92
- // todo this.manager.notifyOf(ActorStarts)
93
- // todo: map this in Serenity BDD Reporter so that the "cast" is recorded
94
92
  }
95
93
  catch (error) {
96
94
  throw new errors_1.ConfigurationError(`${this.typeOf(this.cast)} encountered a problem when preparing actor "${name}" for stage`, error);
@@ -99,6 +97,10 @@ class Stage {
99
97
  throw new errors_1.ConfigurationError(`Instead of a new instance of actor "${name}", ${this.typeOf(this.cast)} returned ${actor}`);
100
98
  }
101
99
  this.actorsOnStage.set(name, actor);
100
+ this.announce(new events_1.ActorEntersStage(this.currentScene, actor.toJSON()));
101
+ }
102
+ if (this.actorsOnBackstage.has(name)) {
103
+ this.announce(new events_1.ActorEntersStage(this.currentScene, this.actorsOnBackstage.get(name).toJSON()));
102
104
  }
103
105
  this.actorInTheSpotlight = this.instantiatedActorCalled(name);
104
106
  return this.actorInTheSpotlight;
@@ -156,6 +158,9 @@ class Stage {
156
158
  if (event instanceof events_1.SceneStarts) {
157
159
  this.actorsOnStage = this.actorsOnFrontStage;
158
160
  }
161
+ if (event instanceof events_1.SceneFinishes || event instanceof events_1.TestRunFinishes) {
162
+ this.notifyOfStageExit(this.currentSceneId());
163
+ }
159
164
  this.manager.notifyOf(event);
160
165
  if (event instanceof events_1.SceneFinishes) {
161
166
  this.dismiss(this.actorsOnStage);
@@ -247,6 +252,11 @@ class Stage {
247
252
  ? this.actorsOnBackstage.get(name)
248
253
  : this.actorsOnFrontStage.get(name);
249
254
  }
255
+ notifyOfStageExit(sceneId) {
256
+ for (const actor of this.actorsOnStage.values()) {
257
+ this.announce(new events_1.ActorStageExitStarts(sceneId, actor.toJSON(), this.currentTime()));
258
+ }
259
+ }
250
260
  async dismiss(activeActors) {
251
261
  const actors = Array.from(activeActors.values());
252
262
  if (actors.includes(this.actorInTheSpotlight)) {
@@ -256,16 +266,16 @@ class Stage {
256
266
  await this.manager.waitForAsyncOperationsToComplete();
257
267
  const actorsToDismiss = new Map(actors.map(actor => [actor, model_1.CorrelationId.create()]));
258
268
  for (const [actor, correlationId] of actorsToDismiss) {
259
- this.announce(new events_1.AsyncOperationAttempted(new model_1.Name(this.constructor.name), new model_1.Description(`Dismissing ${actor.name}...`), correlationId, this.currentTime()));
269
+ this.announce(new events_1.ActorStageExitAttempted(correlationId, new model_1.Name(actor.name), this.currentTime()));
260
270
  }
261
271
  // Try to dismiss each actor
262
272
  for (const [actor, correlationId] of actorsToDismiss) {
263
273
  try {
264
274
  await actor.dismiss();
265
- this.announce(new events_1.AsyncOperationCompleted(correlationId, this.currentTime()));
275
+ this.announce(new events_1.ActorStageExitCompleted(correlationId, new model_1.Name(actor.name), this.currentTime()));
266
276
  }
267
277
  catch (error) {
268
- this.announce(new events_1.AsyncOperationFailed(error, correlationId, this.currentTime())); // todo: serialise the error!
278
+ this.announce(new events_1.ActorStageExitFailed(error, correlationId, this.currentTime()));
269
279
  }
270
280
  }
271
281
  activeActors.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"Stage.js","sourceRoot":"","sources":["../../src/stage/Stage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Stage.js","sourceRoot":"","sources":["../../src/stage/Stage.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serenity-js/core",
3
- "version": "3.25.4",
3
+ "version": "3.26.0",
4
4
  "description": "The core Serenity/JS framework, providing the Screenplay Pattern interfaces, as well as the test reporting and integration infrastructure",
5
5
  "author": {
6
6
  "name": "Jan Molak",
@@ -41,12 +41,12 @@
41
41
  "filenamify": "4.3.0",
42
42
  "graceful-fs": "4.2.11",
43
43
  "semver": "7.6.3",
44
- "tiny-types": "1.22.0",
44
+ "tiny-types": "1.23.0",
45
45
  "upath": "2.0.1",
46
46
  "validate-npm-package-name": "5.0.1"
47
47
  },
48
48
  "devDependencies": {
49
- "@types/chai": "4.3.17",
49
+ "@types/chai": "4.3.18",
50
50
  "@types/diff": "5.2.1",
51
51
  "@types/filenamify": "2.0.2",
52
52
  "@types/mocha": "10.0.7",
@@ -55,7 +55,7 @@
55
55
  "assertion-error-formatter": "3.0.0",
56
56
  "c8": "10.1.2",
57
57
  "memfs": "4.11.1",
58
- "mocha": "10.7.0",
58
+ "mocha": "10.7.3",
59
59
  "mocha-multi": "1.1.7",
60
60
  "ts-node": "10.9.2",
61
61
  "typescript": "5.5.4"
@@ -71,5 +71,5 @@
71
71
  "engines": {
72
72
  "node": "^16.13 || ^18.12 || ^20"
73
73
  },
74
- "gitHead": "aebcb7b47540576437d79f6190c867a455ea695b"
74
+ "gitHead": "bd5ea6b04d1fd1d9576a0fc28509f3f947365b35"
75
75
  }
@@ -0,0 +1,32 @@
1
+ import type { JSONObject } from 'tiny-types';
2
+ import { ensure, isDefined } from 'tiny-types';
3
+
4
+ import { CorrelationId } from '../../model';
5
+ import { type SerialisedActor, Timestamp } from '../../screenplay';
6
+ import { DomainEvent } from '../DomainEvent';
7
+
8
+ /**
9
+ * Emitted when an [`Actor`](https://serenity-js.org/api/core/class/Actor/) is activated
10
+ * as the result of invoking [`actorCalled`](https://serenity-js.org/api/core/function/actorCalled/).
11
+ *
12
+ * @group Events
13
+ */
14
+ export class ActorEntersStage extends DomainEvent {
15
+ public static fromJSON(o: JSONObject): ActorEntersStage {
16
+ return new ActorEntersStage(
17
+ CorrelationId.fromJSON(o.sceneId as string),
18
+ o.actor as unknown as SerialisedActor,
19
+ Timestamp.fromJSON(o.timestamp as string),
20
+ );
21
+ }
22
+
23
+ constructor(
24
+ public readonly sceneId: CorrelationId,
25
+ public readonly actor: SerialisedActor,
26
+ timestamp?: Timestamp,
27
+ ) {
28
+ super(timestamp);
29
+ ensure('sceneId', sceneId, isDefined());
30
+ ensure('actor', actor, isDefined());
31
+ }
32
+ }
@@ -0,0 +1,34 @@
1
+ import type { JSONObject } from 'tiny-types';
2
+ import { ensure, isDefined } from 'tiny-types';
3
+
4
+ import { CorrelationId, Description, Name } from '../../model';
5
+ import { Timestamp } from '../../screenplay';
6
+ import { AsyncOperationAttempted } from '../AsyncOperationAttempted';
7
+
8
+ /**
9
+ * Emitted when an [`Actor`](https://serenity-js.org/api/core/class/Actor/) is dismissed
10
+ * either upon the [`SceneFinishes`](https://serenity-js.org/api/core-events/class/SceneFinishes/) event
11
+ * for actors initialised within the scope of a test scenario,
12
+ * or upon the [`TestRunFinishes`](https://serenity-js.org/api/core-events/class/TestRunFinishes/) event
13
+ * for actors initialised within the scope of a test suite.
14
+ *
15
+ * @group Events
16
+ */
17
+ export class ActorStageExitAttempted extends AsyncOperationAttempted {
18
+ static fromJSON(o: JSONObject): ActorStageExitAttempted {
19
+ return new ActorStageExitAttempted(
20
+ CorrelationId.fromJSON(o.correlationId as string),
21
+ Name.fromJSON(o.actor as string),
22
+ Timestamp.fromJSON(o.timestamp as string),
23
+ );
24
+ }
25
+
26
+ constructor(
27
+ correlationId: CorrelationId,
28
+ public readonly actor: Name,
29
+ timestamp?: Timestamp,
30
+ ) {
31
+ ensure('actor', actor, isDefined());
32
+ super(new Name('Stage'), new Description(`Actor ${ actor.value } exits the stage`), correlationId, timestamp);
33
+ }
34
+ }