@serenity-js/core 3.42.2 → 3.43.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 (74) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/esm/Serenity.d.ts +3 -1
  3. package/esm/Serenity.d.ts.map +1 -1
  4. package/esm/Serenity.js +4 -3
  5. package/esm/Serenity.js.map +1 -1
  6. package/esm/screenplay/Actor.d.ts +1 -1
  7. package/esm/screenplay/Actor.d.ts.map +1 -1
  8. package/esm/screenplay/Actor.js +5 -6
  9. package/esm/screenplay/Actor.js.map +1 -1
  10. package/esm/screenplay/abilities/Discardable.d.ts +3 -2
  11. package/esm/screenplay/abilities/Discardable.d.ts.map +1 -1
  12. package/esm/screenplay/abilities/Discardable.js +25 -1
  13. package/esm/screenplay/abilities/Discardable.js.map +1 -1
  14. package/esm/screenplay/abilities/Initialisable.d.ts +4 -3
  15. package/esm/screenplay/abilities/Initialisable.d.ts.map +1 -1
  16. package/esm/screenplay/abilities/Initialisable.js +22 -1
  17. package/esm/screenplay/abilities/Initialisable.js.map +1 -1
  18. package/esm/stage/ActorLifecycleManager.d.ts +191 -0
  19. package/esm/stage/ActorLifecycleManager.d.ts.map +1 -0
  20. package/esm/stage/ActorLifecycleManager.js +255 -0
  21. package/esm/stage/ActorLifecycleManager.js.map +1 -0
  22. package/esm/stage/Stage.d.ts +22 -38
  23. package/esm/stage/Stage.d.ts.map +1 -1
  24. package/esm/stage/Stage.js +61 -117
  25. package/esm/stage/Stage.js.map +1 -1
  26. package/esm/stage/StageManager.d.ts +2 -4
  27. package/esm/stage/StageManager.d.ts.map +1 -1
  28. package/esm/stage/StageManager.js +0 -5
  29. package/esm/stage/StageManager.js.map +1 -1
  30. package/esm/stage/index.d.ts +1 -0
  31. package/esm/stage/index.d.ts.map +1 -1
  32. package/esm/stage/index.js +1 -0
  33. package/esm/stage/index.js.map +1 -1
  34. package/lib/Serenity.d.ts +3 -1
  35. package/lib/Serenity.d.ts.map +1 -1
  36. package/lib/Serenity.js +4 -3
  37. package/lib/Serenity.js.map +1 -1
  38. package/lib/screenplay/Actor.d.ts +1 -1
  39. package/lib/screenplay/Actor.d.ts.map +1 -1
  40. package/lib/screenplay/Actor.js +4 -5
  41. package/lib/screenplay/Actor.js.map +1 -1
  42. package/lib/screenplay/abilities/Discardable.d.ts +3 -2
  43. package/lib/screenplay/abilities/Discardable.d.ts.map +1 -1
  44. package/lib/screenplay/abilities/Discardable.js +27 -0
  45. package/lib/screenplay/abilities/Discardable.js.map +1 -1
  46. package/lib/screenplay/abilities/Initialisable.d.ts +4 -3
  47. package/lib/screenplay/abilities/Initialisable.d.ts.map +1 -1
  48. package/lib/screenplay/abilities/Initialisable.js +24 -0
  49. package/lib/screenplay/abilities/Initialisable.js.map +1 -1
  50. package/lib/stage/ActorLifecycleManager.d.ts +191 -0
  51. package/lib/stage/ActorLifecycleManager.d.ts.map +1 -0
  52. package/lib/stage/ActorLifecycleManager.js +259 -0
  53. package/lib/stage/ActorLifecycleManager.js.map +1 -0
  54. package/lib/stage/Stage.d.ts +22 -38
  55. package/lib/stage/Stage.d.ts.map +1 -1
  56. package/lib/stage/Stage.js +57 -113
  57. package/lib/stage/Stage.js.map +1 -1
  58. package/lib/stage/StageManager.d.ts +2 -4
  59. package/lib/stage/StageManager.d.ts.map +1 -1
  60. package/lib/stage/StageManager.js +0 -5
  61. package/lib/stage/StageManager.js.map +1 -1
  62. package/lib/stage/index.d.ts +1 -0
  63. package/lib/stage/index.d.ts.map +1 -1
  64. package/lib/stage/index.js +1 -0
  65. package/lib/stage/index.js.map +1 -1
  66. package/package.json +3 -3
  67. package/src/Serenity.ts +5 -2
  68. package/src/screenplay/Actor.ts +6 -9
  69. package/src/screenplay/abilities/Discardable.ts +7 -2
  70. package/src/screenplay/abilities/Initialisable.ts +10 -3
  71. package/src/stage/ActorLifecycleManager.ts +314 -0
  72. package/src/stage/Stage.ts +87 -165
  73. package/src/stage/StageManager.ts +3 -7
  74. package/src/stage/index.ts +1 -0
@@ -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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"}
@@ -1,12 +1,11 @@
1
1
  import type { DomainEvent } from '../events/index.js';
2
- import type { Clock, Duration, TellsTime, Timestamp } from '../screenplay/index.js';
2
+ import type { Clock, Duration } from '../screenplay/index.js';
3
3
  import type { ListensToDomainEvents } from '../stage/index.js';
4
4
  /**
5
5
  * @group Stage
6
6
  */
7
- export declare class StageManager implements TellsTime {
7
+ export declare class StageManager {
8
8
  private cueTimeout;
9
- private readonly clock;
10
9
  private readonly subscribers;
11
10
  private readonly wip;
12
11
  constructor(cueTimeout: Duration, clock: Clock);
@@ -18,6 +17,5 @@ export declare class StageManager implements TellsTime {
18
17
  notifyOf(event: DomainEvent): void;
19
18
  waitForAsyncOperationsToComplete(): Promise<void>;
20
19
  waitForNextCue(): Promise<void>;
21
- currentTime(): Timestamp;
22
20
  }
23
21
  //# sourceMappingURL=StageManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StageManager.d.ts","sourceRoot":"","sources":["../../src/stage/StageManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/D;;GAEG;AACH,qBAAa,YAAa,YAAW,SAAS;IAI9B,OAAO,CAAC,UAAU;IAAY,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHhE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+B;IAC3D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAM;gBAEN,UAAU,EAAE,QAAQ,EAAmB,KAAK,EAAE,KAAK;IAIvE,SAAS,CAAC,OAAO,EAAE;QAAE,UAAU,EAAE,QAAQ,CAAA;KAAE,GAAG,IAAI;IAKlD,QAAQ,CAAC,GAAG,WAAW,EAAE,qBAAqB,EAAE,GAAG,IAAI;IAIvD,UAAU,CAAC,UAAU,EAAE,qBAAqB,GAAG,IAAI;IAInD,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAMlC,gCAAgC,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB3C,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBrC,WAAW,IAAI,SAAS;CAG3B"}
1
+ {"version":3,"file":"StageManager.d.ts","sourceRoot":"","sources":["../../src/stage/StageManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAa,MAAM,wBAAwB,CAAC;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/D;;GAEG;AACH,qBAAa,YAAY;IAIT,OAAO,CAAC,UAAU;IAH9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+B;IAC3D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAM;gBAEN,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK;IAItD,SAAS,CAAC,OAAO,EAAE;QAAE,UAAU,EAAE,QAAQ,CAAA;KAAE,GAAG,IAAI;IAKlD,QAAQ,CAAC,GAAG,WAAW,EAAE,qBAAqB,EAAE,GAAG,IAAI;IAIvD,UAAU,CAAC,UAAU,EAAE,qBAAqB,GAAG,IAAI;IAInD,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAMlC,gCAAgC,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB3C,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAgBxC"}
@@ -4,12 +4,10 @@ import { AsyncOperationAttempted, AsyncOperationCompleted, AsyncOperationFailed
4
4
  */
5
5
  export class StageManager {
6
6
  cueTimeout;
7
- clock;
8
7
  subscribers = [];
9
8
  wip;
10
9
  constructor(cueTimeout, clock) {
11
10
  this.cueTimeout = cueTimeout;
12
- this.clock = clock;
13
11
  this.wip = new WIP(cueTimeout, clock);
14
12
  }
15
13
  configure(options) {
@@ -52,9 +50,6 @@ export class StageManager {
52
50
  throw new Error(this.wip.descriptionOfTimedOutOperations());
53
51
  }
54
52
  }
55
- currentTime() {
56
- return this.clock.now();
57
- }
58
53
  }
59
54
  /**
60
55
  * @package
@@ -1 +1 @@
1
- {"version":3,"file":"StageManager.js","sourceRoot":"","sources":["../../src/stage/StageManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StageManager.js","sourceRoot":"","sources":["../../src/stage/StageManager.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export * from './ActorLifecycleManager.js';
1
2
  export * from './Cast.js';
2
3
  export * from './crew/index.js';
3
4
  export * from './Extras.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stage/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yCAAyC,CAAC;AACxD,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stage/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yCAAyC,CAAC;AACxD,cAAc,mBAAmB,CAAC"}
@@ -1,3 +1,4 @@
1
+ export * from './ActorLifecycleManager.js';
1
2
  export * from './Cast.js';
2
3
  export * from './crew/index.js';
3
4
  export * from './Extras.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stage/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yCAAyC,CAAC;AACxD,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stage/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yCAAyC,CAAC;AACxD,cAAc,mBAAmB,CAAC"}
package/lib/Serenity.d.ts CHANGED
@@ -6,6 +6,7 @@ import { type ActivityDetails, CorrelationId, type CorrelationIdFactory } from '
6
6
  import type { Actor, Timestamp } from './screenplay/index.js';
7
7
  import { Clock } from './screenplay/index.js';
8
8
  import type { Cast } from './stage/Cast.js';
9
+ import type { ActorLifecycleManager } from './stage/index.js';
9
10
  /**
10
11
  * @group Serenity
11
12
  */
@@ -22,8 +23,9 @@ export declare class Serenity implements EmitsDomainEvents {
22
23
  * @param clock
23
24
  * @param cwd
24
25
  * @param sceneIdFactory
26
+ * @param actorLifecycleManager - Optional custom ActorLifecycleManager instance
25
27
  */
26
- constructor(clock?: Clock, cwd?: string, sceneIdFactory?: CorrelationIdFactory);
28
+ constructor(clock?: Clock, cwd?: string, sceneIdFactory?: CorrelationIdFactory, actorLifecycleManager?: ActorLifecycleManager);
27
29
  /**
28
30
  * Configures Serenity/JS. Every call to this function
29
31
  * replaces the previous configuration provided,
@@ -1 +1 @@
1
- {"version":3,"file":"Serenity.d.ts","sourceRoot":"","sources":["../src/Serenity.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAyE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC5G,OAAO,EAAE,KAAK,eAAe,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAClG,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAY,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAM5C;;GAEG;AACH,qBAAa,QAAS,YAAW,iBAAiB;IAC9C,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAoC;IACpE,OAAO,CAAC,MAAM,CAAC,yBAAyB,CAA4B;IACpE,OAAO,CAAC,MAAM,CAAC,aAAa,CAA+B;IAE3D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,YAAY,CAAiC;IAErD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAO;IAExC;;;;OAIG;gBAEC,KAAK,GAAE,KAAmB,EAC1B,GAAG,GAAE,MAAsB,EAC3B,cAAc,GAAE,oBAAoC;IAqBxD;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAmDvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkEG;IACH,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;IAI1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyDG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAInC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,sBAAsB,IAAI,KAAK;IAI/B,QAAQ,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI;IAI7C,WAAW,IAAI,SAAS;IAIxB,gBAAgB,IAAI,aAAa;IAIjC,cAAc,IAAI,aAAa;IAI/B,mBAAmB,CAAC,eAAe,EAAE,eAAe,GAAG,aAAa;IAIpE,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,SAAS,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,EAAE;IAItG;;OAEG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,GAAG,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"Serenity.d.ts","sourceRoot":"","sources":["../src/Serenity.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAyE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC5G,OAAO,EAAE,KAAK,eAAe,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAClG,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAY,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,EAAE,qBAAqB,EAA2C,MAAM,kBAAkB,CAAC;AAIvG;;GAEG;AACH,qBAAa,QAAS,YAAW,iBAAiB;IAC9C,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAoC;IACpE,OAAO,CAAC,MAAM,CAAC,yBAAyB,CAA4B;IACpE,OAAO,CAAC,MAAM,CAAC,aAAa,CAA+B;IAE3D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,YAAY,CAAiC;IAErD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAO;IAExC;;;;;OAKG;gBAEC,KAAK,GAAE,KAAmB,EAC1B,GAAG,GAAE,MAAsB,EAC3B,cAAc,GAAE,oBAAoC,EACpD,qBAAqB,CAAC,EAAE,qBAAqB;IAsBjD;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAmDvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkEG;IACH,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;IAI1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyDG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAInC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,sBAAsB,IAAI,KAAK;IAI/B,QAAQ,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI;IAI7C,WAAW,IAAI,SAAS;IAIxB,gBAAgB,IAAI,aAAa;IAIjC,cAAc,IAAI,aAAa;IAI/B,mBAAmB,CAAC,eAAe,EAAE,eAAe,GAAG,aAAa;IAIpE,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,SAAS,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,EAAE;IAItG;;OAEG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,GAAG,IAAI,IAAI;CAGd"}
package/lib/Serenity.js CHANGED
@@ -7,8 +7,8 @@ const index_js_2 = require("./io/index.js");
7
7
  const index_js_3 = require("./model/index.js");
8
8
  const index_js_4 = require("./screenplay/index.js");
9
9
  const Extras_js_1 = require("./stage/Extras.js");
10
+ const index_js_5 = require("./stage/index.js");
10
11
  const Stage_js_1 = require("./stage/Stage.js");
11
- const StageManager_js_1 = require("./stage/StageManager.js");
12
12
  /**
13
13
  * @group Serenity
14
14
  */
@@ -25,9 +25,10 @@ class Serenity {
25
25
  * @param clock
26
26
  * @param cwd
27
27
  * @param sceneIdFactory
28
+ * @param actorLifecycleManager - Optional custom ActorLifecycleManager instance
28
29
  */
29
- constructor(clock = new index_js_4.Clock(), cwd = process.cwd(), sceneIdFactory = index_js_3.CorrelationId) {
30
- this.stage = new Stage_js_1.Stage(Serenity.defaultActors, new StageManager_js_1.StageManager(Serenity.defaultCueTimeout, clock), new index_js_1.ErrorFactory(), clock, Serenity.defaultInteractionTimeout, sceneIdFactory);
30
+ constructor(clock = new index_js_4.Clock(), cwd = process.cwd(), sceneIdFactory = index_js_3.CorrelationId, actorLifecycleManager) {
31
+ this.stage = new Stage_js_1.Stage(Serenity.defaultActors, new index_js_5.StageManager(Serenity.defaultCueTimeout, clock), new index_js_1.ErrorFactory(), clock, Serenity.defaultInteractionTimeout, sceneIdFactory, actorLifecycleManager);
31
32
  this.classLoader = new index_js_2.ClassLoader(new index_js_2.ModuleLoader(cwd), new index_js_2.ClassDescriptionParser());
32
33
  this.workingDirectory = new index_js_2.Path(cwd);
33
34
  this.fileSystem = new index_js_2.FileSystem(this.workingDirectory);
@@ -1 +1 @@
1
- {"version":3,"file":"Serenity.js","sourceRoot":"","sources":["../src/Serenity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Serenity.js","sourceRoot":"","sources":["../src/Serenity.ts"],"names":[],"mappings":"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"}
@@ -148,7 +148,7 @@ export declare class Actor implements PerformsActivities, UsesAbilities, CanHave
148
148
  */
149
149
  toJSON(): SerialisedActor;
150
150
  private initialiseAbilities;
151
- private findAbilitiesOfType;
151
+ private findAbilitiesWhere;
152
152
  private findAbilityTo;
153
153
  private acquireAbility;
154
154
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Actor.d.ts","sourceRoot":"","sources":["../../src/screenplay/Actor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAG,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAA8B,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrH,OAAO,EAAE,OAAO,EAAsC,MAAM,sBAAsB,CAAC;AACnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,qBAAa,KAAM,YAAW,kBAAkB,EAC5C,aAAa,EACb,gBAAgB,CAAC,KAAK,CAAC,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,SAAS;aAUW,IAAI,EAAE,MAAM;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAT1B;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoD;gBAG1D,IAAI,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,EAC7B,SAAS,GAAE,OAAO,EAAO;IAS7B;;;;;;;;;;OAUG;IACH,SAAS,CAAC,CAAC,SAAS,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;IAc5D;;;;;;OAMG;IACH,UAAU,CAAC,GAAG,UAAU,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQpD;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,GAAG,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK;IAMtC;;;;;;OAMG;IACH,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAIhD;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAUvD;;OAEG;IACH,WAAW,IAAI,SAAS;IAIxB;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IASxB;;;;OAIG;IACH,QAAQ,IAAI,MAAM;IAMlB;;;;;OAKG;IACH,MAAM,IAAI,eAAe;IAOzB,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,cAAc;IAQtB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;CAKnB"}
1
+ {"version":3,"file":"Actor.d.ts","sourceRoot":"","sources":["../../src/screenplay/Actor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAG,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,OAAO,EAAkE,MAAM,sBAAsB,CAAC;AAC/G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,qBAAa,KAAM,YAAW,kBAAkB,EAC5C,aAAa,EACb,gBAAgB,CAAC,KAAK,CAAC,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,SAAS;aAUW,IAAI,EAAE,MAAM;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAT1B;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoD;gBAG1D,IAAI,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,EAC7B,SAAS,GAAE,OAAO,EAAO;IAS7B;;;;;;;;;;OAUG;IACH,SAAS,CAAC,CAAC,SAAS,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;IAc5D;;;;;;OAMG;IACH,UAAU,CAAC,GAAG,UAAU,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQpD;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,GAAG,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK;IAMtC;;;;;;OAMG;IACH,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAIhD;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAUvD;;OAEG;IACH,WAAW,IAAI,SAAS;IAIxB;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IASxB;;;;OAIG;IACH,QAAQ,IAAI,MAAM;IAMlB;;;;;OAKG;IACH,MAAM,IAAI,eAAe;IAOzB,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,cAAc;IAQtB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;CAKnB"}
@@ -161,7 +161,7 @@ class Actor {
161
161
  * [discardable](https://serenity-js.org/api/core/interface/Discardable/) [ability](https://serenity-js.org/api/core/class/Ability/) it's been configured with.
162
162
  */
163
163
  dismiss() {
164
- return this.findAbilitiesOfType('discard')
164
+ return this.findAbilitiesWhere(index_js_5.Discardable.isDiscardable)
165
165
  .reduce((previous, ability) => previous.then(() => ability.discard()), Promise.resolve(void 0));
166
166
  }
167
167
  /**
@@ -186,7 +186,7 @@ class Actor {
186
186
  };
187
187
  }
188
188
  initialiseAbilities() {
189
- return this.findAbilitiesOfType('initialise', 'isInitialised')
189
+ return this.findAbilitiesWhere(index_js_5.Initialisable.isInitialisable)
190
190
  .filter(ability => !ability.isInitialised())
191
191
  .reduce((previous, ability) => previous
192
192
  .then(() => ability.initialise())
@@ -194,11 +194,10 @@ class Actor {
194
194
  throw new index_js_1.TestCompromisedError(`${this.name} couldn't initialise the ability to ${ability.constructor.name}`, error);
195
195
  }), Promise.resolve(void 0));
196
196
  }
197
- findAbilitiesOfType(...methodNames) {
197
+ findAbilitiesWhere(filter) {
198
198
  const abilitiesFrom = (map) => Array.from(map.values());
199
- const abilitiesWithDesiredMethods = (ability) => methodNames.every(methodName => typeof (ability[methodName]) === 'function');
200
199
  return abilitiesFrom(this.abilities)
201
- .filter(abilitiesWithDesiredMethods);
200
+ .filter(filter);
202
201
  }
203
202
  findAbilityTo(doSomething) {
204
203
  return this.abilities.get(doSomething.abilityType().name);
@@ -1 +1 @@
1
- {"version":3,"file":"Actor.js","sourceRoot":"","sources":["../../src/screenplay/Actor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Actor.js","sourceRoot":"","sources":["../../src/screenplay/Actor.ts"],"names":[],"mappings":"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"}
@@ -17,10 +17,11 @@
17
17
  *
18
18
  * @group Abilities
19
19
  */
20
- export interface Discardable {
20
+ export declare abstract class Discardable {
21
+ static isDiscardable<T>(value: T): value is T & Discardable;
21
22
  /**
22
23
  * Discards the resources associated with this ability.
23
24
  */
24
- discard(): Promise<void> | void;
25
+ abstract discard(): Promise<void> | void;
25
26
  }
26
27
  //# sourceMappingURL=Discardable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Discardable.d.ts","sourceRoot":"","sources":["../../../src/screenplay/abilities/Discardable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,WAAW;IAExB;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACnC"}
1
+ {"version":3,"file":"Discardable.d.ts","sourceRoot":"","sources":["../../../src/screenplay/abilities/Discardable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,8BAAsB,WAAW;IAE7B,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,WAAW;IAK3D;;OAEG;IACH,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAC3C"}
@@ -1,3 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Discardable = void 0;
4
+ /**
5
+ * An interface to be implemented by any [`Ability`](https://serenity-js.org/api/core/class/Ability/) that needs to free up
6
+ * the resources it uses, e.g. disconnect from a database.
7
+ *
8
+ * This [`Discardable.discard`](https://serenity-js.org/api/core/interface/Discardable/#discard) method is invoked directly by the [actor](https://serenity-js.org/api/core/class/Actor/), and indirectly by the [stage](https://serenity-js.org/api/core/class/Stage/):
9
+ * - when [SceneFinishes](https://serenity-js.org/api/core-events/class/SceneFinishes/), for actors instantiated after [SceneStarts](https://serenity-js.org/api/core-events/class/SceneStarts/) - e.g. within a test scenario or in a "before each" hook
10
+ * - when [`TestRunFinishes`](https://serenity-js.org/api/core-events/class/TestRunFinishes/), for actors instantiated before [SceneStarts](https://serenity-js.org/api/core-events/class/SceneStarts/) - e.g. in a "before all" hook
11
+ *
12
+ * Note that events such as [SceneFinishes](https://serenity-js.org/api/core-events/class/SceneFinishes/) and [`TestRunFinishes`](https://serenity-js.org/api/core-events/class/TestRunFinishes/) are emitted by Serenity/JS test runner adapters,
13
+ * such as `@serenity-js/cucumber`, `@serenity-js/mocha`, `@serenity-js/jasmine`, and so on.
14
+ * Consult their respective readmes to learn how to register them with your test runner of choice.
15
+ *
16
+ * ## Learn more
17
+ * - [`Ability`](https://serenity-js.org/api/core/class/Ability/)
18
+ * - [`AbilityType`](https://serenity-js.org/api/core/#AbilityType)
19
+ * - [`Initialisable`](https://serenity-js.org/api/core/interface/Initialisable/)
20
+ *
21
+ * @group Abilities
22
+ */
23
+ class Discardable {
24
+ static isDiscardable(value) {
25
+ return typeof (value['discard']) === 'function'
26
+ && value['discard'].length === 0;
27
+ }
28
+ }
29
+ exports.Discardable = Discardable;
3
30
  //# sourceMappingURL=Discardable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Discardable.js","sourceRoot":"","sources":["../../../src/screenplay/abilities/Discardable.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"Discardable.js","sourceRoot":"","sources":["../../../src/screenplay/abilities/Discardable.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAsB,WAAW;IAE7B,MAAM,CAAC,aAAa,CAAI,KAAQ;QAC5B,OAAO,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,UAAU;eACxC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IACzC,CAAC;CAMJ;AAXD,kCAWC"}
@@ -12,7 +12,8 @@
12
12
  *
13
13
  * @group Abilities
14
14
  */
15
- export interface Initialisable {
15
+ export declare abstract class Initialisable {
16
+ static isInitialisable<T>(value: T): value is T & Initialisable;
16
17
  /**
17
18
  * Initialises the ability. Invoked whenever [`Actor.attemptsTo`](https://serenity-js.org/api/core/class/Actor/#attemptsTo) method is called,
18
19
  * but **only when** [`Initialisable.isInitialised`](https://serenity-js.org/api/core/interface/Initialisable/#isInitialised) returns false.
@@ -20,7 +21,7 @@ export interface Initialisable {
20
21
  * Make sure to implement [`Initialisable.isInitialised`](https://serenity-js.org/api/core/interface/Initialisable/#isInitialised) so that it returns `true`
21
22
  * when the ability has been successfully initialised.
22
23
  */
23
- initialise(): Promise<void> | void;
24
+ abstract initialise(): Promise<void> | void;
24
25
  /**
25
26
  * Should return `true` when all the resources that the given ability needs
26
27
  * have been initialised. Should return `false` if the [`Actor`](https://serenity-js.org/api/core/class/Actor/) should
@@ -28,6 +29,6 @@ export interface Initialisable {
28
29
  *
29
30
  * @returns {boolean}
30
31
  */
31
- isInitialised(): boolean;
32
+ abstract isInitialised(): boolean;
32
33
  }
33
34
  //# sourceMappingURL=Initialisable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Initialisable.d.ts","sourceRoot":"","sources":["../../../src/screenplay/abilities/Initialisable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,aAAa;IAE1B;;;;;;OAMG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAEnC;;;;;;OAMG;IACH,aAAa,IAAI,OAAO,CAAC;CAC5B"}
1
+ {"version":3,"file":"Initialisable.d.ts","sourceRoot":"","sources":["../../../src/screenplay/abilities/Initialisable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,8BAAsB,aAAa;IAE/B,MAAM,CAAC,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,aAAa;IAO/D;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAE3C;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,IAAI,OAAO;CACpC"}
@@ -1,3 +1,27 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Initialisable = void 0;
4
+ /**
5
+ * An interface to be implemented by any [`Ability`](https://serenity-js.org/api/core/class/Ability/) that needs to initialise
6
+ * the resources it uses, e.g. establish a database connection.
7
+ *
8
+ * The [`Initialisable.initialise`](https://serenity-js.org/api/core/interface/Initialisable/#initialise) method is invoked whenever [`Actor.attemptsTo`](https://serenity-js.org/api/core/class/Actor/#attemptsTo) method is called,
9
+ * but **only when** [`Initialisable.isInitialised`](https://serenity-js.org/api/core/interface/Initialisable/#isInitialised) returns false. This is to avoid initialising abilities more than once.
10
+ *
11
+ * ## Learn more
12
+ * - [`Ability`](https://serenity-js.org/api/core/class/Ability/)
13
+ * - [`AbilityType`](https://serenity-js.org/api/core/#AbilityType)
14
+ * - [`Discardable`](https://serenity-js.org/api/core/interface/Discardable/)
15
+ *
16
+ * @group Abilities
17
+ */
18
+ class Initialisable {
19
+ static isInitialisable(value) {
20
+ return typeof (value['initialise']) === 'function'
21
+ && value['initialise'].length === 0
22
+ && typeof value['isInitialised'] === 'function'
23
+ && value['isInitialised'].length === 0;
24
+ }
25
+ }
26
+ exports.Initialisable = Initialisable;
3
27
  //# sourceMappingURL=Initialisable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Initialisable.js","sourceRoot":"","sources":["../../../src/screenplay/abilities/Initialisable.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"Initialisable.js","sourceRoot":"","sources":["../../../src/screenplay/abilities/Initialisable.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;GAaG;AACH,MAAsB,aAAa;IAE/B,MAAM,CAAC,eAAe,CAAI,KAAQ;QAC9B,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,KAAK,UAAU;eAC3C,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC;eAChC,OAAO,KAAK,CAAC,eAAe,CAAC,KAAK,UAAU;eAC5C,KAAK,CAAC,eAAe,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IAC/C,CAAC;CAmBJ;AA1BD,sCA0BC"}
@@ -0,0 +1,191 @@
1
+ import type { Clock, Duration } from '../screenplay/index.js';
2
+ import { Actor } from '../screenplay/index.js';
3
+ import type { Cast } from './Cast.js';
4
+ import type { Stage } from './Stage.js';
5
+ /**
6
+ * Represents the focus area where actors are tracked.
7
+ *
8
+ * - `'foreground'` - Scene-scoped actors that are dismissed when a scene finishes
9
+ * - `'background'` - Test run-scoped actors that persist across scenes and are dismissed when the test run finishes
10
+ *
11
+ * @group Stage
12
+ */
13
+ export type StageFocus = 'foreground' | 'background';
14
+ /**
15
+ * Manages the lifecycle of [actors](https://serenity-js.org/api/core/class/Actor/) on the [stage](https://serenity-js.org/api/core/class/Stage/),
16
+ * including their creation, retrieval, and tracking of which actors are in the foreground (scene-scoped)
17
+ * versus background (test run-scoped).
18
+ *
19
+ * The `ActorLifecycleManager` is responsible for:
20
+ * - Instantiating and caching actors via the configured [cast](https://serenity-js.org/api/core/class/Cast/)
21
+ * - Tracking which actor is currently in the spotlight (active)
22
+ * - Managing the focus area (foreground vs background) where new actors are created
23
+ * - Providing access to actors for dismissal when scenes or test runs finish
24
+ *
25
+ * ## Default behaviour
26
+ *
27
+ * By default, actors created before the actual test scenario starts, e.g. in beforeAll hooks, are placed in the `'background'` focus area.
28
+ * When a [`SceneStarts`](https://serenity-js.org/api/core-events/class/SceneStarts/) event is announced,
29
+ * the focus switches to `'foreground'`. When a [`SceneFinishes`](https://serenity-js.org/api/core-events/class/SceneFinishes/)
30
+ * event is announced, foreground actors are dismissed, their abilities [discarded](https://serenity-js.org/api/core/interface/Discardable/)
31
+ * and focus returns to `'background'`.
32
+ *
33
+ * ## Custom lifecycle management
34
+ *
35
+ * Test runner adapters like [`@serenity-js/playwright-test`](https://serenity-js.org/api/playwright-test/),
36
+ * where test execution and reporting happen in separate processes, can inject a custom `ActorLifecycleManager` instance
37
+ * to control actor lifecycle programmatically.
38
+ *
39
+ * ```typescript
40
+ * const actorLifecycleManager = new ActorLifecycleManager(cast, clock, interactionTimeout);
41
+ * const serenity = new Serenity(clock, cueTimeout, actorLifecycleManager);
42
+ *
43
+ * // At the start of each test:
44
+ * actorLifecycleManager.switchFocus('foreground');
45
+ * ```
46
+ *
47
+ * ## Learn more
48
+ * - [`Stage`](https://serenity-js.org/api/core/class/Stage/)
49
+ * - [`Cast`](https://serenity-js.org/api/core/class/Cast/)
50
+ * - [`Actor`](https://serenity-js.org/api/core/class/Actor/)
51
+ *
52
+ * @group Stage
53
+ */
54
+ export declare class ActorLifecycleManager {
55
+ protected cast: Cast;
56
+ protected readonly clock: Clock;
57
+ protected interactionTimeout: Duration;
58
+ /**
59
+ * The most recent actor referenced via the {@apilink actor} method
60
+ */
61
+ private currentActor?;
62
+ /**
63
+ * The scene in which the spotlight was last set.
64
+ * Used to detect when the spotlight shifts to a different scene context.
65
+ */
66
+ private currentActorScene;
67
+ private currentFocusValue;
68
+ private actors;
69
+ protected stage: Stage;
70
+ constructor(cast: Cast, clock: Clock, interactionTimeout: Duration);
71
+ /**
72
+ * Configures the manager with new settings.
73
+ *
74
+ * @param options - Configuration options
75
+ * @param options.interactionTimeout - The maximum time to wait for an interaction to complete
76
+ */
77
+ configure({ interactionTimeout }: {
78
+ interactionTimeout: Duration;
79
+ }): void;
80
+ /**
81
+ * Associates this manager with a [`Stage`](https://serenity-js.org/api/core/class/Stage/) instance.
82
+ *
83
+ * This method is called automatically by the `Stage` during construction.
84
+ * It establishes the bidirectional relationship between the manager and the stage,
85
+ * allowing the manager to emit [domain events](https://serenity-js.org/api/core-events/class/DomainEvent/)
86
+ * when actors enter the stage or are spotlighted.
87
+ *
88
+ * @param stage - The Stage instance to associate with this manager
89
+ */
90
+ assignTo(stage: Stage): void;
91
+ /**
92
+ * Configures the manager to use the provided [cast](https://serenity-js.org/api/core/class/Cast/) for preparing actors.
93
+ *
94
+ * @param actors - The cast to use for preparing new actors
95
+ *
96
+ * @throws [`ConfigurationError`](https://serenity-js.org/api/core/class/ConfigurationError/)
97
+ * If the provided cast is not defined or doesn't have a `prepare` method
98
+ */
99
+ engage(actors: Cast): void;
100
+ /**
101
+ * Returns the current [cast](https://serenity-js.org/api/core/class/Cast/) used for preparing actors.
102
+ *
103
+ * @returns The currently configured cast
104
+ */
105
+ currentCast(): Cast;
106
+ /**
107
+ * Instantiates a new [`Actor`](https://serenity-js.org/api/core/class/Actor/) or fetches an existing one
108
+ * identified by their name if they've already been instantiated.
109
+ *
110
+ * When a new actor is instantiated, an [`ActorEntersStage`](https://serenity-js.org/api/core-events/class/ActorEntersStage/)
111
+ * event is announced. When the spotlight shifts to a different actor (or the same actor in a different scene),
112
+ * an [`ActorSpotlighted`](https://serenity-js.org/api/core-events/class/ActorSpotlighted/) event is announced.
113
+ *
114
+ * Actors are first looked up in the `'background'` focus area, then in `'foreground'`.
115
+ * New actors are always created in the current focus area.
116
+ *
117
+ * @param name - Case-sensitive name of the Actor, e.g. `Alice`
118
+ * @returns The actor with the given name
119
+ */
120
+ actor(name: string): Actor;
121
+ private prepareActor;
122
+ private typeOf;
123
+ private existingActorCalled;
124
+ /**
125
+ * Returns `true` if there is an [`Actor`](https://serenity-js.org/api/core/class/Actor/) in the spotlight, `false` otherwise.
126
+ *
127
+ * @returns `true` if an actor is currently spotlighted
128
+ */
129
+ hasActorInTheSpotlight(): boolean;
130
+ /**
131
+ * Returns the last [`Actor`](https://serenity-js.org/api/core/class/Actor/) instantiated
132
+ * via [`actor`](https://serenity-js.org/api/core/class/ActorLifecycleManager/#actor).
133
+ *
134
+ * @returns The currently spotlighted actor
135
+ *
136
+ * @throws [`LogicError`](https://serenity-js.org/api/core/class/LogicError/)
137
+ * If no [`Actor`](https://serenity-js.org/api/core/class/Actor/) has been activated yet
138
+ */
139
+ actorInTheSpotlight(): Actor;
140
+ /**
141
+ * Switches the focus to the specified stage area.
142
+ *
143
+ * Actors created after this call will be added to the specified area.
144
+ * This method is typically called automatically by the [`Stage`](https://serenity-js.org/api/core/class/Stage/)
145
+ * in response to [`SceneStarts`](https://serenity-js.org/api/core-events/class/SceneStarts/) and
146
+ * [`SceneFinishes`](https://serenity-js.org/api/core-events/class/SceneFinishes/) events.
147
+ *
148
+ * Test runner adapters can also call this method directly to control actor lifecycle
149
+ * when scene events are not available (e.g., in Playwright Test where the reporter
150
+ * runs in a separate process).
151
+ *
152
+ * @param focus - The focus area to switch to: `'foreground'` for scene-scoped actors,
153
+ * `'background'` for test run-scoped actors
154
+ */
155
+ switchFocus(focus: StageFocus): void;
156
+ /**
157
+ * Returns the current focus area.
158
+ *
159
+ * @returns The current focus: `'foreground'` or `'background'`
160
+ */
161
+ currentFocus(): StageFocus;
162
+ /**
163
+ * Returns all actors in the specified focus area.
164
+ *
165
+ * This method is used by the [`Stage`](https://serenity-js.org/api/core/class/Stage/) to retrieve
166
+ * actors for dismissal when scenes or test runs finish.
167
+ *
168
+ * @param focus - The focus area to retrieve actors from
169
+ * @returns An array of actors in the specified focus area
170
+ */
171
+ actorsIn(focus: StageFocus): Actor[];
172
+ /**
173
+ * Clears the spotlight if the current actor is in the specified focus area.
174
+ *
175
+ * This ensures that after actors in a focus area are dismissed, the spotlight
176
+ * doesn't reference a dismissed actor.
177
+ *
178
+ * @param focus - The focus area to check
179
+ */
180
+ clearSpotlightIfIn(focus: StageFocus): void;
181
+ /**
182
+ * Clears all actors from the specified focus area.
183
+ *
184
+ * This method is called by the [`Stage`](https://serenity-js.org/api/core/class/Stage/) after
185
+ * actors have been dismissed to remove them from the internal tracking maps.
186
+ *
187
+ * @param focus - The focus area to clear
188
+ */
189
+ clearActorsIn(focus: StageFocus): void;
190
+ }
191
+ //# sourceMappingURL=ActorLifecycleManager.d.ts.map