@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,72 @@
1
+ import { Assertion, Assertions } from '../assertions';
2
+ import { Parameters } from '../parameters';
3
+ import { Step } from './step-type';
4
+ export declare enum StepTypes {
5
+ REQUEST = "Request",
6
+ CODE = "Code",
7
+ EXTRACT_AND_ASSERT = "ExtractAndAssert"
8
+ }
9
+ export declare enum StepFlowType {
10
+ LOGIN = "login",
11
+ BEFORE_EACH = "beforeEach",
12
+ FLOW = "flow",
13
+ AFTER_EACH = "afterEach",
14
+ FINF = "flowInFlow",
15
+ BEFORE_ALL = "beforeAll",
16
+ AFTER_ALL = "afterAll"
17
+ }
18
+ export interface StepLike extends StepIdenity, StepFlowTypeLocation, StepControl, StepVerification {
19
+ type?: StepTypes;
20
+ }
21
+ export interface StepIdenity {
22
+ id?: string;
23
+ description?: string;
24
+ }
25
+ export interface StepFlowTypeLocation {
26
+ meta?: StepMeta;
27
+ }
28
+ export interface StepMeta {
29
+ type: StepFlowType;
30
+ location?: {
31
+ order: number;
32
+ index: number;
33
+ };
34
+ }
35
+ export interface StepControl {
36
+ disabled?: boolean;
37
+ stopBefore?: string;
38
+ skipBefore?: SkipConf;
39
+ loop?: LoopConf;
40
+ timeout?: number;
41
+ delay?: number | string;
42
+ }
43
+ export interface StepVerification {
44
+ assert?: Assertions;
45
+ expectedStatus?: StepStatus;
46
+ }
47
+ export declare type StepStatus = 'SUCCESS' | 'ERROR' | 'ANY';
48
+ export interface SkipConf {
49
+ condition: string;
50
+ negate?: boolean;
51
+ goTo?: string;
52
+ }
53
+ export interface LoopConf {
54
+ assert: Assertion;
55
+ iterations: number;
56
+ wait?: number;
57
+ }
58
+ export interface ResolvedStep {
59
+ step?: Step;
60
+ postParameters?: Parameters[];
61
+ stdout?: string[];
62
+ wsMessages?: string[];
63
+ unexpectedError?: {
64
+ stack: string;
65
+ message: string;
66
+ properties: string;
67
+ };
68
+ retried?: number;
69
+ index?: number;
70
+ }
71
+ export declare function createStep<T extends StepLike, K extends Step>(from: T, step: K): K;
72
+ export declare function findStepIndex(steps: Step[], desc: string): number;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findStepIndex = exports.createStep = exports.StepFlowType = exports.StepTypes = void 0;
4
+ var assertions_1 = require("../assertions");
5
+ var StepTypes;
6
+ (function (StepTypes) {
7
+ StepTypes["REQUEST"] = "Request";
8
+ StepTypes["CODE"] = "Code";
9
+ StepTypes["EXTRACT_AND_ASSERT"] = "ExtractAndAssert";
10
+ })(StepTypes = exports.StepTypes || (exports.StepTypes = {}));
11
+ var StepFlowType;
12
+ (function (StepFlowType) {
13
+ StepFlowType["LOGIN"] = "login";
14
+ StepFlowType["BEFORE_EACH"] = "beforeEach";
15
+ StepFlowType["FLOW"] = "flow";
16
+ StepFlowType["AFTER_EACH"] = "afterEach";
17
+ StepFlowType["FINF"] = "flowInFlow";
18
+ StepFlowType["BEFORE_ALL"] = "beforeAll";
19
+ StepFlowType["AFTER_ALL"] = "afterAll";
20
+ })(StepFlowType = exports.StepFlowType || (exports.StepFlowType = {}));
21
+ function createStep(from, step) {
22
+ var id = from.id, description = from.description, delay = from.delay, timeout = from.timeout, stopBefore = from.stopBefore, skipBefore = from.skipBefore, loop = from.loop, expectedStatus = from.expectedStatus, disabled = from.disabled, meta = from.meta;
23
+ if (id) {
24
+ step.id = id;
25
+ }
26
+ if (description) {
27
+ step.description = description;
28
+ }
29
+ if (delay !== null && delay !== undefined) {
30
+ step.delay = delay;
31
+ }
32
+ if (stopBefore !== undefined) {
33
+ step.stopBefore = stopBefore;
34
+ }
35
+ if (skipBefore != null) {
36
+ var goTo = skipBefore.goTo, negate = skipBefore.negate, condition = skipBefore.condition;
37
+ step.skipBefore = {
38
+ goTo: goTo,
39
+ condition: condition,
40
+ negate: !!negate,
41
+ };
42
+ }
43
+ if (loop != null) {
44
+ var iterations = loop.iterations, assert = loop.assert, wait = loop.wait;
45
+ var converted = assertions_1.toAssertions([assert])[0];
46
+ step.loop = {
47
+ assert: converted,
48
+ iterations: iterations,
49
+ wait: wait,
50
+ };
51
+ }
52
+ if (timeout != null) {
53
+ step.timeout = timeout;
54
+ }
55
+ if (expectedStatus) {
56
+ step.expectedStatus = expectedStatus;
57
+ }
58
+ if (disabled !== undefined) {
59
+ step.disabled = disabled;
60
+ }
61
+ if (meta) {
62
+ step.meta = meta;
63
+ }
64
+ return step;
65
+ }
66
+ exports.createStep = createStep;
67
+ function findStepIndex(steps, desc) {
68
+ return steps.findIndex(function (step) { return step.description === desc; });
69
+ }
70
+ exports.findStepIndex = findStepIndex;
71
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/step/index.ts"],"names":[],"mappings":";;;AAAA,4CAAoE;AAIpE,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,gCAAmB,CAAA;IACnB,0BAAa,CAAA;IACb,oDAAuC,CAAA;AACzC,CAAC,EAJW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAIpB;AAED,IAAY,YAQX;AARD,WAAY,YAAY;IACtB,+BAAe,CAAA;IACf,0CAA0B,CAAA;IAC1B,6BAAa,CAAA;IACb,wCAAwB,CAAA;IACxB,mCAAmB,CAAA;IACnB,wCAAwB,CAAA;IACxB,sCAAsB,CAAA;AACxB,CAAC,EARW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAQvB;AAiED,SAAgB,UAAU,CACxB,IAAO,EACP,IAAO;IAGL,IAAA,EAAE,GAUA,IAAI,GAVJ,EACF,WAAW,GAST,IAAI,YATK,EACX,KAAK,GAQH,IAAI,MARD,EACL,OAAO,GAOL,IAAI,QAPC,EACP,UAAU,GAMR,IAAI,WANI,EACV,UAAU,GAKR,IAAI,WALI,EACV,IAAI,GAIF,IAAI,KAJF,EACJ,cAAc,GAGZ,IAAI,eAHQ,EACd,QAAQ,GAEN,IAAI,SAFE,EACR,IAAI,GACF,IAAI,KADF,CACG;IAET,IAAI,EAAE,EAAE;QACN,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;KACd;IAED,IAAI,WAAW,EAAE;QACf,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;KAChC;IAED,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;QACzC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;IAED,IAAI,UAAU,KAAK,SAAS,EAAE;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAC9B;IAED,IAAI,UAAU,IAAI,IAAI,EAAE;QACd,IAAA,IAAI,GAAwB,UAAU,KAAlC,EAAE,MAAM,GAAgB,UAAU,OAA1B,EAAE,SAAS,GAAK,UAAU,UAAf,CAAgB;QAE/C,IAAI,CAAC,UAAU,GAAG;YAChB,IAAI,MAAA;YACJ,SAAS,WAAA;YACT,MAAM,EAAE,CAAC,CAAC,MAAM;SACjB,CAAC;KACH;IAED,IAAI,IAAI,IAAI,IAAI,EAAE;QACR,IAAA,UAAU,GAAmB,IAAI,WAAvB,EAAE,MAAM,GAAW,IAAI,OAAf,EAAE,IAAI,GAAK,IAAI,KAAT,CAAU;QAEnC,IAAA,SAAS,GAAI,yBAAY,CAAC,CAAC,MAAM,CAAC,CAAC,GAA1B,CAA2B;QAC3C,IAAI,CAAC,IAAI,GAAG;YACV,MAAM,EAAE,SAAS;YACjB,UAAU,YAAA;YACV,IAAI,MAAA;SACL,CAAC;KACH;IAED,IAAI,OAAO,IAAI,IAAI,EAAE;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;KACxB;IAED,IAAI,cAAc,EAAE;QAClB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;KACtC;IAED,IAAI,QAAQ,KAAK,SAAS,EAAE;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC1B;IAED,IAAI,IAAI,EAAE;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KAClB;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAvED,gCAuEC;AAED,SAAgB,aAAa,CAAC,KAAa,EAAE,IAAY;IACvD,OAAO,KAAK,CAAC,SAAS,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,WAAW,KAAK,IAAI,EAAzB,CAAyB,CAAC,CAAC;AAC9D,CAAC;AAFD,sCAEC"}
@@ -0,0 +1,4 @@
1
+ import { CodeStep } from '../code-step';
2
+ import { ExtractAndAssertStep } from '../extract-and-assert-step';
3
+ import { LoadmillRequest } from '../request';
4
+ export declare type Step = LoadmillRequest | CodeStep | ExtractAndAssertStep;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=step-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-type.js","sourceRoot":"","sources":["../../src/step/step-type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { CodeStep } from '../code-step';
2
+ import { LoadmillRequest } from '../request';
3
+ import { ExtractAndAssertStep } from '../extract-and-assert-step';
4
+ import { StepLike } from '.';
5
+ export declare const isCodeStep: (step?: StepLike | undefined) => step is CodeStep;
6
+ export declare const isLoadmillRequest: (step?: StepLike | undefined) => step is LoadmillRequest;
7
+ export declare const isExtractAndAssertStep: (step?: StepLike | undefined) => step is ExtractAndAssertStep;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isExtractAndAssertStep = exports.isLoadmillRequest = exports.isCodeStep = void 0;
4
+ var _1 = require(".");
5
+ var isCodeStep = function (step) {
6
+ return (step === null || step === void 0 ? void 0 : step.type) === _1.StepTypes.CODE;
7
+ };
8
+ exports.isCodeStep = isCodeStep;
9
+ var isLoadmillRequest = function (step) {
10
+ return ((step === null || step === void 0 ? void 0 : step.type) === undefined || // backward compatibility
11
+ (step === null || step === void 0 ? void 0 : step.type) === _1.StepTypes.REQUEST);
12
+ };
13
+ exports.isLoadmillRequest = isLoadmillRequest;
14
+ var isExtractAndAssertStep = function (step) {
15
+ return (step === null || step === void 0 ? void 0 : step.type) === _1.StepTypes.EXTRACT_AND_ASSERT;
16
+ };
17
+ exports.isExtractAndAssertStep = isExtractAndAssertStep;
18
+ //# sourceMappingURL=type-guards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-guards.js","sourceRoot":"","sources":["../../src/step/type-guards.ts"],"names":[],"mappings":";;;AAIA,sBAAwC;AAEjC,IAAM,UAAU,GAAG,UAAC,IAAe;IACxC,OAAO,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,YAAS,CAAC,IAAI,CAAC;AACvC,CAAC,CAAC;AAFW,QAAA,UAAU,cAErB;AAEK,IAAM,iBAAiB,GAAG,UAAC,IAAe;IAC/C,OAAO,CACL,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,SAAS,IAAI,yBAAyB;QACrD,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,YAAS,CAAC,OAAO,CACjC,CAAC;AACJ,CAAC,CAAC;AALW,QAAA,iBAAiB,qBAK5B;AAEK,IAAM,sBAAsB,GAAG,UAAC,IAAe;IACpD,OAAO,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,YAAS,CAAC,kBAAkB,CAAC;AACrD,CAAC,CAAC;AAFW,QAAA,sBAAsB,0BAEjC"}
@@ -0,0 +1,3 @@
1
+ import { isJSONContains } from './json-contains';
2
+ import { isSubset } from './is-subset';
3
+ export { isJSONContains, isSubset, };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isSubset = exports.isJSONContains = void 0;
4
+ var json_contains_1 = require("./json-contains");
5
+ Object.defineProperty(exports, "isJSONContains", { enumerable: true, get: function () { return json_contains_1.isJSONContains; } });
6
+ var is_subset_1 = require("./is-subset");
7
+ Object.defineProperty(exports, "isSubset", { enumerable: true, get: function () { return is_subset_1.isSubset; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/subset/index.ts"],"names":[],"mappings":";;;AAAA,iDAAiD;AAI/C,+FAJO,8BAAc,OAIP;AAHhB,yCAAuC;AAIrC,yFAJO,oBAAQ,OAIP"}
@@ -0,0 +1,2 @@
1
+ import { ParseJson } from '@loadmill/universal/dist/typescript-utils';
2
+ export declare const isSubset: (superSet: ParseJson, subSet: ParseJson) => any;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isSubset = void 0;
4
+ var json_schema_generator_1 = require("../schema/json-schema-generator");
5
+ var isSubset = function (superSet, subSet) {
6
+ if (shouldContainAnyValue(subSet)) {
7
+ return superSet != null;
8
+ }
9
+ if (json_schema_generator_1.isPrimitive(superSet) || json_schema_generator_1.isPrimitive(subSet)) {
10
+ return superSet === subSet;
11
+ }
12
+ if (superSet === null || subSet === null) {
13
+ return superSet === subSet;
14
+ }
15
+ if ((superSet instanceof Date || subSet instanceof Date)) {
16
+ return superSet.valueOf() === subSet.valueOf();
17
+ }
18
+ return Object.keys(subSet).every(function (key) {
19
+ if (!superSet.propertyIsEnumerable(key)) {
20
+ return false;
21
+ }
22
+ var subsetItem = subSet[key];
23
+ var supersetItem = superSet[key];
24
+ return exports.isSubset(supersetItem, subsetItem) ? true : false;
25
+ });
26
+ };
27
+ exports.isSubset = isSubset;
28
+ var shouldContainAnyValue = function (item) { return item === json_schema_generator_1.ANY_VALUE; };
29
+ //# sourceMappingURL=is-subset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-subset.js","sourceRoot":"","sources":["../../src/subset/is-subset.ts"],"names":[],"mappings":";;;AACA,yEAAyE;AAElE,IAAM,QAAQ,GAAG,UAAC,QAAmB,EAAE,MAAiB;IAE7D,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE;QACjC,OAAO,QAAQ,IAAI,IAAI,CAAC;KACzB;IAED,IAAI,mCAAW,CAAC,QAAQ,CAAC,IAAI,mCAAW,CAAC,MAAM,CAAC,EAAE;QAChD,OAAO,QAAQ,KAAK,MAAM,CAAC;KAC5B;IAED,IAAI,QAAQ,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,EAAE;QACxC,OAAO,QAAQ,KAAK,MAAM,CAAC;KAC5B;IAED,IAAI,CAAC,QAAQ,YAAY,IAAI,IAAI,MAAM,YAAY,IAAI,CAAC,EAAE;QACxD,OAAO,QAAQ,CAAC,OAAO,EAAE,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;KAChD;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAC,GAAG;QACnC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE;YACvC,OAAO,KAAK,CAAC;SACd;QACD,IAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnC,OAAO,gBAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AA1BW,QAAA,QAAQ,YA0BnB;AAEF,IAAM,qBAAqB,GAAG,UAAC,IAAI,IAAK,OAAA,IAAI,KAAK,iCAAS,EAAlB,CAAkB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const isJSONContains: (containing: string, contained: string) => boolean;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isJSONContains = void 0;
4
+ var errors_1 = require("@loadmill/universal/dist/errors");
5
+ var json_utils_1 = require("@loadmill/universal/dist/json-utils");
6
+ var is_subset_1 = require("./is-subset");
7
+ var isJSONContains = function (containing, contained) {
8
+ var parsedContaining, parsedContained;
9
+ try {
10
+ parsedContaining = JSON.parse(containing);
11
+ }
12
+ catch (e) {
13
+ return false;
14
+ }
15
+ try {
16
+ parsedContained = JSON.parse(json_utils_1.stripJsonTrailingCommas(contained));
17
+ }
18
+ catch (e) {
19
+ throw new errors_1.PresentableError('couldn\'t parse the contained JSON');
20
+ }
21
+ return is_subset_1.isSubset(parsedContaining, parsedContained);
22
+ };
23
+ exports.isJSONContains = isJSONContains;
24
+ //# sourceMappingURL=json-contains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-contains.js","sourceRoot":"","sources":["../../src/subset/json-contains.ts"],"names":[],"mappings":";;;AAAA,0DAAmE;AAEnE,kEAA8E;AAC9E,yCAAuC;AAEhC,IAAM,cAAc,GAAG,UAAC,UAAkB,EAAE,SAAiB;IAClE,IAAI,gBAA2B,EAAE,eAA0B,CAAC;IAE5D,IAAI;QACF,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;KAC3C;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAC;KACd;IAED,IAAI;QACF,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,oCAAuB,CAAC,SAAS,CAAC,CAAC,CAAC;KAClE;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,IAAI,yBAAgB,CAAC,oCAAoC,CAAC,CAAC;KAClE;IAED,OAAO,oBAAQ,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;AACrD,CAAC,CAAC;AAhBW,QAAA,cAAc,kBAgBzB"}
@@ -0,0 +1,3 @@
1
+ export declare const DEFAULT_MAX_ENTITIES_OF_SAME_TYPE = 15;
2
+ export declare const MIN_ENTITIES_OF_SAME_TYPE = 0;
3
+ export declare const MAX_ENTITIES_OF_SAME_TYPE = 1000;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MAX_ENTITIES_OF_SAME_TYPE = exports.MIN_ENTITIES_OF_SAME_TYPE = exports.DEFAULT_MAX_ENTITIES_OF_SAME_TYPE = void 0;
4
+ exports.DEFAULT_MAX_ENTITIES_OF_SAME_TYPE = 15;
5
+ exports.MIN_ENTITIES_OF_SAME_TYPE = 0;
6
+ exports.MAX_ENTITIES_OF_SAME_TYPE = 1000;
7
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/team-options/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,iCAAiC,GAAG,EAAE,CAAC;AACvC,QAAA,yBAAyB,GAAG,CAAC,CAAC;AAC9B,QAAA,yBAAyB,GAAG,IAAI,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const decodePriorityRequest: (requestBody: string) => string;
2
+ export declare const decodePriorityResponse: (responseBody: string) => string;
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decodePriorityResponse = exports.decodePriorityRequest = void 0;
4
+ var validator_1 = require("validator");
5
+ var remove_invisible_chars_1 = require("./remove-invisible-chars");
6
+ var escape_reserved_chars_1 = require("./escape-reserved-chars");
7
+ var replace_s_tags_1 = require("./replace-s-tags");
8
+ var namespaces_1 = require("./namespaces");
9
+ /**
10
+ * matches XML or data tags and their content in a string.
11
+ * ([\s\S]*?) - matches any character, as few times as possible.
12
+ */
13
+ var XML_DATA_TAG_REGEX = /<(xml|statexml|data)>([\s\S]*?)<\/(xml|statexml|data)>/g;
14
+ var decodePriorityRequest = function (requestBody) {
15
+ return requestBody.replace(XML_DATA_TAG_REGEX, function (matched, tag, encodedContent) {
16
+ if (validator_1.isBase64(encodedContent)) {
17
+ var decodedContent = Buffer.from(encodedContent, 'base64').toString('utf-8');
18
+ var cleanedDecodedContent = remove_invisible_chars_1.replaceInvisibleCharWithCustomTag(decodedContent);
19
+ var replacedSTagDecodedContent = replace_s_tags_1.replaceSTag(cleanedDecodedContent);
20
+ var escapedDecodedContent = unwrapTempRootTag(escape_reserved_chars_1.escapeXML(wrapTempRootTag(replacedSTagDecodedContent)));
21
+ return wrapXMLTagAndContent(tag, escapedDecodedContent);
22
+ }
23
+ else {
24
+ return matched;
25
+ }
26
+ });
27
+ };
28
+ exports.decodePriorityRequest = decodePriorityRequest;
29
+ var wrapXMLTagAndContent = function (tag, content) {
30
+ return "<LoadmillWrapper><" + tag + ">" + content + "</" + tag + "></LoadmillWrapper>";
31
+ };
32
+ var wrapTempRootTag = function (content) {
33
+ return "<TempRoot>" + content + "</TempRoot>";
34
+ };
35
+ var unwrapTempRootTag = function (content) {
36
+ return content.replace('<TempRoot>', '').replace('</TempRoot>', '');
37
+ };
38
+ /**
39
+ * Weird & secret xml format.
40
+ * S - start of a tag
41
+ * E - end of a tag
42
+ * V - value
43
+ */
44
+ var SPECIFIC_START = 'AlMKCQ0w'; // base64 for \x02S\n\t\r0 which is the start of secret xml format
45
+ var BASE64_REGEX = new RegExp("(" + SPECIFIC_START + "[A-Za-z0-9+/=]*)", 'g'); // match the start of the secret xml format and the base64 encoded data
46
+ var decodePriorityResponse = function (responseBody) {
47
+ var isFullReponseEncoded = validator_1.isBase64(responseBody);
48
+ var decodedResponseBody = isFullReponseEncoded ? decodeBase64(responseBody) : responseBody;
49
+ var result = decodedResponseBody.replace(BASE64_REGEX, function (_, encodedData) {
50
+ var decodedData = Buffer.from(encodedData, 'base64').toString('utf8');
51
+ var lines = decodedData.substring(1) // skip the first weird character (it is for format type)
52
+ .split('\n')
53
+ .map(function (line) { return line.trim(); })
54
+ .filter(function (line) { return line; }); // eliminate empty lines
55
+ var xml = '';
56
+ for (var i = 0; i < lines.length; i++) {
57
+ if (lines[i] === 'S') {
58
+ var openTagName = lines[i + 2];
59
+ xml += "<" + openTagName + ">";
60
+ i += 2; // Skip past the depth indicator and the tag name
61
+ while (!['S', 'V', 'E'].includes(lines[i + 1])) {
62
+ xml += lines[i + 1];
63
+ i += 1;
64
+ }
65
+ }
66
+ else if (lines[i] === 'E') {
67
+ var closeTagName = lines[i + 1];
68
+ xml += "</" + closeTagName + ">";
69
+ i += 1; // Skip past the tag name
70
+ }
71
+ else if (lines[i] === 'V') {
72
+ // while not 'E', accumulate value lines
73
+ var value = '';
74
+ while (lines[i + 1] !== 'E' && i >= lines.length) {
75
+ value += lines[i + 1];
76
+ i += 1;
77
+ }
78
+ xml += value;
79
+ }
80
+ }
81
+ return "<LoadmillWrapper>" + xml + "</LoadmillWrapper>";
82
+ });
83
+ var replacedSTagResult = replace_s_tags_1.replaceSTag(result);
84
+ var escapedResult = escape_reserved_chars_1.escapeXML(replacedSTagResult);
85
+ var withoutXMLNamespaces = namespaces_1.removeXMLNamespaces(escapedResult);
86
+ return isFullReponseEncoded ? returnToBase64(withoutXMLNamespaces) : withoutXMLNamespaces;
87
+ };
88
+ exports.decodePriorityResponse = decodePriorityResponse;
89
+ var decodeBase64 = function (text) { return Buffer.from(text, 'base64').toString('utf8'); };
90
+ var returnToBase64 = function (text) { return Buffer.from(text).toString('base64'); };
91
+ //# sourceMappingURL=decode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode.js","sourceRoot":"","sources":["../../src/xml/decode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const encodeXMLRequestBody: (requestBody: string) => string;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.encodeXMLRequestBody = void 0;
4
+ var remove_invisible_chars_1 = require("./remove-invisible-chars");
5
+ var REGEX_LOADMILL_WRAPPER = /<LoadmillWrapper>\s*<(xml|statexml|data)>([\s\S]*?)<\/(xml|statexml|data)>\s*<\/LoadmillWrapper>/g;
6
+ var encodeXMLRequestBody = function (requestBody) {
7
+ return requestBody.replace(REGEX_LOADMILL_WRAPPER, function (_, tag, decodedContent) {
8
+ var cleanedDecodedContent = remove_invisible_chars_1.replaceCustomTagWithInvisibleChar(decodedContent);
9
+ var reEncodedContent = Buffer.from(cleanedDecodedContent).toString('base64');
10
+ return "<" + tag + ">" + reEncodedContent + "</" + tag + ">";
11
+ });
12
+ };
13
+ exports.encodeXMLRequestBody = encodeXMLRequestBody;
14
+ //# sourceMappingURL=encode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode.js","sourceRoot":"","sources":["../../src/xml/encode.ts"],"names":[],"mappings":";;;AAAA,mEAA6E;AAE7E,IAAM,sBAAsB,GAAG,mGAAmG,CAAC;AAE5H,IAAM,oBAAoB,GAAG,UAAC,WAAmB;IACtD,OAAO,WAAW,CAAC,OAAO,CAAC,sBAAsB,EAAE,UAAC,CAAC,EAAE,GAAG,EAAE,cAAc;QACxE,IAAM,qBAAqB,GAAG,0DAAiC,CAAC,cAAc,CAAC,CAAC;QAChF,IAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC/E,OAAO,MAAI,GAAG,SAAI,gBAAgB,UAAK,GAAG,MAAG,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AANW,QAAA,oBAAoB,wBAM/B"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Escape reserved XML characters in a string.
3
+ * Reserved characters are: <, >, &, ', ".
4
+ * Their escaped counterparts are: &lt;, &gt;, &amp;, &apos;, &quot;
5
+ */
6
+ export declare const escapeXML: (xml: string) => string;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.escapeXML = void 0;
7
+ var xmldom_1 = require("@xmldom/xmldom");
8
+ var log_1 = __importDefault(require("@loadmill/universal/dist/log"));
9
+ /**
10
+ * Escape reserved XML characters in a string.
11
+ * Reserved characters are: <, >, &, ', ".
12
+ * Their escaped counterparts are: &lt;, &gt;, &amp;, &apos;, &quot;
13
+ */
14
+ var escapeXML = function (xml) {
15
+ var parser = new xmldom_1.DOMParser({ errorHandler: _errorHandler });
16
+ var xmlDoc = parser.parseFromString(xml, 'text/xml');
17
+ processNode(xmlDoc.documentElement);
18
+ return new xmldom_1.XMLSerializer().serializeToString(xmlDoc);
19
+ };
20
+ exports.escapeXML = escapeXML;
21
+ var _errorHandler = {
22
+ warning: function (msg) { return log_1.default.debug(msg); },
23
+ error: function (msg) { return log_1.default.debug(msg); },
24
+ fatalError: function (msg) { return log_1.default.debug(msg); },
25
+ };
26
+ // Recursively process XML nodes
27
+ var processNode = function (node) {
28
+ if (!node) {
29
+ return;
30
+ }
31
+ if (node.TEXT_NODE) {
32
+ node.nodeValue = escapeXmlContent(node.nodeValue);
33
+ }
34
+ else if (node.ELEMENT_NODE) {
35
+ for (var i = 0; i < node.childNodes.length; i++) {
36
+ processNode(node.childNodes[i]);
37
+ }
38
+ }
39
+ };
40
+ var escapeXmlContent = function (content) {
41
+ if (!content) {
42
+ return content;
43
+ }
44
+ // Replace reserved symbols with their escaped counterparts
45
+ return content.replace(/[<>&'"]/g, function (match) {
46
+ switch (match) {
47
+ case '<':
48
+ return '&lt;';
49
+ case '>':
50
+ return '&gt;';
51
+ case '&':
52
+ return '&amp;';
53
+ default: return match;
54
+ }
55
+ });
56
+ };
57
+ //# sourceMappingURL=escape-reserved-chars.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escape-reserved-chars.js","sourceRoot":"","sources":["../../src/xml/escape-reserved-chars.ts"],"names":[],"mappings":";;;;;;AAAA,yCAIwB;AAExB,qEAA+C;AAE/C;;;;GAIG;AACI,IAAM,SAAS,GAAG,UAAC,GAAW;IACnC,IAAM,MAAM,GAAG,IAAI,kBAAS,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC;IAC9D,IAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACvD,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACpC,OAAO,IAAI,sBAAa,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACvD,CAAC,CAAC;AALW,QAAA,SAAS,aAKpB;AAEF,IAAM,aAAa,GAAuB;IACxC,OAAO,EAAE,UAAC,GAAW,IAAK,OAAA,aAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAd,CAAc;IACxC,KAAK,EAAE,UAAC,GAAW,IAAK,OAAA,aAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAd,CAAc;IACtC,UAAU,EAAE,UAAC,GAAW,IAAK,OAAA,aAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAd,CAAc;CAC5C,CAAC;AAEF,gCAAgC;AAChC,IAAM,WAAW,GAAG,UAAC,IAAU;IAC7B,IAAI,CAAC,IAAI,EAAE;QACT,OAAO;KACR;IACD,IAAI,IAAI,CAAC,SAAS,EAAE;QAClB,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACnD;SAAM,IAAI,IAAI,CAAC,YAAY,EAAE;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/C,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SACjC;KACF;AACH,CAAC,CAAC;AAEF,IAAM,gBAAgB,GAAG,UAAC,OAAsB;IAC9C,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,OAAO,CAAC;KAChB;IACD,2DAA2D;IAC3D,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,UAAC,KAAa;QAC/C,QAAQ,KAAK,EAAE;YACf,KAAK,GAAG;gBACN,OAAO,MAAM,CAAC;YAChB,KAAK,GAAG;gBACN,OAAO,MAAM,CAAC;YAChB,KAAK,GAAG;gBACN,OAAO,OAAO,CAAC;YACjB,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC;SACrB;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const isXML: (mimeType?: string) => boolean;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isXML = void 0;
4
+ var isXML = function (mimeType) {
5
+ if (mimeType === void 0) { mimeType = ''; }
6
+ return mimeType.startsWith('text/xml') || mimeType.startsWith('application/xml');
7
+ };
8
+ exports.isXML = isXML;
9
+ //# sourceMappingURL=is-xml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-xml.js","sourceRoot":"","sources":["../../src/xml/is-xml.ts"],"names":[],"mappings":";;;AAAO,IAAM,KAAK,GAAG,UAAC,QAAqB;IAArB,yBAAA,EAAA,aAAqB;IACzC,OAAO,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;AACnF,CAAC,CAAC;AAFW,QAAA,KAAK,SAEhB"}
@@ -0,0 +1,2 @@
1
+ import { BuilderOptions } from 'xml2js';
2
+ export declare const jsonToXML: (json: any, options?: BuilderOptions) => string;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.jsonToXML = void 0;
4
+ var xml2js_1 = require("xml2js");
5
+ var jsonToXML = function (json, options) {
6
+ if (options === void 0) { options = {}; }
7
+ var builder = new xml2js_1.Builder(options);
8
+ return builder.buildObject(json);
9
+ };
10
+ exports.jsonToXML = jsonToXML;
11
+ //# sourceMappingURL=json-to-xml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-to-xml.js","sourceRoot":"","sources":["../../src/xml/json-to-xml.ts"],"names":[],"mappings":";;;AAAA,iCAAiD;AAE1C,IAAM,SAAS,GAAG,UAAC,IAAS,EAAE,OAA4B;IAA5B,wBAAA,EAAA,YAA4B;IAC/D,IAAM,OAAO,GAAG,IAAI,gBAAO,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC,CAAC;AAHW,QAAA,SAAS,aAGpB"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * This function removes all namespace declarations from a given string representing an XML document.
3
+ * It uses a regular expression to find and replace all occurrences of 'xmlns="..."' with an empty string.
4
+ * @param xmlString - The XML string from which to remove namespace declarations.
5
+ * @returns The XML string without namespace declarations.
6
+ */
7
+ export declare const removeXMLNamespaces: (xmlString: string) => string;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.removeXMLNamespaces = void 0;
4
+ // Match all occurrences of 'xmlns="..."'
5
+ var XML_NAMESPACE_DECLARATION_REGEX = /\s*xmlns\s*=\s*"[^"]*"/g;
6
+ /**
7
+ * This function removes all namespace declarations from a given string representing an XML document.
8
+ * It uses a regular expression to find and replace all occurrences of 'xmlns="..."' with an empty string.
9
+ * @param xmlString - The XML string from which to remove namespace declarations.
10
+ * @returns The XML string without namespace declarations.
11
+ */
12
+ var removeXMLNamespaces = function (xmlString) {
13
+ return xmlString.replace(XML_NAMESPACE_DECLARATION_REGEX, '');
14
+ };
15
+ exports.removeXMLNamespaces = removeXMLNamespaces;
16
+ //# sourceMappingURL=namespaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespaces.js","sourceRoot":"","sources":["../../src/xml/namespaces.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AACzC,IAAM,+BAA+B,GAAG,yBAAyB,CAAC;AAElE;;;;;GAKG;AACI,IAAM,mBAAmB,GAAG,UAAC,SAAiB;IACnD,OAAO,SAAS,CAAC,OAAO,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAC;AAChE,CAAC,CAAC;AAFW,QAAA,mBAAmB,uBAE9B"}
@@ -0,0 +1,2 @@
1
+ export declare function replaceInvisibleCharWithCustomTag(input: string): string;
2
+ export declare function replaceCustomTagWithInvisibleChar(input: string): string;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ /* eslint-disable no-control-regex */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.replaceCustomTagWithInvisibleChar = exports.replaceInvisibleCharWithCustomTag = void 0;
5
+ function replaceInvisibleCharWithCustomTag(input) {
6
+ return input.replace(/\x02/g, '<LoadmillSotPlaceholder/>');
7
+ }
8
+ exports.replaceInvisibleCharWithCustomTag = replaceInvisibleCharWithCustomTag;
9
+ function replaceCustomTagWithInvisibleChar(input) {
10
+ return input.replace(/[\s]*<LoadmillSotPlaceholder\/>[\s]*/g, '\x02');
11
+ }
12
+ exports.replaceCustomTagWithInvisibleChar = replaceCustomTagWithInvisibleChar;
13
+ //# sourceMappingURL=remove-invisible-chars.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-invisible-chars.js","sourceRoot":"","sources":["../../src/xml/remove-invisible-chars.ts"],"names":[],"mappings":";AAAA,qCAAqC;;;AAErC,SAAgB,iCAAiC,CAAC,KAAa;IAC7D,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;AAC7D,CAAC;AAFD,8EAEC;AAED,SAAgB,iCAAiC,CAAC,KAAa;IAC7D,OAAO,KAAK,CAAC,OAAO,CAAC,uCAAuC,EAAE,MAAM,CAAC,CAAC;AACxE,CAAC;AAFD,8EAEC"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Replaces lonely <S> tags with <LoadmillPlaceHolder/> tags
3
+ */
4
+ export declare const replaceSTag: (xml?: string) => string;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.replaceSTag = void 0;
4
+ /**
5
+ * Replaces lonely <S> tags with <LoadmillPlaceHolder/> tags
6
+ */
7
+ var replaceSTag = function (xml) {
8
+ if (xml === void 0) { xml = ''; }
9
+ if (countOpeningSTags(xml) > countClosingSTags(xml)) {
10
+ return xml.replace('<S>', '<LoadmillPlaceHolder/>');
11
+ }
12
+ return xml;
13
+ };
14
+ exports.replaceSTag = replaceSTag;
15
+ var countOpeningSTags = function (xml) {
16
+ return (xml.match(/<S>/g) || []).length;
17
+ };
18
+ var countClosingSTags = function (xml) {
19
+ return (xml.match(/<\/S>/g) || []).length;
20
+ };
21
+ //# sourceMappingURL=replace-s-tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replace-s-tags.js","sourceRoot":"","sources":["../../src/xml/replace-s-tags.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACI,IAAM,WAAW,GAAG,UAAC,GAAgB;IAAhB,oBAAA,EAAA,QAAgB;IAC1C,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC,EAAE;QACnD,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;KACrD;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AALW,QAAA,WAAW,eAKtB;AAEF,IAAM,iBAAiB,GAAG,UAAC,GAAW;IACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;AAC1C,CAAC,CAAC;AAEF,IAAM,iBAAiB,GAAG,UAAC,GAAW;IACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;AAC5C,CAAC,CAAC"}