@loadmill/executer 0.1.161 → 0.1.163
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai-assertion/index.d.ts +3 -0
- package/dist/ai-assertion/index.js +113 -0
- package/dist/ai-assertion/index.js.map +1 -0
- package/dist/ai-assertion/prompts.d.ts +2 -0
- package/dist/ai-assertion/prompts.js +56 -0
- package/dist/ai-assertion/prompts.js.map +1 -0
- package/dist/ai-assertion/types.d.ts +16 -0
- package/dist/ai-assertion/types.js +3 -0
- package/dist/ai-assertion/types.js.map +1 -0
- package/dist/asserter.d.ts +4 -2
- package/dist/asserter.js +63 -47
- package/dist/asserter.js.map +1 -1
- package/dist/block-request.d.ts +1 -1
- package/dist/block-request.js +12 -22
- package/dist/block-request.js.map +1 -1
- package/dist/cookies.d.ts +1 -1
- package/dist/cookies.js +6 -8
- package/dist/cookies.js.map +1 -1
- package/dist/errors.js +2 -16
- package/dist/errors.js.map +1 -1
- package/dist/extraction-combiner.js +5 -43
- package/dist/extraction-combiner.js.map +1 -1
- package/dist/failures.js +3 -13
- package/dist/failures.js.map +1 -1
- package/dist/grpc.js +15 -72
- package/dist/grpc.js.map +1 -1
- package/dist/iteration-stats.js +5 -7
- package/dist/iteration-stats.js.map +1 -1
- package/dist/mill-version.js +1 -1
- package/dist/mill-version.js.map +1 -1
- package/dist/parameter-pools.js +6 -44
- package/dist/parameter-pools.js.map +1 -1
- package/dist/performance.js +2 -4
- package/dist/performance.js.map +1 -1
- package/dist/post-script/post-script-executor.js +7 -25
- package/dist/post-script/post-script-executor.js.map +1 -1
- package/dist/post-sequence.js +17 -55
- package/dist/post-sequence.js.map +1 -1
- package/dist/redact-data.js +9 -11
- package/dist/redact-data.js.map +1 -1
- package/dist/request-sequence-result.js +2 -12
- package/dist/request-sequence-result.js.map +1 -1
- package/dist/res-keeper.d.ts +1 -1
- package/dist/res-keeper.js +3 -21
- package/dist/res-keeper.js.map +1 -1
- package/dist/sampler.js +13 -75
- package/dist/sampler.js.map +1 -1
- package/dist/sequence-executor-like.d.ts +1 -1
- package/dist/sequence.d.ts +3 -1
- package/dist/sequence.js +272 -233
- package/dist/sequence.js.map +1 -1
- package/dist/single-runner.d.ts +2 -0
- package/dist/single-runner.js +12 -81
- package/dist/single-runner.js.map +1 -1
- package/dist/step-handlers/code-step-handler.js +6 -41
- package/dist/step-handlers/code-step-handler.js.map +1 -1
- package/dist/step-handlers/extract-step-handler.js +12 -43
- package/dist/step-handlers/extract-step-handler.js.map +1 -1
- package/dist/step-handlers/playwright/constants.js +3 -5
- package/dist/step-handlers/playwright/constants.js.map +1 -1
- package/dist/step-handlers/playwright/files-manager.js +13 -34
- package/dist/step-handlers/playwright/files-manager.js.map +1 -1
- package/dist/step-handlers/playwright/index.js +9 -44
- package/dist/step-handlers/playwright/index.js.map +1 -1
- package/dist/step-handlers/playwright/transformer.js +8 -8
- package/dist/step-handlers/playwright/transformer.js.map +1 -1
- package/dist/step-handlers/playwright-step-handler.js +11 -49
- package/dist/step-handlers/playwright-step-handler.js.map +1 -1
- package/dist/step-handlers/request-step-handler.js +6 -41
- package/dist/step-handlers/request-step-handler.js.map +1 -1
- package/dist/step-handlers/wait-step-handler.js +11 -46
- package/dist/step-handlers/wait-step-handler.js.map +1 -1
- package/dist/step-handlers/web-socket-step-handler.js +18 -75
- package/dist/step-handlers/web-socket-step-handler.js.map +1 -1
- package/dist/test-run-event-emitter.js +2 -4
- package/dist/test-run-event-emitter.js.map +1 -1
- package/dist/types/integrations.d.ts +4 -0
- package/dist/types/integrations.js +3 -0
- package/dist/types/integrations.js.map +1 -0
- package/dist/utils.js +2 -20
- package/dist/utils.js.map +1 -1
- package/dist/ws.js +20 -58
- package/dist/ws.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { AIAssertionResponse } from './types';
|
|
2
|
+
export declare const assertUsingAI: (openaiApiKey: string | undefined, value: any, AIVerify: string) => Promise<boolean>;
|
|
3
|
+
export declare const _assertUsingAI: (openaiApiKey: string | undefined, value: any, AIVerify: string) => Promise<AIAssertionResponse>;
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports._assertUsingAI = exports.assertUsingAI = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var superagent_1 = tslib_1.__importDefault(require("superagent"));
|
|
6
|
+
var log_1 = tslib_1.__importDefault(require("@loadmill/universal/dist/log"));
|
|
7
|
+
var string_utils_1 = require("@loadmill/universal/dist/string-utils");
|
|
8
|
+
var errors_1 = require("../errors");
|
|
9
|
+
var prompts_1 = require("./prompts");
|
|
10
|
+
var OPENAI_API_URL = 'https://api.openai.com/v1/responses';
|
|
11
|
+
var MAX_EXPLANATION_LENGTH = 1000;
|
|
12
|
+
var TIMEOUT_MS = 60000; // 1 minute timeout
|
|
13
|
+
var assertUsingAI = function (openaiApiKey, value, AIVerify) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
14
|
+
var _a, evaluation, explanation;
|
|
15
|
+
return tslib_1.__generator(this, function (_b) {
|
|
16
|
+
switch (_b.label) {
|
|
17
|
+
case 0:
|
|
18
|
+
if (AIVerify === '') {
|
|
19
|
+
return [2 /*return*/, true];
|
|
20
|
+
}
|
|
21
|
+
return [4 /*yield*/, (0, exports._assertUsingAI)(openaiApiKey, value, AIVerify)];
|
|
22
|
+
case 1:
|
|
23
|
+
_a = _b.sent(), evaluation = _a.evaluation, explanation = _a.explanation;
|
|
24
|
+
log_1.default.debug('Assert AIVerify:', { value: value, AIVerify: AIVerify, evaluation: evaluation, explanation: explanation });
|
|
25
|
+
if (evaluation === false) {
|
|
26
|
+
throw new errors_1.RequestFailuresError("AI assertion failed: ".concat((0, string_utils_1.truncateString)(explanation, MAX_EXPLANATION_LENGTH)));
|
|
27
|
+
}
|
|
28
|
+
return [2 /*return*/, true];
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}); };
|
|
32
|
+
exports.assertUsingAI = assertUsingAI;
|
|
33
|
+
var _assertUsingAI = function (openaiApiKey, value, AIVerify) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
34
|
+
var err_1, errMsg;
|
|
35
|
+
return tslib_1.__generator(this, function (_a) {
|
|
36
|
+
switch (_a.label) {
|
|
37
|
+
case 0:
|
|
38
|
+
_a.trys.push([0, 2, , 3]);
|
|
39
|
+
if (!openaiApiKey) {
|
|
40
|
+
return [2 /*return*/, _failAssertion('AI assertions require providing an OpenAI API key.')];
|
|
41
|
+
}
|
|
42
|
+
return [4 /*yield*/, _getAIResponse(openaiApiKey, (0, prompts_1.getAIAssertionConfiguration)(value, AIVerify))];
|
|
43
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
44
|
+
case 2:
|
|
45
|
+
err_1 = _a.sent();
|
|
46
|
+
log_1.default.error('AI assertion error:', err_1);
|
|
47
|
+
errMsg = void 0;
|
|
48
|
+
if (err_1.status === 401) {
|
|
49
|
+
errMsg = 'Invalid OpenAI API key.';
|
|
50
|
+
}
|
|
51
|
+
else if (err_1.timeout) {
|
|
52
|
+
errMsg = 'Received timeout from OpenAI.';
|
|
53
|
+
}
|
|
54
|
+
return [2 /*return*/, _failAssertion(errMsg)];
|
|
55
|
+
case 3: return [2 /*return*/];
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}); };
|
|
59
|
+
exports._assertUsingAI = _assertUsingAI;
|
|
60
|
+
/**
|
|
61
|
+
* Once the new openai package is supported, the following will replace the current code:
|
|
62
|
+
* const response = await openai.responses.parse(configuration);
|
|
63
|
+
* return response.output_parsed;
|
|
64
|
+
*/
|
|
65
|
+
var _getAIResponse = function (openaiApiKey, configuration) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
66
|
+
var response, parsedResponse, _a, text, refusal;
|
|
67
|
+
return tslib_1.__generator(this, function (_b) {
|
|
68
|
+
switch (_b.label) {
|
|
69
|
+
case 0: return [4 /*yield*/, _callOpenAI(openaiApiKey, configuration)];
|
|
70
|
+
case 1:
|
|
71
|
+
response = _b.sent();
|
|
72
|
+
parsedResponse = JSON.parse(response.text);
|
|
73
|
+
_a = parsedResponse.output[0].content[0], text = _a.text, refusal = _a.refusal;
|
|
74
|
+
if (refusal) {
|
|
75
|
+
log_1.default.error('AI assertion refusal:', refusal);
|
|
76
|
+
return [2 /*return*/, _failAssertion()];
|
|
77
|
+
}
|
|
78
|
+
return [2 /*return*/, JSON.parse(text)];
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}); };
|
|
82
|
+
var _callOpenAI = function (openaiApiKey, configuration) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
83
|
+
var request, err_2;
|
|
84
|
+
return tslib_1.__generator(this, function (_a) {
|
|
85
|
+
switch (_a.label) {
|
|
86
|
+
case 0:
|
|
87
|
+
request = superagent_1.default
|
|
88
|
+
.post(OPENAI_API_URL)
|
|
89
|
+
.set('Authorization', "Bearer ".concat(openaiApiKey))
|
|
90
|
+
.set('Content-Type', 'application/json')
|
|
91
|
+
.send(configuration)
|
|
92
|
+
.timeout(TIMEOUT_MS);
|
|
93
|
+
_a.label = 1;
|
|
94
|
+
case 1:
|
|
95
|
+
_a.trys.push([1, 3, , 6]);
|
|
96
|
+
return [4 /*yield*/, request];
|
|
97
|
+
case 2: return [2 /*return*/, _a.sent()];
|
|
98
|
+
case 3:
|
|
99
|
+
err_2 = _a.sent();
|
|
100
|
+
if (!err_2.timeout) return [3 /*break*/, 5];
|
|
101
|
+
log_1.default.debug('AI assertion timeout, retrying...');
|
|
102
|
+
return [4 /*yield*/, request];
|
|
103
|
+
case 4: return [2 /*return*/, _a.sent()];
|
|
104
|
+
case 5: throw err_2;
|
|
105
|
+
case 6: return [2 /*return*/];
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}); };
|
|
109
|
+
var _failAssertion = function (explanation) {
|
|
110
|
+
if (explanation === void 0) { explanation = 'Something went wrong.'; }
|
|
111
|
+
return ({ evaluation: false, explanation: explanation });
|
|
112
|
+
};
|
|
113
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai-assertion/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAIAssertionConfiguration = void 0;
|
|
4
|
+
var constants_1 = require("@loadmill/universal/dist/openai/constants");
|
|
5
|
+
var getAIAssertionConfiguration = function (value, AIVerify) {
|
|
6
|
+
return {
|
|
7
|
+
model: constants_1.OPENAI_CHAT_MODELS.GPT_4_O,
|
|
8
|
+
input: _getAIAssertionInput(value, AIVerify),
|
|
9
|
+
text: {
|
|
10
|
+
format: AIAssertionResponseFormat,
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
exports.getAIAssertionConfiguration = getAIAssertionConfiguration;
|
|
15
|
+
var AIAssertionSystemMessage = [
|
|
16
|
+
'You are an assistant for a test automation tool.',
|
|
17
|
+
'Your task is to evaluate an assertion about provided data, i.e. the "value".',
|
|
18
|
+
'You will be given a statement about the value, and you need to determine if it is true or false.',
|
|
19
|
+
'You will also provide a short explanation of your reasoning.',
|
|
20
|
+
'The evaluation should be a boolean value (true or false).',
|
|
21
|
+
'The explanation should be a short text that explains the evaluation.',
|
|
22
|
+
].join('\n');
|
|
23
|
+
var _getAIAssertionUserMessage = function (value, AIVerify) {
|
|
24
|
+
return [
|
|
25
|
+
"value: ".concat(JSON.stringify(value)),
|
|
26
|
+
"statement: \"".concat(AIVerify, "\""),
|
|
27
|
+
'Respond ONLY using the evaluation (true / false) and explanation.',
|
|
28
|
+
].join('\n');
|
|
29
|
+
};
|
|
30
|
+
var _getAIAssertionInput = function (value, AIVerify) {
|
|
31
|
+
return [
|
|
32
|
+
{
|
|
33
|
+
role: constants_1.AI_CHAT_ROLES.SYSTEM,
|
|
34
|
+
content: AIAssertionSystemMessage,
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
role: constants_1.AI_CHAT_ROLES.USER,
|
|
38
|
+
content: _getAIAssertionUserMessage(value, AIVerify),
|
|
39
|
+
},
|
|
40
|
+
];
|
|
41
|
+
};
|
|
42
|
+
var AIAssertionResponseFormat = {
|
|
43
|
+
type: 'json_schema',
|
|
44
|
+
name: 'analysis',
|
|
45
|
+
schema: {
|
|
46
|
+
type: 'object',
|
|
47
|
+
properties: {
|
|
48
|
+
evaluation: { type: 'boolean' },
|
|
49
|
+
explanation: { type: 'string' },
|
|
50
|
+
},
|
|
51
|
+
required: ['evaluation', 'explanation'],
|
|
52
|
+
additionalProperties: false,
|
|
53
|
+
},
|
|
54
|
+
strict: true,
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/ai-assertion/prompts.ts"],"names":[],"mappings":";;;AAAA,uEAA8F;AAIvF,IAAM,2BAA2B,GAAG,UACzC,KAAU,EACV,QAAgB;IAEhB,OAAO;QACL,KAAK,EAAE,8BAAkB,CAAC,OAAO;QACjC,KAAK,EAAE,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;QAC5C,IAAI,EAAE;YACJ,MAAM,EAAE,yBAAyB;SAClC;KACF,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,2BAA2B,+BAWtC;AAEF,IAAM,wBAAwB,GAAG;IAC/B,kDAAkD;IAClD,8EAA8E;IAC9E,kGAAkG;IAClG,8DAA8D;IAC9D,2DAA2D;IAC3D,sEAAsE;CACvE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,IAAM,0BAA0B,GAAG,UACjC,KAAU,EACV,QAAgB;IAEhB,OAAO;QACL,iBAAU,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAE;QACjC,uBAAe,QAAQ,OAAG;QAC1B,mEAAmE;KACpE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC,CAAC;AAEF,IAAM,oBAAoB,GAAG,UAC3B,KAAU,EACV,QAAgB;IAEhB,OAAO;QACL;YACE,IAAI,EAAE,yBAAa,CAAC,MAAM;YAC1B,OAAO,EAAE,wBAAwB;SAClC;QACD;YACE,IAAI,EAAE,yBAAa,CAAC,IAAI;YACxB,OAAO,EAAE,0BAA0B,CAAC,KAAK,EAAE,QAAQ,CAAC;SACrD;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,IAAM,yBAAyB,GAAG;IAChC,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC/B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAChC;QACD,QAAQ,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;QACvC,oBAAoB,EAAE,KAAK;KAC5B;IACD,MAAM,EAAE,IAAI;CACb,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AI_CHAT_ROLES, OPENAI_CHAT_MODELS } from '@loadmill/universal/dist/openai/constants';
|
|
2
|
+
export declare type AIResponseInput = {
|
|
3
|
+
role: AI_CHAT_ROLES;
|
|
4
|
+
content: string;
|
|
5
|
+
}[];
|
|
6
|
+
export declare type AIAssertionResponse = {
|
|
7
|
+
evaluation: boolean;
|
|
8
|
+
explanation: string;
|
|
9
|
+
};
|
|
10
|
+
export declare type AIAssertionConfiguration = {
|
|
11
|
+
model: OPENAI_CHAT_MODELS;
|
|
12
|
+
input: AIResponseInput;
|
|
13
|
+
text: {
|
|
14
|
+
format: object;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ai-assertion/types.ts"],"names":[],"mappings":""}
|
package/dist/asserter.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { Parameters } from '@loadmill/core/dist/parameters';
|
|
2
2
|
import { Assertion } from '@loadmill/core/dist/assertions';
|
|
3
|
+
import { ExecutableConfIntegrations } from './types/integrations';
|
|
3
4
|
export declare class Asserter {
|
|
4
5
|
private parameters;
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
private integrations;
|
|
7
|
+
constructor(parameters: Parameters, integrations: ExecutableConfIntegrations);
|
|
8
|
+
assert({ check, equals, notEquals, contains, notContains, matches, falsy, greater, lesser, JSONSchema, JSONContains, XMLContains, AIVerify, }: Assertion): Promise<boolean>;
|
|
7
9
|
private resolve;
|
|
8
10
|
private check;
|
|
9
11
|
}
|
package/dist/asserter.js
CHANGED
|
@@ -1,65 +1,81 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.Asserter = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
7
5
|
var parameters_1 = require("@loadmill/core/dist/parameters");
|
|
8
6
|
var subset_1 = require("@loadmill/core/dist/subset");
|
|
9
7
|
var xml_to_json_1 = require("@loadmill/core/dist/xml/xml-to-json");
|
|
10
|
-
var log_1 = __importDefault(require("@loadmill/universal/dist/log"));
|
|
8
|
+
var log_1 = tslib_1.__importDefault(require("@loadmill/universal/dist/log"));
|
|
9
|
+
var ai_assertion_1 = require("./ai-assertion");
|
|
11
10
|
var Asserter = /** @class */ (function () {
|
|
12
|
-
function Asserter(parameters) {
|
|
11
|
+
function Asserter(parameters, integrations) {
|
|
13
12
|
Object.defineProperty(this, "parameters", {
|
|
14
13
|
enumerable: true,
|
|
15
14
|
configurable: true,
|
|
16
15
|
writable: true,
|
|
17
16
|
value: parameters
|
|
18
17
|
});
|
|
18
|
+
Object.defineProperty(this, "integrations", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
configurable: true,
|
|
21
|
+
writable: true,
|
|
22
|
+
value: integrations
|
|
23
|
+
});
|
|
19
24
|
}
|
|
20
25
|
Object.defineProperty(Asserter.prototype, "assert", {
|
|
21
26
|
enumerable: false,
|
|
22
27
|
configurable: true,
|
|
23
28
|
writable: true,
|
|
24
29
|
value: function (_a) {
|
|
25
|
-
var
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
30
|
+
var _b;
|
|
31
|
+
var check = _a.check, equals = _a.equals, notEquals = _a.notEquals, contains = _a.contains, notContains = _a.notContains, matches = _a.matches, falsy = _a.falsy, greater = _a.greater, lesser = _a.lesser, JSONSchema = _a.JSONSchema, JSONContains = _a.JSONContains, XMLContains = _a.XMLContains, AIVerify = _a.AIVerify;
|
|
32
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
33
|
+
var actual, result, resolved;
|
|
34
|
+
return tslib_1.__generator(this, function (_c) {
|
|
35
|
+
switch (_c.label) {
|
|
36
|
+
case 0:
|
|
37
|
+
actual = parameters_1.parameterUtils.resolveParameter(check, this.parameters) || '';
|
|
38
|
+
if (contains == null &&
|
|
39
|
+
notContains == null &&
|
|
40
|
+
equals == null &&
|
|
41
|
+
notEquals == null &&
|
|
42
|
+
matches == null &&
|
|
43
|
+
greater == null &&
|
|
44
|
+
lesser == null &&
|
|
45
|
+
JSONSchema == null &&
|
|
46
|
+
JSONContains == null &&
|
|
47
|
+
XMLContains == null &&
|
|
48
|
+
AIVerify == null) {
|
|
49
|
+
result = void 0;
|
|
50
|
+
if (falsy) {
|
|
51
|
+
result = parameters_1.valueUtils.isFalsyParameterValue(actual);
|
|
52
|
+
log_1.default.debug('Assert False:', { actual: actual, result: result });
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
result = parameters_1.valueUtils.isTruthyParameterValue(actual);
|
|
56
|
+
log_1.default.debug('Assert True:', { actual: actual, result: result });
|
|
57
|
+
}
|
|
58
|
+
return [2 /*return*/, result];
|
|
59
|
+
}
|
|
60
|
+
if (!(AIVerify != null)) return [3 /*break*/, 2];
|
|
61
|
+
resolved = this.resolve(AIVerify);
|
|
62
|
+
return [4 /*yield*/, (0, ai_assertion_1.assertUsingAI)((_b = this.integrations.openai) === null || _b === void 0 ? void 0 : _b.apiKey, actual, resolved)];
|
|
63
|
+
case 1: return [2 /*return*/, _c.sent()];
|
|
64
|
+
case 2:
|
|
65
|
+
// short circuiting with approximate increasing complexity:
|
|
66
|
+
return [2 /*return*/, (this.check(actual, checkContains, contains) ||
|
|
67
|
+
this.check(actual, checkNotContains, notContains) ||
|
|
68
|
+
this.check(actual, checkEquals, equals) ||
|
|
69
|
+
this.check(actual, checkNotEquals, notEquals) ||
|
|
70
|
+
this.check(actual, checkMatches, matches) ||
|
|
71
|
+
this.check(actual, checkGreater, greater) ||
|
|
72
|
+
this.check(actual, checkLesser, lesser) ||
|
|
73
|
+
this.check(actual, checkJSONSchema, JSONSchema) ||
|
|
74
|
+
this.check(actual, checkJSONContains, JSONContains) ||
|
|
75
|
+
this.check(actual, checkXMLContains, XMLContains))];
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
});
|
|
63
79
|
}
|
|
64
80
|
});
|
|
65
81
|
Object.defineProperty(Asserter.prototype, "resolve", {
|
|
@@ -137,7 +153,7 @@ function checkJSONSchema(actual, expected) {
|
|
|
137
153
|
return result;
|
|
138
154
|
}
|
|
139
155
|
function checkJSONContains(actual, expected) {
|
|
140
|
-
var result = subset_1.isJSONContains(actual, expected);
|
|
156
|
+
var result = (0, subset_1.isJSONContains)(actual, expected);
|
|
141
157
|
log_1.default.debug('Assert JSONContains:', { actual: actual, expected: expected, result: result });
|
|
142
158
|
return result;
|
|
143
159
|
}
|
|
@@ -146,12 +162,12 @@ function checkXMLContains(actual, expected) {
|
|
|
146
162
|
var onParseError = function (err, result, xml) {
|
|
147
163
|
log_1.default.debug('Failed to convert XML to JSON while asserting', { result: result, xml: xml }, err);
|
|
148
164
|
};
|
|
149
|
-
var actualAsJson = xml_to_json_1.xmlToJson(actual, parserOptions, onParseError);
|
|
150
|
-
var expectedAsJson = xml_to_json_1.xmlToJson(expected, parserOptions, onParseError);
|
|
165
|
+
var actualAsJson = (0, xml_to_json_1.xmlToJson)(actual, parserOptions, onParseError);
|
|
166
|
+
var expectedAsJson = (0, xml_to_json_1.xmlToJson)(expected, parserOptions, onParseError);
|
|
151
167
|
if (!actualAsJson || !expectedAsJson) {
|
|
152
168
|
return false;
|
|
153
169
|
}
|
|
154
|
-
var result = subset_1.isJSONContains(JSON.stringify(actualAsJson), JSON.stringify(expectedAsJson));
|
|
170
|
+
var result = (0, subset_1.isJSONContains)(JSON.stringify(actualAsJson), JSON.stringify(expectedAsJson));
|
|
155
171
|
log_1.default.debug('Assert XMLContains:', { actual: actual, expected: expected, result: result });
|
|
156
172
|
return result;
|
|
157
173
|
}
|
package/dist/asserter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asserter.js","sourceRoot":"","sources":["../src/asserter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"asserter.js","sourceRoot":"","sources":["../src/asserter.ts"],"names":[],"mappings":"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"}
|
package/dist/block-request.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { ExecutionBlocker } from '@loadmill/core/dist/team-options/types';
|
|
2
|
-
export declare const enforceExecutionBlockers: (executionBlockers: ExecutionBlocker[], request:
|
|
2
|
+
export declare const enforceExecutionBlockers: (executionBlockers: ExecutionBlocker[], request: superagent.agent) => void;
|
package/dist/block-request.js
CHANGED
|
@@ -1,23 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
3
|
exports.enforceExecutionBlockers = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
15
5
|
var types_1 = require("@loadmill/core/dist/team-options/types");
|
|
16
6
|
var errors_1 = require("./errors");
|
|
17
7
|
var lodash_1 = require("lodash");
|
|
18
8
|
var enforceExecutionBlockers = function (executionBlockers, request) {
|
|
19
9
|
var _a, _b;
|
|
20
|
-
if (lodash_1.isEmpty(executionBlockers)) {
|
|
10
|
+
if ((0, lodash_1.isEmpty)(executionBlockers)) {
|
|
21
11
|
return;
|
|
22
12
|
}
|
|
23
13
|
var requestBody;
|
|
@@ -28,12 +18,12 @@ var enforceExecutionBlockers = function (executionBlockers, request) {
|
|
|
28
18
|
catch (_c) {
|
|
29
19
|
failedToExtractBody = true;
|
|
30
20
|
}
|
|
31
|
-
var headers = __assign(__assign({}, request.header), { cookie: mergeSuperagentCookieWithConfCookie(request) });
|
|
21
|
+
var headers = tslib_1.__assign(tslib_1.__assign({}, request.header), { cookie: mergeSuperagentCookieWithConfCookie(request) });
|
|
32
22
|
for (var _i = 0, executionBlockers_1 = executionBlockers; _i < executionBlockers_1.length; _i++) {
|
|
33
23
|
var blocker = executionBlockers_1[_i];
|
|
34
24
|
var isRequestBlocked = enforceExecutionBlocker(blocker, { url: request.url, method: request.method, requestBody: requestBody, headers: headers }, failedToExtractBody);
|
|
35
25
|
if (isRequestBlocked) {
|
|
36
|
-
throw new errors_1.RequestFailuresError("Request blocked: "
|
|
26
|
+
throw new errors_1.RequestFailuresError("Request blocked: ".concat(isRequestBlocked.reason));
|
|
37
27
|
}
|
|
38
28
|
}
|
|
39
29
|
};
|
|
@@ -48,24 +38,24 @@ var enforceExecutionBlocker = function (blocker, requestDetails, failedToExtract
|
|
|
48
38
|
if (!isUrlMatch(blocker.urlRegex, requestDetails.url)) {
|
|
49
39
|
return;
|
|
50
40
|
}
|
|
51
|
-
var shouldCheckHeaders = !lodash_1.isEmpty(blocker.headers);
|
|
41
|
+
var shouldCheckHeaders = !(0, lodash_1.isEmpty)(blocker.headers);
|
|
52
42
|
var shouldCheckBody = !!blocker.bodyRegex;
|
|
53
43
|
if (!shouldCheckBody && !shouldCheckHeaders) {
|
|
54
|
-
return { reason: "The request's method and URL match the execution blocker defined in \""
|
|
44
|
+
return { reason: "The request's method and URL match the execution blocker defined in \"".concat(blocker.description, "\"") };
|
|
55
45
|
}
|
|
56
46
|
if (shouldCheckBody && failedToExtractBody) {
|
|
57
|
-
return { reason: "The request's method and URL match the execution blocker defined in \""
|
|
47
|
+
return { reason: "The request's method and URL match the execution blocker defined in \"".concat(blocker.description, "\", but the body could not be extracted") };
|
|
58
48
|
}
|
|
59
49
|
var isHeadersMatch = shouldCheckHeaders && checkHeaders(blocker, requestDetails);
|
|
60
50
|
var isBodyMatch = shouldCheckBody && checkBody(blocker.bodyRegex, requestDetails.requestBody);
|
|
61
51
|
if (isHeadersMatch && isBodyMatch) {
|
|
62
|
-
return { reason: "The request's method, URL, body and headers match the execution blocker defined in \""
|
|
52
|
+
return { reason: "The request's method, URL, body and headers match the execution blocker defined in \"".concat(blocker.description, "\"") };
|
|
63
53
|
}
|
|
64
54
|
if (isHeadersMatch && !shouldCheckBody) {
|
|
65
|
-
return { reason: "The request's method, URL and headers match the execution blocker defined in \""
|
|
55
|
+
return { reason: "The request's method, URL and headers match the execution blocker defined in \"".concat(blocker.description, "\"") };
|
|
66
56
|
}
|
|
67
57
|
if (isBodyMatch && !shouldCheckHeaders) {
|
|
68
|
-
return { reason: "The request's method, URL and body match the execution blocker defined in \""
|
|
58
|
+
return { reason: "The request's method, URL and body match the execution blocker defined in \"".concat(blocker.description, "\"") };
|
|
69
59
|
}
|
|
70
60
|
};
|
|
71
61
|
var isMethodMatch = function (blockerMethod, requestMethod) {
|
|
@@ -92,7 +82,7 @@ var getHeadersWithLowerCaseNames = function (headers) {
|
|
|
92
82
|
var mergeSuperagentCookieWithConfCookie = function (request) {
|
|
93
83
|
var confCookie = appendTrailingSemicolon(getHeadersWithLowerCaseNames(request.header).cookie);
|
|
94
84
|
var superagentCookie = request.cookies;
|
|
95
|
-
return superagentCookie && confCookie ? confCookie
|
|
85
|
+
return superagentCookie && confCookie ? "".concat(confCookie, " ").concat(superagentCookie) : superagentCookie || confCookie;
|
|
96
86
|
};
|
|
97
|
-
var appendTrailingSemicolon = function (cookie) { return cookie && (cookie.endsWith(';') ? cookie : cookie
|
|
87
|
+
var appendTrailingSemicolon = function (cookie) { return cookie && (cookie.endsWith(';') ? cookie : "".concat(cookie, ";")); };
|
|
98
88
|
//# sourceMappingURL=block-request.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-request.js","sourceRoot":"","sources":["../src/block-request.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"block-request.js","sourceRoot":"","sources":["../src/block-request.ts"],"names":[],"mappings":"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"}
|
package/dist/cookies.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ResolvedRequest } from './request-sequence-result';
|
|
2
2
|
import { CookieDetails, CookiesDetails } from '@loadmill/core/dist/conf/types';
|
|
3
|
-
export declare const setCookies: (httpAgent: any, cookiesList?: CookiesDetails
|
|
3
|
+
export declare const setCookies: (httpAgent: any, cookiesList?: CookiesDetails) => void;
|
|
4
4
|
export declare const getCookies: (httpAgent: any, requests: ResolvedRequest[]) => CookiesDetails;
|
|
5
5
|
export declare const appendCookie: (cookiesToSend: CookiesDetails, cookieDetails: CookieDetails) => void;
|
|
6
6
|
export declare const cookieDoesNotExist: (cookieList: CookieDetails[], cookieDetails: CookieDetails) => boolean;
|
package/dist/cookies.js
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.cookieDoesNotExist = exports.appendCookie = exports.getCookies = exports.setCookies = void 0;
|
|
7
|
-
var
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var log_1 = tslib_1.__importDefault(require("@loadmill/universal/dist/log"));
|
|
8
6
|
var lodash_1 = require("lodash");
|
|
9
7
|
var setCookies = function (httpAgent, cookiesList) {
|
|
10
8
|
if (cookiesList) {
|
|
11
9
|
for (var _i = 0, _a = Object.values(cookiesList); _i < _a.length; _i++) {
|
|
12
10
|
var cookies = _a[_i];
|
|
13
|
-
if (lodash_1.isArray(cookies)) {
|
|
11
|
+
if ((0, lodash_1.isArray)(cookies)) {
|
|
14
12
|
for (var _b = 0, cookies_1 = cookies; _b < cookies_1.length; _b++) {
|
|
15
13
|
var cookieDetails = cookies_1[_b];
|
|
16
14
|
var _c = cookieDetails || {}, cookie = _c.cookie, domain = _c.domain, path = _c.path;
|
|
@@ -46,7 +44,7 @@ var getCookies = function (httpAgent, requests) {
|
|
|
46
44
|
domain: domain,
|
|
47
45
|
path: path,
|
|
48
46
|
};
|
|
49
|
-
exports.appendCookie(cookiesToSend, cookieDetails);
|
|
47
|
+
(0, exports.appendCookie)(cookiesToSend, cookieDetails);
|
|
50
48
|
});
|
|
51
49
|
}
|
|
52
50
|
}
|
|
@@ -64,8 +62,8 @@ var getCookies = function (httpAgent, requests) {
|
|
|
64
62
|
exports.getCookies = getCookies;
|
|
65
63
|
var appendCookie = function (cookiesToSend, cookieDetails) {
|
|
66
64
|
var domain = cookieDetails.domain, path = cookieDetails.path;
|
|
67
|
-
if (!lodash_1.isEmpty(cookiesToSend[domain + path])) {
|
|
68
|
-
if (exports.cookieDoesNotExist(cookiesToSend[domain + path], cookieDetails)) {
|
|
65
|
+
if (!(0, lodash_1.isEmpty)(cookiesToSend[domain + path])) {
|
|
66
|
+
if ((0, exports.cookieDoesNotExist)(cookiesToSend[domain + path], cookieDetails)) {
|
|
69
67
|
cookiesToSend[domain + path].push(cookieDetails);
|
|
70
68
|
}
|
|
71
69
|
}
|
package/dist/cookies.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookies.js","sourceRoot":"","sources":["../src/cookies.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cookies.js","sourceRoot":"","sources":["../src/cookies.ts"],"names":[],"mappings":";;;;AAEA,6EAA+C;AAC/C,iCAA0C;AAEnC,IAAM,UAAU,GAAG,UAAC,SAAS,EAAE,WAA4B;IAChE,IAAI,WAAW,EAAE;QACf,KAAsB,UAA0B,EAA1B,KAAA,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAA1B,cAA0B,EAA1B,IAA0B,EAAE;YAA7C,IAAM,OAAO,SAAA;YAChB,IAAI,IAAA,gBAAO,EAAC,OAAO,CAAC,EAAE;gBACpB,KAA4B,UAAO,EAAP,mBAAO,EAAP,qBAAO,EAAP,IAAO,EAAE;oBAAhC,IAAM,aAAa,gBAAA;oBAChB,IAAA,KAA2B,aAAa,IAAI,EAAE,EAA5C,MAAM,YAAA,EAAE,MAAM,YAAA,EAAE,IAAI,UAAwB,CAAC;oBACrD,IAAI;wBACF,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;qBAChD;oBAAC,OAAO,KAAK,EAAE;wBACd,aAAG,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAE,IAAI,MAAA,EAAE,KAAK,OAAA,EAAE,CAAC,CAAC;qBACvE;iBACF;aACF;SACF;KACF;AACH,CAAC,CAAC;AAfW,QAAA,UAAU,cAerB;AAEK,IAAM,UAAU,GAAG,UAAC,SAAS,EAAE,QAA2B;IAC/D,IAAM,aAAa,GAAG,EAAE,CAAC;4BACd,OAAO;QAChB,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE;YAC9C,IAAI;gBACF,IAAM,KAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACjC,IAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;oBACvC,MAAM,EAAE,KAAG,CAAC,QAAQ;oBACpB,IAAI,EAAE,KAAG,CAAC,QAAQ;oBAClB,MAAM,EAAE,KAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;iBACpC,CAAC,CAAC;gBACH,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBAC1B,OAAO,CAAC,OAAO,CAAC,UAAA,MAAM;wBACpB,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,KAAG,CAAC,QAAQ,CAAC;wBAC7C,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC;wBAChC,IAAM,aAAa,GAAG;4BACpB,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;4BACzB,MAAM,QAAA;4BACN,IAAI,MAAA;yBACL,CAAC;wBACF,IAAA,oBAAY,EAAC,aAAa,EAAE,aAAa,CAAC,CAAC;oBAC7C,CAAC,CAAC,CAAC;iBACJ;aACF;YAAC,OAAO,CAAC,EAAE;gBACV,aAAG,CAAC,KAAK,CAAC,gDAAgD,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;aAC9E;SACF;;IAxBH,KAAsB,UAAQ,EAAR,qBAAQ,EAAR,sBAAQ,EAAR,IAAQ;QAAzB,IAAM,OAAO,iBAAA;gBAAP,OAAO;KAyBjB;IACD,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AA7BW,QAAA,UAAU,cA6BrB;AAEK,IAAM,YAAY,GAAG,UAAC,aAA6B,EAAE,aAA4B;IAC9E,IAAA,MAAM,GAAW,aAAa,OAAxB,EAAE,IAAI,GAAK,aAAa,KAAlB,CAAmB;IACvC,IAAI,CAAC,IAAA,gBAAO,EAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE;QAC1C,IAAI,IAAA,0BAAkB,EAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,aAAa,CAAC,EAAE;YACnE,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAClD;KACF;SAAM;QACL,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;KAChD;AACH,CAAC,CAAC;AATW,QAAA,YAAY,gBASvB;AAEK,IAAM,kBAAkB,GAAG,UAAC,UAA2B,EAAE,aAA4B;IAC1F,OAAA,UAAU,CAAC,KAAK,CAAC,UAAA,MAAM;QACrB,OAAA,MAAM,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM;YACtC,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI;YAClC,MAAM,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM;IAFtC,CAEsC,CACvC;AAJD,CAIC,CAAC;AALS,QAAA,kBAAkB,sBAK3B"}
|
package/dist/errors.js
CHANGED
|
@@ -1,23 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
3
|
exports.RequestFailuresError = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
19
5
|
var RequestFailuresError = /** @class */ (function (_super) {
|
|
20
|
-
__extends(RequestFailuresError, _super);
|
|
6
|
+
tslib_1.__extends(RequestFailuresError, _super);
|
|
21
7
|
function RequestFailuresError(message, histogram) {
|
|
22
8
|
var _a;
|
|
23
9
|
if (histogram === void 0) { histogram = (_a = {}, _a[message] = 1, _a); }
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;;AAEA;IAA0C,gDAAK;IAC7C,8BAAY,OAAe,EAAS,SAAuC;;QAAvC,0BAAA,EAAA,sBAAyB,GAAC,OAAO,IAAG,CAAC,KAAE;QAA3E,YACE,kBAAM,OAAO,CAAC,SAIf;;;;;mBALmC;;QAGlC,wKAAwK;QACxK,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;;IAC9D,CAAC;IACH,2BAAC;AAAD,CAAC,AAPD,CAA0C,KAAK,GAO9C;AAPY,oDAAoB"}
|