@serenity-js/core 3.23.2 → 3.24.1
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.
- package/CHANGELOG.md +32 -0
- package/lib/errors/ErrorFactory.js +4 -4
- package/lib/errors/ErrorFactory.js.map +1 -1
- package/lib/errors/RaiseErrors.d.ts +2 -2
- package/lib/errors/RaiseErrors.js +2 -2
- package/lib/io/index.d.ts +0 -1
- package/lib/io/index.d.ts.map +1 -1
- package/lib/io/index.js +0 -1
- package/lib/io/index.js.map +1 -1
- package/lib/io/inspectedObject.js +1 -1
- package/lib/io/inspectedObject.js.map +1 -1
- package/lib/io/reflection/ValueInspector.d.ts +56 -0
- package/lib/io/reflection/ValueInspector.d.ts.map +1 -0
- package/lib/io/reflection/ValueInspector.js +149 -0
- package/lib/io/reflection/ValueInspector.js.map +1 -0
- package/lib/io/reflection/index.d.ts +1 -2
- package/lib/io/reflection/index.d.ts.map +1 -1
- package/lib/io/reflection/index.js +1 -2
- package/lib/io/reflection/index.js.map +1 -1
- package/lib/io/stringified.js +7 -90
- package/lib/io/stringified.js.map +1 -1
- package/lib/screenplay/Activity.d.ts +5 -12
- package/lib/screenplay/Activity.d.ts.map +1 -1
- package/lib/screenplay/Activity.js +3 -14
- package/lib/screenplay/Activity.js.map +1 -1
- package/lib/screenplay/Actor.js +1 -1
- package/lib/screenplay/Actor.js.map +1 -1
- package/lib/screenplay/Interaction.d.ts +4 -3
- package/lib/screenplay/Interaction.d.ts.map +1 -1
- package/lib/screenplay/Interaction.js +2 -2
- package/lib/screenplay/Interaction.js.map +1 -1
- package/lib/screenplay/Question.d.ts +73 -21
- package/lib/screenplay/Question.d.ts.map +1 -1
- package/lib/screenplay/Question.js +237 -30
- package/lib/screenplay/Question.js.map +1 -1
- package/lib/screenplay/Task.d.ts +16 -15
- package/lib/screenplay/Task.d.ts.map +1 -1
- package/lib/screenplay/Task.js +14 -14
- package/lib/screenplay/Task.js.map +1 -1
- package/lib/screenplay/abilities/Ability.d.ts +8 -6
- package/lib/screenplay/abilities/Ability.d.ts.map +1 -1
- package/lib/screenplay/abilities/Ability.js +8 -6
- package/lib/screenplay/abilities/Ability.js.map +1 -1
- package/lib/screenplay/abilities/AbilityType.d.ts +3 -3
- package/lib/screenplay/abilities/AnswerQuestions.d.ts +0 -1
- package/lib/screenplay/abilities/AnswerQuestions.d.ts.map +1 -1
- package/lib/screenplay/abilities/AnswerQuestions.js +2 -4
- package/lib/screenplay/abilities/AnswerQuestions.js.map +1 -1
- package/lib/screenplay/abilities/PerformActivities.d.ts +5 -3
- package/lib/screenplay/abilities/PerformActivities.d.ts.map +1 -1
- package/lib/screenplay/abilities/PerformActivities.js +12 -10
- package/lib/screenplay/abilities/PerformActivities.js.map +1 -1
- package/lib/screenplay/artifacts/CollectsArtifacts.d.ts +2 -2
- package/lib/screenplay/notes/NotepadAdapter.d.ts.map +1 -1
- package/lib/screenplay/notes/NotepadAdapter.js +44 -4
- package/lib/screenplay/notes/NotepadAdapter.js.map +1 -1
- package/lib/screenplay/questions/Describable.d.ts +27 -0
- package/lib/screenplay/questions/Describable.d.ts.map +1 -0
- package/lib/screenplay/questions/Describable.js +40 -0
- package/lib/screenplay/questions/Describable.js.map +1 -0
- package/lib/screenplay/questions/DescriptionFormattingOptions.d.ts +14 -0
- package/lib/screenplay/questions/DescriptionFormattingOptions.d.ts.map +1 -0
- package/lib/screenplay/questions/DescriptionFormattingOptions.js +3 -0
- package/lib/screenplay/questions/DescriptionFormattingOptions.js.map +1 -0
- package/lib/screenplay/questions/Expectation.d.ts +6 -10
- package/lib/screenplay/questions/Expectation.d.ts.map +1 -1
- package/lib/screenplay/questions/Expectation.js +12 -15
- package/lib/screenplay/questions/Expectation.js.map +1 -1
- package/lib/screenplay/questions/List.d.ts +1 -3
- package/lib/screenplay/questions/List.d.ts.map +1 -1
- package/lib/screenplay/questions/List.js +6 -31
- package/lib/screenplay/questions/List.js.map +1 -1
- package/lib/screenplay/questions/Unanswered.d.ts +1 -0
- package/lib/screenplay/questions/Unanswered.d.ts.map +1 -1
- package/lib/screenplay/questions/Unanswered.js +3 -0
- package/lib/screenplay/questions/Unanswered.js.map +1 -1
- package/lib/screenplay/questions/expectations/ExpectationDetails.js +1 -1
- package/lib/screenplay/questions/expectations/ExpectationDetails.js.map +1 -1
- package/lib/screenplay/questions/index.d.ts +3 -1
- package/lib/screenplay/questions/index.d.ts.map +1 -1
- package/lib/screenplay/questions/index.js +3 -1
- package/lib/screenplay/questions/index.js.map +1 -1
- package/lib/screenplay/questions/tag-functions.d.ts +228 -0
- package/lib/screenplay/questions/tag-functions.d.ts.map +1 -0
- package/lib/screenplay/questions/tag-functions.js +115 -0
- package/lib/screenplay/questions/tag-functions.js.map +1 -0
- package/lib/screenplay/time/activities/Wait.d.ts.map +1 -1
- package/lib/screenplay/time/activities/Wait.js +4 -3
- package/lib/screenplay/time/activities/Wait.js.map +1 -1
- package/package.json +6 -6
- package/src/errors/ErrorFactory.ts +5 -5
- package/src/errors/RaiseErrors.ts +2 -2
- package/src/io/index.ts +0 -1
- package/src/io/inspectedObject.ts +2 -2
- package/src/io/reflection/ValueInspector.ts +165 -0
- package/src/io/reflection/index.ts +1 -2
- package/src/io/stringified.ts +7 -103
- package/src/screenplay/Activity.ts +6 -17
- package/src/screenplay/Actor.ts +2 -2
- package/src/screenplay/Interaction.ts +5 -4
- package/src/screenplay/Question.ts +299 -49
- package/src/screenplay/Task.ts +18 -17
- package/src/screenplay/abilities/Ability.ts +8 -6
- package/src/screenplay/abilities/AbilityType.ts +3 -3
- package/src/screenplay/abilities/AnswerQuestions.ts +2 -5
- package/src/screenplay/abilities/PerformActivities.ts +35 -18
- package/src/screenplay/artifacts/CollectsArtifacts.ts +2 -2
- package/src/screenplay/notes/NotepadAdapter.ts +57 -6
- package/src/screenplay/questions/Describable.ts +48 -0
- package/src/screenplay/questions/DescriptionFormattingOptions.ts +13 -0
- package/src/screenplay/questions/Expectation.ts +19 -19
- package/src/screenplay/questions/List.ts +7 -41
- package/src/screenplay/questions/Unanswered.ts +4 -0
- package/src/screenplay/questions/expectations/ExpectationDetails.ts +2 -2
- package/src/screenplay/questions/index.ts +3 -1
- package/src/screenplay/questions/tag-functions.ts +313 -0
- package/src/screenplay/time/activities/Wait.ts +4 -3
- package/lib/io/isPlainObject.d.ts +0 -7
- package/lib/io/isPlainObject.d.ts.map +0 -1
- package/lib/io/isPlainObject.js +0 -25
- package/lib/io/isPlainObject.js.map +0 -1
- package/lib/io/reflection/isPrimitive.d.ts +0 -8
- package/lib/io/reflection/isPrimitive.d.ts.map +0 -1
- package/lib/io/reflection/isPrimitive.js +0 -24
- package/lib/io/reflection/isPrimitive.js.map +0 -1
- package/lib/io/reflection/typeOf.d.ts +0 -7
- package/lib/io/reflection/typeOf.d.ts.map +0 -1
- package/lib/io/reflection/typeOf.js +0 -35
- package/lib/io/reflection/typeOf.js.map +0 -1
- package/lib/screenplay/questions/q.d.ts +0 -66
- package/lib/screenplay/questions/q.d.ts.map +0 -1
- package/lib/screenplay/questions/q.js +0 -77
- package/lib/screenplay/questions/q.js.map +0 -1
- package/src/io/isPlainObject.ts +0 -24
- package/src/io/reflection/isPrimitive.ts +0 -20
- package/src/io/reflection/typeOf.ts +0 -31
- package/src/screenplay/questions/q.ts +0 -82
|
@@ -3,15 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Expectation = void 0;
|
|
4
4
|
const io_1 = require("../../io");
|
|
5
5
|
const __1 = require("../");
|
|
6
|
+
const index_1 = require("../index");
|
|
7
|
+
const Question_1 = require("../Question");
|
|
8
|
+
const questions_1 = require("../questions");
|
|
6
9
|
/**
|
|
7
10
|
* Defines an expectation to be used with {@apilink @apilink Wait.until}, {@apilink Check.whether}, {@apilink Ensure.that}
|
|
8
11
|
* and as part of the Page Element Query Language with {@apilink PageElements.where} and {@apilink List.where}.
|
|
9
12
|
*
|
|
10
13
|
* @group Expectations
|
|
11
14
|
*/
|
|
12
|
-
class Expectation {
|
|
15
|
+
class Expectation extends questions_1.Describable {
|
|
13
16
|
functionName;
|
|
14
|
-
description;
|
|
15
17
|
predicate;
|
|
16
18
|
/**
|
|
17
19
|
* A factory method to that makes defining custom {@apilink Expectation|expectations} easier
|
|
@@ -101,19 +103,20 @@ class Expectation {
|
|
|
101
103
|
static define(functionName, relationship, predicate) {
|
|
102
104
|
return Object.defineProperty(function (...answerableArguments) {
|
|
103
105
|
const description = typeof relationship === 'function' ? relationship(...answerableArguments)
|
|
104
|
-
: (answerableArguments.length === 1 ?
|
|
106
|
+
: (answerableArguments.length === 1 ? (0, index_1.the) `${{ toString: () => relationship }} ${answerableArguments[0]}`
|
|
105
107
|
: relationship);
|
|
106
108
|
return new Expectation(functionName, description, async (actor, actualValue) => {
|
|
107
109
|
const predicateArguments = await (0, io_1.asyncMap)(answerableArguments, answerableArgument => actor.answer(answerableArgument));
|
|
108
110
|
const actual = await actor.answer(actualValue);
|
|
109
111
|
const result = await predicate(actual, ...predicateArguments);
|
|
112
|
+
const descriptionText = await actor.answer(description);
|
|
110
113
|
const expectationDetails = __1.ExpectationDetails.of(functionName, ...predicateArguments);
|
|
111
114
|
const expected = predicateArguments.length > 0
|
|
112
115
|
? predicateArguments[0]
|
|
113
116
|
: true; // the only parameter-less expectations are boolean ones like `isPresent`, `isActive`, etc.
|
|
114
117
|
return result
|
|
115
|
-
? new __1.ExpectationMet(
|
|
116
|
-
: new __1.ExpectationNotMet(
|
|
118
|
+
? new __1.ExpectationMet(descriptionText, expectationDetails, expected, actual)
|
|
119
|
+
: new __1.ExpectationNotMet(descriptionText, expectationDetails, expected, actual);
|
|
117
120
|
});
|
|
118
121
|
}, 'name', { value: functionName, writable: false });
|
|
119
122
|
}
|
|
@@ -199,8 +202,8 @@ class Expectation {
|
|
|
199
202
|
};
|
|
200
203
|
}
|
|
201
204
|
constructor(functionName, description, predicate) {
|
|
205
|
+
super(description);
|
|
202
206
|
this.functionName = functionName;
|
|
203
|
-
this.description = description;
|
|
204
207
|
this.predicate = predicate;
|
|
205
208
|
}
|
|
206
209
|
/**
|
|
@@ -211,21 +214,15 @@ class Expectation {
|
|
|
211
214
|
* @param actual
|
|
212
215
|
*/
|
|
213
216
|
isMetFor(actual) {
|
|
214
|
-
return
|
|
217
|
+
return Question_1.Question.about(this.getDescription(), actor => this.predicate(actor, actual));
|
|
215
218
|
}
|
|
216
219
|
/**
|
|
217
220
|
* @inheritDoc
|
|
218
221
|
*/
|
|
219
|
-
describedAs(
|
|
220
|
-
|
|
222
|
+
describedAs(description) {
|
|
223
|
+
super.setDescription(description);
|
|
221
224
|
return this;
|
|
222
225
|
}
|
|
223
|
-
/**
|
|
224
|
-
* @inheritDoc
|
|
225
|
-
*/
|
|
226
|
-
toString() {
|
|
227
|
-
return this.description;
|
|
228
|
-
}
|
|
229
226
|
}
|
|
230
227
|
exports.Expectation = Expectation;
|
|
231
228
|
//# sourceMappingURL=Expectation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Expectation.js","sourceRoot":"","sources":["../../../src/screenplay/questions/Expectation.ts"],"names":[],"mappings":";;;AAEA,iCAAuC;
|
|
1
|
+
{"version":3,"file":"Expectation.js","sourceRoot":"","sources":["../../../src/screenplay/questions/Expectation.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ import type { Expectation } from './Expectation';
|
|
|
12
12
|
*
|
|
13
13
|
* @group Questions
|
|
14
14
|
*/
|
|
15
|
-
export declare abstract class List<Item_Type> extends Question<Promise<Item_Type
|
|
15
|
+
export declare abstract class List<Item_Type> extends Question<Promise<Array<Item_Type>>> {
|
|
16
16
|
protected readonly collection: Answerable<Array<Item_Type>>;
|
|
17
17
|
protected subject?: string;
|
|
18
18
|
static of<IT, CT, RQT extends (Question<Promise<Array<IT>>> | Question<Array<IT>>)>(collection: Answerable<Array<IT>> & ChainableMetaQuestion<CT, RQT>): MetaList<CT, IT>;
|
|
@@ -26,8 +26,6 @@ export declare abstract class List<Item_Type> extends Question<Promise<Item_Type
|
|
|
26
26
|
abstract last(): QuestionAdapter<Item_Type>;
|
|
27
27
|
abstract nth(index: number): QuestionAdapter<Item_Type>;
|
|
28
28
|
answeredBy(actor: AnswersQuestions & UsesAbilities): Promise<Array<Item_Type>>;
|
|
29
|
-
describedAs(subject: string): this;
|
|
30
|
-
toString(): string;
|
|
31
29
|
/**
|
|
32
30
|
* @param {number} index
|
|
33
31
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../src/screenplay/questions/List.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD;;;;;GAKG;AACH,8BAAsB,IAAI,CAAC,SAAS,CAAE,SAAQ,QAAQ,CAAC,OAAO,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../src/screenplay/questions/List.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ class List extends Question_1.Question {
|
|
|
22
22
|
return new ArrayList(collection);
|
|
23
23
|
}
|
|
24
24
|
constructor(collection) {
|
|
25
|
-
super();
|
|
25
|
+
super((0, io_1.d) `${collection}`);
|
|
26
26
|
this.collection = collection;
|
|
27
27
|
}
|
|
28
28
|
forEach(callback) {
|
|
@@ -35,13 +35,6 @@ class List extends Question_1.Question {
|
|
|
35
35
|
}
|
|
36
36
|
return collection;
|
|
37
37
|
}
|
|
38
|
-
describedAs(subject) {
|
|
39
|
-
this.subject = subject;
|
|
40
|
-
return this;
|
|
41
|
-
}
|
|
42
|
-
toString() {
|
|
43
|
-
return this.subject ?? (0, io_1.d) `${this.collection}`;
|
|
44
|
-
}
|
|
45
38
|
/**
|
|
46
39
|
* @param {number} index
|
|
47
40
|
*/
|
|
@@ -193,16 +186,14 @@ class Where extends Question_1.Question {
|
|
|
193
186
|
collection;
|
|
194
187
|
question;
|
|
195
188
|
expectation;
|
|
196
|
-
subject;
|
|
197
189
|
constructor(collection, question, expectation, originalSubject) {
|
|
198
|
-
|
|
190
|
+
const prefix = collection instanceof Where
|
|
191
|
+
? ' and'
|
|
192
|
+
: ' where';
|
|
193
|
+
super(originalSubject + prefix + (0, io_1.d) ` ${question} does ${expectation}`);
|
|
199
194
|
this.collection = collection;
|
|
200
195
|
this.question = question;
|
|
201
196
|
this.expectation = expectation;
|
|
202
|
-
const prefix = this.collection instanceof Where
|
|
203
|
-
? ' and'
|
|
204
|
-
: ' where';
|
|
205
|
-
this.subject = originalSubject + prefix + (0, io_1.d) ` ${question} does ${expectation}`;
|
|
206
197
|
}
|
|
207
198
|
async answeredBy(actor) {
|
|
208
199
|
try {
|
|
@@ -221,13 +212,6 @@ class Where extends Question_1.Question {
|
|
|
221
212
|
throw new errors_1.LogicError((0, io_1.d) `Couldn't check if ${this.question} of an item of ${this.collection} does ${this.expectation}: ` + error.message, error);
|
|
222
213
|
}
|
|
223
214
|
}
|
|
224
|
-
describedAs(subject) {
|
|
225
|
-
this.subject = subject;
|
|
226
|
-
return this;
|
|
227
|
-
}
|
|
228
|
-
toString() {
|
|
229
|
-
return this.subject;
|
|
230
|
-
}
|
|
231
215
|
}
|
|
232
216
|
/**
|
|
233
217
|
* @package
|
|
@@ -243,12 +227,10 @@ class MetaWhere extends Where {
|
|
|
243
227
|
class EachMappedTo extends Question_1.Question {
|
|
244
228
|
collection;
|
|
245
229
|
mapping;
|
|
246
|
-
subject;
|
|
247
230
|
constructor(collection, mapping, originalSubject) {
|
|
248
|
-
super();
|
|
231
|
+
super(originalSubject + (0, io_1.d) ` mapped to ${mapping}`);
|
|
249
232
|
this.collection = collection;
|
|
250
233
|
this.mapping = mapping;
|
|
251
|
-
this.subject = originalSubject + (0, io_1.d) ` mapped to ${this.mapping}`;
|
|
252
234
|
}
|
|
253
235
|
async answeredBy(actor) {
|
|
254
236
|
const collection = await actor.answer(this.collection);
|
|
@@ -258,13 +240,6 @@ class EachMappedTo extends Question_1.Question {
|
|
|
258
240
|
}
|
|
259
241
|
return mapped;
|
|
260
242
|
}
|
|
261
|
-
describedAs(subject) {
|
|
262
|
-
this.subject = subject;
|
|
263
|
-
return this;
|
|
264
|
-
}
|
|
265
|
-
toString() {
|
|
266
|
-
return this.subject;
|
|
267
|
-
}
|
|
268
243
|
}
|
|
269
244
|
/**
|
|
270
245
|
* @package
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.js","sourceRoot":"","sources":["../../../src/screenplay/questions/List.ts"],"names":[],"mappings":";;;AAAA,yCAAiE;AACjE,iCAA6B;AAK7B,0CAAuC;AAEvC,kCAA+B;AAE/B,iDAAgD;AAEhD;;;;;GAKG;AACH,MAAsB,IAAgB,SAAQ,
|
|
1
|
+
{"version":3,"file":"List.js","sourceRoot":"","sources":["../../../src/screenplay/questions/List.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Unanswered.d.ts","sourceRoot":"","sources":["../../../src/screenplay/questions/Unanswered.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,SAAS,EAAC,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B;;;;;;;;;;GAUG;AACH,qBAAa,UAAW,SAAQ,QAAQ;IACpC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM;IAI/B,QAAQ,IAAI,MAAM;IAIlB,MAAM,IAAI,SAAS;CAGtB"}
|
|
1
|
+
{"version":3,"file":"Unanswered.d.ts","sourceRoot":"","sources":["../../../src/screenplay/questions/Unanswered.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,SAAS,EAAC,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B;;;;;;;;;;GAUG;AACH,qBAAa,UAAW,SAAQ,QAAQ;IACpC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU;IAIxD,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM;IAI/B,QAAQ,IAAI,MAAM;IAIlB,MAAM,IAAI,SAAS;CAGtB"}
|
|
@@ -38,6 +38,9 @@ const util = __importStar(require("util")); // eslint-disable-line unicorn/impor
|
|
|
38
38
|
* @group Questions
|
|
39
39
|
*/
|
|
40
40
|
class Unanswered extends tiny_types_1.TinyType {
|
|
41
|
+
static isUnanswered(value) {
|
|
42
|
+
return value instanceof Unanswered;
|
|
43
|
+
}
|
|
41
44
|
[util.inspect.custom]() {
|
|
42
45
|
return `<<unanswered>>`;
|
|
43
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Unanswered.js","sourceRoot":"","sources":["../../../src/screenplay/questions/Unanswered.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2CAAsC;AACtC,2CAA6B,CAAG,2CAA2C;AAE3E;;;;;;;;;;GAUG;AACH,MAAa,UAAW,SAAQ,qBAAQ;IACpC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACjB,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,QAAQ;QACJ,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,MAAM;QACF,OAAO,SAAS,CAAC,CAAG,mDAAmD;IAC3E,CAAC;CACJ;
|
|
1
|
+
{"version":3,"file":"Unanswered.js","sourceRoot":"","sources":["../../../src/screenplay/questions/Unanswered.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2CAAsC;AACtC,2CAA6B,CAAG,2CAA2C;AAE3E;;;;;;;;;;GAUG;AACH,MAAa,UAAW,SAAQ,qBAAQ;IACpC,MAAM,CAAC,YAAY,CAAC,KAAc;QAC9B,OAAO,KAAK,YAAY,UAAU,CAAC;IACvC,CAAC;IAED,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACjB,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,QAAQ;QACJ,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,MAAM;QACF,OAAO,SAAS,CAAC,CAAG,mDAAmD;IAC3E,CAAC;CACJ;AAhBD,gCAgBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpectationDetails.js","sourceRoot":"","sources":["../../../../src/screenplay/questions/expectations/ExpectationDetails.ts"],"names":[],"mappings":";;;AACA,2CAAkE;AAElE,
|
|
1
|
+
{"version":3,"file":"ExpectationDetails.js","sourceRoot":"","sources":["../../../../src/screenplay/questions/expectations/ExpectationDetails.ts"],"names":[],"mappings":";;;AACA,2CAAkE;AAElE,oCAAwD;AACxD,0CAAsC;AACtC,8CAA2C;AAE3C;;;;GAIG;AACH,MAAa,kBAAmB,SAAQ,qBAAQ;IAuBxB;IACA;IAtBpB,MAAM,CAAC,EAAE,CAAC,YAAoB,EAAE,GAAG,iBAAqE;QACpG,OAAO,IAAI,kBAAkB,CAAC,IAAI,YAAI,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,CAAa;QACzB,OAAO,IAAI,kBAAkB,CACzB,YAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAc,CAAC,EAC9B,CAAC,CAAC,IAAkD,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC5D,IAAI,GAAG,CAAC,IAAI,KAAK,uBAAU,CAAC,IAAI,EAAE;gBAC9B,OAAO,IAAI,uBAAU,EAAE,CAAC;aAC3B;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB,CAAC,IAAI,EAAE;gBACtC,OAAO,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAmB,CAAC,CAAA;aAC9D;YACD,2BAA2B;YAC3B,OAAO,GAAG,CAAC,KAAK,CAAC;QACrB,CAAC,CAAC,CACL,CAAC;IACN,CAAC;IAED,YACoB,IAAU,EACV,IAAwD;QAExE,KAAK,EAAE,CAAC;QAHQ,SAAI,GAAJ,IAAI,CAAM;QACV,SAAI,GAAJ,IAAI,CAAoD;QAGxE,IAAA,mBAAM,EAAC,MAAM,EAAE,IAAI,EAAE,IAAA,sBAAS,GAAE,CAAC,CAAC;QAClC,IAAA,mBAAM,EAAC,MAAM,EAAE,IAAI,EAAE,IAAA,oBAAO,GAAE,CAAC,CAAC;IACpC,CAAC;IAED,QAAQ;QACJ,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CACvC,GAAG,YAAY,kBAAkB;YAC7B,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;YAChB,CAAC,CAAC,IAAA,cAAS,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAC1C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,OAAO,GAAI,IAAI,CAAC,IAAI,CAAC,KAAM,IAAK,cAAe,GAAG,CAAC;IACvD,CAAC;IAED,MAAM;QACF,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACxB,IAAI,EAAE,mBAAc,CAAC,MAAM,CAAC,GAAG,CAAC;gBAChC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC;oBAChB,CAAC,CAAE,GAAW,CAAC,MAAM,EAAE;oBACvB,CAAC,CAAC,GAAG;aACZ,CAAC,CAAC;SACN,CAAA;IACL,CAAC;CACJ;AApDD,gDAoDC"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
export * from './AnswersQuestions';
|
|
2
2
|
export * from './ChainableMetaQuestion';
|
|
3
3
|
export * from './Check';
|
|
4
|
+
export * from './Describable';
|
|
5
|
+
export * from './DescriptionFormattingOptions';
|
|
4
6
|
export * from './Expectation';
|
|
5
7
|
export * from './expectations';
|
|
6
8
|
export * from './List';
|
|
7
9
|
export * from './Masked';
|
|
8
10
|
export * from './MetaQuestion';
|
|
9
|
-
export * from './
|
|
11
|
+
export * from './tag-functions';
|
|
10
12
|
export * from './Unanswered';
|
|
11
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/screenplay/questions/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/screenplay/questions/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,gCAAgC,CAAC;AAC/C,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC"}
|
|
@@ -17,11 +17,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./AnswersQuestions"), exports);
|
|
18
18
|
__exportStar(require("./ChainableMetaQuestion"), exports);
|
|
19
19
|
__exportStar(require("./Check"), exports);
|
|
20
|
+
__exportStar(require("./Describable"), exports);
|
|
21
|
+
__exportStar(require("./DescriptionFormattingOptions"), exports);
|
|
20
22
|
__exportStar(require("./Expectation"), exports);
|
|
21
23
|
__exportStar(require("./expectations"), exports);
|
|
22
24
|
__exportStar(require("./List"), exports);
|
|
23
25
|
__exportStar(require("./Masked"), exports);
|
|
24
26
|
__exportStar(require("./MetaQuestion"), exports);
|
|
25
|
-
__exportStar(require("./
|
|
27
|
+
__exportStar(require("./tag-functions"), exports);
|
|
26
28
|
__exportStar(require("./Unanswered"), exports);
|
|
27
29
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/screenplay/questions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,0DAAwC;AACxC,0CAAwB;AACxB,gDAA8B;AAC9B,iDAA+B;AAC/B,yCAAuB;AACvB,2CAAyB;AACzB,iDAA+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/screenplay/questions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,0DAAwC;AACxC,0CAAwB;AACxB,gDAA8B;AAC9B,iEAA+C;AAC/C,gDAA8B;AAC9B,iDAA+B;AAC/B,yCAAuB;AACvB,2CAAyB;AACzB,iDAA+B;AAC/B,kDAAgC;AAChC,+CAA6B"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import type { Answerable } from '../Answerable';
|
|
2
|
+
import type { MetaQuestionAdapter, QuestionAdapter } from '../Question';
|
|
3
|
+
import type { DescriptionFormattingOptions } from './DescriptionFormattingOptions';
|
|
4
|
+
import type { MetaQuestion } from './MetaQuestion';
|
|
5
|
+
/**
|
|
6
|
+
* Creates a single-line description of an {@apilink Activity} by transforming
|
|
7
|
+
* a [template literal](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#Tagged_templates),
|
|
8
|
+
* parameterised with [primitive data types](https://developer.mozilla.org/en-US/docs/Glossary/Primitive),
|
|
9
|
+
* [complex data structures](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#objects),
|
|
10
|
+
* or any other {@apilink Answerable|Answerables}, into a {@link QuestionAdapter|`QuestionAdapter<string>`}
|
|
11
|
+
* that can be used with {@apilink Task.where} and {@apilink Interaction.where} methods.
|
|
12
|
+
*
|
|
13
|
+
* ```ts
|
|
14
|
+
* const dial = (phoneNumber: Answerable<string>) =>
|
|
15
|
+
* Task.where(the `#actor dials ${ phoneNumber }`, /* *\/)
|
|
16
|
+
*
|
|
17
|
+
* await actorCalled('Alice').attemptsTo(
|
|
18
|
+
* dial('(555) 123-4567'),
|
|
19
|
+
* // reported as: Alice dials "(555) 123-4567"
|
|
20
|
+
* )
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* ## Trimming the output
|
|
24
|
+
*
|
|
25
|
+
* Use {@apilink DescriptionFormattingOptions} to trim the descriptions of template parameters.
|
|
26
|
+
* By default, the output is displayed in full.
|
|
27
|
+
*
|
|
28
|
+
* ```ts
|
|
29
|
+
* import { actorCalled, Task, the } from '@serenity-js/core'
|
|
30
|
+
*
|
|
31
|
+
* const dial = (phoneNumber: Answerable<string>) =>
|
|
32
|
+
* Task.where(dial({ maxLength: 10 }) `#actor dials ${ phoneNumber }`, /* *\/)
|
|
33
|
+
*
|
|
34
|
+
* await actorCalled('Alice').attemptsTo(
|
|
35
|
+
* dial('(555) 123-4567'),
|
|
36
|
+
* // reported as: Alice dials "(555) 123-...'
|
|
37
|
+
* )
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* ## Using with Questions
|
|
41
|
+
*
|
|
42
|
+
* When `the` is parameterised with {@apilink Question|Questions},
|
|
43
|
+
* it retrieves their description by calling {@apilink Question.describedBy}
|
|
44
|
+
* in the context of the {@apilink Actor} performing the {@apilink Activity}.
|
|
45
|
+
*
|
|
46
|
+
* ```ts
|
|
47
|
+
* import { actorCalled, Question, Task, the } from '@serenity-js/core'
|
|
48
|
+
*
|
|
49
|
+
* const phoneNumber = (areaCode: string, centralOfficeCode: string, lineNumber: string) =>
|
|
50
|
+
* Question.about('phone number', actor => {
|
|
51
|
+
* return `(${ this.areaCode }) ${ this.centralOfficeCode }-${ this.lineNumber }`
|
|
52
|
+
* })
|
|
53
|
+
*
|
|
54
|
+
* const dial = (phoneNumber: Answerable<string>) =>
|
|
55
|
+
* Task.where(dial({ maxLength: 10 }) `#actor dials ${ phoneNumber }`, /* *\/)
|
|
56
|
+
*
|
|
57
|
+
* await actorCalled('Alice').attemptsTo(
|
|
58
|
+
* dial(phoneNumber('555', '123', '4567'),
|
|
59
|
+
* // reported as: Alice dials phone number
|
|
60
|
+
* )
|
|
61
|
+
* ```
|
|
62
|
+
*
|
|
63
|
+
* If you'd like the question to be described using its formatted value instead of its description, use {@apilink Question.formattedValue}.
|
|
64
|
+
*
|
|
65
|
+
* ```ts
|
|
66
|
+
* import { actorCalled, Question, Task, the } from '@serenity-js/core'
|
|
67
|
+
*
|
|
68
|
+
* const phoneNumber = (areaCode: string, centralOfficeCode: string, lineNumber: string) =>
|
|
69
|
+
* Question.about('phone number', actor => {
|
|
70
|
+
* return `(${ this.areaCode }) ${ this.centralOfficeCode }-${ this.lineNumber }`
|
|
71
|
+
* }).describedAs(Question.formattedValue())
|
|
72
|
+
*
|
|
73
|
+
* const dial = (phoneNumber: Answerable<string>) =>
|
|
74
|
+
* Task.where(dial({ maxLength: 10 }) `#actor dials ${ phoneNumber }`, /* *\/)
|
|
75
|
+
*
|
|
76
|
+
* await actorCalled('Alice').attemptsTo(
|
|
77
|
+
* dial(phoneNumber('555', '123', '4567'),
|
|
78
|
+
* // reported as: Alice dials "(555) 123-4567"
|
|
79
|
+
* )
|
|
80
|
+
* ```
|
|
81
|
+
*
|
|
82
|
+
* ## Using with objects with a custom `toString` method
|
|
83
|
+
*
|
|
84
|
+
* When `the` is parameterised with objects that have
|
|
85
|
+
* a custom [`toString()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString) method,
|
|
86
|
+
* or {@link Answerable|Answerables} resolving to such objects, the `toString()` method is called to produce the resulting description.
|
|
87
|
+
*
|
|
88
|
+
* ```ts
|
|
89
|
+
* import { actorCalled, description, Task } from '@serenity-js/core'
|
|
90
|
+
*
|
|
91
|
+
* class PhoneNumber {
|
|
92
|
+
* constructor(
|
|
93
|
+
* private readonly areaCode: string,
|
|
94
|
+
* private readonly centralOfficeCode: string,
|
|
95
|
+
* private readonly lineNumber: string,
|
|
96
|
+
* ) {}
|
|
97
|
+
*
|
|
98
|
+
* toString() {
|
|
99
|
+
* return `(${ this.areaCode }) ${ this.centralOfficeCode }-${ this.lineNumber }`
|
|
100
|
+
* }
|
|
101
|
+
* }
|
|
102
|
+
*
|
|
103
|
+
* const dial = (phoneNumber: Answerable<PhoneNumber>) =>
|
|
104
|
+
* Task.where(description `#actor dials ${ phoneNumber }`, /* *\/)
|
|
105
|
+
*
|
|
106
|
+
* await actorCalled('Alice').attemptsTo(
|
|
107
|
+
* dial(new PhoneNumber('555', '123', '4567')),
|
|
108
|
+
* // reported as: Alice dials (555) 123-4567
|
|
109
|
+
* )
|
|
110
|
+
* ```
|
|
111
|
+
*
|
|
112
|
+
* ## Using with objects without a custom `toString` method
|
|
113
|
+
*
|
|
114
|
+
* When `the` is parameterised with complex objects that don't have a custom `toString()` method,
|
|
115
|
+
* or {@link Answerable}s resolving to such objects,
|
|
116
|
+
* the resulting description will contain a JSON-like string representation of the object.
|
|
117
|
+
*
|
|
118
|
+
* ```ts
|
|
119
|
+
* import { actorCalled, description, Task } from '@serenity-js/core'
|
|
120
|
+
*
|
|
121
|
+
* interface PhoneNumber {
|
|
122
|
+
* areaCode: string;
|
|
123
|
+
* centralOfficeCode: string;
|
|
124
|
+
* lineNumber: string;
|
|
125
|
+
* }
|
|
126
|
+
*
|
|
127
|
+
* const dial = (phoneNumber: Answerable<PhoneNumber>) =>
|
|
128
|
+
* Task.where(the `#actor dials ${ phoneNumber }`, /* *\/)
|
|
129
|
+
*
|
|
130
|
+
* await actorCalled('Alice').attemptsTo(
|
|
131
|
+
* dial({ areaCode: '555', centralOfficeCode: '123', lineNumber: '4567' }),
|
|
132
|
+
* // reported as: Alice dials { areaCode: "555", centralOfficeCode: "123", lineNumber: "4567" }
|
|
133
|
+
* )
|
|
134
|
+
* ```
|
|
135
|
+
*
|
|
136
|
+
* ## Using with masked values
|
|
137
|
+
*
|
|
138
|
+
* When `the` is parameterised with {@apilink Masked} values,
|
|
139
|
+
* the resulting description will contain a masked representation of the values.
|
|
140
|
+
*
|
|
141
|
+
* ```ts
|
|
142
|
+
* import { actorCalled, description, Task } from '@serenity-js/core'
|
|
143
|
+
*
|
|
144
|
+
* const dial = (phoneNumber: Answerable<string>) =>
|
|
145
|
+
* Task.where(description `#actor dials ${ phoneNumber }`, /* *\/)
|
|
146
|
+
*
|
|
147
|
+
* await actorCalled('Alice').attemptsTo(
|
|
148
|
+
* dial(Masked.valueOf('(555) 123-4567')),
|
|
149
|
+
* // reported as: Alice dials [a masked value]
|
|
150
|
+
* )
|
|
151
|
+
* ```
|
|
152
|
+
*
|
|
153
|
+
* ## Learn more
|
|
154
|
+
*
|
|
155
|
+
* - {@apilink Answerable}
|
|
156
|
+
* - {@apilink Question}
|
|
157
|
+
* - {@apilink Question.describedAs}
|
|
158
|
+
* - {@apilink QuestionAdapter}
|
|
159
|
+
* - {@apilink Masked}
|
|
160
|
+
*
|
|
161
|
+
* @group Questions
|
|
162
|
+
*/
|
|
163
|
+
export declare function the(options: DescriptionFormattingOptions): <Supported_Context_Type>(templates: TemplateStringsArray, ...placeholders: Array<MetaQuestion<Supported_Context_Type, any> | any>) => MetaQuestionAdapter<Supported_Context_Type, string>;
|
|
164
|
+
export declare function the<Supported_Context_Type>(templates: TemplateStringsArray, ...parameters: Array<MetaQuestion<Supported_Context_Type, any> | any>): MetaQuestionAdapter<Supported_Context_Type, string>;
|
|
165
|
+
/**
|
|
166
|
+
* A Serenity/JS Screenplay Pattern-flavour
|
|
167
|
+
* of a [tagged template literal](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#Tagged_templates),
|
|
168
|
+
* `q` is a tag function capable of resolving any `Answerable<string>` or `Answerable<number>`
|
|
169
|
+
* you parametrise it with, and returning a `QuestionAdapter<string>`.
|
|
170
|
+
*
|
|
171
|
+
* Use `q` to concatenate `string` and `number` values returned from synchronous an asynchronous sources.
|
|
172
|
+
*
|
|
173
|
+
* ## Interpolating questions
|
|
174
|
+
*
|
|
175
|
+
* ```ts
|
|
176
|
+
* import { q, actorCalled } from '@serenity-js/core'
|
|
177
|
+
* import { Send, DeleteRequest } from '@serenity-js/rest'
|
|
178
|
+
* import { Text } from '@serenity-js/web'
|
|
179
|
+
*
|
|
180
|
+
* await actorCalled('Alice').attemptsTo(
|
|
181
|
+
* Send.a(DeleteRequest.to(
|
|
182
|
+
* q `/articles/${ Text.of(Article.id()) }`
|
|
183
|
+
* ))
|
|
184
|
+
* )
|
|
185
|
+
* ```
|
|
186
|
+
*
|
|
187
|
+
* ## Using a custom description
|
|
188
|
+
*
|
|
189
|
+
* ```ts
|
|
190
|
+
* import { q, actorCalled } from '@serenity-js/core'
|
|
191
|
+
* import { Send, DeleteRequest } from '@serenity-js/rest'
|
|
192
|
+
*
|
|
193
|
+
* await actorCalled('Alice').attemptsTo(
|
|
194
|
+
* Send.a(DeleteRequest.to(
|
|
195
|
+
* q `/articles/${ Text.of(Article.id()) }`.describedAs('/articles/:id')
|
|
196
|
+
* ))
|
|
197
|
+
* )
|
|
198
|
+
* ```
|
|
199
|
+
*
|
|
200
|
+
* ## Transforming the interpolated string
|
|
201
|
+
*
|
|
202
|
+
* The mechanism presented below relies on {@apilink QuestionAdapter}.
|
|
203
|
+
*
|
|
204
|
+
* ```ts
|
|
205
|
+
* import { q, actorCalled } from '@serenity-js/core'
|
|
206
|
+
* import { Send, DeleteRequest } from '@serenity-js/rest'
|
|
207
|
+
*
|
|
208
|
+
* await actorCalled('Alice').attemptsTo(
|
|
209
|
+
* Send.a(DeleteRequest.to(
|
|
210
|
+
* q `/articles/${ Text.of(Article.id()) }`.toLocaleLowerCase()
|
|
211
|
+
* ))
|
|
212
|
+
* )
|
|
213
|
+
* ```
|
|
214
|
+
*
|
|
215
|
+
* ## Learn more
|
|
216
|
+
*
|
|
217
|
+
* - {@apilink Answerable}
|
|
218
|
+
* - {@apilink Question}
|
|
219
|
+
* - {@apilink Question.describedAs}
|
|
220
|
+
* - {@apilink QuestionAdapter}
|
|
221
|
+
*
|
|
222
|
+
* @group Questions
|
|
223
|
+
*
|
|
224
|
+
* @param templates
|
|
225
|
+
* @param parameters
|
|
226
|
+
*/
|
|
227
|
+
export declare function q(templates: TemplateStringsArray, ...parameters: Array<Answerable<string | number>>): QuestionAdapter<string>;
|
|
228
|
+
//# sourceMappingURL=tag-functions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag-functions.d.ts","sourceRoot":"","sources":["../../../src/screenplay/questions/tag-functions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAIxE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6JG;AACH,wBAAgB,GAAG,CAAC,OAAO,EAAE,4BAA4B,GAAG,CAAC,sBAAsB,EAAE,SAAS,EAAE,oBAAoB,EAAE,GAAG,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,sBAAsB,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,mBAAmB,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAA;AACrP,wBAAgB,GAAG,CAAC,sBAAsB,EAAE,SAAS,EAAE,oBAAoB,EAAE,GAAG,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,sBAAsB,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,mBAAmB,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAA;AAYxM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,wBAAgB,CAAC,CAAC,SAAS,EAAE,oBAAoB,EAAE,GAAG,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAc7H"}
|