@loadmill/core 0.3.139 → 0.3.141

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 (232) hide show
  1. package/dist/assertions/index.d.ts +32 -0
  2. package/dist/assertions/index.js +52 -0
  3. package/dist/assertions/index.js.map +1 -0
  4. package/dist/code-step/index.d.ts +23 -0
  5. package/dist/code-step/index.js +97 -0
  6. package/dist/code-step/index.js.map +1 -0
  7. package/dist/conf/defaults.d.ts +1 -0
  8. package/dist/conf/defaults.js +11 -0
  9. package/dist/conf/defaults.js.map +1 -0
  10. package/dist/conf/extrema.d.ts +7 -0
  11. package/dist/conf/extrema.js +12 -0
  12. package/dist/conf/extrema.js.map +1 -0
  13. package/dist/conf/index.d.ts +15 -0
  14. package/dist/conf/index.js +80 -0
  15. package/dist/conf/index.js.map +1 -0
  16. package/dist/conf/notifications.d.ts +2 -0
  17. package/dist/conf/notifications.js +19 -0
  18. package/dist/conf/notifications.js.map +1 -0
  19. package/dist/conf/types.d.ts +122 -0
  20. package/dist/conf/types.js +38 -0
  21. package/dist/conf/types.js.map +1 -0
  22. package/dist/conf/validate.d.ts +69 -0
  23. package/dist/conf/validate.js +509 -0
  24. package/dist/conf/validate.js.map +1 -0
  25. package/dist/distributed-logger-reporter.d.ts +3 -0
  26. package/dist/distributed-logger-reporter.js +74 -0
  27. package/dist/distributed-logger-reporter.js.map +1 -0
  28. package/dist/echo/firehose.d.ts +7 -0
  29. package/dist/echo/firehose.js +130 -0
  30. package/dist/echo/firehose.js.map +1 -0
  31. package/dist/echo/index.d.ts +3 -0
  32. package/dist/echo/index.js +8 -0
  33. package/dist/echo/index.js.map +1 -0
  34. package/dist/echo/stats.d.ts +8 -0
  35. package/dist/echo/stats.js +152 -0
  36. package/dist/echo/stats.js.map +1 -0
  37. package/dist/extract-and-assert-step/index.d.ts +29 -0
  38. package/dist/extract-and-assert-step/index.js +108 -0
  39. package/dist/extract-and-assert-step/index.js.map +1 -0
  40. package/dist/extractions/index.d.ts +36 -0
  41. package/dist/extractions/index.js +49 -0
  42. package/dist/extractions/index.js.map +1 -0
  43. package/dist/har/index.d.ts +71 -0
  44. package/dist/har/index.js +61 -0
  45. package/dist/har/index.js.map +1 -0
  46. package/dist/labels/constants.d.ts +1 -0
  47. package/dist/labels/constants.js +5 -0
  48. package/dist/labels/constants.js.map +1 -0
  49. package/dist/multipart-form-data/files.d.ts +2 -0
  50. package/dist/multipart-form-data/files.js +63 -0
  51. package/dist/multipart-form-data/files.js.map +1 -0
  52. package/dist/multipart-form-data/form-data-utils.d.ts +19 -0
  53. package/dist/multipart-form-data/form-data-utils.js +118 -0
  54. package/dist/multipart-form-data/form-data-utils.js.map +1 -0
  55. package/dist/multipart-form-data/is-binary-file.d.ts +2 -0
  56. package/dist/multipart-form-data/is-binary-file.js +215 -0
  57. package/dist/multipart-form-data/is-binary-file.js.map +1 -0
  58. package/dist/multipart-form-data/multipart-text-to-post-form-data.d.ts +3 -0
  59. package/dist/multipart-form-data/multipart-text-to-post-form-data.js +93 -0
  60. package/dist/multipart-form-data/multipart-text-to-post-form-data.js.map +1 -0
  61. package/dist/parameters/extractions.d.ts +27 -0
  62. package/dist/parameters/extractions.js +51 -0
  63. package/dist/parameters/extractions.js.map +1 -0
  64. package/dist/parameters/extractors/cheerio-extractor.d.ts +11 -0
  65. package/dist/parameters/extractors/cheerio-extractor.js +84 -0
  66. package/dist/parameters/extractors/cheerio-extractor.js.map +1 -0
  67. package/dist/parameters/extractors/expression-extractor.d.ts +6 -0
  68. package/dist/parameters/extractors/expression-extractor.js +38 -0
  69. package/dist/parameters/extractors/expression-extractor.js.map +1 -0
  70. package/dist/parameters/extractors/extractor.d.ts +3 -0
  71. package/dist/parameters/extractors/extractor.js +3 -0
  72. package/dist/parameters/extractors/extractor.js.map +1 -0
  73. package/dist/parameters/extractors/header-extractor.d.ts +7 -0
  74. package/dist/parameters/extractors/header-extractor.js +51 -0
  75. package/dist/parameters/extractors/header-extractor.js.map +1 -0
  76. package/dist/parameters/extractors/index.d.ts +10 -0
  77. package/dist/parameters/extractors/index.js +20 -0
  78. package/dist/parameters/extractors/index.js.map +1 -0
  79. package/dist/parameters/extractors/json-path-extractor.d.ts +11 -0
  80. package/dist/parameters/extractors/json-path-extractor.js +127 -0
  81. package/dist/parameters/extractors/json-path-extractor.js.map +1 -0
  82. package/dist/parameters/extractors/parametrized-extractor.d.ts +10 -0
  83. package/dist/parameters/extractors/parametrized-extractor.js +34 -0
  84. package/dist/parameters/extractors/parametrized-extractor.js.map +1 -0
  85. package/dist/parameters/extractors/regex-extractor.d.ts +7 -0
  86. package/dist/parameters/extractors/regex-extractor.js +46 -0
  87. package/dist/parameters/extractors/regex-extractor.js.map +1 -0
  88. package/dist/parameters/extractors/regex-matcher.d.ts +1 -0
  89. package/dist/parameters/extractors/regex-matcher.js +22 -0
  90. package/dist/parameters/extractors/regex-matcher.js.map +1 -0
  91. package/dist/parameters/extractors/ws-extractor.d.ts +33 -0
  92. package/dist/parameters/extractors/ws-extractor.js +215 -0
  93. package/dist/parameters/extractors/ws-extractor.js.map +1 -0
  94. package/dist/parameters/extractors/x-path-extractor.d.ts +9 -0
  95. package/dist/parameters/extractors/x-path-extractor.js +77 -0
  96. package/dist/parameters/extractors/x-path-extractor.js.map +1 -0
  97. package/dist/parameters/generate-random.d.ts +13 -0
  98. package/dist/parameters/generate-random.js +108 -0
  99. package/dist/parameters/generate-random.js.map +1 -0
  100. package/dist/parameters/html-utils.d.ts +1 -0
  101. package/dist/parameters/html-utils.js +18 -0
  102. package/dist/parameters/html-utils.js.map +1 -0
  103. package/dist/parameters/index.d.ts +94 -0
  104. package/dist/parameters/index.js +619 -0
  105. package/dist/parameters/index.js.map +1 -0
  106. package/dist/parameters/json-path-utils.d.ts +1 -0
  107. package/dist/parameters/json-path-utils.js +16 -0
  108. package/dist/parameters/json-path-utils.js.map +1 -0
  109. package/dist/parameters/operators/binary-operator.d.ts +13 -0
  110. package/dist/parameters/operators/binary-operator.js +39 -0
  111. package/dist/parameters/operators/binary-operator.js.map +1 -0
  112. package/dist/parameters/operators/index.d.ts +5 -0
  113. package/dist/parameters/operators/index.js +21 -0
  114. package/dist/parameters/operators/index.js.map +1 -0
  115. package/dist/parameters/parameter-functions/aws-cognito.d.ts +3 -0
  116. package/dist/parameters/parameter-functions/aws-cognito.js +119 -0
  117. package/dist/parameters/parameter-functions/aws-cognito.js.map +1 -0
  118. package/dist/parameters/parameter-functions/boolean-parameter-functions.d.ts +12 -0
  119. package/dist/parameters/parameter-functions/boolean-parameter-functions.js +47 -0
  120. package/dist/parameters/parameter-functions/boolean-parameter-functions.js.map +1 -0
  121. package/dist/parameters/parameter-functions/crypto.d.ts +11 -0
  122. package/dist/parameters/parameter-functions/crypto.js +71 -0
  123. package/dist/parameters/parameter-functions/crypto.js.map +1 -0
  124. package/dist/parameters/parameter-functions/json-schema.d.ts +1 -0
  125. package/dist/parameters/parameter-functions/json-schema.js +33 -0
  126. package/dist/parameters/parameter-functions/json-schema.js.map +1 -0
  127. package/dist/parameters/parameter-functions/numeric-input-parameter-functions.d.ts +11 -0
  128. package/dist/parameters/parameter-functions/numeric-input-parameter-functions.js +34 -0
  129. package/dist/parameters/parameter-functions/numeric-input-parameter-functions.js.map +1 -0
  130. package/dist/parameters/parameter-functions/numeric-parameter-functions.d.ts +15 -0
  131. package/dist/parameters/parameter-functions/numeric-parameter-functions.js +56 -0
  132. package/dist/parameters/parameter-functions/numeric-parameter-functions.js.map +1 -0
  133. package/dist/parameters/parameter-functions/parameter-function-utils.d.ts +5 -0
  134. package/dist/parameters/parameter-functions/parameter-function-utils.js +82 -0
  135. package/dist/parameters/parameter-functions/parameter-function-utils.js.map +1 -0
  136. package/dist/parameters/parameter-functions/parameter-function.d.ts +6 -0
  137. package/dist/parameters/parameter-functions/parameter-function.js +28 -0
  138. package/dist/parameters/parameter-functions/parameter-function.js.map +1 -0
  139. package/dist/parameters/parameter-functions/parameter-functions.d.ts +7 -0
  140. package/dist/parameters/parameter-functions/parameter-functions.js +53 -0
  141. package/dist/parameters/parameter-functions/parameter-functions.js.map +1 -0
  142. package/dist/parameters/parameter-functions/random-parameter-functions.d.ts +1 -0
  143. package/dist/parameters/parameter-functions/random-parameter-functions.js +43 -0
  144. package/dist/parameters/parameter-functions/random-parameter-functions.js.map +1 -0
  145. package/dist/parameters/parameter-functions/textual-parameter-functions.d.ts +72 -0
  146. package/dist/parameters/parameter-functions/textual-parameter-functions.js +389 -0
  147. package/dist/parameters/parameter-functions/textual-parameter-functions.js.map +1 -0
  148. package/dist/parameters/parameter-name-utils.d.ts +6 -0
  149. package/dist/parameters/parameter-name-utils.js +124 -0
  150. package/dist/parameters/parameter-name-utils.js.map +1 -0
  151. package/dist/parameters/parameter-regex-providers.d.ts +24 -0
  152. package/dist/parameters/parameter-regex-providers.js +70 -0
  153. package/dist/parameters/parameter-regex-providers.js.map +1 -0
  154. package/dist/parameters/resolvers/random-parameters-resolver.d.ts +1 -0
  155. package/dist/parameters/resolvers/random-parameters-resolver.js +12 -0
  156. package/dist/parameters/resolvers/random-parameters-resolver.js.map +1 -0
  157. package/dist/parameters/type.d.ts +10 -0
  158. package/dist/parameters/type.js +9 -0
  159. package/dist/parameters/type.js.map +1 -0
  160. package/dist/parameters/value-utils.d.ts +5 -0
  161. package/dist/parameters/value-utils.js +44 -0
  162. package/dist/parameters/value-utils.js.map +1 -0
  163. package/dist/request/index.d.ts +174 -0
  164. package/dist/request/index.js +356 -0
  165. package/dist/request/index.js.map +1 -0
  166. package/dist/schema/json-schema-generator.d.ts +20 -0
  167. package/dist/schema/json-schema-generator.js +135 -0
  168. package/dist/schema/json-schema-generator.js.map +1 -0
  169. package/dist/signals.d.ts +4 -0
  170. package/dist/signals.js +9 -0
  171. package/dist/signals.js.map +1 -0
  172. package/dist/socket-events/index.d.ts +13 -0
  173. package/dist/socket-events/index.js +17 -0
  174. package/dist/socket-events/index.js.map +1 -0
  175. package/dist/step/assertable.d.ts +4 -0
  176. package/dist/step/assertable.js +3 -0
  177. package/dist/step/assertable.js.map +1 -0
  178. package/dist/step/codeable.d.ts +3 -0
  179. package/dist/step/codeable.js +3 -0
  180. package/dist/step/codeable.js.map +1 -0
  181. package/dist/step/extractable.d.ts +4 -0
  182. package/dist/step/extractable.js +3 -0
  183. package/dist/step/extractable.js.map +1 -0
  184. package/dist/step/index.d.ts +72 -0
  185. package/dist/step/index.js +71 -0
  186. package/dist/step/index.js.map +1 -0
  187. package/dist/step/step-type.d.ts +4 -0
  188. package/dist/step/step-type.js +3 -0
  189. package/dist/step/step-type.js.map +1 -0
  190. package/dist/step/type-guards.d.ts +7 -0
  191. package/dist/step/type-guards.js +18 -0
  192. package/dist/step/type-guards.js.map +1 -0
  193. package/dist/subset/index.d.ts +3 -0
  194. package/dist/subset/index.js +8 -0
  195. package/dist/subset/index.js.map +1 -0
  196. package/dist/subset/is-subset.d.ts +2 -0
  197. package/dist/subset/is-subset.js +29 -0
  198. package/dist/subset/is-subset.js.map +1 -0
  199. package/dist/subset/json-contains.d.ts +1 -0
  200. package/dist/subset/json-contains.js +24 -0
  201. package/dist/subset/json-contains.js.map +1 -0
  202. package/dist/team-options/constants.d.ts +3 -0
  203. package/dist/team-options/constants.js +7 -0
  204. package/dist/team-options/constants.js.map +1 -0
  205. package/dist/xml/decode.d.ts +2 -0
  206. package/dist/xml/decode.js +91 -0
  207. package/dist/xml/decode.js.map +1 -0
  208. package/dist/xml/encode.d.ts +1 -0
  209. package/dist/xml/encode.js +14 -0
  210. package/dist/xml/encode.js.map +1 -0
  211. package/dist/xml/escape-reserved-chars.d.ts +6 -0
  212. package/dist/xml/escape-reserved-chars.js +57 -0
  213. package/dist/xml/escape-reserved-chars.js.map +1 -0
  214. package/dist/xml/is-xml.d.ts +1 -0
  215. package/dist/xml/is-xml.js +9 -0
  216. package/dist/xml/is-xml.js.map +1 -0
  217. package/dist/xml/json-to-xml.d.ts +2 -0
  218. package/dist/xml/json-to-xml.js +11 -0
  219. package/dist/xml/json-to-xml.js.map +1 -0
  220. package/dist/xml/namespaces.d.ts +7 -0
  221. package/dist/xml/namespaces.js +16 -0
  222. package/dist/xml/namespaces.js.map +1 -0
  223. package/dist/xml/remove-invisible-chars.d.ts +2 -0
  224. package/dist/xml/remove-invisible-chars.js +13 -0
  225. package/dist/xml/remove-invisible-chars.js.map +1 -0
  226. package/dist/xml/replace-s-tags.d.ts +4 -0
  227. package/dist/xml/replace-s-tags.js +21 -0
  228. package/dist/xml/replace-s-tags.js.map +1 -0
  229. package/dist/xml/xml-to-json.d.ts +7 -0
  230. package/dist/xml/xml-to-json.js +21 -0
  231. package/dist/xml/xml-to-json.js.map +1 -0
  232. package/package.json +3 -2
@@ -0,0 +1,32 @@
1
+ /**
2
+ * This object represents an assertion.
3
+ *
4
+ * Assertions are made once the request has been fulfilled and all parameters have been extracted.
5
+ * All assertions are evaluated, even if some fail.
6
+ * If an assertion contains more then one conditions then the conditions are or-ed.
7
+ *
8
+ * @property check A parameter name to assert the given conditions on.
9
+ * @property equals A parametrized expression that asserts to true if its value is equal to `check`.
10
+ * @property contains A parametrized expression that asserts to true if its value is contained in `check`.
11
+ * @property matches A JavaScript regular expression that asserts to true if `check` matches it.
12
+ * @property falsy if true then A parametrized expression that asserts to true if the value of `check` equales false.
13
+ * @property greater A parametrized expression that asserts to true if its value is less to `check`.
14
+ * @property lesser A parametrized expression that asserts to true if its value is greater to `check`.
15
+ */
16
+ export interface Assertion {
17
+ check: string;
18
+ equals?: string;
19
+ notEquals?: string;
20
+ contains?: string;
21
+ notContains?: string;
22
+ matches?: string;
23
+ falsy?: string | boolean;
24
+ greater?: string;
25
+ lesser?: string;
26
+ JSONSchema?: string;
27
+ JSONContains?: string;
28
+ XMLContains?: string;
29
+ disabled?: true;
30
+ }
31
+ export declare type Assertions = Assertion[];
32
+ export declare function toAssertions(assertions: Assertions): Assertions;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toAssertions = void 0;
4
+ function toAssertions(assertions) {
5
+ var result = [];
6
+ assertions.forEach(function (assertion, key) {
7
+ var check = assertion.check, equals = assertion.equals, notEquals = assertion.notEquals, contains = assertion.contains, notContains = assertion.notContains, matches = assertion.matches, falsy = assertion.falsy, greater = assertion.greater, lesser = assertion.lesser, JSONSchema = assertion.JSONSchema, JSONContains = assertion.JSONContains, XMLContains = assertion.XMLContains, disabled = assertion.disabled;
8
+ var converted = {
9
+ check: check,
10
+ };
11
+ if (equals != null) {
12
+ converted.equals = equals;
13
+ }
14
+ if (notEquals != null) {
15
+ converted.notEquals = notEquals;
16
+ }
17
+ if (contains != null) {
18
+ converted.contains = contains;
19
+ }
20
+ if (notContains != null) {
21
+ converted.notContains = notContains;
22
+ }
23
+ if (matches != null) {
24
+ converted.matches = matches;
25
+ }
26
+ if (greater != null) {
27
+ converted.greater = greater;
28
+ }
29
+ if (lesser != null) {
30
+ converted.lesser = lesser;
31
+ }
32
+ if (falsy != null && (falsy === 'true' || falsy === true)) {
33
+ converted.falsy = true;
34
+ }
35
+ if (JSONSchema != null) {
36
+ converted.JSONSchema = JSONSchema;
37
+ }
38
+ if (JSONContains != null) {
39
+ converted.JSONContains = JSONContains;
40
+ }
41
+ if (XMLContains != null) {
42
+ converted.XMLContains = XMLContains;
43
+ }
44
+ if (disabled === true) {
45
+ converted.disabled = true;
46
+ }
47
+ result[key] = converted;
48
+ });
49
+ return result;
50
+ }
51
+ exports.toAssertions = toAssertions;
52
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/assertions/index.ts"],"names":[],"mappings":";;;AAiCA,SAAgB,YAAY,CAAC,UAAsB;IACjD,IAAM,MAAM,GAAe,EAAE,CAAC;IAE9B,UAAU,CAAC,OAAO,CAAC,UAAC,SAAoB,EAAE,GAAW;QAEjD,IAAA,KAAK,GAaH,SAAS,MAbN,EACL,MAAM,GAYJ,SAAS,OAZL,EACN,SAAS,GAWP,SAAS,UAXF,EACT,QAAQ,GAUN,SAAS,SAVH,EACR,WAAW,GAST,SAAS,YATA,EACX,OAAO,GAQL,SAAS,QARJ,EACP,KAAK,GAOH,SAAS,MAPN,EACL,OAAO,GAML,SAAS,QANJ,EACP,MAAM,GAKJ,SAAS,OALL,EACN,UAAU,GAIR,SAAS,WAJD,EACV,YAAY,GAGV,SAAS,aAHC,EACZ,WAAW,GAET,SAAS,YAFA,EACX,QAAQ,GACN,SAAS,SADH,CACI;QAEd,IAAM,SAAS,GAAc;YAC3B,KAAK,OAAA;SACN,CAAC;QAEF,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC;SAC3B;QAED,IAAI,SAAS,IAAI,IAAI,EAAE;YACrB,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;SACjC;QAED,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC/B;QAED,IAAI,WAAW,IAAI,IAAI,EAAE;YACvB,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;SACrC;QAED,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;SAC7B;QAED,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;SAC7B;QAED,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC;SAC3B;QAED,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,CAAC,EAAE;YACzD,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC;SACxB;QAED,IAAI,UAAU,IAAI,IAAI,EAAE;YACtB,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC;SACnC;QAED,IAAI,YAAY,IAAI,IAAI,EAAE;YACxB,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC;SACvC;QAED,IAAI,WAAW,IAAI,IAAI,EAAE;YACvB,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;SACrC;QAED,IAAI,QAAQ,KAAK,IAAI,EAAE;YACrB,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;SAC3B;QAED,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AA5ED,oCA4EC"}
@@ -0,0 +1,23 @@
1
+ import { LoopConf, ResolvedStep, SkipConf, StepLike, StepMeta, StepStatus, StepTypes } from '../step';
2
+ import { Codeable } from '../step/codeable';
3
+ export declare class CodeStep implements StepLike, Codeable {
4
+ type?: StepTypes;
5
+ id?: string;
6
+ description?: string;
7
+ disabled?: boolean;
8
+ stopBefore?: string;
9
+ skipBefore?: SkipConf;
10
+ loop?: LoopConf;
11
+ timeout?: number;
12
+ delay?: number | string;
13
+ expectedStatus?: StepStatus;
14
+ meta?: StepMeta;
15
+ postScript?: string;
16
+ constructor();
17
+ }
18
+ export declare type ResolvedCodeStep = ResolvedStep;
19
+ /**
20
+ * This function should be able to take any object/json and either make a VALID CodeStep out of it
21
+ * or fail with a meaningful error message.
22
+ */
23
+ export declare function createCodeStep(from: CodeStep): CodeStep;
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createCodeStep = exports.CodeStep = void 0;
4
+ var step_1 = require("../step");
5
+ var CodeStep = /** @class */ (function () {
6
+ function CodeStep() {
7
+ Object.defineProperty(this, "type", {
8
+ enumerable: true,
9
+ configurable: true,
10
+ writable: true,
11
+ value: void 0
12
+ });
13
+ Object.defineProperty(this, "id", {
14
+ enumerable: true,
15
+ configurable: true,
16
+ writable: true,
17
+ value: void 0
18
+ });
19
+ Object.defineProperty(this, "description", {
20
+ enumerable: true,
21
+ configurable: true,
22
+ writable: true,
23
+ value: void 0
24
+ });
25
+ Object.defineProperty(this, "disabled", {
26
+ enumerable: true,
27
+ configurable: true,
28
+ writable: true,
29
+ value: void 0
30
+ });
31
+ Object.defineProperty(this, "stopBefore", {
32
+ enumerable: true,
33
+ configurable: true,
34
+ writable: true,
35
+ value: void 0
36
+ });
37
+ Object.defineProperty(this, "skipBefore", {
38
+ enumerable: true,
39
+ configurable: true,
40
+ writable: true,
41
+ value: void 0
42
+ });
43
+ Object.defineProperty(this, "loop", {
44
+ enumerable: true,
45
+ configurable: true,
46
+ writable: true,
47
+ value: void 0
48
+ });
49
+ Object.defineProperty(this, "timeout", {
50
+ enumerable: true,
51
+ configurable: true,
52
+ writable: true,
53
+ value: void 0
54
+ });
55
+ Object.defineProperty(this, "delay", {
56
+ enumerable: true,
57
+ configurable: true,
58
+ writable: true,
59
+ value: void 0
60
+ });
61
+ Object.defineProperty(this, "expectedStatus", {
62
+ enumerable: true,
63
+ configurable: true,
64
+ writable: true,
65
+ value: void 0
66
+ });
67
+ Object.defineProperty(this, "meta", {
68
+ enumerable: true,
69
+ configurable: true,
70
+ writable: true,
71
+ value: void 0
72
+ });
73
+ Object.defineProperty(this, "postScript", {
74
+ enumerable: true,
75
+ configurable: true,
76
+ writable: true,
77
+ value: void 0
78
+ });
79
+ this.type = step_1.StepTypes.CODE;
80
+ }
81
+ return CodeStep;
82
+ }());
83
+ exports.CodeStep = CodeStep;
84
+ /**
85
+ * This function should be able to take any object/json and either make a VALID CodeStep out of it
86
+ * or fail with a meaningful error message.
87
+ */
88
+ function createCodeStep(from) {
89
+ var postScript = from.postScript;
90
+ var codeStep = step_1.createStep(from, new CodeStep());
91
+ if (postScript !== undefined) {
92
+ codeStep.postScript = postScript;
93
+ }
94
+ return codeStep;
95
+ }
96
+ exports.createCodeStep = createCodeStep;
97
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/code-step/index.ts"],"names":[],"mappings":";;;AAAA,gCASiB;AAGjB;IAeE;QAdA;;;;;WAAiB;QACjB;;;;;WAAY;QACZ;;;;;WAAqB;QACrB;;;;;WAAmB;QACnB;;;;;WAAoB;QACpB;;;;;WAAsB;QACtB;;;;;WAAgB;QAChB;;;;;WAAiB;QACjB;;;;;WAAwB;QACxB;;;;;WAA4B;QAC5B;;;;;WAAgB;QAEhB;;;;;WAAoB;QAGlB,IAAI,CAAC,IAAI,GAAG,gBAAS,CAAC,IAAI,CAAC;IAC7B,CAAC;IACH,eAAC;AAAD,CAAC,AAlBD,IAkBC;AAlBY,4BAAQ;AAsBrB;;;GAGG;AACH,SAAgB,cAAc,CAAC,IAAc;IAEzC,IAAA,UAAU,GACR,IAAI,WADI,CACH;IAET,IAAM,QAAQ,GAAG,iBAAU,CACzB,IAAI,EACJ,IAAI,QAAQ,EAAE,CACf,CAAC;IAEF,IAAI,UAAU,KAAK,SAAS,EAAE;QAC5B,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;KAClC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAfD,wCAeC"}
@@ -0,0 +1 @@
1
+ export declare const DEFAULT_DURATION = 60000, DEFAULT_DURATION_MINUTES: number, DEFAULT_RAMP_UP: number, DEFAULT_RAMP_UP_MINUTES = 1, DEFAULT_CONCURRENCY: number, DEFAULT_RPS = 1, DEFAULT_REQUEST_DELAY: number, DEFAULT_ITERATION_DELAY: number, DEFAULT_CACHE_CONTROL = "no-cache, no-store, must-revalidate, max-age=0";
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_CACHE_CONTROL = exports.DEFAULT_ITERATION_DELAY = exports.DEFAULT_REQUEST_DELAY = exports.DEFAULT_RPS = exports.DEFAULT_CONCURRENCY = exports.DEFAULT_RAMP_UP_MINUTES = exports.DEFAULT_RAMP_UP = exports.DEFAULT_DURATION_MINUTES = exports.DEFAULT_DURATION = void 0;
4
+ var extrema_1 = require("./extrema");
5
+ var isProduction = process.env.NODE_ENV === 'production';
6
+ exports.DEFAULT_DURATION = 60000, exports.DEFAULT_DURATION_MINUTES = isProduction
7
+ ? extrema_1.MIN_DURATION_MINUTES + 1
8
+ : extrema_1.MIN_DURATION_MINUTES, exports.DEFAULT_RAMP_UP = extrema_1.HIGH_MIN_RAMP_UP, exports.DEFAULT_RAMP_UP_MINUTES = extrema_1.HIGH_MIN_RAMP_UP_MINUTES, exports.DEFAULT_CONCURRENCY = isProduction
9
+ ? extrema_1.MAX_UNVERIFIED_CONCURRENCY
10
+ : extrema_1.MIN_CONCURRENCY, exports.DEFAULT_RPS = 1, exports.DEFAULT_REQUEST_DELAY = extrema_1.MIN_REQUEST_DELAY * 2, exports.DEFAULT_ITERATION_DELAY = extrema_1.MIN_ITERATION_DELAY * 2, exports.DEFAULT_CACHE_CONTROL = 'no-cache, no-store, must-revalidate, max-age=0';
11
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/conf/defaults.ts"],"names":[],"mappings":";;;AAAA,qCAQmB;AAEnB,IAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;AAE9C,QAAA,gBAAgB,GAAG,KAAK,EACnC,QAAA,wBAAwB,GAAG,YAAY;IACrC,CAAC,CAAC,8BAAoB,GAAG,CAAC;IAC1B,CAAC,CAAC,8BAAoB,EACxB,QAAA,eAAe,GAAG,0BAAgB,EAClC,QAAA,uBAAuB,GAAG,kCAAwB,EAClD,QAAA,mBAAmB,GAAG,YAAY;IAChC,CAAC,CAAC,oCAA0B;IAC5B,CAAC,CAAC,yBAAe,EACnB,QAAA,WAAW,GAAG,CAAC,EACf,QAAA,qBAAqB,GAAG,2BAAiB,GAAG,CAAC,EAC7C,QAAA,uBAAuB,GAAG,6BAAmB,GAAG,CAAC,EACjD,QAAA,qBAAqB,GAAG,gDAAgD,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare const MIN_DURATION: number, MIN_DURATION_MINUTES = 1, MAX_DURATION: number, MIN_REQUEST_LOOPS_ITERATIONS = 1, MAX_REQUEST_LOOPS_ITERATIONS = 100, DEFAULT_LOOP_WAIT = 1000, MIN_REQUEST_LOOP_WAIT = 500, MAX_REQUEST_LOOP_WAIT = 120000, MIN_MAX_ITERATIONS = 5, MAX_MAX_ITERATIONS: number, MIN_REQUEST_DELAY = 50, MAX_REQUEST_DELAY = 300000, MIN_ITERATION_DELAY = 500, MAX_ITERATION_DELAY = 120000, MAX_EXECUTABLE_REQUESTS = 100, MAX_API_TEST_EXECUTABLE_REQUESTS = 200, MAX_PROCESSABLE_REQUESTS = 1000, MAX_LOAD_REQUEST_BODY_LENGTH: number, // 100KB
2
+ MAX_API_REQUEST_BODY_LENGTH: number, // 5MB
3
+ MAX_RESPONSE_BYTES: number, MAX_RESPONSE_COLLECT: number, DOUBLE_MAX_RESPONSE_COLLECT: number, MIN_REQUEST_TIMEOUT = 100, MAX_REQUEST_TIMEOUT = 120000, MAX_UNVERIFIED_CONCURRENCY = 5, MAX_UNVERIFIED_DURATION_MINUTES = 5, MAX_UNVERIFIED_DURATION: number, MIN_CONCURRENCY = 1, MAX_CONCURRENCY = 100000, MIN_RPS = 1, MAX_RPS = 100000, HIGH_MIN_RAMP_UP: number, HIGH_MIN_RAMP_UP_MINUTES = 1, DEFAULT_SOCKET_TIMEOUT = 60000;
4
+ export declare function rampUpExtrema(duration?: number, concurrency?: number): {
5
+ min: number;
6
+ max: number;
7
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rampUpExtrema = exports.DEFAULT_SOCKET_TIMEOUT = exports.HIGH_MIN_RAMP_UP_MINUTES = exports.HIGH_MIN_RAMP_UP = exports.MAX_RPS = exports.MIN_RPS = exports.MAX_CONCURRENCY = exports.MIN_CONCURRENCY = exports.MAX_UNVERIFIED_DURATION = exports.MAX_UNVERIFIED_DURATION_MINUTES = exports.MAX_UNVERIFIED_CONCURRENCY = exports.MAX_REQUEST_TIMEOUT = exports.MIN_REQUEST_TIMEOUT = exports.DOUBLE_MAX_RESPONSE_COLLECT = exports.MAX_RESPONSE_COLLECT = exports.MAX_RESPONSE_BYTES = exports.MAX_API_REQUEST_BODY_LENGTH = exports.MAX_LOAD_REQUEST_BODY_LENGTH = exports.MAX_PROCESSABLE_REQUESTS = exports.MAX_API_TEST_EXECUTABLE_REQUESTS = exports.MAX_EXECUTABLE_REQUESTS = exports.MAX_ITERATION_DELAY = exports.MIN_ITERATION_DELAY = exports.MAX_REQUEST_DELAY = exports.MIN_REQUEST_DELAY = exports.MAX_MAX_ITERATIONS = exports.MIN_MAX_ITERATIONS = exports.MAX_REQUEST_LOOP_WAIT = exports.MIN_REQUEST_LOOP_WAIT = exports.DEFAULT_LOOP_WAIT = exports.MAX_REQUEST_LOOPS_ITERATIONS = exports.MIN_REQUEST_LOOPS_ITERATIONS = exports.MAX_DURATION = exports.MIN_DURATION_MINUTES = exports.MIN_DURATION = void 0;
4
+ exports.MIN_DURATION = 60 * 1000, exports.MIN_DURATION_MINUTES = 1, exports.MAX_DURATION = 24 * 60 * 60 * 1000, exports.MIN_REQUEST_LOOPS_ITERATIONS = 1, exports.MAX_REQUEST_LOOPS_ITERATIONS = 100, exports.DEFAULT_LOOP_WAIT = 1000, exports.MIN_REQUEST_LOOP_WAIT = 500, exports.MAX_REQUEST_LOOP_WAIT = 120000, exports.MIN_MAX_ITERATIONS = 5, exports.MAX_MAX_ITERATIONS = Number.MAX_SAFE_INTEGER / 2, exports.MIN_REQUEST_DELAY = 50, exports.MAX_REQUEST_DELAY = 300000, exports.MIN_ITERATION_DELAY = 500, exports.MAX_ITERATION_DELAY = 120000, exports.MAX_EXECUTABLE_REQUESTS = 100, exports.MAX_API_TEST_EXECUTABLE_REQUESTS = 200, exports.MAX_PROCESSABLE_REQUESTS = 1000, exports.MAX_LOAD_REQUEST_BODY_LENGTH = 100 * 1024, exports.MAX_API_REQUEST_BODY_LENGTH = 5000 * 1024, exports.MAX_RESPONSE_BYTES = 20 * 1024 * 1024, exports.MAX_RESPONSE_COLLECT = 110 * 1024, exports.DOUBLE_MAX_RESPONSE_COLLECT = 10 * exports.MAX_RESPONSE_COLLECT, exports.MIN_REQUEST_TIMEOUT = 100, exports.MAX_REQUEST_TIMEOUT = 120000, exports.MAX_UNVERIFIED_CONCURRENCY = 5, exports.MAX_UNVERIFIED_DURATION_MINUTES = 5, exports.MAX_UNVERIFIED_DURATION = exports.MAX_UNVERIFIED_DURATION_MINUTES * 60 * 1000, exports.MIN_CONCURRENCY = 1, exports.MAX_CONCURRENCY = 100000, exports.MIN_RPS = 1, exports.MAX_RPS = exports.MAX_CONCURRENCY, exports.HIGH_MIN_RAMP_UP = 60 * 1000, exports.HIGH_MIN_RAMP_UP_MINUTES = 1, exports.DEFAULT_SOCKET_TIMEOUT = 60000;
5
+ function rampUpExtrema(duration, concurrency) {
6
+ if (duration === void 0) { duration = exports.MIN_DURATION; }
7
+ if (concurrency === void 0) { concurrency = exports.MIN_CONCURRENCY; }
8
+ var min = concurrency < 200 ? 0 : exports.HIGH_MIN_RAMP_UP;
9
+ return { min: min, max: duration };
10
+ }
11
+ exports.rampUpExtrema = rampUpExtrema;
12
+ //# sourceMappingURL=extrema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extrema.js","sourceRoot":"","sources":["../../src/conf/extrema.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG,EAAE,GAAG,IAAI,EACnC,QAAA,oBAAoB,GAAG,CAAC,EACxB,QAAA,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAClC,QAAA,4BAA4B,GAAG,CAAC,EAChC,QAAA,4BAA4B,GAAG,GAAG,EAClC,QAAA,iBAAiB,GAAG,IAAI,EACxB,QAAA,qBAAqB,GAAG,GAAG,EAC3B,QAAA,qBAAqB,GAAG,MAAM,EAC9B,QAAA,kBAAkB,GAAG,CAAC,EACtB,QAAA,kBAAkB,GAAG,MAAM,CAAC,gBAAgB,GAAG,CAAC,EAChD,QAAA,iBAAiB,GAAG,EAAE,EACtB,QAAA,iBAAiB,GAAG,MAAM,EAC1B,QAAA,mBAAmB,GAAG,GAAG,EACzB,QAAA,mBAAmB,GAAG,MAAM,EAC5B,QAAA,uBAAuB,GAAG,GAAG,EAC7B,QAAA,gCAAgC,GAAG,GAAG,EACtC,QAAA,wBAAwB,GAAG,IAAI,EAC/B,QAAA,4BAA4B,GAAG,GAAG,GAAG,IAAI,EACzC,QAAA,2BAA2B,GAAG,IAAI,GAAG,IAAI,EACzC,QAAA,kBAAkB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,EACrC,QAAA,oBAAoB,GAAG,GAAG,GAAG,IAAI,EACjC,QAAA,2BAA2B,GAAG,EAAE,GAAG,4BAAoB,EACvD,QAAA,mBAAmB,GAAG,GAAG,EACzB,QAAA,mBAAmB,GAAG,MAAM,EAC5B,QAAA,0BAA0B,GAAG,CAAC,EAC9B,QAAA,+BAA+B,GAAG,CAAC,EACnC,QAAA,uBAAuB,GAAG,uCAA+B,GAAG,EAAE,GAAG,IAAI,EACrE,QAAA,eAAe,GAAG,CAAC,EACnB,QAAA,eAAe,GAAG,MAAM,EACxB,QAAA,OAAO,GAAG,CAAC,EACX,QAAA,OAAO,GAAG,uBAAe,EACzB,QAAA,gBAAgB,GAAG,EAAE,GAAG,IAAI,EAC5B,QAAA,wBAAwB,GAAG,CAAC,EAC5B,QAAA,sBAAsB,GAAG,KAAK,CAAC;AAEjC,SAAgB,aAAa,CAAC,QAAuB,EAAE,WAA6B;IAAtD,yBAAA,EAAA,WAAW,oBAAY;IAAE,4BAAA,EAAA,cAAc,uBAAe;IAClF,IAAM,GAAG,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAgB,CAAC;IAErD,OAAO,EAAE,GAAG,KAAA,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAChC,CAAC;AAJD,sCAIC"}
@@ -0,0 +1,15 @@
1
+ import { EmailNotification, TestRunNotification, SlackChannel, Destination, NotificationTarget, NotificationTypes, NotificationMode, NotificationModeLike, TestConfLike, TestEntity } from './types';
2
+ import { validate, EntryValidations } from './validate';
3
+ import * as confExtrema from './extrema';
4
+ import * as confDefaults from './defaults';
5
+ import { emailToLocalNotifications } from './notifications';
6
+ import { Step } from '../step/step-type';
7
+ export declare function isParameterCandidate(value?: number | string): value is string;
8
+ export declare function validateIntegerDelay(delay: number | string, fieldName?: string | false): any;
9
+ export declare function minimalRemainingDuration(iterationDelay: number, requests: Step[], skipCount?: number): number;
10
+ /**
11
+ * Not counting duration of actual request round trip + response processing.
12
+ */
13
+ export declare function minimalIterationDuration(iterationDelay: number, requests: Step[]): number;
14
+ export declare function reportDelay(iterationDelay: number, requests: Step[]): number;
15
+ export { validate, confDefaults, confExtrema, TestConfLike, EmailNotification, TestRunNotification, SlackChannel, Destination, NotificationTarget, NotificationTypes, NotificationMode, NotificationModeLike, EntryValidations, emailToLocalNotifications, TestEntity, };
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.TestEntity = exports.emailToLocalNotifications = exports.NotificationMode = exports.NotificationTypes = exports.confExtrema = exports.confDefaults = exports.validate = exports.reportDelay = exports.minimalIterationDuration = exports.minimalRemainingDuration = exports.validateIntegerDelay = exports.isParameterCandidate = void 0;
26
+ var types_1 = require("./types");
27
+ Object.defineProperty(exports, "NotificationTypes", { enumerable: true, get: function () { return types_1.NotificationTypes; } });
28
+ Object.defineProperty(exports, "NotificationMode", { enumerable: true, get: function () { return types_1.NotificationMode; } });
29
+ Object.defineProperty(exports, "TestEntity", { enumerable: true, get: function () { return types_1.TestEntity; } });
30
+ var validate_1 = require("./validate");
31
+ Object.defineProperty(exports, "validate", { enumerable: true, get: function () { return validate_1.validate; } });
32
+ var validator_1 = __importDefault(require("validator"));
33
+ var extrema_1 = require("./extrema");
34
+ var defaults_1 = require("./defaults");
35
+ var confExtrema = __importStar(require("./extrema"));
36
+ exports.confExtrema = confExtrema;
37
+ var confDefaults = __importStar(require("./defaults"));
38
+ exports.confDefaults = confDefaults;
39
+ var notifications_1 = require("./notifications");
40
+ Object.defineProperty(exports, "emailToLocalNotifications", { enumerable: true, get: function () { return notifications_1.emailToLocalNotifications; } });
41
+ function isParameterCandidate(value) {
42
+ return typeof value === 'string' && !validator_1.default.isNumeric(value.charAt(0));
43
+ }
44
+ exports.isParameterCandidate = isParameterCandidate;
45
+ function validateIntegerDelay(delay, fieldName) {
46
+ if (fieldName === void 0) { fieldName = 'delay'; }
47
+ return validate_1.validate.integer(delay, fieldName, extrema_1.MIN_REQUEST_DELAY, extrema_1.MAX_REQUEST_DELAY);
48
+ }
49
+ exports.validateIntegerDelay = validateIntegerDelay;
50
+ function minimalRemainingDuration(iterationDelay, requests, skipCount) {
51
+ if (skipCount === void 0) { skipCount = 1; }
52
+ var requestsDelay = skipCount >= requests.length
53
+ ? 0
54
+ : requests
55
+ .slice(skipCount)
56
+ .map(function (req) {
57
+ return isParameterCandidate(req.delay)
58
+ ? extrema_1.MIN_REQUEST_DELAY
59
+ : Number(req.delay || defaults_1.DEFAULT_REQUEST_DELAY);
60
+ })
61
+ .reduce(function (x, y) { return x + y; }, 0);
62
+ return iterationDelay + requestsDelay;
63
+ }
64
+ exports.minimalRemainingDuration = minimalRemainingDuration;
65
+ /**
66
+ * Not counting duration of actual request round trip + response processing.
67
+ */
68
+ function minimalIterationDuration(iterationDelay, requests) {
69
+ return minimalRemainingDuration(iterationDelay, requests);
70
+ }
71
+ exports.minimalIterationDuration = minimalIterationDuration;
72
+ var reportDelayFactor = 1, minReportDelay = 3000, MAX_REPORT_DELAY = 20000;
73
+ function reportDelay(iterationDelay, requests) {
74
+ var factoredWorkDelay = reportDelayFactor * minimalIterationDuration(iterationDelay, requests);
75
+ return minReportDelay <= factoredWorkDelay
76
+ ? Math.min(factoredWorkDelay, MAX_REPORT_DELAY)
77
+ : minReportDelay;
78
+ }
79
+ exports.reportDelay = reportDelay;
80
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/conf/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAWiB;AA+Ef,kGApFA,yBAAiB,OAoFA;AACjB,iGApFA,wBAAgB,OAoFA;AAIhB,2FArFA,kBAAU,OAqFA;AAnFZ,uCAAwD;AAqEtD,yFArEO,mBAAQ,OAqEP;AApEV,wDAAkC;AAClC,qCAAiE;AACjE,uCAAmD;AACnD,qDAAyC;AAmEvC,kCAAW;AAlEb,uDAA2C;AAiEzC,oCAAY;AAhEd,iDAA4D;AA4E1D,0GA5EO,yCAAyB,OA4EP;AAzE3B,SAAgB,oBAAoB,CAAC,KAAuB;IAC1D,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,mBAAS,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5E,CAAC;AAFD,oDAEC;AAED,SAAgB,oBAAoB,CAClC,KAAsB,EACtB,SAAmC;IAAnC,0BAAA,EAAA,mBAAmC;IAEnC,OAAO,mBAAQ,CAAC,OAAO,CACrB,KAAK,EACL,SAAS,EACT,2BAAiB,EACjB,2BAAiB,CAClB,CAAC;AACJ,CAAC;AAVD,oDAUC;AAED,SAAgB,wBAAwB,CACtC,cAAsB,EACtB,QAAgB,EAChB,SAAa;IAAb,0BAAA,EAAA,aAAa;IAEb,IAAM,aAAa,GACjB,SAAS,IAAI,QAAQ,CAAC,MAAM;QAC1B,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,QAAQ;aACP,KAAK,CAAC,SAAS,CAAC;aAChB,GAAG,CAAC,UAAC,GAAG;YACP,OAAA,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC;gBAC7B,CAAC,CAAC,2BAAiB;gBACnB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,gCAAqB,CAAC;QAF9C,CAE8C,CAC/C;aACA,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,GAAG,CAAC,EAAL,CAAK,EAAE,CAAC,CAAC,CAAC;IAElC,OAAO,cAAc,GAAG,aAAa,CAAC;AACxC,CAAC;AAlBD,4DAkBC;AAED;;GAEG;AACH,SAAgB,wBAAwB,CACtC,cAAsB,EACtB,QAAgB;IAEhB,OAAO,wBAAwB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;AAC5D,CAAC;AALD,4DAKC;AAED,IAAM,iBAAiB,GAAG,CAAC,EACzB,cAAc,GAAG,IAAI,EACrB,gBAAgB,GAAG,KAAK,CAAC;AAE3B,SAAgB,WAAW,CAAC,cAAsB,EAAE,QAAgB;IAClE,IAAM,iBAAiB,GACrB,iBAAiB,GAAG,wBAAwB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAEzE,OAAO,cAAc,IAAI,iBAAiB;QACxC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;QAC/C,CAAC,CAAC,cAAc,CAAC;AACrB,CAAC;AAPD,kCAOC"}
@@ -0,0 +1,2 @@
1
+ import { EmailNotification, TestRunNotification } from './types';
2
+ export declare const emailToLocalNotifications: (notifications?: EmailNotification[] | TestRunNotification[]) => TestRunNotification[];
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.emailToLocalNotifications = void 0;
4
+ var types_1 = require("./types");
5
+ var emailToLocalNotifications = function (notifications) {
6
+ if (notifications === void 0) { notifications = []; }
7
+ return notifications.map(function (n) { return n.email ? emailToLocalNotification(n) : n; });
8
+ };
9
+ exports.emailToLocalNotifications = emailToLocalNotifications;
10
+ var emailToLocalNotification = function (notification) {
11
+ return {
12
+ destination: {
13
+ type: types_1.NotificationTypes.EMAIL,
14
+ target: notification.email
15
+ },
16
+ notifyWhen: notification.notifyWhen
17
+ };
18
+ };
19
+ //# sourceMappingURL=notifications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/conf/notifications.ts"],"names":[],"mappings":";;;AAAA,iCAAoF;AAE7E,IAAM,yBAAyB,GAAG,UACvC,aAA+D;IAA/D,8BAAA,EAAA,kBAA+D;IAE/D,OAAO,aAAa,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAzC,CAAyC,CAAC,CAAC;AAC7E,CAAC,CAAC;AAJW,QAAA,yBAAyB,6BAIpC;AAEF,IAAM,wBAAwB,GAAG,UAAC,YAA+B;IAC/D,OAAO;QACL,WAAW,EAAE;YACX,IAAI,EAAE,yBAAiB,CAAC,KAAK;YAC7B,MAAM,EAAE,YAAY,CAAC,KAAK;SAC3B;QACD,UAAU,EAAE,YAAY,CAAC,UAAU;KACpC,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,122 @@
1
+ import { AuthConf, LoadmillHeaders, CachePenetration } from '../request';
2
+ import { Parameters } from '../parameters';
3
+ import { StepLike } from '../step';
4
+ export declare type EmailNotification = {
5
+ email: string;
6
+ notifyWhen: NotificationModeLike;
7
+ };
8
+ export declare type TestRunNotification = {
9
+ destination: Destination;
10
+ notifyWhen: NotificationModeLike;
11
+ notifyBy?: NotifyBy;
12
+ detailLevel?: NotificationDetailLevel;
13
+ tagOwners?: boolean;
14
+ tagUsers?: SlackNotificationTagUsers;
15
+ };
16
+ export declare type SlackChannel = {
17
+ id: string;
18
+ name: string;
19
+ accessToken?: string;
20
+ };
21
+ export declare type Destination = {
22
+ type: NotificationTypes;
23
+ target: string | SlackChannel | NotificationTarget;
24
+ };
25
+ export declare type NotificationTarget = {
26
+ id: string;
27
+ name: string;
28
+ };
29
+ export declare enum NotificationTypes {
30
+ EMAIL = "email",
31
+ SLACK = "slack",
32
+ WEBHOOK = "webhook"
33
+ }
34
+ export declare enum NotificationMode {
35
+ ALL = "ALL",
36
+ PASSED = "PASSED",
37
+ FAILED = "FAILED"
38
+ }
39
+ export declare enum NotifyBy {
40
+ FLOWS = "Flows",
41
+ ENDPOINTS = "Endpoints"
42
+ }
43
+ export declare enum NotificationDetailLevel {
44
+ MINIMAL = "Minimal",
45
+ FULL = "Full"
46
+ }
47
+ export declare type SlackNotificationTagUsers = {
48
+ suite?: {
49
+ groupOwners?: boolean;
50
+ };
51
+ flow?: {
52
+ author?: boolean;
53
+ };
54
+ };
55
+ export declare type NotificationModeLike = keyof typeof NotificationMode;
56
+ export declare enum TestEntity {
57
+ FLOW = "flow",
58
+ SUITE = "suite",
59
+ TEST_PLAN = "test plan",
60
+ LOAD = "load"
61
+ }
62
+ export interface TestConfLike {
63
+ requests: StepLike[];
64
+ afterEachRequests?: StepLike[];
65
+ afterAllRequests?: StepLike[];
66
+ meta?: {
67
+ description?: string;
68
+ dependencies?: ConfDependency[];
69
+ dependenciesData?: ConfDependencyData[];
70
+ };
71
+ auth?: AuthConf;
72
+ useCookies?: boolean;
73
+ useProxy?: boolean;
74
+ sensitiveData?: boolean;
75
+ maxFlakyFlowRetries?: number;
76
+ useStaticIp?: boolean;
77
+ skipLoginFlow?: boolean;
78
+ parameterPools?: string[];
79
+ domainsWhiteList?: string[];
80
+ cachePenetration?: CachePenetration;
81
+ parameters?: Parameters | Parameters[];
82
+ loginFlow?: StepLike[];
83
+ authenticationHeaders?: LoadmillHeaders | LoadmillHeaders[];
84
+ scopeParameters?: Parameters[];
85
+ cookies?: CookiesDetails;
86
+ serviceDefinitionId?: string;
87
+ xmlDecode?: boolean;
88
+ rampUp?: number;
89
+ rps?: number;
90
+ duration?: number;
91
+ concurrency?: number;
92
+ monitoredEnv?: string;
93
+ maxIterations?: number;
94
+ iterationDelay?: number | '';
95
+ alwaysDistributed?: boolean;
96
+ targetedCountries?: string[];
97
+ notifications?: EmailNotification[] | TestRunNotification[];
98
+ }
99
+ export declare type ConfDependency = {
100
+ sharedFlowId: string;
101
+ } & ConfDependencyLocation;
102
+ export declare type ConfDependencyLocation = {
103
+ index: number;
104
+ order: number;
105
+ };
106
+ export declare type ConfDependencyData = {
107
+ id: string;
108
+ description: string;
109
+ conf: any;
110
+ };
111
+ export declare enum CookiesScope {
112
+ SUITE = "Suite",
113
+ FLOW = "Flow"
114
+ }
115
+ export declare type CookiesDetails = {
116
+ [urlScope: string]: CookieDetails[];
117
+ };
118
+ export declare type CookieDetails = {
119
+ cookie: string;
120
+ domain: string;
121
+ path: string;
122
+ };
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CookiesScope = exports.TestEntity = exports.NotificationDetailLevel = exports.NotifyBy = exports.NotificationMode = exports.NotificationTypes = void 0;
4
+ var NotificationTypes;
5
+ (function (NotificationTypes) {
6
+ NotificationTypes["EMAIL"] = "email";
7
+ NotificationTypes["SLACK"] = "slack";
8
+ NotificationTypes["WEBHOOK"] = "webhook";
9
+ })(NotificationTypes = exports.NotificationTypes || (exports.NotificationTypes = {}));
10
+ var NotificationMode;
11
+ (function (NotificationMode) {
12
+ NotificationMode["ALL"] = "ALL";
13
+ NotificationMode["PASSED"] = "PASSED";
14
+ NotificationMode["FAILED"] = "FAILED";
15
+ })(NotificationMode = exports.NotificationMode || (exports.NotificationMode = {}));
16
+ var NotifyBy;
17
+ (function (NotifyBy) {
18
+ NotifyBy["FLOWS"] = "Flows";
19
+ NotifyBy["ENDPOINTS"] = "Endpoints";
20
+ })(NotifyBy = exports.NotifyBy || (exports.NotifyBy = {}));
21
+ var NotificationDetailLevel;
22
+ (function (NotificationDetailLevel) {
23
+ NotificationDetailLevel["MINIMAL"] = "Minimal";
24
+ NotificationDetailLevel["FULL"] = "Full";
25
+ })(NotificationDetailLevel = exports.NotificationDetailLevel || (exports.NotificationDetailLevel = {}));
26
+ var TestEntity;
27
+ (function (TestEntity) {
28
+ TestEntity["FLOW"] = "flow";
29
+ TestEntity["SUITE"] = "suite";
30
+ TestEntity["TEST_PLAN"] = "test plan";
31
+ TestEntity["LOAD"] = "load";
32
+ })(TestEntity = exports.TestEntity || (exports.TestEntity = {}));
33
+ var CookiesScope;
34
+ (function (CookiesScope) {
35
+ CookiesScope["SUITE"] = "Suite";
36
+ CookiesScope["FLOW"] = "Flow";
37
+ })(CookiesScope = exports.CookiesScope || (exports.CookiesScope = {}));
38
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/conf/types.ts"],"names":[],"mappings":";;;AAsCA,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,oCAAe,CAAA;IACf,oCAAe,CAAA;IACf,wCAAmB,CAAA;AACrB,CAAC,EAJW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAI5B;AAED,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,+BAAW,CAAA;IACX,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;AACnB,CAAC,EAJW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAI3B;AAED,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,mCAAuB,CAAA;AACzB,CAAC,EAHW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAGnB;AAED,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,8CAAmB,CAAA;IACnB,wCAAa,CAAA;AACf,CAAC,EAHW,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QAGlC;AAaD,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,2BAAa,CAAA;IACb,6BAAe,CAAA;IACf,qCAAuB,CAAA;IACvB,2BAAa,CAAA;AACf,CAAC,EALW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAKrB;AA2DD,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,+BAAe,CAAA;IACf,6BAAa,CAAA;AACf,CAAC,EAHW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAGvB"}
@@ -0,0 +1,69 @@
1
+ import { Parameters } from '../parameters';
2
+ export declare const validate: {
3
+ invalid: typeof invalid;
4
+ positive(value: any, name: string): any;
5
+ email(value: any, name: string): any;
6
+ integer(value: any, name: string | false, min?: number, max?: number): any;
7
+ nonemptyArray(value: any, name: string): any;
8
+ array: typeof array;
9
+ string: typeof string;
10
+ jsonFormat: typeof jsonFormat;
11
+ isTrue: typeof isTrue;
12
+ maxLength(value: any, maxLength: any, name: any): any;
13
+ uuid(value: any, name: string): any;
14
+ nonemptyString: typeof nonemptyString;
15
+ stringIfExists(value: any, name: string, message?: string): any;
16
+ notification(notification: any): any;
17
+ parameter(name: string, value: string | string[]): any;
18
+ hasOnlyAcceptableCharacters: typeof hasOnlyAcceptableCharacters;
19
+ parameterDoesntExist: typeof parameterDoesntExist;
20
+ extractedValue: typeof extractedValue;
21
+ isUrl: typeof isUrl;
22
+ url(url: string, name?: string): any;
23
+ isUrlLocalHost(url: string, name?: string): any;
24
+ isMethodSupported(method: any): boolean;
25
+ isHttpStatusSupported(expectedHttpStatus: any): boolean;
26
+ method(method: any): any;
27
+ expectedHttpStatus(expectedHttpStatus: any): any;
28
+ header(_headerName: string, headerValue: string): any;
29
+ headerName: typeof headerName;
30
+ mimeType(value: string, name: string): any;
31
+ regex(value: string, name?: string): any;
32
+ regexCapture(value: string, name?: string): any;
33
+ jsonPath(value: string): any;
34
+ jQuery(value: any, name?: string): any;
35
+ xPath(xPath: any): any;
36
+ testRailIntegration(integration: any): any;
37
+ xrayIntegration(xrayIntegration: any): any;
38
+ jiraIntegration(jiraIntegration: any): any;
39
+ validateCron(cron: string): any;
40
+ validateParameterNames(names: string[]): any;
41
+ validateObjOrArray<T>(name: string, objOrArray: T | T[], singleValidation: any): {
42
+ [x: string]: any;
43
+ } | undefined;
44
+ parameterName(parameterName: string, fieldName: string | false): any;
45
+ label(labelParams: any): any;
46
+ boolean(value: any, name: string): any;
47
+ breakpoint(breakpoint: unknown): any;
48
+ };
49
+ declare function hasOnlyAcceptableCharacters(value: string, fieldName: string | false): any;
50
+ declare function parameterDoesntExist(parameterName: any, entityName: string, collection: Array<Parameters>): any;
51
+ declare function extractedValue(extractedVal: string, fieldName: string | false): any;
52
+ declare function invalid(name: string | false, message: string): any;
53
+ declare function array(value: any, name: string, message?: string): any;
54
+ declare function isUrl(url: string, name?: string): any;
55
+ declare function nonemptyString(value: any, name: string | false, message?: string): any;
56
+ declare function string(value: any, name?: string | false, message?: string): any;
57
+ declare function jsonFormat(value: string, name: string, message?: string): any;
58
+ declare function isTrue(value: any, name: string, message?: string): any;
59
+ declare function headerName(headerName: string, nameName?: string): {
60
+ [x: string]: string;
61
+ } | undefined;
62
+ export interface EntryValidations {
63
+ [name: string]: string | {
64
+ name?: string;
65
+ value?: string;
66
+ };
67
+ }
68
+ export declare const gitBranchName: (branchName: string) => string | undefined;
69
+ export {};