@serenity-js/core 3.7.2 → 3.9.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 (30) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/lib/events/ActivityRelatedArtifactArchived.d.ts +1 -1
  3. package/lib/events/ActivityRelatedArtifactArchived.d.ts.map +1 -1
  4. package/lib/events/ActivityRelatedArtifactArchived.js +4 -3
  5. package/lib/events/ActivityRelatedArtifactArchived.js.map +1 -1
  6. package/lib/events/ArtifactArchived.d.ts +2 -1
  7. package/lib/events/ArtifactArchived.d.ts.map +1 -1
  8. package/lib/events/ArtifactArchived.js +5 -2
  9. package/lib/events/ArtifactArchived.js.map +1 -1
  10. package/lib/screenplay/Question.d.ts +18 -5
  11. package/lib/screenplay/Question.d.ts.map +1 -1
  12. package/lib/screenplay/Question.js +22 -20
  13. package/lib/screenplay/Question.js.map +1 -1
  14. package/lib/screenplay/questions/MetaQuestion.d.ts +8 -7
  15. package/lib/screenplay/questions/MetaQuestion.d.ts.map +1 -1
  16. package/lib/stage/crew/artifact-archiver/ArtifactArchiver.d.ts +39 -19
  17. package/lib/stage/crew/artifact-archiver/ArtifactArchiver.d.ts.map +1 -1
  18. package/lib/stage/crew/artifact-archiver/ArtifactArchiver.js +41 -21
  19. package/lib/stage/crew/artifact-archiver/ArtifactArchiver.js.map +1 -1
  20. package/lib/stage/crew/stream-reporter/StreamReporter.d.ts +44 -16
  21. package/lib/stage/crew/stream-reporter/StreamReporter.d.ts.map +1 -1
  22. package/lib/stage/crew/stream-reporter/StreamReporter.js +48 -16
  23. package/lib/stage/crew/stream-reporter/StreamReporter.js.map +1 -1
  24. package/package.json +2 -2
  25. package/src/events/ActivityRelatedArtifactArchived.ts +4 -1
  26. package/src/events/ArtifactArchived.ts +4 -0
  27. package/src/screenplay/Question.ts +67 -8
  28. package/src/screenplay/questions/MetaQuestion.ts +8 -7
  29. package/src/stage/crew/artifact-archiver/ArtifactArchiver.ts +43 -19
  30. package/src/stage/crew/stream-reporter/StreamReporter.ts +51 -16
package/CHANGELOG.md CHANGED
@@ -3,6 +3,33 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [3.9.0](https://github.com/serenity-js/serenity-js/compare/v3.8.0...v3.9.0) (2023-08-04)
7
+
8
+
9
+ ### Features
10
+
11
+ * **core:** introduced MetaQuestionAdapter ([b6676fd](https://github.com/serenity-js/serenity-js/commit/b6676fd6ee2a2f67fd56e0642b3af72027d50a75))
12
+
13
+
14
+
15
+
16
+
17
+ # [3.8.0](https://github.com/serenity-js/serenity-js/compare/v3.7.2...v3.8.0) (2023-08-01)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * **serenity-bdd:** corrected screenshot sort order in screenshot detail viewer ([7537622](https://github.com/serenity-js/serenity-js/commit/7537622d41193e3cf358a1b939c7422bcc3b207f)), closes [#1790](https://github.com/serenity-js/serenity-js/issues/1790)
23
+
24
+
25
+ ### Features
26
+
27
+ * **core:** allow for easier debugging of Serenity/JS domain events using StreamReporter ([108677e](https://github.com/serenity-js/serenity-js/commit/108677e213423004127b6752301e73f66231030e)), closes [#1790](https://github.com/serenity-js/serenity-js/issues/1790)
28
+
29
+
30
+
31
+
32
+
6
33
  ## [3.7.2](https://github.com/serenity-js/serenity-js/compare/v3.7.1...v3.7.2) (2023-07-26)
7
34
 
8
35
 
@@ -10,7 +10,7 @@ import { ArtifactArchived } from './ArtifactArchived';
10
10
  export declare class ActivityRelatedArtifactArchived extends ArtifactArchived {
11
11
  readonly activityId: CorrelationId;
12
12
  static fromJSON(o: JSONObject): ActivityRelatedArtifactArchived;
13
- constructor(sceneId: CorrelationId, activityId: CorrelationId, name: Name, type: ArtifactType, path: Path, timestamp?: Timestamp);
13
+ constructor(sceneId: CorrelationId, activityId: CorrelationId, name: Name, type: ArtifactType, path: Path, artifactTimestamp: Timestamp, timestamp?: Timestamp);
14
14
  toJSON(): JSONObject;
15
15
  }
16
16
  //# sourceMappingURL=ActivityRelatedArtifactArchived.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityRelatedArtifactArchived.d.ts","sourceRoot":"","sources":["../../src/events/ActivityRelatedArtifactArchived.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAC,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAY,aAAa,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAMtD;;GAEG;AACH,qBAAa,+BAAgC,SAAQ,gBAAgB;aAc7C,UAAU,EAAE,aAAa;IAb7C,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,GAAG,+BAA+B;gBAY3D,OAAO,EAAE,aAAa,EACN,UAAU,EAAE,aAAa,EACzC,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,IAAI,EACV,SAAS,CAAC,EAAE,SAAS;IAMzB,MAAM,IAAI,UAAU;CAUvB"}
1
+ {"version":3,"file":"ActivityRelatedArtifactArchived.d.ts","sourceRoot":"","sources":["../../src/events/ActivityRelatedArtifactArchived.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAC,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAY,aAAa,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAMtD;;GAEG;AACH,qBAAa,+BAAgC,SAAQ,gBAAgB;aAe7C,UAAU,EAAE,aAAa;IAd7C,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,GAAG,+BAA+B;gBAa3D,OAAO,EAAE,aAAa,EACN,UAAU,EAAE,aAAa,EACzC,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,IAAI,EACV,iBAAiB,EAAE,SAAS,EAC5B,SAAS,CAAC,EAAE,SAAS;IAMzB,MAAM,IAAI,UAAU;CAWvB"}
@@ -14,10 +14,10 @@ const ArtifactArchived_1 = require("./ArtifactArchived");
14
14
  */
15
15
  class ActivityRelatedArtifactArchived extends ArtifactArchived_1.ArtifactArchived {
16
16
  static fromJSON(o) {
17
- return new ActivityRelatedArtifactArchived(model_1.CorrelationId.fromJSON(o.sceneId), model_1.CorrelationId.fromJSON(o.activityId), model_1.Name.fromJSON(o.name), model_1.Artifact.ofType(o.type), io_1.Path.fromJSON(o.path), screenplay_1.Timestamp.fromJSON(o.timestamp));
17
+ return new ActivityRelatedArtifactArchived(model_1.CorrelationId.fromJSON(o.sceneId), model_1.CorrelationId.fromJSON(o.activityId), model_1.Name.fromJSON(o.name), model_1.Artifact.ofType(o.type), io_1.Path.fromJSON(o.path), screenplay_1.Timestamp.fromJSON(o.artifactTimestamp), screenplay_1.Timestamp.fromJSON(o.timestamp));
18
18
  }
19
- constructor(sceneId, activityId, name, type, path, timestamp) {
20
- super(sceneId, name, type, path, timestamp);
19
+ constructor(sceneId, activityId, name, type, path, artifactTimestamp, timestamp) {
20
+ super(sceneId, name, type, path, artifactTimestamp, timestamp);
21
21
  this.activityId = activityId;
22
22
  (0, tiny_types_1.ensure)('activityId', activityId, (0, tiny_types_1.isDefined)());
23
23
  }
@@ -28,6 +28,7 @@ class ActivityRelatedArtifactArchived extends ArtifactArchived_1.ArtifactArchive
28
28
  name: this.name.toJSON(),
29
29
  type: this.type.name,
30
30
  path: this.path.toJSON(),
31
+ artifactTimestamp: this.artifactTimestamp.toJSON(),
31
32
  timestamp: this.timestamp.toJSON(),
32
33
  };
33
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityRelatedArtifactArchived.js","sourceRoot":"","sources":["../../src/events/ActivityRelatedArtifactArchived.ts"],"names":[],"mappings":";;;AACA,2CAA+C;AAE/C,8BAA6B;AAE7B,oCAAyD;AACzD,8CAA0C;AAC1C,yDAAsD;AAEtD,kDAAkD;AAClD,+BAA+B;AAC/B,4BAA4B;AAE5B;;GAEG;AACH,MAAa,+BAAgC,SAAQ,mCAAgB;IACjE,MAAM,CAAC,QAAQ,CAAC,CAAa;QACzB,OAAO,IAAI,+BAA+B,CACtC,qBAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAiB,CAAC,EAC3C,qBAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAoB,CAAC,EAC9C,YAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAc,CAAC,EAC/B,gBAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAc,CAAC,EACjC,SAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAc,CAAC,EAC/B,sBAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAmB,CAAC,CAC5C,CAAC;IACN,CAAC;IAED,YACI,OAAsB,EACN,UAAyB,EACzC,IAAU,EACV,IAAkB,EAClB,IAAU,EACV,SAAqB;QAErB,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAN5B,eAAU,GAAV,UAAU,CAAe;QAOzC,IAAA,mBAAM,EAAC,YAAY,EAAE,UAAU,EAAE,IAAA,sBAAS,GAAE,CAAC,CAAC;IAClD,CAAC;IAED,MAAM;QACF,OAAO;YACH,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YAC9B,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACpC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACxB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;YACpB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACxB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;SACrC,CAAC;IACN,CAAC;CACJ;AAlCD,0EAkCC"}
1
+ {"version":3,"file":"ActivityRelatedArtifactArchived.js","sourceRoot":"","sources":["../../src/events/ActivityRelatedArtifactArchived.ts"],"names":[],"mappings":";;;AACA,2CAA+C;AAE/C,8BAA6B;AAE7B,oCAAyD;AACzD,8CAA0C;AAC1C,yDAAsD;AAEtD,kDAAkD;AAClD,+BAA+B;AAC/B,4BAA4B;AAE5B;;GAEG;AACH,MAAa,+BAAgC,SAAQ,mCAAgB;IACjE,MAAM,CAAC,QAAQ,CAAC,CAAa;QACzB,OAAO,IAAI,+BAA+B,CACtC,qBAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAiB,CAAC,EAC3C,qBAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAoB,CAAC,EAC9C,YAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAc,CAAC,EAC/B,gBAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAc,CAAC,EACjC,SAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAc,CAAC,EAC/B,sBAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAA2B,CAAC,EACjD,sBAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAmB,CAAC,CAC5C,CAAC;IACN,CAAC;IAED,YACI,OAAsB,EACN,UAAyB,EACzC,IAAU,EACV,IAAkB,EAClB,IAAU,EACV,iBAA4B,EAC5B,SAAqB;QAErB,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;QAP/C,eAAU,GAAV,UAAU,CAAe;QAQzC,IAAA,mBAAM,EAAC,YAAY,EAAE,UAAU,EAAE,IAAA,sBAAS,GAAE,CAAC,CAAC;IAClD,CAAC;IAED,MAAM;QACF,OAAO;YACH,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YAC9B,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACpC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACxB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;YACpB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACxB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;YAClD,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;SACrC,CAAC;IACN,CAAC;CACJ;AArCD,0EAqCC"}
@@ -12,8 +12,9 @@ export declare class ArtifactArchived extends DomainEvent {
12
12
  readonly name: Name;
13
13
  readonly type: ArtifactType;
14
14
  readonly path: Path;
15
+ readonly artifactTimestamp: Timestamp;
15
16
  static fromJSON(o: JSONObject): ArtifactArchived;
16
- constructor(sceneId: CorrelationId, name: Name, type: ArtifactType, path: Path, timestamp?: Timestamp);
17
+ constructor(sceneId: CorrelationId, name: Name, type: ArtifactType, path: Path, artifactTimestamp: Timestamp, timestamp?: Timestamp);
17
18
  toJSON(): JSONObject;
18
19
  }
19
20
  //# sourceMappingURL=ArtifactArchived.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArtifactArchived.d.ts","sourceRoot":"","sources":["../../src/events/ArtifactArchived.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAC,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAY,aAAa,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;aAYzB,OAAO,EAAE,aAAa;aACtB,IAAI,EAAE,IAAI;aACV,IAAI,EAAE,YAAY;aAClB,IAAI,EAAE,IAAI;IAd9B,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,GAAG,gBAAgB;gBAW5B,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,IAAI,EAC1B,SAAS,CAAC,EAAE,SAAS;IAUzB,MAAM,IAAI,UAAU;CAQvB"}
1
+ {"version":3,"file":"ArtifactArchived.d.ts","sourceRoot":"","sources":["../../src/events/ArtifactArchived.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAC,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAY,aAAa,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;aAazB,OAAO,EAAE,aAAa;aACtB,IAAI,EAAE,IAAI;aACV,IAAI,EAAE,YAAY;aAClB,IAAI,EAAE,IAAI;aACV,iBAAiB,EAAE,SAAS;IAhBhD,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,GAAG,gBAAgB;gBAY5B,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,IAAI,EACV,iBAAiB,EAAE,SAAS,EAC5C,SAAS,CAAC,EAAE,SAAS;IAWzB,MAAM,IAAI,UAAU;CASvB"}
@@ -11,24 +11,27 @@ const DomainEvent_1 = require("./DomainEvent");
11
11
  */
12
12
  class ArtifactArchived extends DomainEvent_1.DomainEvent {
13
13
  static fromJSON(o) {
14
- return new ArtifactArchived(model_1.CorrelationId.fromJSON(o.sceneId), model_1.Name.fromJSON(o.name), model_1.Artifact.ofType(o.type), io_1.Path.fromJSON(o.path), screenplay_1.Timestamp.fromJSON(o.timestamp));
14
+ return new ArtifactArchived(model_1.CorrelationId.fromJSON(o.sceneId), model_1.Name.fromJSON(o.name), model_1.Artifact.ofType(o.type), io_1.Path.fromJSON(o.path), screenplay_1.Timestamp.fromJSON(o.artifactTimestamp), screenplay_1.Timestamp.fromJSON(o.timestamp));
15
15
  }
16
- constructor(sceneId, name, type, path, timestamp) {
16
+ constructor(sceneId, name, type, path, artifactTimestamp, timestamp) {
17
17
  super(timestamp);
18
18
  this.sceneId = sceneId;
19
19
  this.name = name;
20
20
  this.type = type;
21
21
  this.path = path;
22
+ this.artifactTimestamp = artifactTimestamp;
22
23
  (0, tiny_types_1.ensure)('sceneId', sceneId, (0, tiny_types_1.isDefined)());
23
24
  (0, tiny_types_1.ensure)('name', name, (0, tiny_types_1.isDefined)());
24
25
  (0, tiny_types_1.ensure)('type', type, (0, tiny_types_1.isDefined)());
25
26
  (0, tiny_types_1.ensure)('path', path, (0, tiny_types_1.isDefined)());
27
+ (0, tiny_types_1.ensure)('artifactTimestamp', artifactTimestamp, (0, tiny_types_1.isDefined)());
26
28
  }
27
29
  toJSON() {
28
30
  return {
29
31
  name: this.name.toJSON(),
30
32
  type: this.type.name,
31
33
  path: this.path.toJSON(),
34
+ createdAt: this.artifactTimestamp.toJSON(),
32
35
  timestamp: this.timestamp.toJSON(),
33
36
  };
34
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ArtifactArchived.js","sourceRoot":"","sources":["../../src/events/ArtifactArchived.ts"],"names":[],"mappings":";;;AACA,2CAA+C;AAE/C,8BAA6B;AAE7B,oCAAyD;AACzD,8CAA0C;AAC1C,+CAA4C;AAE5C;;GAEG;AACH,MAAa,gBAAiB,SAAQ,yBAAW;IAC7C,MAAM,CAAC,QAAQ,CAAC,CAAa;QACzB,OAAO,IAAI,gBAAgB,CACvB,qBAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAiB,CAAC,EAC3C,YAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAc,CAAC,EAC/B,gBAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAc,CAAC,EACjC,SAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAc,CAAC,EAC/B,sBAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAmB,CAAC,CAC5C,CAAC;IACN,CAAC;IAED,YACoB,OAAsB,EACtB,IAAU,EACV,IAAkB,EAClB,IAAU,EAC1B,SAAqB;QAErB,KAAK,CAAC,SAAS,CAAC,CAAC;QAND,YAAO,GAAP,OAAO,CAAe;QACtB,SAAI,GAAJ,IAAI,CAAM;QACV,SAAI,GAAJ,IAAI,CAAc;QAClB,SAAI,GAAJ,IAAI,CAAM;QAK1B,IAAA,mBAAM,EAAC,SAAS,EAAE,OAAO,EAAE,IAAA,sBAAS,GAAE,CAAC,CAAC;QACxC,IAAA,mBAAM,EAAC,MAAM,EAAE,IAAI,EAAE,IAAA,sBAAS,GAAE,CAAC,CAAC;QAClC,IAAA,mBAAM,EAAC,MAAM,EAAE,IAAI,EAAE,IAAA,sBAAS,GAAE,CAAC,CAAC;QAClC,IAAA,mBAAM,EAAC,MAAM,EAAE,IAAI,EAAE,IAAA,sBAAS,GAAE,CAAC,CAAC;IACtC,CAAC;IAED,MAAM;QACF,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACxB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;YACpB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACxB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;SACrC,CAAC;IACN,CAAC;CACJ;AAlCD,4CAkCC"}
1
+ {"version":3,"file":"ArtifactArchived.js","sourceRoot":"","sources":["../../src/events/ArtifactArchived.ts"],"names":[],"mappings":";;;AACA,2CAA+C;AAE/C,8BAA6B;AAE7B,oCAAyD;AACzD,8CAA0C;AAC1C,+CAA4C;AAE5C;;GAEG;AACH,MAAa,gBAAiB,SAAQ,yBAAW;IAC7C,MAAM,CAAC,QAAQ,CAAC,CAAa;QACzB,OAAO,IAAI,gBAAgB,CACvB,qBAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAiB,CAAC,EAC3C,YAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAc,CAAC,EAC/B,gBAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAc,CAAC,EACjC,SAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAc,CAAC,EAC/B,sBAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAA2B,CAAC,EACjD,sBAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAmB,CAAC,CAC5C,CAAC;IACN,CAAC;IAED,YACoB,OAAsB,EACtB,IAAU,EACV,IAAkB,EAClB,IAAU,EACV,iBAA4B,EAC5C,SAAqB;QAErB,KAAK,CAAC,SAAS,CAAC,CAAC;QAPD,YAAO,GAAP,OAAO,CAAe;QACtB,SAAI,GAAJ,IAAI,CAAM;QACV,SAAI,GAAJ,IAAI,CAAc;QAClB,SAAI,GAAJ,IAAI,CAAM;QACV,sBAAiB,GAAjB,iBAAiB,CAAW;QAK5C,IAAA,mBAAM,EAAC,SAAS,EAAE,OAAO,EAAE,IAAA,sBAAS,GAAE,CAAC,CAAC;QACxC,IAAA,mBAAM,EAAC,MAAM,EAAE,IAAI,EAAE,IAAA,sBAAS,GAAE,CAAC,CAAC;QAClC,IAAA,mBAAM,EAAC,MAAM,EAAE,IAAI,EAAE,IAAA,sBAAS,GAAE,CAAC,CAAC;QAClC,IAAA,mBAAM,EAAC,MAAM,EAAE,IAAI,EAAE,IAAA,sBAAS,GAAE,CAAC,CAAC;QAClC,IAAA,mBAAM,EAAC,mBAAmB,EAAE,iBAAiB,EAAE,IAAA,sBAAS,GAAE,CAAC,CAAC;IAChE,CAAC;IAED,MAAM;QACF,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACxB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;YACpB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACxB,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;YAC1C,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;SACrC,CAAC;IACN,CAAC;CACJ;AAtCD,4CAsCC"}
@@ -1,10 +1,12 @@
1
1
  /// <reference types="node" />
2
2
  import * as util from 'util';
3
+ import type { FileSystemLocation } from '../io';
3
4
  import type { UsesAbilities } from './abilities';
4
5
  import type { Answerable } from './Answerable';
5
6
  import { Interaction } from './Interaction';
6
7
  import type { Optional } from './Optional';
7
8
  import type { AnswersQuestions } from './questions/AnswersQuestions';
9
+ import type { MetaQuestion } from './questions/MetaQuestion';
8
10
  import type { RecursivelyAnswered } from './RecursivelyAnswered';
9
11
  import type { WithAnswerableProperties } from './WithAnswerableProperties';
10
12
  /**
@@ -117,8 +119,10 @@ export declare abstract class Question<T> {
117
119
  *
118
120
  * @param description
119
121
  * @param body
122
+ * @param [metaQuestionBody]
120
123
  */
121
- static about<Result_Type>(description: string, body: (actor: AnswersQuestions & UsesAbilities) => Promise<Result_Type> | Result_Type): QuestionAdapter<Awaited<Result_Type>>;
124
+ static about<Answer_Type, Supported_Context_Type>(description: string, body: (actor: AnswersQuestions & UsesAbilities) => Promise<Answer_Type> | Answer_Type, metaQuestionBody: (answerable: Answerable<Supported_Context_Type>) => Question<Promise<Answer_Type>> | Question<Answer_Type>): MetaQuestionAdapter<Supported_Context_Type, Awaited<Answer_Type>>;
125
+ static about<Answer_Type>(description: string, body: (actor: AnswersQuestions & UsesAbilities) => Promise<Answer_Type> | Answer_Type): QuestionAdapter<Awaited<Answer_Type>>;
122
126
  /**
123
127
  * Generates a {@apilink QuestionAdapter} that recursively resolves
124
128
  * any {@apilink Answerable} fields of the provided object,
@@ -244,15 +248,24 @@ export type QuestionAdapterFieldDecorator<Original_Type> = {
244
248
  *
245
249
  * @group Questions
246
250
  */
247
- export type QuestionAdapter<T> = Question<Promise<T>> & Interaction & {
251
+ export type QuestionAdapter<Answer_Type> = Question<Promise<Answer_Type>> & Interaction & {
248
252
  isPresent(): Question<Promise<boolean>>;
249
- } & QuestionAdapterFieldDecorator<T>;
250
- /** @package */
253
+ } & QuestionAdapterFieldDecorator<Answer_Type>;
254
+ /**
255
+ * An extension of {@apilink QuestionAdapter}, that in addition to proxying methods and fields
256
+ * of the wrapped object can also act as a {@apilink MetaQuestion}.
257
+ *
258
+ * @group Questions
259
+ */
260
+ export type MetaQuestionAdapter<Context_Type, Answer_Type> = QuestionAdapter<Answer_Type> & MetaQuestion<Context_Type, Answer_Type>;
261
+ /**
262
+ * @package
263
+ */
251
264
  declare class QuestionStatement<Answer_Type> extends Interaction implements Question<Promise<Answer_Type>>, Optional {
252
265
  private subject;
253
266
  private readonly body;
254
267
  private answer;
255
- constructor(subject: string, body: (actor: AnswersQuestions & UsesAbilities, ...Parameters: any[]) => Promise<Answer_Type> | Answer_Type);
268
+ constructor(subject: string, body: (actor: AnswersQuestions & UsesAbilities, ...Parameters: any[]) => Promise<Answer_Type> | Answer_Type, location?: FileSystemLocation);
256
269
  /**
257
270
  * Returns a Question that resolves to `true` if resolving the {@apilink QuestionStatement}
258
271
  * returns a value other than `null` or `undefined`, and doesn't throw errors.
@@ -1 +1 @@
1
- {"version":3,"file":"Question.d.ts","sourceRoot":"","sources":["../../src/screenplay/Question.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Question.d.ts","sourceRoot":"","sources":["../../src/screenplay/Question.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8FG;AACH,8BAAsB,QAAQ,CAAC,CAAC;IAE5B;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,sBAAsB,EAC5C,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,CAAC,KAAK,EAAE,gBAAgB,GAAG,aAAa,KAAK,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,EACrF,gBAAgB,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,sBAAsB,CAAC,KAAK,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,GAC7H,mBAAmB,CAAC,sBAAsB,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAEpE,MAAM,CAAC,KAAK,CAAC,WAAW,EACpB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,CAAC,KAAK,EAAE,gBAAgB,GAAG,aAAa,KAAK,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,GACtF,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAexC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6DG;IACH,MAAM,CAAC,UAAU,CAAC,WAAW,SAAS,MAAM,EACxC,MAAM,EAAE,UAAU,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC,EACzD,GAAG,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAChF,eAAe,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAkBpD;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,GAAG,aAAa,IAAI,QAAQ,CAAC,CAAC,CAAC;IAK3E,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAkGzF,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAgB/B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAgBhC;;OAEG;IACH,QAAQ,CAAC,QAAQ,IAAI,MAAM;IAE3B;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAE3C;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,gBAAgB,GAAG,aAAa,GAAG,CAAC;IAE/D;;;;;;;;;OASG;IACI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;CAMpF;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,gBAAgB;QACtB,KAAI,WAAW,SAAS,MAAM,EAAE,WAAW,SAAS,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;KACrI;CACJ;AAID;;;;;;GAMG;AACH,MAAM,MAAM,6BAA6B,CAAC,aAAa,IAAI;KACtD,KAAK,IAAI,MAAM,IAAI,CAAC,aAAa,EAAE,MAAM,iBAAiB,CAAC,aAAa,CAAC,CAAC,GAEvE,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,kBAAkB,KAAK,MAAM,oBAAoB,GAExF,KAAK,SAAS,SAAS,GACnB,CAAC,WAAW,EAAE,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,eAAe,CAAC,MAAM,CAAC,GAGvG,CAAC,GAAG,IAAI,EAAE;SAAG,CAAC,IAAI,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,KACvF,eAAe,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,GAEpD,aAAa,CAAC,KAAK,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAC7E,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,GAC9C,GAAG;CACpB,CAAC;AAGF;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,CAAC,WAAW,IACjC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAC9B,WAAW,GACX;IAAE,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;CAAE,GAC5C,6BAA6B,CAAC,WAAW,CAAC,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,CAAC,YAAY,EAAE,WAAW,IACnD,eAAe,CAAC,WAAW,CAAC,GAC5B,YAAY,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;AAE7C;;GAEG;AACH,cAAM,iBAAiB,CAAC,WAAW,CAAE,SAAQ,WAAY,YAAW,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ;IAKpG,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJzB,OAAO,CAAC,MAAM,CAA8C;gBAGhD,OAAO,EAAE,MAAM,EACN,IAAI,EAAE,CAAC,KAAK,EAAE,gBAAgB,GAAG,aAAa,EAAE,GAAG,UAAU,OAAA,KAAK,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,EACrH,QAAQ,GAAE,kBAAwD;IAKtE;;;OAGG;IACH,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAIjC,UAAU,CAAC,KAAK,EAAE,gBAAgB,GAAG,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;IAKzE,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE,OAAO,EAAE,OAAO,IAAI,CAAC,OAAO,GAAG,MAAM;IAIhH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKzB,QAAQ,IAAI,MAAM;IAI3B,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;CAWzF"}
@@ -126,23 +126,11 @@ const Unanswered_1 = require("./questions/Unanswered");
126
126
  * @group Screenplay Pattern
127
127
  */
128
128
  class Question {
129
- /**
130
- * Factory method that simplifies the process of defining custom questions.
131
- *
132
- * #### Defining a custom question
133
- *
134
- * ```ts
135
- * import { Question } from '@serenity-js/core'
136
- *
137
- * const EnvVariable = (name: string) =>
138
- * Question.about(`the ${ name } env variable`, actor => process.env[name])
139
- * ```
140
- *
141
- * @param description
142
- * @param body
143
- */
144
- static about(description, body) {
145
- return Question.createAdapter(new QuestionStatement(description, body));
129
+ static about(description, body, metaQuestionBody) {
130
+ const statement = typeof metaQuestionBody === 'function'
131
+ ? new MetaQuestionStatement(description, body, metaQuestionBody)
132
+ : new QuestionStatement(description, body);
133
+ return Question.createAdapter(statement);
146
134
  }
147
135
  /**
148
136
  * Generates a {@apilink QuestionAdapter} that recursively resolves
@@ -342,10 +330,12 @@ class Question {
342
330
  }
343
331
  }
344
332
  exports.Question = Question;
345
- /** @package */
333
+ /**
334
+ * @package
335
+ */
346
336
  class QuestionStatement extends Interaction_1.Interaction {
347
- constructor(subject, body) {
348
- super(subject, QuestionStatement.callerLocation(4));
337
+ constructor(subject, body, location = QuestionStatement.callerLocation(4)) {
338
+ super(subject, location);
349
339
  this.subject = subject;
350
340
  this.body = body;
351
341
  this.answer = new Unanswered_1.Unanswered();
@@ -384,6 +374,18 @@ class QuestionStatement extends Interaction_1.Interaction {
384
374
  });
385
375
  }
386
376
  }
377
+ /**
378
+ * @package
379
+ */
380
+ class MetaQuestionStatement extends QuestionStatement {
381
+ constructor(subject, body, metaQuestionBody) {
382
+ super(subject, body);
383
+ this.metaQuestionBody = metaQuestionBody;
384
+ }
385
+ of(answerable) {
386
+ return Question.about((0, io_1.d) `${this.toString()} of ${answerable}`, actor => actor.answer(this.metaQuestionBody(answerable)));
387
+ }
388
+ }
387
389
  /**
388
390
  * @package
389
391
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Question.js","sourceRoot":"","sources":["../../src/screenplay/Question.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAkD;AAClD,2CAA6B,CAAC,2CAA2C;AAEzE,sCAAuC;AACvC,8BAA2C;AAG3C,+CAA4C;AAG5C,uDAAoD;AAIpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8FG;AACH,MAAsB,QAAQ;IAE1B;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,KAAK,CAAc,WAAmB,EAAE,IAAqF;QAChI,OAAO,QAAQ,CAAC,aAAa,CAAC,IAAI,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6DG;IACH,MAAM,CAAC,UAAU,CACb,MAAyD,EACzD,GAAG,SAA4E;QAE/E,OAAO,QAAQ,CAAC,KAAK,CAAmC,OAAO,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YAC3E,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE;gBACzC,OAAO,MAAM,CAAC;aACjB;YAED,MAAM,OAAO,GAAqD,EAAE,CAAC;YAErE,KAAK,MAAM,CAAE,CAAC,EAAE,aAAa,CAAE,IAAI,CAAE,MAAM,EAAE,GAAG,SAAS,CAAE,CAAC,OAAO,EAAE,EAAE;gBACnE,OAAO,CAAC,IAAI,CACR,MAAM,iBAAiB,CAAC,KAAK,EAAE,aAAoB,EAAE,YAAa,CAAE,EAAE,CAAyD,CAClI,CAAC;aACL;YAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAI,aAAsB;QACxC,OAAO,CAAC,CAAE,aAAa;eAChB,OAAQ,aAAqB,CAAC,UAAU,KAAK,UAAU,CAAC;IACnE,CAAC;IAES,MAAM,CAAC,aAAa,CAAK,SAAuB;QACtD,SAAS,YAAY;YACjB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,UAAU,EAAE;YACtD,MAAM,CAAC,cAAc;YACjB,kFAAkF;YAClF,YAAY,EACZ,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;gBACjB,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrD,QAAQ,EAAE,KAAK;aAClB,CAAC,CAAA;SACT;QAED,OAAO,IAAI,KAAK,CAA4C,YAAY,EAAE;YAEtE,GAAG,CAAC,gBAAoC,EAAE,GAAoB,EAAE,QAAa;gBACzE,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;gBAElC,IAAI,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;oBAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBACnD;gBAED,IAAI,GAAG,KAAK,MAAM,CAAC,WAAW,EAAE;oBAC5B,OAAO,CAAC,KAAsC,EAAE,EAAE;wBAC9C,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC7B,CAAC,CAAC;iBACL;gBAED,IAAI,GAAG,IAAI,MAAM,EAAE;oBAEf,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;oBAEvC,MAAM,UAAU,GAAG,OAAO,KAAK,IAAI,UAAU,CAAA;oBAC7C,MAAM,sBAAsB,GAAG,UAAU;2BAClC,MAAM,YAAY,iBAAiB;2BACnC,GAAG,KAAK,aAAa,CAAC,CAAG,4FAA4F;oBAE5H,IAAI,sBAAsB,EAAE;wBACxB,sDAAsD;wBACtD,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;qBAC9B;oBAED,OAAO,UAAU;wBACb,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;wBACpB,CAAC,CAAC,KAAK,CAAC;iBACf;gBAED,IAAI,GAAG,KAAK,MAAM,EAAE;oBAChB,OAAO;iBACV;gBAED,OAAO,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAuC,EAAE,EAAE;oBAC5G,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,MAAwB,CAAC,CAAC;oBAE5D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;wBACpB,OAAO,SAAS,CAAC,CAAO,mDAAmD;qBAC9E;oBAED,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;oBAE1B,OAAO,OAAO,KAAK,KAAK,UAAU;wBAC9B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;wBACpB,CAAC,CAAC,KAAK,CAAC;gBAChB,CAAC,CAAC,CAAC;YACP,CAAC;YAED,GAAG,CAAC,gBAAoC,EAAE,GAAoB,EAAE,KAAU,EAAE,QAAa;gBACrF,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;gBAElC,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC3C,CAAC;YAED,KAAK,CAAC,gBAAoC,EAAE,aAAkB,EAAE,UAAqB;gBACjF,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;gBAElC,OAAO,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;oBAChF,MAAM,MAAM,GAAG,EAAS,CAAC;oBACzB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;wBAChC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;wBAC/C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBACzB;oBAED,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAEzC,OAAO,OAAO,KAAK,KAAK,UAAU;wBAC9B,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;wBAClB,CAAC,CAAC,KAAK,CAAC;gBAChB,CAAC,CAAC,CAAC;YACP,CAAC;YAED,cAAc,CAAC,gBAAoC;gBAC/C,OAAO,OAAO,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC,CAAC;YACtD,CAAC;SACJ,CAAQ,CAAC;IACd,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAK,MAAoB,EAAE,GAAoB;QAE1E,qDAAqD;QACrD,IAAI,GAAG,KAAK,IAAI,EAAE;YACd,OAAO,GAAI,MAAO,IAAK,GAAI,EAAE,CAAC;SACjC;QAED,MAAM,eAAe,GAAG,IAAA,MAAC,EAAA,GAAI,MAAO,EAAE,CAAC;QAEvC,MAAM,gBAAgB,GAAG,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3E,CAAC,CAAC,IAAK,MAAM,CAAC,GAAG,CAAE,GAAG,CAAE,cAAc;YACtC,CAAC,CAAC,IAAK,MAAM,CAAC,GAAG,CAAE,EAAE,CAAC,CAAE,oBAAoB;QAEhD,OAAO,GAAI,eAAgB,GAAI,gBAAiB,EAAE,CAAC;IACvD,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAAK,MAAoB,EAAE,UAAqB;QAE5E,MAAM,iBAAiB,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAE5C,0DAA0D;QAC1D,IAAI,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9D,OAAO,GAAI,iBAAkB,IAAK,UAAU,CAAC,CAAC,CAAE,EAAE,CAAC;SACtD;QAED,MAAM,qBAAqB,GAAG;YAC1B,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,MAAC,EAAA,GAAI,CAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG;SACtD,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEX,OAAO,GAAI,iBAAkB,GAAI,qBAAsB,EAAE,CAAC;IAC9D,CAAC;IAoBD;;;;;;;;;OASG;IACI,EAAE,CAAI,OAA+C;QACxD,OAAO,QAAQ,CAAC,KAAK,CAAI,IAAA,MAAC,EAAA,GAAI,IAAK,OAAQ,OAAQ,GAAG,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YAClE,MAAM,MAAM,GAAG,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAe,CAAC;YACxD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAvRD,4BAuRC;AAiDD,eAAe;AACf,MAAM,iBAA+B,SAAQ,yBAAW;IAIpD,YACY,OAAe,EACN,IAAoG;QAErH,KAAK,CAAC,OAAO,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QAH5C,YAAO,GAAP,OAAO,CAAQ;QACN,SAAI,GAAJ,IAAI,CAAgG;QAJjH,WAAM,GAA6B,IAAI,uBAAU,EAAE,CAAC;IAO5D,CAAC;IAED;;;OAGG;IACH,SAAS;QACL,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAuC;QACpD,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAuC;QACnD,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAa,EAAE,OAAoC,EAAE,OAA4B;QACnG,OAAO,IAAA,oBAAe,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,WAAW,CAAC,OAAe;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEQ,QAAQ;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,EAAE,CAAI,OAA2D;QAC7D,OAAO,QAAQ,CAAC,KAAK,CAAI,IAAA,MAAC,EAAA,GAAI,IAAK,OAAQ,OAAQ,GAAG,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YAClE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAExC,IAAI,CAAE,SAAS,CAAC,MAAM,CAAC,EAAE;gBACrB,OAAO,SAAS,CAAC,CAAG,mDAAmD;aAC1E;YAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,SAAa,SAAQ,QAA0B;IAIjD,YAA6B,QAAqB;QAC9C,KAAK,EAAE,CAAC;QADiB,aAAQ,GAAR,QAAQ,CAAa;QAE9C,IAAI,CAAC,OAAO,GAAG,IAAA,MAAC,EAAA,GAAG,QAAQ,cAAc,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAuC;QACpD,IAAI;YACA,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEjD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,EAAE;gBACzC,OAAO,KAAK,CAAC;aAChB;YAED,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBACzB,OAAO,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;aACjD;YAED,OAAO,IAAI,CAAC;SACf;QAAC,MAAM;YACJ,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAEO,UAAU,CAAC,aAAkB;QACjC,OAAO,OAAO,aAAa,KAAK,QAAQ;eACjC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IACnD,CAAC;IAED,WAAW,CAAC,OAAe;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CACJ;AAED;;GAEG;AACH,SAAS,SAAS,CAAI,KAAQ;IAC1B,OAAO,KAAK,KAAK,SAAS;WACnB,KAAK,KAAK,IAAI,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAEnC;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAC5B,KAAuC,EACvC,UAAyD,EACzD,WAAmB,EACnB,gBAAgB,GAAG,CAAC;IAEpB,IAAI,gBAAgB,IAAI,sBAAsB,EAAE;QAC5C,MAAM,IAAI,mBAAU,CAAC,kDAAmD,sBAAuB,4CAA6C,WAAY,uCAAuC,CAAC,CAAC;KACpM;IAED,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,UAAU,CAAQ,CAAC;IAErD,IAAI,IAAA,kBAAQ,EAAC,MAAM,CAAC,EAAE;QAClB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,eAAe,GAAG,EAAE,CAAC;QAE3B,KAAK,MAAM,CAAE,GAAG,EAAE,KAAK,CAAE,IAAI,OAAO,EAAE;YAClC,eAAe,CAAC,IAAI,CAAC,CAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC,KAAK,EAAE,KAAY,EAAE,WAAW,EAAE,gBAAgB,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;SAClH;QAED,OAAO,MAAM,CAAC,WAAW,CAAC,eAAe,CAAiB,CAAC;KAC9D;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACvB,MAAM,eAAe,GAAa,EAAE,CAAC;QAErC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE;YACvB,eAAe,CAAC,IAAI,CAAC,MAAM,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,gBAAgB,GAAG,CAAC,CAAM,CAAC,CAAC;SACtG;QAED,OAAO,eAA0C,CAAC;KACrD;IAED,OAAO,MAAsB,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"Question.js","sourceRoot":"","sources":["../../src/screenplay/Question.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  import type { Answerable } from '../Answerable';
2
2
  import type { Question } from '../Question';
3
3
  /**
4
- * A "meta question" is a {@apilink Question} about another {@apilink Answerable},
5
- * used to retrieve a transformed version of the value that answerable holds.
4
+ * A meta-question is a {@apilink Question} that can be answered
5
+ * in the context of another {@apilink Answerable},
6
+ * typically to transform its value.
6
7
  *
7
- * For example, the question {@apilink Text.of}
8
- * returns text content of a {@apilink PageElement}.
8
+ * For example, the question {@apilink Text.of} can be answered in the context
9
+ * of a {@apilink PageElement} to return its text content.
9
10
  *
10
11
  * {@apilink MetaQuestion|Meta questions} are typically used when filtering a {@apilink List}.
11
12
  *
@@ -14,14 +15,14 @@ import type { Question } from '../Question';
14
15
  *
15
16
  * @group Questions
16
17
  */
17
- export interface MetaQuestion<Supported_Answerable_Type extends Answerable<any>, Answer> {
18
+ export interface MetaQuestion<Supported_Context_Type, Answer_Type> {
18
19
  /**
19
- * Transforms a given `answerable` to another {@apilink Question}.
20
+ * Answers the given `MetaQuestion` in the context of another {@apilink Answerable}.
20
21
  *
21
22
  * #### Learn more
22
23
  * - {@apilink List}
23
24
  */
24
- of(answerable: Supported_Answerable_Type): Question<Answer>;
25
+ of(context: Answerable<Supported_Context_Type>): Question<Promise<Answer_Type>> | Question<Answer_Type>;
25
26
  /**
26
27
  * Human-readable description of this {@apilink MetaQuestion},
27
28
  * typically involving the description of the subject.
@@ -1 +1 @@
1
- {"version":3,"file":"MetaQuestion.d.ts","sourceRoot":"","sources":["../../../src/screenplay/questions/MetaQuestion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,YAAY,CAAC,yBAAyB,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM;IAEnF;;;;;OAKG;IACH,EAAE,CAAC,UAAU,EAAE,yBAAyB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE5D;;;;;;OAMG;IACH,QAAQ,IAAI,MAAM,CAAC;CACtB"}
1
+ {"version":3,"file":"MetaQuestion.d.ts","sourceRoot":"","sources":["../../../src/screenplay/questions/MetaQuestion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,YAAY,CAAC,sBAAsB,EAAE,WAAW;IAE7D;;;;;OAKG;IACH,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,sBAAsB,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAExG;;;;;;OAMG;IACH,QAAQ,IAAI,MAAM,CAAC;CACtB"}
@@ -3,7 +3,7 @@ import { FileSystem } from '../../../io';
3
3
  import type { Stage } from '../../Stage';
4
4
  import type { StageCrewMember } from '../../StageCrewMember';
5
5
  /**
6
- * Stores any {@apilink Artifact|artifacts} emitted via {@apilink ArtifactGenerated} events on the {@apilink FileSystem}
6
+ * Stores any {@apilink Artifact|artifacts} emitted via {@apilink ArtifactGenerated} events on the {@apilink FileSystem}.
7
7
  *
8
8
  * ## Registering `ArtifactArchiver` programmatically
9
9
  *
@@ -18,49 +18,69 @@ import type { StageCrewMember } from '../../StageCrewMember';
18
18
  * })
19
19
  * ```
20
20
  *
21
- * ## Registering `ArtifactArchiver` using Protractor configuration
21
+ * ## Using `ArtifactArchiver` with Playwright Test
22
+ *
23
+ * ```ts
24
+ * // playwright.config.ts
25
+ * import type { PlaywrightTestConfig } from '@serenity-js/playwright-test'
26
+ *
27
+ * const config: PlaywrightTestConfig = {
28
+ * testDir: './spec',
29
+ *
30
+ * reporter: [
31
+ * [ '@serenity-js/playwright-test', {
32
+ * crew: [
33
+ * '@serenity-js/serenity-bdd',
34
+ * [ '@serenity-js/core:ArtifactArchiver', { outputDirectory: 'target/site/serenity' } ],
35
+ * [ '@serenity-js/core:StreamReporter', { outputFile: 'target/events.ndjson' }]
36
+ * ]
37
+ * // other Serenity/JS config
38
+ * }]
39
+ * ],
40
+ * // other Playwright Test config
41
+ * }
42
+ * ```
43
+ *
44
+ * ## Using `ArtifactArchiver` with Protractor
22
45
  *
23
46
  * ```js
24
47
  * // protractor.conf.js
25
- * const { ArtifactArchiver } = require('@serenity-js/core')
26
- *
27
48
  * exports.config = {
28
49
  * framework: 'custom',
29
50
  * frameworkPath: require.resolve('@serenity-js/protractor/adapter'),
30
51
  *
31
52
  * serenity: {
32
53
  * crew: [
33
- * ArtifactArchiver.storingArtifactsAt('./target/site/serenity'),
54
+ * '@serenity-js/serenity-bdd',
55
+ * [ '@serenity-js/core:ArtifactArchiver', { outputDirectory: 'target/site/serenity' } ],
34
56
  * ],
35
57
  * // other Serenity/JS config
36
58
  * },
37
59
  * // other Protractor config
38
- * };
60
+ * }
39
61
  * ```
40
62
  *
41
- * ## Registering `ArtifactArchiver` using WebdriverIO configuration
63
+ * ## Using `ArtifactArchiver` with WebdriverIO
42
64
  *
43
65
  * ```ts
44
- * // wdio.conf.js
45
- * import { ArtifactArchiver } from '@serenity-js/core'
66
+ * // wdio.conf.ts
46
67
  * import { WebdriverIOConfig } from '@serenity-js/webdriverio'
47
68
  *
48
69
  * export const config: WebdriverIOConfig = {
49
70
  *
50
- * framework: '@serenity-js/webdriverio',
71
+ * framework: '@serenity-js/webdriverio',
51
72
  *
52
- * serenity: {
53
- * crew: [
54
- * ArtifactArchiver.storingArtifactsAt(`/target/site/serenity`),
55
- * ]
56
- * // other Serenity/JS config
57
- * },
58
- * // other WebdriverIO config
73
+ * serenity: {
74
+ * crew: [
75
+ * '@serenity-js/serenity-bdd',
76
+ * [ '@serenity-js/core:ArtifactArchiver', { outputDirectory: 'target/site/serenity' } ],
77
+ * ]
78
+ * // other Serenity/JS config
79
+ * },
80
+ * // other WebdriverIO config
59
81
  * }
60
82
  * ```
61
83
  *
62
- * [ '@serenity-js/core:ArtifactArchiver', { outputDirectory: 'target/site/serenity' } ],
63
- *
64
84
  * @group Stage
65
85
  */
66
86
  export declare class ArtifactArchiver implements StageCrewMember {
@@ -1 +1 @@
1
- {"version":3,"file":"ArtifactArchiver.d.ts","sourceRoot":"","sources":["../../../../src/stage/crew/artifact-archiver/ArtifactArchiver.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACR,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAUxC,OAAO,EAAE,UAAU,EAAQ,MAAM,aAAa,CAAC;AAG/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,qBAAa,gBAAiB,YAAW,eAAe;IAkChD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,KAAK,CAAC;IAjClB;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,GAAG,WAAW,EAAE,MAAM,EAAE,GAAG,eAAe;IAQpE;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE,GAAG,eAAe;IAMrE;;;;OAIG;gBAEkB,UAAU,EAAE,UAAU,EAC/B,KAAK,CAAC,EAAE,KAAK;IAIzB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe;IAKzC;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IA8BlC,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,OAAO;IAwBf,OAAO,CAAC,yBAAyB;CAoBpC"}
1
+ {"version":3,"file":"ArtifactArchiver.d.ts","sourceRoot":"","sources":["../../../../src/stage/crew/artifact-archiver/ArtifactArchiver.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACR,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAUxC,OAAO,EAAE,UAAU,EAAQ,MAAM,aAAa,CAAC;AAG/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AACH,qBAAa,gBAAiB,YAAW,eAAe;IAkChD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,KAAK,CAAC;IAjClB;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,GAAG,WAAW,EAAE,MAAM,EAAE,GAAG,eAAe;IAQpE;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE,GAAG,eAAe;IAMrE;;;;OAIG;gBAEkB,UAAU,EAAE,UAAU,EAC/B,KAAK,CAAC,EAAE,KAAK;IAIzB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe;IAKzC;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IA8BlC,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,OAAO;IAwBf,OAAO,CAAC,yBAAyB;CAwBpC"}
@@ -7,7 +7,7 @@ const io_1 = require("../../../io");
7
7
  const model_1 = require("../../../model");
8
8
  const Hash_1 = require("./Hash");
9
9
  /**
10
- * Stores any {@apilink Artifact|artifacts} emitted via {@apilink ArtifactGenerated} events on the {@apilink FileSystem}
10
+ * Stores any {@apilink Artifact|artifacts} emitted via {@apilink ArtifactGenerated} events on the {@apilink FileSystem}.
11
11
  *
12
12
  * ## Registering `ArtifactArchiver` programmatically
13
13
  *
@@ -22,49 +22,69 @@ const Hash_1 = require("./Hash");
22
22
  * })
23
23
  * ```
24
24
  *
25
- * ## Registering `ArtifactArchiver` using Protractor configuration
25
+ * ## Using `ArtifactArchiver` with Playwright Test
26
+ *
27
+ * ```ts
28
+ * // playwright.config.ts
29
+ * import type { PlaywrightTestConfig } from '@serenity-js/playwright-test'
30
+ *
31
+ * const config: PlaywrightTestConfig = {
32
+ * testDir: './spec',
33
+ *
34
+ * reporter: [
35
+ * [ '@serenity-js/playwright-test', {
36
+ * crew: [
37
+ * '@serenity-js/serenity-bdd',
38
+ * [ '@serenity-js/core:ArtifactArchiver', { outputDirectory: 'target/site/serenity' } ],
39
+ * [ '@serenity-js/core:StreamReporter', { outputFile: 'target/events.ndjson' }]
40
+ * ]
41
+ * // other Serenity/JS config
42
+ * }]
43
+ * ],
44
+ * // other Playwright Test config
45
+ * }
46
+ * ```
47
+ *
48
+ * ## Using `ArtifactArchiver` with Protractor
26
49
  *
27
50
  * ```js
28
51
  * // protractor.conf.js
29
- * const { ArtifactArchiver } = require('@serenity-js/core')
30
- *
31
52
  * exports.config = {
32
53
  * framework: 'custom',
33
54
  * frameworkPath: require.resolve('@serenity-js/protractor/adapter'),
34
55
  *
35
56
  * serenity: {
36
57
  * crew: [
37
- * ArtifactArchiver.storingArtifactsAt('./target/site/serenity'),
58
+ * '@serenity-js/serenity-bdd',
59
+ * [ '@serenity-js/core:ArtifactArchiver', { outputDirectory: 'target/site/serenity' } ],
38
60
  * ],
39
61
  * // other Serenity/JS config
40
62
  * },
41
63
  * // other Protractor config
42
- * };
64
+ * }
43
65
  * ```
44
66
  *
45
- * ## Registering `ArtifactArchiver` using WebdriverIO configuration
67
+ * ## Using `ArtifactArchiver` with WebdriverIO
46
68
  *
47
69
  * ```ts
48
- * // wdio.conf.js
49
- * import { ArtifactArchiver } from '@serenity-js/core'
70
+ * // wdio.conf.ts
50
71
  * import { WebdriverIOConfig } from '@serenity-js/webdriverio'
51
72
  *
52
73
  * export const config: WebdriverIOConfig = {
53
74
  *
54
- * framework: '@serenity-js/webdriverio',
75
+ * framework: '@serenity-js/webdriverio',
55
76
  *
56
- * serenity: {
57
- * crew: [
58
- * ArtifactArchiver.storingArtifactsAt(`/target/site/serenity`),
59
- * ]
60
- * // other Serenity/JS config
61
- * },
62
- * // other WebdriverIO config
77
+ * serenity: {
78
+ * crew: [
79
+ * '@serenity-js/serenity-bdd',
80
+ * [ '@serenity-js/core:ArtifactArchiver', { outputDirectory: 'target/site/serenity' } ],
81
+ * ]
82
+ * // other Serenity/JS config
83
+ * },
84
+ * // other WebdriverIO config
63
85
  * }
64
86
  * ```
65
87
  *
66
- * [ '@serenity-js/core:ArtifactArchiver', { outputDirectory: 'target/site/serenity' } ],
67
- *
68
88
  * @group Stage
69
89
  */
70
90
  class ArtifactArchiver {
@@ -149,10 +169,10 @@ class ArtifactArchiver {
149
169
  archivisationAnnouncement(event, relativePathToArtifact) {
150
170
  return (absolutePath) => {
151
171
  if (event instanceof events_1.ActivityRelatedArtifactGenerated) {
152
- this.stage.announce(new events_1.ActivityRelatedArtifactArchived(event.sceneId, event.activityId, event.name, event.artifact.constructor, relativePathToArtifact));
172
+ this.stage.announce(new events_1.ActivityRelatedArtifactArchived(event.sceneId, event.activityId, event.name, event.artifact.constructor, relativePathToArtifact, event.timestamp, this.stage.currentTime()));
153
173
  }
154
174
  else if (event instanceof events_1.ArtifactGenerated) {
155
- this.stage.announce(new events_1.ArtifactArchived(event.sceneId, event.name, event.artifact.constructor, relativePathToArtifact));
175
+ this.stage.announce(new events_1.ArtifactArchived(event.sceneId, event.name, event.artifact.constructor, relativePathToArtifact, event.timestamp, this.stage.currentTime()));
156
176
  }
157
177
  };
158
178
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ArtifactArchiver.js","sourceRoot":"","sources":["../../../../src/stage/crew/artifact-archiver/ArtifactArchiver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArtifactArchiver.js","sourceRoot":"","sources":["../../../../src/stage/crew/artifact-archiver/ArtifactArchiver.ts"],"names":[],"mappings":"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"}